diff options
Diffstat (limited to 'npc-04_island-prison-update.patch')
-rw-r--r-- | npc-04_island-prison-update.patch | 1796 |
1 files changed, 1796 insertions, 0 deletions
diff --git a/npc-04_island-prison-update.patch b/npc-04_island-prison-update.patch new file mode 100644 index 0000000..193df11 --- /dev/null +++ b/npc-04_island-prison-update.patch @@ -0,0 +1,1796 @@ +--- a/data/json/npcs/island_prison/prisoners.json ++++ b/data/json/npcs/island_prison/prisoners.json +@@ -0,0 +1,634 @@ ++[ ++ { ++ "type": "npc", ++ "id": "prisoner_generic", ++ "//": "Former prisoner with a melee or ranged weapon and prison clothing. Sometimes they also have prison guards' gear.", ++ "name_suffix": "prisoner", ++ "class": "NC_THUG_PRISONER", ++ "attitude": 0, ++ "mission": 8, ++ "chat": "TALK_PRISONER_GENERIC", ++ "faction": "prisoners" ++ }, ++ { ++ "type": "npc", ++ "id": "prisoner_greeter", ++ "//": "Former prisoner with a melee or ranged weapon and prison clothing. Sometimes they also have prison guards' gear.", ++ "name_suffix": "gatekeeper", ++ "class": "NC_THUG_PRISONER", ++ "attitude": 0, ++ "mission": 8, ++ "chat": "TALK_PRISONER_GREET", ++ "faction": "prisoners" ++ }, ++ { ++ "type": "npc", ++ "id": "prisoner_leader", ++ "//": "Former prisoner with a melee or ranged weapon and prison clothing. Sometimes they also have prison guards' gear.", ++ "name_suffix": "leader of prisoners", ++ "class": "NC_THUG_PRISONER", ++ "attitude": 0, ++ "mission": 8, ++ "chat": "TALK_PRISONER_LEADER_GREET", ++ "faction": "prisoners", ++ "mission_offered": "MISSION_PRISONER_LEADER_GET_ID_CARD" ++ }, ++ { ++ "type": "npc_class", ++ "id": "NC_THUG_PRISONER", ++ "name": { "str": "Prisoner" }, ++ "job_description": "I'm here to kick ass.", ++ "traits": [ ++ { "group": "BG_survival_story_CRIMINAL" }, ++ { "group": "NPC_starting_traits" }, ++ { "group": "Appearance_demographics" } ++ ], ++ "bonus_str": { "rng": [ 2, 4 ] }, ++ "bonus_dex": { "rng": [ 0, 2 ] }, ++ "skills": [ ++ { "skill": "ALL", "level": { "sum": [ { "dice": [ 3, 2 ] }, { "constant": -4 } ] } }, ++ { "skill": "dodge", "bonus": { "rng": [ 1, 3 ] } }, ++ { "skill": "melee", "bonus": { "rng": [ 2, 4 ] } }, ++ { "skill": "unarmed", "bonus": { "rng": [ 1, 3 ] } }, ++ { "skill": "bashing", "bonus": { "rng": [ 1, 5 ] } }, ++ { "skill": "stabbing", "bonus": { "rng": [ 1, 5 ] } }, ++ { "skill": "cutting", "bonus": { "rng": [ 1, 5 ] } } ++ ], ++ "worn_override": "NC_THUG_PRISONER_worn", ++ "weapon_override": "NC_THUG_PRISONER_wield" ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_THUG_PRISONER_worn", ++ "subtype": "collection", ++ "entries": [ ++ { "group": "male_underwear" }, ++ { "distribution": [ { "group": "clothing_prisoner_shoes" }, { "group": "cop_shoes" } ] }, ++ { "distribution": [ { "item": "striped_shirt" }, { "group": "cop_torso" } ] }, ++ { "distribution": [ { "item": "striped_pants" }, { "group": "cop_pants" } ] }, ++ { "distribution": [ { "item": "tacvest" }, { "item": "kevlar" } ], "prob": 15 }, ++ { "group": "socks_unisex" }, ++ { "group": "cop_gloves", "prob": 20 }, ++ { "distribution": [ { "item": "bandana" }, { "group": "cop_helmet" } ], "prob": 50 }, ++ { "group": "clothing_glasses", "prob": 20 }, ++ { "group": "clothing_watch", "prob": 20 }, ++ { "item": "police_belt", "prob": 20 } ++ ] ++ }, ++ { ++ "type": "item_group", ++ "id": "NC_THUG_PRISONER_wield", ++ "items": [ ++ [ "baton-extended", 50 ], ++ [ "PR24-retracted", 50 ], ++ [ "knife_steak", 30 ], ++ [ "knife_chef", 30 ], ++ [ "knife_paring", 30 ], ++ [ "knife_butcher", 30 ], ++ [ "knife_meat_cleaver", 30 ], ++ [ "knife_carving", 30 ], ++ [ "pointy_stick", 30 ], ++ [ "cudgel", 20 ], ++ [ "knuckle_nail", 20 ], ++ [ "spear_spike", 20 ], ++ [ "spear_knife", 15 ], ++ [ "makeshift_sap", 15 ], ++ [ "homewrecker", 15 ], ++ [ "makeshift_knife", 15 ], ++ [ "nailboard", 15 ], ++ [ "sword_wood", 10 ], ++ [ "glass_shiv", 5 ], ++ [ "rock_sock", 5 ], ++ [ "sharp_toothbrush", 5 ], ++ [ "chisel", 5 ], ++ [ "scissors", 5 ], ++ [ "screwdriver", 5 ], ++ [ "knife_steak", 5 ], ++ [ "knuckle_brass", 5 ], ++ [ "switchblade", 5 ], ++ [ "throwing_knife", 5 ], ++ { ++ "distribution": [ { "group": "longguns_cop", "prob": 50, "contents-item": "shoulder_strap" }, { "group": "sidearms_cop", "prob": 50 } ], ++ "prob": 40 ++ } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_GENERIC", ++ "type": "talk_topic", ++ "dynamic_line": "<get_lost>", ++ "responses": [ ++ { "text": "Ok, sorry, I'm already leaving!", "topic": "TALK_DONE" }, ++ { "text": "Hey, <fuck_you>!", "topic": "TALK_DONE", "effect": "hostile" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_GREET", ++ "type": "talk_topic", ++ "dynamic_line": { ++ "u_has_var": "first_meeting", ++ "type": "dialogue", ++ "context": "first_meeting", ++ "value": "yes", ++ "no": "Hey, who the fuck are you? I haven't seen you 'round. Ah, fuck it, it doesn't matter.\nHere's the rules. The first and most important one: ALWAYS CLOSE THE FUCKING ENTRY DOOR BEHIND YOUR ASS! If you're okay with that, the following rules are: don't fuck with us, don't steal from us, don't start a fight without a reason with someone from us. Got it, punk? Now get lost.", ++ "yes": "<get_lost>" ++ }, ++ "speaker_effect": { "effect": { "u_add_var": "first_meeting", "type": "dialogue", "context": "first_meeting", "value": "yes" } }, ++ "responses": [ ++ { ++ "text": "Yeah, I got it. See ya.", ++ "topic": "TALK_DONE", ++ "condition": { "not": { "u_has_var": "first_meeting", "type": "dialogue", "context": "first_meeting", "value": "yes" } } ++ }, ++ { ++ "text": "I just wanted to ask if you have a job for me.", ++ "topic": "TALK_PRISONER_ANNOYED", ++ "condition": { ++ "and": [ ++ { "u_has_var": "first_meeting", "type": "dialogue", "context": "first_meeting", "value": "yes" }, ++ { ++ "not": { "u_has_var": "talked_to_greeter", "type": "dialogue", "context": "annoyed_greeter", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "I'm just hungry, and I thought you might give me some food for some job.", ++ "topic": "TALK_PRISONER_ANGRY", ++ "condition": { ++ "and": [ ++ { "u_has_var": "first_meeting", "type": "dialogue", "context": "first_meeting", "value": "yes" }, ++ { "u_has_var": "talked_to_greeter", "type": "dialogue", "context": "annoyed_greeter", "value": "yes" }, ++ { ++ "not": { "u_has_var": "talked_to_greeter", "type": "dialogue", "context": "angry_greeter", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "Can we just talk it over?", ++ "topic": "TALK_PRISONER_READY_TO_MUG", ++ "condition": { ++ "and": [ ++ { "u_has_var": "first_meeting", "type": "dialogue", "context": "first_meeting", "value": "yes" }, ++ { "u_has_var": "talked_to_greeter", "type": "dialogue", "context": "angry_greeter", "value": "yes" } ++ ] ++ } ++ }, ++ { "text": "Hey, <fuck_you>!", "topic": "TALK_DONE", "effect": "hostile" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_ANNOYED", ++ "type": "talk_topic", ++ "dynamic_line": { ++ "u_has_var": "talked_to_greeter", ++ "type": "dialogue", ++ "context": "annoyed_greeter", ++ "value": "yes", ++ "no": "Do I have a <swear> exclamation sign over my <swear> head, like I'm a <swear> quest-giver from some <swear> video game?", ++ "yes": "<get_lost>" ++ }, ++ "speaker_effect": { "effect": { "u_add_var": "talked_to_greeter", "type": "dialogue", "context": "annoyed_greeter", "value": "yes" } }, ++ "responses": [ ++ { ++ "text": "No, of course not! Sorry, I'm leaving.", ++ "topic": "TALK_DONE", ++ "condition": { "not": { "u_has_var": "talked_to_greeter", "type": "dialogue", "context": "annoyed_greeter", "value": "yes" } } ++ }, ++ { "text": "Hey, <fuck_you>!", "topic": "TALK_DONE", "effect": "hostile" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_ANGRY", ++ "type": "talk_topic", ++ "dynamic_line": { ++ "u_has_var": "talked_to_greeter", ++ "type": "dialogue", ++ "context": "annoyed_greeter", ++ "value": "yes", ++ "no": "<get_lost>", ++ "yes": "Are you deaf or stupid? I said I don't give a fuck for you and your <swear> problems. Bother me one more time, and you'll regret that. <get_lost>" ++ }, ++ "speaker_effect": { "effect": { "u_add_var": "talked_to_greeter", "type": "dialogue", "context": "angry_greeter", "value": "yes" } }, ++ "responses": [ ++ { ++ "text": "Ok, sorry, I promise I won't bother you anymore.", ++ "topic": "TALK_DONE", ++ "condition": { "not": { "u_has_var": "talked_to_greeter", "type": "dialogue", "context": "angry_greeter", "value": "yes" } } ++ }, ++ { "text": "Hey, <fuck_you>!", "topic": "TALK_DONE", "effect": "hostile" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_READY_TO_MUG", ++ "type": "talk_topic", ++ "dynamic_line": "You think you're immortal, huh, <name_b>?", ++ "responses": [ ++ { "text": "Gee, what's the matter with you? Okay, okay, I'm leaving.", "topic": "TALK_PRISONER_MUG" }, ++ { ++ "text": "It would be you who will regret talking to me like that.", ++ "topic": "TALK_DONE", ++ "effect": "hostile" ++ } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_MUG", ++ "type": "talk_topic", ++ "dynamic_line": [ "Not so fast, I think you need to pay for breaking your promise and bothering me. Give me your shit, now!" ], ++ "responses": [ ++ { "text": "Please don't hurt me! Take all that you want.", "topic": "TALK_MUG" }, ++ { "text": "What, <no>!", "topic": "TALK_DONE", "effect": "hostile" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_GREET", ++ "type": "talk_topic", ++ "dynamic_line": { ++ "u_has_var": "prisoner_leader_mission", ++ "type": "mission", ++ "context": "military_id", ++ "value": "yes", ++ "yes": "I have nothing more to say to you. <get_lost>", ++ "no": { ++ "u_has_var": "prisoner_leader_mission", ++ "type": "mission", ++ "context": "accepted", ++ "value": "yes", ++ "yes": "So, what are you waiting for?", ++ "no": { ++ "u_has_var": "prisoner_leader_mission", ++ "type": "mission", ++ "context": "completed", ++ "value": "yes", ++ "yes": "I don't know if you know, but there are sewers underneath the prison. I was planning an escape long before <the_cataclysm>, and while I was working on cleaning the sewers, I noticed a damaged wall section. There was a flow of fresh air coming out of it, so I think it's leading to the surface. It could be your way to freedom. Feel free to use it.", ++ "no": { ++ "u_has_var": "talked_to_leader", ++ "type": "dialogue", ++ "context": "first_meeting", ++ "value": "yes", ++ "yes": { ++ "u_has_var": "talked_to_leader", ++ "type": "dialogue", ++ "context": "cannibal", ++ "value": "yes", ++ "no": "It's you again.", ++ "yes": "You are what you eat, as they say." ++ }, ++ "no": "Hello there. Haven't seen you around before. You must be from the other wing. Managed to survive, huh?" ++ } ++ } ++ } ++ }, ++ "speaker_effect": { "effect": { "u_add_var": "talked_to_leader", "type": "dialogue", "context": "first_meeting", "value": "yes" } }, ++ "responses": [ ++ { ++ "text": "Yeah, I've been through situations far worse than that.", ++ "topic": "TALK_PRISONER_LEADER_INQUIRY", ++ "condition": { ++ "and": [ ++ { "not": { "u_has_var": "talked_to_leader", "type": "dialogue", "context": "first_meeting", "value": "yes" } }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "completed", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "It was a nightmare, lots of <zombies>, blood everywhere! Thank god I'm among living people again.", ++ "topic": "TALK_PRISONER_LEADER_FROWN", ++ "condition": { ++ "and": [ ++ { "not": { "u_has_var": "talked_to_leader", "type": "dialogue", "context": "first_meeting", "value": "yes" } }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "completed", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "[Cannibal] It's hard to die of hunger when there's so many tasty corpses lying around.", ++ "topic": "TALK_PRISONER_LEADER_LEARNED_ABOUT_CANNIBAL", ++ "condition": { ++ "and": [ ++ { "u_has_trait": "CANNIBAL" }, ++ { ++ "not": { "u_has_var": "talked_to_leader", "type": "dialogue", "context": "first_meeting", "value": "yes" } ++ }, ++ { "not": { "u_has_var": "talked_to_leader", "type": "dialogue", "context": "cannibal", "value": "yes" } }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "completed", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "I want to get out of this <swear> prison. I hoped you could help me with that.", ++ "topic": "TALK_PRISONER_LEADER_GIVES_WORK", ++ "condition": { ++ "and": [ ++ { "u_has_var": "talked_to_leader", "type": "dialogue", "context": "first_meeting", "value": "yes" }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "accepted", "value": "yes" } ++ }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "completed", "value": "yes" } ++ }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "I'm on my way.", ++ "topic": "TALK_DONE", ++ "condition": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "accepted", "value": "yes" } ++ }, ++ { ++ "text": "I don't know if I'll take your advice, but thanks nevertheless.", ++ "topic": "TALK_DONE", ++ "condition": { ++ "and": [ ++ { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "completed", "value": "yes" }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "Wait, what? A <swear> can of beans?! I went through hell to get this <swear> thing for you, and all you give me as reward is a <swear> can of beans?! I demand something more substantial.", ++ "topic": "TALK_PRISONER_LEADER_DEMANDED_SUBSTANTIAL_REWARD", ++ "condition": { ++ "and": [ ++ { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "completed", "value": "yes" }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "Nice talking to ya. Farewell.", ++ "topic": "TALK_DONE", ++ "condition": { ++ "and": [ ++ { "u_has_var": "talked_to_leader", "type": "dialogue", "context": "first_meeting", "value": "yes" }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "accepted", "value": "yes" } ++ }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "completed", "value": "yes" } ++ }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "Okay.", ++ "topic": "TALK_DONE", ++ "condition": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } ++ } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_LEARNED_ABOUT_CANNIBAL", ++ "type": "talk_topic", ++ "dynamic_line": [ ++ "Huh, even so? I'm not saying I approve your… tastes, but I definitely respect people who use all possibilities life has to offer." ++ ], ++ "speaker_effect": { "effect": { "u_add_var": "talked_to_leader", "type": "dialogue", "context": "cannibal", "value": "yes" } }, ++ "responses": [ { "text": "Yeah, we share the same opinions on this matter.", "topic": "TALK_NONE" } ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_INQUIRY", ++ "type": "talk_topic", ++ "dynamic_line": [ ++ "Well, that's a boastful statement. Not that I don't believe it, it's just…. Ah, nevermind. Let's get to the point. What do you want?" ++ ], ++ "responses": [ ++ { ++ "text": "I want to get out of this <swear> prison. I hoped you could help me with that.", ++ "topic": "TALK_PRISONER_LEADER_GIVES_WORK" ++ } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_FROWN", ++ "type": "talk_topic", ++ "dynamic_line": [ "Hold the horses, pal. Nobody allowed you to stay here - yet." ], ++ "responses": [ ++ { ++ "text": "Please! I don't want to go back there! I'm tired and hungry! I just need time to rest!", ++ "topic": "TALK_PRISONER_LEADER_ANNOYED" ++ }, ++ { "text": "Shit! Looks like I'm on my own now. Thanks for nothing. Bye.", "topic": "TALK_DONE" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_ANNOYED", ++ "type": "talk_topic", ++ "dynamic_line": [ ++ "We don't have much space, and there's not much food. Besides, I don't know you at all, and something tells me you won't survive another day." ++ ], ++ "responses": [ ++ { ++ "text": "[STR 11] I'm tougher than it seems!", ++ "topic": "TALK_PRISONER_LEADER_NO", ++ "condition": { "u_has_strength": 11 } ++ }, ++ { ++ "text": "[Survival 2] I have some survival expertise!", ++ "topic": "TALK_PRISONER_LEADER_NO", ++ "condition": { "u_has_skill": { "skill": "survival", "level": 2 } } ++ }, ++ { "text": "I guess I need to find some other place…", "topic": "TALK_DONE" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_NO", ++ "type": "talk_topic", ++ "dynamic_line": [ ++ "The answer is still no. In fact it might be better for us to kill you right away - you know, the less mouths to feed, the better. But I'm in a good mood today, so I've decided to help you get out of this island." ++ ], ++ "responses": [ ++ { "text": "Ok, I'm listening.", "topic": "TALK_PRISONER_LEADER_GIVES_WORK" }, ++ { "text": "You know, I think I'll manage without your help. Bye.", "topic": "TALK_DONE" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_GIVES_WORK", ++ "type": "talk_topic", ++ "dynamic_line": { ++ "u_has_var": "prisoner_leader_mission", ++ "type": "mission", ++ "context": "accepted", ++ "value": "yes", ++ "no": "I need you to retrieve some stuff from a locked safe. Interested?", ++ "yes": "So, what are you waiting for?" ++ }, ++ "responses": [ ++ { ++ "text": "[Show the military id card] You mean this stuff?", ++ "topic": "TALK_PRISONER_LEADER_SHOW_MILITARY_ID", ++ "condition": { ++ "and": [ ++ { "u_has_item": "id_military" }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "accepted", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "What's in the safe?", ++ "topic": "TALK_PRISONER_LEADER_ASKED_ABOUT_SAFE_CONTENTS", ++ "condition": { ++ "and": [ ++ { "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "accepted", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "What for do you need it?", ++ "topic": "TALK_PRISONER_LEADER_ASKED_ABOUT_WHAT_FOR_DO_YOU_NEED_IT", ++ "condition": { ++ "and": [ ++ { "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "accepted", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "Yeah, sure.", ++ "topic": "TALK_MISSION_OFFER", ++ "condition": { ++ "and": [ ++ { "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } }, ++ { ++ "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "accepted", "value": "yes" } ++ } ++ ] ++ } ++ }, ++ { ++ "text": "I have a bad feeling about this. Sorry, I'll pass.", ++ "topic": "TALK_DONE", ++ "condition": { "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "accepted", "value": "yes" } } ++ }, ++ { ++ "text": "I'm on my way.", ++ "topic": "TALK_DONE", ++ "condition": { ++ "and": [ ++ { "not": { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } }, ++ { "u_has_var": "prisoner_leader_mission", "type": "mission", "context": "accepted", "value": "yes" } ++ ] ++ } ++ } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_ASKED_ABOUT_SAFE_CONTENTS", ++ "type": "talk_topic", ++ "dynamic_line": [ ++ "As I said, that's the thing I need. You don't need to know what's that exactly. Just grab all things you find in the safe, and call it a day." ++ ], ++ "responses": [ ++ { "text": "That's weird.", "topic": "TALK_NONE" }, ++ { "text": "I have a bad feeling about this. Sorry, I'll pass.", "topic": "TALK_DONE" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_ASKED_ABOUT_WHAT_FOR_DO_YOU_NEED_IT", ++ "type": "talk_topic", ++ "dynamic_line": [ "Let's say that's none of your <swear> business. Other questions?" ], ++ "responses": [ ++ { "text": "That's weird.", "topic": "TALK_NONE" }, ++ { "text": "I have a bad feeling about this. Sorry, I'll pass.", "topic": "TALK_DONE" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_SHOW_MILITARY_ID", ++ "type": "talk_topic", ++ "speaker_effect": { "effect": { "u_add_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } }, ++ "dynamic_line": [ "Hey, where did you get it? Nevermind, just give it to me. Just <swear> now." ], ++ "responses": [ ++ { ++ "text": "Hey, no need to be hostile. Here you go, I don't need it anyway.", ++ "topic": "TALK_DONE", ++ "effect": { "u_sell_item": "id_military" } ++ }, ++ { ++ "text": "I went through incredible hardships to get it. Please, can I keep this to myself?", ++ "trial": { "type": "PERSUADE", "difficulty": 5, "mod": [ [ "ALTRUISM", 3 ], [ "TRUST", 1 ] ] }, ++ "failure": { "topic": "TALK_DONE", "effect": "hostile" }, ++ "success": { "topic": "TALK_PRISONER_LEADER_TRIAL_SUCCESS" } ++ }, ++ { ++ "text": "I killed tons of <zombies> while I was trying to get this thing. Do you really think you and your handful of losers pose a threat to me?", ++ "trial": { "type": "INTIMIDATE", "difficulty": 30, "mod": [ [ "BRAVERY", -1 ], [ "FEAR", 3 ] ] }, ++ "failure": { "topic": "TALK_DONE", "effect": "hostile" }, ++ "success": { "topic": "TALK_PRISONER_LEADER_TRIAL_SUCCESS" } ++ }, ++ { "text": "What, <no>!", "topic": "TALK_DONE", "effect": "hostile" } ++ ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_TRIAL_SUCCESS", ++ "type": "talk_topic", ++ "dynamic_line": [ ++ "Okay. It was convincing. I'll still get what I want, one way or another. You better watch your back from now on." ++ ], ++ "responses": [ { "text": "Noted. Bye.", "topic": "TALK_DONE" } ] ++ }, ++ { ++ "id": "TALK_PRISONER_LEADER_DEMANDED_SUBSTANTIAL_REWARD", ++ "type": "talk_topic", ++ "speaker_effect": { "effect": { "u_add_var": "prisoner_leader_mission", "type": "mission", "context": "military_id", "value": "yes" } }, ++ "dynamic_line": [ "I'm afraid you're not in the position to demand anything from me, <name_b>. <get_lost>" ], ++ "responses": [ ++ { "text": "Hey, <fuck_you>! You'll regret that!", "topic": "TALK_DONE", "effect": "hostile" }, ++ { "text": "Okay, fine. Cheapskate!", "topic": "TALK_DONE" } ++ ] ++ }, ++ { ++ "id": "MISSION_PRISONER_LEADER_GET_ID_CARD", ++ "type": "mission_definition", ++ "name": { "str": "Get The Thing from the chief's office" }, ++ "difficulty": 1, ++ "value": 0, ++ "goal": "MGOAL_FIND_ITEM", ++ "item": "id_military", ++ "origins": [ "ORIGIN_SECONDARY" ], ++ "dialogue": { ++ "describe": "Here's the job…", ++ "offer": "My snitch whispered in my ear that the thing I need is located in the chief's safe in his office. You need to crack it open and bring the contents to me. Don't try to use anything you find in there! Just bring all the stuff to me, and I'll help you. Deal?", ++ "accepted": "Great! Don't forget that I need all stuff from the safe, try not to lose a thing.", ++ "rejected": "Fine, I'll get the thing in any case, sooner or later.", ++ "advice": "The chief's office is on the other side of the prison. I think the road there is full of <zombies>, so you better find a weapon. Also you probably will need some tools to crack the safe open.", ++ "inquire": "Did you get the stuff already?", ++ "success": "At last! Give me a few moments to check if it isn't damaged. Here, take this for your troubles.", ++ "success_lie": "Huh. This isn't going to work like I thought.", ++ "failure": "You're useless. I should've killed you when I met you." ++ }, ++ "has_generic_rewards": false, ++ "start": { "effect": [ { "u_add_var": "prisoner_leader_mission", "type": "mission", "context": "accepted", "value": "yes" } ] }, ++ "end": { ++ "effect": [ ++ { "u_add_var": "prisoner_leader_mission", "type": "mission", "context": "completed", "value": "yes" }, ++ { "u_lose_var": "prisoner_leader_mission", "type": "mission", "context": "accepted" }, ++ { "u_buy_item": "can_beans", "container": "can_medium" } ++ ] ++ } ++ } ++] +--- a/data/json/monsters/zed_prisoner.json ++++ b/data/json/monsters/zed_prisoner.json +@@ -10,5 +10,32 @@ + "color": "green", + "melee_dice_sides": 4, + "death_drops": "mon_zombie_prisoner_death_drops" ++ }, ++ { ++ "id": "mon_zombie_prisoner_brute", ++ "type": "MONSTER", ++ "name": { "str": "prisoner brute" }, ++ "description": "This muscular zombie wears black and white striped prisoner clothes.", ++ "copy-from": "mon_zombie_brute", ++ "looks_like": "mon_zombie_brute", ++ "death_drops": "mon_zombie_prisoner_death_drops" ++ }, ++ { ++ "id": "mon_zombie_prisoner_fat", ++ "type": "MONSTER", ++ "name": { "str": "fat prisoner" }, ++ "description": "This fat zombie wears black and white striped prisoner clothes.", ++ "copy-from": "mon_zombie_fat", ++ "looks_like": "mon_zombie_fat", ++ "death_drops": "mon_zombie_prisoner_death_drops" ++ }, ++ { ++ "id": "mon_zombie_prisoner_tough", ++ "type": "MONSTER", ++ "name": { "str": "tough prisoner" }, ++ "description": "This tough-looking zombie wears black and white striped prisoner clothes.", ++ "copy-from": "mon_zombie_tough", ++ "looks_like": "mon_zombie_tough", ++ "death_drops": "mon_zombie_prisoner_death_drops" + } + ] +--- a/data/json/mapgen/prison_1.json ++++ b/data/json/mapgen/prison_1.json +@@ -25,12 +25,12 @@ + " s_____________________________________s+,,,,d,|--------+---|G|h|h|h|h| ", + " s_____________________________________s+,,,,dh|S,T|l,,,,,+<|,|g|g|g|g| ", + " s_____________________________________s|hhh,,,+,,,|l,,,,,--|,|h|h|h|h| ", +- " s____Y____Y____Y____Y____Y____Y_______s|------|---|l,3333,l|,|,,,,,,,| ", ++ " s____Y____Y____Y____Y____Y____Y_______s|------|---|l,5555,l|,|,,,,,,,| ", + " s____Y____Y____Y____Y____Y____Y_______s|,,,,,,,,,,|l,,,,,,l|G|------G| ", +- " s____Y____Y____Y____Y____Y____Y_______s@,,,,,,,,d,|l,3333,l|,,,,,,,|,| ", ++ " s____Y____Y____Y____Y____Y____Y_______s@,,,,,,,,d,|l,5555,l|,,,,,,,|,| ", + " s____Y____Y____Y____Y____Y____Y_______s@,,,,,,,,dh|l,,,,,,l|hth,hth|,| ", +- " s____Y____Y____Y____Y____Y____Y_______s|,,,,,,,,d,|l,3333,l|hth,hth|,| ", +- " sssssssssssssssssssssssssssssssssssssss|33333,,,,,|l,,,,,,l|,,,,,,,|,| ", ++ " s____Y____Y____Y____Y____Y____Y_______s|,,,,,,,,d,|l,5555,l|hth,hth|,| ", ++ " sssssssssssssssssssssssssssssssssssssss|55555,,,,,|l,,,,,,l|,,,,,,,|,| ", + " |---------------------------------------------@@-------@-----R-G-R--G| ", + " | f ss f s s s| ", + " | sssssssssssssssssssssssssssssssssHssssHsssssssssssssssssss| ", +@@ -168,9 +168,20 @@ + "^": "t_concrete", + "P": "t_concrete", + "Y": "t_pavement_y", ++ "C": "t_floor", ++ "L": "t_floor", ++ "5": "t_floor", + "Z": "t_door_bar_o" + }, +- "furniture": { "X": "f_exercise", "C": "f_counter", "P": "f_rack", "2": "f_home_furnace", "4": "f_water_heater", "L": "f_locker" }, ++ "furniture": { ++ "X": "f_exercise", ++ "C": "f_counter", ++ "5": "f_bench", ++ "P": "f_rack", ++ "2": "f_home_furnace", ++ "4": "f_water_heater", ++ "L": "f_locker" ++ }, + "items": { + "l": [ + { "item": "prison_weapons", "chance": 30 }, +@@ -465,7 +476,14 @@ + ], + "?": { "item": "autodoc_supplies", "chance": 100 } + }, +- "monster": { "Z": { "monster": "mon_zombie_prisoner" }, "C": { "monster": "mon_broken_cyborg" } } ++ "monster": { ++ "Z": [ ++ { "monster": "mon_zombie_prisoner" }, ++ { "monster": "mon_zombie_prisoner_fat" }, ++ { "monster": "mon_zombie_prisoner_tough" } ++ ], ++ "C": { "monster": "mon_broken_cyborg" } ++ } + } + }, + { +@@ -602,7 +620,6 @@ + "L": [ "t_floor" ], + "M": [ "t_floor" ], + "N": [ "t_floor" ], +- "O": [ "t_floor" ], + "P": [ "t_floor" ], + "Q": [ "t_floor" ], + "R": [ "t_floor" ], +@@ -628,7 +645,6 @@ + "L": [ "f_drill_press" ], + "M": [ "f_heavy_lathe" ], + "N": [ "f_utility_shelf" ], +- "O": [ "f_shredder" ], + "P": [ "f_workbench" ], + "Q": [ "f_cupboard" ], + "R": [ "f_locker" ], +@@ -663,7 +679,7 @@ + "U": { "item": "prison_canine_bowl", "chance": 70 }, + "Y": { "item": "clothing_outdoor_torso", "chance": 60 }, + "q": { "item": "trash_cart", "chance": 50, "repeat": [ 2, 3 ] }, +- "n": { "item": "oven", "chance": 70 }, ++ "n": { "item": "SUS_oven", "chance": 70 }, + "r": { "item": "cleaning", "chance": 50 }, + ":": { "item": "animalshelter_toys", "chance": 5 }, + "1": { "item": "office_paper", "chance": 50 }, +@@ -672,19 +688,39 @@ + "2": [ { "item": "cannedfood", "chance": 70, "repeat": [ 1, 3 ] }, { "item": "pasta", "chance": 70, "repeat": [ 1, 3 ] } ] + }, + "monster": { +- ",": [ { "monster": "mon_zombie_cop", "chance": 1 }, { "monster": "mon_zombie_prisoner", "chance": 2 } ], +- "_": [ { "monster": "mon_zombie_cop", "chance": 1 }, { "monster": "mon_zombie_prisoner", "chance": 2 } ], +- "(": [ { "monster": "mon_zombie_cop", "chance": 1 }, { "monster": "mon_zombie_prisoner", "chance": 2 } ], +- "#": [ { "monster": "mon_zombie_cop", "chance": 1 }, { "monster": "mon_zombie_prisoner", "chance": 2 } ], ++ ",": [ ++ { "monster": "mon_zombie_cop", "chance": 1 }, ++ { "monster": "mon_zombie_prisoner", "chance": 2 }, ++ { "monster": "mon_zombie_prisoner_fat", "chance": 2 }, ++ { "monster": "mon_zombie_prisoner_tough", "chance": 2 } ++ ], ++ "_": [ ++ { "monster": "mon_zombie_cop", "chance": 1 }, ++ { "monster": "mon_zombie_prisoner", "chance": 2 }, ++ { "monster": "mon_zombie_prisoner_fat", "chance": 2 }, ++ { "monster": "mon_zombie_prisoner_tough", "chance": 2 } ++ ], ++ "(": [ ++ { "monster": "mon_zombie_cop", "chance": 1 }, ++ { "monster": "mon_zombie_prisoner", "chance": 2 }, ++ { "monster": "mon_zombie_prisoner_fat", "chance": 2 }, ++ { "monster": "mon_zombie_prisoner_tough", "chance": 2 } ++ ], ++ "#": [ ++ { "monster": "mon_zombie_cop", "chance": 1 }, ++ { "monster": "mon_zombie_prisoner", "chance": 2 }, ++ { "monster": "mon_zombie_prisoner_fat", "chance": 2 }, ++ { "monster": "mon_zombie_prisoner_tough", "chance": 2 } ++ ], + "`": { "monster": "mon_zhark", "chance": 1 }, + ".": { "monster": "mon_zombie_cop", "chance": 1 }, +- "^": { "monster": "mon_zombie_brute", "chance": 1 }, ++ "^": { "monster": "mon_zombie_prisoner_brute", "chance": 1 }, + " ": { "monster": "mon_dog_zombie_cop", "chance": 1 }, + "U": { "monster": "mon_dog_gshepherd", "chance": 10 }, + ":": { "monster": "mon_dog_gshepherd", "chance": 1 }, + "<": { "monster": "mon_turret_riot" } + }, +- "place_monster": [ { "monster": "mon_zombie_hulk", "x": 45, "y": 3 }, { "monster": "mon_zombie_brute", "x": 60, "y": 56 } ], ++ "place_monster": [ { "monster": "mon_zombie_hulk", "x": 45, "y": 3 }, { "monster": "mon_zombie_prisoner_brute", "x": 60, "y": 56 } ], + "place_graffiti": [ { "text": "Dufresne was here", "x": 19, "y": 22 } ], + "computers": { + "a": { +@@ -740,7 +776,7 @@ + " ", + " ", + " ", +- " 54444444444444444445 54444444444444444444444444445 ", ++ " Ю444444444444444444Ю Ю444444444444444444444444444Ю ", + " 1..................1 1...........................1 ", + " 1..................1 1...........................1 ", + " 1..................1 1...........................1 ", +@@ -757,7 +793,7 @@ + " wdh,,qw(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((wq,,hdw ", + " |-w+w-| |-w+w-| ", + " (^( (^( ", +- " (^( 5444444444444444444444444444444444444444444444444444444444444444444444445 (^( ", ++ " (^( Ю44444444444444444444444444444444444444444444444444444444444444444444444Ю (^( ", + " (^( 1.......................................................................1 (^( ", + " (^( 1.......................................................................1 (^( ", + " (^( 1.......................................................................1 (^( ", +@@ -783,10 +819,10 @@ + " (^( 1.......................1 1...............................1 (^( ", + " (^( 1.......................1 1...............................1 (^( ", + " (^( 1.......................1 1...............................1 (^( ", +- " (^( 54444444444441..........1 1...............................1 (^( ", ++ " (^( Ю4444444444441..........1 1...............................1 (^( ", + " (^( 1 1..........1 1...............................1 (^( ", + " (^( 1 1..........1 1...............................1 (^( ", +- " (^( 1444444444444444444444445444444444444444544444444444444444444444444444445 (^( ", ++ " (^( 144444444444444444444444Ю444444444444444Ю4444444444444444444444444444444Ю (^( ", + " (^( (^( ", + " |-w+w-| |-w+w-| ", + " wdh,,qw(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((wq,,hdw ", +@@ -806,7 +842,7 @@ + "^": [ "t_concrete" ], + "1": [ "t_gutter_north" ], + "4": [ "t_gutter_west" ], +- "5": [ "t_gutter_drop" ], ++ "Ю": [ "t_gutter_drop" ], + "q": [ "t_floor" ] + }, + "furniture": { "q": [ "f_locker" ] }, +@@ -816,6 +852,682 @@ + } + }, + { ++ "type": "mapgen", ++ "method": "json", ++ "om_terrain": [ ++ [ "prison_island_1_1", "prison_island_1_2", "prison_island_1_3", "prison_island_1_4", "prison_island_1_5" ], ++ [ "prison_island_1_6", "prison_island_1_7", "prison_island_1_8", "prison_island_1_9", "prison_island_1_10" ], ++ [ "prison_island_1_11", "prison_island_1_12", "prison_island_1_13", "prison_island_1_14", "prison_island_1_15" ] ++ ], ++ "object": { ++ "faction_owner": [ { "id": "prisoners", "x": [ 5, 18 ], "y": [ 33, 47 ] }, { "id": "prisoners", "x": [ 5, 18 ], "y": [ 48, 56 ] } ], ++ "fill_ter": "t_region_groundcover_barren", ++ "rows": [ ++ "````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````", ++ "````````````###*********````````````````№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№````````````````````", ++ "```````*****###****#¦***```````````````№№''''''''''''''''''''''''''''''''''''''''''''''''''''''''''№````````````````````", ++ "``******###***##***#****``````````````№№'' |----------| '№№№№№'№````````````````````", ++ "``*####*###***##***#******####```````№№'' |7Б7Б77Б7Б7| '№..>№'№````````````````````", ++ "***########******###******######````№№'' |7Б7Б77Б7Б7| '№...№'№````````````````````", ++ "*#############*###################`№№'' |7ББББББББ7| '№№@№№'№````````````````````", ++ "*№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№'' |----?-----| '''''''№````````````````````", ++ "*№''''''''''''''''''''''''''''''''''' /|,,,,,,,,,,| ' №````````````````````", ++ "*№'№№№№№' |--g--|XXX,,,3333|/ ' №````````````````````", ++ "*№'№>пп№' |-----------------------------|,,,,,|----?-----|--------------------------| ' №````````````````````", ++ "*№'№ппп№' |bo|bo|bo|bo|bo|bo|bo|bo|bo|bo|,,,,,,,,,,,,,,,,|bo|bo|bo|bo|bo|bo|bo|bo|b<| ' №````````````````````", ++ "`№'№№@№№' |b,|b,|b,|b,|b,|b,|b,|b,|b,|b,|,,,,,,,,,,,,,,,,|b,|b,|b,|b,|b,|b,|b,|b,|b,| ' №````````````````````", ++ "`№''''''' |T,|T,|T,|T,|T,|T,|T,|T,|T,|T,|,,,|---@----|,,,|T,|T,|T,|T,|T,|T,|T,|T,|T,| ' №````````````````````", ++ "`№'' |-G|-G|-G|-G|-G|-G|-G|-G|-G|-G|,,,|h...Y.А%|,,,|-G|-G|-G|-G|-G|-G|-G|-G|-G| ' №````````````````````", ++ "`№'' |,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,|dd.....1|,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,| ' №````````````````````", ++ "`№'' |,,,,,,,,,,,,,,,,,,,,,,,,,,,,,B,,,|.......1|,,,B,,,,,,,,,,,,,,,,,,,,,,,,,,| ' №````````````````````", ++ "`№'' g,,,3333,,,3333,,,3333,,,3333,G,,,|dh.11..6|,,,G,3333,,,3333,,,3333,,,3333g ' №````````````````````", ++ "`№'' |,,,,,,,,,,,,,,,,,,,,,,,,,,,,,B,,,|d..66...|,,,B,,,,,,,,,,,,,,,,,,,,,,,,,,| ' №````````````````````", ++ "`№'' |,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|,,,|6h..h..6|,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,| ' №````````````````````", ++ "`№'' |-G|-G|-G|-G|-G|-G|-G|-G|-G|-G|,,,|6.....h6|,,,|-G|-G|-G|-G|-G|-G|-G|-G|-G| ' №````````````````````", ++ "`№'' |T,|T,|T,|T,|T,|T,|T,|T,|T,|T,|,,,|--------|,,,|T,|T,|T,|T,|T,|T,|T,|T,|T,| ' №````````````````````", ++ "`№'' |b,|b,|b,|b,|b,|b,|b,|b,|b,|b,|,,,,,,,,,,,,,,,,|b,|b,|b,|b,|b,|b,|b,|b,|b,| ' №````````````````````", ++ "`№'' |bo|bo|bo|bo|bo|bo|bo|bo|bo|bo|,,,,,,,,,,,,,,,,|bo|bo|bo|bo|bo|bo|bo|bo|bo| ' №````````````````````", ++ "`№'' |-----------------------------|,,,,,,,,,,,,,,,,|-----------|--------------| ' №````````````````````", ++ "`№'' B^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|------BGGB------|,,,,,,,,,,,|Н,,,,,,?¡¡¡¡¡¿B ' №````````````````````", ++ "`№'' B^E^^^888^^^E^^^^^^^^^^^^^^^^^^|bbT|,,,,,,|Tbb|L,,,P,,P,,,M|dh,,,,н|-?|¡¡¿B ' №````````````````````", ++ "`№'' B^^^^^^^^^^^^^^^^^^^^^^^^^^^^^8|o,,G,,,,,,G,,o|,,,,P,,P,,,,|---?---|О,|¡¡¿B ' №````````````````````", ++ "`№'' B^E^^^888^^^E^^^^^^^^^^^^^^^^^8|---|,,3,,,|---|L,,,P,,P,,,M|,,,,,,,|--|-----|-| ' №````````````````````", ++ "`№'' B^^^^^^^^^^^^^^^^^^^^^^^^^^^^^8|bbT|,,3,,,|Tbb|,,,,P,,P,,,,|,,ttt,,|,,+,hgh,=,|/ ' №````````````````````", ++ "`№'' B^E^^^888^^^K^^^^^^^^^^^^^^^^^^|o,,G,,3,,,G,,o|L,,,P,,P,,,M|,,,,,,,|,,|-----|,|---|№№Ĝ№№````````````````````", ++ "`№'' / B^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|---|,,3,,,|---|,,,,,,,,,,,,|333,333|,,+,hgh,=,=,,3| ' №````````````````````", ++ "`№''|-------|------|-------|))_____)_____))|bbT|,,,,,,|Tbb|lll,,,,,NNNN|,,,,,,,|,,|-----|,|,,3| ' №№```````````````````", ++ "`№''|°°°°°°°°°°°°°°|o,,T,,o|_))____)____))_|o,,G,,,,,,G,,o|---|,,,|----|333,333|,,+,hgh,=,|,,3| ' №№ZZZZZZZ!!{!!ZZZZZZ", ++ "`№''|°33333°°33333°|bb,,,bb|__))___)___))__|---|,,,,,,|---|М,ММ,,,,мммм|---?---|@-|-----|-|,,,|''''''№!!!!!!!!!!!!!!!!!Z", ++ "`№''|°uuuuu°°uuuuu°|-o,3,o-|f__)___)___)__f|bbT|,,3,,,|Tbb|М,,,,,,,,,,,|^^^^^^^^^^Ĝ,,,,,,,,,,,g''''''B!!!!!!!!!!!!!!!!!Z", ++ "`№''|°33333°°33333°|bb,3,bb|__))___)___))__|o,,G,,3,,,G,,o|М,ММ,,,,,,,,@^^^^^^^^^^Ĝ,,,,,,,,,,,@''''''Ĝ!!!!!!!!!!!!!!!!!Z", ++ "`№''|°°°°°°°°°°°°°°|-o,3,o-|_))____)____))_|---|,,3,,,|---|М,ММ,,,,,,,,|^^^^^|-gg-|------|,,,,g''''''B!!!!!!!!!!!!!!!!!Z", ++ "`№''|°°°°°°°°°°°°°°|bb,3,bb|))_____)_____))|bbT|,,3,,,|Tbb|М,,,,,,,мммм|^^^^^|hd.6|qd...o|,,,,|''''''№!!!!!!!!!!!!!!!!!Z", ++ "`№''|°33333°°33333°|-o,,,o-|^^^^^^^^^^^^^^^|o,,G,,,,,,G,,o|М,ММ,,,,,,,,|^^^^^|.d.6|hd..h.?,,,,| ' №№ZZZZZZZ!!{!!ZZZZZZ", ++ "`№''|°uuuuu°°uuu°°°|bb,,,bb|^^^^^88888^^^^-|---|-BGGB-|---|---|-?-|мммм|^^^^^@...6|......|,,,,| ' №№```````````````````", ++ "`№''|°33333°°33333°|---G---|--G--|--------|^^^^^^^^^^^^|,X|777|,,,|----|-BĜB-|Y..1|%А.11Y|,,,А| ' №````````````````````", ++ "`№''|°°°°°°°°°°°°°°|^^^^^^^^^^^^^|66666611|^^^^^^^^^^^^|,X|БББ|Л,л|йББи|^^^^^|%...|----|-|-?--|№№Ĝ№№````````````````````", ++ "`№''|°°°°°°°°°°°°°°ПØ^^^^^^^^^^^^|..h..h..|^^^^^^^^^^^^|,X|Б77|Л,л|КБББ=^^^^^|66..|Аd.1|vV...J| ' №````````````````````", ++ "`№''|°°°°°°°°°°°°°°ПØ^^^^^^^^^^^^g........@^^^^^^^^^^^^?,,?Б77|Л,л|----|^^^^^|--|?|hd.1|......g ' №±±±±±±``````````````", ++ "`№''|°°°°°°°°°°°°°°|Ø^^^^^^^^^^^^|.h,.....|^^^^^^^^^^^^|,3|БББ|Л,л|КБББ=^^^|-|А%|'|....|...t,A| ' №`````}``````````````", ++ "`№''|°33333°°°°3u3°|^^^^^^^^^^^^^|ddd66А%Y|^^|---|^^^^^|,3|777|,,,|йББи|^^^|Y...|'|A..A|A..t,A| ' №`````}``````````````", ++ "`№''|°uuuuu°°°°3u3°|^^^^^^^^^^^^^|--------|^^|%dq|^^^^^|--|---|-@-|----|^^^@....|'|A..A|A..t,A| ' №`````}``````````````", ++ "`№''|°33333°°°°3u3°|^^^^^^^^^^^^^^^^^^^^^^^^^|hd,?^^^^^^^^^^^^^^^^^^^^^^^^^|1.d.|'|....?......g ''}!!!!µ±``````````````", ++ "`№''|°°°°°°°°°°°°°°|^^^^^^^^^^^^^^^^^^^^^^^^^|,,,|^^^^^^^^^^^^^^^^^^^^^^^^^|1.dH|'|11.%|qА%ooа| ''¶±±±±±±``````````````", ++ "`№''|-------??-----|ĜĜ|------|-ĜĜ-|---?--|---|,,,|^^^^^^^^^^^^^^^^^^^^^^^^^|o.dƼ|'|----|-|----| ' №````````````````````", ++ "`№'' /|22²²ИИИИ³³©©|''||00000|^^^^|x,,,,y|,s,s,,s|^^^^^^^^^^^^^^^^^^^^^^^^^|----|''''''''|дддД| ' №````````````````````", ++ "`№'' |°°°°°°°°°°°°|''}Ĝ....0|^^^^|x,,,,y|,h,h,,h|^^^^|-@---|^^^^^^^^^^^^^^?....|-?----|'|§¢¢¢| ' №````````````````````", ++ "`№'' g§°°°nnnn°°°°@''||....0|^^^^|,,,,,,|,,,,,,,|^^^^|%...6|^^^^^^^^^^^^^^|....|¢¢¢¢¥¢|'|--?-| ' №````````````````````", ++ "`№'' g§°°°nnnn°°°°|'a||00000|^^^^|DDDWWW|,s,s,,s|^^^^|...h6|^^^^^^^^^^^^^^|ЖЖЖЖ|оЁ£|''''''В ' №````````````````````", ++ "`№'' |°°°°°°°°°°°°|---------|^^^^|-------|h,h,,h|^^^^|А1ddd|----G----|-@--|----|---|--|ГВВВВВВ ' №````````````````````", ++ "`№'' |qqИИeeИИИИSS|b|b|b|b|b|^^^^|АAAAooo|------|-G--|--|gg|bo|,,,|ob|Y..А|S44|%.dq|/ ' №````````````````````", ++ "`№''|--------------|bobobobob|^^^^|,,,,,,,H|b,T|.....|T,b| |b,G,,,G,b|........?..dHg''''''''''''' №````````````````````", ++ "`№''|U|U|U|U|З...dd|,,,,,,,,,|^^^^?,,ddd,,,|b,,G.....G,,b| |,T|,,,|T,|........|....|' |w-|w-|w-|--№````````````````````", ++ "`№''|Г|Г|Г|Г|1....h|T,,3333,,G^^^^|%,,h,,,H|---|.....|---| |--|,,,|--|=-|=-|=-|m.1-|' |CI|CI|CI|Кй№````````````````````", ++ "`№''g..............|,,,,,,,,,|^^^^|--------|b,T|.....|T,b| |bo|,,,|ob|,c|,c|,c|m.З|'' |C.|C.|C.|ББ№````````````````````", ++ "`№''|..........|-@-|,obobobob|^^^^@......d5|b,,G.....G,,b| |b,G,,,G,b|,,|,,|,,|---|' |.h|.h|.h|ББ№````````````````````", ++ "`№''|QQQRRRcccS|/''|9|b|b|b|b|^^^^|-=|Y..dH|---|.....|---| |,T|,,,|T,|bb|bb|bb|/ '' /|.d|.d|.d|Би№````````````````````", ++ "`№''|-------g--|'''|---------|-ĜĜ-|ББ|.....|b,T|.ddd.|T,b| |--|---|--|--------| '|--|+-|+-|+-|=-№````````````````````", ++ "`№'''''''В::::::'''Г'''''''''''''/|йи|11.%q|b,,G.6h..G,,b|''''''''''''''''''''''''''+..............g````````````````````", ++ "`№'№№@№№'В:::::::::В ''' |-----g--|---|-----|---|' №№@№№ |+-|+-|+-|+-|=-№````````````````````", ++ "`№'№...№'В:;;;:::::В ''''''''''''''''''''''''''''' №...№ |.d|.d|.d|.d|БЙ№````````````````````", ++ "`№'№>..№'В:::::::::В '' №..>№ |.h|.h|.h|.h|ББ№````````````````````", ++ "`№'№№№№№'ВВВВВВВВВВВ '' №№№№№ |C.|C.|C.|C.|ББ№````````````````````", ++ "`№''''''''''''''''''''''''''' |CI|CI|CI|CI|Б7№````````````````````", ++ "`№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№g№№g№№g№№g№№№№№````````````````````", ++ "````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````" ++ ], ++ "palettes": [ "prison_palette" ], ++ "terrain": { ++ " ": [ ++ [ "t_region_groundcover_urban", 20 ], ++ [ "t_region_groundcover_barren", 5 ], ++ [ "t_region_shrub", 2 ], ++ [ "t_region_tree", 1 ] ++ ], ++ "-": "t_brick_wall", ++ "|": "t_brick_wall", ++ "№": "t_concrete_wall", ++ ".": [ "t_floor" ], ++ ":": [ "t_region_groundcover_barren" ], ++ "#": [ "t_sand" ], ++ "*": [ "t_region_groundcover_barren" ], ++ ";": [ "t_trunk" ], ++ "/": [ "t_gutter_downspout" ], ++ "<": [ "t_slope_down" ], ++ "¦": [ "t_slope_down" ], ++ "§": [ "t_stairs_down" ], ++ "!": [ "t_dock" ], ++ "¡": [ "t_region_groundcover" ], ++ "¿": [ "t_shrub_rose" ], ++ "µ": [ "t_gates_control_metal" ], ++ "{": [ "t_dock" ], ++ ")": [ "t_pavement_y" ], ++ "}": [ "t_door_metal_locked" ], ++ "`": [ [ "t_water_dp", 20 ], "t_water_sh" ], ++ "^": [ "t_concrete" ], ++ "'": [ "t_concrete" ], ++ "Ø": [ "t_concrete" ], ++ "£": [ "t_thconc_floor" ], ++ "¢": [ "t_thconc_floor" ], ++ "¤": [ "t_thconc_floor" ], ++ "¥": [ "t_thconc_floor" ], ++ "²": [ "t_floor" ], ++ "³": [ "t_floor" ], ++ "©": [ "t_floor" ], ++ "°": [ "t_floor" ], ++ "¶": [ "t_card_industrial" ], ++ "@": [ "t_door_metal_pickable" ], ++ "?": [ "t_door_locked" ], ++ "%": [ "t_floor" ], ++ "±": [ "t_wall_metal" ], ++ "0": [ "t_floor" ], ++ "1": [ "t_floor" ], ++ "2": [ "t_floor" ], ++ "3": [ "t_floor" ], ++ "4": [ "t_floor" ], ++ "5": [ "t_floor" ], ++ "Ƽ": [ "t_floor" ], ++ "6": [ "t_console_broken" ], ++ "7": [ "t_floor" ], ++ "8": [ "t_concrete" ], ++ "9": [ "t_floor" ], ++ "a": [ "t_card_military" ], ++ "A": [ "t_floor" ], ++ "C": [ "t_floor" ], ++ "E": [ "t_concrete" ], ++ "f": [ "t_backboard" ], ++ "Ĝ": [ "t_door_bar_locked" ], ++ "G": [ "t_door_bar_c", "t_door_bar_o" ], ++ "H": [ "t_floor" ], ++ "I": [ "t_floor" ], ++ "J": [ "t_floor" ], ++ "K": [ "t_concrete" ], ++ "L": [ "t_floor" ], ++ "M": [ "t_floor" ], ++ "N": [ "t_floor" ], ++ "P": [ "t_floor" ], ++ "q": [ "t_floor" ], ++ "Q": [ "t_floor" ], ++ "R": [ "t_floor" ], ++ "s": [ "t_floor" ], ++ "u": [ "t_floor" ], ++ "U": [ "t_concrete" ], ++ "v": [ "t_floor" ], ++ "V": [ "t_floor" ], ++ "y": [ "t_floor" ], ++ "Y": [ "t_floor" ], ++ "x": [ "t_floor" ], ++ "X": [ "t_floor" ], ++ "Z": [ "t_fence_rope" ], ++ "А": [ "t_floor" ], ++ "а": [ "t_floor" ], ++ "Б": [ "t_linoleum_white" ], ++ "В": [ "t_chainfence" ], ++ "Г": [ "t_chaingate_l" ], ++ "Д": [ "t_sewage_pump" ], ++ "д": [ "t_sewage_pipe" ], ++ "Е": [ "t_water_pump" ], ++ "Ё": [ "t_thconc_floor" ], ++ "Ж": [ "t_floor" ], ++ "З": [ "t_floor" ], ++ "И": [ "t_floor" ], ++ "и": [ "t_linoleum_white" ], ++ "Й": [ "t_linoleum_white" ], ++ "й": [ "t_linoleum_white" ], ++ "К": [ "t_linoleum_white" ], ++ "Л": [ "t_floor" ], ++ "л": [ "t_floor" ], ++ "М": [ "t_floor" ], ++ "м": [ "t_floor" ], ++ "Н": [ "t_floor" ], ++ "н": [ "t_floor" ], ++ "О": [ "t_floor" ], ++ "о": [ "t_thconc_floor" ], ++ "П": [ "t_door_boarded" ], ++ "п": [ "t_floor" ] ++ }, ++ "furniture": { ++ "²": [ "f_cupboard" ], ++ "³": [ "f_cupboard" ], ++ "©": [ "f_cupboard" ], ++ "<": [ "f_bookcase" ], ++ "{": [ "f_bitts" ], ++ "%": [ "f_air_conditioner" ], ++ "*": [ "f_boulder_large" ], ++ "Ø": [ "f_dumpster" ], ++ "0": [ "f_locker" ], ++ "1": [ "f_filing_cabinet" ], ++ "2": [ "f_cupboard" ], ++ "3": [ "f_metal_bench" ], ++ "4": [ "f_glass_fridge" ], ++ "5": [ "f_safe_l" ], ++ "Ƽ": [ "f_safe_l" ], ++ "7": [ "f_shower" ], ++ "8": [ "f_metal_bench" ], ++ "9": [ "f_dumpster" ], ++ "A": [ "f_sofa" ], ++ "C": [ "f_bed" ], ++ "H": [ "f_armchair" ], ++ "I": [ "f_dresser" ], ++ "J": [ "f_pinball_machine" ], ++ "K": [ "f_floor_canvas" ], ++ "L": [ "f_drill_press" ], ++ "M": [ "f_heavy_lathe" ], ++ "N": [ "f_utility_shelf" ], ++ "P": [ "f_workbench" ], ++ "q": [ "f_trashcan" ], ++ "Q": [ "f_cupboard" ], ++ "R": [ "f_locker" ], ++ "s": [ "f_desk" ], ++ "u": [ "f_table" ], ++ "U": [ "f_fiber_mat" ], ++ "x": [ "f_clothing_rail" ], ++ "X": [ "f_rack_coat" ], ++ "y": [ "f_locker" ], ++ "Y": [ "f_rack_coat" ], ++ "А": [ "f_speaker_cabinet" ], ++ "а": [ "f_fridge" ], ++ "Ж": [ "f_locker" ], ++ "З": [ "f_bookcase" ], ++ "И": [ "f_counter" ], ++ "и": [ "f_sink" ], ++ "Й": [ "f_rack_coat" ], ++ "й": [ "f_toilet" ], ++ "К": [ "f_trashcan" ], ++ "Л": [ "f_utility_shelf" ], ++ "л": [ "f_rack_coat" ], ++ "М": [ "f_crate_c" ], ++ "м": [ "f_crate_c" ], ++ "Н": [ "f_bookcase" ], ++ "н": [ "f_wardrobe" ], ++ "О": [ "f_locker" ], ++ "о": [ "f_locker" ], ++ "п": [ "f_bookcase" ] ++ }, ++ "toilets": { "й": { } }, ++ "place_item": [ ++ { "item": "stethoscope", "x": 82, "y": 56, "chance": 100 }, ++ { "item": "basketball", "x": [ 29, 41 ], "y": [ 32, 38 ], "chance": 100, "repeat": [ 1, 2 ] }, ++ { "item": "baseball", "x": [ 28, 42 ], "y": [ 25, 28 ], "chance": 100, "repeat": [ 1, 3 ] }, ++ { "item": "holy_symbol", "x": 74, "y": 29, "chance": 90 }, ++ { "item": "holybook_bible1", "x": 75, "y": 29, "chance": 90 }, ++ { "item": "icon", "x": 76, "y": 29, "chance": 90 }, ++ { "item": "pliers", "x": 81, "y": 54, "chance": 100 }, ++ { "item": "hammer", "x": 59, "y": 32, "chance": 100 }, ++ { "item": "id_industrial", "x": 42, "y": 61, "chance": 100 }, ++ { "item": "id_military", "x": 79, "y": 50, "chance": 100 }, ++ { "item": "holster", "x": 79, "y": 50, "chance": 100 }, ++ { "item": "m9", "x": 79, "y": 50, "chance": 100 }, ++ { "item": "m9mag", "x": 79, "y": 50, "chance": 100 }, ++ { "item": "9mm", "x": 79, "y": 50, "chance": 100 } ++ ], ++ "item": { "н": { "item": "cassock", "chance": 95 } }, ++ "place_items": [ ++ { "item": "table_destruction", "x": 16, "y": 40, "chance": 100 }, ++ { "item": "table_destruction", "x": 17, "y": 40, "chance": 100 } ++ ], ++ "items": { ++ "²": { "item": "SUS_knife_drawer", "chance": 80 }, ++ "³": { "item": "SUS_cookware", "chance": 80 }, ++ "©": { "item": "SUS_spice_collection", "chance": 80 }, ++ "Ø": { "item": "trash_cart", "chance": 50, "repeat": [ 2, 3 ] }, ++ "c": { "item": "animalshelter_utility", "chance": 45, "repeat": [ 2, 3 ] }, ++ "C": { "item": "bed", "chance": 70 }, ++ "I": [ { "item": "cop_torso", "chance": 33 }, { "item": "cop_pants", "chance": 33 }, { "item": "cop_shoes", "chance": 33 } ], ++ "l": [ { "item": "hand_tools", "chance": 50 }, { "item": "tools_carpentry", "chance": 50 } ], ++ "m": [ { "item": "drugs_rare", "chance": 80, "repeat": [ 1, 2 ] } ], ++ "N": [ { "item": "hand_tools", "chance": 50 }, { "item": "tools_carpentry", "chance": 50 } ], ++ "n": { "item": "SUS_oven", "chance": 70 }, ++ "q": { "item": "trash_cart", "chance": 50, "repeat": [ 2, 3 ] }, ++ "Q": { "item": "prison_canine_food", "chance": 70, "repeat": [ 3, 5 ] }, ++ "R": [ ++ { "item": "animalshelter_softdrug", "chance": 70, "repeat": [ 1, 2 ] }, ++ { "item": "animalshelter_hardrug", "chance": 30, "repeat": [ 1, 2 ] } ++ ], ++ "u": { "item": "mil_base_mess_hall", "chance": 30 }, ++ "U": { "item": "prison_canine_bowl", "chance": 70 }, ++ "x": [ { "item": "prison_textile", "chance": 90, "repeat": [ 1, 5 ] } ], ++ "Y": { "item": "clothing_outdoor_torso", "chance": 60 }, ++ ":": { "item": "animalshelter_toys", "chance": 5 }, ++ "0": [ ++ { "item": "prison_weapons", "chance": 50, "repeat": [ 1, 3 ] }, ++ { "item": "prison_armor", "chance": 50, "repeat": [ 1, 3 ] } ++ ], ++ "1": { "item": "SUS_office_filing_cabinet", "chance": 50 }, ++ "2": { "item": "SUS_utensils", "chance": 80 }, ++ "4": [ { "item": "softdrugs", "chance": 50 }, { "item": "harddrugs", "chance": 50 } ], ++ "5": { "item": "alcohol_bottled_canned", "chance": 95, "repeat": [ 1, 3 ] }, ++ "9": { "item": "trash_cart", "chance": 50, "repeat": [ 2, 3 ] }, ++ "а": { "item": "SUS_fridge_breakroom", "chance": 65 }, ++ "Ж": { "item": "SUS_janitors_closet", "chance": 95 }, ++ "З": { "item": "doctors_books", "chance": 75, "repeat": [ 1, 2 ] }, ++ "Л": { "item": "prison_workshop_safety", "chance": 75 }, ++ "л": { "item": "prison_jumpsuit", "chance": 75 }, ++ "М": { "item": "wood_workshop", "chance": 75 }, ++ "м": { "item": "supplies_metal", "chance": 75 }, ++ "Н": { "item": "religious_books", "chance": 90, "repeat": [ 1, 3 ] }, ++ "О": [ ++ { "item": "tools_earthworking", "chance": 90, "repeat": [ 1, 2 ] }, ++ { "item": "farming_tools", "chance": 90, "repeat": [ 1, 2 ] }, ++ { "item": "hazmat_boots", "chance": 90 } ++ ], ++ "о": { "item": "tools_electronics", "chance": 90, "repeat": [ 1, 2 ] } ++ }, ++ "vendingmachines": { "v": { "item_group": "vending_drink" }, "V": { "item_group": "vending_food" } }, ++ "monster": { ++ ",": [ ++ { "monster": "mon_zombie_prisoner", "chance": 2 }, ++ { "monster": "mon_zombie_prisoner_fat", "chance": 2 }, ++ { "monster": "mon_zombie_prisoner_tough", "chance": 2 } ++ ], ++ ".": { "monster": "mon_zombie_cop", "chance": 1 }, ++ "¢": { "monster": "mon_zombie_technician", "chance": 20 }, ++ "^": { "monster": "mon_zombie_prisoner_brute", "chance": 1 }, ++ "`": { "monster": "mon_zhark", "chance": 1 }, ++ ":": { "monster": "mon_dog_gshepherd", "chance": 1 }, ++ "U": { "monster": "mon_dog_gshepherd", "chance": 10 }, ++ "'": [ { "monster": "mon_dog_zombie_cop", "chance": 1 }, { "monster": "mon_zombie_cop", "chance": 1 } ] ++ }, ++ "place_monster": [ ++ { "monster": "mon_zombie_brute_shocker", "x": 65, "y": 36, "name": "The Foreman" }, ++ { "monster": "mon_zombie_master", "x": 40, "y": 63, "name": "The Warden" }, ++ { "monster": "mon_zombie_kevlar_2", "x": 77, "y": 48, "name": "The Chief" }, ++ { "monster": "mon_zombie_scientist", "x": 81, "y": 58, "name": "The Doctor" }, ++ { "monster": "mon_zombie_necro", "x": 75, "y": 28, "name": "The Priest" }, ++ { "monster": "mon_zombie_prisoner_brute", "x": 50, "y": 33, "name": "The Bully" } ++ ], ++ "place_npcs": [ ++ { "class": "prisoner_generic", "x": 17, "y": 53 }, ++ { "class": "prisoner_greeter", "x": 17, "y": 43 }, ++ { "class": "prisoner_generic", "x": 15, "y": 41 }, ++ { "class": "prisoner_generic", "x": 10, "y": 41 }, ++ { "class": "prisoner_generic", "x": 8, "y": 41 }, ++ { "class": "prisoner_generic", "x": 9, "y": 53 }, ++ { "class": "prisoner_generic", "x": 17, "y": 47 } ++ ], ++ "place_zones": [ ++ { "type": "NPC_INVESTIGATE_ONLY", "faction": "prisoners", "x": [ 5, 18 ], "y": [ 33, 47 ] }, ++ { "type": "NPC_INVESTIGATE_ONLY", "faction": "prisoners", "x": [ 5, 18 ], "y": [ 48, 56 ] } ++ ], ++ "nested": { ++ "^": { "chunks": [ [ "corpse_blood_3x3", 5 ], [ "null", 95 ] ] }, ++ ".": { "chunks": [ [ "corpse_blood_3x3", 5 ], [ "null", 95 ] ] }, ++ ",": { "chunks": [ [ "corpse_blood_3x3", 5 ], [ "null", 95 ] ] }, ++ "'": { "chunks": [ [ "corpse_blood_3x3", 5 ], [ "null", 95 ] ] }, ++ "Б": { "chunks": [ [ "corpse_blood_3x3", 5 ], [ "null", 95 ] ] } ++ }, ++ "place_vehicles": [ { "vehicle": "boat_motor_single", "x": 100, "y": 45, "chance": 100, "status": 0 } ] ++ } ++ }, ++ { ++ "type": "mapgen", ++ "method": "json", ++ "om_terrain": [ ++ [ ++ "prison_island_1_2f_1", ++ "prison_island_1_2f_2", ++ "prison_island_1_2f_3", ++ "prison_island_1_2f_4", ++ "prison_island_1_2f_5" ++ ], ++ [ ++ "prison_island_1_2f_6", ++ "prison_island_1_2f_7", ++ "prison_island_1_2f_8", ++ "prison_island_1_2f_9", ++ "prison_island_1_2f_10" ++ ], ++ [ ++ "prison_island_1_2f_11", ++ "prison_island_1_2f_12", ++ "prison_island_1_2f_13", ++ "prison_island_1_2f_14", ++ "prison_island_1_2f_15" ++ ] ++ ], ++ "object": { ++ "rows": [ ++ " ", ++ " №№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№ ", ++ " №№ № ", ++ " №№ |----------| 14w41 № ", ++ " №№ |..........| wd,<1 № ", ++ " №№ |..........| wdh,1 № ", ++ " №№ |..........| 14w41 № ", ++ " №№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№ |..........| № ", ++ " № |..........| № ", ++ " № 14w41 |-----Ю..........| № ", ++ " № 1<,dw |-----------------------------|................Ю--------------------------| № ", ++ " № 1,hdw |.........................................................................| № ", ++ " № 14w41 |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |.........................................................................| № ", ++ " № |-----------------------------|....................................|------| № ", ++ " № |-...................................| № ", ++ " № |...................................|--| № ", ++ " № |......................................| № ", ++ " № |......................................|-------| № ", ++ " № |..............................................| № ", ++ " № |..............................................Ю---| № ", ++ " № |..................................................| № ", ++ " № |---Ю------------------| |..................................................| №№ ", ++ " № |......................| |..................................................| №№ ", ++ " № |......................| |...........................|----------|...........| № ", ++ " № |......................| |...........................| |...........| № ", ++ " № |......................| |...........................| |...........| № ", ++ " № |......................| |...........................| |----|...........| № ", ++ " № |......................| |...........................| |................| № ", ++ " № |......................| |...........................| |................| №№ ", ++ " № |......................| -|-----------|...............| |................| №№ ", ++ " № |..............|-------| |--------| |...............| |................| № ", ++ " № |..............| |........| |...............| |................| № ", ++ " № |..............| |........| |...............| |................| № ", ++ " № |..............| |........| |...............| |..|-|...........| № ", ++ " № |..............| |........| |...............| |-|..| |...........| №..... ", ++ " № |..............| |........| |---| |...............| |....| |...........| №..... ", ++ " № |..............| |--------| |...| |---------------| |....| |...........| №..... ", ++ " № |..............| |...| |....| |...........| №..... ", ++ " № |..............| |...| |....| |...........| № ", ++ " № |-Ю............|---------| |----------|...| |....| |------|....| № ", ++ " № |......................| |..............| |....| |....| № ", ++ " № |......................| |..............| |-----| |....|------| |....| № ", ++ " № |......................| |..............| |.....| |...........| |----| № ", ++ " № |......................| |..............| |.....| |...........| № ", ++ " № |......................| |..............| |.....|--------------|........Ю--| № ", ++ " № |......................| |..............|----|..|--|.......................| № ", ++ " № |-|......................| |......................| |.......................| № ", ++ " № |........................| |......................| |.......................| |----------|№ ", ++ " № |........................| |......................| |......................-| |..........|№ ", ++ " № |........................| |......................| |......................| |..........|№ ", ++ " № |..........|---|.........| |......................| |..................Ю---| |..........|№ ", ++ " № |..........| |.........| |......................| |..................| |..........|№ ", ++ " № |----------| |---------| |......................| |------------------| |--Ю..........|№ ", ++ " № |......................| |.............|№ ", ++ " № 14w41 Ю----------------------| 14w41 |.............|№ ", ++ " № 1,hdw wdh,1 |.............|№ ", ++ " № 1<,dw wd,<1 |.............|№ ", ++ " № 14w41 44w41 |.............|№ ", ++ " № |-------------|№ ", ++ " №№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№ ", ++ " " ++ ], ++ "palettes": [ "prison_palette" ], ++ "terrain": { ++ " ": [ "t_open_air" ], ++ ".": [ "t_flat_roof" ], ++ "№": "t_concrete_wall", ++ "1": "t_brick_wall", ++ "4": "t_brick_wall", ++ "|": [ "t_gutter_north" ], ++ "-": [ "t_gutter_west" ], ++ "w": [ "t_metal_grate_window_noglass" ], ++ "Ю": [ "t_gutter_drop" ] ++ }, ++ "item": { ".": { "item": "feces_bird", "chance": 2 } } ++ } ++ }, ++ { ++ "type": "mapgen", ++ "method": "json", ++ "om_terrain": [ ++ [ ++ "prison_island_1_ug_1", ++ "prison_island_1_ug_2", ++ "prison_island_1_ug_3", ++ "prison_island_1_ug_4", ++ "prison_island_1_ug_5" ++ ], ++ [ ++ "prison_island_1_ug_6", ++ "prison_island_1_ug_7", ++ "prison_island_1_ug_8", ++ "prison_island_1_ug_9", ++ "prison_island_1_ug_10" ++ ], ++ [ ++ "prison_island_1_ug_11", ++ "prison_island_1_ug_12", ++ "prison_island_1_ug_13", ++ "prison_island_1_ug_14", ++ "prison_island_1_ug_15" ++ ] ++ ], ++ "object": { ++ "faction_owner": [ { "id": "prisoners", "x": [ 8, 23 ], "y": [ 50, 57 ] } ], ++ "rows": [ ++ " ", ++ " ", ++ " @ ", ++ " ` |----------| ", ++ " ```````` |~~~~~~~~~~| ", ++ " ` |---|~|----| ", ++ " ``````` |~| ", ++ " ` |---|~|----| ", ++ " ``` |~~~~~~~~~~| ", ++ " ` |---|~|----| ", ++ " ` |~| ", ++ " ` |~| ", ++ " `` |---------------------------------------|~|-------------------------------| ", ++ " `` |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@| ", ++ " ` |---------------------------------------|~|-------------------------------| ", ++ " `` |~| ", ++ " ` |~| ", ++ " ` |~| ", ++ " ` |~| ", ++ " ` |~| ", ++ " ` |---------------------------------------|~|-------------------------------| ", ++ " `` |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| ", ++ " ``` |--------------------------------|~|-------------------|~|----------------| ", ++ " `` |~| |~| ", ++ " ` ^^^^^^ |~| |~| ", ++ " `` ^ ^^^^' |~| |~| ", ++ " ` ^ ' |~| |~| ", ++ " ``` ^ ' |~| |~| ", ++ " `` ^^^^^^^^^ ' |~| |~| ", ++ " ` ^ ^ ' |~| |~| ", ++ " ` ^ ^ '' |~| |~| ", ++ " ` ^ ' |~| |~| ", ++ " ` ^^^^ '' |~| |~| ", ++ " `` ^^^^^^^ ' |~| |~| ", ++ " ` ^^^ ^^^^^^^^ '' |~| |~| ", ++ " ` ^^^ ^^ ^ ' |~| |~| ", ++ " `` ^^^ ^^ ^ ' |~| |~| ", ++ " ` ^^^ ^ ' |~| |~| ", ++ " ` ^^^ ^ ' |~| |~| ", ++ " ` ^^^ ^^ ' |~| |~| ", ++ " ` ^^^````` ^^ '' |~| |-| |~| ", ++ " ` ````` '' |~| |~| |~| ", ++ " ``````````` '' |~|-----------|~|-----|~| ", ++ " ' |~~~~~~~~~~~~~~~~~~~~~~~| ", ++ " '' |~|-----------|~|-----|~| ", ++ " '' |~| |~| |~| ", ++ " ' |~| |~| |~| ", ++ " ' |~| |-| |~| ", ++ " ' |~| |~| ", ++ " !!!!!!!!!!!!!!!!! '''' |~| |~| |----| ", ++ " !1.2!3.4!5.6!7.8! ' |------------|~|--------------------~|-------------------|____| ", ++ " !1:2!3:4!5:6!7:8! ' |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~д___| ", ++ " !!!!?!!!?!!!?!!!?!! '' |~|---|~|----|~|-------------------|~|-----------------|~|>___| ", ++ " !>.d..:.......:...! ''' |~| ||~|| |~| |~| |~|----| ", ++ " !>.h..:.......:...! ' |~| |~~~| |~| |~| |~| ", ++ " !!!!?!!!?!!!?!!!?!! |--/---~| |---| |~| |~| |~| ", ++ " !9:9!0:A!B:C!D:D! |~~~~~~~| |~| |~| |~| ", ++ " !9.9!0.A!B.C!D.D! |-------| |~| |~| |~| ", ++ " !!!!!!!!!!!!!!!!! |~| |~| |~| ", ++ " |~| |~| |~| ", ++ " |~| |~| |~| ", ++ " |~| |~| |~| ", ++ " |-------------------------------|~|-------------------|~|-----------------|~|---------| ", ++ " |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| ", ++ " |-----------------------------------------------------------------------------------|~| ", ++ " |~| ", ++ " |~| ", ++ " |~| ", ++ " |~| ", ++ " |~| ", ++ " |-| ", ++ " " ++ ], ++ "palettes": [ "prison_palette" ], ++ "terrain": { ++ " ": [ "t_rock" ], ++ "^": [ "t_rock_floor" ], ++ "_": [ "t_grate" ], ++ "~": [ "t_sewage" ], ++ "'": [ "t_water_sh_murky_underground" ], ++ "`": [ "t_swater_dp_underground" ], ++ "|": [ "t_brick_wall" ], ++ "-": [ "t_brick_wall" ], ++ "/": [ "t_brick_wall_halfway" ], ++ ">": [ "t_stairs_up" ], ++ "@": [ "t_slope_up" ], ++ ".": [ "t_thconc_floor" ], ++ ":": [ "t_thconc_floor_olight" ], ++ "!": [ "t_concrete_wall" ], ++ "?": [ "t_door_bar_locked" ], ++ "1": [ "t_thconc_floor" ], ++ "2": [ "t_thconc_floor" ], ++ "3": [ "t_thconc_floor" ], ++ "4": [ "t_thconc_floor" ], ++ "5": [ "t_thconc_floor" ], ++ "6": [ "t_thconc_floor" ], ++ "7": [ "t_thconc_floor" ], ++ "8": [ "t_thconc_floor" ], ++ "9": [ "t_thconc_floor" ], ++ "0": [ "t_thconc_floor" ], ++ "A": [ "t_thconc_floor" ], ++ "B": [ "t_thconc_floor" ], ++ "C": [ "t_thconc_floor" ], ++ "D": [ "t_thconc_floor" ], ++ "d": [ "t_thconc_floor" ], ++ "h": [ "t_thconc_floor" ], ++ "д": [ "t_sewage_pipe" ] ++ }, ++ "furniture": { ++ "1": "f_crate_o", ++ "2": "f_crate_o", ++ "3": "f_crate_o", ++ "4": "f_crate_o", ++ "5": "f_crate_o", ++ "6": "f_crate_o", ++ "7": "f_crate_o", ++ "8": "f_crate_o", ++ "9": "f_utility_shelf", ++ "0": "f_utility_shelf", ++ "A": "f_utility_shelf", ++ "B": "f_utility_shelf", ++ "C": "f_utility_shelf", ++ "D": "f_fridge" ++ }, ++ "item": { ++ "1": { "item": "carrot", "chance": 95, "repeat": [ 1, 20 ] }, ++ "2": { "item": "potato", "chance": 95, "repeat": [ 1, 20 ] }, ++ "3": { "item": "onion", "chance": 95, "repeat": [ 1, 20 ] }, ++ "4": { "item": "cabbage", "chance": 95, "repeat": [ 1, 20 ] }, ++ "5": { "item": "corn", "chance": 95, "repeat": [ 1, 20 ] }, ++ "6": { "item": "garlic", "chance": 95, "repeat": [ 1, 10 ] }, ++ "7": { "item": "apple", "chance": 95, "repeat": [ 1, 20 ] }, ++ "8": { "item": "lemon", "chance": 95, "repeat": [ 1, 10 ] } ++ }, ++ "items": { ++ "9": { "item": "SUS_pantry", "chance": 95 }, ++ "0": { "item": "teabag_box", "chance": 95, "repeat": [ 1, 20 ] }, ++ "A": { "item": "groce_ingredient", "chance": 95, "repeat": [ 1, 20 ] }, ++ "B": { "item": "groce_bread", "chance": 95, "repeat": [ 1, 20 ] }, ++ "C": { "item": "groce_cereal", "chance": 95, "repeat": [ 1, 20 ] }, ++ "D": { "item": "butcher_raw_meat", "chance": 95, "repeat": [ 1, 20 ] }, ++ "d": { "item": "magazines", "chance": 50 } ++ }, ++ "monster": { "~": { "monster": "mon_sewer_fish", "chance": 2 }, "'": { "monster": "mon_sewer_snake", "chance": 10 } }, ++ "place_npcs": [ ++ { "class": "prisoner_leader", "x": 9, "y": 54 }, ++ { "class": "prisoner_generic", "x": 14, "y": 53 }, ++ { "class": "prisoner_generic", "x": 18, "y": 54 }, ++ { "class": "prisoner_generic", "x": 22, "y": 53 } ++ ] ++ } ++ }, ++ { ++ "id": "table_destruction", ++ "type": "item_group", ++ "subtype": "collection", ++ "items": [ ++ { "item": "2x4", "count": [ 2, 4 ] }, ++ { "item": "wood_panel", "count": [ 0, 1 ] }, ++ { "item": "nail", "charges": [ 4, 8 ] }, ++ { "item": "splinter", "count": 1 } ++ ] ++ }, ++ { + "id": "prison_canine_food", + "type": "item_group", + "items": [ { "item": "dogfood", "prob": 100, "container-item": "can_medium" } ] +@@ -839,5 +1552,63 @@ + [ "jerky", 40 ], + [ "rope_6", 15 ] + ] ++ }, ++ { ++ "type": "item_group", ++ "id": "prison_workshop_safety", ++ "subtype": "collection", ++ "items": [ ++ { "item": "mask_dust", "prob": 75, "damage": [ 1, 4 ] }, ++ { "item": "gloves_work", "prob": 75, "damage": [ 1, 4 ] }, ++ { "item": "glasses_safety", "prob": 75, "damage": [ 1, 4 ] } ++ ] ++ }, ++ { ++ "id": "prison_jumpsuit", ++ "type": "item_group", ++ "items": [ { "item": "jumpsuit", "prob": 75, "damage": [ 1, 4 ] } ] ++ }, ++ { ++ "type": "item_group", ++ "id": "prisoner_or_cop_clothes", ++ "subtype": "collection", ++ "entries": [ ++ { "group": "male_underwear", "damage": [ 1, 4 ] }, ++ { ++ "distribution": [ ++ { ++ "collection": [ ++ { "item": "striped_shirt", "damage": [ 1, 4 ] }, ++ { "item": "striped_pants", "damage": [ 1, 4 ] }, ++ { "group": "clothing_prisoner_shoes", "damage": [ 1, 4 ], "prob": 20 }, ++ { "item": "bandana", "damage": [ 1, 4 ] } ++ ] ++ }, ++ { ++ "collection": [ ++ { "group": "cop_pants", "damage": [ 1, 4 ] }, ++ { "group": "cop_shoes", "damage": [ 1, 4 ], "prob": 20 }, ++ { "group": "cop_torso", "damage": [ 1, 4 ] }, ++ { "group": "clothing_watch", "prob": 20 }, ++ { "item": "police_belt", "damage": [ 1, 4 ], "prob": 20 } ++ ] ++ } ++ ], ++ "prob": 90 ++ }, ++ { "group": "socks_unisex", "damage": [ 1, 4 ] }, ++ { "group": "clothing_glasses", "prob": 20 }, ++ { "item": "corpse_generic_human", "damage": 4 } ++ ] ++ }, ++ { ++ "type": "mapgen", ++ "method": "json", ++ "nested_mapgen_id": "corpse_blood_3x3", ++ "object": { ++ "mapgensize": [ 3, 3 ], ++ "place_items": [ { "item": "prisoner_or_cop_clothes", "x": 0, "y": 0, "chance": 30 } ], ++ "place_fields": [ { "field": "fd_blood", "x": [ 0, 2 ], "y": [ 0, 2 ], "intensity": 1, "age": 10 } ] ++ } + } + ] +--- a/data/json/itemgroups/Weapons_Mods_Ammo/guns.json ++++ b/data/json/itemgroups/Weapons_Mods_Ammo/guns.json +@@ -733,31 +743,39 @@ + }, + { + "type": "item_group", +- "id": "guns_cop", +- "//": "Police issue weapons of all types", ++ "id": "longguns_cop", + "items": [ +- { "item": "ar15", "prob": 15, "charges-min": 0, "charges-max": 30 }, +- { "item": "cx4", "prob": 20, "charges-min": 0, "charges-max": 15 }, +- { "item": "fn57", "prob": 20, "charges-min": 0, "charges-max": 20 }, +- { "item": "fn_p90", "prob": 5, "charges-min": 0, "charges-max": 50 }, +- { "item": "glock_19", "prob": 15, "charges-min": 0, "charges-max": 15 }, +- { "item": "glock_22", "prob": 20, "charges-min": 0, "charges-max": 15 }, +- { "item": "hk_mp5", "prob": 10, "charges-min": 0, "charges-max": 30 }, +- { "item": "m9", "prob": 5, "charges-min": 0, "charges-max": 15 }, +- { "item": "mossberg_500", "prob": 15, "charges-min": 0, "charges-max": 8 }, +- { "item": "remington_700", "prob": 5, "charges-min": 0, "charges-max": 4 }, +- { "item": "remington_870", "prob": 20, "charges-min": 0, "charges-max": 6 }, +- { "item": "sig_40", "prob": 20, "charges-min": 0, "charges-max": 12 }, +- { "item": "usp_45", "prob": 10, "charges-min": 0, "charges-max": 12 }, +- { "item": "usp_9mm", "prob": 10, "charges-min": 0, "charges-max": 15 }, +- { "item": "kp32", "prob": 1, "charges-min": 0, "charges-max": 7 }, +- { "item": "kp3at", "prob": 2, "charges-min": 0, "charges-max": 6 }, +- { "item": "rugerlcp", "prob": 2, "charges-min": 0, "charges-max": 6 }, +- { "item": "kpf9", "prob": 3, "charges-min": 0, "charges-max": 7 } ++ { "item": "ar15", "prob": 20, "charges": [ 0, 30 ] }, ++ { "item": "mossberg_500", "prob": 10, "charges": [ 0, 6 ] }, ++ { "item": "remington_700", "prob": 5, "charges": [ 0, 4 ] }, ++ { "item": "remington_870", "prob": 10, "charges": [ 0, 5 ] } + ] + }, + { + "type": "item_group", ++ "id": "sidearms_cop", ++ "items": [ ++ { "item": "fn57", "prob": 20, "charges": [ 0, 20 ] }, ++ { "item": "glock_19", "prob": 15, "charges": [ 0, 15 ] }, ++ { "item": "glock_22", "prob": 20, "charges": [ 0, 15 ] }, ++ { "item": "m9", "prob": 5, "charges": [ 0, 15 ] }, ++ { "item": "sig_40", "prob": 20, "charges": [ 0, 12 ] }, ++ { "item": "usp_45", "prob": 10, "charges": [ 0, 12 ] }, ++ { "item": "usp_9mm", "prob": 10, "charges": [ 0, 15 ] }, ++ { "item": "kp32", "prob": 1, "charges": [ 0, 7 ] }, ++ { "item": "kp3at", "prob": 2, "charges": [ 0, 6 ] }, ++ { "item": "rugerlcp", "prob": 2, "charges": [ 0, 6 ] }, ++ { "item": "kpf9", "prob": 3, "charges": [ 0, 7 ] } ++ ] ++ }, ++ { ++ "type": "item_group", ++ "id": "guns_cop", ++ "//": "Police issue weapons of all types", ++ "items": [ { "group": "longguns_cop", "prob": 50 }, { "group": "sidearms_cop", "prob": 50 } ] ++ }, ++ { ++ "type": "item_group", + "id": "guns_swat", + "//": "Guns issued to paramilitary forces in addition to standard police issue.", + "items": [ +--- a/data/json/overmap/overmap_special/specials.json ++++ b/data/json/overmap/overmap_special/specials.json +@@ -948,6 +982,67 @@ + }, + { + "type": "overmap_special", ++ "id": "Island prison", ++ "overmaps": [ ++ { "point": [ -1, -1, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 0, -1, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 1, -1, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 2, -1, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 3, -1, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 4, -1, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 5, -1, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 5, 0, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 5, 1, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 5, 2, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 5, 3, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 4, 3, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 3, 3, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 2, 3, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 1, 3, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 0, 3, 0 ], "overmap": "lake_surface" }, ++ { "point": [ -1, 3, 0 ], "overmap": "lake_surface" }, ++ { "point": [ -1, 2, 0 ], "overmap": "lake_surface" }, ++ { "point": [ -1, 1, 0 ], "overmap": "lake_surface" }, ++ { "point": [ -1, 0, 0 ], "overmap": "lake_surface" }, ++ { "point": [ 0, 0, 0 ], "overmap": "prison_island_1_1_north" }, ++ { "point": [ 1, 0, 0 ], "overmap": "prison_island_1_2_north" }, ++ { "point": [ 2, 0, 0 ], "overmap": "prison_island_1_3_north" }, ++ { "point": [ 3, 0, 0 ], "overmap": "prison_island_1_4_north" }, ++ { "point": [ 4, 0, 0 ], "overmap": "prison_island_1_5_north" }, ++ { "point": [ 0, 1, 0 ], "overmap": "prison_island_1_6_north" }, ++ { "point": [ 1, 1, 0 ], "overmap": "prison_island_1_7_north" }, ++ { "point": [ 2, 1, 0 ], "overmap": "prison_island_1_8_north" }, ++ { "point": [ 3, 1, 0 ], "overmap": "prison_island_1_9_north" }, ++ { "point": [ 4, 1, 0 ], "overmap": "prison_island_1_10_north" }, ++ { "point": [ 0, 2, 0 ], "overmap": "prison_island_1_11_north" }, ++ { "point": [ 1, 2, 0 ], "overmap": "prison_island_1_12_north" }, ++ { "point": [ 2, 2, 0 ], "overmap": "prison_island_1_13_north" }, ++ { "point": [ 3, 2, 0 ], "overmap": "prison_island_1_14_north" }, ++ { "point": [ 4, 2, 0 ], "overmap": "prison_island_1_15_north" }, ++ { "point": [ 0, 0, 1 ], "overmap": "prison_island_1_2f_1_north" }, ++ { "point": [ 1, 0, 1 ], "overmap": "prison_island_1_2f_2_north" }, ++ { "point": [ 2, 0, 1 ], "overmap": "prison_island_1_2f_3_north" }, ++ { "point": [ 3, 0, 1 ], "overmap": "prison_island_1_2f_4_north" }, ++ { "point": [ 4, 0, 1 ], "overmap": "prison_island_1_2f_5_north" }, ++ { "point": [ 0, 1, 1 ], "overmap": "prison_island_1_2f_6_north" }, ++ { "point": [ 1, 1, 1 ], "overmap": "prison_island_1_2f_7_north" }, ++ { "point": [ 2, 1, 1 ], "overmap": "prison_island_1_2f_8_north" }, ++ { "point": [ 3, 1, 1 ], "overmap": "prison_island_1_2f_9_north" }, ++ { "point": [ 4, 1, 1 ], "overmap": "prison_island_1_2f_10_north" }, ++ { "point": [ 0, 2, 1 ], "overmap": "prison_island_1_2f_11_north" }, ++ { "point": [ 1, 2, 1 ], "overmap": "prison_island_1_2f_12_north" }, ++ { "point": [ 2, 2, 1 ], "overmap": "prison_island_1_2f_13_north" }, ++ { "point": [ 3, 2, 1 ], "overmap": "prison_island_1_2f_14_north" }, ++ { "point": [ 4, 2, 1 ], "overmap": "prison_island_1_2f_15_north" } ++ ], ++ "locations": [ "lake_surface" ], ++ "city_distance": [ 3, -1 ], ++ "city_sizes": [ 4, 12 ], ++ "occurrences": [ 50, 100 ], ++ "flags": [ "CLASSIC", "LAKE", "UNIQUE" ] ++ }, ++ { ++ "type": "overmap_special", + "id": "Prison Hidden Lab", + "overmaps": [ + { "point": [ 0, -1, 0 ], "overmap": "road_end_north" }, +--- a/data/json/overmap/overmap_terrain/overmap_terrain_public_institutional.json ++++ b/data/json/overmap/overmap_terrain/overmap_terrain_public_institutional.json +@@ -256,7 +285,52 @@ + "prison_alcatraz_12_2f", + "prison_alcatraz_13_2f", + "prison_alcatraz_14_2f", +- "prison_alcatraz_15_2f" ++ "prison_alcatraz_15_2f", ++ "prison_island_1_1", ++ "prison_island_1_2", ++ "prison_island_1_3", ++ "prison_island_1_4", ++ "prison_island_1_5", ++ "prison_island_1_6", ++ "prison_island_1_7", ++ "prison_island_1_8", ++ "prison_island_1_9", ++ "prison_island_1_10", ++ "prison_island_1_11", ++ "prison_island_1_12", ++ "prison_island_1_13", ++ "prison_island_1_14", ++ "prison_island_1_15", ++ "prison_island_1_2f_1", ++ "prison_island_1_2f_2", ++ "prison_island_1_2f_3", ++ "prison_island_1_2f_4", ++ "prison_island_1_2f_5", ++ "prison_island_1_2f_6", ++ "prison_island_1_2f_7", ++ "prison_island_1_2f_8", ++ "prison_island_1_2f_9", ++ "prison_island_1_2f_10", ++ "prison_island_1_2f_11", ++ "prison_island_1_2f_12", ++ "prison_island_1_2f_13", ++ "prison_island_1_2f_14", ++ "prison_island_1_2f_15", ++ "prison_island_1_ug_1", ++ "prison_island_1_ug_2", ++ "prison_island_1_ug_3", ++ "prison_island_1_ug_4", ++ "prison_island_1_ug_5", ++ "prison_island_1_ug_6", ++ "prison_island_1_ug_7", ++ "prison_island_1_ug_8", ++ "prison_island_1_ug_9", ++ "prison_island_1_ug_10", ++ "prison_island_1_ug_11", ++ "prison_island_1_ug_12", ++ "prison_island_1_ug_13", ++ "prison_island_1_ug_14", ++ "prison_island_1_ug_15" + ], + "name": "prison", + "sym": "p", +--- a/data/json/start_locations.json ++++ b/data/json/start_locations.json +@@ -303,11 +348,17 @@ + { + "type": "start_location", + "id": "sloc_prison_alcatraz", +- "name": "Island prison", ++ "name": "Island prison type A", + "terrain": [ "prison_alcatraz_3" ] + }, + { + "type": "start_location", ++ "id": "sloc_prison_island", ++ "name": "Island prison type B", ++ "terrain": [ "prison_island_1_1" ] ++ }, ++ { ++ "type": "start_location", + "id": "sloc_mi-go_camp", + "name": "Mi-go camp", + "terrain": [ "mi-go_camp1" ] |