From f812fa5e2cd01543630951b16baf1a52aff352a5 Mon Sep 17 00:00:00 2001 From: El-Jekozo <72350516+El-Jekozo@users.noreply.github.com> Date: Thu, 18 Feb 2021 09:51:50 +0200 Subject: [PATCH] New random mission (#44999) --- data/json/npcs/TALK_COMMON_MISSION.json | 14 ++++++++ data/json/npcs/missiondef.json | 48 +++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/data/json/npcs/TALK_COMMON_MISSION.json b/data/json/npcs/TALK_COMMON_MISSION.json index 4bcee75e8b9cb..f60741645f8b4 100644 --- a/data/json/npcs/TALK_COMMON_MISSION.json +++ b/data/json/npcs/TALK_COMMON_MISSION.json @@ -324,5 +324,19 @@ { "text": "Thank you.", "topic": "TALK_NONE", "effect": "clear_mission" }, { "text": "Thanks, bye.", "topic": "TALK_DONE", "effect": "clear_mission" } ] + }, + { + "//": "MISSION_PYROMANIAC mission set this topic as starting topic for mission giver.", + "type": "talk_topic", + "id": "MISSION_PYROMANIAC", + "dynamic_line": "Are we there yet, ? I can't wait to burn that building!", + "responses": [ + { + "text": "We're here. Let's do it!", + "topic": "TALK_MISSION_INQUIRE", + "condition": { "and": [ "mission_complete", { "u_has_items": { "item": "gasoline", "count": 200 } } ] } + }, + { "text": "Be patient, , we're getting there soon.", "topic": "TALK_DONE" } + ] } ] diff --git a/data/json/npcs/missiondef.json b/data/json/npcs/missiondef.json index 0ad333b4a54fc..109e4a3df41a2 100644 --- a/data/json/npcs/missiondef.json +++ b/data/json/npcs/missiondef.json @@ -817,5 +817,53 @@ "success_lie": "OK, then hand them over.", "failure": "Well, that's a shame." } + }, + { + "id": "MISSION_PYROMANIAC", + "type": "mission_definition", + "name": { "str": "Angry pyromaniac" }, + "goal": "MGOAL_GO_TO", + "difficulty": 0, + "value": 0, + "//": "NPC will ask player to burn tagged house. Will follow player after accepting mission.", + "//2": "Change first topic to do proper checks. MGOAL_GO_TO to check if player stands on tagged tile.", + "//3": "At the end of the mission, will place fire on tagged tile and NPC will join player faction.", + "has_generic_rewards": false, + "start": { + "effect": [ "follow_only", { "npc_first_topic": "MISSION_PYROMANIAC" } ], + "assign_mission_target": { + "om_terrain": "house", + "om_terrain_replace": "forest", + "om_terrain_match_type": "PREFIX", + "search_range": 75, + "random": true, + "z": 0 + } + }, + "end": { + "effect": [ "follow", { "u_consume_item": "gasoline", "count": 200 }, { "mapgen_update": "MISSION_PYROMANIAC_BURN" } ] + }, + "origins": [ "ORIGIN_OPENER_NPC" ], + "dialogue": { + "describe": "Oh man, I want to burn it so bad…", + "offer": "I'm so infuriated! I've got an enemy that ruined my life, and now I want to get revenge! I don't care about , I just want to burn his house! Would you help me, ?", + "accepted": "Good. Let's go to his house and burn it down! Oh, by the way, could you bring gasoline with you, ? I was so angry I forgot to bring it with me…", + "rejected": "Seriously? It's such an easy job…", + "advice": "Maybe we can find some gasoline at gas station.", + "inquire": "Are you ready, ?", + "success": "Sweet, sweet revenge! Ah, smells so nice! Feels like the smell of napalm in the morning! All his stuff, and probably even that , will burn to ashes in a matter of minutes. You helped me get my revenge, so I'll follow you to the end, !", + "success_lie": "What?! You liar!", + "failure": "Wow, you failed? How…" + } + }, + { + "//": "For MISSION_PYROMANIAC. Will spawn fire on tile where PC is standing.", + "type": "mapgen", + "update_mapgen_id": "MISSION_PYROMANIAC_BURN", + "method": "json", + "object": { + "place_liquids": [ { "liquid": "gasoline", "x": [ 5, 20 ], "y": [ 5, 20 ], "amount": 5, "repeat": 40 } ], + "place_fields": [ { "field": "fd_fire", "x": [ 5, 20 ], "y": [ 5, 20 ], "repeat": 40 } ] + } } ]