diff --git a/data/Goats_mods/Goats_Tow_mod/items/generic.json b/data/Goats_mods/Goats_Tow_mod/items/generic.json index 6aebbdad8..f302cc677 100644 --- a/data/Goats_mods/Goats_Tow_mod/items/generic.json +++ b/data/Goats_mods/Goats_Tow_mod/items/generic.json @@ -26,7 +26,6 @@ "color": "light_blue", "symbol": "&", "material": [ "steel", "plastic" ], - "bashing": 6, "to_hit": -1, "price": "0 cent", "price_postapoc": "0 cent" @@ -41,7 +40,6 @@ "color": "light_blue", "symbol": "&", "material": [ "steel", "plastic" ], - "bashing": 6, "to_hit": -1, "price": "0 cent", "price_postapoc": "0 cent" @@ -56,7 +54,6 @@ "color": "light_blue", "symbol": "&", "material": [ "steel", "plastic" ], - "bashing": 6, "to_hit": -1, "price": "0 cent", "price_postapoc": "0 cent" diff --git a/data/Goats_mods/Goats_Tow_mod/items/tows.json b/data/Goats_mods/Goats_Tow_mod/items/tows.json index 1a6c1013d..33799f206 100644 --- a/data/Goats_mods/Goats_Tow_mod/items/tows.json +++ b/data/Goats_mods/Goats_Tow_mod/items/tows.json @@ -10,13 +10,12 @@ "material": [ "steel", "plastic" ], "volume": "2100 ml", "weight": "295 g", - "bashing": 6, "category": "tools", "price": "80 cent", "price_postapoc": "5 USD", "max_charges": 6, "initial_charges": 6, - "use_action": [ "TOW_ATTACH" ], + "use_action": { "type": "link_up", "is_cable_item": true, "cable_length": 6, "targets": [ "no_link", "vehicle_tow" ] }, "qualities": [ [ "ROPE", 2 ] ], "flags": [ "CABLE_SPOOL", "TOW_CABLE" ] }, @@ -31,13 +30,12 @@ "material": [ "steel", "plastic" ], "volume": "2300 ml", "weight": "780 g", - "bashing": 6, "category": "tools", "price": "80 cent", "price_postapoc": "5 USD", "max_charges": 6, "initial_charges": 6, - "use_action": [ "TOW_ATTACH" ], + "use_action": { "type": "link_up", "is_cable_item": true, "cable_length": 6, "targets": [ "no_link", "vehicle_tow" ] }, "qualities": [ [ "ROPE", 2 ] ], "flags": [ "CABLE_SPOOL", "TOW_CABLE" ] }, diff --git a/data/Goats_mods/Goats_Tow_mod/items/vehicle_parts.json b/data/Goats_mods/Goats_Tow_mod/items/vehicle_parts.json index a227d0267..80a04abb2 100644 --- a/data/Goats_mods/Goats_Tow_mod/items/vehicle_parts.json +++ b/data/Goats_mods/Goats_Tow_mod/items/vehicle_parts.json @@ -3,35 +3,33 @@ "id": "rope_tow", "type": "vehicle_part", "name": { "str": "lightweight tow rope" }, - "symbol": "{", "categories": [ "other" ], "color": "light_blue", - "broken_symbol": "*", "broken_color": "dark_gray", "damage_modifier": 10, "durability": 80, "description": "A lightweights tow rope, if the other end was attached to a vehicle, it could pull it.", "item": "rope_tow", - "requirements": { "removal": { "time": 0 } }, - "flags": [ "NOINSTALL", "UNMOUNT_ON_DAMAGE", "TOW_CABLE" ], - "breaks_into": [ { "item": "broken_rope_tow", "count": 2 } ] + "requirements": { "removal": { "time": "5 s" } }, + "flags": [ "UNMOUNT_ON_DAMAGE", "TOW_CABLE" ], + "breaks_into": [ { "item": "broken_rope_tow", "count": 2 } ], + "variants": [ { "symbols": "{", "symbols_broken": "*" } ] }, { "id": "belt_tow", "type": "vehicle_part", "name": { "str": "heavy duty tow belt" }, - "symbol": "{", "categories": [ "other" ], "color": "light_blue", - "broken_symbol": "*", "broken_color": "dark_gray", "damage_modifier": 10, "durability": 100, "description": "A Heavy duty tow belt, if the other end was attached to a vehicle, it could pull it.", "item": "belt_tow", - "requirements": { "removal": { "time": 0 } }, - "flags": [ "NOINSTALL", "UNMOUNT_ON_DAMAGE", "TOW_CABLE" ], - "breaks_into": [ { "item": "broken_belt_tow", "count": 2 } ] + "requirements": { "removal": { "time": "5 s" } }, + "flags": [ "UNMOUNT_ON_DAMAGE", "TOW_CABLE" ], + "breaks_into": [ { "item": "broken_belt_tow", "count": 2 } ], + "variants": [ { "symbols": "{", "symbols_broken": "*" } ] }, { "id": "hd_tow_cable", @@ -39,6 +37,6 @@ "copy-from": "hd_tow_cable", "name": { "str": "heavy duty tow cable" }, "breaks_into": [ { "item": "broken_hd_tow_cable", "count": 2 } ], - "requirements": { "removal": { "time": 0 } } + "requirements": { "removal": { "time": "5 s" } } } ] diff --git a/data/Goats_mods/Gods_Gun_Mod/gods_gunmods.json b/data/Goats_mods/Gods_Gun_Mod/gods_gunmods.json index 5e2795985..aec64019e 100644 --- a/data/Goats_mods/Gods_Gun_Mod/gods_gunmods.json +++ b/data/Goats_mods/Gods_Gun_Mod/gods_gunmods.json @@ -51,7 +51,6 @@ "price_postapoc": 500, "install_time": "40 m", "to_hit": 1, - "bashing": 6, "material": [ "plastic", "steel" ], "symbol": ":", "color": "dark_gray", diff --git a/data/Goats_mods/Gods_Gun_Mod/gods_guns.json b/data/Goats_mods/Gods_Gun_Mod/gods_guns.json index bb76148df..65cc2f7bd 100644 --- a/data/Goats_mods/Gods_Gun_Mod/gods_guns.json +++ b/data/Goats_mods/Gods_Gun_Mod/gods_guns.json @@ -12,7 +12,6 @@ "price": 1483300, "price_postapoc": 0, "to_hit": -1, - "bashing": 12, "material": [ "steel" ], "ammo": [ "god" ], "range": 65, @@ -49,7 +48,7 @@ "volume": "750 ml", "longest_side": "75 cm", "price_postapoc": 500, - "bashing": 6, + "melee_damage": { "bash": 6 }, "armor_data": { "armor": [ { diff --git a/data/Goats_mods/Gods_Gun_Mod/weapons.json b/data/Goats_mods/Gods_Gun_Mod/weapons.json index 291737c7b..94393aa56 100644 --- a/data/Goats_mods/Gods_Gun_Mod/weapons.json +++ b/data/Goats_mods/Gods_Gun_Mod/weapons.json @@ -11,8 +11,6 @@ "price": 12000, "price_postapoc": 500, "to_hit": 1, - "bashing": 30, - "cutting": 80, "material": [ "wood", "iron" ], "symbol": "/", "color": "brown", @@ -30,7 +28,6 @@ "price": 700, "price_postapoc": 100, "to_hit": -1, - "bashing": 75, "material": [ "steel", "wood" ], "symbol": ";", "color": "brown", diff --git a/data/Goats_mods/More_tools/More_tools.json b/data/Goats_mods/More_tools/More_tools.json index 8ec44aba1..d08ff261a 100644 --- a/data/Goats_mods/More_tools/More_tools.json +++ b/data/Goats_mods/More_tools/More_tools.json @@ -8,7 +8,6 @@ "volume": "0374 ml", "price": "30 USD", "to_hit": -2, - "cutting": 1, "material": [ "steel", "plastic" ], "symbol": ";", "color": "brown", @@ -24,7 +23,6 @@ "volume": "2 L", "price": "30 USD", "to_hit": -2, - "cutting": 1, "material": [ "steel", "plastic" ], "symbol": "(", "color": "brown", @@ -40,7 +38,6 @@ "volume": "500 ml", "price": "7 USD", "to_hit": 1, - "bashing": 9, "material": [ "steel", "plastic" ], "symbol": ";", "color": "brown", @@ -58,8 +55,6 @@ "volume": "40 ml", "price": "0 cent", "to_hit": 2, - "bashing": 2, - "cutting": 6, "material": [ "steel", "plastic" ], "symbol": "-", "color": "dark_gray", @@ -78,8 +73,6 @@ "volume": "233 ml", "price": "0 cent", "to_hit": 2, - "bashing": 10, - "cutting": 1, "material": [ "steel" ], "symbol": "-", "color": "dark_gray", @@ -98,8 +91,6 @@ "volume": "1350 ml", "price": "0 cent", "to_hit": 2, - "bashing": 12, - "cutting": 1, "material": [ "steel" ], "symbol": "-", "color": "dark_gray", diff --git a/data/Goats_mods/Portable_Generator_mod/vehicle_parts.json b/data/Goats_mods/Portable_Generator_mod/vehicle_parts.json index cc201d922..cd1f4f1bc 100644 --- a/data/Goats_mods/Portable_Generator_mod/vehicle_parts.json +++ b/data/Goats_mods/Portable_Generator_mod/vehicle_parts.json @@ -5,7 +5,6 @@ "fuel_type": "gasoline", "m2c": 60, "//": "30% energy efficiency", - "symbol": "*", "color": "yellow", "broken_color": "red", "damage_modifier": 80, @@ -27,7 +26,8 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "ENGINE", "E_COMBUSTION", "E_ALTERNATOR", "E_HIGHER_SKILL", "E_HEATER", "ENABLED_DRAINS_EPOWER" ] + "flags": [ "ENGINE", "E_COMBUSTION", "E_ALTERNATOR", "E_HIGHER_SKILL", "E_HEATER", "ENABLED_DRAINS_EPOWER" ], + "variants": [ { "symbols": "*", "symbols_broken": "*" } ] }, { "abstract": "generator_diesel_base", @@ -35,7 +35,6 @@ "fuel_type": "diesel", "fuel_options": [ "diesel", "biodiesel" ], "m2c": 65, - "symbol": "*", "color": "yellow", "broken_color": "red", "damage_modifier": 80, @@ -57,7 +56,8 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "ENGINE", "E_COMBUSTION", "E_ALTERNATOR", "E_HIGHER_SKILL", "E_HEATER", "ENABLED_DRAINS_EPOWER" ] + "flags": [ "ENGINE", "E_COMBUSTION", "E_ALTERNATOR", "E_HIGHER_SKILL", "E_HEATER", "ENABLED_DRAINS_EPOWER" ], + "variants": [ { "symbols": "*", "symbols_broken": "*" } ] }, { "id": "generator_25l_gasoline", @@ -65,7 +65,7 @@ "copy-from": "generator_gasoline_base", "name": { "str": "generator gasoline (25L)" }, "item": "generator_25l_gasoline", - "power": 0, + "power": 250, "epower": 17500 }, { @@ -75,7 +75,7 @@ "fuel_type": "gasoline", "name": { "str": "generator gasoline (10L)" }, "item": "generator_10l_gasoline", - "power": 0, + "power": 250, "epower": 17500 }, { @@ -84,7 +84,7 @@ "copy-from": "generator_diesel_base", "name": { "str": "generator diesel (25L)" }, "item": "generator_25l_diesel", - "power": 0, + "power": 250, "epower": 7500 }, { @@ -93,7 +93,7 @@ "type": "vehicle_part", "name": { "str": "generator diesel (10L)" }, "item": "generator_10l_diesel", - "power": 0, + "power": 250, "epower": 12500 } ] diff --git a/data/Goats_mods/Primitive_Survival/Harvest/Fruit.json b/data/Goats_mods/Primitive_Survival/Harvest/Fruit.json index 5ffbc0883..af92f54d4 100644 --- a/data/Goats_mods/Primitive_Survival/Harvest/Fruit.json +++ b/data/Goats_mods/Primitive_Survival/Harvest/Fruit.json @@ -37,6 +37,6 @@ { "id": "shrub_acaiberry_harv", "type": "harvest", - "entries": [ { "drop": "Acaiberries", "base_num": [ 2, 5 ], "scale_num": [ 0, 0.5 ] } ] + "entries": [ { "drop": "acaiberries", "base_num": [ 2, 5 ], "scale_num": [ 0, 0.5 ] } ] } ] diff --git a/data/Goats_mods/Primitive_Survival/Items/Ammo/Ammo.json b/data/Goats_mods/Primitive_Survival/Items/Ammo/Ammo.json index a1f216876..54f6e0d99 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Ammo/Ammo.json +++ b/data/Goats_mods/Primitive_Survival/Items/Ammo/Ammo.json @@ -10,8 +10,6 @@ "material": [ "wood" ], "volume": "1 L", "weight": "900 g", - "bashing": 2, - "cutting": 7, "to_hit": 0, "ammo_type": "atlatl_dart", "casing": "atlatl_dart_crude", @@ -33,8 +31,6 @@ "material": [ "wood", "steel" ], "volume": "1 L", "weight": "1000 g", - "bashing": 3, - "cutting": 10, "to_hit": 0, "ammo_type": "atlatl_dart", "casing": "atlatl_dart", @@ -56,8 +52,6 @@ "material": [ "wood" ], "volume": "50 ml", "weight": "10 g", - "bashing": 2, - "cutting": 7, "to_hit": 0, "ammo_type": "blowgun_dart", "casing": "blowgun_dart_crude", @@ -79,8 +73,6 @@ "material": [ "wood" ], "volume": "50 ml", "weight": "10 g", - "bashing": 3, - "cutting": 10, "to_hit": 0, "ammo_type": "blowgun_dart", "casing": "blowgun_dart", @@ -123,8 +115,8 @@ "ammo_type": "javelin", "range": 13, "damage": { "damage_type": "stab", "amount": 13, "armor_penetration": 1 }, - "relative": { "weight": 100, "cutting": 2 }, - "proportional": { "price": 0.5, "bashing": 0.8 }, + "relative": { "weight": 100 }, + "proportional": { "price": 0.5 }, "thrown_damage": [ { "damage_type": "bash", "amount": 4 }, { "damage_type": "stab", "amount": 13 } ], "flags": [ "FRAGILE_MELEE", "JAVELIN" ] }, @@ -160,7 +152,7 @@ "ammo_type": "javelin", "damage": { "damage_type": "stab", "amount": 14, "armor_penetration": 2 }, "relative": { "weight": 30 }, - "proportional": { "price": 0.5, "cutting": 0.85 }, + "proportional": { "price": 0.5 }, "thrown_damage": [ { "damage_type": "bash", "amount": 5 }, { "damage_type": "stab", "amount": 14 } ], "flags": [ "FRAGILE_MELEE", "JAVELIN" ] }, diff --git a/data/Goats_mods/Primitive_Survival/Items/Chemicals_and_resources.json b/data/Goats_mods/Primitive_Survival/Items/Chemicals_and_resources.json index 20bc0c4e2..f7a479c13 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Chemicals_and_resources.json +++ b/data/Goats_mods/Primitive_Survival/Items/Chemicals_and_resources.json @@ -23,7 +23,6 @@ "material": [ "stone" ], "volume": "250 ml", "weight": "14 g", - "bashing": 1, "ammo_type": "components", "count": 50 }, diff --git a/data/Goats_mods/Primitive_Survival/Items/Comestibles/Food.json b/data/Goats_mods/Primitive_Survival/Items/Comestibles/Food.json index f4af7ad88..af1018030 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Comestibles/Food.json +++ b/data/Goats_mods/Primitive_Survival/Items/Comestibles/Food.json @@ -20,7 +20,6 @@ "weight": "5480 g", "volume": "20 L", "price": 2500, - "bashing": 4, "material": [ "clay" ], "symbol": ")", "color": "brown", @@ -36,7 +35,6 @@ "weight": "5480 g", "volume": "20 L", "price": 2500, - "bashing": 4, "material": [ "clay" ], "symbol": ")", "color": "brown", @@ -52,7 +50,6 @@ "weight": "5480 g", "volume": "20 L", "price": 2500, - "bashing": 1, "material": [ "clay" ], "symbol": ")", "color": "brown" @@ -66,7 +63,6 @@ "weight": "5480 g", "volume": "20 L", "price": 2500, - "bashing": 1, "material": [ "clay" ], "symbol": ")", "color": "brown" diff --git a/data/Goats_mods/Primitive_Survival/Items/Comestibles/Irradiated_fruit.json b/data/Goats_mods/Primitive_Survival/Items/Comestibles/Irradiated_fruit.json index 3b9f88b4d..56a8a56d7 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Comestibles/Irradiated_fruit.json +++ b/data/Goats_mods/Primitive_Survival/Items/Comestibles/Irradiated_fruit.json @@ -51,10 +51,10 @@ }, { "type": "COMESTIBLE", - "id": "irradiated_Acaiberries", - "copy-from": "Acaiberries", - "name": { "str": "irradiated Acaiberry", "str_pl": "irradiated Acaiberries" }, - "description": "An irradiated Acaiberry will remain edible nearly forever. Sterilized using radiation, so it's safe to eat.", + "id": "irradiated_acaiberries", + "copy-from": "acaiberries", + "name": { "str": "irradiated acaiberry", "str_pl": "irradiated acaiberries" }, + "description": "An irradiated acaiberry will remain edible nearly forever. Sterilized using radiation, so it's safe to eat.", "proportional": { "price": 2.0 }, "spoils_in": "0 hours", "container": "bag_plastic" diff --git a/data/Goats_mods/Primitive_Survival/Items/Comestibles/Seeds.json b/data/Goats_mods/Primitive_Survival/Items/Comestibles/Seeds.json index 00b2909c3..4ef26061e 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Comestibles/Seeds.json +++ b/data/Goats_mods/Primitive_Survival/Items/Comestibles/Seeds.json @@ -106,7 +106,7 @@ "type": "COMESTIBLE", "name": { "str_sp": "Acaiberry seeds" }, "description": "Some Acaiberry seeds.", - "seed_data": { "plant_name": "Acaiberry", "fruit": "Acaiberries", "byproducts": [ "withered" ], "grow": "91 days" } + "seed_data": { "plant_name": "acaiberry", "fruit": "acaiberries", "byproducts": [ "withered" ], "grow": "91 days" } }, { "type": "COMESTIBLE", diff --git a/data/Goats_mods/Primitive_Survival/Items/Comestibles/fruit.json b/data/Goats_mods/Primitive_Survival/Items/Comestibles/fruit.json index e6e4aed06..1a52e9cf8 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Comestibles/fruit.json +++ b/data/Goats_mods/Primitive_Survival/Items/Comestibles/fruit.json @@ -132,9 +132,9 @@ "vitamins": [ [ "vitC", 64 ] ] }, { - "id": "Acaiberries", + "id": "acaiberries", "type": "COMESTIBLE", - "name": { "str_sp": "Acaiberries" }, + "name": { "str_sp": "acaiberries" }, "weight": "148 g", "color": "red", "spoils_in": "2 days 12 hours", diff --git a/data/Goats_mods/Primitive_Survival/Items/Cooking_components.json b/data/Goats_mods/Primitive_Survival/Items/Cooking_components.json index 5d33dae61..4174c7f53 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Cooking_components.json +++ b/data/Goats_mods/Primitive_Survival/Items/Cooking_components.json @@ -69,7 +69,7 @@ [ "crowberries", 1 ], [ "black_currants", 1 ], [ "gojiberries", 1 ], - [ "Acaiberries", 1 ] + [ "acaiberries", 1 ] ] ] }, diff --git a/data/Goats_mods/Primitive_Survival/Items/Generic/Containers.json b/data/Goats_mods/Primitive_Survival/Items/Generic/Containers.json index 91c0ba7bb..1631bfd42 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Generic/Containers.json +++ b/data/Goats_mods/Primitive_Survival/Items/Generic/Containers.json @@ -11,7 +11,6 @@ "price": 1000, "price_postapoc": 50, "to_hit": -1, - "bashing": 1, "material": [ "wood" ], "symbol": ")", "color": "dark_gray", @@ -90,7 +89,6 @@ "volume": "3752 ml", "price": 2000, "to_hit": -1, - "bashing": 1, "material": [ "wood" ], "symbol": ")", "color": "brown", diff --git a/data/Goats_mods/Primitive_Survival/Items/Generic/Tools.json b/data/Goats_mods/Primitive_Survival/Items/Generic/Tools.json index d6d22f00d..6ef08fac5 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Generic/Tools.json +++ b/data/Goats_mods/Primitive_Survival/Items/Generic/Tools.json @@ -8,7 +8,6 @@ "weight": "5480 g", "volume": "20 L", "price": 2500, - "bashing": 1, "material": [ "clay" ], "symbol": ")", "color": "brown", @@ -24,5 +23,31 @@ } ], "flags": [ "ALLOWS_REMOTE_USE", "TARDIS" ] + }, + { + "id": "rock_pot", + "type": "GENERIC", + "category": "tools", + "name": { "str": "stone pot" }, + "description": "A large stone, roughly hollowed out into a pot.", + "weight": "1500 g", + "volume": "2 L", + "price": 0, + "to_hit": -1, + "material": [ "stone" ], + "symbol": ";", + "color": "dark_gray", + "pocket_data": [ + { + "max_contains_volume": "1500 ml", + "max_contains_weight": "3 kg", + "watertight": true, + "open_container": true, + "rigid": true + } + ], + "qualities": [ [ "COOK", 2 ], [ "BOIL", 1 ], [ "CONTAIN", 1 ] ], + "use_action": [ "HEAT_FOOD" ], + "flags": [ "ALLOWS_REMOTE_USE" ] } ] diff --git a/data/Goats_mods/Primitive_Survival/Items/Item_groups.json b/data/Goats_mods/Primitive_Survival/Items/Item_groups.json index 1a468bd7e..241f87da6 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Item_groups.json +++ b/data/Goats_mods/Primitive_Survival/Items/Item_groups.json @@ -87,7 +87,7 @@ [ "crowberries", 3 ], [ "black_currants", 3 ], [ "gojiberries", 3 ], - [ "Acaiberries", 3 ], + [ "acaiberries", 3 ], [ "seed_tea_leaf", 1 ], [ "seed_lingonberries", 1 ], [ "seed_bilberries", 1 ], @@ -109,7 +109,7 @@ [ "crowberries", 50 ], [ "black_currants", 50 ], [ "gojiberries", 50 ], - [ "Acaiberries", 50 ] + [ "acaiberries", 50 ] ] }, { @@ -123,7 +123,7 @@ [ "irradiated_crowberries", 50 ], [ "irradiated_black_currants", 50 ], [ "irradiated_gojiberries", 50 ], - [ "irradiated_Acaiberries", 50 ] + [ "irradiated_acaiberries", 50 ] ] } ] diff --git a/data/Goats_mods/Primitive_Survival/Items/Material.json b/data/Goats_mods/Primitive_Survival/Items/Material.json index 79af75daa..16b83129b 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Material.json +++ b/data/Goats_mods/Primitive_Survival/Items/Material.json @@ -8,13 +8,6 @@ "specific_heat_solid": 0.02, "latent_heat": 205, "soft": true, - "reinforces": true, - "bash_resist": 1, - "cut_resist": 1, - "acid_resist": 3, - "fire_resist": 0, - "bullet_resist": 0, - "elec_resist": 2, "chip_resist": 6, "repaired_with": "canvas", "salvaged_into": "canvas", @@ -36,13 +29,6 @@ "specific_heat_solid": 0.02, "latent_heat": 205, "soft": true, - "reinforces": true, - "bash_resist": 1, - "cut_resist": 1, - "acid_resist": 3, - "fire_resist": 0, - "bullet_resist": 0, - "elec_resist": 2, "chip_resist": 6, "repaired_with": "oilcloth_canvas", "salvaged_into": "oilcloth_canvas", @@ -64,13 +50,7 @@ "specific_heat_solid": 1.9, "latent_heat": 290, "edible": true, - "bash_resist": 1, - "cut_resist": 1, - "acid_resist": 2, - "fire_resist": 1, - "elec_resist": 1, "chip_resist": 2, - "bullet_resist": 0, "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], "bash_dmg_verb": "squished", "cut_dmg_verb": "cut", @@ -90,13 +70,7 @@ "specific_heat_solid": 1.9, "latent_heat": 290, "edible": true, - "bash_resist": 1, - "cut_resist": 1, - "acid_resist": 2, - "fire_resist": 1, - "elec_resist": 1, "chip_resist": 2, - "bullet_resist": 0, "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], "bash_dmg_verb": "squished", "cut_dmg_verb": "cut", @@ -115,12 +89,6 @@ "specific_heat_liquid": 1.7, "specific_heat_solid": 1.7, "latent_heat": 273, - "bash_resist": 1, - "cut_resist": 1, - "bullet_resist": 1, - "acid_resist": 0, - "fire_resist": 20, - "elec_resist": 0, "chip_resist": 0, "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], "bash_dmg_verb": "damaged", @@ -137,12 +105,6 @@ "latent_heat": 100, "edible": false, "rotting": true, - "bash_resist": 1, - "cut_resist": 1, - "bullet_resist": 1, - "acid_resist": 2, - "fire_resist": 1, - "elec_resist": 1, "chip_resist": 1, "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], "bash_dmg_verb": "bruised", @@ -164,12 +126,6 @@ "latent_heat": 100, "edible": false, "rotting": false, - "bash_resist": 1, - "cut_resist": 1, - "bullet_resist": 1, - "acid_resist": 2, - "fire_resist": 1, - "elec_resist": 1, "chip_resist": 1, "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], "bash_dmg_verb": "bruised", @@ -190,12 +146,6 @@ "latent_heat": 100, "edible": false, "rotting": true, - "bash_resist": 1, - "cut_resist": 1, - "bullet_resist": 1, - "acid_resist": 2, - "fire_resist": 1, - "elec_resist": 1, "chip_resist": 1, "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], "bash_dmg_verb": "bruised", diff --git a/data/Goats_mods/Primitive_Survival/Items/Tools/Tools.json b/data/Goats_mods/Primitive_Survival/Items/Tools/Tools.json index d2c91cdf9..1961507d0 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Tools/Tools.json +++ b/data/Goats_mods/Primitive_Survival/Items/Tools/Tools.json @@ -8,8 +8,6 @@ "volume": "1 L", "price": "10 USD", "to_hit": 1, - "bashing": 10, - "cutting": 5, "material": [ "stone", "wood" ], "symbol": ";", "color": "brown", @@ -25,8 +23,6 @@ "volume": "500 ml", "price": 500, "to_hit": -1, - "bashing": 3, - "cutting": 1, "material": [ "wood", "stone" ], "symbol": ";", "color": "light_gray", @@ -42,8 +38,6 @@ "volume": "2500 ml", "price": 800, "to_hit": -3, - "bashing": 10, - "cutting": 3, "material": [ "wood" ], "symbol": "/", "color": "white", @@ -83,7 +77,6 @@ "volume": "3750 ml", "price": 3000, "to_hit": -3, - "bashing": 2, "material": [ "wood" ], "symbol": "*", "color": "brown", @@ -126,8 +119,6 @@ "material": [ "steel", "wood" ], "weight": "283 g", "volume": "250 ml", - "bashing": 0, - "cutting": 6, "to_hit": -2, "qualities": [ [ "SAW_W", 1 ] ] }, @@ -143,8 +134,6 @@ "material": [ "stone", "wood" ], "weight": "3154 g", "volume": "3750 ml", - "bashing": 12, - "cutting": 12, "to_hit": 0, "qualities": [ [ "SAW_W", 1 ], [ "AXE", 2 ], [ "DIG", 2 ] ], "use_action": "LUMBER" @@ -158,7 +147,6 @@ "volume": "2800 ml", "price": 15000, "to_hit": -3, - "bashing": 4, "material": [ "oilcloth", "wood" ], "symbol": ";", "color": "green", @@ -182,7 +170,6 @@ "volume": "200 ml", "price": 250, "to_hit": 0, - "bashing": 7, "material": [ "stone" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 1 ], [ "HAMMER", 1 ] ] }, @@ -196,7 +183,6 @@ "volume": "200 ml", "price": 250, "to_hit": 0, - "bashing": 7, "material": [ "bone" ], "qualities": [ [ "DIG", 1 ], [ "HAMMER", 1 ] ] }, @@ -210,7 +196,6 @@ "volume": "500 ml", "price": 250, "to_hit": 0, - "bashing": 7, "material": [ "bone", "wood" ], "qualities": [ [ "SAW_W", 1 ] ] }, @@ -224,7 +209,6 @@ "volume": "2500 ml", "price": 250, "to_hit": 0, - "bashing": 7, "material": [ "wood" ], "initial_charges": 30, "max_charges": 30, @@ -243,7 +227,6 @@ "volume": "500 ml", "price": 250, "to_hit": 0, - "bashing": 7, "material": [ "stone", "wood" ], "qualities": [ [ "CHISEL_WOOD", 2 ] ] }, @@ -256,8 +239,6 @@ "weight": "1200 g", "volume": "1800 ml", "price": 250, - "bashing": 17, - "cutting": 15, "material": [ "stone", "wood" ], "qualities": [ [ "AXE", 2 ] ] }, @@ -269,8 +250,6 @@ "weight": "3700 g", "volume": "3500 ml", "price": "55 USD", - "bashing": 18, - "cutting": 12, "material": [ "wood", "copper" ], "symbol": "/", "color": "brown", @@ -287,8 +266,6 @@ "volume": "500 ml", "price": "0 cent", "to_hit": -1, - "bashing": 5, - "cutting": 3, "material": [ "stone" ], "symbol": ";", "color": "light_gray", @@ -303,8 +280,6 @@ "weight": "3154 g", "volume": "3500 ml", "price": "0 cent", - "bashing": 11, - "cutting": 8, "material": [ "wood", "stone" ], "symbol": "/", "color": "light_gray", diff --git a/data/Goats_mods/Primitive_Survival/Items/Vehicle_Part.json b/data/Goats_mods/Primitive_Survival/Items/Vehicle_Part.json index 35d285d34..404998a04 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Vehicle_Part.json +++ b/data/Goats_mods/Primitive_Survival/Items/Vehicle_Part.json @@ -3,9 +3,7 @@ "id": "slung_waterskin", "type": "vehicle_part", "name": { "str": "slung waterskin" }, - "symbol": "O", "color": "brown", - "broken_symbol": "#", "broken_color": "brown", "damage_modifier": 60, "durability": 50, diff --git a/data/Goats_mods/Primitive_Survival/Items/Weapons/Guns.json b/data/Goats_mods/Primitive_Survival/Items/Weapons/Guns.json index b43118531..2047b1cd6 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Weapons/Guns.json +++ b/data/Goats_mods/Primitive_Survival/Items/Weapons/Guns.json @@ -12,8 +12,6 @@ "ammo": [ "atlatl_dart" ], "weight": "1300 g", "volume": "1000 ml", - "bashing": 5, - "cutting": 0, "to_hit": 1, "range": 10, "ranged_damage": { "damage_type": "stab", "amount": 25 }, @@ -36,8 +34,6 @@ "weight": "1300 g", "volume": "1000 ml", "longest_side": "250 cm", - "bashing": 5, - "cutting": 0, "to_hit": 1, "range": 15, "ranged_damage": { "damage_type": "stab", "amount": 17 }, diff --git a/data/Goats_mods/Primitive_Survival/Items/Weapons/Weapons.json b/data/Goats_mods/Primitive_Survival/Items/Weapons/Weapons.json index e71392626..5f7ed307b 100644 --- a/data/Goats_mods/Primitive_Survival/Items/Weapons/Weapons.json +++ b/data/Goats_mods/Primitive_Survival/Items/Weapons/Weapons.json @@ -10,8 +10,6 @@ "volume": "1250 ml", "longest_side": "100 cm", "weight": "900 g", - "bashing": 5, - "cutting": 10, "to_hit": -1, "price_postapoc": 10, "flags": [ "SPEAR" ], @@ -29,8 +27,6 @@ "longest_side": "250 cm", "price": 10000, "price_postapoc": 0, - "bashing": 15, - "cutting": 10, "material": [ "wood", "stone" ], "symbol": "/", "color": "light_gray", diff --git a/data/Goats_mods/Primitive_Survival/Recipes/Drinks.json b/data/Goats_mods/Primitive_Survival/Recipes/Drinks.json index b26fabeae..735c5e4b3 100644 --- a/data/Goats_mods/Primitive_Survival/Recipes/Drinks.json +++ b/data/Goats_mods/Primitive_Survival/Recipes/Drinks.json @@ -594,7 +594,7 @@ "autolearn": true, "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], "tools": [ [ [ "rag", -1 ] ] ], - "components": [ [ [ "Acaiberries", 12 ], [ "irradiated_Acaiberries", 12 ] ] ] + "components": [ [ [ "acaiberries", 12 ], [ "irradiated_acaiberries", 12 ] ] ] }, { "type": "recipe", diff --git a/data/Goats_mods/Primitive_Survival/Recipes/Seeds.json b/data/Goats_mods/Primitive_Survival/Recipes/Seeds.json index 5382cfbf9..10e8a0a4b 100644 --- a/data/Goats_mods/Primitive_Survival/Recipes/Seeds.json +++ b/data/Goats_mods/Primitive_Survival/Recipes/Seeds.json @@ -27,7 +27,7 @@ "result": "seed_black_currant", "type": "recipe", "copy-from": "seed_extraction_cutting", - "components": [ [ [ "black_currant", 1 ] ] ] + "components": [ [ [ "black_currants", 1 ] ] ] }, { "result": "seed_gojiberries", diff --git a/data/Goats_mods/Tool_hanger/Item.json b/data/Goats_mods/Tool_hanger/Item.json index 950f5a158..19e4233eb 100644 --- a/data/Goats_mods/Tool_hanger/Item.json +++ b/data/Goats_mods/Tool_hanger/Item.json @@ -10,7 +10,6 @@ "price": "500 USD", "price_postapoc": "50 USD", "to_hit": 1, - "bashing": 4, "material": [ "steel" ], "symbol": "}", "color": "brown", @@ -42,7 +41,6 @@ "acetylene_machine", "angle_grinder", "brick_kiln", - "kiln_pseudo", "carding_paddles", "chipper", "clamp", @@ -185,7 +183,6 @@ "price": "500 USD", "price_postapoc": "50 USD", "to_hit": 1, - "bashing": 4, "material": [ "steel" ], "symbol": "}", "color": "brown", diff --git a/data/Goats_mods/Tool_hanger/vehicle_part.json b/data/Goats_mods/Tool_hanger/vehicle_part.json index b8bfe96cd..6f92919c2 100644 --- a/data/Goats_mods/Tool_hanger/vehicle_part.json +++ b/data/Goats_mods/Tool_hanger/vehicle_part.json @@ -4,9 +4,7 @@ "type": "vehicle_part", "name": { "str": "Tool hanger" }, "categories": [ "cargo" ], - "symbol": "]", "color": "brown", - "broken_symbol": ")", "broken_color": "brown", "damage_modifier": 60, "durability": 75, @@ -19,17 +17,16 @@ "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "WRENCH", "level": 1 } ] }, "repair": { "skills": [ [ "mechanics", 1 ] ], "time": "20 s", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "FOLDABLE" ], - "damage_reduction": { "all": 6 } + "flags": [ "CARGO" ], + "damage_reduction": { "all": 6 }, + "variants": [ { "symbols": "]", "symbols_broken": ")" } ] }, { "id": "knife_holder_vp", "type": "vehicle_part", "name": { "str": "Tool hanger" }, "categories": [ "cargo" ], - "symbol": "]", "color": "brown", - "broken_symbol": ")", "broken_color": "brown", "damage_modifier": 60, "durability": 75, @@ -42,7 +39,8 @@ "removal": { "skills": [ [ "mechanics", 1 ] ], "qualities": [ { "id": "WRENCH", "level": 1 } ] }, "repair": { "skills": [ [ "mechanics", 1 ] ], "time": "20 s", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "CARGO", "FOLDABLE" ], - "damage_reduction": { "all": 6 } + "flags": [ "CARGO" ], + "damage_reduction": { "all": 6 }, + "variants": [ { "symbols": "]", "symbols_broken": ")" } ] } ] diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/construction_group.json b/data/Legacy_mods/mods/CRT_EXPANSION/construction_group.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/construction_group.json rename to data/Legacy_mods/mods/CRT_EXPANSION/construction_group.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/constructions/crt_constructions.json b/data/Legacy_mods/mods/CRT_EXPANSION/constructions/crt_constructions.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/constructions/crt_constructions.json rename to data/Legacy_mods/mods/CRT_EXPANSION/constructions/crt_constructions.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/constructions/crt_terrain.json b/data/Legacy_mods/mods/CRT_EXPANSION/constructions/crt_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/constructions/crt_terrain.json rename to data/Legacy_mods/mods/CRT_EXPANSION/constructions/crt_terrain.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/deadspace/deadspaceitems.json b/data/Legacy_mods/mods/CRT_EXPANSION/deadspace/deadspaceitems.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/deadspace/deadspaceitems.json rename to data/Legacy_mods/mods/CRT_EXPANSION/deadspace/deadspaceitems.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/effect_on_condition.json b/data/Legacy_mods/mods/CRT_EXPANSION/effect_on_condition.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/effect_on_condition.json rename to data/Legacy_mods/mods/CRT_EXPANSION/effect_on_condition.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/effects.json b/data/Legacy_mods/mods/CRT_EXPANSION/effects.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/effects.json rename to data/Legacy_mods/mods/CRT_EXPANSION/effects.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_ammo.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_ammo.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_ammo.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_ammo.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_ammotypes.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_ammotypes.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_ammotypes.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_ammotypes.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_armor.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_armor.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_armor.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_armor.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_clothes.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_clothes.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_clothes.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_clothes.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_generic.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_generic.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_generic.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_generic.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_gun.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_gun.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_gun.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_gun.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_gunmods.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_gunmods.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_gunmods.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_gunmods.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_item_enchants.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_item_enchants.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_item_enchants.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_item_enchants.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_item_groups.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_item_groups.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_item_groups.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_item_groups.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_makeshift_survival.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_makeshift_survival.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_makeshift_survival.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_makeshift_survival.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_recipes.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_recipes.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_recipes.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_recipes.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_toolarmor.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_toolarmor.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_toolarmor.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_toolarmor.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_tools.json b/data/Legacy_mods/mods/CRT_EXPANSION/items/crt_tools.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/items/crt_tools.json rename to data/Legacy_mods/mods/CRT_EXPANSION/items/crt_tools.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/martial/CRT_Bladework.json b/data/Legacy_mods/mods/CRT_EXPANSION/martial/CRT_Bladework.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/martial/CRT_Bladework.json rename to data/Legacy_mods/mods/CRT_EXPANSION/martial/CRT_Bladework.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/martial/CRT_EnforcementBuff.json b/data/Legacy_mods/mods/CRT_EXPANSION/martial/CRT_EnforcementBuff.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/martial/CRT_EnforcementBuff.json rename to data/Legacy_mods/mods/CRT_EXPANSION/martial/CRT_EnforcementBuff.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/martial/CRT_MeleeBuffs.json b/data/Legacy_mods/mods/CRT_EXPANSION/martial/CRT_MeleeBuffs.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/martial/CRT_MeleeBuffs.json rename to data/Legacy_mods/mods/CRT_EXPANSION/martial/CRT_MeleeBuffs.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/martial/crt_gun_techniques.json b/data/Legacy_mods/mods/CRT_EXPANSION/martial/crt_gun_techniques.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/martial/crt_gun_techniques.json rename to data/Legacy_mods/mods/CRT_EXPANSION/martial/crt_gun_techniques.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/martial/dragonslayertechn.json b/data/Legacy_mods/mods/CRT_EXPANSION/martial/dragonslayertechn.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/martial/dragonslayertechn.json rename to data/Legacy_mods/mods/CRT_EXPANSION/martial/dragonslayertechn.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/martial/generaltechn.json b/data/Legacy_mods/mods/CRT_EXPANSION/martial/generaltechn.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/martial/generaltechn.json rename to data/Legacy_mods/mods/CRT_EXPANSION/martial/generaltechn.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/martial/stabtechn.json b/data/Legacy_mods/mods/CRT_EXPANSION/martial/stabtechn.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/martial/stabtechn.json rename to data/Legacy_mods/mods/CRT_EXPANSION/martial/stabtechn.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_large.png b/data/Legacy_mods/mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_large.png similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_large.png rename to data/Legacy_mods/mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_large.png diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_normal.png b/data/Legacy_mods/mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_normal.png similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_normal.png rename to data/Legacy_mods/mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_normal.png diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_wide.png b/data/Legacy_mods/mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_wide.png similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_wide.png rename to data/Legacy_mods/mods/CRT_EXPANSION/mod_tileset/CRT_EXPANSION_wide.png diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/mod_tileset/mod_tileset.json b/data/Legacy_mods/mods/CRT_EXPANSION/mod_tileset/mod_tileset.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/mod_tileset/mod_tileset.json rename to data/Legacy_mods/mods/CRT_EXPANSION/mod_tileset/mod_tileset.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/modinfo.json b/data/Legacy_mods/mods/CRT_EXPANSION/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/modinfo.json rename to data/Legacy_mods/mods/CRT_EXPANSION/modinfo.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/monsters/crt_monster.json b/data/Legacy_mods/mods/CRT_EXPANSION/monsters/crt_monster.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/monsters/crt_monster.json rename to data/Legacy_mods/mods/CRT_EXPANSION/monsters/crt_monster.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/monsters/crt_monstergroups.json b/data/Legacy_mods/mods/CRT_EXPANSION/monsters/crt_monstergroups.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/monsters/crt_monstergroups.json rename to data/Legacy_mods/mods/CRT_EXPANSION/monsters/crt_monstergroups.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/monsters/monster.json b/data/Legacy_mods/mods/CRT_EXPANSION/monsters/monster.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/monsters/monster.json rename to data/Legacy_mods/mods/CRT_EXPANSION/monsters/monster.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/mutations/crt_mut_itemgroups.json b/data/Legacy_mods/mods/CRT_EXPANSION/mutations/crt_mut_itemgroups.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/mutations/crt_mut_itemgroups.json rename to data/Legacy_mods/mods/CRT_EXPANSION/mutations/crt_mut_itemgroups.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/mutations/crt_mutatinoc.json b/data/Legacy_mods/mods/CRT_EXPANSION/mutations/crt_mutatinoc.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/mutations/crt_mutatinoc.json rename to data/Legacy_mods/mods/CRT_EXPANSION/mutations/crt_mutatinoc.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/mutations/crt_vamp_mutations.json b/data/Legacy_mods/mods/CRT_EXPANSION/mutations/crt_vamp_mutations.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/mutations/crt_vamp_mutations.json rename to data/Legacy_mods/mods/CRT_EXPANSION/mutations/crt_vamp_mutations.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/mutations/crt_wendigo_mutations.json b/data/Legacy_mods/mods/CRT_EXPANSION/mutations/crt_wendigo_mutations.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/mutations/crt_wendigo_mutations.json rename to data/Legacy_mods/mods/CRT_EXPANSION/mutations/crt_wendigo_mutations.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/mutations/vamp_mut_cat.json b/data/Legacy_mods/mods/CRT_EXPANSION/mutations/vamp_mut_cat.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/mutations/vamp_mut_cat.json rename to data/Legacy_mods/mods/CRT_EXPANSION/mutations/vamp_mut_cat.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json b/data/Legacy_mods/mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json rename to data/Legacy_mods/mods/CRT_EXPANSION/mutations/wendigo_mut_cat.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/readme/README.md b/data/Legacy_mods/mods/CRT_EXPANSION/readme/README.md similarity index 83% rename from data/Mainline_mods/Mods/CRT_EXPANSION/readme/README.md rename to data/Legacy_mods/mods/CRT_EXPANSION/readme/README.md index f96b06a85..5ea671f1e 100644 --- a/data/Mainline_mods/Mods/CRT_EXPANSION/readme/README.md +++ b/data/Legacy_mods/mods/CRT_EXPANSION/readme/README.md @@ -1,14 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [C.R.I.T Expansion Mod](#crit-expansion-mod) -- [Extended Techniques](#extended-techniques) -- [For those curious about stat scaling:](#for-those-curious-about-stat-scaling) -- [Lore](#lore) - - - # C.R.I.T Expansion Mod The core mod of the C.R.I.T Expansion Mod, it currently adds an armor set, mildly OP gas mask and transforming vest, some gun mods, a new melee/tool and a new material. The items also use a lot of higher end materials such as superalloy, rubber (the "new" material), the lesser used tempered steel and also neoprene. diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/scenarios/crt_classes.json b/data/Legacy_mods/mods/CRT_EXPANSION/scenarios/crt_classes.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/scenarios/crt_classes.json rename to data/Legacy_mods/mods/CRT_EXPANSION/scenarios/crt_classes.json diff --git a/data/Mainline_mods/Mods/CRT_EXPANSION/scenarios/crt_scenarios.json b/data/Legacy_mods/mods/CRT_EXPANSION/scenarios/crt_scenarios.json similarity index 100% rename from data/Mainline_mods/Mods/CRT_EXPANSION/scenarios/crt_scenarios.json rename to data/Legacy_mods/mods/CRT_EXPANSION/scenarios/crt_scenarios.json diff --git a/data/Mainline_mods/Mods/Chibi_Ultica/large.png b/data/Legacy_mods/mods/Chibi_Ultica/large.png similarity index 100% rename from data/Mainline_mods/Mods/Chibi_Ultica/large.png rename to data/Legacy_mods/mods/Chibi_Ultica/large.png diff --git a/data/Mainline_mods/Mods/Chibi_Ultica/mod_tileset.json b/data/Legacy_mods/mods/Chibi_Ultica/mod_tileset.json similarity index 100% rename from data/Mainline_mods/Mods/Chibi_Ultica/mod_tileset.json rename to data/Legacy_mods/mods/Chibi_Ultica/mod_tileset.json diff --git a/data/Mainline_mods/Mods/Chibi_Ultica/modinfo.json b/data/Legacy_mods/mods/Chibi_Ultica/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Chibi_Ultica/modinfo.json rename to data/Legacy_mods/mods/Chibi_Ultica/modinfo.json diff --git a/data/Mainline_mods/Mods/Chibi_Ultica/tall.png b/data/Legacy_mods/mods/Chibi_Ultica/tall.png similarity index 100% rename from data/Mainline_mods/Mods/Chibi_Ultica/tall.png rename to data/Legacy_mods/mods/Chibi_Ultica/tall.png diff --git a/data/Mainline_mods/Mods/Chibi_Ultica/tiles.png b/data/Legacy_mods/mods/Chibi_Ultica/tiles.png similarity index 100% rename from data/Mainline_mods/Mods/Chibi_Ultica/tiles.png rename to data/Legacy_mods/mods/Chibi_Ultica/tiles.png diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/DESIGN.md b/data/Legacy_mods/mods/Dark-Skies-Above/DESIGN.md similarity index 91% rename from data/Mainline_mods/Mods/Dark-Skies-Above/DESIGN.md rename to data/Legacy_mods/mods/Dark-Skies-Above/DESIGN.md index 2e9072439..8f01bfdec 100644 --- a/data/Mainline_mods/Mods/Dark-Skies-Above/DESIGN.md +++ b/data/Legacy_mods/mods/Dark-Skies-Above/DESIGN.md @@ -1,21 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Dark Skies Above](#dark-skies-above) -- [Summary of Intent and Content](#summary-of-intent-and-content) -- [Contributing](#contributing) -- [Content](#content) - - [The World](#the-world) - - [The Arrival and The Aliens](#the-arrival-and-the-aliens) - - [Other Aliens](#other-aliens) - - [Alien Technology](#alien-technology) - - [The Player](#the-player) - - [The Resistance and the Narrative](#the-resistance-and-the-narrative) - - [Other NPCs](#other-npcs) - - - # Dark Skies Above This document is intended to not only guide new potential contributors, but also help get my own thoughts on how the game will progress in text. Assume spoilers beyond this point! diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/README.md b/data/Legacy_mods/mods/Dark-Skies-Above/README.md similarity index 79% rename from data/Mainline_mods/Mods/Dark-Skies-Above/README.md rename to data/Legacy_mods/mods/Dark-Skies-Above/README.md index a0366a834..53e29b42b 100644 --- a/data/Mainline_mods/Mods/Dark-Skies-Above/README.md +++ b/data/Legacy_mods/mods/Dark-Skies-Above/README.md @@ -1,13 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Dark Skies Above](#dark-skies-above) -- [Takeaway Features](#takeaway-features) -- [Meta](#meta) - - - # Dark Skies Above A partial conversion mod for Cataclysm: DDA, taking inspiration from XCOM 2, Half Life 2, and similar 'alien invasion' media to present a game of survival against an alien occupation force. WIP, but will feature new quests, NPCs, locations, and enemies. diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/TODO.md b/data/Legacy_mods/mods/Dark-Skies-Above/TODO.md similarity index 88% rename from data/Mainline_mods/Mods/Dark-Skies-Above/TODO.md rename to data/Legacy_mods/mods/Dark-Skies-Above/TODO.md index f157819a6..da8ae2c91 100644 --- a/data/Mainline_mods/Mods/Dark-Skies-Above/TODO.md +++ b/data/Legacy_mods/mods/Dark-Skies-Above/TODO.md @@ -1,14 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [List of Short Term Tasks](#list-of-short-term-tasks) - - [JSON](#json) - - [Code](#code) -- [Mid Term Ideas](#mid-term-ideas) - - - # List of Short Term Tasks In order to keep Dark Skies Above moving and to not get overwhelmed, I'm creating lists of achievable, short term tasks that need to done. These lists should be periodically updated as items are completed. diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/ammo_effect.json b/data/Legacy_mods/mods/Dark-Skies-Above/ammo_effect.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/ammo_effect.json rename to data/Legacy_mods/mods/Dark-Skies-Above/ammo_effect.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/item_blacklist.json b/data/Legacy_mods/mods/Dark-Skies-Above/blacklists/item_blacklist.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/item_blacklist.json rename to data/Legacy_mods/mods/Dark-Skies-Above/blacklists/item_blacklist.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/location_blacklist.json b/data/Legacy_mods/mods/Dark-Skies-Above/blacklists/location_blacklist.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/location_blacklist.json rename to data/Legacy_mods/mods/Dark-Skies-Above/blacklists/location_blacklist.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/mon_blacklist.json b/data/Legacy_mods/mods/Dark-Skies-Above/blacklists/mon_blacklist.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/mon_blacklist.json rename to data/Legacy_mods/mods/Dark-Skies-Above/blacklists/mon_blacklist.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/recipes_blacklist.json b/data/Legacy_mods/mods/Dark-Skies-Above/blacklists/recipes_blacklist.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/recipes_blacklist.json rename to data/Legacy_mods/mods/Dark-Skies-Above/blacklists/recipes_blacklist.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/scenario_blacklist.json b/data/Legacy_mods/mods/Dark-Skies-Above/blacklists/scenario_blacklist.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/scenario_blacklist.json rename to data/Legacy_mods/mods/Dark-Skies-Above/blacklists/scenario_blacklist.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/trait_blacklist.json b/data/Legacy_mods/mods/Dark-Skies-Above/blacklists/trait_blacklist.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/blacklists/trait_blacklist.json rename to data/Legacy_mods/mods/Dark-Skies-Above/blacklists/trait_blacklist.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/effects.json b/data/Legacy_mods/mods/Dark-Skies-Above/effects.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/effects.json rename to data/Legacy_mods/mods/Dark-Skies-Above/effects.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/factions.json b/data/Legacy_mods/mods/Dark-Skies-Above/factions.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/factions.json rename to data/Legacy_mods/mods/Dark-Skies-Above/factions.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/harvest.json b/data/Legacy_mods/mods/Dark-Skies-Above/harvest.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/harvest.json rename to data/Legacy_mods/mods/Dark-Skies-Above/harvest.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/items/alien-scrap.json b/data/Legacy_mods/mods/Dark-Skies-Above/items/alien-scrap.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/items/alien-scrap.json rename to data/Legacy_mods/mods/Dark-Skies-Above/items/alien-scrap.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/items/clothing+armor.json b/data/Legacy_mods/mods/Dark-Skies-Above/items/clothing+armor.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/items/clothing+armor.json rename to data/Legacy_mods/mods/Dark-Skies-Above/items/clothing+armor.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/items/electronics.json b/data/Legacy_mods/mods/Dark-Skies-Above/items/electronics.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/items/electronics.json rename to data/Legacy_mods/mods/Dark-Skies-Above/items/electronics.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/items/weapons.json b/data/Legacy_mods/mods/Dark-Skies-Above/items/weapons.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/items/weapons.json rename to data/Legacy_mods/mods/Dark-Skies-Above/items/weapons.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/mapgen/map_extras/bombed_crater.json b/data/Legacy_mods/mods/Dark-Skies-Above/mapgen/map_extras/bombed_crater.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/mapgen/map_extras/bombed_crater.json rename to data/Legacy_mods/mods/Dark-Skies-Above/mapgen/map_extras/bombed_crater.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/mapgen/map_extras/patrols.json b/data/Legacy_mods/mods/Dark-Skies-Above/mapgen/map_extras/patrols.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/mapgen/map_extras/patrols.json rename to data/Legacy_mods/mods/Dark-Skies-Above/mapgen/map_extras/patrols.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/materials.json b/data/Legacy_mods/mods/Dark-Skies-Above/materials.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/materials.json rename to data/Legacy_mods/mods/Dark-Skies-Above/materials.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/modinfo.json b/data/Legacy_mods/mods/Dark-Skies-Above/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/modinfo.json rename to data/Legacy_mods/mods/Dark-Skies-Above/modinfo.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monattack.json b/data/Legacy_mods/mods/Dark-Skies-Above/monattack.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monattack.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monattack.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/mondrops.json b/data/Legacy_mods/mods/Dark-Skies-Above/mondrops.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/mondrops.json rename to data/Legacy_mods/mods/Dark-Skies-Above/mondrops.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/mongun.json b/data/Legacy_mods/mods/Dark-Skies-Above/mongun.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/mongun.json rename to data/Legacy_mods/mods/Dark-Skies-Above/mongun.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monspell.json b/data/Legacy_mods/mods/Dark-Skies-Above/monspell.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monspell.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monspell.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/alien_cyborgs.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/alien_cyborgs.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/alien_cyborgs.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/alien_cyborgs.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/alien_fauna.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/alien_fauna.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/alien_fauna.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/alien_fauna.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/alien_robots.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/alien_robots.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/alien_robots.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/alien_robots.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mon_groups/alienanimal_spawns.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/mon_groups/alienanimal_spawns.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mon_groups/alienanimal_spawns.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/mon_groups/alienanimal_spawns.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mon_groups/invader_spawns.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/mon_groups/invader_spawns.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mon_groups/invader_spawns.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/mon_groups/invader_spawns.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mon_groups/neworder_spawns.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/mon_groups/neworder_spawns.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mon_groups/neworder_spawns.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/mon_groups/neworder_spawns.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mon_groups/stray_spawns.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/mon_groups/stray_spawns.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mon_groups/stray_spawns.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/mon_groups/stray_spawns.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/monattack.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/monattack.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/monattack.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/monattack.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mondrops.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/mondrops.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mondrops.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/mondrops.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mongun.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/mongun.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/mongun.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/mongun.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/monspell.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/monspell.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/monspell.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/monspell.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/new_order/neworder_highorder.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/new_order/neworder_highorder.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/new_order/neworder_highorder.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/new_order/neworder_highorder.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/new_order/neworder_loworder.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/new_order/neworder_loworder.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/new_order/neworder_loworder.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/new_order/neworder_loworder.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/strays.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/strays.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/strays.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/strays.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/wild_aliens/alien_fauna.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/wild_aliens/alien_fauna.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/wild_aliens/alien_fauna.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/wild_aliens/alien_fauna.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/monsters/wild_aliens/strays.json b/data/Legacy_mods/mods/Dark-Skies-Above/monsters/wild_aliens/strays.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/monsters/wild_aliens/strays.json rename to data/Legacy_mods/mods/Dark-Skies-Above/monsters/wild_aliens/strays.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/mutations/traits.json b/data/Legacy_mods/mods/Dark-Skies-Above/mutations/traits.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/mutations/traits.json rename to data/Legacy_mods/mods/Dark-Skies-Above/mutations/traits.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/obsolete.json b/data/Legacy_mods/mods/Dark-Skies-Above/obsolete.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/obsolete.json rename to data/Legacy_mods/mods/Dark-Skies-Above/obsolete.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/furniture_terrain/indoor_furniture.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/furniture_terrain/indoor_furniture.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/furniture_terrain/indoor_furniture.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/furniture_terrain/indoor_furniture.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/furniture_terrain/outdoor-furniture.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/furniture_terrain/outdoor-furniture.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/furniture_terrain/outdoor-furniture.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/furniture_terrain/outdoor-furniture.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/armor.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/armor.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/armor.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/armor.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/books.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/books.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/books.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/books.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/carnivore.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/carnivore.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/carnivore.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/carnivore.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/electronic.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/electronic.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/electronic.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/electronic.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/generics.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/generics.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/generics.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/generics.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/newspaper.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/newspaper.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/newspaper.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/newspaper.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/ranged.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/ranged.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/ranged.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/ranged.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/tools.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/tools.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/tools.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/tools.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/vehicle.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/vehicle.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/vehicle.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/vehicle.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/weapons.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/weapons.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/items/weapons.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/items/weapons.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/locations/cemetery.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/locations/cemetery.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/locations/cemetery.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/locations/cemetery.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/locations/evac_center.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/locations/evac_center.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/locations/evac_center.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/locations/evac_center.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/locations/overmap_special.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/locations/overmap_special.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/locations/overmap_special.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/locations/overmap_special.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/monsters.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/monsters.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/monsters.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/monsters.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/professions.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/professions.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/professions.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/professions.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/region_settings.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/region_settings.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/region_settings.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/region_settings.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/overrides/scenarios.json b/data/Legacy_mods/mods/Dark-Skies-Above/overrides/scenarios.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/overrides/scenarios.json rename to data/Legacy_mods/mods/Dark-Skies-Above/overrides/scenarios.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/recipies/uncraft.json b/data/Legacy_mods/mods/Dark-Skies-Above/recipies/uncraft.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/recipies/uncraft.json rename to data/Legacy_mods/mods/Dark-Skies-Above/recipies/uncraft.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/snippets/fliers.json b/data/Legacy_mods/mods/Dark-Skies-Above/snippets/fliers.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/snippets/fliers.json rename to data/Legacy_mods/mods/Dark-Skies-Above/snippets/fliers.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/snippets/graffiti.json b/data/Legacy_mods/mods/Dark-Skies-Above/snippets/graffiti.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/snippets/graffiti.json rename to data/Legacy_mods/mods/Dark-Skies-Above/snippets/graffiti.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/snippets/newspaper.json b/data/Legacy_mods/mods/Dark-Skies-Above/snippets/newspaper.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/snippets/newspaper.json rename to data/Legacy_mods/mods/Dark-Skies-Above/snippets/newspaper.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/snippets/radio.json b/data/Legacy_mods/mods/Dark-Skies-Above/snippets/radio.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/snippets/radio.json rename to data/Legacy_mods/mods/Dark-Skies-Above/snippets/radio.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/snippets/survnotes.json b/data/Legacy_mods/mods/Dark-Skies-Above/snippets/survnotes.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/snippets/survnotes.json rename to data/Legacy_mods/mods/Dark-Skies-Above/snippets/survnotes.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/species.json b/data/Legacy_mods/mods/Dark-Skies-Above/species.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/species.json rename to data/Legacy_mods/mods/Dark-Skies-Above/species.json diff --git a/data/Mainline_mods/Mods/Dark-Skies-Above/speech/neworder_speech.json b/data/Legacy_mods/mods/Dark-Skies-Above/speech/neworder_speech.json similarity index 100% rename from data/Mainline_mods/Mods/Dark-Skies-Above/speech/neworder_speech.json rename to data/Legacy_mods/mods/Dark-Skies-Above/speech/neworder_speech.json diff --git a/data/Mainline_mods/Mods/Fuji_Mil_Prof/modinfo.json b/data/Legacy_mods/mods/Fuji_Mil_Prof/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Mil_Prof/modinfo.json rename to data/Legacy_mods/mods/Fuji_Mil_Prof/modinfo.json diff --git a/data/Mainline_mods/Mods/Fuji_Mil_Prof/npc/NC_ARMY.json b/data/Legacy_mods/mods/Fuji_Mil_Prof/npc/NC_ARMY.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Mil_Prof/npc/NC_ARMY.json rename to data/Legacy_mods/mods/Fuji_Mil_Prof/npc/NC_ARMY.json diff --git a/data/Mainline_mods/Mods/Fuji_Mil_Prof/npc/NC_OPS.json b/data/Legacy_mods/mods/Fuji_Mil_Prof/npc/NC_OPS.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Mil_Prof/npc/NC_OPS.json rename to data/Legacy_mods/mods/Fuji_Mil_Prof/npc/NC_OPS.json diff --git a/data/Mainline_mods/Mods/Fuji_Mil_Prof/npc/classes.json b/data/Legacy_mods/mods/Fuji_Mil_Prof/npc/classes.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Mil_Prof/npc/classes.json rename to data/Legacy_mods/mods/Fuji_Mil_Prof/npc/classes.json diff --git a/data/Mainline_mods/Mods/Fuji_Mil_Prof/prof/army.json b/data/Legacy_mods/mods/Fuji_Mil_Prof/prof/army.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Mil_Prof/prof/army.json rename to data/Legacy_mods/mods/Fuji_Mil_Prof/prof/army.json diff --git a/data/Mainline_mods/Mods/Fuji_Mil_Prof/prof/itemgroups_prof.json b/data/Legacy_mods/mods/Fuji_Mil_Prof/prof/itemgroups_prof.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Mil_Prof/prof/itemgroups_prof.json rename to data/Legacy_mods/mods/Fuji_Mil_Prof/prof/itemgroups_prof.json diff --git a/data/Mainline_mods/Mods/Fuji_Mil_Prof/prof/spc.json b/data/Legacy_mods/mods/Fuji_Mil_Prof/prof/spc.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Mil_Prof/prof/spc.json rename to data/Legacy_mods/mods/Fuji_Mil_Prof/prof/spc.json diff --git a/data/Mainline_mods/Mods/Fuji_Mil_Prof/scenarios.json b/data/Legacy_mods/mods/Fuji_Mil_Prof/scenarios.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Mil_Prof/scenarios.json rename to data/Legacy_mods/mods/Fuji_Mil_Prof/scenarios.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/modinfo.json b/data/Legacy_mods/mods/Fuji_Structures/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/modinfo.json rename to data/Legacy_mods/mods/Fuji_Structures/modinfo.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/monsters/monstergroups.json b/data/Legacy_mods/mods/Fuji_Structures/monsters/monstergroups.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/monsters/monstergroups.json rename to data/Legacy_mods/mods/Fuji_Structures/monsters/monstergroups.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/npc/NC_BUNKER_MERCHANT.json b/data/Legacy_mods/mods/Fuji_Structures/npc/NC_BUNKER_MERCHANT.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/npc/NC_BUNKER_MERCHANT.json rename to data/Legacy_mods/mods/Fuji_Structures/npc/NC_BUNKER_MERCHANT.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/npc/TALK_BUNKER_MERCHANT.json b/data/Legacy_mods/mods/Fuji_Structures/npc/TALK_BUNKER_MERCHANT.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/npc/TALK_BUNKER_MERCHANT.json rename to data/Legacy_mods/mods/Fuji_Structures/npc/TALK_BUNKER_MERCHANT.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/npc/classes.json b/data/Legacy_mods/mods/Fuji_Structures/npc/classes.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/npc/classes.json rename to data/Legacy_mods/mods/Fuji_Structures/npc/classes.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/npc/npc.json b/data/Legacy_mods/mods/Fuji_Structures/npc/npc.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/npc/npc.json rename to data/Legacy_mods/mods/Fuji_Structures/npc/npc.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/starts/professions.json b/data/Legacy_mods/mods/Fuji_Structures/starts/professions.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/starts/professions.json rename to data/Legacy_mods/mods/Fuji_Structures/starts/professions.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/starts/scenarios.json b/data/Legacy_mods/mods/Fuji_Structures/starts/scenarios.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/starts/scenarios.json rename to data/Legacy_mods/mods/Fuji_Structures/starts/scenarios.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/starts/start_locations.json b/data/Legacy_mods/mods/Fuji_Structures/starts/start_locations.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/starts/start_locations.json rename to data/Legacy_mods/mods/Fuji_Structures/starts/start_locations.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_b.json b/data/Legacy_mods/mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_b.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_b.json rename to data/Legacy_mods/mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_b.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_g.json b/data/Legacy_mods/mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_g.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_g.json rename to data/Legacy_mods/mods/Fuji_Structures/worldgen/bunker_shop/s_bunker_shop_g.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/worldgen/gas/s_gas_b11.json b/data/Legacy_mods/mods/Fuji_Structures/worldgen/gas/s_gas_b11.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/worldgen/gas/s_gas_b11.json rename to data/Legacy_mods/mods/Fuji_Structures/worldgen/gas/s_gas_b11.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/worldgen/gas/s_gas_b20.json b/data/Legacy_mods/mods/Fuji_Structures/worldgen/gas/s_gas_b20.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/worldgen/gas/s_gas_b20.json rename to data/Legacy_mods/mods/Fuji_Structures/worldgen/gas/s_gas_b20.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/worldgen/gas/s_gas_b21.json b/data/Legacy_mods/mods/Fuji_Structures/worldgen/gas/s_gas_b21.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/worldgen/gas/s_gas_b21.json rename to data/Legacy_mods/mods/Fuji_Structures/worldgen/gas/s_gas_b21.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/worldgen/gas/s_gas_g0.json b/data/Legacy_mods/mods/Fuji_Structures/worldgen/gas/s_gas_g0.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/worldgen/gas/s_gas_g0.json rename to data/Legacy_mods/mods/Fuji_Structures/worldgen/gas/s_gas_g0.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/worldgen/gas/s_gas_g1.json b/data/Legacy_mods/mods/Fuji_Structures/worldgen/gas/s_gas_g1.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/worldgen/gas/s_gas_g1.json rename to data/Legacy_mods/mods/Fuji_Structures/worldgen/gas/s_gas_g1.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/worldgen/overmap_specials.json b/data/Legacy_mods/mods/Fuji_Structures/worldgen/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/worldgen/overmap_specials.json rename to data/Legacy_mods/mods/Fuji_Structures/worldgen/overmap_specials.json diff --git a/data/Mainline_mods/Mods/Fuji_Structures/worldgen/overmap_terrain.json b/data/Legacy_mods/mods/Fuji_Structures/worldgen/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/Fuji_Structures/worldgen/overmap_terrain.json rename to data/Legacy_mods/mods/Fuji_Structures/worldgen/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/Graphical_Overmap_FujiStruct/modinfo.json b/data/Legacy_mods/mods/Graphical_Overmap_FujiStruct/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Graphical_Overmap_FujiStruct/modinfo.json rename to data/Legacy_mods/mods/Graphical_Overmap_FujiStruct/modinfo.json diff --git a/data/Mainline_mods/Mods/Graphical_Overmap_FujiStruct/overmap_terrain_fujistruct.json b/data/Legacy_mods/mods/Graphical_Overmap_FujiStruct/overmap_terrain_fujistruct.json similarity index 100% rename from data/Mainline_mods/Mods/Graphical_Overmap_FujiStruct/overmap_terrain_fujistruct.json rename to data/Legacy_mods/mods/Graphical_Overmap_FujiStruct/overmap_terrain_fujistruct.json diff --git a/data/Mainline_mods/Mods/Graphical_Overmap_Magiclysm/go_overmap_terrain_magical.json b/data/Legacy_mods/mods/Graphical_Overmap_Magiclysm/go_overmap_terrain_magical.json similarity index 100% rename from data/Mainline_mods/Mods/Graphical_Overmap_Magiclysm/go_overmap_terrain_magical.json rename to data/Legacy_mods/mods/Graphical_Overmap_Magiclysm/go_overmap_terrain_magical.json diff --git a/data/Mainline_mods/Mods/Graphical_Overmap_Magiclysm/modinfo.json b/data/Legacy_mods/mods/Graphical_Overmap_Magiclysm/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Graphical_Overmap_Magiclysm/modinfo.json rename to data/Legacy_mods/mods/Graphical_Overmap_Magiclysm/modinfo.json diff --git a/data/Mainline_mods/Mods/Graphical_Overmap_More_Buildings/modinfo.json b/data/Legacy_mods/mods/Graphical_Overmap_More_Buildings/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Graphical_Overmap_More_Buildings/modinfo.json rename to data/Legacy_mods/mods/Graphical_Overmap_More_Buildings/modinfo.json diff --git a/data/Mainline_mods/Mods/Graphical_Overmap_More_Buildings/overmap_terrain_fujistruct.json b/data/Legacy_mods/mods/Graphical_Overmap_More_Buildings/overmap_terrain_fujistruct.json similarity index 100% rename from data/Mainline_mods/Mods/Graphical_Overmap_More_Buildings/overmap_terrain_fujistruct.json rename to data/Legacy_mods/mods/Graphical_Overmap_More_Buildings/overmap_terrain_fujistruct.json diff --git a/data/Mainline_mods/Mods/Graphical_Overmap_More_Locations/modinfo.json b/data/Legacy_mods/mods/Graphical_Overmap_More_Locations/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Graphical_Overmap_More_Locations/modinfo.json rename to data/Legacy_mods/mods/Graphical_Overmap_More_Locations/modinfo.json diff --git a/data/Mainline_mods/Mods/Graphical_Overmap_More_Locations/overmap_terrain_more_locations.json b/data/Legacy_mods/mods/Graphical_Overmap_More_Locations/overmap_terrain_more_locations.json similarity index 100% rename from data/Mainline_mods/Mods/Graphical_Overmap_More_Locations/overmap_terrain_more_locations.json rename to data/Legacy_mods/mods/Graphical_Overmap_More_Locations/overmap_terrain_more_locations.json diff --git a/data/Mainline_mods/Mods/Graphical_Overmap_Urban_Development/modinfo.json b/data/Legacy_mods/mods/Graphical_Overmap_Urban_Development/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Graphical_Overmap_Urban_Development/modinfo.json rename to data/Legacy_mods/mods/Graphical_Overmap_Urban_Development/modinfo.json diff --git a/data/Mainline_mods/Mods/Graphical_Overmap_Urban_Development/overmap_terrain_urban_development.json b/data/Legacy_mods/mods/Graphical_Overmap_Urban_Development/overmap_terrain_urban_development.json similarity index 100% rename from data/Mainline_mods/Mods/Graphical_Overmap_Urban_Development/overmap_terrain_urban_development.json rename to data/Legacy_mods/mods/Graphical_Overmap_Urban_Development/overmap_terrain_urban_development.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1blc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1blc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1blc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1blc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1blc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1blc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1blc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1blc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1blc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1blc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1blc_04.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1blc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1blc_04.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1blc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1blc_05.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1blc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1blc_05.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1blc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1brc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1brc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1brc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1brc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1brc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1brc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1brc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1brc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1brc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1brc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1cyblc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1cyblc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1cyblc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1cyblc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1cybrc_00.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1cybrc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1cybrc_00.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1cybrc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1cytlc_00.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1cytlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1cytlc_00.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1cytlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1cytlc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1cytlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1cytlc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1cytlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1cytrc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1cytrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1cytrc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1cytrc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1gate_00.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1gate_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1gate_00.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1gate_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1gate_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1gate_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1gate_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1gate_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1tlc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1tlc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1tlc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1tlc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1tlc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1tlc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1tlc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1tlc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1tlc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1tlc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1trc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1trc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1trc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1trc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1trc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1trc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1trc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1trc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1trc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1trc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1ybe_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1ybe_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1ybe_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1ybe_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1ybe_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1ybe_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1ybe_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1ybe_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1ybe_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1ybe_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1ybe_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1ybe_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yle_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yle_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yle_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yle_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yle_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yle_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yle_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yle_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yle_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yle_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yle_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yle_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yre_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yre_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yre_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yre_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yre_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yre_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yre_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yre_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yre_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yre_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yre_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yre_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yte_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yte_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yte_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yte_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yte_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yte_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yte_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yte_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yte_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yte_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_1yte_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_1yte_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2blc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2blc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2blc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2blc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2blc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2blc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2blc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2blc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2blc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2blc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2blc_04.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2blc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2blc_04.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2blc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2brc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2brc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2brc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2brc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2brc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2brc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2brc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2brc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2brc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2brc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2brc_04.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2brc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2brc_04.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2brc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2brc_05.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2brc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2brc_05.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2brc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_00.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_00.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_04.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_04.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_05.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_05.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_07.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_07.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2tlc_07.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2tlc_07.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2trc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2trc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2trc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2trc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2trc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2trc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2trc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2trc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2trc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2trc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2trc_04.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2trc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2trc_04.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2trc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2trc_05.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2trc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_2trc_05.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_2trc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_04.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_04.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_05.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_05.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_06.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_06.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3blc_06.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3blc_06.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_04.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_04.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_05.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_05.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_06.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_06.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3brc_06.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3brc_06.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_04.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_04.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_05.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_05.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_06.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_06.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3tlc_06.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3tlc_06.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_03.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_03.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_04.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_04.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_05.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_05.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_06.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_06.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_3trc_06.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_3trc_06.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4blc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4blc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4blc_02.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4blc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4blc_02.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4blc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4brc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4brc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4tlc_00.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4tlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4tlc_00.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4tlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4tlc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4tlc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4trc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_4trc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_4trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_ublc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_ublc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_ublc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_ublc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_ubrc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_ubrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_ubrc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_ubrc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_utlc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_utlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_utlc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_utlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_utrc_01.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_utrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/bandit_tower_utrc_01.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/bandit_tower_utrc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/overmap_specials.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/overmap_specials.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/overmap_specials.json diff --git a/data/Mainline_mods/Mods/More_Locations/bandit_tower/overmap_terrain.json b/data/Legacy_mods/mods/More_Locations/bandit_tower/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/bandit_tower/overmap_terrain.json rename to data/Legacy_mods/mods/More_Locations/bandit_tower/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/More_Locations/captive_faction/NC_CAPTIVE.json b/data/Legacy_mods/mods/More_Locations/captive_faction/NC_CAPTIVE.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/captive_faction/NC_CAPTIVE.json rename to data/Legacy_mods/mods/More_Locations/captive_faction/NC_CAPTIVE.json diff --git a/data/Mainline_mods/Mods/More_Locations/captive_faction/NC_MUTANT_CAPTIVE.json b/data/Legacy_mods/mods/More_Locations/captive_faction/NC_MUTANT_CAPTIVE.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/captive_faction/NC_MUTANT_CAPTIVE.json rename to data/Legacy_mods/mods/More_Locations/captive_faction/NC_MUTANT_CAPTIVE.json diff --git a/data/Mainline_mods/Mods/More_Locations/captive_faction/TALK_CAPTIVE.json b/data/Legacy_mods/mods/More_Locations/captive_faction/TALK_CAPTIVE.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/captive_faction/TALK_CAPTIVE.json rename to data/Legacy_mods/mods/More_Locations/captive_faction/TALK_CAPTIVE.json diff --git a/data/Mainline_mods/Mods/More_Locations/captive_faction/captive_classes.json b/data/Legacy_mods/mods/More_Locations/captive_faction/captive_classes.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/captive_faction/captive_classes.json rename to data/Legacy_mods/mods/More_Locations/captive_faction/captive_classes.json diff --git a/data/Mainline_mods/Mods/More_Locations/captive_faction/captive_item_groups.json b/data/Legacy_mods/mods/More_Locations/captive_faction/captive_item_groups.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/captive_faction/captive_item_groups.json rename to data/Legacy_mods/mods/More_Locations/captive_faction/captive_item_groups.json diff --git a/data/Mainline_mods/Mods/More_Locations/captive_faction/captive_npc.json b/data/Legacy_mods/mods/More_Locations/captive_faction/captive_npc.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/captive_faction/captive_npc.json rename to data/Legacy_mods/mods/More_Locations/captive_faction/captive_npc.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1be_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1be_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1be_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1be_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1be_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1be_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1be_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1be_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1be_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1be_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1be_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1be_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1be_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1be_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1be_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1be_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1bloc_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1bloc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1bloc_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1bloc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1bloc_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1bloc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1bloc_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1bloc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1bloc_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1bloc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1bloc_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1bloc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1bloc_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1bloc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1bloc_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1bloc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1broc_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1broc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1broc_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1broc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1broc_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1broc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1broc_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1broc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1broc_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1broc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1broc_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1broc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1broc_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1broc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1broc_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1broc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1by_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1by_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1by_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1by_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1ica_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1ica_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1ica_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1ica_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1ica_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1ica_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1ica_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1ica_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1ica_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1ica_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1ica_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1ica_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1ica_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1ica_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1ica_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1ica_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icb_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icb_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icb_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icb_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icb_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icb_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icb_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icb_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icb_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icb_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icb_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icb_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icb_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icb_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icb_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icb_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icc_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icc_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icc_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icc_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icc_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icc_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icc_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icc_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icd_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icd_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icd_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icd_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icd_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icd_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icd_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icd_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icd_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icd_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icd_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icd_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1icd_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1icd_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1icd_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1icd_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1le_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1le_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1le_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1le_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1le_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1le_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1le_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1le_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1le_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1le_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1le_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1le_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1le_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1le_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1le_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1le_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1re_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1re_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1re_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1re_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1re_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1re_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1re_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1re_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1re_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1re_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1re_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1re_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1re_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1re_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1re_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1re_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1te_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1te_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1te_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1te_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1te_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1te_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1te_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1te_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1te_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1te_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1te_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1te_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1te_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1te_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1te_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1te_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1tloc_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1tloc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1tloc_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1tloc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1tloc_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1tloc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1tloc_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1tloc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1tloc_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1tloc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1tloc_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1tloc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1tloc_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1tloc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1tloc_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1tloc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1troc_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1troc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1troc_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1troc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1troc_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1troc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1troc_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1troc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1troc_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1troc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1troc_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1troc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1troc_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1troc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1troc_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1troc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_1ty_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_1ty_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_1ty_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_1ty_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2be_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2be_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2be_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2be_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2be_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2be_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2be_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2be_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2be_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2be_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2be_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2be_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2be_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2be_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2be_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2be_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2bloc.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2bloc.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2bloc.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2bloc.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2broc.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2broc.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2broc.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2broc.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2broc_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2broc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2broc_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2broc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2ica_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2ica_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2ica_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2ica_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2ica_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2ica_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2ica_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2ica_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2ica_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2ica_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2ica_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2ica_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2ica_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2ica_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2ica_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2ica_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icb_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icb_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icb_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icb_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icb_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icb_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icb_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icb_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icb_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icb_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icb_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icb_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icb_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icb_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icb_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icb_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icc_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icc_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icc_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icc_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icc_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icc_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icc_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icc_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icd_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icd_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icd_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icd_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icd_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icd_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icd_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icd_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icd_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icd_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icd_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icd_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2icd_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2icd_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2icd_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2icd_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2le_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2le_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2le_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2le_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2le_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2le_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2le_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2le_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2le_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2le_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2le_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2le_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2le_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2le_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2le_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2le_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2re_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2re_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2re_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2re_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2re_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2re_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2re_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2re_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2re_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2re_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2re_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2re_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2re_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2re_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2re_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2re_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2te_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2te_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2te_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2te_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2te_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2te_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2te_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2te_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2te_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2te_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2te_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2te_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2te_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2te_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2te_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2te_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2tloc_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2tloc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2tloc_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2tloc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2tloc_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2tloc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2tloc_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2tloc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2tloc_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2tloc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2tloc_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2tloc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2tloc_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2tloc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2tloc_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2tloc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2troc_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2troc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2troc_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2troc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2troc_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2troc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2troc_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2troc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2troc_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2troc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2troc_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2troc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_2troc_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_2troc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_2troc_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_2troc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_00.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_00.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_02.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_02.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_03.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_03.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_04.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_04.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_05.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_05.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_06.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_06.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_06.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_06.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_07.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_07.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_07.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_07.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_08.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_08.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_08.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_08.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_09.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_09.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_09.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_09.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_10.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_10.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_10.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_10.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_11.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_11.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_11.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_11.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_12.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_12.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_12.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_12.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_13.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_13.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_13.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_13.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_14.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_14.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_14.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_14.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_15.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_15.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_15.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_15.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_16.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_16.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_16.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_16.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_17.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_17.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_17.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_17.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_18.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_18.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_18.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_18.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_19.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_19.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_19.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_19.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_20.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_20.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_20.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_20.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_21.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_21.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_21.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_21.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_22.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_22.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_22.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_22.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_23.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_23.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_23.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_23.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_30.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_30.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_30.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_30.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_31.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_31.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_31.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_31.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_32.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_32.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_32.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_32.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_33.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_33.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_33.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_33.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_34.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_34.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_34.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_34.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_35.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_35.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_35.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_35.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_36.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_36.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_36.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_36.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_37.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_37.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_37.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_37.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_38.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_38.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_38.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_38.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_39.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_39.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_39.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_39.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_mid_40.json b/data/Legacy_mods/mods/More_Locations/estate/estate_mid_40.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_mid_40.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_mid_40.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_ube_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_ube_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_ube_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_ube_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_ule_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_ule_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_ule_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_ule_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_umid_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_umid_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_umid_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_umid_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_ure_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_ure_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_ure_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_ure_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/estate_ute_01.json b/data/Legacy_mods/mods/More_Locations/estate/estate_ute_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/estate_ute_01.json rename to data/Legacy_mods/mods/More_Locations/estate/estate_ute_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/overmap_specials.json b/data/Legacy_mods/mods/More_Locations/estate/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/overmap_specials.json rename to data/Legacy_mods/mods/More_Locations/estate/overmap_specials.json diff --git a/data/Mainline_mods/Mods/More_Locations/estate/overmap_terrain.json b/data/Legacy_mods/mods/More_Locations/estate/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/estate/overmap_terrain.json rename to data/Legacy_mods/mods/More_Locations/estate/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/More_Locations/factions.json b/data/Legacy_mods/mods/More_Locations/factions.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factions.json rename to data/Legacy_mods/mods/More_Locations/factions.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_be_01.json b/data/Legacy_mods/mods/More_Locations/factory/factory_be_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_be_01.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_be_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_be_02.json b/data/Legacy_mods/mods/More_Locations/factory/factory_be_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_be_02.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_be_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_be_03.json b/data/Legacy_mods/mods/More_Locations/factory/factory_be_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_be_03.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_be_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_be_04.json b/data/Legacy_mods/mods/More_Locations/factory/factory_be_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_be_04.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_be_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_be_05.json b/data/Legacy_mods/mods/More_Locations/factory/factory_be_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_be_05.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_be_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_be_gate_01.json b/data/Legacy_mods/mods/More_Locations/factory/factory_be_gate_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_be_gate_01.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_be_gate_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_be_gate_02.json b/data/Legacy_mods/mods/More_Locations/factory/factory_be_gate_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_be_gate_02.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_be_gate_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_be_gate_03.json b/data/Legacy_mods/mods/More_Locations/factory/factory_be_gate_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_be_gate_03.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_be_gate_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_blc_01.json b/data/Legacy_mods/mods/More_Locations/factory/factory_blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_blc_01.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_blc_02.json b/data/Legacy_mods/mods/More_Locations/factory/factory_blc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_blc_02.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_blc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_blc_04.json b/data/Legacy_mods/mods/More_Locations/factory/factory_blc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_blc_04.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_blc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_blc_05.json b/data/Legacy_mods/mods/More_Locations/factory/factory_blc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_blc_05.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_blc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_brc_01.json b/data/Legacy_mods/mods/More_Locations/factory/factory_brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_brc_01.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_brc_02.json b/data/Legacy_mods/mods/More_Locations/factory/factory_brc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_brc_02.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_brc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_brc_04.json b/data/Legacy_mods/mods/More_Locations/factory/factory_brc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_brc_04.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_brc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_le_01.json b/data/Legacy_mods/mods/More_Locations/factory/factory_le_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_le_01.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_le_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_le_02.json b/data/Legacy_mods/mods/More_Locations/factory/factory_le_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_le_02.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_le_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_le_03.json b/data/Legacy_mods/mods/More_Locations/factory/factory_le_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_le_03.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_le_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_le_04.json b/data/Legacy_mods/mods/More_Locations/factory/factory_le_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_le_04.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_le_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_le_05.json b/data/Legacy_mods/mods/More_Locations/factory/factory_le_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_le_05.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_le_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_01.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_01.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_02.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_02.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_03.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_03.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_04.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_04.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_05.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_05.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_06.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_06.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_06.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_06.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_07.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_07.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_07.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_07.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_08.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_08.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_08.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_08.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_09.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_09.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_09.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_09.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_10.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_10.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_10.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_10.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_11.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_11.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_11.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_11.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_12.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_12.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_12.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_12.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_13.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_13.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_13.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_13.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_15.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_15.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_15.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_15.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_16.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_16.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_16.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_16.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_mid_17.json b/data/Legacy_mods/mods/More_Locations/factory/factory_mid_17.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_mid_17.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_mid_17.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_re_01.json b/data/Legacy_mods/mods/More_Locations/factory/factory_re_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_re_01.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_re_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_re_02.json b/data/Legacy_mods/mods/More_Locations/factory/factory_re_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_re_02.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_re_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_re_03.json b/data/Legacy_mods/mods/More_Locations/factory/factory_re_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_re_03.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_re_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_re_04.json b/data/Legacy_mods/mods/More_Locations/factory/factory_re_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_re_04.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_re_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_re_05.json b/data/Legacy_mods/mods/More_Locations/factory/factory_re_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_re_05.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_re_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_re_06.json b/data/Legacy_mods/mods/More_Locations/factory/factory_re_06.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_re_06.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_re_06.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_te_01.json b/data/Legacy_mods/mods/More_Locations/factory/factory_te_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_te_01.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_te_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_te_02.json b/data/Legacy_mods/mods/More_Locations/factory/factory_te_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_te_02.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_te_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_te_03.json b/data/Legacy_mods/mods/More_Locations/factory/factory_te_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_te_03.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_te_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_te_04.json b/data/Legacy_mods/mods/More_Locations/factory/factory_te_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_te_04.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_te_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_te_05.json b/data/Legacy_mods/mods/More_Locations/factory/factory_te_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_te_05.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_te_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_te_06.json b/data/Legacy_mods/mods/More_Locations/factory/factory_te_06.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_te_06.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_te_06.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_tlc_01.json b/data/Legacy_mods/mods/More_Locations/factory/factory_tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_tlc_01.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_tlc_02.json b/data/Legacy_mods/mods/More_Locations/factory/factory_tlc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_tlc_02.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_tlc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_tlc_04.json b/data/Legacy_mods/mods/More_Locations/factory/factory_tlc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_tlc_04.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_tlc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_tlc_05.json b/data/Legacy_mods/mods/More_Locations/factory/factory_tlc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_tlc_05.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_tlc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_trc_01.json b/data/Legacy_mods/mods/More_Locations/factory/factory_trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_trc_01.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_trc_02.json b/data/Legacy_mods/mods/More_Locations/factory/factory_trc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_trc_02.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_trc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_trc_03.json b/data/Legacy_mods/mods/More_Locations/factory/factory_trc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_trc_03.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_trc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_trc_04.json b/data/Legacy_mods/mods/More_Locations/factory/factory_trc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_trc_04.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_trc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/factory_trc_05.json b/data/Legacy_mods/mods/More_Locations/factory/factory_trc_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/factory_trc_05.json rename to data/Legacy_mods/mods/More_Locations/factory/factory_trc_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/overmap_specials.json b/data/Legacy_mods/mods/More_Locations/factory/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/overmap_specials.json rename to data/Legacy_mods/mods/More_Locations/factory/overmap_specials.json diff --git a/data/Mainline_mods/Mods/More_Locations/factory/overmap_terrain.json b/data/Legacy_mods/mods/More_Locations/factory/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/factory/overmap_terrain.json rename to data/Legacy_mods/mods/More_Locations/factory/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1be_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1be_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1be_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1be_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1be_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1be_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1be_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1be_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1blc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1blc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1blc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1blc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1blc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1blc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1brc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1brc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1brc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1brc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1brc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1brc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1le_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1le_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1le_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1le_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1le_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1le_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1le_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1le_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1mid_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1mid_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1mid_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1mid_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1mid_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1mid_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1mid_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1mid_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1mid_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1mid_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1mid_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1mid_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1mid_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1mid_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1mid_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1mid_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1mid_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1mid_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1mid_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1mid_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1re_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1re_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1re_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1re_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1re_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1re_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1re_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1re_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1te_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1te_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1te_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1te_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1te_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1te_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1te_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1te_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1tlc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1tlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1tlc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1tlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1tlc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1tlc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1trc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1trc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1trc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1trc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1trc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_1trc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_1trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2be_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2be_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2be_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2be_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2be_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2be_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2be_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2be_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2blc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2blc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2blc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2blc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2blc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2blc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2brc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2brc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2brc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2brc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2brc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2brc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2le_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2le_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2le_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2le_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2le_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2le_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2le_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2le_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2re_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2re_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2re_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2re_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2re_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2re_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2re_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2re_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2te_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2te_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2te_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2te_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2te_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2te_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2te_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2te_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2tlc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2tlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2tlc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2tlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2tlc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2tlc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2trc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2trc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2trc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2trc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2trc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_2trc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_2trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_05.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_3c_05.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_3c_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ube_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ube_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ube_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ube_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubea_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubea_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubea_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubea_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubea_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubea_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubea_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubea_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubea_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubea_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubea_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubea_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubea_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubea_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubea_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubea_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubeb_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubeb_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubeb_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubeb_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubeb_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubeb_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubeb_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubeb_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubeb_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubeb_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubeb_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubeb_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubeb_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubeb_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubeb_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubeb_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ublc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ublc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ublc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ublc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ublc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ublc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ublc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ublc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ublc_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ublc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ublc_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ublc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ublc_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ublc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ublc_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ublc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ublc_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ublc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ublc_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ublc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubrc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubrc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubrc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubrc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubrc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubrc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubrc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubrc_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubrc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubrc_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubrc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubrc_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubrc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubrc_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubrc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubrc_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubrc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ubrc_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ubrc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ule_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ule_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ule_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ule_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ule_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ule_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ule_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ule_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ule_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ule_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ule_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ule_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ule_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ule_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ule_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ule_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ule_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ule_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ule_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ule_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_finale_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_finale_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_umid_finale_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_umid_finale_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ure_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ure_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ure_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ure_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ure_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ure_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ure_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ure_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ure_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ure_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ure_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ure_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ure_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ure_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ure_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ure_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ure_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ure_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ure_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ure_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utea_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utea_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utea_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utea_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utea_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utea_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utea_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utea_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utea_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utea_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utea_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utea_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utea_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utea_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utea_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utea_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utea_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utea_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utea_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utea_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_uteb_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_uteb_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_uteb_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_uteb_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_uteb_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_uteb_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_uteb_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_uteb_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_uteb_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_uteb_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_uteb_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_uteb_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_uteb_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_uteb_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_uteb_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_uteb_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_uteb_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_uteb_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_uteb_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_uteb_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utlc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utlc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utlc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utlc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utlc_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utlc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utlc_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utlc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utlc_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utlc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utlc_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utlc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utlc_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utlc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utlc_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utlc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utrc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utrc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utrc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utrc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utrc_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utrc_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utrc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utrc_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utrc_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utrc_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utrc_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utrc_03.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utrc_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utrc_03.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utrc_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utrc_04.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utrc_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_utrc_04.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_utrc_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ybe_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ybe_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ybe_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ybe_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ybe_gate_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ybe_gate_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ybe_gate_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ybe_gate_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ybe_gate_01.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ybe_gate_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ybe_gate_01.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ybe_gate_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ybe_gate_02.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ybe_gate_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ybe_gate_02.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ybe_gate_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_yblc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_yblc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_yblc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_yblc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ybrc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ybrc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ybrc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ybrc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_yle_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_yle_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_yle_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_yle_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_yre_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_yre_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_yre_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_yre_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_yte_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_yte_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_yte_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_yte_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ytlc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ytlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ytlc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ytlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ytrc_00.json b/data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ytrc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/mil_outpost_ytrc_00.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/mil_outpost_ytrc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/monster_groups.json b/data/Legacy_mods/mods/More_Locations/military_outpost/monster_groups.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/monster_groups.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/monster_groups.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/overmap_specials.json b/data/Legacy_mods/mods/More_Locations/military_outpost/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/overmap_specials.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/overmap_specials.json diff --git a/data/Mainline_mods/Mods/More_Locations/military_outpost/overmap_terrain.json b/data/Legacy_mods/mods/More_Locations/military_outpost/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/military_outpost/overmap_terrain.json rename to data/Legacy_mods/mods/More_Locations/military_outpost/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/More_Locations/modinfo.json b/data/Legacy_mods/mods/More_Locations/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/modinfo.json rename to data/Legacy_mods/mods/More_Locations/modinfo.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_basement_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_first_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_first_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyA_second_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyA_second_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyB_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyB_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyC_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyC_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyD_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyD_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyE_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyE_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/2story_houses/2storyF_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/2story_houses/2storyF_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_basement_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_first_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_first_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_second_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_second_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_second_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_second_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_second_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_second_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_second_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_second_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_second_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_second_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_second_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_second_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyA_third_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyA_third_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_basement_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_first_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_first_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_second_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_second_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyB_third_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyB_third_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_basement_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_first_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_first_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_second_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_second_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyC_third_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyC_third_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_basement_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_first_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_first_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_second_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_second_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyD_third_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyD_third_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_basement_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_first_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_first_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_second_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_second_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyE_third_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyE_third_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_basement_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_first_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_first_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_second_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_second_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_03.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_03.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_03.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_03.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_04.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_04.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_04.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_04.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_05.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_05.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/3story_houses/3storyF_third_05.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/3story_houses/3storyF_third_05.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageA_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageB_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combogarageC_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseA_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseB_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_basement_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_first_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_roof_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_roof_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_roof_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_roof_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_roof_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_roof_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_roof_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_roof_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_00.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_00.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_01.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_01.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_02.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_02.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_02.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/combo_garages/combohouseC_second_02.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/overmap_specials.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/overmap_specials.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/overmap_specials.json diff --git a/data/Mainline_mods/Mods/More_Locations/multistory_houses/overmap_terrain.json b/data/Legacy_mods/mods/More_Locations/multistory_houses/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/multistory_houses/overmap_terrain.json rename to data/Legacy_mods/mods/More_Locations/multistory_houses/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/More_Locations/npc.json b/data/Legacy_mods/mods/More_Locations/npc.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/npc.json rename to data/Legacy_mods/mods/More_Locations/npc.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_faction/NC_MUTANT_REFUGEE.json b/data/Legacy_mods/mods/More_Locations/refugee_faction/NC_MUTANT_REFUGEE.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_faction/NC_MUTANT_REFUGEE.json rename to data/Legacy_mods/mods/More_Locations/refugee_faction/NC_MUTANT_REFUGEE.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_faction/NC_REFUGEE.json b/data/Legacy_mods/mods/More_Locations/refugee_faction/NC_REFUGEE.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_faction/NC_REFUGEE.json rename to data/Legacy_mods/mods/More_Locations/refugee_faction/NC_REFUGEE.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_faction/NC_TALENTED_REFUGEE.json b/data/Legacy_mods/mods/More_Locations/refugee_faction/NC_TALENTED_REFUGEE.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_faction/NC_TALENTED_REFUGEE.json rename to data/Legacy_mods/mods/More_Locations/refugee_faction/NC_TALENTED_REFUGEE.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_faction/refugee_classes.json b/data/Legacy_mods/mods/More_Locations/refugee_faction/refugee_classes.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_faction/refugee_classes.json rename to data/Legacy_mods/mods/More_Locations/refugee_faction/refugee_classes.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_faction/refugee_item_groups.json b/data/Legacy_mods/mods/More_Locations/refugee_faction/refugee_item_groups.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_faction/refugee_item_groups.json rename to data/Legacy_mods/mods/More_Locations/refugee_faction/refugee_item_groups.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_faction/refugee_npc.json b/data/Legacy_mods/mods/More_Locations/refugee_faction/refugee_npc.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_faction/refugee_npc.json rename to data/Legacy_mods/mods/More_Locations/refugee_faction/refugee_npc.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_faction/talk_flags.json b/data/Legacy_mods/mods/More_Locations/refugee_faction/talk_flags.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_faction/talk_flags.json rename to data/Legacy_mods/mods/More_Locations/refugee_faction/talk_flags.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/overmap_specials.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/overmap_specials.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/overmap_specials.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/overmap_terrain.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/overmap_terrain.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1blc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1blc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1brc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1brc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1cyblc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1cyblc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1cyblc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1cyblc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1cybrc_00.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1cybrc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1cybrc_00.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1cybrc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1cytlc_00.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1cytlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1cytlc_00.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1cytlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1cytlc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1cytlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1cytlc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1cytlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1cytrc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1cytrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1cytrc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1cytrc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1gate_00.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1gate_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1gate_00.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1gate_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1gate_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1gate_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1gate_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1gate_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1tlc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1tlc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1trc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1trc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1ybe_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1ybe_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1ybe_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1ybe_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1yle_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1yle_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1yle_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1yle_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1yre_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1yre_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1yre_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1yre_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1yte_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1yte_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_1yte_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_1yte_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_2blc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_2blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_2blc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_2blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_2brc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_2brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_2brc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_2brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_2tlc_00.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_2tlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_2tlc_00.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_2tlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_2tlc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_2tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_2tlc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_2tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_2trc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_2trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_2trc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_2trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_3blc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_3blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_3blc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_3blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_3brc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_3brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_3brc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_3brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_3tlc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_3tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_3tlc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_3tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_3trc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_3trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_3trc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_3trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_4blc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_4blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_4blc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_4blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_4brc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_4brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_4brc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_4brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_4tlc_00.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_4tlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_4tlc_00.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_4tlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_4tlc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_4tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_4tlc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_4tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_4trc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_4trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_4trc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_4trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_5blc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_5blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_5blc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_5blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_5brc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_5brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_5brc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_5brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_5tlc_00.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_5tlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_5tlc_00.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_5tlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_5tlc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_5tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_5tlc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_5tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_5trc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_5trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_5trc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_5trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_ublc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_ublc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_ublc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_ublc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_ubrc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_ubrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_ubrc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_ubrc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_utlc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_utlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_utlc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_utlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_utrc_01.json b/data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_utrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/refugee_tower/refugee_tower_utrc_01.json rename to data/Legacy_mods/mods/More_Locations/refugee_tower/refugee_tower_utrc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/secret_doors/demo_map1.json b/data/Legacy_mods/mods/More_Locations/secret_doors/demo_map1.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/secret_doors/demo_map1.json rename to data/Legacy_mods/mods/More_Locations/secret_doors/demo_map1.json diff --git a/data/Mainline_mods/Mods/More_Locations/secret_doors/demo_map2.json b/data/Legacy_mods/mods/More_Locations/secret_doors/demo_map2.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/secret_doors/demo_map2.json rename to data/Legacy_mods/mods/More_Locations/secret_doors/demo_map2.json diff --git a/data/Mainline_mods/Mods/More_Locations/secret_doors/readme.txt b/data/Legacy_mods/mods/More_Locations/secret_doors/readme.txt similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/secret_doors/readme.txt rename to data/Legacy_mods/mods/More_Locations/secret_doors/readme.txt diff --git a/data/Mainline_mods/Mods/More_Locations/secret_doors/secret_door_gates.json b/data/Legacy_mods/mods/More_Locations/secret_doors/secret_door_gates.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/secret_doors/secret_door_gates.json rename to data/Legacy_mods/mods/More_Locations/secret_doors/secret_door_gates.json diff --git a/data/Mainline_mods/Mods/More_Locations/secret_doors/secret_door_terrain.json b/data/Legacy_mods/mods/More_Locations/secret_doors/secret_door_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/secret_doors/secret_door_terrain.json rename to data/Legacy_mods/mods/More_Locations/secret_doors/secret_door_terrain.json diff --git a/data/Mainline_mods/Mods/More_Locations/snippets.json b/data/Legacy_mods/mods/More_Locations/snippets.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/snippets.json rename to data/Legacy_mods/mods/More_Locations/snippets.json diff --git a/data/Mainline_mods/Mods/More_Locations/terrain.json b/data/Legacy_mods/mods/More_Locations/terrain.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/terrain.json rename to data/Legacy_mods/mods/More_Locations/terrain.json diff --git a/data/Mainline_mods/Mods/More_Locations/tpalettes.json b/data/Legacy_mods/mods/More_Locations/tpalettes.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tpalettes.json rename to data/Legacy_mods/mods/More_Locations/tpalettes.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/overmap_specials.json b/data/Legacy_mods/mods/More_Locations/tri_tower/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/overmap_specials.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/overmap_specials.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/overmap_terrain.json b/data/Legacy_mods/mods/More_Locations/tri_tower/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/overmap_terrain.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1blc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1blc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1brc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1brc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1cyblc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1cyblc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1cyblc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1cyblc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1cybrc_00.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1cybrc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1cybrc_00.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1cybrc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1cytlc_00.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1cytlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1cytlc_00.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1cytlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1cytlc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1cytlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1cytlc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1cytlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1cytrc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1cytrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1cytrc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1cytrc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1gate_00.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1gate_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1gate_00.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1gate_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1gate_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1gate_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1gate_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1gate_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1tlc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1tlc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1trc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1trc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1ybe_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1ybe_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1ybe_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1ybe_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1yle_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1yle_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1yle_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1yle_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1yre_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1yre_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1yre_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1yre_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1yte_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1yte_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_1yte_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_1yte_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_2blc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_2blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_2blc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_2blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_2brc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_2brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_2brc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_2brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_2tlc_00.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_2tlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_2tlc_00.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_2tlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_2tlc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_2tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_2tlc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_2tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_2trc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_2trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_2trc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_2trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_3blc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_3blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_3blc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_3blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_3brc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_3brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_3brc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_3brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_3tlc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_3tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_3tlc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_3tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_3trc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_3trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_3trc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_3trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_4blc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_4blc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_4blc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_4blc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_4brc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_4brc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_4brc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_4brc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_4tlc_00.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_4tlc_00.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_4tlc_00.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_4tlc_00.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_4tlc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_4tlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_4tlc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_4tlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_4trc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_4trc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_4trc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_4trc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_ublc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_ublc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_ublc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_ublc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_ubrc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_ubrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_ubrc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_ubrc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_utlc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_utlc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_utlc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_utlc_01.json diff --git a/data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_utrc_01.json b/data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_utrc_01.json similarity index 100% rename from data/Mainline_mods/Mods/More_Locations/tri_tower/tri_tower_utrc_01.json rename to data/Legacy_mods/mods/More_Locations/tri_tower/tri_tower_utrc_01.json diff --git a/data/Mainline_mods/Mods/More_Structures/modinfo.json b/data/Legacy_mods/mods/More_Structures/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/modinfo.json rename to data/Legacy_mods/mods/More_Structures/modinfo.json diff --git a/data/Mainline_mods/Mods/More_Structures/monsters/monstergroups.json b/data/Legacy_mods/mods/More_Structures/monsters/monstergroups.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/monsters/monstergroups.json rename to data/Legacy_mods/mods/More_Structures/monsters/monstergroups.json diff --git a/data/Mainline_mods/Mods/More_Structures/npc/NC_BUNKER_MERCHANT.json b/data/Legacy_mods/mods/More_Structures/npc/NC_BUNKER_MERCHANT.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/npc/NC_BUNKER_MERCHANT.json rename to data/Legacy_mods/mods/More_Structures/npc/NC_BUNKER_MERCHANT.json diff --git a/data/Mainline_mods/Mods/More_Structures/npc/TALK_BUNKER_MERCHANT.json b/data/Legacy_mods/mods/More_Structures/npc/TALK_BUNKER_MERCHANT.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/npc/TALK_BUNKER_MERCHANT.json rename to data/Legacy_mods/mods/More_Structures/npc/TALK_BUNKER_MERCHANT.json diff --git a/data/Mainline_mods/Mods/More_Structures/npc/classes.json b/data/Legacy_mods/mods/More_Structures/npc/classes.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/npc/classes.json rename to data/Legacy_mods/mods/More_Structures/npc/classes.json diff --git a/data/Mainline_mods/Mods/More_Structures/npc/npc.json b/data/Legacy_mods/mods/More_Structures/npc/npc.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/npc/npc.json rename to data/Legacy_mods/mods/More_Structures/npc/npc.json diff --git a/data/Mainline_mods/Mods/More_Structures/starts/professions.json b/data/Legacy_mods/mods/More_Structures/starts/professions.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/starts/professions.json rename to data/Legacy_mods/mods/More_Structures/starts/professions.json diff --git a/data/Mainline_mods/Mods/More_Structures/starts/scenarios.json b/data/Legacy_mods/mods/More_Structures/starts/scenarios.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/starts/scenarios.json rename to data/Legacy_mods/mods/More_Structures/starts/scenarios.json diff --git a/data/Mainline_mods/Mods/More_Structures/starts/start_locations.json b/data/Legacy_mods/mods/More_Structures/starts/start_locations.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/starts/start_locations.json rename to data/Legacy_mods/mods/More_Structures/starts/start_locations.json diff --git a/data/Mainline_mods/Mods/More_Structures/worldgen/bunker_shop/s_bunker_shop_b.json b/data/Legacy_mods/mods/More_Structures/worldgen/bunker_shop/s_bunker_shop_b.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/worldgen/bunker_shop/s_bunker_shop_b.json rename to data/Legacy_mods/mods/More_Structures/worldgen/bunker_shop/s_bunker_shop_b.json diff --git a/data/Mainline_mods/Mods/More_Structures/worldgen/bunker_shop/s_bunker_shop_g.json b/data/Legacy_mods/mods/More_Structures/worldgen/bunker_shop/s_bunker_shop_g.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/worldgen/bunker_shop/s_bunker_shop_g.json rename to data/Legacy_mods/mods/More_Structures/worldgen/bunker_shop/s_bunker_shop_g.json diff --git a/data/Mainline_mods/Mods/More_Structures/worldgen/gas/s_gas_b11.json b/data/Legacy_mods/mods/More_Structures/worldgen/gas/s_gas_b11.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/worldgen/gas/s_gas_b11.json rename to data/Legacy_mods/mods/More_Structures/worldgen/gas/s_gas_b11.json diff --git a/data/Mainline_mods/Mods/More_Structures/worldgen/gas/s_gas_b20.json b/data/Legacy_mods/mods/More_Structures/worldgen/gas/s_gas_b20.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/worldgen/gas/s_gas_b20.json rename to data/Legacy_mods/mods/More_Structures/worldgen/gas/s_gas_b20.json diff --git a/data/Mainline_mods/Mods/More_Structures/worldgen/gas/s_gas_b21.json b/data/Legacy_mods/mods/More_Structures/worldgen/gas/s_gas_b21.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/worldgen/gas/s_gas_b21.json rename to data/Legacy_mods/mods/More_Structures/worldgen/gas/s_gas_b21.json diff --git a/data/Mainline_mods/Mods/More_Structures/worldgen/gas/s_gas_g0.json b/data/Legacy_mods/mods/More_Structures/worldgen/gas/s_gas_g0.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/worldgen/gas/s_gas_g0.json rename to data/Legacy_mods/mods/More_Structures/worldgen/gas/s_gas_g0.json diff --git a/data/Mainline_mods/Mods/More_Structures/worldgen/gas/s_gas_g1.json b/data/Legacy_mods/mods/More_Structures/worldgen/gas/s_gas_g1.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/worldgen/gas/s_gas_g1.json rename to data/Legacy_mods/mods/More_Structures/worldgen/gas/s_gas_g1.json diff --git a/data/Mainline_mods/Mods/More_Structures/worldgen/overmap_specials.json b/data/Legacy_mods/mods/More_Structures/worldgen/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/worldgen/overmap_specials.json rename to data/Legacy_mods/mods/More_Structures/worldgen/overmap_specials.json diff --git a/data/Mainline_mods/Mods/More_Structures/worldgen/overmap_terrain.json b/data/Legacy_mods/mods/More_Structures/worldgen/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/More_Structures/worldgen/overmap_terrain.json rename to data/Legacy_mods/mods/More_Structures/worldgen/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/Mutant_NPCs/modinfo.json b/data/Legacy_mods/mods/Mutant_NPCs/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Mutant_NPCs/modinfo.json rename to data/Legacy_mods/mods/Mutant_NPCs/modinfo.json diff --git a/data/Mainline_mods/Mods/Mutant_NPCs/npc_classes_mutant.json b/data/Legacy_mods/mods/Mutant_NPCs/npc_classes_mutant.json similarity index 100% rename from data/Mainline_mods/Mods/Mutant_NPCs/npc_classes_mutant.json rename to data/Legacy_mods/mods/Mutant_NPCs/npc_classes_mutant.json diff --git a/data/Mainline_mods/Mods/Mutant_NPCs/trait_groups.json b/data/Legacy_mods/mods/Mutant_NPCs/trait_groups.json similarity index 100% rename from data/Mainline_mods/Mods/Mutant_NPCs/trait_groups.json rename to data/Legacy_mods/mods/Mutant_NPCs/trait_groups.json diff --git a/data/Mainline_mods/Mods/Mythos/README.md b/data/Legacy_mods/mods/Mythos/README.md similarity index 71% rename from data/Mainline_mods/Mods/Mythos/README.md rename to data/Legacy_mods/mods/Mythos/README.md index 3c017eb98..85d9024ac 100644 --- a/data/Mainline_mods/Mods/Mythos/README.md +++ b/data/Legacy_mods/mods/Mythos/README.md @@ -1,12 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [About This Mod](#about-this-mod) -- [Planned list of features](#planned-list-of-features) - - - # About This Mod A very work-in-progress start to a more Lovecraftian-focused version of Cataclysm set in the 1920s, with 99.9% of the population mysteriously disappearing at midnight of day 0. diff --git a/data/Mainline_mods/Mods/Mythos/blacklists/item_blacklist.json b/data/Legacy_mods/mods/Mythos/blacklists/item_blacklist.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/blacklists/item_blacklist.json rename to data/Legacy_mods/mods/Mythos/blacklists/item_blacklist.json diff --git a/data/Mainline_mods/Mods/Mythos/blacklists/location_blacklist.json b/data/Legacy_mods/mods/Mythos/blacklists/location_blacklist.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/blacklists/location_blacklist.json rename to data/Legacy_mods/mods/Mythos/blacklists/location_blacklist.json diff --git a/data/Mainline_mods/Mods/Mythos/blacklists/recipes_blacklist.json b/data/Legacy_mods/mods/Mythos/blacklists/recipes_blacklist.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/blacklists/recipes_blacklist.json rename to data/Legacy_mods/mods/Mythos/blacklists/recipes_blacklist.json diff --git a/data/Mainline_mods/Mods/Mythos/blacklists/trait_blacklist.json b/data/Legacy_mods/mods/Mythos/blacklists/trait_blacklist.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/blacklists/trait_blacklist.json rename to data/Legacy_mods/mods/Mythos/blacklists/trait_blacklist.json diff --git a/data/Mainline_mods/Mods/Mythos/furniture_and_terrain/1920s_furniture-appliances.json b/data/Legacy_mods/mods/Mythos/furniture_and_terrain/1920s_furniture-appliances.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/furniture_and_terrain/1920s_furniture-appliances.json rename to data/Legacy_mods/mods/Mythos/furniture_and_terrain/1920s_furniture-appliances.json diff --git a/data/Mainline_mods/Mods/Mythos/game_balance.json b/data/Legacy_mods/mods/Mythos/game_balance.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/game_balance.json rename to data/Legacy_mods/mods/Mythos/game_balance.json diff --git a/data/Mainline_mods/Mods/Mythos/harvest.json b/data/Legacy_mods/mods/Mythos/harvest.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/harvest.json rename to data/Legacy_mods/mods/Mythos/harvest.json diff --git a/data/Mainline_mods/Mods/Mythos/items/appliances.json b/data/Legacy_mods/mods/Mythos/items/appliances.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/items/appliances.json rename to data/Legacy_mods/mods/Mythos/items/appliances.json diff --git a/data/Mainline_mods/Mods/Mythos/items/corpses/mythos.json b/data/Legacy_mods/mods/Mythos/items/corpses/mythos.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/items/corpses/mythos.json rename to data/Legacy_mods/mods/Mythos/items/corpses/mythos.json diff --git a/data/Mainline_mods/Mods/Mythos/mapgen_palettes/1920s_house_general_abandoned.json b/data/Legacy_mods/mods/Mythos/mapgen_palettes/1920s_house_general_abandoned.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/mapgen_palettes/1920s_house_general_abandoned.json rename to data/Legacy_mods/mods/Mythos/mapgen_palettes/1920s_house_general_abandoned.json diff --git a/data/Mainline_mods/Mods/Mythos/mapgen_palettes/1920s_house_general_palette.json b/data/Legacy_mods/mods/Mythos/mapgen_palettes/1920s_house_general_palette.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/mapgen_palettes/1920s_house_general_palette.json rename to data/Legacy_mods/mods/Mythos/mapgen_palettes/1920s_house_general_palette.json diff --git a/data/Mainline_mods/Mods/Mythos/mapgen_palettes/1920s_house_w_palette.json b/data/Legacy_mods/mods/Mythos/mapgen_palettes/1920s_house_w_palette.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/mapgen_palettes/1920s_house_w_palette.json rename to data/Legacy_mods/mods/Mythos/mapgen_palettes/1920s_house_w_palette.json diff --git a/data/Mainline_mods/Mods/Mythos/modinfo.json b/data/Legacy_mods/mods/Mythos/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/modinfo.json rename to data/Legacy_mods/mods/Mythos/modinfo.json diff --git a/data/Mainline_mods/Mods/Mythos/monster_factions.json b/data/Legacy_mods/mods/Mythos/monster_factions.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/monster_factions.json rename to data/Legacy_mods/mods/Mythos/monster_factions.json diff --git a/data/Mainline_mods/Mods/Mythos/monstergroups/blob.json b/data/Legacy_mods/mods/Mythos/monstergroups/blob.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/monstergroups/blob.json rename to data/Legacy_mods/mods/Mythos/monstergroups/blob.json diff --git a/data/Mainline_mods/Mods/Mythos/monstergroups/misc.json b/data/Legacy_mods/mods/Mythos/monstergroups/misc.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/monstergroups/misc.json rename to data/Legacy_mods/mods/Mythos/monstergroups/misc.json diff --git a/data/Mainline_mods/Mods/Mythos/monstergroups/mythos.json b/data/Legacy_mods/mods/Mythos/monstergroups/mythos.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/monstergroups/mythos.json rename to data/Legacy_mods/mods/Mythos/monstergroups/mythos.json diff --git a/data/Mainline_mods/Mods/Mythos/monstergroups/nether.json b/data/Legacy_mods/mods/Mythos/monstergroups/nether.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/monstergroups/nether.json rename to data/Legacy_mods/mods/Mythos/monstergroups/nether.json diff --git a/data/Mainline_mods/Mods/Mythos/monstergroups/wilderness.json b/data/Legacy_mods/mods/Mythos/monstergroups/wilderness.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/monstergroups/wilderness.json rename to data/Legacy_mods/mods/Mythos/monstergroups/wilderness.json diff --git a/data/Mainline_mods/Mods/Mythos/monsters/mythos.json b/data/Legacy_mods/mods/Mythos/monsters/mythos.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/monsters/mythos.json rename to data/Legacy_mods/mods/Mythos/monsters/mythos.json diff --git a/data/Mainline_mods/Mods/Mythos/species.json b/data/Legacy_mods/mods/Mythos/species.json similarity index 100% rename from data/Mainline_mods/Mods/Mythos/species.json rename to data/Legacy_mods/mods/Mythos/species.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/furniture.json b/data/Legacy_mods/mods/National_Guard_Camp/furniture.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/furniture.json rename to data/Legacy_mods/mods/National_Guard_Camp/furniture.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/item_groups.json b/data/Legacy_mods/mods/National_Guard_Camp/item_groups.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/item_groups.json rename to data/Legacy_mods/mods/National_Guard_Camp/item_groups.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/military.json b/data/Legacy_mods/mods/National_Guard_Camp/military.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/military.json rename to data/Legacy_mods/mods/National_Guard_Camp/military.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/modinfo.json b/data/Legacy_mods/mods/National_Guard_Camp/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/modinfo.json rename to data/Legacy_mods/mods/National_Guard_Camp/modinfo.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/monstergroups.json b/data/Legacy_mods/mods/National_Guard_Camp/monstergroups.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/monstergroups.json rename to data/Legacy_mods/mods/National_Guard_Camp/monstergroups.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/national_guard_camp/national_guard_camp.json b/data/Legacy_mods/mods/National_Guard_Camp/national_guard_camp/national_guard_camp.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/national_guard_camp/national_guard_camp.json rename to data/Legacy_mods/mods/National_Guard_Camp/national_guard_camp/national_guard_camp.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/national_guard_camp/national_guard_camp_b1.json b/data/Legacy_mods/mods/National_Guard_Camp/national_guard_camp/national_guard_camp_b1.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/national_guard_camp/national_guard_camp_b1.json rename to data/Legacy_mods/mods/National_Guard_Camp/national_guard_camp/national_guard_camp_b1.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/overmap_specials.json b/data/Legacy_mods/mods/National_Guard_Camp/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/overmap_specials.json rename to data/Legacy_mods/mods/National_Guard_Camp/overmap_specials.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/overmap_terrain.json b/data/Legacy_mods/mods/National_Guard_Camp/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/overmap_terrain.json rename to data/Legacy_mods/mods/National_Guard_Camp/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/palettes/national_guard_camp.json b/data/Legacy_mods/mods/National_Guard_Camp/palettes/national_guard_camp.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/palettes/national_guard_camp.json rename to data/Legacy_mods/mods/National_Guard_Camp/palettes/national_guard_camp.json diff --git a/data/Mainline_mods/Mods/National_Guard_Camp/palettes/national_guard_camp_b.json b/data/Legacy_mods/mods/National_Guard_Camp/palettes/national_guard_camp_b.json similarity index 100% rename from data/Mainline_mods/Mods/National_Guard_Camp/palettes/national_guard_camp_b.json rename to data/Legacy_mods/mods/National_Guard_Camp/palettes/national_guard_camp_b.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_19_victorian.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_19_victorian.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_19_victorian.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_19_victorian.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_20_duplex.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_20_duplex.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_20_duplex.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_20_duplex.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_21_house.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_21_house.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_21_house.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_21_house.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_22_house_pool.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_22_house_pool.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_22_house_pool.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_22_house_pool.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_23_dense_office_theater.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_23_dense_office_theater.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_23_dense_office_theater.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_23_dense_office_theater.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_24_dense_bank_house.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_24_dense_bank_house.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_24_dense_bank_house.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_24_dense_bank_house.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_25_dense_diner_apt.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_25_dense_diner_apt.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_25_dense_diner_apt.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_25_dense_diner_apt.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_26_dense_club.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_26_dense_club.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_26_dense_club.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_26_dense_club.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_27_dense_barber_apt.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_27_dense_barber_apt.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_27_dense_barber_apt.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_27_dense_barber_apt.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_28_dense_cafe_laundry.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_28_dense_cafe_laundry.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_28_dense_cafe_laundry.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_28_dense_cafe_laundry.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_30_dense_subway.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_30_dense_subway.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_30_dense_subway.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_30_dense_subway.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_31_police_station.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_31_police_station.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_31_police_station.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_31_police_station.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_32_fire_station.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_32_fire_station.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_32_fire_station.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_32_fire_station.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_33_hotel.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_33_hotel.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_33_hotel.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_33_hotel.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_34_school.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_34_school.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_34_school.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_34_school.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_36_projects.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_36_projects.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_36_projects.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_36_projects.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_37_office_tower_beehive.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_37_office_tower_beehive.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_37_office_tower_beehive.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_37_office_tower_beehive.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_38_bar_hardware_house.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_38_bar_hardware_house.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_38_bar_hardware_house.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_38_bar_hardware_house.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_39_market_subway_newspaper.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_39_market_subway_newspaper.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_39_market_subway_newspaper.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_39_market_subway_newspaper.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_40_house.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_40_house.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_40_house.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_40_house.json diff --git a/data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_41_library.json b/data/Legacy_mods/mods/Urban_Development/building_jsons/urban_41_library.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/building_jsons/urban_41_library.json rename to data/Legacy_mods/mods/Urban_Development/building_jsons/urban_41_library.json diff --git a/data/Mainline_mods/Mods/Urban_Development/mapgen_palettes/acidia_commercial_destroyed_palette.json b/data/Legacy_mods/mods/Urban_Development/mapgen_palettes/acidia_commercial_destroyed_palette.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/mapgen_palettes/acidia_commercial_destroyed_palette.json rename to data/Legacy_mods/mods/Urban_Development/mapgen_palettes/acidia_commercial_destroyed_palette.json diff --git a/data/Mainline_mods/Mods/Urban_Development/mapgen_palettes/acidia_commercial_palette.json b/data/Legacy_mods/mods/Urban_Development/mapgen_palettes/acidia_commercial_palette.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/mapgen_palettes/acidia_commercial_palette.json rename to data/Legacy_mods/mods/Urban_Development/mapgen_palettes/acidia_commercial_palette.json diff --git a/data/Mainline_mods/Mods/Urban_Development/mapgen_palettes/acidia_residential_commercial_palette.json b/data/Legacy_mods/mods/Urban_Development/mapgen_palettes/acidia_residential_commercial_palette.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/mapgen_palettes/acidia_residential_commercial_palette.json rename to data/Legacy_mods/mods/Urban_Development/mapgen_palettes/acidia_residential_commercial_palette.json diff --git a/data/Mainline_mods/Mods/Urban_Development/modinfo.json b/data/Legacy_mods/mods/Urban_Development/modinfo.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/modinfo.json rename to data/Legacy_mods/mods/Urban_Development/modinfo.json diff --git a/data/Mainline_mods/Mods/Urban_Development/overmap_specials.json b/data/Legacy_mods/mods/Urban_Development/overmap_specials.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/overmap_specials.json rename to data/Legacy_mods/mods/Urban_Development/overmap_specials.json diff --git a/data/Mainline_mods/Mods/Urban_Development/overmap_terrain.json b/data/Legacy_mods/mods/Urban_Development/overmap_terrain.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/overmap_terrain.json rename to data/Legacy_mods/mods/Urban_Development/overmap_terrain.json diff --git a/data/Mainline_mods/Mods/Urban_Development/regional_overlay.json b/data/Legacy_mods/mods/Urban_Development/regional_overlay.json similarity index 100% rename from data/Mainline_mods/Mods/Urban_Development/regional_overlay.json rename to data/Legacy_mods/mods/Urban_Development/regional_overlay.json diff --git a/data/Mainline_mods/Mods/Aftershock/README.md b/data/Mainline_mods/Mods/Aftershock/README.md index ac6c5fd83..479b70e50 100644 --- a/data/Mainline_mods/Mods/Aftershock/README.md +++ b/data/Mainline_mods/Mods/Aftershock/README.md @@ -1,26 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Design Document](#design-document) - - [Areas seeking contributors](#areas-seeking-contributors) -- [Size as of 0.F Stable : 31,084 Lines](#size-as-of-0f-stable---31084-lines) -- [Here be dragons!](#here-be-dragons) - - [itemgroups](#itemgroups) - - [items](#items) - - [maps](#maps) - - [mobs](#mobs) - - [monsterdrops](#monsterdrops) - - [mutations](#mutations) - - [player](#player) - - [recipes](#recipes) - - [vehicles](#vehicles) - - [npcs](#npcs) - - [spells](#spells) -- [Abbreviations and Translation notes](#abbreviations-and-translation-notes) - - - # Design Document * Aftershock is being developed into a full conversion mod set in a mostly-abandoned extrasolar colony named Salus IV. The player has arrived on Salus for various reasons (depending on their profession). Eventually, we hope to have multiple potential end game situations, ranging from finding what you came here for and leaving the planet with enough money to retire, to more-secret endings. There will no longer be zombies; instead, there are a variety of alien and human-based enemies. Toe-to-toe combat will likely be more deadly in Aftershock, with more emphasis on picking your battles and only fighting when absolutely necessary. Special locations may have a different combat aesthetic; for example, you may enter a dungeon-like zone with hordes of small weak enemies that can't be avoided. As part of this concept, in which different situations require different solutions, we have implemented bionic slots but made the process of changing out CBMs much easier with less chance of failure. This is to encourage players to change their loadout based on where they are going and what they are doing. * As it becomes a total conversion mod, it will look very different from the base game of Cataclysm: Dark Days Ahead and may not interact kindly with other mods. If you've been away for a while, you may wonder where some parts of Aftershock have gone. In the process of becoming a total conversion mod, we are eliminating items that no longer fit the theme. For example, all the Mad Max aesthetics have been removed. Any additions must either fit the general theme or have story-driven reasons for the divergence, such as NPC quests to special locations. diff --git a/data/Mainline_mods/Mods/Aftershock/ammo_effects.json b/data/Mainline_mods/Mods/Aftershock/ammo_effects.json index e327a5553..0b1147aca 100644 --- a/data/Mainline_mods/Mods/Aftershock/ammo_effects.json +++ b/data/Mainline_mods/Mods/Aftershock/ammo_effects.json @@ -4,6 +4,12 @@ "type": "ammo_effect", "explosion": { "power": 12000, "max_noise": 25, "distance_factor": 0.2 } }, + { + "id": "PUMP_LASER", + "type": "ammo_effect", + "aoe": { "field_type": "fd_fire", "intensity_min": 1, "intensity_max": 1, "radius": 3, "size": 4, "chance": 50 }, + "explosion": { "power": 5000, "max_noise": 35, "distance_factor": 0.5 } + }, { "id": "FRAG_25mm", "type": "ammo_effect", @@ -14,6 +20,12 @@ "type": "ammo_effect", "aoe": { "field_type": "fd_elect_anomaly", "intensity_min": 2, "intensity_max": 3, "radius": 0 } }, + { + "id": "TACTICAL_LASER_EXPLOSION", + "type": "ammo_effect", + "trigger_chance": 5, + "explosion": { "power": 500, "max_noise": 35, "distance_factor": 0.2 } + }, { "id": "DAZZLE_BEAM", "type": "ammo_effect", diff --git a/data/Mainline_mods/Mods/Aftershock/crafting_system.md b/data/Mainline_mods/Mods/Aftershock/crafting_system.md index 5900ab29d..4fcd7dd32 100644 --- a/data/Mainline_mods/Mods/Aftershock/crafting_system.md +++ b/data/Mainline_mods/Mods/Aftershock/crafting_system.md @@ -1,19 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Scrap Crafting System](#scrap-crafting-system) - - [Overview](#overview) - - [Current Scrap Categories](#current-scrap-categories) - - [Scrap Tiers Briefly Explained](#scrap-tiers-briefly-explained) - - [Tier 1](#tier-1) - - [Tier 2](#tier-2) - - [Tier 3](#tier-3) - - [Tier 4](#tier-4) - - [Tier 5](#tier-5) - - - # Scrap Crafting System ## Overview diff --git a/data/Mainline_mods/Mods/Aftershock/damage_types.json b/data/Mainline_mods/Mods/Aftershock/damage_types.json new file mode 100644 index 000000000..28e59facd --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/damage_types.json @@ -0,0 +1,20 @@ +[ + { + "id": "afs_plasma", + "type": "damage_type", + "magic_color": "pink", + "name": "plasma", + "derived_from": [ "heat", 0.4 ] + }, + { + "id": "afs_plasma", + "type": "damage_info_order", + "info_display": "basic", + "verb": "plasma", + "bionic_info": { "order": 407, "show_type": true }, + "protection_info": { "order": 307, "show_type": true }, + "pet_prot_info": { "order": 307, "show_type": true }, + "melee_combat_info": { "order": 407, "show_type": true }, + "ablative_info": { "order": 307, "show_type": true } + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/effects.json b/data/Mainline_mods/Mods/Aftershock/effects.json index e62838f8b..015ff9415 100644 --- a/data/Mainline_mods/Mods/Aftershock/effects.json +++ b/data/Mainline_mods/Mods/Aftershock/effects.json @@ -55,6 +55,24 @@ "half_life": "10 minutes", "phase": "gas" }, + { + "type": "effect_type", + "id": "migo_rad_away", + "base_mods": { "rad_chance": [ 600 ], "rad_min": [ -1 ] }, + "max_duration": 10800, + "dur_add_perc": 35, + "blood_analysis_description": "Strange proteins are ingesting radioactive particles and flushing themselves from the host.", + "rating": "good" + }, + { + "type": "effect_type", + "id": "migo_rad_flush", + "base_mods": { "rad_chance": [ 600 ], "rad_min": [ -5 ] }, + "max_duration": 10800, + "dur_add_perc": 35, + "blood_analysis_description": "Strange proteins are ingesting radioactive particles and containing all emmissions.", + "rating": "good" + }, { "type": "effect_type", "id": "mutagen_mastodon", @@ -179,5 +197,53 @@ "rating": "good", "flags": [ "LEVITATION" ], "show_in_info": true + }, + { + "type": "effect_type", + "id": "decreased_performance", + "name": [ "Decreased Performance" ], + "desc": [ "The performance enhancing drugs slowly wear off and leave you in a state of existential grade hangover." ], + "rating": "bad", + "int_dur_factor": "8 h", + "max_duration": "24 h", + "base_mods": { "speed_mod": [ -5 ], "stamina_min": [ -10 ], "str_mod": [ -2 ], "dex_mod": [ -2 ] }, + "blood_analysis_description": "Post overdose quantities of multiple drugs in analyzed blood.", + "show_in_info": true + }, + { + "type": "effect_type", + "id": "post_speed_injection", + "name": [ "Slowed Reactions" ], + "desc": [ "The performance enhancing drugs slowly wear off and leave you in a state of existential grade hangover." ], + "rating": "bad", + "int_dur_factor": "8 h", + "max_duration": "24 h", + "base_mods": { "speed_mod": [ -45 ], "stamina_min": [ -17 ] }, + "blood_analysis_description": "Dangerous levels of military grade nervous system medications.", + "show_in_info": true + }, + { + "type": "effect_type", + "id": "post_healing_injection", + "name": [ "Haggard and drawn" ], + "desc": [ "The performance enhancing drugs slowly wear off and leave you in a state of existential grade hangover." ], + "rating": "bad", + "int_dur_factor": "8 h", + "max_duration": "24 h", + "base_mods": { "stim_amount": [ -5 ], "stim_max_val": [ -60 ], "perspiration_amount": [ 2 ], "stamina_amount": [ -10 ] }, + "blood_analysis_description": "Post overdose quantities of multiple drugs in analyzed blood.", + "show_in_info": true + }, + { + "type": "effect_type", + "id": "post_strength_injection", + "name": [ "Weakened and worn down" ], + "desc": [ "The performance enhancing drugs slowly wear off and leave you in a state of existential grade hangover." ], + "rating": "bad", + "int_dur_factor": "8 h", + "max_duration": "24 h", + "base_mods": { "speed_mod": [ -5 ], "stamina_min": [ -10 ], "str_mod": [ -4 ], "dex_mod": [ -2 ] }, + "blood_analysis_description": "Dangerous levels of steroids.", + "show_in_info": true } ] diff --git a/data/Mainline_mods/Mods/Aftershock/effects_on_condition.json b/data/Mainline_mods/Mods/Aftershock/effects_on_condition.json index 33b441db6..494f8e672 100644 --- a/data/Mainline_mods/Mods/Aftershock/effects_on_condition.json +++ b/data/Mainline_mods/Mods/Aftershock/effects_on_condition.json @@ -5,5 +5,65 @@ "recurrence": [ "8 hours", "72 hours" ], "condition": { "and": [ { "one_in_chance": 3 }, { "not": "is_day" }, "u_can_see", { "is_weather": "clear" }, "u_is_outside" ] }, "effect": [ { "u_message": "AFS_NIGHT_MESSAGES_1", "snippet": true } ] + }, + { + "type": "effect_on_condition", + "id": "afs_motion_sensor_eoc", + "condition": { "u_has_items": { "item": "afs_motion_sensor_on", "charges": 1 } }, + "effect": [ + { + "run_eocs": [ + { + "id": "afs_motion_sensor_audio_warning_high", + "condition": { "math": [ "u_monsters_nearby('radius': 24)", ">", "15" ] }, + "effect": [ { "u_message": "The motion detector whines distressingly!", "type": "warning" } ], + "false_effect": { + "run_eocs": [ + { + "id": "afs_motion_sensor_audio_warning_medium", + "condition": { "math": [ "u_monsters_nearby('radius': 24)", ">", "5" ] }, + "effect": [ { "u_message": "The motion detector emits a short series of warning beeps.", "type": "warning" } ], + "false_effect": { + "run_eocs": [ + { + "id": "afs_motion_sensor_audio_warning_low", + "condition": { "math": [ "u_monsters_nearby('radius': 24)", ">", "1" ] }, + "effect": [ { "u_message": "The motion detector emits a single warning beep.", "type": "info" } ] + } + ] + } + } + ] + } + } + ] + }, + { "u_adjust_var": "afs_motion_sensor_ping", "type": "flag", "context": "motion_sensor", "adjustment": 1 }, + { "queue_eocs": "afs_motion_sensor_eoc_end_ping", "time_in_future": [ "2 seconds", "2 seconds" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "afs_motion_sensor_eoc_end_ping", + "effect": [ { "u_add_var": "afs_motion_sensor_ping", "type": "flag", "context": "motion_sensor", "value": "0" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ESCAPE_POD_CHAIR", + "effect": [ + { + "u_location_variable": { "global_val": "new_map" }, + "target_params": { "om_terrain": "afs_crashed_escape_pod", "search_range": 500, "z": 0 }, + "terrain": "t_metal_floor", + "target_max_radius": 30, + "min_radius": 0, + "max_radius": 0 + }, + { + "u_message": "You make sure there are no lose items in the pod that would become projectiles during launch before you strap yourself into the escape pod seat and press the launch button. With an incredibly loud roar and a massive acceleration that presses you into the seat, the escape pod fires from the ship, plummeting towards the planet below.", + "popup": true + }, + { "u_teleport": { "global_val": "new_map" }, "force": true } + ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/astronaut_mre.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/astronaut_mre.json new file mode 100644 index 000000000..d16ce641c --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/astronaut_mre.json @@ -0,0 +1,24 @@ +[ + { + "type": "item_group", + "id": "astronaut_mre_full_pack", + "subtype": "collection", + "entries": [ { "item": "afs_mre_package", "contents-group": "astronaut_mre_contents", "sealed": true } ] + }, + { + "type": "item_group", + "id": "astronaut_mre_contents", + "subtype": "collection", + "entries": [ + { "group": "mre_entrees", "count": 2 }, + { "item": "heatpack", "count": 2 }, + { + "item": "crackers", + "count": [ 0, 2 ], + "container-item": "null", + "entry-wrapper": "mre_bag_small", + "sealed": true + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/bionics_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/bionics_groups.json index 26e00161f..e937f4ea8 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/bionics_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/bionics_groups.json @@ -13,7 +13,8 @@ [ "bio_forcefield_bash_cut_weak", 25 ], [ "afs_bio_translocator", 5 ], [ "bio_shock_absorber", 2 ], - [ "afs_bio_skullgun", 5 ] + [ "afs_bio_skullgun", 5 ], + [ "afs_bio_chemical_enhancement_rig", 10 ] ] } }, @@ -23,6 +24,59 @@ "copy-from": "bionics_common", "extend": { "items": [ [ "bn_bio_solar", 10 ], [ "afs_bio_linguistic_coprocessor", 8 ], [ "bio_forcefield_bash_cut_weak", 25 ] ] } }, + { + "id": "bionics_reaver", + "type": "item_group", + "items": [ + [ "bio_power_storage", 10 ], + [ "bio_batteries", 10 ], + [ "bio_metabolics", 10 ], + [ "bio_ethanol", 10 ], + [ "bio_ups", 10 ], + [ "bio_torsionratchet", 10 ], + [ "bio_ears", 10 ], + [ "bio_sunglasses", 10 ], + [ "bio_eye_optic", 10 ], + [ "bio_eye_enhancer", 10 ], + [ "bio_dex_enhancer", 10 ], + [ "bio_str_enhancer", 10 ], + [ "bio_night_vision", 10 ], + [ "bio_infrared", 10 ], + [ "bio_recycler", 10 ], + [ "bio_digestion", 10 ], + [ "bio_evap", 10 ], + [ "bio_water_extractor", 10 ], + [ "bio_carbon", 10 ], + [ "bio_targeting", 10 ], + [ "bio_ground_sonar", 10 ], + [ "bio_face_mask", 10 ], + [ "bio_scent_mask", 10 ], + [ "bio_cloak", 10 ], + [ "bio_synaptic_regen", 12 ], + [ "bio_fingerhack", 10 ], + [ "bio_lockpick", 10 ], + [ "bio_blood_anal", 10 ], + [ "bio_geiger", 10 ], + [ "bio_radscrubber", 10 ], + [ "bio_laser", 10 ], + [ "bio_emp", 10 ], + [ "bio_flashbang", 10 ], + [ "bio_blade", 2 ], + [ "bio_speed", 2 ], + [ "bio_adrenaline", 10 ], + [ "bio_watch", 10 ], + [ "bio_meteorologist", 10 ], + [ "bio_cable", 10 ], + [ "bio_weight", 10 ], + [ "bio_jointservo", 10 ], + [ "bio_shotgun", 10 ], + [ "bio_recoil", 10 ], + [ "bio_forcefield_bash_cut_weak", 10 ], + [ "afs_bio_chemical_enhancement_rig", 10 ], + [ "bio_forcefield_ballistic_weak", 10 ], + [ "afs_bio_skullgun", 10 ] + ] + }, { "id": "bionics_mil", "type": "item_group", @@ -32,6 +86,7 @@ [ "afs_bio_neurosoft_aeronautics", 10 ], [ "afs_bio_melee_counteraction", 10 ], [ "afs_bio_melee_optimization_unit", 10 ], + [ "afs_bio_monowhip", 10 ], [ "bio_forcefield_bash_cut_medium", 16 ], [ "bio_forcefield_bash_cut_heavy", 3 ], [ "bio_forcefield_ballistic_weak", 10 ], @@ -43,10 +98,50 @@ } }, { - "id": "bionics_sci", "type": "item_group", - "copy-from": "bionics_sci", - "extend": { "items": [ [ "bn_bio_solar", 5 ] ] } + "id": "bionics_sci", + "subtype": "distribution", + "//": "High-tech bionics, handy for the harried researcher. They get access to classified toys too, but only stuff a scientist would have use for.", + "items": [ + [ "burnt_out_bionic", 60 ], + [ "bio_batteries", 30 ], + [ "bio_power_storage", 30 ], + [ "bio_metabolics", 5 ], + [ "bio_ethanol", 5 ], + [ "bio_ups", 10 ], + [ "bio_torsionratchet", 30 ], + [ "bio_tools", 10 ], + [ "bio_flashlight", 30 ], + [ "bio_lighter", 25 ], + [ "bio_magnet", 20 ], + [ "bio_memory", 15 ], + [ "bio_ears", 10 ], + [ "bio_sunglasses", 10 ], + [ "bio_eye_optic", 10 ], + [ "bio_eye_enhancer", 5 ], + [ "bio_dex_enhancer", 5 ], + [ "bio_int_enhancer", 10 ], + [ "bio_night_vision", 1 ], + [ "bio_infrared", 2 ], + [ "bio_synaptic_regen", 12 ], + [ "bio_gills", 5 ], + [ "bio_climate", 2 ], + [ "bio_heatsink", 2 ], + [ "bio_blood_filter", 10 ], + [ "bio_fingerhack", 2 ], + [ "bio_lockpick", 2 ], + [ "bio_surgical_razor", 8 ], + [ "bio_nanobots", 15 ], + [ "bio_blood_anal", 10 ], + [ "bio_geiger", 15 ], + [ "bio_radscrubber", 10 ], + [ "bio_watch", 40 ], + [ "bio_leukocyte", 15 ], + [ "bio_syringe", 2 ], + [ "bio_jointservo", 10 ], + [ "bio_soporific", 2 ], + [ "bn_bio_solar", 5 ] + ] }, { "id": "bionics_op", @@ -55,6 +150,7 @@ [ "bn_bio_solar", 15 ], [ "afs_bio_missiles", 10 ], [ "afs_bio_melee_counteraction", 10 ], + [ "afs_bio_monowhip", 10 ], [ "afs_bio_melee_optimization_unit", 10 ], [ "afs_bio_neurosoft_aeronautics", 10 ], [ "afs_bio_dopamine_stimulators", 10 ], @@ -77,6 +173,7 @@ [ "afs_bio_melee_optimization_unit", 10 ], [ "afs_bio_neurosoft_aeronautics", 10 ], [ "afs_bio_dopamine_stimulators", 10 ], + [ "afs_bio_monowhip", 10 ], [ "afs_bio_translocator", 5 ], [ "afs_bio_skullgun", 2 ] ] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing/armor_sets.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing/armor_sets.json index 531848bb1..a0ecd0e78 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing/armor_sets.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing/armor_sets.json @@ -23,7 +23,7 @@ "id": "afs_plastic_armor_g", "subtype": "collection", "entries": [ - { "item": "hat_hard", "prob": 90 }, + { "group": "afs_hard_hat", "prob": 90 }, { "item": "legguard_hard", "prob": 40 }, { "item": "armguard_hard", "prob": 40 }, { "item": "chestguard_hard", "prob": 20 } diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing/civilian_blue_collar_sets.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing/civilian_blue_collar_sets.json new file mode 100644 index 000000000..132e8f515 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing/civilian_blue_collar_sets.json @@ -0,0 +1,149 @@ +[ + { + "type": "item_group", + "//": "Clothes for the future blue collar worker. Just steal costumes from Alien.", + "id": "afs_colonist_outfit", + "subtype": "collection", + "entries": [ + { "group": "afs_colonist_hazard_accessories", "prob": 10 }, + { "group": "afs_colonist_outfit_underwear" }, + { "group": "afs_hard_hat", "prob": 15 }, + { "group": "afs_colonist_scarf", "prob": 50 }, + { "group": "afs_colonist_gloves", "prob": 70 }, + { "group": "afs_colonist_coats", "prob": 60 }, + { "group": "afs_colonist_shirt" }, + { "group": "afs_colonist_pants" }, + { "group": "afs_colonist_shoes" } + ] + }, + { + "type": "item_group", + "id": "afs_colonist_outfit_underwear", + "subtype": "distribution", + "entries": [ + { "distribution": [ { "group": "male_underwear", "prob": 10 }, { "item": "union_suit", "prob": 90 } ], "prob": 50 }, + { + "distribution": [ { "group": "female_underwear" }, { "group": "accesories_personal_womens", "prob": 85 } ], + "prob": 50 + } + ] + }, + { + "id": "afs_colonist_scarf", + "type": "item_group", + "//": "unisex scarfs and fabric coverings", + "subtype": "distribution", + "items": [ + { "item": "bandana", "prob": 20 }, + { "item": "balclava", "prob": 50 }, + { "item": "headscarf", "prob": 10 }, + { "item": "afs_work_tie", "prob": 10 }, + { "item": "scarf_fur", "prob": 1 }, + { "item": "scarf", "prob": 80 }, + { "item": "scarf_long", "prob": 40 }, + { "item": "long_knit_scarf", "prob": 1 }, + { "item": "knit_scarf", "prob": 10 }, + { "item": "keffiyeh", "prob": 10 }, + { "item": "mask_ski", "prob": 80 } + ] + }, + { + "type": "item_group", + "id": "afs_colonist_gloves", + "subtype": "distribution", + "entries": [ + { "item": "gloves_light", "prob": 15 }, + { "item": "gloves_leather", "prob": 1 }, + { "item": "gloves_wool", "prob": 1 }, + { "item": "gloves_winter", "prob": 20 }, + { "item": "gloves_liner", "prob": 15 }, + { "item": "mittens", "prob": 2 }, + { "item": "thermal_gloves", "prob": 10 } + ] + }, + { + "type": "item_group", + "id": "afs_colonist_coats", + "subtype": "distribution", + "entries": [ + { "item": "trenchcoat", "prob": 5 }, + { "item": "coat_winter", "prob": 20 }, + { "item": "jacket_leather", "prob": 5 }, + { "item": "afs_hi_vis_jacket", "prob": 80 }, + { "item": "afs_hi_vis_vest", "prob": 50 }, + { "item": "afs_company_jacket", "prob": 80 }, + { "item": "afs_supervisor_jacket", "prob": 20 }, + { "item": "coat_rain", "prob": 10 }, + { "item": "afs_herc_rig", "prob": 10 }, + { "item": "folding_poncho", "prob": 30 }, + { "item": "vest", "prob": 30 }, + { "item": "nanomesh_vest", "prob": 10 }, + { "item": "jacket_windbreaker", "prob": 50 }, + { "item": "ski_jacket", "prob": 15 } + ] + }, + { + "type": "item_group", + "id": "afs_colonist_shirt", + "subtype": "distribution", + "entries": [ + { "item": "longshirt", "prob": 70 }, + { "item": "sweatshirt", "prob": 50 }, + { "item": "tank_top", "prob": 80 }, + { "item": "tshirt", "prob": 80 } + ] + }, + { + "type": "item_group", + "id": "afs_colonist_pants", + "subtype": "distribution", + "entries": [ + { "item": "technician_pants_gray", "prob": 90 }, + { "item": "pants_cargo", "prob": 70 }, + { "item": "pants_ski", "prob": 25 }, + { "item": "jumpsuit", "prob": 45 } + ] + }, + { + "id": "afs_colonist_shoes", + "type": "item_group", + "subtype": "distribution", + "items": [ + { "item": "boots", "prob": 80 }, + { "item": "boots_hiking", "prob": 50 }, + { "item": "boots_steel", "prob": 50 }, + { "item": "sneakers_steel", "prob": 35 }, + { "item": "boots_combat", "prob": 45 }, + { "item": "boots_winter", "prob": 30 }, + { "item": "knee_high_boots", "prob": 3 }, + { "item": "motorbike_boots", "prob": 3 } + ] + }, + { + "id": "afs_colonist_hazard_accessories", + "type": "item_group", + "subtype": "collection", + "items": [ + { "item": "afs_wrist_computer" }, + { "item": "mask_gas", "charges": [ 50, 100 ], "prob": 20 }, + { "item": "rad_monitor", "prob": 10 } + ] + }, + { + "type": "item_group", + "id": "afs_colonist_bags", + "subtype": "distribution", + "entries": [ + { "item": "backpack", "prob": 38 }, + { "item": "backpack_hiking", "prob": 3 }, + { "item": "petpack", "prob": 1 }, + { "item": "backpack_tactical_large", "prob": 1 }, + { "item": "travelpack", "prob": 5 }, + { "item": "purse", "prob": 40 }, + { "item": "mbag", "prob": 20 }, + { "item": "slingpack", "prob": 8 }, + { "item": "rucksack", "prob": 20 }, + { "item": "leg_bag", "prob": 1 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing_group.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing_group.json index e9c781079..9c20bbc16 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing_group.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/clothing_group.json @@ -1,198 +1,10 @@ [ { - "id": "coats_unisex_afs", - "type": "item_group", - "//": "unisex coats, jackets, cloaks, etc.", - "subtype": "distribution", - "items": [ - { - "distribution": [ - { "item": "cloak", "prob": 80 }, - { "item": "cloak_wool", "prob": 40 }, - { "item": "cloak_leather", "prob": 20 }, - { "item": "cloak_fur", "prob": 10 }, - { "item": "jedi_cloak", "prob": 5 } - ], - "prob": 20 - }, - { - "distribution": [ - { "item": "trenchcoat", "prob": 80 }, - { "item": "trenchcoat_leather", "prob": 60 }, - { "item": "trenchcoat_faux_fur", "prob": 30 }, - { "item": "trenchcoat_fur", "prob": 5 } - ], - "prob": 40 - }, - { - "distribution": [ - { "item": "coat_winter", "prob": 50 }, - { "item": "peacoat", "prob": 50 }, - { "item": "greatcoat", "prob": 35 }, - { "item": "coat_faux_fur", "prob": 20 }, - { "item": "coat_fur", "prob": 10 }, - { "item": "coat_fur_sf", "prob": 5 } - ], - "prob": 80 - }, - { - "distribution": [ - { "item": "jacket_leather", "prob": 50 }, - { "item": "jacket_leather_red", "prob": 25 }, - { "item": "poncho", "prob": 30 }, - { "item": "ski_jacket", "prob": 25 } - ], - "prob": 60 - }, - { "distribution": [ { "item": "army_top", "prob": 40 }, { "item": "blazer", "prob": 70 } ], "prob": 40 } - ] - }, - { - "type": "item_group", - "id": "common_gloves_afs", - "subtype": "distribution", - "entries": [ - { "item": "gloves_light", "prob": 15 }, - { "item": "gloves_leather", "prob": 15 }, - { "item": "gloves_wool", "prob": 15 }, - { "item": "gloves_winter", "prob": 10 }, - { "item": "gloves_liner", "prob": 15 }, - { "item": "mittens", "prob": 5 }, - { "item": "thermal_gloves", "prob": 2 } - ] - }, - { - "type": "item_group", - "id": "hatstore_hats_afs", - "items": [ [ "hat_cotton", 30 ], [ "hat_knit", 40 ], [ "hat_faux_fur", 30 ], [ "hat_fur", 20 ], [ "balclava", 20 ] ] - }, - { - "id": "scarfs_unisex_afs", - "type": "item_group", - "//": "unisex scarfs and fabric coverings", - "subtype": "distribution", - "items": [ - { "item": "bandana", "prob": 90 }, - { "item": "balclava", "prob": 50 }, - { "item": "headscarf", "prob": 50 }, - { "item": "scarf_fur_long", "prob": 10 }, - { "item": "scarf_fur", "prob": 20 }, - { "item": "scarf", "prob": 80 }, - { "item": "scarf_long", "prob": 40 }, - { "item": "long_knit_scarf", "prob": 40 }, - { "item": "knit_scarf", "prob": 80 }, - { "item": "keffiyeh", "prob": 30 }, - { "item": "mask_ski", "prob": 30 }, - { "item": "thermal_mask", "prob": 5 } - ] - }, - { - "id": "accesories_personal_unisex_afs", - "type": "item_group", - "//": "unisex personal accessories", - "subtype": "collection", - "items": [ - { "group": "clothing_glasses", "prob": 50 }, - { "group": "clothing_watch", "prob": 15 }, - { "group": "accessory_ring", "prob": 15 }, - { "group": "accessory_earring", "prob": 15 }, - { "group": "accessory_bracelet", "prob": 15 }, - { "group": "accessory_teeth", "prob": 5 }, - { "group": "accessory_necklace", "prob": 15 }, - { "group": "accessory_cat", "prob": 5 }, - { "group": "accessory_weaponcarry", "prob": 15 }, - { "group": "accessory_sportsgear", "prob": 15 }, - { "item": "tool_belt", "prob": 10 }, - { "item": "leather_belt", "prob": 60 }, - { "item": "wearable_light", "prob": 30, "charges": [ 0, 100 ] }, - { "item": "binoculars", "prob": 10 }, - { "item": "whistle", "prob": 30 }, - { "item": "harmonica_holder", "prob": 10 }, - { "group": "flask_liquor", "prob": 10 } - ] - }, - { - "type": "item_group", - "id": "pants_unisex_afs", - "subtype": "distribution", - "entries": [ - { "item": "jeans", "prob": 90 }, - { "item": "jeans_red", "prob": 50 }, - { "item": "pants", "prob": 75 }, - { "item": "pants_leather", "prob": 60 }, - { "item": "pants_cargo", "prob": 70 }, - { "item": "pants_ski", "prob": 45 }, - { "item": "pants_fur", "prob": 5 }, - { "item": "pants_faux_fur", "prob": 15 }, - { "item": "breeches", "prob": 25 } - ] - }, - { - "id": "shirts_unisex_afs", - "type": "item_group", - "//": "unisex shirts", - "subtype": "distribution", - "items": [ - { "item": "longshirt", "prob": 70 }, - { "item": "arm_warmers", "prob": 20 }, - { "item": "armguard_soft", "prob": 10 }, - { "item": "dress_shirt", "prob": 50 }, - { "item": "flag_shirt", "prob": 15 }, - { "item": "linuxtshirt", "prob": 10 }, - { "item": "polo_shirt", "prob": 30 }, - { "item": "sweater", "prob": 40 }, - { "item": "turtleneck", "prob": 15 }, - { "item": "turtleneck_shirt", "prob": 15 }, - { "item": "sweatshirt", "prob": 50 }, - { "item": "tank_top", "prob": 30 }, - { "item": "tshirt", "prob": 80 }, - { "item": "tshirt_text", "prob": 50 }, - { "item": "waistcoat", "prob": 10 }, - { "item": "wool_hoodie", "prob": 10 }, - { "item": "hoodie", "prob": 40 } - ] - }, - { - "id": "shoes_unisex_afs", - "type": "item_group", - "//": "unisex shoes (there are no men's only shoes)", - "subtype": "distribution", - "items": [ - { - "distribution": [ - { "item": "boots", "prob": 80 }, - { "item": "boots_hiking", "prob": 50 }, - { "item": "boots_steel", "prob": 50 }, - { "item": "sneakers_steel", "prob": 35 }, - { "item": "boots_combat", "prob": 45 }, - { "item": "boots_fur", "prob": 10 }, - { "item": "boots_winter", "prob": 30 }, - { "item": "knee_high_boots", "prob": 15 }, - { "item": "motorbike_boots", "prob": 35 } - ], - "prob": 60 - } - ] - }, - { - "id": "wardrobe_unisex_afs", - "type": "item_group", - "subtype": "distribution", - "items": [ - { "group": "shoes_unisex_afs", "prob": 50 }, - { "group": "common_gloves_afs", "prob": 20 }, - { "group": "pants_unisex_afs", "prob": 10 }, - { "group": "coats_unisex_afs", "prob": 50 }, - { "group": "hatstore_hats_afs", "prob": 20 }, - { "group": "scarfs_unisex_afs", "prob": 20 }, - { "group": "shirts_unisex_afs", "prob": 10 } - ] - }, - { + "//": "expansions of vanilla clothing groups in this file.", "type": "item_group", "id": "mil_armor", "subtype": "distribution", - "//": "replace helmet full carbide's below with body armors once those are made.", + "//2": "replace helmet full carbide's below with body armors once those are made.", "copy-from": "mil_armor", "extend": { "entries": [ diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/food_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/food_groups.json index f4d2d1de2..9fd3279b2 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/food_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/food_groups.json @@ -11,14 +11,85 @@ [ "afs_caffex", 50 ] ] }, + { + "id": "afs_spices", + "type": "item_group", + "//": "This group is for cupboard, drawer, or rack with spices.", + "subtype": "collection", + "entries": [ + { "item": "salt", "count": [ 2, 4 ], "prob": 15, "entry-wrapper": "afs_foil_bag", "container-item": "null" }, + { "item": "cinnamon", "prob": 5, "container-item": "afs_foil_bag" }, + { "item": "chilly-p", "prob": 15, "container-item": "afs_foil_bag" }, + { "item": "sugar", "prob": 5, "container-item": "afs_foil_bag" }, + { "item": "artificial_sweetener", "prob": 15, "container-item": "afs_foil_bag" }, + { "item": "curry_powder", "prob": 25, "container-item": "afs_foil_bag" }, + { "item": "garlic_powder", "prob": 25, "container-item": "afs_foil_bag" }, + { "item": "seasoning_salt", "prob": 50, "container-item": "afs_foil_bag" }, + { "group": "ketchup_sealed_rng", "prob": 35 }, + { "group": "mustard_sealed_rng", "prob": 35 }, + { "item": "soysauce", "prob": 25 }, + { "item": "hot_sauce", "prob": 25 } + ] + }, + { + "type": "item_group", + "id": "afs_dry_goods", + "ammo": 75, + "magazine": 100, + "subtype": "distribution", + "entries": [ + { "item": "instant_coffee", "prob": 40, "container-item": "afs_foil_bag" }, + { "item": "flour", "prob": 40, "container-item": "afs_foil_bag" }, + { "item": "yeast", "prob": 50, "container-item": "afs_foil_bag" }, + { "item": "fruit_leather", "prob": 15, "container-item": "afs_foil_bag" }, + { "item": "dry_beans", "prob": 10, "container-item": "afs_foil_bag" }, + { "item": "dry_lentils", "prob": 10, "container-item": "afs_foil_bag" }, + { "item": "dry_rice", "prob": 10, "container-item": "afs_foil_bag" }, + { "item": "gelatin_powder", "prob": 40, "container-item": "afs_foil_bag" }, + { "item": "chem_agar", "prob": 15, "container-item": "afs_foil_bag" }, + { "item": "gelatin_dessert_powder", "prob": 40, "container-item": "afs_foil_bag" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "afs_stored_meals", + "//": "Meals that require little to no preparation before eating.", + "entries": [ + { "prob": 10, "group": "afs_kibble_afs_foil_bag_2" }, + { "group": "astronaut_mre_full_pack", "prob": 10 }, + { "group": "afs_cheap_food", "count": [ 2, 4 ], "prob": 10 } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "afs_stored_meats", + "entries": [ + { "item": "afs_synthetic_meat", "prob": 10, "container-item": "afs_foil_bag" }, + { "item": "afs_jerky", "prob": 40, "container-item": "afs_foil_bag" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "afs_stored_veggies", + "entries": [ { "prob": 40, "group": "afs_kelp_afs_foil_bag_9" } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "afs_ruined_food", + "entries": [ { "prob": 10, "group": "afs_ruined_food_can_food_2" }, { "prob": 10, "group": "afs_ruined_food_afs_foil_bag_5" } ] + }, { "type": "item_group", "subtype": "collection", "id": "afs_mealgrub_procesing", "entries": [ { "item": "afs_mealgrub_jelly", "count-min": 5, "count-max": 20 }, - { "item": "afs_mealgrubs", "prob": 15, "count-min": 5, "count-max": 25 }, - { "item": "afs_mealgrubs", "prob": 5, "count-min": 5, "count-max": 25 }, + { "prob": 15, "count-min": 5, "count-max": 25, "group": "afs_mealgrubs_wrapper_pr_5" }, + { "prob": 5, "count-min": 5, "count-max": 25, "group": "afs_mealgrubs_wrapper_pr_5" }, { "item": "water", "prob": 10, "charges-min": 20, "charges-max": 40, "container-item": "jerrycan" } ] }, @@ -31,5 +102,45 @@ { "item": "afs_mealgrub_medium", "prob": 80, "count-min": 23, "count-max": 6 }, { "item": "afs_mealgrub_medium", "prob": 33, "count-min": 2, "count-max": 6 } ] + }, + { + "type": "item_group", + "id": "afs_kibble_afs_foil_bag_2", + "subtype": "collection", + "//": "This group was created automatically and may contain errors.", + "container-item": "afs_foil_bag", + "entries": [ { "item": "afs_kibble", "count": 2 } ] + }, + { + "type": "item_group", + "id": "afs_kelp_afs_foil_bag_9", + "subtype": "collection", + "//": "This group was created automatically and may contain errors.", + "container-item": "afs_foil_bag", + "entries": [ { "item": "afs_kelp", "count": 9 } ] + }, + { + "type": "item_group", + "id": "afs_ruined_food_can_food_2", + "subtype": "collection", + "//": "This group was created automatically and may contain errors.", + "container-item": "can_food", + "entries": [ { "item": "afs_ruined_food", "count": 2 } ] + }, + { + "type": "item_group", + "id": "afs_ruined_food_afs_foil_bag_5", + "subtype": "collection", + "//": "This group was created automatically and may contain errors.", + "container-item": "afs_foil_bag", + "entries": [ { "item": "afs_ruined_food", "count": 5 } ] + }, + { + "type": "item_group", + "id": "afs_mealgrubs_wrapper_pr_5", + "subtype": "collection", + "//": "This group was created automatically and may contain errors.", + "container-item": "wrapper_pr", + "entries": [ { "item": "afs_mealgrubs", "container-item": "null", "count": 5 } ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/item_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/item_groups.json index 161d5bb93..56dc111b4 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/item_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/item_groups.json @@ -45,13 +45,6 @@ ] } }, - { - "type": "item_group", - "id": "mil_hw", - "subtype": "distribution", - "copy-from": "mil_hw", - "extend": { "entries": [ { "item": "iv_mutagen_mastodon", "prob": 3 }, { "item": "mutagen_mastodon", "prob": 6 } ] } - }, { "id": "spider", "type": "item_group", @@ -399,5 +392,114 @@ "type": "item_group", "subtype": "collection", "items": [ [ "combat_wetsuit_cecalia", 20 ], [ "wetsuit_cecalia", 70 ], [ "trident", 70 ], [ "dive_bag", 100 ] ] + }, + { + "id": "gear_afs_sidearm", + "type": "item_group", + "//": "Sidearm and appropriate holster or sheath for soldiers or other paramilitary forces.", + "items": [ + { + "distribution": [ + { "item": "PR24-retracted", "prob": 20 }, + { "collection": [ { "item": "knife_rm42" }, { "item": "sheath" } ], "prob": 30 }, + { "collection": [ { "item": "afs_10mm_caseless_FMJ" }, { "item": "afs_84k_20mag" } ], "prob": 60 }, + { "collection": [ { "item": "afs_seyfert_84K" }, { "item": "holster" } ], "prob": 50 } + ] + } + ] + }, + { + "id": "afs_escapepod_shootout_corpse", + "type": "item_group", + "subtype": "collection", + "container-item": "corpse", + "on_overflow": "spill", + "entries": [ { "group": "afs_escapepod_shootout" } ] + }, + { + "id": "afs_escapepod_shootout", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "item": "afs_seyfert_84K", "charges": [ 15, 19 ], "ammo-item": "afs_10mm_caseless_FMJ" }, + { "item": "corpse" }, + { "group": "afs_plastic_armor_g", "prob": 33 }, + { "group": "afs_carbide_raider_armor_g", "prob": 10 }, + { "group": "mil_armor", "prob": 10 }, + { "group": "afs_colonist_shirt", "prob": 100 }, + { "group": "afs_colonist_pants", "prob": 100 }, + { "group": "afs_colonist_shoes", "prob": 100 }, + { "group": "drugs_soldier", "prob": 25 } + ] + }, + { + "id": "afs_mess_hall", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "plastic_fork" }, { "item": "plastic_spoon" }, { "item": "plastic_knife" }, { "item": "mess_tray" } ] + }, + { + "id": "afs_todd_howard", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "skull_human" } ] + }, + { + "id": "afs_exo_basic_power", + "type": "item_group", + "items": [ + { "item": "exo_back_battery_rechargable", "prob": 75, "charges": [ 50, 100 ] }, + { "item": "exo_back_gasoline", "prob": 50, "charges": [ 50, 100 ] }, + { "item": "exo_aux_power", "prob": 25, "charges": [ 50, 100 ] }, + { "item": "exo_small_aux_power", "prob": 25, "charges": [ 50, 100 ] } + ] + }, + { + "id": "afs_exo_advanced_power", + "type": "item_group", + "items": [ + { "item": "exo_back_battery_rechargable", "prob": 50, "charges": [ 50, 100 ] }, + { "item": "exo_back_fuelcell", "prob": 75, "charges": [ 50, 100 ] }, + { "item": "exo_asrg", "prob": 10 }, + { "item": "exo_aux_power", "count": [ 0, 1 ], "prob": 25, "charges": [ 50, 100 ] }, + { "item": "exo_small_aux_power", "prob": 25, "charges": [ 50, 100 ] } + ] + }, + { + "id": "afs_power_tools", + "type": "item_group", + "items": [ + { "item": "heavy_drill", "prob": 50 }, + { "item": "exosuit_plasma_torch", "prob": 75 }, + { "item": "exosuit_power_cutter", "prob": 25 } + ] + }, + { + "id": "afs_exo_basic_accessories", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "item": "exo_carry", "prob": 50 }, + { "item": "exo_small_carry", "count": [ 0, 2 ], "prob": 75 }, + { "item": "exo_flashlight", "prob": 75 }, + { "item": "exo_imager", "prob": 25 } + ] + }, + { + "id": "afs_exosuit_worker", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "item": "modular_exosuit", "prob": 100 }, + { "item": "afs_exo_standard_underlayer", "prob": 90 }, + { "item": "exo_helmet_plastic", "prob": 90 }, + { "item": "exo_torso_plastic", "prob": 90 }, + { "item": "exo_arm_plastic", "prob": 90 }, + { "item": "exo_leg_plastic", "prob": 90 }, + { "group": "afs_exo_basic_power", "prob": 75 }, + { "group": "afs_exo_basic_accessories", "prob": 75 }, + { "group": "afs_exo_basic_accessories", "prob": 75 }, + { "group": "afs_power_tools", "prob": 75 } + ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/kitchen_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/kitchen_groups.json index dae1cbfa2..f4dddb08d 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/kitchen_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/kitchen_groups.json @@ -14,5 +14,20 @@ { "group": "SUS_kitchen_sink", "prob": 30 }, { "group": "SUS_coffee_cupboard", "prob": 2 } ] + }, + { + "id": "afs_old_food_storage", + "type": "item_group", + "//": "A cabinet, rack or equivalent storing food from before the discontinuity. Should only contain nonperishable food and spawn in ruins.", + "subtype": "collection", + "items": [ + { "group": "afs_cheap_food", "prob": 10, "count-min": 1, "count-max": 5 }, + { "group": "afs_spices", "prob": 20, "count-min": 3, "count-max": 5 }, + { "group": "afs_dry_goods", "prob": 10, "count-min": 1, "count-max": 2 }, + { "group": "afs_stored_meals", "prob": 10, "count-min": 1, "count-max": 7 }, + { "group": "afs_stored_meats", "prob": 5, "count-min": 1, "count-max": 2 }, + { "group": "afs_stored_veggies", "prob": 10, "count-min": 1, "count-max": 2 }, + { "group": "afs_ruined_food", "prob": 50, "count-min": 1, "count-max": 7 } + ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/loot_corpse_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/loot_corpse_groups.json index 21136e11b..0011c84ad 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/loot_corpse_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/loot_corpse_groups.json @@ -27,7 +27,20 @@ "entries": [ { "group": "afs_any_makeshift_gun", "prob": 5 }, { "group": "afs_any_ballistic_s_gun", "prob": 10 }, - { "group": "afs_any_laser_gun", "prob": 10 } + { "group": "afs_any_laser_s_gun", "prob": 10 } + ] + }, + { + "type": "item_group", + "id": "copbot", + "subtype": "distribution", + "entries": [ + { "item": "baton", "prob": 8 }, + { "item": "tazer", "prob": 3 }, + { "item": "ceramic_armor", "prob": 15 }, + { "item": "tonfa", "prob": 10 }, + { "item": "shocktonfa_off", "prob": 5 }, + { "item": "alloy_plate", "prob": 10 } ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/nanofab_recipes.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/nanofab_recipes.json new file mode 100644 index 000000000..8e2bbdd8a --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/nanofab_recipes.json @@ -0,0 +1,8 @@ +[ + { + "type": "item_group", + "id": "afs_template_10mm_smart", + "subtype": "distribution", + "entries": [ { "item": "afs_10mm_smart", "prob": 10 } ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/nuclear_reactor_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/nuclear_reactor_groups.json index cc55f200c..094cf5f70 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/nuclear_reactor_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/nuclear_reactor_groups.json @@ -3,7 +3,7 @@ "id": "nuclear_waste", "type": "item_group", "subtype": "collection", - "entries": [ { "item": "nuclear_waste", "container-item": "hazardous_waste_drum", "charges": 10 } ] + "entries": [ { "item": "nuclear_waste", "entry-wrapper": "hazardous_waste_drum", "count": 10 } ] }, { "id": "nuclear_reactor", diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/spaceship_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/spaceship_groups.json index ec70c026c..ca21b35e4 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/spaceship_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/spaceship_groups.json @@ -11,7 +11,7 @@ { "item": "flint_steel" }, { "item": "whistle_multitool" }, { "item": "water_clean", "container-item": "bottle_twoliter", "count": 3 }, - { "item": "afs_escapepod_ration", "count": 3 }, + { "count": 3, "group": "afs_escapepod_ration_bag_plastic_4" }, { "item": "cream_prot_cold", "count": 3 }, { "item": "light_plus_battery_cell", "charges": 150, "container-item": "flashlight" }, { "item": "light_plus_battery_cell", "charges": 150, "container-item": "water_purifier" }, @@ -23,5 +23,13 @@ { "item": "afs_7.50mm_rp", "charges": 18 }, { "item": "afs_landfall_kit_2_instructions" } ] + }, + { + "type": "item_group", + "id": "afs_escapepod_ration_bag_plastic_4", + "subtype": "collection", + "//": "This group was created automatically and may contain errors.", + "container-item": "bag_plastic", + "entries": [ { "item": "afs_escapepod_ration", "container-item": "null", "count": 4 } ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/tool_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/tool_groups.json index 434ba5b18..4e2d0321a 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/tool_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/tool_groups.json @@ -1,4 +1,38 @@ [ + { + "id": "afs_hard_hat", + "type": "item_group", + "subtype": "collection", + "items": [ + { "item": "hat_hard" }, + { "item": "attachable_ear_muffs", "prob": 50 }, + { "item": "nape_protector", "prob": 20 }, + { "item": "sun_shield", "prob": 30 } + ] + }, + { + "type": "item_group", + "id": "afs_tools_space_emergency", + "//": "Emergency Firefighting and repair tools for inside an habitat or spaceship. Can get as specialized as needed.", + "subtype": "collection", + "items": [ + { + "distribution": [ + { "item": "extinguisher", "prob": 35, "charges": [ 75, 100 ] }, + { "item": "throw_extinguisher", "prob": 75, "count": [ 3, 5 ] } + ], + "prob": 100 + }, + { "item": "rebreather", "ammo-item": "rebreather_filter", "charges": 60, "prob": 75 }, + { "distribution": [ { "item": "fire_ax", "prob": 20 }, { "item": "crash_axe", "prob": 80 } ], "prob": 30 }, + { + "collection": [ { "item": "afs_foamgun" }, { "item": "afs_foam_tank", "ammo-item": "afs_foamcrete", "charges": 30, "prob": 100 } ], + "prob": 10 + }, + { "item": "afs_oxygen_candle", "prob": 75, "count": [ 2, 4 ] }, + { "distribution": [ { "group": "full_ifak" }, { "group": "used_ifak" } ], "prob": 10 } + ] + }, { "type": "item_group", "id": "afs_tools_robot_maintenance", @@ -109,6 +143,36 @@ { "item": "afs_wrist_computer", "prob": 20 } ] }, + { + "type": "item_group", + "id": "afs_tools_pocket", + "//": "General use tools that fit in small pockets.", + "subtype": "distribution", + "entries": [ + { + "distribution": [ + { "item": "pockknife", "prob": 50 }, + { "item": "knife_folding", "prob": 30 }, + { "item": "knife_swissarmy", "prob": 10 }, + { "item": "switchblade", "prob": 10 } + ], + "prob": 15 + }, + { + "distribution": [ + { "item": "lighter", "prob": 100, "charges": [ 0, 100 ] }, + { "item": "ref_lighter", "prob": 40, "charges": [ 0, 50 ] }, + { "item": "matches", "prob": 20, "charges": [ 0, 20 ] } + ], + "prob": 5 + }, + { "item": "multitool", "prob": 5 }, + { "item": "screwdriver_set", "prob": 15 }, + { "item": "pliers", "prob": 5 }, + { "item": "superglue", "prob": 5 }, + { "item": "duct_tape", "prob": 10, "count": [ 1, 2 ] } + ] + }, { "type": "item_group", "id": "afs_tools_scavenging", diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/armories.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/armories.json index 8c3a9b426..b5c8d6634 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/armories.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/armories.json @@ -32,8 +32,9 @@ "subtype": "distribution", "items": [ { "group": "afs_any_ballistic_gun", "prob": 6 }, - { "group": "afs_any_ballistic_mag", "prob": 1 }, - { "group": "afs_any_ballistic_ammo", "prob": 4 } + { "group": "afs_any_ballistic_mag", "prob": 2 }, + { "group": "afs_any_ballistic_ammo", "prob": 4 }, + { "group": "afs_shotgun_gunmod", "prob": 1 } ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/balistic_gun_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/balistic_gun_groups.json index d1710c574..8cfdb1097 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/balistic_gun_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/balistic_gun_groups.json @@ -23,7 +23,13 @@ "subtype": "distribution", "ammo": 100, "magazine": 100, - "items": [ [ "afs_Accipitermg", 20 ], [ "afs_gibrifle", 40 ], [ "afs_25mm_goa", 5 ] ] + "items": [ + [ "afs_Accipitermg", 20 ], + [ "afs_gibrifle", 40 ], + [ "afs_shotgun", 15 ], + [ "afs_25mm_goa", 5 ], + [ "afs_drotik_shotpistol", 5 ] + ] }, { "id": "afs_any_ballistic_h_gun", @@ -31,7 +37,7 @@ "subtype": "distribution", "ammo": 100, "magazine": 100, - "items": [ [ "afs_gibs_shotgun", 10 ] ] + "items": [ [ "afs_gibs_shotgun", 10 ], [ "afs_raketa_shotgun", 5 ] ] }, { "id": "afs_any_ballistic_mag", @@ -57,7 +63,7 @@ "subtype": "distribution", "ammo": 100, "magazine": 100, - "items": [ [ "afs_UICASTA30", 40 ], [ "afs_UICASTA100drum", 5 ] ] + "items": [ [ "afs_UICASTA30", 40 ], [ "afs_UICASTA100drum", 5 ], [ "afs_shot_speedloader8", 10 ] ] }, { "id": "afs_any_ballistic_h_mag", @@ -65,7 +71,7 @@ "subtype": "distribution", "ammo": 100, "magazine": 100, - "items": [ [ "afs_25mm_mag", 20 ] ] + "items": [ [ "afs_25mm_mag", 20 ], [ "afs_raketa30mag", 10 ] ] }, { "id": "afs_any_ballistic_ammo", @@ -91,7 +97,14 @@ "subtype": "distribution", "ammo": 100, "magazine": 100, - "items": [ [ "afs_7.50mm_caseless", 40 ] ] + "items": [ + [ "afs_7.50mm_caseless", 40 ], + [ "shot_00", 40 ], + [ "shot_slug", 25 ], + [ "shot_beanbag", 10 ], + [ "shot_flechette", 5 ], + [ "shot_he", 5 ] + ] }, { "id": "afs_any_ballistic_h_ammo", @@ -100,5 +113,11 @@ "ammo": 100, "magazine": 100, "items": [ [ "afs_25mm_shot", 40 ], [ "afs_25mm_apfsds", 5 ], [ "afs_25mm_frag", 10 ] ] + }, + { + "id": "afs_shotgun_gunmod", + "type": "item_group", + "subtype": "distribution", + "items": [ [ "afs_magnetic_choke", 10 ] ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/energy_gun_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/energy_gun_groups.json index 525ee93f4..571482070 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/energy_gun_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/energy_gun_groups.json @@ -3,10 +3,14 @@ "id": "afs_any_energy_gun", "type": "item_group", "subtype": "distribution", - "items": [ { "group": "afs_any_laser_gun", "prob": 10 }, { "group": "afs_any_plasma_gun", "prob": 5 } ] + "items": [ + { "group": "afs_any_laser_s_gun", "prob": 10 }, + { "group": "afs_any_laser_h_gun", "prob": 2 }, + { "group": "afs_any_plasma_gun", "prob": 5 } + ] }, { - "id": "afs_any_laser_gun", + "id": "afs_any_laser_s_gun", "type": "item_group", "subtype": "distribution", "ammo": 100, @@ -17,13 +21,27 @@ { "item": "afs_archeotech_laspistol", "charges": 15000, "ammo-item": "afs_battery_plus", "prob": 1 } ] }, + { + "id": "afs_any_laser_h_gun", + "type": "item_group", + "subtype": "distribution", + "ammo": 100, + "magazine": 100, + "items": [ [ "afs_heavy_tactical_laser", 40 ], { "group": "afs_explosive_pumped_laser_s", "prob": 20 } ] + }, + { + "type": "item_group", + "id": "afs_explosive_pumped_laser_s", + "subtype": "collection", + "entries": [ { "item": "afs_explosive_pumped_laser" }, { "item": "afs_82mm_flashbulb", "prob": 90, "count": [ 2, 9 ] } ] + }, { "id": "afs_any_plasma_gun", "type": "item_group", "subtype": "distribution", "ammo": 100, "magazine": 100, - "items": [ [ "afs_pam-41", 30 ] ] + "items": [ [ "afs_pam-41", 30 ], [ "afs_magnadrive_230k", 30 ] ] }, { "id": "afs_any_energy_mag", @@ -48,7 +66,7 @@ "type": "item_group", "subtype": "distribution", "ammo": 100, - "items": [ [ "afs_4g_plasma", 30 ] ] + "items": [ [ "afs_4g_plasma", 30 ], [ "afs_20g_plasma", 20 ] ] }, { "type": "item_group", diff --git a/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/weapon_expansion_groups.json b/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/weapon_expansion_groups.json index 623349d75..3299c9aed 100644 --- a/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/weapon_expansion_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/itemgroups/weapons/weapon_expansion_groups.json @@ -51,6 +51,18 @@ ] } }, + { + "type": "item_group", + "id": "guns_smg_milspec", + "copy-from": "guns_smg_milspec", + "extend": { "items": [ { "item": "afs_needlegun", "prob": 30, "charges-min": 0, "charges-max": 100 } ] } + }, + { + "type": "item_group", + "id": "guns_pistol_milspec", + "copy-from": "guns_pistol_milspec", + "extend": { "items": [ { "item": "afs_needlepistol", "prob": 30, "charges-min": 0, "charges-max": 50 } ] } + }, { "type": "item_group", "id": "guns_shotgun_milspec", @@ -61,7 +73,7 @@ "type": "item_group", "id": "mags_pistol_rare", "copy-from": "mags_pistol_rare", - "extend": { "items": [ [ "afs_84k_20mag", 15 ] ] } + "extend": { "items": [ [ "afs_5x50_50_mag", 5 ], [ "afs_5x50_100_mag", 5 ], [ "afs_84k_20mag", 15 ] ] } }, { "type": "item_group", @@ -80,6 +92,13 @@ "copy-from": "mags_shotgun_rare", "extend": { "items": [ [ "afs_25mm_mag", 50 ] ] } }, + { + "type": "item_group", + "id": "ammo_pistol_milspec", + "subtype": "distribution", + "copy-from": "ammo_pistol_milspec", + "extend": { "entries": [ { "item": "afs_5x50dart", "prob": 30 }, { "item": "afs_5x50heavy", "prob": 20 } ] } + }, { "type": "item_group", "id": "ammo_pistol_rare", @@ -117,5 +136,19 @@ "subtype": "distribution", "copy-from": "ammo_shotgun_milspec", "extend": { "entries": [ { "item": "afs_25mm_shot", "prob": 10 } ] } + }, + { + "type": "item_group", + "id": "ammo_casings_milspec", + "subtype": "distribution", + "copy-from": "ammo_casings_milspec", + "extend": { "entries": [ { "item": "afs_5x50_hull", "prob": 10, "count": [ 1, 30 ] } ] } + }, + { + "type": "item_group", + "id": "ammo_casings", + "subtype": "distribution", + "copy-from": "ammo_casings", + "extend": { "entries": [ { "item": "afs_5x50_hull", "prob": 60 } ] } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/afs_harvest.json b/data/Mainline_mods/Mods/Aftershock/items/afs_harvest.json index 277c0b0e4..06599fdfc 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/afs_harvest.json +++ b/data/Mainline_mods/Mods/Aftershock/items/afs_harvest.json @@ -15,6 +15,24 @@ "type": "harvest", "entries": [ { "drop": "afs_titanium_implant", "type": "bionic", "flags": [ "FILTHY", "NO_STERILE" ], "max": 1 } ] }, + { + "id": "dissect_human_reaver", + "type": "harvest", + "entries": [ + { + "drop": "bio_power_storage_salvaged", + "type": "bionic", + "flags": [ "FILTHY", "NO_STERILE", "NO_PACKED" ], + "faults": [ "fault_bionic_salvaged" ] + }, + { + "drop": "bionics_reaver", + "type": "bionic_group", + "flags": [ "FILTHY", "NO_STERILE", "NO_PACKED" ], + "faults": [ "fault_bionic_salvaged" ] + } + ] + }, { "id": "dissect_CBM_CIV", "type": "harvest", diff --git a/data/Mainline_mods/Mods/Aftershock/items/ammo.json b/data/Mainline_mods/Mods/Aftershock/items/ammo.json index 0347c7149..6835c666c 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/ammo.json +++ b/data/Mainline_mods/Mods/Aftershock/items/ammo.json @@ -53,7 +53,6 @@ "price_postapoc": 10000, "weight": "20 g", "longest_side": "76 cm", - "bashing": 1, "ammo_type": "arrow", "damage": { "damage_type": "stab", "constant_damage_multiplier": 3.75 }, "range": 6, @@ -61,6 +60,7 @@ "loudness": 0, "count": 10, "stack_size": 10, - "critical_multiplier": 13 + "critical_multiplier": 13, + "melee_damage": { "bash": 1 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/ammo/10mm.json b/data/Mainline_mods/Mods/Aftershock/items/ammo/10mm.json index 11b757638..244889d11 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/ammo/10mm.json +++ b/data/Mainline_mods/Mods/Aftershock/items/ammo/10mm.json @@ -38,5 +38,27 @@ "dispersion": 60, "recoil": 600, "extend": { "effects": [ "COOKOFF" ], "flags": [ "CASELESS_ROUNDS" ] } + }, + { + "id": "afs_10mm_smart", + "type": "AMMO", + "name": { "str_sp": "10mm SDART" }, + "description": "High precision 10mm microjet darts. These low velocity rounds can adjust mid-flight to exploit weaknesses in the target's defenses.", + "//": "tiny guided rockets.", + "weight": "7 g", + "volume": "115 ml", + "price": 150, + "material": [ "superalloy", "powder", "plastic" ], + "symbol": "=", + "color": "pink", + "count": 42, + "stack_size": 42, + "ammo_type": "afs_10mm_smart", + "range": 14, + "damage": { "damage_type": "bullet", "amount": 20, "armor_penetration": 10 }, + "dispersion": 0, + "recoil": 600, + "critical_multiplier": 4, + "extend": { "effects": [ "COOKOFF", "NEVER_MISFIRES" ], "flags": [ "CASELESS_ROUNDS" ] } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/ammo/25mm.json b/data/Mainline_mods/Mods/Aftershock/items/ammo/25mm.json index 8968bcdfe..6b3352733 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/ammo/25mm.json +++ b/data/Mainline_mods/Mods/Aftershock/items/ammo/25mm.json @@ -54,5 +54,27 @@ "range": 110, "damage": { "damage_type": "bullet", "amount": 280, "armor_penetration": 70 }, "dispersion": 15 + }, + { + "id": "afs_25mm_smart", + "type": "AMMO", + "name": { "str_sp": "25mm SDART" }, + "description": "High precision 25mm microjet darts. These low velocity rounds can adjust mid-flight to exploit weaknesses in the target's defenses.", + "//": "tiny guided rockets.", + "weight": "42 g", + "volume": "60 ml", + "price": "55000 USD", + "material": [ "superalloy", "powder", "plastic" ], + "symbol": "=", + "color": "pink", + "count": 5, + "ammo_type": "afs_25mm_smart", + "range": 110, + "stack_size": 1, + "recoil": 100, + "effects": [ "NEVER_MISFIRES", "CASELESS_ROUNDS" ], + "damage": { "damage_type": "bullet", "amount": 40, "armor_penetration": 5 }, + "critical_multiplier": 10, + "dispersion": 0 } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/ammo/5x50.json b/data/Mainline_mods/Mods/Aftershock/items/ammo/5x50.json new file mode 100644 index 000000000..3d138801f --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/ammo/5x50.json @@ -0,0 +1,48 @@ +[ + { + "id": "afs_5x50dart", + "type": "AMMO", + "name": { "str": "RA110 5x50mm flechette" }, + "description": "Designed to defeat modern body armor, the Rivtech 5x50mm flechette round features a biodegradable sabot and a single, fin-stabilized penetrator.", + "weight": "8 g", + "volume": "144 ml", + "price": 1125, + "material": [ "plastic", "powder", "steel" ], + "symbol": "=", + "color": "green", + "count": 100, + "stack_size": 45, + "ammo_type": "afs_5x50", + "casing": "afs_5x50_hull", + "range": 60, + "damage": { "damage_type": "bullet", "amount": 20, "armor_penetration": 30 }, + "dispersion": 60, + "recoil": 400, + "flags": [ "IRREPLACEABLE_CONSUMABLE" ], + "price_postapoc": 1800, + "effects": [ "COOKOFF", "NEVER_MISFIRES" ] + }, + { + "id": "afs_5x50heavy", + "copy-from": "afs_5x50dart", + "type": "AMMO", + "name": { "str": "RA119 5x50mm penetrator" }, + "description": "Designed to defeat modern body armor, the Rivtech 5x50mm RA119 penetrator round features a biodegradable sabot and a single, fin-stabilized tungsten alloy projectile.", + "weight": "9 g", + "price": 1688, + "price_postapoc": 2400, + "relative": { "range": -10, "damage": { "damage_type": "bullet", "amount": 5, "armor_penetration": 20 }, "dispersion": 20 }, + "proportional": { "recoil": 1.1 } + }, + { + "id": "afs_reloaded_5x50dart", + "copy-from": "afs_5x50dart", + "type": "AMMO", + "name": { "str": "5x50mm flechette, reloaded", "str_pl": "5x50mm flechettes, reloaded" }, + "price_postapoc": 1200, + "description": "Designed to defeat modern body armor, the Rivtech 5x50mm flechette round features a biodegradable sabot and a single, fin-stabilized penetrator. This one has been hand-reloaded by a lucky survivor or perhaps a pre-Cataclysm corporate spy, leading to slightly inferior performance compared to factory-produced ammo.", + "effects": [ "COOKOFF", "RECYCLED" ], + "relative": { "range": -15, "dispersion": 40 }, + "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9, "armor_penetration": 0.7 }, "recoil": 0.9 } + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/ammo/flashbulb.json b/data/Mainline_mods/Mods/Aftershock/items/ammo/flashbulb.json new file mode 100644 index 000000000..98c1b3902 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/ammo/flashbulb.json @@ -0,0 +1,24 @@ +[ + { + "type": "AMMO", + "id": "afs_82mm_flashbulb", + "price": 70000, + "price_postapoc": 12000, + "name": { "str": "82x225mm flashbulb" }, + "symbol": "=", + "color": "dark_gray", + "description": "Pyrotechnic flash lamps designed to emit and focus a millisecond pulse laser through controlled detonation.", + "material": [ "steel", "powder" ], + "volume": "1250 ml", + "longest_side": "246 mm", + "weight": "3200 g", + "ammo_type": "afs_82mm_flashbulb", + "damage": [ { "damage_type": "pure", "amount": 15 }, { "damage_type": "heat", "amount": 220 } ], + "range": 120, + "dispersion": 15, + "recoil": 45, + "count": 4, + "stack_size": 1, + "effects": [ "COOKOFF", "NEVER_MISFIRES", "LASER", "INCENDIARY", "DAZZLE_BEAM", "PUMP_LASER", "PLASMA_BUBBLE" ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/ammo/metal_rail.json b/data/Mainline_mods/Mods/Aftershock/items/ammo/metal_rail.json new file mode 100644 index 000000000..cfe56d38e --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/ammo/metal_rail.json @@ -0,0 +1,41 @@ +[ + { + "id": "rebar_rail", + "type": "AMMO", + "name": { "str": "rebar rail" }, + "description": "A short piece of ferromagnetic rebar which has been straightened and sharpened on one end. Could be used as a projectile by a sufficiently powerful electromagnetic weapon.", + "weight": "236 g", + "longest_side": "16 cm", + "volume": "300 ml", + "price": 1000, + "price_postapoc": 250, + "to_hit": -1, + "material": [ "steel" ], + "symbol": "=", + "color": "light_gray", + "count": 10, + "ammo_type": "metal_rail", + "range": 40, + "damage": { "damage_type": "stab", "amount": 70, "armor_penetration": 25 }, + "dispersion": 150, + "effects": [ "RECYCLED", "NON_FOULING" ], + "melee_damage": { "bash": 5, "cut": 1 } + }, + { + "id": "steel_rail", + "copy-from": "rebar_rail", + "type": "AMMO", + "name": { "str": "steel rail" }, + "description": "A short piece of steel which has been forged true and sharpened on one end. Could be used as a projectile by a sufficiently powerful electromagnetic weapon.", + "weight": "212 g", + "volume": "270 ml", + "price": 1500, + "price_postapoc": 500, + "material": [ "steel" ], + "color": "light_gray", + "dispersion": 0, + "effects": [ "NEVER_MISFIRES", "NON_FOULING" ], + "relative": { "range": 10, "damage": { "damage_type": "stab", "amount": -5, "armor_penetration": 15 } }, + "melee_damage": { "bash": 4, "cut": 2 } + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/ammo_effects.json b/data/Mainline_mods/Mods/Aftershock/items/ammo_effects.json index 3d15960b3..e1acf02d1 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/ammo_effects.json +++ b/data/Mainline_mods/Mods/Aftershock/items/ammo_effects.json @@ -2,6 +2,7 @@ { "id": "FOAMCRETE", "type": "ammo_effect", + "//": "Applies foamcrete effect on hit.", "foamcrete_build": true } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/ammo_type.json b/data/Mainline_mods/Mods/Aftershock/items/ammo_type.json index c27192d8a..cba94da69 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/ammo_type.json +++ b/data/Mainline_mods/Mods/Aftershock/items/ammo_type.json @@ -29,16 +29,46 @@ "name": "25mm", "default": "afs_25mm_shot" }, + { + "type": "ammunition_type", + "id": "afs_25mm_smart", + "name": "25mm microjet", + "default": "afs_25mm_smart" + }, { "type": "ammunition_type", "id": "afs_10mm", "name": "10mm", "default": "afs_10mm_caseless_JHP" }, + { + "type": "ammunition_type", + "id": "afs_10mm_smart", + "name": "10mm microjet", + "default": "afs_10mm_smart" + }, { "type": "ammunition_type", "id": "afs_7.50mm", "name": "7.50mm", "default": "afs_7.50mm_caseless" + }, + { + "type": "ammunition_type", + "id": "afs_82mm_flashbulb", + "name": "82x225mm flashbulb", + "default": "afs_82mm_flashbulb" + }, + { + "type": "ammunition_type", + "id": "metal_rail", + "name": "ferrous rail projectile", + "default": "steel_rail" + }, + { + "type": "ammunition_type", + "id": "afs_5x50", + "name": "5x50mm flechette", + "default": "afs_5x50dart" } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/appliances.json b/data/Mainline_mods/Mods/Aftershock/items/appliances.json new file mode 100644 index 000000000..ffc67dee9 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/appliances.json @@ -0,0 +1,16 @@ +[ + { + "type": "GENERIC", + "id": "ap_exo_gantry", + "looks_like": "welding_rig", + "symbol": "T", + "color": "blue", + "name": { "str": "freezer" }, + "description": "A gantry for supporting an exosuit upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", + "longest_side": "1400 mm", + "insulation": 15, + "volume": "900 L", + "weight": "50 kg", + "pocket_data": [ { "pocket_type": "CONTAINER", "rigid": true, "max_contains_volume": "450 L", "max_contains_weight": "400 kg" } ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor.json b/data/Mainline_mods/Mods/Aftershock/items/armor.json index 11d178003..b79c370fd 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor.json @@ -62,7 +62,17 @@ "warmth": 30, "material_thickness": 3, "flags": [ "OVERSIZE", "HOOD", "OUTER", "NO_REPAIR", "SUPER_FANCY", "STURDY" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "BONUS_DODGE", "add": 1 } ] } ] }, + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "BONUS_DODGE", "add": 1 } ], + "name": "Living Shadow", + "description": "You are wearing equipment that gives 1 bonus dodge." + } + ] + }, "armor": [ { "encumbrance": 4, "coverage": 85, "covers": [ "torso", "head", "arm_l", "arm_r", "leg_l", "leg_r" ] } ] }, { @@ -70,7 +80,7 @@ "type": "TOOL_ARMOR", "category": "armor", "name": { "str": "IX-2110 computer" }, - "description": "The original Imagos IX-2110, a general use wrist computer originally designed to support operations within hazardous environments. Among the most successful pieces of technology ever created, millions of these were produced and sold to the explorers and colonists that first tamed the stars during the early Hyperspace Era. By now more than 400 years old, making it boot successfully would be a small adventure all of its own.", + "description": "The original Imagos IX-2110, a general use wrist computer originally designed to support operations within hazardous environments. Among the most successful pieces of technology ever created, millions of these were produced and sold to the explorers that first tamed the stars during the early Hyperspace Era. By now more than 400 years old, making it boot successfully would be a small adventure all of its own.", "weight": "315 g", "volume": "1200 ml", "price": "20 USD", @@ -98,7 +108,6 @@ }, { "id": "xl_technician_pants_gray", - "repairs_like": "jeans", "type": "ARMOR", "name": { "str": "XL work pants", "str_pl": "pairs of XL work pants" }, "description": "A pair of gray work pants.", @@ -116,7 +125,6 @@ }, { "id": "xl_technician_shirt_gray", - "repairs_like": "tshirt", "type": "ARMOR", "name": { "str": "XL work t-shirt" }, "description": "A gray XL work t-shirt with a small front pocket.", @@ -138,7 +146,6 @@ "weight": "7500 g", "volume": "5 L", "price": 1500000, - "bashing": 10, "to_hit": -1, "material": [ "glass", "steel" ], "symbol": "[", @@ -146,7 +153,8 @@ "material_thickness": 3, "use_action": [ "SOLARPACK" ], "flags": [ "FRAGILE", "OUTER", "ONLY_ONE", "SOLARPACK" ], - "armor": [ { "encumbrance": 12, "coverage": 40, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": 12, "coverage": 40, "covers": [ "torso" ] } ], + "melee_damage": { "bash": 10 } }, { "id": "q_solarpack_on", @@ -157,7 +165,6 @@ "weight": "7500 g", "volume": "15 L", "price": 1500000, - "bashing": 4, "to_hit": -2, "material": [ "glass", "steel" ], "symbol": "[", @@ -166,11 +173,11 @@ "use_action": [ "SOLARPACK_OFF" ], "solar_efficiency": 0.3, "flags": [ "FRAGILE", "OUTER", "ONLY_ONE", "SOLARPACK_ON" ], - "armor": [ { "encumbrance": 20, "coverage": 40, "covers": [ "torso" ] } ] + "armor": [ { "encumbrance": 20, "coverage": 40, "covers": [ "torso" ] } ], + "melee_damage": { "bash": 4 } }, { "id": "xlswat_armor", - "repairs_like": "survivor_suit", "type": "ARMOR", "category": "armor", "name": { "str": "Uplifted SWAT armor" }, @@ -180,7 +187,6 @@ "price": 585000, "price_postapoc": 5000, "to_hit": -3, - "bashing": 6, "material": [ "kevlar", "cotton" ], "symbol": "[", "looks_like": "touring_suit", @@ -194,7 +200,8 @@ { "pocket_type": "CONTAINER", "max_contains_volume": "750 ml", "max_contains_weight": "2 kg", "moves": 80 }, { "pocket_type": "CONTAINER", "max_contains_volume": "750 ml", "max_contains_weight": "2 kg", "moves": 80 } ], - "armor": [ { "encumbrance": 25, "coverage": 95, "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r" ] } ] + "armor": [ { "encumbrance": 25, "coverage": 95, "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r" ] } ], + "melee_damage": { "bash": 6 } }, { "id": "xlballistic_vest_empty", @@ -233,7 +240,6 @@ }, { "id": "xlboots_combat", - "repairs_like": "boots_survivor", "type": "ARMOR", "category": "armor", "name": { "str": "pair of XL combat boots", "str_pl": "pairs of XL combat boots" }, @@ -243,7 +249,6 @@ "price": 7000, "price_postapoc": 14000, "to_hit": -1, - "bashing": 1, "material": [ "kevlar", "leather" ], "symbol": "[", "looks_like": "boots", @@ -252,11 +257,11 @@ "material_thickness": 5, "environmental_protection": 2, "flags": [ "OVERSIZE", "VARSIZE", "WATERPROOF", "STURDY" ], - "armor": [ { "encumbrance": 25, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ] + "armor": [ { "encumbrance": 25, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ], + "melee_damage": { "bash": 1 } }, { "id": "xlgloves_tactical", - "repairs_like": "gloves_survivor", "type": "ARMOR", "category": "armor", "name": { "str": "pair of XL tactical gloves", "str_pl": "pairs of XL tactical gloves" }, @@ -276,7 +281,6 @@ }, { "id": "tripaw_xlgloves_tactical", - "repairs_like": "gloves_survivor", "type": "ARMOR", "category": "armor", "name": { "str": "pair of Killophant gloves", "str_pl": "pairs of Killophant gloves" }, @@ -316,7 +320,6 @@ }, { "id": "xltac_fullhelmet", - "repairs_like": "xlkevlar", "type": "ARMOR", "category": "armor", "name": { "str": "XL tactical full helmet" }, @@ -336,90 +339,6 @@ "copy-from": "legpouch_large", "flags": [ "WATER_FRIENDLY", "BELTED", "OVERSIZE" ] }, - { - "id": "spacer_jumpsuit", - "repairs_like": "jumpsuit", - "type": "ARMOR", - "copy-from": "jumpsuit", - "looks_like": "jumpsuit", - "name": { "str": "crew jumpsuit" }, - "description": "A lightweight cloth jumpsuit adorned with the faded corporate regalia of some freight hauling association or another. This one is a standard design favored by spacers, with ample, easy access pockets.", - "color": "brown" - }, - { - "id": "spacer_cap", - "repairs_like": "hat_cotton", - "type": "ARMOR", - "copy-from": "hat_cotton", - "material": [ "plastic", "cotton" ], - "looks_like": "powered_earmuffs", - "flags": [ "OVERSIZE", "BELTED", "ALLOWS_NATURAL_ATTACKS", "PARTIAL_DEAF" ], - "name": { "str": "communications cap" }, - "description": "A padded cotton cap built around an augmented reality headset. During normal operation it would provide visual information about a ship subsystems and a communications link with the rest of the crew, but severed from a spaceship, only their hearing protection function retains any utility.", - "armor": [ - { "covers": [ "eyes" ], "rigid_layer_only": true, "coverage": 33, "encumbrance": 0 }, - { "covers": [ "head" ], "coverage": 100, "encumbrance": 2 } - ], - "color": "brown" - }, - { - "id": "afs_herc_rig", - "type": "ARMOR", - "name": { "str": "HERC rig" }, - "description": "A lightweight steel-reinforced tool carrier. Keeps your tools safe and about in zero-g, Mars, the bottom of the Pacific, or other generally inhospitable environments. It has several deep pockets, and two mounting points for pressurized canisters or other large magazines.", - "weight": "600 g", - "volume": "10 L", - "looks_like": "tacvest", - "price": 7400, - "price_postapoc": 5000, - "material": [ "steel", "plastic" ], - "symbol": "[", - "color": "dark_gray", - "material_thickness": 2, - "use_action": { "type": "holster", "holster_prompt": "Stash ammo", "holster_msg": "You stash your %s." }, - "pocket_data": [ - { - "max_contains_volume": "2 L", - "max_contains_weight": "6 kg", - "max_item_length": "90 cm", - "moves": 40, - "flag_restriction": [ "BELT_CLIP" ], - "rigid": true, - "holster": true - }, - { - "max_contains_volume": "2 L", - "max_contains_weight": "6 kg", - "max_item_length": "90 cm", - "moves": 40, - "flag_restriction": [ "BELT_CLIP" ], - "rigid": true, - "holster": true - }, - { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "2 kg", "moves": 60 }, - { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "2 kg", "moves": 60 }, - { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "2 kg", "moves": 60 }, - { "pocket_type": "CONTAINER", "max_contains_volume": "2 L", "max_contains_weight": "5 kg", "moves": 150 }, - { - "pocket_type": "CONTAINER", - "min_item_volume": "2 L", - "max_contains_volume": "5 L", - "max_contains_weight": "30 kg", - "flag_restriction": [ "MAG_BULKY" ], - "moves": 60 - }, - { - "pocket_type": "CONTAINER", - "min_item_volume": "2 L", - "max_contains_volume": "5 L", - "max_contains_weight": "30 kg", - "flag_restriction": [ "MAG_BULKY" ], - "moves": 60 - } - ], - "flags": [ "WATER_FRIENDLY", "BELTED" ], - "armor": [ { "encumbrance": [ 2, 15 ], "coverage": 20, "covers": [ "torso" ] } ] - }, { "id": "wetsuit_cecalia", "type": "ARMOR", @@ -473,7 +392,8 @@ "moves": 40, "flag_restriction": [ "BELT_CLIP" ], "rigid": true, - "holster": true + "holster": true, + "transparent": true }, { "pocket_type": "CONTAINER", @@ -496,34 +416,111 @@ "material_thickness": 2, "environmental_protection": 3, "flags": [ "VARSIZE", "WATER_FRIENDLY", "SKINTIGHT" ], - "armor": [ { "encumbrance": [ 2, 5 ], "coverage": 90, "covers": [ "torso", "arm_l", "arm_r" ] } ] + "armor": [ + { + "material": [ + { "type": "neoprene", "covered_by_mat": 100, "thickness": 1.2 }, + { "type": "kevlar", "covered_by_mat": 100, "thickness": 0.3 } + ], + "covers": [ "torso" ], + "coverage": 100, + "encumbrance": 5 + }, + { + "material": [ + { "type": "kevlar", "covered_by_mat": 100, "thickness": 0.3 }, + { "type": "neoprene", "covered_by_mat": 100, "thickness": 0.7 } + ], + "covers": [ "arm_l", "arm_r" ], + "coverage": 100, + "encumbrance": 2 + } + ] }, { "id": "nanomesh_vest", - "repairs_like": "chainmail_vest", "type": "ARMOR", - "copy-from": "chainmail_vest", - "looks_like": "chainmail_vest", - "material": [ "nanoprinted_alloy" ], + "category": "armor", "name": { "str": "nanomesh vest" }, "description": "A lightweight nanomesh vest designed to face down many of the perils of space travel. These vests are mass produced and often stacked in starship lockers.", - "armor": [ { "encumbrance": 12, "coverage": 95, "covers": [ "torso" ] } ], - "price": 40000, - "price_postapoc": 40000, - "color": "brown" + "weight": "6953 g", + "volume": "1 L", + "price": 10000, + "price_postapoc": 2000, + "to_hit": -1, + "material": [ "nanoprinted_alloy" ], + "symbol": "[", + "looks_like": "mt_chainmail_vest", + "color": "light_red", + "flags": [ "VARSIZE", "STURDY", "OUTER" ], + "armor": [ + { + "material": [ { "type": "nanoprinted_alloy", "covered_by_mat": 100, "thickness": 1.2 } ], + "covers": [ "torso" ], + "coverage": 100, + "encumbrance": 12 + } + ] + }, + { + "id": "xl_nanomesh_vest", + "type": "ARMOR", + "name": { "str": "XL nanomesh_vest" }, + "copy-from": "nanomesh_vest", + "proportional": { "weight": 1.125, "volume": 1.13, "price": 1.25 }, + "extend": { "flags": [ "OVERSIZE" ] } }, { "id": "carbide_cuirass", - "repairs_like": "cuirass_lightplate", "type": "ARMOR", - "copy-from": "cuirass_lightplate", + "category": "armor", "looks_like": "cuirass_lightplate", "name": { "str": "vacuum cast cuirass", "str_pl": "vacuum cast cuirasses" }, "description": "This piece of armor harkens back to renaissance designs. It differs in that it is cast as a single piece in deep space installations where conditions can be controlled absolutely.", - "material": [ "vacuum_carbide" ], - "armor": [ { "encumbrance": 23, "coverage": 95, "covers": [ "torso" ] } ], + "weight": "4200 g", + "volume": "6 L", "price": 300000, "price_postapoc": 300000, - "color": "brown" + "to_hit": -1, + "material": [ "vacuum_carbide" ], + "symbol": "[", + "color": "light_gray", + "warmth": 20, + "longest_side": "60 cm", + "material_thickness": 4, + "flags": [ "VARSIZE", "OUTER", "STURDY" ], + "armor": [ + { "encumbrance": 20, "coverage": 95, "covers": [ "torso" ] }, + { + "encumbrance": 4, + "coverage": 95, + "covers": [ "arm_l", "arm_r" ], + "specifically_covers": [ "arm_shoulder_l", "arm_shoulder_r" ] + }, + { + "encumbrance": 4, + "coverage": 95, + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_hip_l", "leg_hip_r" ] + } + ] + }, + { + "id": "xl_carbide_cuirass", + "type": "ARMOR", + "name": { "str": "XL vacuum cast cuirass", "str_pl": "XL vacuum cast cuirasses" }, + "copy-from": "carbide_cuirass", + "proportional": { "weight": 1.125, "volume": 1.13, "price": 1.25 }, + "flags": [ "VARSIZE", "STURDY", "OVERSIZE", "OUTER" ] + }, + { + "id": "xs_carbide_cuirass", + "type": "ARMOR", + "copy-from": "carbide_cuirass", + "looks_like": "carbide_cuirass", + "material_thickness": 3, + "name": { "str": "XS vacuum cast cuirass", "str_pl": "XS vacuum cast cuirasses" }, + "proportional": { "weight": 0.75, "volume": 0.75, "price": 0.5 }, + "extend": { "flags": [ "UNDERSIZE" ] } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/civilian_blue_collar.json b/data/Mainline_mods/Mods/Aftershock/items/armor/civilian_blue_collar.json new file mode 100644 index 000000000..c1c756ae4 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/civilian_blue_collar.json @@ -0,0 +1,164 @@ +[ + { + "id": "afs_hi_vis_jacket", + "repairs_like": "jacket_windbreaker", + "type": "ARMOR", + "copy-from": "jacket_windbreaker", + "looks_like": "jacket_windbreaker", + "name": { "str": "hi-vis jacket" }, + "description": "Glowing orange and very visible indeed.", + "color": "red", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "750 ml", + "max_contains_weight": "2 kg", + "max_item_length": "20 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "750 ml", + "max_contains_weight": "2 kg", + "max_item_length": "20 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "750 ml", + "max_contains_weight": "2 kg", + "max_item_length": "20 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "750 ml", + "max_contains_weight": "2 kg", + "max_item_length": "20 cm", + "moves": 80 + } + ] + }, + { + "id": "afs_hi_vis_vest", + "type": "ARMOR", + "copy-from": "vest", + "looks_like": "vest", + "name": { "str": "hi-vis vest" }, + "description": "A bright orange winter vest with several front facing pockets. Not even close to warm enough.", + "material": [ "cotton", "plastic" ], + "warmth": 70, + "material_thickness": 2, + "color": "red" + }, + { + "id": "afs_company_jacket", + "type": "ARMOR", + "copy-from": "jacket_windbreaker", + "looks_like": "jacket_windbreaker", + "name": { "str": "company jacket" }, + "description": "A synthetic jacket adorned with the logos and colors of some interstellar corporation. Impermeable, but not very warm.", + "color": "blue" + }, + { + "id": "afs_supervisor_jacket", + "type": "ARMOR", + "copy-from": "jacket_windbreaker", + "looks_like": "jacket_windbreaker", + "name": { "str": "supervisor jacket" }, + "description": "A variant company jacket tailored to slightly recall a business suit, often issued to low level managers. Some might think it looks nicer, but it's just as cheaply made.", + "color": "blue" + }, + { + "id": "afs_work_tie", + "type": "ARMOR", + "copy-from": "tie_skinny", + "looks_like": "tie_skinny", + "name": { "str": "worker's tie" }, + "description": "Calling this thin strip of dark fabric a tie would do it a favour." + }, + { + "id": "spacer_jumpsuit", + "type": "ARMOR", + "copy-from": "jumpsuit", + "looks_like": "jumpsuit", + "name": { "str": "crew jumpsuit" }, + "description": "A lightweight cloth jumpsuit adorned with the faded corporate regalia of some freight hauling association or another. This one is a standard design favored by spacers, with ample, easy access pockets.", + "color": "brown" + }, + { + "id": "spacer_cap", + "type": "ARMOR", + "copy-from": "hat_cotton", + "material": [ "plastic", "cotton" ], + "looks_like": "powered_earmuffs", + "flags": [ "OVERSIZE", "BELTED", "ALLOWS_NATURAL_ATTACKS", "PARTIAL_DEAF" ], + "name": { "str": "communications cap" }, + "description": "A padded cotton cap built around an augmented reality headset. During normal operation it would provide visual information about a ship subsystems and a communications link with the rest of the crew, but severed from a spaceship, only their hearing protection function retains any utility.", + "armor": [ + { "covers": [ "eyes" ], "rigid_layer_only": true, "coverage": 33, "encumbrance": 0 }, + { "covers": [ "head" ], "coverage": 100, "encumbrance": 2 } + ], + "color": "brown" + }, + { + "id": "afs_herc_rig", + "type": "ARMOR", + "name": { "str": "HERC rig" }, + "description": "A lightweight steel-reinforced tool carrier. Keeps your tools safe and about in zero-g, Mars, the bottom of the Pacific, or other generally inhospitable environments. It has several deep pockets, and two mounting points for pressurized canisters or other large magazines.", + "weight": "600 g", + "volume": "10 L", + "looks_like": "tacvest", + "price": 7400, + "price_postapoc": 5000, + "material": [ "steel", "plastic" ], + "symbol": "[", + "color": "dark_gray", + "material_thickness": 2, + "use_action": { "type": "holster", "holster_prompt": "Stash ammo", "holster_msg": "You stash your %s." }, + "pocket_data": [ + { + "max_contains_volume": "2 L", + "max_contains_weight": "6 kg", + "max_item_length": "90 cm", + "moves": 40, + "flag_restriction": [ "BELT_CLIP" ], + "rigid": true, + "holster": true, + "transparent": true + }, + { + "max_contains_volume": "2 L", + "max_contains_weight": "6 kg", + "max_item_length": "90 cm", + "moves": 40, + "flag_restriction": [ "BELT_CLIP" ], + "rigid": true, + "holster": true, + "transparent": true + }, + { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "2 kg", "moves": 60 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "2 kg", "moves": 60 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "2 kg", "moves": 60 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "2 L", "max_contains_weight": "5 kg", "moves": 150 }, + { + "pocket_type": "CONTAINER", + "min_item_volume": "2 L", + "max_contains_volume": "5 L", + "max_contains_weight": "30 kg", + "flag_restriction": [ "MAG_BULKY" ], + "moves": 60 + }, + { + "pocket_type": "CONTAINER", + "min_item_volume": "2 L", + "max_contains_volume": "5 L", + "max_contains_weight": "30 kg", + "flag_restriction": [ "MAG_BULKY" ], + "moves": 60 + } + ], + "flags": [ "WATER_FRIENDLY", "BELTED" ], + "armor": [ { "encumbrance": [ 2, 15 ], "coverage": 20, "covers": [ "torso" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/cyberpunk.json b/data/Mainline_mods/Mods/Aftershock/items/armor/cyberpunk.json new file mode 100644 index 000000000..2b34e97b3 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/cyberpunk.json @@ -0,0 +1,14 @@ +[ + { + "id": "afs_transparent_coat", + "repairs_like": "coat_rain", + "type": "ARMOR", + "copy-from": "coat_rain", + "looks_like": "coat_rain", + "name": { "str": "transparent rain coat" }, + "description": "A mostly transparent raincoat with no pockets. Essential urban wear.", + "color": "white", + "material_thickness": 0.3, + "pocket_data": [ ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_ammo.json b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_ammo.json index 6ac2b895c..205ac6ee7 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_ammo.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_ammo.json @@ -10,7 +10,7 @@ "copy-from": "rebar_rail", "type": "AMMO", "name": { "str": "mining rod" }, - "description": "A surprisingly heavy rod with a tungsten core, this looks like it could pierce a tank. When fired from a mining rod launcher, it will briefly map out the area surounding the impact.", + "description": "A surprisingly heavy rod with a tungsten core, this looks like it could pierce a tank. When fired from a mining rod launcher, it will briefly map out the area surrounding the impact.", "material": [ "carbide", "superalloy" ], "ammo_type": "metal_rail", "color": "light_gray", diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_frame.json b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_frame.json index 44e4f0e3f..db03a5ad2 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_frame.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_frame.json @@ -305,7 +305,7 @@ ], "ammo": "battery", "flags": [ "USE_UPS", "STURDY", "WATERPROOF", "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER", "MUNDANE", "DEAF" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, + "relic_data": { "passive_effects": [ { "id": "ench_exo_strength" }, { "id": "ench_climate_control_all" } ] }, "use_action": [ { "target": "modular_exosuit_on", @@ -333,14 +333,12 @@ "ELECTRIC_IMMUNE", "COMBAT_TOGGLEABLE", "OUTER", - "CLIMATE_CONTROL", "PARTIAL_DEAF", "SUN_GLASSES", "FLASH_PROTECTION" ], "weight_capacity_bonus": "20 kg", - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "STRENGTH", "add": 10 } ] } ] }, - "power_draw": "6173 mJ", + "power_draw": "6173 mW", "revert_to": "modular_exosuit", "use_action": [ { "type": "transform", "menu_text": "Turn off", "msg": "The %s disengages.", "target": "modular_exosuit" } ], "armor": [ diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_melee.json b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_melee.json index a41b5c763..c6741a58c 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_melee.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_melee.json @@ -10,8 +10,6 @@ "weight": "3500 g", "volume": "2750 ml", "longest_side": "120 cm", - "bashing": 30, - "cutting": 45, "techniques": [ "WBLOCK_2", "BRUTAL", "SWEEP" ], "qualities": [ [ "AXE", 2 ], [ "PRY", 3 ], [ "BUTCHER", -30 ] ], "to_hit": { "grip": "weapon", "length": "long", "surface": "line", "balance": "uneven" }, @@ -27,7 +25,8 @@ }, "CROWBAR" ], - "category": "weapons" + "category": "weapons", + "melee_damage": { "bash": 30, "cut": 45 } }, { "id": "scrap_axe", @@ -40,15 +39,14 @@ "weight": "4250 g", "volume": "2750 ml", "longest_side": "120 cm", - "bashing": 30, - "cutting": 35, "techniques": [ "WBLOCK_1", "BRUTAL", "SWEEP" ], "qualities": [ [ "AXE", 2 ], [ "BUTCHER", -30 ] ], "to_hit": { "grip": "solid", "length": "long", "surface": "line", "balance": "uneven" }, "material": [ "budget_steel", "rubber" ], "weapon_category": [ "HOOKING_WEAPONRY", "GREAT_AXES" ], "flags": [ "NONCONDUCTIVE", "SHEATH_AXE", "BELT_CLIP" ], - "category": "weapons" + "category": "weapons", + "melee_damage": { "bash": 30, "cut": 35 } }, { "id": "heavy_drill", @@ -60,8 +58,6 @@ "weight": "45 kg", "volume": "6 L", "longest_side": "90 cm", - "bashing": 50, - "cutting": 5, "sided": true, "techniques": [ "WBLOCK_2", "BRUTAL", "WIDE", "SWEEP" ], "qualities": [ [ "HAMMER", 2 ], [ "DIG", 1 ] ], @@ -88,7 +84,8 @@ "coverage": 100, "encumbrance": 20 } - ] + ], + "melee_damage": { "bash": 50, "cut": 5 } }, { "id": "heavy_drill_on", @@ -96,14 +93,13 @@ "copy-from": "heavy_drill", "name": { "str": "heavy mining drill (on)", "str_pl": "heavy mining drills (on)" }, "description": "This is a portable roadheader, designed to chew through the toughest rock. Currently active, the drill heads are a blur.", - "bashing": 50, - "cutting": 25, "qualities": [ [ "HAMMER", 1 ], [ "DIG", 3 ] ], "extend": { "flags": [ "POWERED", "EXO_LARGE_GADGET" ] }, "to_hit": { "grip": "weapon", "length": "long", "surface": "every", "balance": "clumsy" }, - "power_draw": "1500 mJ", + "power_draw": "1500 mW", "revert_to": "heavy_drill", - "use_action": { "ammo_scale": 0, "target": "heavy_drill", "msg": "You deactivate the drill.", "type": "transform" } + "use_action": { "ammo_scale": 0, "target": "heavy_drill", "msg": "You deactivate the drill.", "type": "transform" }, + "melee_damage": { "bash": 50, "cut": 25 } }, { "id": "exosuit_claw", @@ -115,8 +111,6 @@ "longest_side": "50 cm", "price": 1100, "price_postapoc": 250, - "bashing": 50, - "cutting": 10, "to_hit": { "grip": "weapon", "length": "hand", "surface": "any", "balance": "neutral" }, "material": [ "qt_steel" ], "symbol": "[", @@ -133,7 +127,8 @@ "coverage": 100, "encumbrance": 5 } - ] + ], + "melee_damage": { "bash": 50, "cut": 10 } }, { "id": "exosuit_plasma_torch", @@ -143,8 +138,6 @@ "weight": "8 kg", "volume": "6500 ml", "longest_side": "80 cm", - "bashing": 50, - "cutting": 10, "to_hit": { "grip": "weapon", "length": "short", "surface": "point", "balance": "good" }, "material": [ "qt_steel", "ceramic" ], "symbol": ";", @@ -174,7 +167,8 @@ "coverage": 100, "encumbrance": 15 } - ] + ], + "melee_damage": { "bash": 50, "cut": 10 } }, { "id": "exosuit_power_cutter", @@ -184,8 +178,6 @@ "weight": "10 kg", "volume": "4 L", "to_hit": { "grip": "weapon", "length": "short", "surface": "point", "balance": "good" }, - "bashing": 10, - "cutting": 5, "material": [ "qt_steel", "diamond" ], "symbol": "/", "looks_like": "circsaw_off", @@ -224,7 +216,8 @@ "coverage": 100, "encumbrance": 30 } - ] + ], + "melee_damage": { "bash": 10, "cut": 5 } }, { "id": "exosuit_power_cutter_on", @@ -232,7 +225,6 @@ "type": "TOOL", "name": { "str": "exosuit power cutter (on)", "str_pl": "exosuit power cutters (on)" }, "description": "A huge, multi-fuel powered saw with a diamond blade, currently a whirling blur. It's consuming fuel and can be used as a fantastic tool for cutting metal. You can also use it as a terrifying weapon, if you're into that sort of thing.", - "cutting": 100, "turns_per_charge": 5, "revert_to": "exosuit_power_cutter", "use_action": { @@ -242,6 +234,7 @@ "type": "transform" }, "qualities": [ [ "CUT", 3 ], [ "SAW_M", 20 ], [ "SAW_M_FINE", 1 ], [ "BUTCHER", -80 ] ], - "extend": { "flags": [ "MESSY" ] } + "extend": { "flags": [ "MESSY" ] }, + "melee_damage": { "bash": 10, "cut": 100 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_modules.json b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_modules.json index c89f0f55d..5c8f108ad 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_modules.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_modules.json @@ -162,9 +162,7 @@ "color": "light_gray", "ammo": [ "battery" ], "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_MEDIUM_GADGET", "ONLY_ONE" ], - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] - }, + "relic_data": { "passive_effects": [ { "id": "afs_ench_exo_big_carry" } ] }, "use_action": { "target": "exo_carry_on", "msg": "The %s engages.", @@ -182,10 +180,7 @@ "name": { "str": "exosuit load support module (on)", "str_pl": "exosuit load support modules (on)" }, "description": "This module significantly increases the exosuit's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_MEDIUM_GADGET", "ONLY_ONE" ], - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ] } ] - }, - "power_draw": "1 J", + "power_draw": "1 W", "revert_to": "exo_carry", "use_action": { "ammo_scale": 0, @@ -209,9 +204,7 @@ "color": "light_gray", "ammo": [ "battery" ], "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_SMALL_GADGET" ], - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 10000 } ] } ] - }, + "relic_data": { "passive_effects": [ { "id": "afs_ench_exo_small_carry" } ] }, "use_action": { "target": "exo_small_carry_on", "msg": "The %s engages.", @@ -229,10 +222,7 @@ "name": { "str": "exosuit small load support module (on)", "str_pl": "exosuit small load support modules (on)" }, "description": "This module increases the exosuit's weight bearing at the cost of increased power consumption. It is turned on and continually drawing power. Use it to turn it off.", "flags": [ "FRAGILE", "CANT_WEAR", "WATERPROOF", "USE_UPS", "EXO_SMALL_GADGET" ], - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 10000 } ] } ] - }, - "power_draw": "500 mJ", + "power_draw": "500 mW", "revert_to": "exo_small_carry", "use_action": { "ammo_scale": 0, @@ -251,11 +241,11 @@ "volume": "250 ml", "price": "10 kUSD", "to_hit": -2, - "bashing": 6, "material": [ "lvl4ballisticglass", "qt_steel" ], "symbol": "(", "color": "yellow", - "flags": [ "CANT_WEAR", "FIX_NEARSIGHT", "FIX_FARSIGHT", "ZOOM", "EXO_HELMET_GADGET" ] + "flags": [ "CANT_WEAR", "FIX_NEARSIGHT", "FIX_FARSIGHT", "ZOOM", "EXO_HELMET_GADGET" ], + "melee_damage": { "bash": 6 } }, { "id": "exo_flashlight", @@ -285,7 +275,7 @@ "copy-from": "exo_flashlight", "type": "TOOL", "name": { "str": "mounted lamp (low)", "str_pl": "mounted lamps (low)" }, - "power_draw": "1 J", + "power_draw": "1 W", "revert_to": "exo_flashlight", "use_action": { "ammo_scale": 0, @@ -301,7 +291,7 @@ "copy-from": "exo_flashlight", "type": "TOOL", "name": { "str": "mounted lamp (high)", "str_pl": "mounted lamps (high)" }, - "power_draw": "2 J", + "power_draw": "2 W", "revert_to": "exo_flashlight", "use_action": { "ammo_scale": 0, @@ -334,16 +324,14 @@ "need_charges": 1, "need_charges_msg": "There is not enough charge to activate the module." }, - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] - } + "relic_data": { "passive_effects": [ { "id": "afs_ench_exo_recoil" } ] } }, { "id": "exo_recoil_on", "copy-from": "exo_recoil", "type": "TOOL", "name": { "str": "recoil mitigation system (on)", "str_pl": "recoil mitigation systems (on)" }, - "power_draw": "2 J", + "power_draw": "2 W", "revert_to": "exo_recoil", "use_action": { "ammo_scale": 0, @@ -352,10 +340,7 @@ "msg": "You turn off the recoil mitigation system.", "target": "exo_recoil" }, - "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ], - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "WEAPON_DISPERSION", "add": -50 } ] } ] - } + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_SMALL_GADGET", "ONLY_ONE" ] }, { "id": "exo_bio_oxygen", @@ -424,8 +409,7 @@ "msg": "You deactivate your %s.", "target": "exo_bio_oxygen", "need_charges_msg": "The %s's tank is exhausted." - }, - "relic_data": { "charge_info": { "regenerate_ammo": true, "recharge_type": "periodic", "time": "30 s" } } + } }, { "id": "exo_imager", @@ -436,13 +420,13 @@ "volume": "250 ml", "price": "10 kUSD", "to_hit": -2, - "bashing": 6, "material": [ "plastic", "qt_steel" ], "symbol": "(", "color": "yellow", "charges_per_use": 50, "use_action": { "type": "cast_spell", "spell_id": "afs_clairvoyance_cone", "no_fail": true, "level": 5 }, - "flags": [ "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET" ] + "flags": [ "USE_UPS", "CANT_WEAR", "EXO_HELMET_GADGET" ], + "melee_damage": { "bash": 6 } }, { "id": "exo_climb", @@ -458,7 +442,17 @@ "color": "light_gray", "armor": [ { "encumbrance": 5, "covers": [ "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] } ], "flags": [ "CANT_WEAR", "EXO_MEDIUM_GADGET" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "mutations": [ "exo_climb_mutation" ] } ] } + "relic_data": { + "passive_effects": [ + { + "name": { "str": "Climbing Assist" }, + "description": "Additional climbing gear allows you to scale walls.", + "has": "WORN", + "condition": "ALWAYS", + "mutations": [ "exo_climb_mutation" ] + } + ] + } }, { "id": "exo_jetpack", @@ -469,7 +463,6 @@ "volume": "10 L", "price": "10 kUSD", "to_hit": -2, - "bashing": 6, "material": [ "vacuum_carbide", "qt_steel" ], "symbol": "(", "color": "light_gray", @@ -485,7 +478,8 @@ "watertight": true, "ammo_restriction": { "ammonia_liquid": 10 } } - ] + ], + "melee_damage": { "bash": 6 } }, { "id": "exo_forcefield", @@ -496,7 +490,6 @@ "volume": "2500 ml", "price": "10 kUSD", "to_hit": -2, - "bashing": 6, "material": [ "vacuum_carbide", "qt_steel" ], "symbol": "(", "color": "light_gray", @@ -509,7 +502,8 @@ "active": true, "need_charges": 1, "need_charges_msg": "There is not enough charge to activate the module." - } + }, + "melee_damage": { "bash": 6 } }, { "id": "exo_forcefield_bash_cut", @@ -520,29 +514,21 @@ "volume": "2500 ml", "price": "10 kUSD", "to_hit": -2, - "bashing": 6, "material": [ "vacuum_carbide", "qt_steel" ], "symbol": "(", "color": "light_gray", - "power_draw": "5 J", + "power_draw": "5 W", "revert_to": "exo_forcefield", "flags": [ "CANT_WEAR", "ONLY_ONE", "EXO_MEDIUM_GADGET", "USE_UPS" ], - "relic_data": { - "passive_effects": [ - { - "has": "HELD", - "condition": "ALWAYS", - "values": [ { "value": "ARMOR_BASH", "add": -25 }, { "value": "ARMOR_CUT", "add": -25 } ] - } - ] - }, + "relic_data": { "passive_effects": [ { "id": "afs_ench_exo_forcefield_bash_cut" } ] }, "use_action": { "ammo_scale": 0, "menu_text": "Turn to kinetic/pierce", "type": "transform", "msg": "You toggle the forcefield to protect against ballistic and pierce.", "target": "exo_forcefield_ballistic_pierce" - } + }, + "melee_damage": { "bash": 6 } }, { "id": "exo_forcefield_ballistic_pierce", @@ -556,29 +542,21 @@ "volume": "2500 ml", "price": "10 kUSD", "to_hit": -2, - "bashing": 6, "material": [ "vacuum_carbide", "qt_steel" ], "symbol": "(", "color": "light_gray", - "power_draw": "5 J", + "power_draw": "5 W", "revert_to": "exo_forcefield", "flags": [ "CANT_WEAR", "ONLY_ONE", "EXO_MEDIUM_GADGET", "USE_UPS" ], - "relic_data": { - "passive_effects": [ - { - "has": "HELD", - "condition": "ALWAYS", - "values": [ { "value": "ARMOR_BULLET", "add": -40 }, { "value": "ARMOR_STAB", "add": -40 } ] - } - ] - }, + "relic_data": { "passive_effects": [ { "id": "afs_ench_exo_forcefield_ballistic_pierce" } ] }, "use_action": { "ammo_scale": 0, "menu_text": "Turn off", "type": "transform", "msg": "You deactivate the forcefield module.", "target": "exo_forcefield" - } + }, + "melee_damage": { "bash": 6 } }, { "id": "exosuit_med_injector", @@ -666,9 +644,7 @@ "symbol": "(", "color": "yellow", "flags": [ "CANT_WEAR", "EXO_HELMET_GADGET" ], - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "LEARNING_FOCUS", "add": 15 } ] } ] - }, + "relic_data": { "passive_effects": [ { "id": "afs_ench_exo_AR_module" } ] }, "use_action": { "target": "exo_AR_module_on", "msg": "The %s engages.", @@ -684,7 +660,7 @@ "type": "TOOL", "copy-from": "exo_AR_module", "name": { "str": "exosuit AR research module (on)", "str_pl": "exosuit AR research modules (on)" }, - "power_draw": "250 mJ", + "power_draw": "250 mW", "revert_to": "exo_AR_module", "use_action": { "ammo_scale": 0, diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_mutations.json b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_mutations.json index 57a7aae2f..9fec47e81 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_mutations.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_mutations.json @@ -8,6 +8,6 @@ "valid": false, "purifiable": false, "types": [ "Equipment" ], - "flags": "wall_cling" + "flags": "WALL_CLING" } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_ranged.json b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_ranged.json index 40522b47a..5ee7d8b95 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_ranged.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_ranged.json @@ -47,7 +47,7 @@ "category": "exosuit", "name": { "str": "exosuit microwave cannon" }, "description": "A 'less-lethal' weapon mounted on the shoulder of an exosuit. Causes a painful burning sensation as water molecules are turned to high temperature vapor. Infamous for it's use by UICA forces used it to break up protests, the effectiveness can be hard to predict due to variables like the moisture in the air and protective layers on the target.", - "weight": "7500 kg", + "weight": "7500 g", "volume": "10 L", "longest_side": "100 cm", "material": [ "qt_steel", "ceramic" ], diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_recipes.json b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_recipes.json index 479b25d77..9ea180c82 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_recipes.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_recipes.json @@ -17,7 +17,7 @@ { "proficiency": "prof_armorsmithing" }, { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_quenching", "fail_multiplier": 2 } + { "proficiency": "prof_quenching", "skill_penalty": 1 } ] }, { @@ -38,7 +38,7 @@ { "proficiency": "prof_armorsmithing" }, { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_quenching", "fail_multiplier": 2 } + { "proficiency": "prof_quenching", "skill_penalty": 1 } ] }, { @@ -59,7 +59,7 @@ { "proficiency": "prof_armorsmithing" }, { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_quenching", "fail_multiplier": 2 } + { "proficiency": "prof_quenching", "skill_penalty": 1 } ] }, { @@ -80,7 +80,7 @@ { "proficiency": "prof_armorsmithing" }, { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_quenching", "fail_multiplier": 2 } + { "proficiency": "prof_quenching", "skill_penalty": 1 } ] }, { diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_storage.json b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_storage.json index 82b45ccb0..e142207e7 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_storage.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_storage.json @@ -11,7 +11,7 @@ "weight": "500 g", "volume": "2 L", "material": [ "qt_steel" ], - "flags": [ "WATER_FRIENDLY", "NO_QUICKDRAW", "BELTED", "EXO_LARGE_GADGET" ] + "flags": [ "WATER_FRIENDLY", "BELTED", "EXO_LARGE_GADGET" ] }, { "id": "exo_melee_storage", @@ -31,7 +31,6 @@ "id": "exo_large_storage", "type": "ARMOR", "copy-from": "backpack_tactical_large", - "repairs_like": "backpack_tactical_large", "looks_like": "backpack", "color": "light_gray", "symbol": "[", @@ -46,7 +45,6 @@ "id": "exo_medium_storage", "type": "ARMOR", "copy-from": "fanny", - "repairs_like": "fanny", "looks_like": "holster", "color": "green", "symbol": "[", @@ -62,7 +60,6 @@ "type": "ARMOR", "copy-from": "leather_pouch", "looks_like": "holster", - "repairs_like": "fanny", "symbol": "[", "color": "green", "name": { "str": "small pouch (exosuit)", "str_pl": "small pouches (exosuit)" }, diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_tool.json b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_tool.json index 814fe8dfd..763019fd6 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_tool.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_tool.json @@ -8,8 +8,6 @@ "longest_side": "25 cm", "price": 1000, "price_postapoc": 100, - "bashing": 2, - "cutting": 6, "material": [ "qt_steel" ], "symbol": ",", "color": "light_gray", @@ -32,6 +30,7 @@ "default_magazine": "afs_cartridge" } ], - "flags": [ "ALLOWS_REMOTE_USE", "WATER_BREAK", "USE_UPS" ] + "flags": [ "ALLOWS_REMOTE_USE", "WATER_BREAK", "USE_UPS" ], + "melee_damage": { "bash": 2, "cut": 6 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_underlayers.json b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_underlayers.json index 2740000cf..430c3df17 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_underlayers.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/exosuit/exosuit_underlayers.json @@ -1,7 +1,6 @@ [ { "id": "afs_exo_standard_underlayer", - "repairs_like": "thermal_suit", "type": "TOOL_ARMOR", "copy-from": "jumpsuit", "looks_like": "robofac_enviro_suit", @@ -28,20 +27,11 @@ } ], "warmth": 10, - "flags": [ "EXO_UNDERLAYER", "CANT_WEAR", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE", "SOFT", "CLIMATE_CONTROL" ], - "relic_data": { - "passive_effects": [ - { - "has": "WORN", - "condition": "ALWAYS", - "values": [ { "value": "ITEM_ENCUMBRANCE", "add": -10 }, { "value": "ARMOR_COLD", "multiply": -0.25 } ] - } - ] - } + "flags": [ "EXO_UNDERLAYER", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE", "SOFT" ], + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_all_permanent" }, { "id": "ench_cold_armor" } ] } }, { "id": "afs_exo_combat_underlayer", - "repairs_like": "thermal_suit", "type": "TOOL_ARMOR", "copy-from": "jumpsuit", "looks_like": "robofac_enviro_suit", @@ -76,20 +66,11 @@ } ], "warmth": 10, - "flags": [ "EXO_UNDERLAYER", "CANT_WEAR", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE", "SOFT", "CLIMATE_CONTROL" ], - "relic_data": { - "passive_effects": [ - { - "has": "WORN", - "condition": "ALWAYS", - "values": [ { "value": "ITEM_ENCUMBRANCE", "add": -10 }, { "value": "ARMOR_COLD", "multiply": -0.25 } ] - } - ] - } + "flags": [ "EXO_UNDERLAYER", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE", "SOFT" ], + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_all_permanent_improved" }, { "id": "ench_cold_armor" } ] } }, { "id": "afs_exo_eva_underlayer", - "repairs_like": "thermal_suit", "type": "TOOL_ARMOR", "copy-from": "jumpsuit", "looks_like": "robofac_enviro_suit", @@ -99,7 +80,7 @@ "volume": "3500 ml", "color": "brown", "material": [ "nomex", "nanoprinted_alloy" ], - "environmental_protection": 15, + "environmental_protection": 100, "armor": [ { "material": [ { "type": "lvl4ballisticglass", "covered_by_mat": 100, "thickness": 3 } ], @@ -116,31 +97,11 @@ } ], "warmth": 10, - "flags": [ - "EXO_UNDERLAYER", - "CANT_WEAR", - "SKINTIGHT", - "WATERPROOF", - "POWERARMOR_COMPATIBLE", - "SOFT", - "GAS_PROOF", - "RAD_RESIST", - "RAINPROOF", - "CLIMATE_CONTROL" - ], - "relic_data": { - "passive_effects": [ - { - "has": "WORN", - "condition": "ALWAYS", - "values": [ { "value": "ITEM_ENCUMBRANCE", "add": -10 }, { "value": "ARMOR_COLD", "multiply": -0.25 } ] - } - ] - } + "flags": [ "EXO_UNDERLAYER", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE", "SOFT", "GAS_PROOF", "RAD_RESIST", "RAINPROOF" ], + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_all_permanent_space" }, { "id": "ench_cold_armor" } ] } }, { "id": "afs_exo_hazard_underlayer", - "repairs_like": "thermal_suit", "type": "TOOL_ARMOR", "copy-from": "jumpsuit", "looks_like": "robofac_enviro_suit", @@ -175,26 +136,7 @@ } ], "warmth": 10, - "flags": [ - "EXO_UNDERLAYER", - "CANT_WEAR", - "SKINTIGHT", - "WATERPROOF", - "POWERARMOR_COMPATIBLE", - "SOFT", - "GAS_PROOF", - "RAD_RESIST", - "RAINPROOF", - "CLIMATE_CONTROL" - ], - "relic_data": { - "passive_effects": [ - { - "has": "WORN", - "condition": "ALWAYS", - "values": [ { "value": "ITEM_ENCUMBRANCE", "add": -10 }, { "value": "ARMOR_COLD", "multiply": -0.25 } ] - } - ] - } + "flags": [ "EXO_UNDERLAYER", "SKINTIGHT", "WATERPROOF", "POWERARMOR_COMPATIBLE", "SOFT", "GAS_PROOF", "RAD_RESIST", "RAINPROOF" ], + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_all_permanent_greater" }, { "id": "ench_cold_armor" } ] } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/winter_masks.json b/data/Mainline_mods/Mods/Aftershock/items/armor/winter_masks.json index 994d2ffcb..156113943 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/winter_masks.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/winter_masks.json @@ -1,7 +1,6 @@ [ { "id": "afs_magellan_suit_helmet", - "repairs_like": "afs_magellan_suit", "type": "TOOL_ARMOR", "category": "armor", "looks_like": "helmet_motor", @@ -11,7 +10,6 @@ "volume": "2250 ml", "price": "750 USD", "to_hit": -1, - "bashing": 7, "material": [ "plastic", "nomex" ], "symbol": "[", "color": "dark_gray", @@ -30,6 +28,7 @@ { "covers": [ "eyes" ], "rigid_layer_only": true, "coverage": 100, "encumbrance": 5 }, { "covers": [ "mouth" ], "rigid_layer_only": true, "coverage": 100, "encumbrance": 15 } ], + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_warm" } ] }, "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1000 } } ], "warmth": 10, "material_thickness": 6, @@ -46,28 +45,25 @@ "RECHARGE", "NO_RELOAD", "NO_UNLOAD" - ] + ], + "melee_damage": { "bash": 7 } }, { "id": "afs_magellan_suit_helmet_on", "copy-from": "afs_magellan_suit_helmet", - "repairs_like": "afs_magellan_suit", "type": "TOOL_ARMOR", "name": { "str": "Magellan helmet CA. (on)", "str_pl": "Magellan helmets CA. (on)" }, "looks_like": "helmet_motor", "description": "The temperature control units and augmented reality overlays of this high-tech garment are currently active, and continuously draining battery power. Use it to turn them off.", - "power_draw": "8170 mJ", + "power_draw": "8170 mW", "warmth": 150, "revert_to": "afs_magellan_suit_helmet", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "afs_magellan_suit_helmet" }, - "extend": { - "flags": [ "CLIMATE_CONTROL", "GAS_PROOF", "WATCH", "ALARMCLOCK", "THERMOMETER", "HYGROMETER", "PARTIAL_DEAF", "TRADER_AVOID" ] - }, + "extend": { "flags": [ "GAS_PROOF", "WATCH", "ALARMCLOCK", "THERMOMETER", "HYGROMETER", "PARTIAL_DEAF", "TRADER_AVOID" ] }, "environmental_protection": 15 }, { "id": "afs_frontier_cryomask", - "repairs_like": "nomex_hood", "type": "TOOL_ARMOR", "category": "armor", "looks_like": "helmet_motor", @@ -77,7 +73,6 @@ "volume": "2250 ml", "price": "750 USD", "to_hit": -1, - "bashing": 7, "material": [ "plastic", "nomex" ], "symbol": "[", "color": "dark_gray", @@ -95,6 +90,7 @@ { "covers": [ "eyes" ], "rigid_layer_only": true, "coverage": 100, "encumbrance": 15 }, { "covers": [ "mouth" ], "rigid_layer_only": true, "coverage": 100, "encumbrance": 20 } ], + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_warm" } ] }, "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", @@ -106,20 +102,19 @@ "warmth": 5, "material_thickness": 2, "environmental_protection": 2, - "flags": [ "VARSIZE", "WATERPROOF", "RAINPROOF", "STURDY", "SUN_GLASSES", "OUTER" ] + "flags": [ "VARSIZE", "WATERPROOF", "RAINPROOF", "STURDY", "SUN_GLASSES", "OUTER" ], + "melee_damage": { "bash": 7 } }, { "id": "afs_frontier_cryomask_on", "copy-from": "afs_frontier_cryomask", - "repairs_like": "afs_frontier_cryomask", "type": "TOOL_ARMOR", "name": { "str": "frontier cryomask (on)", "str_pl": "frontier cryomasks (on)" }, "looks_like": "helmet_motor", "description": "The heater of this high-tech garment is currently active, and continuously draining battery power. Use it to turn the heat off.", - "power_draw": "6944 mJ", + "power_draw": "6944 mW", "warmth": 150, "revert_to": "afs_frontier_cryomask", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "afs_frontier_cryomask" }, - "extend": { "flags": [ "CLIMATE_CONTROL" ] } + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "afs_frontier_cryomask" } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor/winter_suits.json b/data/Mainline_mods/Mods/Aftershock/items/armor/winter_suits.json index c08a724d4..6e1ca97c7 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor/winter_suits.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor/winter_suits.json @@ -29,6 +29,7 @@ { "covers": [ "hand_l", "hand_r" ], "coverage": 100, "encumbrance": 10 }, { "covers": [ "foot_l", "foot_r" ], "coverage": 100, "encumbrance": 15 } ], + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_warm" } ] }, "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1000 } } ], "warmth": 20, "material_thickness": 2, @@ -56,11 +57,10 @@ "name": { "str": "Magellan exosuit (on)", "str_pl": "Magellan exosuits (on)" }, "looks_like": "afs_cryopod_bodyglove", "description": "The temperature control units of this high-tech garment are currently active, and continuously draining battery power. Use it to turn them off.", - "power_draw": "8170 mJ", + "power_draw": "8170 mW", "warmth": 150, "revert_to": "afs_magellan_suit", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "afs_magellan_suit" }, - "extend": { "flags": [ "CLIMATE_CONTROL" ] } + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "afs_magellan_suit" } }, { "id": "afs_frontier_cryo", @@ -93,6 +93,7 @@ { "covers": [ "hand_l", "hand_r" ], "coverage": 100, "encumbrance": 25 }, { "covers": [ "foot_l", "foot_r" ], "coverage": 100, "encumbrance": 15 } ], + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_warm" } ] }, "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", @@ -115,10 +116,9 @@ "name": { "str": "frontier cryo suit (on)", "str_pl": "frontier cryo suits (on)" }, "looks_like": "afs_cryopod_bodyglove", "description": "The temperature control units of this high-tech garment are currently active, and continuously draining battery power. Use it to turn them off.", - "power_draw": "6944 mJ", + "power_draw": "6944 mW", "warmth": 150, "revert_to": "afs_frontier_cryo", - "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "afs_frontier_cryo" }, - "extend": { "flags": [ "CLIMATE_CONTROL" ] } + "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "afs_frontier_cryo" } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/armor_helmets.json b/data/Mainline_mods/Mods/Aftershock/items/armor_helmets.json index e22f85a97..8d102bc3e 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/armor_helmets.json +++ b/data/Mainline_mods/Mods/Aftershock/items/armor_helmets.json @@ -9,7 +9,6 @@ "volume": "2750 ml", "price": 40000, "price_postapoc": 285000, - "bashing": 10, "material": [ "vacuum_carbide" ], "symbol": "[", "looks_like": "helmet_barbute", @@ -23,7 +22,8 @@ "material_thickness": 5, "environmental_protection": 1, "techniques": [ "WBLOCK_1" ], - "flags": [ "VARSIZE", "STURDY" ] + "flags": [ "VARSIZE", "STURDY", "PADDED" ], + "melee_damage": { "bash": 10 } }, { "id": "tac_fullhelmet_uicas", @@ -37,7 +37,6 @@ "price": 50000, "price_postapoc": 150000, "to_hit": -1, - "bashing": 10, "material": [ "nanoprinted_alloy" ], "symbol": "[", "looks_like": "helmet_motor", @@ -51,11 +50,13 @@ "material_thickness": 5, "environmental_protection": 2, "techniques": [ "WBLOCK_1" ], - "flags": [ "VARSIZE", "STURDY", "SUN_GLASSES" ], + "flags": [ "VARSIZE", "STURDY", "PADDED", "SUN_GLASSES" ], "environmental_protection_with_filter": 16, "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "gasfilter_m": 100 } } ], "ammo": "gasfilter_m", - "use_action": [ "GASMASK" ] + "use_action": [ "GASMASK_ACTIVATE" ], + "tick_action": [ "GASMASK" ], + "melee_damage": { "bash": 10 } }, { "id": "tac_helmet_uicas", @@ -69,7 +70,6 @@ "price": 37000, "price_postapoc": 75000, "to_hit": -1, - "bashing": 10, "material": [ "nanoprinted_alloy" ], "symbol": "[", "looks_like": "tac_fullhelmet", @@ -78,6 +78,7 @@ "warmth": 10, "material_thickness": 4, "techniques": [ "WBLOCK_1" ], - "flags": [ "WATER_FRIENDLY", "STURDY" ] + "flags": [ "WATER_FRIENDLY", "STURDY", "PADDED" ], + "melee_damage": { "bash": 10 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/bionics_mainline_override.json b/data/Mainline_mods/Mods/Aftershock/items/bionics_mainline_override.json new file mode 100644 index 000000000..5cc57c7eb --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/bionics_mainline_override.json @@ -0,0 +1,323 @@ +[ + { + "id": "bio_alarm", + "copy-from": "bio_alarm", + "type": "BIONIC_ITEM", + "name": { "str": "Alarm System CBM" }, + "installation_data": "AID_bio_alarm" + }, + { + "id": "bio_armor_arms", + "copy-from": "bio_armor_arms", + "type": "BIONIC_ITEM", + "name": { "str": "Arms Alloy Plating CBM" }, + "installation_data": "AID_bio_armor_arms" + }, + { + "id": "bio_armor_legs", + "copy-from": "bio_armor_legs", + "type": "BIONIC_ITEM", + "name": { "str": "Legs Alloy Plating CBM" }, + "installation_data": "AID_bio_armor_legs" + }, + { + "id": "bio_shotgun", + "copy-from": "bio_shotgun", + "type": "BIONIC_ITEM", + "name": { "str": "Shotgun Arm CBM" }, + "installation_data": "AID_bio_shotgun" + }, + { + "id": "bio_blood_anal", + "copy-from": "bio_blood_anal", + "type": "BIONIC_ITEM", + "name": { "str": "Blood Analysis CBM" }, + "installation_data": "AID_bio_blood_anal" + }, + { + "id": "bio_blood_filter", + "copy-from": "bio_blood_filter", + "type": "BIONIC_ITEM", + "name": { "str": "Blood Filter CBM" }, + "installation_data": "AID_bio_blood_filter" + }, + { + "id": "bio_climate", + "copy-from": "bio_climate", + "type": "BIONIC_ITEM", + "name": { "str": "Internal Climate Control CBM" }, + "installation_data": "AID_bio_climate" + }, + { + "id": "bio_flashlight", + "copy-from": "bio_flashlight", + "type": "BIONIC_ITEM", + "name": { "str": "Cranial Flashlight CBM" }, + "installation_data": "AID_bio_flashlight" + }, + { + "id": "bio_tattoo_led", + "copy-from": "bio_tattoo_led", + "type": "BIONIC_ITEM", + "name": { "str": "LED Tattoo CBM" }, + "installation_data": "AID_bio_tattoo_led" + }, + { + "id": "bio_geiger", + "copy-from": "bio_geiger", + "type": "BIONIC_ITEM", + "name": { "str": "Integrated Dosimeter CBM" }, + "installation_data": "AID_bio_geiger" + }, + { + "id": "bio_heatsink", + "copy-from": "bio_heatsink", + "type": "BIONIC_ITEM", + "name": { "str": "Thermal Dissipation CBM" }, + "installation_data": "AID_bio_heatsink" + }, + { + "id": "bio_magnet", + "copy-from": "bio_magnet", + "type": "BIONIC_ITEM", + "name": { "str": "Electromagnetic Unit CBM" }, + "installation_data": "AID_bio_magnet" + }, + { + "id": "bio_meteorologist", + "copy-from": "bio_meteorologist", + "type": "BIONIC_ITEM", + "name": { "str": "Weather Reader CBM" }, + "installation_data": "AID_bio_meteorologist" + }, + { + "id": "bio_power_storage", + "copy-from": "bio_power_storage", + "type": "BIONIC_ITEM", + "name": { "str": "Power Storage CBM" }, + "installation_data": "AID_bio_power_storage" + }, + { + "id": "bio_power_storage_mkII", + "copy-from": "bio_power_storage_mkII", + "type": "BIONIC_ITEM", + "name": { "str": "Power Storage Mk. II CBM" }, + "installation_data": "AID_bio_power_storage_mkII" + }, + { + "id": "bio_ups", + "copy-from": "bio_ups", + "type": "BIONIC_ITEM", + "name": { "str": "Unified Power System CBM" }, + "installation_data": "AID_bio_ups" + }, + { + "id": "bio_watch", + "copy-from": "bio_watch", + "type": "BIONIC_ITEM", + "name": { "str": "Internal Chronometer CBM" }, + "installation_data": "AID_bio_watch" + }, + { + "id": "bio_syringe", + "copy-from": "bio_syringe", + "type": "BIONIC_ITEM", + "name": { "str": "Intravenous Needletip CBM" }, + "installation_data": "AID_bio_syringe" + }, + { + "id": "bio_weight", + "copy-from": "bio_weight", + "type": "BIONIC_ITEM", + "name": { "str": "Titanium Skeletal Bracing CBM" }, + "installation_data": "AID_bio_weight" + }, + { + "id": "bio_soporific", + "copy-from": "bio_soporific", + "type": "BIONIC_ITEM", + "name": { "str": "Soporific Induction CBM" }, + "installation_data": "AID_bio_soporific" + }, + { + "id": "bio_trickle", + "copy-from": "bio_trickle", + "type": "BIONIC_ITEM", + "name": { "str": "Trickle Charger CBM" }, + "installation_data": "AID_bio_trickle" + }, + { + "id": "bio_pitch_perfect", + "copy-from": "bio_pitch_perfect", + "type": "BIONIC_ITEM", + "name": { "str": "Throwing Assist CBM" }, + "installation_data": "AID_bio_pitch_perfect" + }, + { + "abstract": "AID_abstract", + "type": "GENERIC", + "name": { "str": "abstract Autodoc installation data" }, + "material": [ "plastic" ], + "symbol": "#", + "weight": "35 g", + "volume": "50 ml", + "price": "200 USD", + "price_postapoc": "50 USD", + "looks_like": "data_card", + "flags": [ "BIONIC_INSTALLATION_DATA" ] + }, + { + "id": "AID_bio_alarm", + "copy-from": "AID_abstract", + "type": "GENERIC", + "name": { "str_sp": "Alarm System CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Alarm System CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_tattoo_led", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "LED Tattoo CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an LED Tattoo CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_power_storage", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Power Storage CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Power Storage CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_power_storage_mkII", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Power Storage CBM Mk. II installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Power Storage CBM Mk. II, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_watch", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Internal Chronometer CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Internal Chronometer CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_syringe", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Intravenous Needletip CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Intravenous Needletip CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_blood_anal", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Blood Analysis CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Blood Analysis CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_flashlight", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Cranial Flashlight CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Cranial Flashlight CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_magnet", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Electromagnetic Unit CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Electromagnetic Unit CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_soporific", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Soporific Induction CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Soporific Induction CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_armor_arms", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Arms Alloy Plating CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Arms Alloy Plating CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_armor_legs", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Legs Alloy Plating CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Legs Alloy Plating CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_shotgun", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Shotgun Arm CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Shotgun Arm CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_blood_filter", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Blood Filter CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Blood Filter CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_climate", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Internal Climate Control CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Internal Climate Control CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_geiger", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Integrated Dosimeter CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Integrated Dosimeter CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_heatsink", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Thermal Dissipation CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Thermal Dissipation CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_meteorologist", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Weather Reader CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Weather Reader CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_ups", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Unified Power System CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Unified Power System CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_weight", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Titanium Skeletal Bracing CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Titanium Skeletal Bracing CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_trickle", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Trickle Charger CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Trickle Charger CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_pitch_perfect", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Throwing Assist CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Throwing Assist CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/bioparts.json b/data/Mainline_mods/Mods/Aftershock/items/bioparts.json index f0c03ec3e..a995d125a 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/bioparts.json +++ b/data/Mainline_mods/Mods/Aftershock/items/bioparts.json @@ -9,11 +9,11 @@ "volume": "3 L", "price": 100, "to_hit": -1, - "bashing": 5, "material": [ "alien_resin" ], "symbol": ")", "color": "pink", - "looks_like": "fluid_preserved_brain" + "looks_like": "fluid_preserved_brain", + "melee_damage": { "bash": 5 } }, { "id": "humming_heart", @@ -25,11 +25,11 @@ "volume": "1 L", "price": 100, "to_hit": -1, - "bashing": 5, "material": [ "flesh" ], "symbol": ")", "color": "pink", - "looks_like": "jabberwock_heart" + "looks_like": "jabberwock_heart", + "melee_damage": { "bash": 5 } }, { "id": "sensory_cluster", @@ -41,11 +41,11 @@ "volume": "250 ml", "price": 100, "to_hit": -1, - "bashing": 1, "material": [ "alien_resin" ], "symbol": ")", "color": "pink", - "looks_like": "kidney" + "looks_like": "kidney", + "melee_damage": { "bash": 1 } }, { "id": "bioweapon_chassis", @@ -57,11 +57,11 @@ "volume": "25 L", "price": 100, "to_hit": -3, - "bashing": 7, "material": [ "alien_resin" ], "symbol": ")", "color": "pink", - "looks_like": "ruined_chunks" + "looks_like": "ruined_chunks", + "melee_damage": { "bash": 7 } }, { "type": "GENERIC", @@ -75,10 +75,9 @@ "material": [ "alien_resin", "flesh" ], "weight": "40750 g", "volume": "30 L", - "bashing": 6, - "cutting": 6, "to_hit": -3, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 6, "cut": 6 } }, { "id": "vibrating_blaster", @@ -91,7 +90,6 @@ "price": 400000, "ammo": [ "acidic_bore" ], "to_hit": -1, - "bashing": 4, "material": [ "alien_resin" ], "symbol": "(", "color": "magenta", @@ -104,6 +102,7 @@ "clip_size": 80, "ammo_effects": "ACID", "flags": [ "NO_UNLOAD", "NON_FOULING" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "acidic_bore": 80 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "acidic_bore": 80 } } ], + "melee_damage": { "bash": 4 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/books.json b/data/Mainline_mods/Mods/Aftershock/items/books.json index ccf1cf1e1..5d094c88e 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/books.json +++ b/data/Mainline_mods/Mods/Aftershock/items/books.json @@ -58,7 +58,6 @@ "weight": "2063 g", "volume": "2 L", "price": 9200, - "bashing": 8, "material": [ "paper" ], "symbol": "?", "looks_like": "adv_chemistry", @@ -68,7 +67,8 @@ "max_level": 7, "intelligence": 13, "fun": -1, - "time": "50 m" + "time": "50 m", + "melee_damage": { "bash": 8 } }, { "id": "afs_bugbrew_book", @@ -126,6 +126,27 @@ "description": "Bearing the logo of Honda, those are assembly plans, design specs, and technical drawings for the tripod. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.", "copy-from": "schematics_generic" }, + { + "id": "schematics_eyebot", + "type": "BOOK", + "name": { "str_sp": "eyebot schematics" }, + "description": "Assembly plans, design specs, and technical drawings for the eyebot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.", + "copy-from": "schematics_generic" + }, + { + "id": "schematics_copbot", + "type": "BOOK", + "name": { "str_sp": "police bot schematics" }, + "description": "Assembly plans, design specs, and technical drawings for the police bot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.", + "copy-from": "schematics_generic" + }, + { + "id": "schematics_riotbot", + "type": "BOOK", + "name": { "str_sp": "riot control bot schematics" }, + "description": "Assembly plans, design specs, and technical drawings for the riot control bot. Most of this is useless to you, but you could use the assembly plans to re-assemble the robot from salvaged parts.", + "copy-from": "schematics_generic" + }, { "id": "afs_landfall_kit_2_instructions", "type": "BOOK", @@ -154,7 +175,6 @@ "weight": "2063 g", "volume": "2 L", "price": 929200, - "bashing": 8, "material": [ "paper" ], "symbol": "?", "looks_like": "adv_chemistry", @@ -164,7 +184,8 @@ "max_level": 9, "intelligence": 13, "fun": -3, - "time": "50 m" + "time": "50 m", + "melee_damage": { "bash": 8 } }, { "id": "recipe_uplift", @@ -247,7 +268,6 @@ "weight": "2063 g", "volume": "2 L", "price": 9200, - "bashing": 8, "material": [ "paper" ], "symbol": "?", "looks_like": "adv_chemistry", @@ -257,7 +277,8 @@ "max_level": 3, "intelligence": 9, "fun": 1, - "time": "50 m" + "time": "50 m", + "melee_damage": { "bash": 8 } }, { "id": "recipe_lichenlog", diff --git a/data/Mainline_mods/Mods/Aftershock/items/casing.json b/data/Mainline_mods/Mods/Aftershock/items/casing.json index 581288094..beb75392d 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/casing.json +++ b/data/Mainline_mods/Mods/Aftershock/items/casing.json @@ -11,5 +11,17 @@ "symbol": "=", "stackable": true, "color": "dark_gray" + }, + { + "id": "afs_5x50_hull", + "copy-from": "casing", + "looks_like": "9mm_casing", + "type": "GENERIC", + "name": { "str": "5x50mm hull" }, + "description": "An empty plastic hull from a 5x50mm flechette round.", + "weight": "1 g", + "volume": "5ml", + "material": [ "plastic" ], + "color": "light_green" } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/cast_spell_items.json b/data/Mainline_mods/Mods/Aftershock/items/cast_spell_items.json index 8d582d1d8..9ae4f1d2f 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/cast_spell_items.json +++ b/data/Mainline_mods/Mods/Aftershock/items/cast_spell_items.json @@ -81,9 +81,17 @@ "price": "100 kUSD", "charges_per_use": 1000, "material": [ "diamond" ], + "ammo": [ "battery" ], "use_action": [ - { "type": "cast_spell", "spell_id": "afs_translocation", "no_fail": true, "level": 1, "need_worn": true }, - { "type": "deploy_furn", "furn_type": "f_translocator_buoy" } + { + "type": "cast_spell", + "spell_id": "afs_translocation", + "no_fail": true, + "level": 1, + "need_worn": true, + "mundane": true + }, + [ "AFS_TRANSLOCATOR" ] ], "pocket_data": [ { diff --git a/data/Mainline_mods/Mods/Aftershock/items/cbms.json b/data/Mainline_mods/Mods/Aftershock/items/cbms.json index 532bed7bb..a64f95a4d 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/cbms.json +++ b/data/Mainline_mods/Mods/Aftershock/items/cbms.json @@ -17,6 +17,15 @@ "price": 100000, "difficulty": 5 }, + { + "id": "afs_bio_monowhip", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Monofilament Whip CBM" }, + "description": "A carbon nanotube wire covertly installed in your right arm. When activated, it extends to its full length and can be used to strike enemies both at close and long range.", + "price": "15 kUSD", + "difficulty": 5 + }, { "id": "afs_bio_linguistic_coprocessor", "copy-from": "bionic_general", @@ -38,6 +47,18 @@ "weight": "3000 g", "difficulty": 8 }, + { + "id": "bio_power_storage_salvaged", + "copy-from": "bionic_general_npc_usable", + "type": "BIONIC_ITEM", + "name": { "str": "Salvaged Power Storage", "str_pl": "Several Salvaged Power Storage CBMs" }, + "looks_like": "bio_int_enhancer", + "description": "A battered and used Compact Bionics Module that upgrades the user's power capacity by 50 units. Having at least one of these is a prerequisite to using powered bionics. The user will also need a power supply, found in various CBMs.", + "price": 380000, + "weight": "70 g", + "difficulty": 1, + "installation_data": "AID_bio_power_storage" + }, { "id": "afs_bio_dopamine_stimulators", "copy-from": "bionic_general", @@ -58,6 +79,30 @@ "price_postapoc": 100000, "difficulty": 9 }, + { + "id": "afs_bio_blade_fire", + "copy-from": "bionic_general_npc_usable", + "type": "BIONIC_ITEM", + "name": { "str_sp": "Bioweapon Thermal Conduits" }, + "looks_like": "bio_int_enhancer", + "description": "An improved ulnar sheath equipped with thermal inductors allows for the super heating of all types of implanted bladed weaponry. While this bionic is active, any deployed bionic blades will deal additional fire damage to targets.", + "price": 8000, + "price_postapoc": 3500, + "weight": "250 g", + "difficulty": 8 + }, + { + "id": "afs_bio_blade_electric", + "copy-from": "bionic_general_npc_usable", + "type": "BIONIC_ITEM", + "name": { "str_sp": "Bioweapon Superconductive Channels" }, + "looks_like": "bio_int_enhancer", + "description": "Paired capacitor banks maintain implanted bladed weaponry under constant electrical charge. While this bionic is active, any deployed bionic blades will deal additional electric damage with a chance of the damage arcing to other nearby targets.", + "price": 8000, + "price_postapoc": 3500, + "weight": "250 g", + "difficulty": 8 + }, { "id": "afs_bio_melee_optimization_unit", "copy-from": "bionic_general", @@ -88,12 +133,52 @@ "price_postapoc": 0, "difficulty": 8 }, + { + "id": "afs_bio_chemical_enhancement_rig", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Chemical Enhancement Rig and computer CBM" }, + "description": "An implanted AI module and medication dispenser calculates the optimal chemical mix to keep you on your toes and ready for combat. This bionic must be active to function and while it functions your body is at a heightened performance but if it turns off it will take you several days to get back to normal. There are a significant number of baseline bonuses granted by this setup but people around will notice your junkie behavior. This bionic must be active to function.", + "price": 1000000, + "price_postapoc": 100000, + "difficulty": 9 + }, + { + "id": "afs_speed_injection", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Speed Injection System CBM" }, + "description": "Should never be found outside of the chemical enhancement rig, but probably can be uninstalled, there is no point to doing that.", + "price": 1000000, + "price_postapoc": 100000, + "difficulty": 9 + }, + { + "id": "afs_healing_injection", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Pain Suppression Injection System CBM" }, + "description": "Should never be found outside of the chemical enhancement rig, but probably can be uninstalled, there is no point to doing that.", + "price": 1000000, + "price_postapoc": 100000, + "difficulty": 9 + }, + { + "id": "afs_strength_injection", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Strength Injection System CBM" }, + "description": "Should never be found outside of the chemical enhancement rig, but probably can be uninstalled, there is no point to doing that.", + "price": 1000000, + "price_postapoc": 100000, + "difficulty": 9 + }, { "id": "afs_bio_skullgun", "copy-from": "bionic_general", "type": "BIONIC_ITEM", "name": { "str": "Skullgun CBM" }, - "description": "Concealed in your head is a single shot .40 pistol. Activate the bionic to fire and reload the skullgun.", + "description": "A single shot 10mm gun which implants into the forehead. It has the shortest time from thought to shot of all bionic guns which makes it popular among street punks for whom every millisecond counts, but this poorly conceived bionic removes a distressing amount of grey matter to make room for it and gives you a concussion every time you fire it.", "price": 100000, "price_postapoc": 1500, "difficulty": 16 diff --git a/data/Mainline_mods/Mods/Aftershock/items/comestibles/alienfood.json b/data/Mainline_mods/Mods/Aftershock/items/comestibles/alienfood.json index 9750a5634..555aef072 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/comestibles/alienfood.json +++ b/data/Mainline_mods/Mods/Aftershock/items/comestibles/alienfood.json @@ -12,9 +12,8 @@ "healthy": -20, "quench": 15, "description": "A clump of moist squishy lichen. You get the impression that it might not be the safest thing to eat considering how it makes your hand tingle.", - "price": "20 cent", - "volume": "80 ml", - "charges": 3, + "price": "6 cent", + "volume": "26 ml", "fun": -8, "vitamins": [ [ "calcium", 5 ], [ "iron", 12 ], [ "vitC", 56 ], [ "mutant_toxin", 25 ] ], "flags": [ "RAW" ] @@ -31,9 +30,8 @@ "healthy": 3, "quench": 10, "description": "A clump of squishy lichen, while it isn't as wet as it used to be, your hands no longer tingle holding it.", - "price": "20 cent", - "volume": "75 ml", - "charges": 3, + "price": "6 cent", + "volume": "25 ml", "fun": -3, "vitamins": [ [ "calcium", 5 ], [ "iron", 12 ], [ "vitC", 56 ] ], "flags": [ "NUTRIENT_OVERRIDE" ] @@ -122,7 +120,6 @@ "volume": "250 ml", "vitamins": [ [ "mutant_toxin", 25 ] ], "parasites": 32, - "stack_size": 1, "fun": -20 }, { @@ -143,7 +140,6 @@ "volume": "250 ml", "vitamins": [ [ "mutant_toxin", 25 ] ], "parasites": 32, - "stack_size": 1, "fun": -20, "material": [ "hflesh" ] }, @@ -174,7 +170,6 @@ "material": [ "flesh" ], "flags": [ "TRADER_AVOID" ], "vitamins": [ [ "mutant_toxin", 25 ] ], - "stack_size": 1, "fun": -12 }, { @@ -268,12 +263,11 @@ "name": { "str": "piece of raw alien lung", "str_pl": "pieces of raw alien lung" }, "description": "A red sponge-like organ rests in your hands. It leaks out a strange liquid, and spoils very quickly. You hazard a guess this is a lung.", "weight": "56 g", - "volume": "250 ml", + "volume": "62 ml", "color": "pink", - "charges": 4, "spoils_in": "1 day", "healthy": -2, - "price_postapoc": 25, + "price_postapoc": "6 cent", "quench": 2, "fun": -10, "calories": 50, @@ -434,7 +428,6 @@ "volume": "250 ml", "vitamins": [ [ "mutant_toxin", 25 ] ], "parasites": 32, - "stack_size": 1, "fun": -20 }, { @@ -450,13 +443,11 @@ "healthy": -1, "calories": 496, "description": "A smooth white block of cleaned and rendered alien animal fat. It'll last for a very long time, but you are unsure of its edibility. Can be used as an ingredient in many foods and projects.", - "price": 500, - "price_postapoc": 800, + "price": "125 cent", + "price_postapoc": "2 USD", "//": "*May* have been commercially traded.", "material": [ "flesh" ], - "volume": "250 ml", - "charges": 2, - "stack_size": 4, + "volume": "62 ml", "vitamins": [ [ "mutant_toxin", 25 ] ], "fun": -18 }, @@ -473,8 +464,7 @@ "id": "alien_organs", "symbol": "¨", "name": { "str_sp": "unidentifiable alien organs" }, - "charges": 15, - "volume": "2500 ml", + "volume": "166 ml", "weight": "250 g", "color": "black", "looks_like": "feces_manure", @@ -501,12 +491,11 @@ "healthy": -1, "calories": 270, "description": "Bits of alien fat and skin that have been fried until they are crispy and delicious (at least, you hope they are).", - "price": 170, - "volume": "100 ml", + "price": "42 cent", + "volume": "25 ml", "vitamins": [ [ "mutant_toxin", 25 ] ], - "price_postapoc": 500, + "price_postapoc": "125 cent", "material": [ "flesh" ], - "charges": 4, "flags": [ "EATEN_HOT" ], "fun": 4 }, @@ -524,12 +513,11 @@ "healthy": -1, "calories": 270, "description": "Green scraps of rancid fat and skin, and while they have been fried to a crisp, they still don't smell any better.", - "price": 170, - "volume": "100 ml", + "price": "42 cent", + "volume": "25 ml", "vitamins": [ [ "mutant_toxin", 25 ] ], - "price_postapoc": 500, + "price_postapoc": "125 cent", "material": [ "hflesh" ], - "charges": 4, "flags": [ "EATEN_HOT" ], "fun": -4 }, @@ -553,7 +541,6 @@ "price_postapoc": 20, "material": [ "flesh" ], "flags": [ "TRADER_AVOID" ], - "stack_size": 1, "fun": -12 }, { @@ -576,7 +563,6 @@ "price_postapoc": 100, "material": [ "fur", "flesh" ], "flags": [ "NO_SALVAGE", "TRADER_AVOID" ], - "stack_size": 1, "fun": -24 } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/comestibles/bug_brew.json b/data/Mainline_mods/Mods/Aftershock/items/comestibles/bug_brew.json index 9b4d3d94e..151c96f35 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/comestibles/bug_brew.json +++ b/data/Mainline_mods/Mods/Aftershock/items/comestibles/bug_brew.json @@ -96,13 +96,14 @@ "cooks_like": "jerky", "color": "white", "spoils_in": "45 days", + "material": [ "flesh" ], "calories": 360, "healthy": 3, - "charges": 5, - "description": "A handful of edible and heavily genemoded grubs, each only slightly thinner than your thumb. Engineered in the wake of the XXII century to feed an overpopulated Earth and its fledgling colonies these are sturdy, easily grown and scalable crop.\n\nRemoved from their growth solution they'll quickly die and desiccate, as these already have. They could be safely eaten with no further processing, for a nutritious if somewhat striking meal.", + "description": "A handful of edible and heavily genemoded grubs, each only slightly thinner than your thumb. Engineered in the wake of the XXII century to feed an overpopulated Earth and its fledgling colonies these are a sturdy, easily grown and scalable crop.\n\nRemoved from their growth solution they'll quickly die and desiccate, as these already have. They could be safely eaten with no further processing, for a nutritious if somewhat striking meal.", "fun": 0, "freezing_point": -9999, - "vitamins": [ [ "calcium", 2 ], [ "iron", 2 ], [ "bad_food", 1 ] ] + "vitamins": [ [ "calcium", 2 ], [ "iron", 2 ], [ "bad_food", 1 ] ], + "volume": "44 ml" }, { "type": "recipe", diff --git a/data/Mainline_mods/Mods/Aftershock/items/comestibles/cheap_food.json b/data/Mainline_mods/Mods/Aftershock/items/comestibles/cheap_food.json index f09acda98..c1756b179 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/comestibles/cheap_food.json +++ b/data/Mainline_mods/Mods/Aftershock/items/comestibles/cheap_food.json @@ -11,9 +11,8 @@ "healthy": 3, "quench": -5, "description": "A crumbly white biscuit half the size of your thumb, packed with vitamins and calories. Provides a whole meal's nutrition in portable form, but it's a little hard to keep down, thanks to the rancid taste and chalky texture.", - "price": 10000, - "volume": "5 ml", - "charges": 5, + "price": "20 USD", + "volume": "1 ml", "looks_like": "vitamins", "fun": -8, "freezing_point": -9999, @@ -84,11 +83,11 @@ "color": "white", "calories": 700, "healthy": 3, - "charges": 2, "description": "Smoothly blended edibles, neatly shaped into cubes for maximum enjoyment.", "fun": 2, "freezing_point": -9999, - "vitamins": [ [ "calcium", 30 ], [ "iron", 30 ], [ "vitC", 30 ], [ "bad_food", 1 ] ] + "vitamins": [ [ "calcium", 30 ], [ "iron", 30 ], [ "vitC", 30 ], [ "bad_food", 1 ] ], + "volume": "111 ml" }, { "id": "afs_food_to_go", @@ -100,10 +99,10 @@ "color": "magenta", "calories": 500, "healthy": 3, - "charges": 2, "description": "Foodplace™ easy-storage Food-to-go™ the choice Food™ for the contemporary Foodman™.", "fun": 2, - "freezing_point": -9999 + "freezing_point": -9999, + "volume": "111 ml" }, { "id": "afs_loop_fruit", @@ -129,11 +128,11 @@ "material": [ "veggy" ], "calories": 150, "healthy": 3, - "charges": 3, "description": "Smooth crackers colored grayish-green. Used to be perfectly edible seaweed, or so the wrapper claims.", "fun": 2, "freezing_point": -9999, - "vitamins": [ [ "calcium", 5 ], [ "iron", 5 ], [ "vitC", 10 ], [ "bad_food", 1 ] ] + "vitamins": [ [ "calcium", 5 ], [ "iron", 5 ], [ "vitC", 10 ], [ "bad_food", 1 ] ], + "volume": "74 ml" }, { "id": "afs_beefsim", @@ -147,9 +146,9 @@ "healthy": 3, "description": "Soy or pureed rat? Better not to know.\n(But its probably both.)", "fun": 0, - "charges": 2, "freezing_point": -9999, - "vitamins": [ [ "calcium", 5 ], [ "iron", 5 ], [ "vitC", 10 ], [ "bad_food", 1 ] ] + "vitamins": [ [ "calcium", 5 ], [ "iron", 5 ], [ "vitC", 10 ], [ "bad_food", 1 ] ], + "volume": "111 ml" }, { "id": "afs_soup_27", @@ -176,11 +175,11 @@ "color": "white", "calories": 500, "healthy": 3, - "charges": 4, "description": "Sealed emergency rations invariably found within an escape pod's inventory. This particular pack should provide around a day's worth of nutrition. Required by regulation but rarely ever used, the design of these \"meals\" prioritizes a long shelf life and a very low bulk-cost. Which lends them their disgusting taste of greased sawdust.", "fun": -2, "freezing_point": -9999, - "vitamins": [ [ "vitC", 2 ], [ "bad_food", 1 ] ] + "vitamins": [ [ "vitC", 2 ], [ "bad_food", 1 ] ], + "volume": "55 ml" }, { "id": "afs_caffex", @@ -194,5 +193,16 @@ "fun": 6, "freezing_point": -9999, "vitamins": [ [ "bad_food", 1 ] ] + }, + { + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "id": "afs_ruined_food", + "copy-from": "ruined_chunks", + "name": { "str_sp": "organic sludge" }, + "volume": "100 ml", + "weight": "50 g", + "description": "Time and the elements have reverted this heavily processed meal to its original form. Eating it isn't even worth thinking about.", + "material": [ "flesh", "veggy" ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/comestibles/comestibles.json b/data/Mainline_mods/Mods/Aftershock/items/comestibles/comestibles.json index 0e5602fa2..e06fff571 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/comestibles/comestibles.json +++ b/data/Mainline_mods/Mods/Aftershock/items/comestibles/comestibles.json @@ -29,8 +29,7 @@ "use_action": { "type": "cast_spell", "spell_id": "cream_prot_cold", "no_fail": true, "level": 0 }, "type": "COMESTIBLE", "weight": "265 g", - "volume": "250ml", - "charges": 1, + "volume": "250 ml", "fun": -1, "symbol": "q", "container": "bottle_plastic_small", @@ -47,8 +46,7 @@ "use_action": { "type": "cast_spell", "spell_id": "cream_greater_prot_cold", "no_fail": true, "level": 0 }, "type": "COMESTIBLE", "weight": "265 g", - "volume": "250ml", - "charges": 1, + "volume": "250 ml", "fun": -3, "symbol": "q", "container": "bottle_plastic_small", @@ -57,5 +55,25 @@ "flags": [ "EATEN_COLD" ], "phase": "solid", "price": 5000 + }, + { + "type": "COMESTIBLE", + "id": "atomic_butter", + "name": { "str_sp": "atomic butter" }, + "weight": "14180 mg", + "color": "yellow", + "spoils_in": "14 days", + "comestible_type": "FOOD", + "symbol": "%", + "quench": -1, + "calories": 101, + "container": "wrapper", + "description": "A yellow stick of milkfat and milk solids, made from cow's milk and the power of the atom. All radiation levels are confirmed to be in line with background exposure and any cancers later in life have nothing to do with this butter or any products made with this butter. By consuming this butter you indemnify and hold harmless the Rivtech Corporation, its parent company and subsidiaries and any agents, directors or officers of the Rivtech Corporation from any losses or damages that may occur as a result of consuming this butter in any form or fashion.", + "price": "9 cent", + "price_postapoc": "23 cent", + "material": [ "milk" ], + "volume": "15 ml", + "flags": [ "NO_AUTO_CONSUME" ], + "fun": -1 } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/comestibles/flesh.json b/data/Mainline_mods/Mods/Aftershock/items/comestibles/flesh.json new file mode 100644 index 000000000..41129151f --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/comestibles/flesh.json @@ -0,0 +1,17 @@ +[ + { + "type": "COMESTIBLE", + "id": "afs_synthetic_meat", + "copy-from": "meat", + "name": { "str_sp": "synthetic meat" }, + "description": "A cut of vat grown lean meat, genetically similar to beef. Conspicuously uniform in both looks and texture.", + "parasites": 0 + }, + { + "type": "COMESTIBLE", + "id": "afs_jerky", + "copy-from": "jerky", + "name": { "str_sp": "meat flakes" }, + "description": "Transparent thin hexagonal cuts of dried meat. Conspicuously uniform in both looks and texture." + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/comestibles/medicine.json b/data/Mainline_mods/Mods/Aftershock/items/comestibles/medicine.json index d5d41d6b4..7145bc062 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/comestibles/medicine.json +++ b/data/Mainline_mods/Mods/Aftershock/items/comestibles/medicine.json @@ -14,6 +14,7 @@ "description": "A chalk white blood analogue for emergency medical use. Far more efficient at oxygenation than natural blood, it can also be used as a general performance enhancer. Once injected, it will be metabolized or otherwise expunged from the the body in around 8 hours.", "material": [ "blood" ], "volume": "250 ml", + "charges": 1, "phase": "liquid", "healthy": -1, "fun": -10, diff --git a/data/Mainline_mods/Mods/Aftershock/items/comestibles/veggies.json b/data/Mainline_mods/Mods/Aftershock/items/comestibles/veggies.json new file mode 100644 index 000000000..404cde1b3 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/comestibles/veggies.json @@ -0,0 +1,29 @@ +[ + { + "type": "COMESTIBLE", + "id": "afs_kelp", + "copy-from": "spinach", + "name": { "str_sp": "kelp" }, + "description": "Thin wafers of kelp, the essential greens of frontier cuisine. These were probably grown in some farm ship or another.", + "volume": "166 ml" + }, + { + "id": "afs_kibble", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "name": { "str_sp": "spiced chops" }, + "description": "Kibble made for humans. A heavy dressing of spices makes it impossible to discern the original flavours it might have had.", + "weight": "223 g", + "spoils_in": "1 day", + "volume": "125 ml", + "price": "250 cent", + "to_hit": -5, + "material": [ "veggy" ], + "symbol": ";", + "quench": 2, + "calories": 800, + "vitamins": [ [ "vitC", 4 ], [ "iron", 17 ], [ "bad_food", 1 ] ], + "fun": 1, + "color": "brown" + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/containers.json b/data/Mainline_mods/Mods/Aftershock/items/containers.json index a93614712..cff97aa62 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/containers.json +++ b/data/Mainline_mods/Mods/Aftershock/items/containers.json @@ -31,5 +31,30 @@ "copy-from": "pressure_tank", "name": { "str": "pressurized tank" }, "flags": [ "NO_UNLOAD", "MAG_BULKY" ] + }, + { + "id": "afs_mre_package", + "copy-from": "mre_package", + "type": "GENERIC", + "name": { "str": "Astronaut MRE" }, + "description": "Marketing has adorned the package of this individual ration with white and red livery, a deliberate callback to the space corporations of old. Despite best efforts, the food within is no more natural than usual, but is at least palatable." + }, + { + "id": "afs_foil_bag", + "copy-from": "plastic_bag_vac", + "type": "GENERIC", + "name": { "str": "foil bag" }, + "description": "A plastic and aluminum foil bag for long term food storage.", + "material": [ "plastic", "aluminum" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "open_container": true, + "watertight": true, + "max_contains_volume": "1500 ml", + "max_contains_weight": "3 kg", + "sealed_data": { "spoil_multiplier": 0.0 } + } + ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/corpses.json b/data/Mainline_mods/Mods/Aftershock/items/corpses.json index a49bb3af3..46741d6bb 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/corpses.json +++ b/data/Mainline_mods/Mods/Aftershock/items/corpses.json @@ -23,10 +23,9 @@ "material": [ "steel", "plastic" ], "weight": "140000 g", "volume": "62500 ml", - "bashing": 6, - "cutting": 6, "to_hit": -3, - "flags": [ "TRADER_AVOID" ] + "flags": [ "TRADER_AVOID" ], + "melee_damage": { "bash": 6, "cut": 6 } }, { "type": "GENERIC", @@ -40,10 +39,9 @@ "material": [ "steel", "plastic" ], "weight": "31520 g", "volume": "15 L", - "bashing": 6, - "cutting": 6, "to_hit": -3, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 6, "cut": 6 } }, { "type": "GENERIC", @@ -57,10 +55,9 @@ "material": [ "steel", "plastic" ], "weight": "140 kg", "volume": "62500 ml", - "bashing": 6, - "cutting": 6, "to_hit": -3, - "flags": [ "TRADER_AVOID", "LEAK_DAM", "RADIOACTIVE" ] + "flags": [ "TRADER_AVOID", "LEAK_DAM", "RADIOACTIVE" ], + "melee_damage": { "bash": 6, "cut": 6 } }, { "type": "GENERIC", @@ -194,10 +191,9 @@ "material": [ "superalloy", "plastic" ], "weight": "140 kg", "volume": "62500 ml", - "bashing": 6, - "cutting": 6, "to_hit": -3, - "flags": [ "TRADER_AVOID", "LEAK_DAM", "RADIOACTIVE" ] + "flags": [ "TRADER_AVOID", "LEAK_DAM", "RADIOACTIVE" ], + "melee_damage": { "bash": 6, "cut": 6 } }, { "type": "GENERIC", @@ -253,10 +249,9 @@ "material": [ "steel", "plastic" ], "weight": "140 kg", "volume": "62500 ml", - "bashing": 6, - "cutting": 6, "to_hit": -3, - "flags": [ "TRADER_AVOID", "LEAK_DAM", "RADIOACTIVE" ] + "flags": [ "TRADER_AVOID", "LEAK_DAM", "RADIOACTIVE" ], + "melee_damage": { "bash": 6, "cut": 6 } }, { "type": "GENERIC", @@ -272,10 +267,9 @@ "material": [ "steel", "plastic" ], "weight": "140 kg", "volume": "62500 ml", - "bashing": 6, - "cutting": 6, "to_hit": -3, - "flags": [ "TRADER_AVOID", "LEAK_DAM", "RADIOACTIVE" ] + "flags": [ "TRADER_AVOID", "LEAK_DAM", "RADIOACTIVE" ], + "melee_damage": { "bash": 6, "cut": 6 } }, { "type": "GENERIC", @@ -291,9 +285,59 @@ "material": [ "steel", "plastic" ], "weight": "140 kg", "volume": "62500 ml", - "bashing": 6, - "cutting": 6, "to_hit": -3, - "flags": [ "TRADER_AVOID", "LEAK_DAM", "RADIOACTIVE" ] + "flags": [ "TRADER_AVOID", "LEAK_DAM", "RADIOACTIVE" ], + "melee_damage": { "bash": 6, "cut": 6 } + }, + { + "type": "GENERIC", + "id": "broken_eyebot", + "symbol": ",", + "color": "green", + "name": { "str": "broken eyebot" }, + "category": "other", + "description": "A broken eyebot. Much less threatening now that it won't be calling for backup. Could be gutted for parts.", + "price": 1000, + "price_postapoc": 10, + "material": [ "steel", "plastic" ], + "weight": "31520 g", + "volume": "15 L", + "to_hit": -3, + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 6, "cut": 6 } + }, + { + "type": "GENERIC", + "id": "broken_copbot", + "symbol": ",", + "color": "green", + "name": { "str": "broken police bot" }, + "category": "other", + "description": "A broken police bot. Much less threatening now that it's quiet and still. Could be gutted for parts.", + "price": 30000, + "price_postapoc": 10, + "material": [ "steel", "plastic" ], + "weight": "140000 g", + "volume": "62500 ml", + "to_hit": -3, + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 6, "cut": 6 } + }, + { + "type": "GENERIC", + "id": "broken_riotbot", + "symbol": ",", + "color": "green", + "name": { "str": "broken riot control bot" }, + "category": "other", + "description": "A broken riot control bot. Much less threatening now that it's out of gas. Could be gutted for parts.", + "price": 30000, + "price_postapoc": 10, + "material": [ "steel", "plastic" ], + "weight": "140000 g", + "volume": "62500 ml", + "to_hit": -3, + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 6, "cut": 6 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/crafting_scrap/heat_transfer_scrap.json b/data/Mainline_mods/Mods/Aftershock/items/crafting_scrap/heat_transfer_scrap.json index f72be17ba..6a03e17bc 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/crafting_scrap/heat_transfer_scrap.json +++ b/data/Mainline_mods/Mods/Aftershock/items/crafting_scrap/heat_transfer_scrap.json @@ -20,6 +20,7 @@ "color": "black", "weight": "283 g", "volume": "250 ml", + "charges": 1, "phase": "liquid", "price": 5000, "price_postapoc": 10000, diff --git a/data/Mainline_mods/Mods/Aftershock/items/ethereal.json b/data/Mainline_mods/Mods/Aftershock/items/ethereal.json index 5a8ee7395..f53172ae8 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/ethereal.json +++ b/data/Mainline_mods/Mods/Aftershock/items/ethereal.json @@ -19,9 +19,11 @@ "WATER_FRIENDLY", "TRADER_AVOID", "NO_TAKEOFF", - "CLIMATE_CONTROL", - "NONCONDUCTIVE" + "NONCONDUCTIVE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" ], + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_warm" } ] }, "armor": [ { "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] @@ -48,12 +50,11 @@ "WATER_FRIENDLY", "TRADER_AVOID", "NO_TAKEOFF", - "CLIMATE_CONTROL", - "NONCONDUCTIVE" + "NONCONDUCTIVE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" ], - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "ARMOR_COLD", "multiply": -0.25 } ] } ] - }, + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_warm" }, { "id": "ench_cold_armor" } ] }, "armor": [ { "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/frankenstein_items.json b/data/Mainline_mods/Mods/Aftershock/items/frankenstein_items.json index 3ce255a96..41e0b8c6a 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/frankenstein_items.json +++ b/data/Mainline_mods/Mods/Aftershock/items/frankenstein_items.json @@ -8,7 +8,6 @@ "volume": "62 L", "price": 600000, "to_hit": -3, - "bashing": 8, "material": "flesh", "symbol": ";", "color": "green", @@ -18,6 +17,7 @@ "summon_msg": "It's alive!", "place_randomly": false, "moves": 50 - } + }, + "melee_damage": { "bash": 8 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/grenades.json b/data/Mainline_mods/Mods/Aftershock/items/grenades.json index 433bdacc0..f527d899d 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/grenades.json +++ b/data/Mainline_mods/Mods/Aftershock/items/grenades.json @@ -1,4 +1,15 @@ [ + { + "abstract": "grenade_canister", + "type": "GENERIC", + "category": "weapons", + "name": { "str": "canister grenade" }, + "weight": "1058 g", + "volume": "270 ml", + "material": [ "steel" ], + "symbol": "*", + "color": "dark_gray" + }, { "id": "afs_kaburaya_bomb", "type": "TOOL", @@ -11,8 +22,7 @@ "need_wielding": true, "target": "afs_kaburaya_bomb_act", "msg": "You activate the device.", - "target_charges": 3, - "active": true, + "target_timer": "3 seconds", "menu_text": "Pull pin", "type": "transform" }, @@ -25,14 +35,9 @@ "looks_like": "c4", "name": "armed Kabura-ya antipersonnel device", "description": "A tiny plastic explosive meant to be installed within a Kabura-ya drone. It is on the verge of exploding.", - "initial_charges": 3, - "max_charges": 3, - "turns_per_charge": 2, - "use_action": { + "use_action": { "type": "message", "message": "You've already activated the %s, try throwing it instead.", "name": "Pull pin" }, + "countdown_action": { "type": "explosion", - "sound_volume": 0, - "sound_msg": "Tick.", - "no_deactivate_msg": "You've already activated the %s, try throwing it instead.", "explosion": { "power": 100, "max_noise": 25, "shrapnel": { "casing_mass": 217, "fragment_mass": 0.125 }, "distance_factor": 0.2 } }, "flags": [ "BOMB", "TRADER_AVOID" ] @@ -49,8 +54,7 @@ "need_wielding": true, "target": "afs_demo_charge_act", "msg": "You activate the demolition charge.", - "target_charges": 1, - "active": true, + "target_timer": "1 seconds", "menu_text": "Activate charge", "type": "transform" }, @@ -63,16 +67,8 @@ "name": "active demolition charge", "looks_like": "c4armed", "description": "A powerful explosive with a highly focused blast radius, often used for mining or demolition work. It's currently active.", - "initial_charges": 1, - "max_charges": 1, - "turns_per_charge": 1, - "use_action": { - "type": "explosion", - "sound_volume": 0, - "sound_msg": "Tick.", - "no_deactivate_msg": "You've already activated the %s, try throwing it instead.", - "explosion": { "power": 3000, "max_noise": 250, "distance_factor": 0.3 } - }, + "use_action": { "type": "message", "message": "You've already activated the %s, try throwing it instead." }, + "countdown_action": { "type": "explosion", "explosion": { "power": 3000, "max_noise": 250, "distance_factor": 0.3 } }, "extend": { "flags": [ "TRADER_AVOID" ] } }, { @@ -83,7 +79,14 @@ "looks_like": "grenade_emp", "name": "electroshock grenade", "description": "This is an electronic weapon that will emit a short-ranged electric field. When activated, you'll have five turns before it starts doing so; throwing it before that would be a good idea.", - "use_action": { "menu_text": "Pull pin", "need_wielding": true, "type": "transform", "target": "afs_electroshock_grenade_1_act" } + "use_action": { + "menu_text": "Pull pin", + "need_wielding": true, + "type": "transform", + "target": "afs_electroshock_grenade_1_act", + "target_timer": "20 seconds" + }, + "flags": [ "RADIO_MODABLE", "RADIO_INVOKE_PROC", "BOMB", "GRENADE" ] }, { "id": "afs_electroshock_grenade_1_act", @@ -93,8 +96,7 @@ "name": "armed electroshock grenade", "description": "This electroshock grenade is currently creating a dangerous electric field.", "emits": [ "emit_shock_cloud" ], - "countdown_interval": 20, - "countdown_action": { "type": "transform", "target": "afs_material_1" }, + "revert_to": "afs_material_1", "flags": [ "TRADER_AVOID" ] }, { @@ -108,7 +110,6 @@ "price": 1500, "price_postapoc": 1000, "to_hit": -1, - "bashing": 6, "material": [ "steel", "plastic" ], "symbol": "*", "color": "green", @@ -116,12 +117,12 @@ "need_wielding": true, "target": "grenade_cryo_act", "msg": "You pull the pin on the grenade.", - "target_charges": 5, - "active": true, + "target_timer": "5 seconds", "menu_text": "Pull pin", "type": "transform" }, - "flags": [ "RADIO_MODABLE", "RADIO_INVOKE_PROC", "BOMB", "GRENADE" ] + "flags": [ "RADIO_MODABLE", "RADIO_INVOKE_PROC", "BOMB", "GRENADE" ], + "melee_damage": { "bash": 6 } }, { "id": "grenade_cryo_act", @@ -134,24 +135,46 @@ "price": 0, "price_postapoc": 0, "to_hit": -1, - "bashing": 6, "material": [ "superalloy" ], "symbol": "*", "color": "green", - "initial_charges": 5, - "max_charges": 5, - "turns_per_charge": 1, - "use_action": { + "use_action": { "type": "message", "message": "You've already pulled the %s's pin, try throwing it instead.", "name": "Pull pin" }, + "countdown_action": { "type": "explosion", - "sound_volume": 0, - "sound_msg": "Tick.", "fields_type": "fd_nuke_gas", "fields_radius": 3, "fields_min_intensity": 3, "fields_max_intensity": 3, - "no_deactivate_msg": "You've already pulled the %s's pin, try throwing it instead.", "explosion": { "power": 540, "shrapnel": { "casing_mass": 217, "fragment_mass": 0.125 } } }, - "flags": [ "BOMB", "TRADER_AVOID" ] + "flags": [ "BOMB", "TRADER_AVOID" ], + "melee_damage": { "bash": 6 } + }, + { + "id": "afs_oxygen_bomb", + "type": "TOOL", + "copy-from": "pipebomb", + "looks_like": "pipebomb", + "name": "oxygen bomb", + "price": "150 USD", + "description": "A favorite tool of mutineers everywhere, this is a standard issue oxygen candle deliberately tampered to explode upon activation. Its fuse is dangerously short, so you won't want to waste any time.", + "use_action": { + "need_wielding": true, + "target": "afs_oxygen_bomb_act", + "msg": "You pull the pin on the bomb.", + "target_timer": "3 seconds", + "menu_text": "Pull the pin", + "type": "transform" + }, + "flags": [ "RADIO_MODABLE", "RADIO_INVOKE_PROC", "BOMB", "NPC_ACTIVATE" ] + }, + { + "id": "afs_oxygen_bomb_act", + "type": "TOOL", + "copy-from": "pipebomb_act", + "looks_like": "pipebomb_act", + "name": "active oxygen bomb", + "price": "0 USD", + "description": "This bomb's fuse is lit, and it will explode any second now. Throw it immediately!" } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/10mm.json b/data/Mainline_mods/Mods/Aftershock/items/gun/10mm.json index 0f1762d92..89035883f 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/10mm.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/10mm.json @@ -11,7 +11,6 @@ "longest_side": "205 mm", "price": 59200, "to_hit": -2, - "bashing": 8, "material": [ "plastic", "superalloy" ], "symbol": "(", "color": "dark_gray", @@ -30,6 +29,52 @@ "max_contains_weight": "20 kg", "item_restriction": [ "afs_84k_20mag" ] } - ] + ], + "melee_damage": { "bash": 8 } + }, + { + "id": "afs_silvergram_pistol", + "copy-from": "pistol_base", + "looks_like": "glock_17", + "type": "GUN", + "name": { "str": "W1011 Silvergram" }, + "description": "A finely sculpted white and silver pistol entrusted to Wraitheon's corporate elite. It employs advanced targeting and precision guiding capabilities to deliver devastating bursts of guided 10mm microjet darts. Firing is as expensive as it looks.", + "weight": "780 g", + "volume": "480 ml", + "longest_side": "205 mm", + "price": "750 kUSD", + "to_hit": -2, + "material": [ "plastic", "superalloy" ], + "built_in_mods": [ "afs_smart_scope" ], + "skill": "smartgun", + "symbol": "(", + "color": "dark_gray", + "ammo": "afs_10mm_smart", + "dispersion": 0, + "durability": 9, + "blackpowder_tolerance": 0, + "variants": [ + { + "id": "silverhawk", + "name": { "str": "W1011 Silverhawk" }, + "description": "A Silvergram smart pistol given a far less conspicuous \"military carbon\" black finish. Its performance and smart targeting capacities are otherwise identical." + } + ], + "min_cycle_recoil": 570, + "modes": [ [ "DEFAULT", "2rd. burst", 2 ] ], + "pocket_data": [ + { + "magazine_well": "103 ml", + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "afs_silvergram_22mag" ] + } + ], + "valid_mod_locations": [ [ "sights", 1 ], [ "sling", 1 ] ], + "flags": [ "NEVER_JAMS", "MUNDANE", "WONT_TRAIN_MARKSMANSHIP" ], + "relic_data": { "passive_effects": [ { "id": "ench_smart_gun" } ] }, + "melee_damage": { "bash": 8 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/25mm.json b/data/Mainline_mods/Mods/Aftershock/items/gun/25mm.json index cc9a2148e..0669838e8 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/25mm.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/25mm.json @@ -11,13 +11,12 @@ "longest_side": "736 mm", "price": 550000, "to_hit": -3, - "bashing": 10, "material": [ "superalloy", "plastic" ], "symbol": "(", "color": "brown", "min_strength": 18, "ranged_damage": { "damage_type": "bullet", "amount": 10 }, - "skill": "launcher", + "skill": "rifle", "modes": [ [ "DEFAULT", "DOUBLE", 4 ] ], "dispersion": 90, "durability": 6, @@ -34,7 +33,6 @@ ], "reload": 400, "valid_mod_locations": [ - [ "accessories", 2 ], [ "barrel", 1 ], [ "sights", 1 ], [ "sling", 1 ], @@ -42,7 +40,8 @@ [ "rail mount", 1 ], [ "stock mount", 1 ], [ "underbarrel mount", 1 ] - ] + ], + "melee_damage": { "bash": 10 } }, { "id": "afs_25mm_goa", @@ -57,7 +56,6 @@ "barrel_volume": "1170 ml", "price": "1500 USD", "to_hit": -3, - "bashing": 10, "material": [ "superalloy", "wood" ], "symbol": "(", "color": "brown", @@ -70,7 +68,6 @@ "clip_size": 1, "reload": 400, "valid_mod_locations": [ - [ "accessories", 2 ], [ "barrel", 1 ], [ "sights", 1 ], [ "sling", 1 ], @@ -80,6 +77,37 @@ [ "underbarrel mount", 1 ] ], "flags": [ "NEVER_JAMS", "RELOAD_EJECT" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "afs_25mm": 1 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "afs_25mm": 1 } } ], + "melee_damage": { "bash": 10 } + }, + { + "id": "afs_wa2519", + "looks_like": "m79", + "type": "GUN", + "reload_noise_volume": 10, + "name": { "str": "Wraitheon Armory 2519" }, + "description": "The much feared 2519 smart sniper platform leverages advanced ballistic targeting and guidance computers to deliver heavy munitions with unerring precision. Its undisputed lethality makes it a rare sight outside of the company's max security divisions.", + "weight": "3500 g", + "volume": "450 ml", + "longest_side": "95 cm", + "barrel_volume": "1170 ml", + "price": "1500 USD", + "to_hit": -3, + "material": [ "superalloy", "wood" ], + "built_in_mods": [ "afs_smart_scope" ], + "symbol": "(", + "color": "cyan", + "skill": "smartgun", + "modes": [ [ "DEFAULT", "single shot", 1 ] ], + "dispersion": 0, + "durability": 9, + "ammo": [ "afs_25mm_smart" ], + "clip_size": 1, + "reload": 1000, + "valid_mod_locations": [ [ "sights", 1 ], [ "sling", 1 ] ], + "flags": [ "NEVER_JAMS", "RELOAD_EJECT", "MUNDANE", "WONT_TRAIN_MARKSMANSHIP" ], + "relic_data": { "passive_effects": [ { "id": "ench_smart_gun" } ] }, + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "afs_25mm_smart": 1 } } ], + "melee_damage": { "bash": 10 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/5x50.json b/data/Mainline_mods/Mods/Aftershock/items/gun/5x50.json index 827f74420..683eb4ddf 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/5x50.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/5x50.json @@ -2,16 +2,93 @@ { "id": "afs_eidolon_derringer", "type": "GUN", - "copy-from": "needlepistol", + "copy-from": "afs_needlepistol", "name": { "str": "eidolon derringer" }, "volume": "500 ml", "description": "A slick, miniature derringer designed as a backup weapon for covert operations and close-range assassination. It will fire up to four 5x50mm penetrators simultaneously, to devastating effect.", "dispersion": 410, "range": -48, - "valid_mod_locations": [ [ "accessories", 2 ] ], + "valid_mod_locations": [ ], "modes": [ [ "DEFAULT", "single", 1 ], [ "MULTI", "4 rd.", 4 ] ], "clip_size": 4, "flags": [ "NEVER_JAMS", "RELOAD_ONE", "RELOAD_EJECT" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "5x50": 4 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "afs_5x50": 4 } } ] + }, + { + "id": "afs_needlegun", + "looks_like": "hk_mp5", + "type": "GUN", + "reload_noise_volume": 10, + "name": { "str": "RM216 SPIW" }, + "description": "This light carbine fires 5x50mm armor-piercing flechette cartridges. Classified as a special purpose individual weapon, this advanced firearm was developed by Rivtech for the US military shortly before the end of the world. Designed to be fired in bursts, it excels in close combat.", + "weight": "1302 g", + "volume": "1250 ml", + "longest_side": "690 mm", + "price": 2320000, + "price_postapoc": 8000, + "to_hit": -2, + "material": [ "superalloy", "ceramic" ], + "symbol": "(", + "color": "dark_gray", + "ammo": [ "afs_5x50" ], + "skill": "smg", + "range": 10, + "ranged_damage": { "damage_type": "bullet", "amount": 10 }, + "dispersion": 220, + "durability": 9, + "barrel_volume": "250 ml", + "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "5 rd.", 5 ], [ "AUTO", "auto", 4 ] ], + "valid_mod_locations": [ + [ "barrel", 1 ], + [ "brass catcher", 1 ], + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "muzzle", 1 ], + [ "rail", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "stock accessory", 2 ], + [ "underbarrel", 1 ] + ], + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "afs_5x50_100_mag", "afs_5x50_50_mag" ] } ], + "melee_damage": { "bash": 12 } + }, + { + "id": "afs_needlepistol", + "looks_like": "glock_17", + "type": "GUN", + "reload_noise_volume": 10, + "name": { "str": "RM232 IDW" }, + "description": "This lightweight machine pistol fires 5x50mm armor-piercing flechette cartridges. Classified as an individual defense weapon, this advanced firearm was developed by Rivtech for the US military shortly before the end of the world. Designed to be fired in bursts, it excels in close combat.", + "weight": "682 g", + "volume": "620 ml", + "longest_side": "255 mm", + "price": 1200000, + "price_postapoc": 8000, + "to_hit": -2, + "material": [ "superalloy", "ceramic" ], + "symbol": "(", + "color": "dark_gray", + "ammo": [ "afs_5x50" ], + "skill": "pistol", + "dispersion": 280, + "durability": 9, + "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "2 rd.", 2 ], [ "AUTO", "auto", 4 ] ], + "valid_mod_locations": [ + [ "brass catcher", 1 ], + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "muzzle", 1 ], + [ "rail", 1 ], + [ "sights", 1 ], + [ "stock", 1 ], + [ "underbarrel", 1 ] + ], + "flags": [ "WATERPROOF_GUN", "NEVER_JAMS" ], + "weapon_category": [ "AUTOMATIC_PISTOLS" ], + "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "afs_5x50_50_mag", "afs_5x50_100_mag" ] } ], + "melee_damage": { "bash": 8 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/7.50mm.json b/data/Mainline_mods/Mods/Aftershock/items/gun/7.50mm.json index 40514b505..9c0842373 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/7.50mm.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/7.50mm.json @@ -29,7 +29,6 @@ "longest_side": "1035 mm", "price": 750000, "to_hit": -1, - "bashing": 12, "material": [ "superalloy", "plastic" ], "symbol": "(", "color": "dark_gray", @@ -41,7 +40,6 @@ "modes": [ [ "DEFAULT", "burst", 4 ] ], "built_in_mods": [ "bipod" ], "valid_mod_locations": [ - [ "accessories", 4 ], [ "barrel", 1 ], [ "bore", 1 ], [ "brass catcher", 1 ], @@ -61,7 +59,8 @@ "max_contains_weight": "20 kg", "item_restriction": [ "afs_UICASTA30", "afs_UICASTA100drum" ] } - ] + ], + "melee_damage": { "bash": 12 } }, { "id": "afs_gibrifle", @@ -75,7 +74,6 @@ "longest_side": "630 mm", "price": 125000, "to_hit": -1, - "bashing": 12, "material": [ "superalloy", "plastic" ], "ranged_damage": { "damage_type": "bullet", "amount": -7 }, "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "burst", 2 ] ], @@ -93,6 +91,7 @@ "max_contains_weight": "20 kg", "item_restriction": [ "afs_UICASTA30" ] } - ] + ], + "melee_damage": { "bash": 12 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/advanced.json b/data/Mainline_mods/Mods/Aftershock/items/gun/advanced.json index dea3fe997..9781787a8 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/advanced.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/advanced.json @@ -24,7 +24,7 @@ "ammo_effects": [ "PLASMA", "EMP", "LOW_RANGE_VAPORIZATION" ], "skill": "rifle", "extend": { "flags": [ "NO_TURRET" ] }, - "ups_charges": 0 + "energy_drain": "0 kJ" }, { "id": "railgun", diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/foam.json b/data/Mainline_mods/Mods/Aftershock/items/gun/foam.json index c71eaddee..197bb6a96 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/foam.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/foam.json @@ -11,7 +11,6 @@ "price": 13000, "price_postapoc": 5000, "to_hit": -2, - "bashing": 6, "material": [ "plastic", "steel" ], "symbol": "(", "color": "yellow", @@ -31,6 +30,7 @@ "max_contains_weight": "20 kg", "item_restriction": [ "afs_foam_tank" ] } - ] + ], + "melee_damage": { "bash": 6 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/laser.json b/data/Mainline_mods/Mods/Aftershock/items/gun/laser.json index 7bd211f04..6c40950bf 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/laser.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/laser.json @@ -7,15 +7,15 @@ "description": "A severed robotic hand from a Wraitheon Sentinel. The powerful electro-laser stun gun embed on its wrist is still functional, and can be used when connected to an UPS.", "price": 720000, "to_hit": -2, - "bashing": 10, "material": [ "superalloy", "plastic" ], "color": "cyan", "range": 10, "ranged_damage": { "damage_type": "stab", "amount": 5, "armor_penetration": 15 }, "dispersion": 500, - "ups_charges": 25, + "energy_drain": "25 kJ", "ammo_effects": [ "LASER", "BEANBAG" ], - "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE" ] + "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE", "USE_UPS" ], + "melee_damage": { "bash": 10 } }, { "id": "afs_sentinel_laser", @@ -26,17 +26,17 @@ "color": "red", "range": 10, "ranged_damage": { "damage_type": "heat", "amount": 25, "armor_penetration": 4 }, - "ups_charges": 30, + "energy_drain": "30 kJ", "modes": [ [ "MULTI", "trilaser", 3 ] ], "ammo_effects": [ "LASER" ], - "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE" ] + "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE", "USE_UPS" ] }, { "id": "afs_sentinel_laser_mon", "type": "GUN", "copy-from": "afs_sentinel_laser", "name": { "str": "wrist-trilaser" }, - "ups_charges": 0, + "energy_drain": "0 kJ", "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE", "NO_TURRET" ] }, { @@ -51,7 +51,6 @@ "price": 400000, "price_postapoc": 8000, "to_hit": -1, - "bashing": 4, "material": [ "steel", "plastic" ], "symbol": "(", "color": "magenta", @@ -61,7 +60,7 @@ "dispersion": 90, "durability": 7, "loudness": 8, - "ups_charges": 25, + "energy_drain": "25 kJ", "reload": 200, "valid_mod_locations": [ [ "emitter", 1 ], @@ -74,14 +73,15 @@ [ "underbarrel mount", 1 ] ], "ammo_effects": [ "LASER", "INCENDIARY" ], - "flags": [ "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE" ] + "flags": [ "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE", "USE_UPS" ], + "melee_damage": { "bash": 4 } }, { "id": "laser_cannon_xray_mon", "type": "GUN", "copy-from": "laser_cannon_xray", "name": { "str": "mounted x-ray cannon" }, - "ups_charges": 0, + "energy_drain": "0 kJ", "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE", "NO_TURRET" ] }, { @@ -93,7 +93,6 @@ "volume": "2500 ml", "price": "75 USD", "to_hit": -1, - "bashing": 8, "material": [ "plastic", "copper" ], "symbol": "(", "looks_like": "american_180", @@ -106,10 +105,11 @@ "durability": 10, "loudness": 8, "reload": 500, - "valid_mod_locations": [ [ "accessories", 4 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], + "valid_mod_locations": [ [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], "ammo_effects": [ "LASER" ], "flags": [ "NEVER_JAMS", "NON_FOULING", "NEEDS_NO_LUBE" ], - "ammo_to_fire": 20, + "ammo_to_fire": 0, + "energy_drain": "20 kJ", "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", @@ -119,7 +119,8 @@ "magazine_well": "75 ml", "item_restriction": [ "afs_cartridge", "afs_bootleg_cartridge", "afs_archeotech_cartridge" ] } - ] + ], + "melee_damage": { "bash": 8 } }, { "id": "afs_av22", @@ -131,21 +132,13 @@ "price_postapoc": "500 USD", "ammo": [ "battery" ], "ranged_damage": { "damage_type": "heat", "amount": 5 }, + "overheat_threshold": 150, "range": 15, "modes": [ [ "DEFAULT", "pulse", 1 ], [ "BURST", "2s sequence", 2 ], [ "AUTO", "3s sequence", 3 ] ], "delete": { "flags": [ "NO_UNLOAD", "NO_RELOAD" ] }, - "ammo_to_fire": 10, - "ups_charges": 0, - "valid_mod_locations": [ - [ "accessories", 2 ], - [ "emitter", 1 ], - [ "grip", 1 ], - [ "lens", 1 ], - [ "rail", 1 ], - [ "sights", 1 ], - [ "stock", 1 ], - [ "underbarrel", 1 ] - ], + "ammo_to_fire": 0, + "energy_drain": "10 kJ", + "valid_mod_locations": [ [ "emitter", 1 ], [ "grip", 1 ], [ "lens", 1 ], [ "rail", 1 ], [ "sights", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], "default_mods": [ "red_dot_sight" ], "pocket_data": [ { @@ -171,22 +164,14 @@ "volume": "750 ml", "ranged_damage": [ { "damage_type": "pure", "amount": 5 }, { "damage_type": "heat", "amount": 20 } ], "range": 20, + "overheat_threshold": 150, "modes": [ [ "DEFAULT", "pulse", 1 ], [ "BURST", "2s sequence", 2 ] ], - "ammo_to_fire": 30, + "ammo_to_fire": 0, "ammo_effects": [ "INCENDIARY", "DAZZLE_BEAM", "PLASMA_BUBBLE" ], "delete": { "flags": [ "NO_UNLOAD", "NO_RELOAD" ] }, - "ups_charges": 0, + "energy_drain": "30 kJ", "built_in_mods": [ "afs_holo_aim_assist" ], - "valid_mod_locations": [ - [ "accessories", 2 ], - [ "emitter", 1 ], - [ "grip", 1 ], - [ "lens", 1 ], - [ "rail", 1 ], - [ "sights", 1 ], - [ "stock", 1 ], - [ "underbarrel", 1 ] - ], + "valid_mod_locations": [ [ "emitter", 1 ], [ "grip", 1 ], [ "lens", 1 ], [ "rail", 1 ], [ "sights", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", @@ -198,6 +183,67 @@ } ] }, + { + "id": "afs_explosive_pumped_laser", + "looks_like": "m79", + "type": "GUN", + "reload_noise_volume": 10, + "symbol": "(", + "color": "green", + "name": { "str": "Izhevsk PLC-75" }, + "description": "Straight from the bureaus of the old Soviet Union the PLC-75 is the crude and brutal answer to the constraints posed by the design of heavy laser ordnance. Its use of antiquated flashtube pumped laser technology makes it unwieldy and wholly incompatible with modern equipment, whether this offers any consolation to downrange targets remains a matter of contentious dispute.", + "material": [ "steel" ], + "flags": [ "RELOAD_ONE", "BACKBLAST", "NEVER_JAMS" ], + "range": 55, + "skill": "launcher", + "ammo": [ "afs_82mm_flashbulb" ], + "price": "500 USD", + "price_postapoc": "500 USD", + "weight": "10 kg", + "longest_side": "1065 mm", + "volume": "6730 ml", + "to_hit": -3, + "dispersion": 10, + "durability": 8, + "clip_size": 1, + "reload": 300, + "loudness": 200, + "valid_mod_locations": [ [ "grip", 1 ], [ "sights", 1 ] ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "afs_82mm_flashbulb": 1 } } ], + "melee_damage": { "bash": 8 } + }, + { + "id": "afs_heavy_tactical_laser", + "type": "GUN", + "name": { "str": "Shikishma A-82 tactical laser" }, + "copy-from": "afs_a7", + "description": "Crown jewel of Shikishma armories, and possible product of unsanctioned data scavenging, the A-82 is the undisputed market leader when it comes to man portable laser weaponry. Sustained fire is likely to cause secondary explosions as target layers are vaporized.", + "price": "2 kUSD", + "price_postapoc": "2 kUSD", + "ammo": [ "battery" ], + "ranged_damage": { "damage_type": "heat", "amount": 35 }, + "overheat_threshold": 100, + "cooling_value": 1, + "heat_per_shot": 20, + "volume": "3 L", + "range": 37, + "modes": [ [ "DEFAULT", "pulse", 1 ], [ "BURST", "2s sequence", 2 ], [ "AUTO", "3s sequence", 3 ] ], + "extend": { "ammo_effects": [ "TACTICAL_LASER_EXPLOSION" ] }, + "ammo_to_fire": 0, + "energy_drain": "50 kJ", + "valid_mod_locations": [ [ "emitter", 1 ], [ "grip", 1 ], [ "lens", 1 ], [ "rail", 1 ], [ "sights", 1 ], [ "stock", 1 ] ], + "default_mods": [ "red_dot_sight" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "magazine_well": "75 ml", + "item_restriction": [ "afs_cartridge", "afs_archeotech_cartridge" ] + } + ] + }, { "id": "afs_v29", "type": "GUN", @@ -209,19 +255,10 @@ "ammo": [ "battery" ], "ranged_damage": { "damage_type": "heat", "amount": 4 }, "range": 15, - "ammo_to_fire": 5, + "ammo_to_fire": 0, "delete": { "flags": [ "NO_UNLOAD", "NO_RELOAD" ] }, - "ups_charges": 0, - "valid_mod_locations": [ - [ "accessories", 2 ], - [ "emitter", 1 ], - [ "grip", 1 ], - [ "lens", 1 ], - [ "rail", 1 ], - [ "sights", 1 ], - [ "stock", 1 ], - [ "underbarrel", 1 ] - ], + "energy_drain": "5 kJ", + "valid_mod_locations": [ [ "emitter", 1 ], [ "grip", 1 ], [ "lens", 1 ], [ "rail", 1 ], [ "sights", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", @@ -241,9 +278,9 @@ "price": "1 kUSD", "price_postapoc": "1 kUSD", "ammo": [ "battery" ], - "ammo_to_fire": 35, + "ammo_to_fire": 0, "delete": { "flags": [ "NO_UNLOAD", "NO_RELOAD" ] }, - "ups_charges": 0, + "energy_drain": "35 kJ", "modes": [ [ "DEFAULT", "pulse", 1 ], [ "BURST", "2s sequence", 2 ] ], "ranged_damage": { "damage_type": "heat", "amount": 25, "armor_penetration": 4 }, "pocket_data": [ @@ -268,8 +305,8 @@ "price_postapoc": 2000, "range": 20, "ammo": [ "battery" ], - "ammo_to_fire": 10, - "ups_charges": 0, + "ammo_to_fire": 0, + "energy_drain": "10 kJ", "ammo_effects": [ "LASER", "ROBOT_DAZZLE" ], "flags": [ "NEVER_JAMS", "NON_FOULING", "NEEDS_NO_LUBE", "FRAGILE" ], "pocket_data": [ @@ -291,9 +328,9 @@ "price": "1500 USD", "price_postapoc": "1500 USD", "ammo": [ "battery" ], - "ammo_to_fire": 75, + "ammo_to_fire": 0, "delete": { "flags": [ "NO_UNLOAD", "NO_RELOAD" ] }, - "ups_charges": 0, + "energy_drain": "75 kJ", "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/mining_rod.json b/data/Mainline_mods/Mods/Aftershock/items/gun/mining_rod.json index 05aa72344..8426f277e 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/mining_rod.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/mining_rod.json @@ -10,7 +10,6 @@ "volume": "5 L", "longest_side": "1500 mm", "to_hit": -1, - "bashing": 12, "material": [ "copper", "qt_steel", "superalloy" ], "ammo": [ "metal_rail" ], "skill": "rifle", @@ -18,9 +17,11 @@ "range": 60, "dispersion": 45, "durability": 8, - "ups_charges": 50, + "energy_drain": "50 kJ", "reload": 2000, "clip_size": 1, - "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "metal_rail": 1 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "metal_rail": 1 } } ], + "flags": [ "USE_UPS" ], + "melee_damage": { "bash": 12 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/plasma.json b/data/Mainline_mods/Mods/Aftershock/items/gun/plasma.json index 342a75a69..29a3de65c 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/plasma.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/plasma.json @@ -11,7 +11,6 @@ "price": "750 USD", "price_postapoc": "750 USD", "to_hit": -2, - "bashing": 6, "material": [ "plastic", "steel" ], "symbol": "(", "color": "yellow", @@ -24,15 +23,46 @@ "durability": 6, "loudness": 5, "reload": 50, - "valid_mod_locations": [ - [ "accessories", 4 ], - [ "grip", 1 ], - [ "rail", 1 ], - [ "sights", 1 ], - [ "sling", 1 ], - [ "stock", 1 ], - [ "underbarrel", 1 ] - ] + "valid_mod_locations": [ [ "grip", 1 ], [ "rail", 1 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], + "melee_damage": { "bash": 6 } + }, + { + "id": "afs_magnadrive_230k", + "type": "GUN", + "name": { "str": "Magnadrive 230K" }, + "copy-from": "afs_plasma_base", + "looks_like": "plasma_gun", + "description": "A heavy plasma railgun that easily defeats most forms of conventional armor and flash-incinerates anything behind it. Its large size and liability to overheat make it unsuitable for infantry use, but it is a common sight on military vehicles and in the hands of power-armored troops, especially when heavy armor is expected.", + "weight": "8500 g", + "volume": "4 L", + "longest_side": "45 cm", + "price": "15 kUSD", + "price_postapoc": "15 kUSD", + "range": 15, + "ranged_damage": [ { "damage_type": "afs_plasma", "amount": 80 } ], + "delete": { "ammo_effects": [ "FLAME" ] }, + "extend": { "flags": [ "OVERHEATS" ] }, + "ammo": [ "afs_shydrogen" ], + "dispersion": 200, + "ammo_to_fire": 2, + "overheat_threshold": 100, + "cooling_value": 3, + "heat_per_shot": 30, + "recoil": 30, + "durability": 4, + "loudness": 5, + "reload": 1800, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "magazine_well": "120 ml", + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "afs_20g_plasma", "afs_4g_plasma" ] + } + ], + "faults": [ "fault_overheat_explosion", "fault_overheat_venting", "fault_overheat_safety" ] }, { "id": "afs_pam-41", @@ -46,11 +76,9 @@ "price": "350 USD", "price_postapoc": "350 USD", "range": 5, - "ranged_damage": [ - { "damage_type": "bullet", "amount": 15, "armor_penetration": 30 }, - { "damage_type": "heat", "amount": 40, "armor_penetration": 10 } - ], + "ranged_damage": [ { "damage_type": "afs_plasma", "amount": 50 } ], "delete": { "ammo_effects": [ "FLAME" ] }, + "extend": { "flags": [ "OVERHEATS" ] }, "built_in_mods": [ "afs_terrible_sights" ], "ammo": [ "afs_shydrogen" ], "dispersion": 900, @@ -85,7 +113,7 @@ "charges_per_use": 2, "use_action": [ "OXYTORCH" ], "qualities": [ [ "WELD", 2 ] ], - "flags": [ "ALLOWS_REMOTE_USE" ], + "flags": [ "ALLOWS_REMOTE_USE", "NEVER_JAMS", "NON_FOULING", "NEEDS_NO_LUBE", "OVERHEATS" ], "gun_data": { "dispersion": 1500, "ammo_to_fire": 2, @@ -96,10 +124,10 @@ "delete": { "ammo_effects": [ "FLAME", "EXPLOSIVE_SMALL" ] }, "extend": { "ammo_effects": [ "DAZZLE_BEAM" ] }, "range": 3, - "ranged_damage": [ - { "damage_type": "bullet", "amount": 35, "armor_penetration": 30 }, - { "damage_type": "heat", "amount": 30, "armor_penetration": 10 } - ], + "overheat_threshold": 100, + "cooling_value": 3, + "heat_per_shot": 27, + "ranged_damage": [ { "damage_type": "afs_plasma", "amount": 45 } ], "valid_mod_locations": [ [ "sling", 1 ] ] }, "pocket_data": [ @@ -111,6 +139,7 @@ "max_contains_weight": "20 kg", "item_restriction": [ "afs_40g_plasma_civ" ] } - ] + ], + "faults": [ "fault_overheat_melting" ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/projectile.json b/data/Mainline_mods/Mods/Aftershock/items/gun/projectile.json index eafcbd766..72929a6cc 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/projectile.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/projectile.json @@ -1,26 +1,26 @@ [ { "id": "bio_skullgun_gun", - "looks_like": "glock_17", "type": "GUN", "name": { "str": "bionic skullgun" }, - "description": "Bionic one-shot subdermal .40 pistol integrated with your head.", + "description": "Bionic one-shot subdermal 10mm pistol integrated with your head.", "volume": "80 ml", "price": 0, "to_hit": -2, - "bashing": 3, "material": [ "superalloy", "plastic" ], "symbol": "(", "color": "magenta", - "skill": "shotgun", - "ammo": [ "40" ], - "ranged_damage": { "damage_type": "bullet", "amount": -8 }, + "skill": "pistol", + "ammo": [ "10mm" ], + "ranged_damage": { "damage_type": "bullet", "amount": -6 }, "dispersion": 855, "durability": 6, "clip_size": 1, - "reload": 200, - "flags": [ "NEVER_JAMS", "RELOAD_EJECT", "BIONIC_WEAPON", "TRADER_AVOID", "ZERO_WEIGHT" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40": 1 } } ] + "reload": 0, + "flags": [ "NEVER_JAMS", "RELOAD_EJECT", "BIONIC_WEAPON", "TRADER_AVOID", "ZERO_WEIGHT", "RELOAD_AND_SHOOT", "ALWAYS_AIMED" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "10mm": 1 } } ], + "melee_damage": { "bash": 3 }, + "hurt_part_when_fired": { "head": 10 } }, { "id": "afs_rebar_rifle", @@ -31,10 +31,10 @@ "description": "A single-shot, break-action, electrically propelled, steel rail launcher handcrafted from scrap. The hypervelocity metal stake that it fires is accelerated to the point of spontaneous combustion by a Lorentz force generated by electromagnetic induction, powered by a standard UPS.", "weight": "4213 g", "volume": "2500 ml", + "longest_side": "1005 mm", "price": 550000, "price_postapoc": 50000, "to_hit": -3, - "bashing": 10, "material": [ "steel", "wood" ], "symbol": "(", "color": "brown", @@ -45,9 +45,11 @@ "ammo": [ "metal_rail" ], "clip_size": 1, "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "metal_rail": 1 } } ], - "ups_charges": 40, + "energy_drain": "40 kJ", "reload": 1200, "valid_mod_locations": [ [ "grip", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "sights", 1 ], [ "rail mount", 1 ], [ "underbarrel mount", 1 ] ], - "ammo_effects": [ "TRAIL" ] + "ammo_effects": [ "TRAIL" ], + "flags": [ "USE_UPS" ], + "melee_damage": { "bash": 10 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/shot.json b/data/Mainline_mods/Mods/Aftershock/items/gun/shot.json new file mode 100644 index 000000000..c7aa9cd99 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/shot.json @@ -0,0 +1,87 @@ +[ + { + "id": "afs_shotgun", + "copy-from": "mossberg_590", + "type": "GUN", + "name": { "str": "Benelli 315" }, + "description": "A widely popular combat shotgun featuring minor iterative refinements to a base design nearly three centuries old. Whether the design is outdated or unsurpassable remains a matter of personal opinion.", + "variants": [ + { + "id": "vatforged", + "name": { "str": "vatforged shotgun" }, + "description": "A crude but otherwise serviceable pump-action shotgun built from a hacked or scavenged template. Frequently seen in the hands of frontier pirates, settlers or salvors. Not that such groups are much different from one another.", + "weight": 3 + }, + { + "id": "military", + "name": { "str": "m2101-UASTA shotgun" }, + "description": "The standard issue combat shotgun of UICA marine and colonial forces. Shot shells have poor performance against modern combat armor, so the M2101 is more often used during policing and peacekeeping operations.", + "weight": 2 + } + ] + }, + { + "id": "afs_raketa_shotgun", + "copy-from": "shotgun_base", + "looks_like": "remington_870", + "type": "GUN", + "name": { "str": "Raketa" }, + "description": "A massive TSKBEM-design shotgun intended for exosuit forces, the Raketa aka 'Rocket' is a magazine-fed bullpup shotgun featuring twin barrels. This design remains popular for extra-atmospheric operations as the 12ga rounds are less likely to pierce a ship or station's delicate hull.", + "weight": "8 kg", + "volume": "3064 ml", + "longest_side": "1250 mm", + "min_strength": 16, + "to_hit": -1, + "material": [ "qt_steel", "plastic", "carbide" ], + "symbol": "r", + "color": "light_gray", + "ammo": [ "shot" ], + "dispersion": 125, + "durability": 7, + "min_cycle_recoil": 1250, + "modes": [ [ "DEFAULT", "single", 1 ], [ "AUTO", "2 rd.", 2 ] ], + "barrel_volume": "500 ml", + "valid_mod_locations": [ + [ "sling", 1 ], + [ "mechanism", 4 ], + [ "brass catcher", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "sights mount", 1 ], + [ "underbarrel mount", 1 ] + ], + "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "afs_raketa30mag" ] } ], + "melee_damage": { "bash": 20 } + }, + { + "id": "afs_drotik_shotpistol", + "copy-from": "pistol_revolver", + "looks_like": "sw_619", + "type": "GUN", + "name": { "str": "Drotik Shotpistol" }, + "description": "A massive TSKBEM-designed 'sidearm' intended for exosuits and uplifts, the Drotik aka 'Dart' is a large revolver firing 12ga shells.", + "weight": "2250 g", + "volume": "1450 ml", + "longest_side": "475 mm", + "min_strength": 14, + "to_hit": -2, + "material": [ "qt_steel", "plastic", "carbide" ], + "symbol": "r", + "color": "light_gray", + "ammo": [ "shot" ], + "dispersion": 350, + "durability": 8, + "clip_size": 8, + "valid_mod_locations": [ [ "grip", 1 ], [ "mechanism", 4 ], [ "rail", 1 ], [ "sights", 1 ], [ "stock mount", 1 ], [ "underbarrel mount", 1 ] ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE", + "rigid": true, + "ammo_restriction": { "shot": 8 }, + "allowed_speedloaders": [ "afs_shot_speedloader8" ] + } + ], + "melee_damage": { "bash": 16 }, + "flags": [ "RELOAD_ONE", "RELOAD_EJECT", "NEVER_JAMS" ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gun/voltaic.json b/data/Mainline_mods/Mods/Aftershock/items/gun/voltaic.json index ffb7587a4..aff2ffcf7 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gun/voltaic.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gun/voltaic.json @@ -8,8 +8,8 @@ "price": "200 kUSD", "price_postapoc": "200 kUSD", "ammo": [ "battery" ], - "ammo_to_fire": 30, - "ups_charges": 0, + "ammo_to_fire": 0, + "energy_drain": "30 kJ", "modes": [ [ "DEFAULT", "Pulse ", 1 ] ], "ranged_damage": [ { "damage_type": "electric", "amount": 10 }, { "damage_type": "pure", "amount": 25 } ], "pocket_data": [ diff --git a/data/Mainline_mods/Mods/Aftershock/items/gunmods/shotguns.json b/data/Mainline_mods/Mods/Aftershock/items/gunmods/shotguns.json new file mode 100644 index 000000000..6e7b58422 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/gunmods/shotguns.json @@ -0,0 +1,23 @@ +[ + { + "id": "afs_magnetic_choke", + "type": "GUNMOD", + "name": { "str": "magnetic choke" }, + "//": "Yes lead isn't magnetic, no I don't care.", + "description": "A choke that uses a powerful cross-shaped electromagnet to pull the shot cloud together, greatly reducing the spread of shot. Prevents the use of slugs.", + "weight": "300 g", + "volume": "150 ml", + "longest_side": "4 cm", + "integral_longest_side": "1 cm", + "price": 78000, + "price_postapoc": 1500, + "material": [ "steel" ], + "symbol": ":", + "color": "dark_gray", + "location": "muzzle", + "mod_targets": [ "shotgun" ], + "install_time": "3 m", + "shot_spread_multiplier_modifier": -0.8, + "flags": [ "CHOKE" ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/gunmods/sights.json b/data/Mainline_mods/Mods/Aftershock/items/gunmods/sights.json index 51326d0c6..170f359fc 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/gunmods/sights.json +++ b/data/Mainline_mods/Mods/Aftershock/items/gunmods/sights.json @@ -44,5 +44,28 @@ "aim_speed_modifier": 15, "min_skills": [ [ "weapon", 2 ], [ "gun", 1 ] ], "flags": [ "DISABLE_SIGHTS" ] + }, + { + "id": "afs_smart_scope", + "type": "GUNMOD", + "name": { "str_sp": "ballistic computer" }, + "description": "An integrated ballistic computer completely replaces the sights of this weapon. Aiming depends on a small glass screen on which targets are automatically highlighted.", + "weight": "60 g", + "volume": "250 ml", + "integral_volume": "0 ml", + "integral_weight": "0 g", + "price": "10 kUSD", + "price_postapoc": "10 kUSD", + "install_time": "10 m", + "material": [ "steel" ], + "symbol": ":", + "color": "dark_gray", + "location": "sights", + "mod_targets": [ "smartgun" ], + "sight_dispersion": 0, + "field_of_view": 3000, + "aim_speed_modifier": 5000, + "min_skills": [ [ "weapon", 2 ], [ "gun", 1 ] ], + "flags": [ "DISABLE_SIGHTS" ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/id_cards.json b/data/Mainline_mods/Mods/Aftershock/items/id_cards.json new file mode 100644 index 000000000..7fbab4f2b --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/id_cards.json @@ -0,0 +1,50 @@ +[ + { + "type": "GENERIC", + "id": "crashing_ship_locker_card", + "symbol": ",", + "color": "blue", + "name": { "str": "ID card" }, + "description": "This is your personal ID card. The reverse side describes the protocol for using it; this grants you access to the barracks locker room.", + "price": 60000, + "flags": [ "AFS_CS_LOCKER_CARD" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "6 g", + "volume": "5 ml", + "category": "keys", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "crashing_ship_armory_card", + "symbol": ",", + "color": "red", + "name": { "str": "ID card" }, + "description": "This is an ID card you found. The reverse side describes the protocol for using it; this grants you access to the barracks locker room.", + "price": 60000, + "flags": [ "AFS_CS_ARMORY_CARD" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "6 g", + "volume": "5 ml", + "category": "keys", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "crashing_ship_exobay_card", + "symbol": ",", + "color": "yellow", + "name": { "str": "ID card" }, + "description": "This is an ID card you found. The reverse side describes the protocol for using it; this grants you access to the workshop's exosuit storage bay.", + "price": 60000, + "flags": [ "AFS_CS_EXOBAY_CARD" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "6 g", + "volume": "5 ml", + "category": "keys", + "to_hit": -3 + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/inactiverobot.json b/data/Mainline_mods/Mods/Aftershock/items/inactiverobot.json index e3fcec5af..5d16a9bfd 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/inactiverobot.json +++ b/data/Mainline_mods/Mods/Aftershock/items/inactiverobot.json @@ -8,7 +8,6 @@ "volume": "30 L", "price": 600000, "to_hit": -3, - "bashing": 8, "material": [ "alien_resin" ], "symbol": ";", "color": "green", @@ -21,7 +20,8 @@ "moves": 100, "skills": [ "cooking", "computer" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "id": "bot_tankbot", @@ -34,7 +34,6 @@ "volume": "250 L", "price": 100000000, "to_hit": -3, - "bashing": 8, "material": [ "steel" ], "symbol": ";", "color": "light_green", @@ -48,7 +47,8 @@ "moves": 500, "skills": [ "electronics", "computer" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "id": "bot_chickenbot", @@ -61,7 +61,6 @@ "volume": "250 L", "price": 100000000, "to_hit": -3, - "bashing": 8, "material": [ "steel" ], "symbol": ";", "color": "light_green", @@ -74,7 +73,8 @@ "difficulty": 10, "moves": 500, "skills": [ "electronics", "computer" ] - } + }, + "melee_damage": { "bash": 8 } }, { "id": "bot_tripod", @@ -86,7 +86,6 @@ "volume": "92500 ml", "price": 100000000, "to_hit": -3, - "bashing": 8, "material": [ "steel" ], "symbol": ";", "color": "light_green", @@ -100,7 +99,8 @@ "moves": 500, "skills": [ "electronics", "computer" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "type": "GENERIC", @@ -114,10 +114,9 @@ "material": [ "steel", "plastic" ], "weight": "430000 g", "volume": "187500 ml", - "bashing": 10, - "cutting": 6, "to_hit": -2, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 10, "cut": 6 } }, { "type": "GENERIC", @@ -131,10 +130,9 @@ "material": [ "steel", "plastic" ], "weight": "1223850 g", "volume": "875 L", - "bashing": 20, - "cutting": 15, "to_hit": -3, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 20, "cut": 15 } }, { "type": "GENERIC", @@ -148,10 +146,9 @@ "material": [ "steel", "plastic" ], "weight": "1023850 g", "volume": "1100 L", - "bashing": 20, - "cutting": 15, "to_hit": -3, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 20, "cut": 15 } }, { "id": "bot_sentinel_lx", @@ -162,7 +159,6 @@ "volume": "30 L", "price": 600000, "to_hit": -3, - "bashing": 8, "material": [ "aluminum", "plastic" ], "symbol": ";", "color": "green", @@ -171,9 +167,11 @@ "monster_id": "afs_mon_sentinel_lx", "difficulty": 4, "moves": 100, - "skills": [ "computer" ] + "skills": [ "computer" ], + "is_pet": true }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "id": "bot_wraitheon_kaburaya", @@ -184,7 +182,6 @@ "volume": "250 ml", "price": 5000, "to_hit": -3, - "bashing": 0, "material": [ "aluminum", "plastic" ], "symbol": ";", "color": "green", @@ -197,7 +194,8 @@ "moves": 100, "skills": [ "throw" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 0 } }, { "id": "bot_bloodhound_drone", @@ -208,8 +206,6 @@ "volume": "750 ml", "price": 60000, "to_hit": -3, - "bashing": 6, - "cutting": 6, "material": [ "aluminum", "plastic" ], "symbol": ",", "color": "light_green", @@ -221,9 +217,11 @@ "difficulty": 4, "moves": 60, "place_randomly": true, - "skills": [ "electronics", "computer" ] + "skills": [ "electronics", "computer" ], + "is_pet": true }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 6, "cut": 6 } }, { "id": "bot_laserturret_x-ray", @@ -235,7 +233,6 @@ "price": 600000, "price_postapoc": 12000, "to_hit": -3, - "bashing": 8, "material": [ "steel", "plastic" ], "symbol": ";", "color": "white", @@ -246,7 +243,8 @@ "moves": 100, "skills": [ "electronics", "computer" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "id": "bot_utilibot_beehive", @@ -260,7 +258,8 @@ "monster_id": "mon_utilibot_beehive", "difficulty": 1, "moves": 100, - "skills": [ "electronics", "computer" ] + "skills": [ "electronics", "computer" ], + "is_pet": true } }, { @@ -274,7 +273,6 @@ "price": 10000, "price_postapoc": 10000, "to_hit": -3, - "bashing": 6, "symbol": ";", "color": "dark_gray", "use_action": { @@ -282,9 +280,11 @@ "monster_id": "mon_medibot", "difficulty": 1, "moves": 100, - "skills": [ "electronics", "computer" ] + "skills": [ "electronics", "computer" ], + "is_pet": true }, - "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID", "SINGLE_USE" ] + "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID", "SINGLE_USE" ], + "melee_damage": { "bash": 6 } }, { "abstract": "bot_utilibot_base", @@ -296,11 +296,11 @@ "weight": "140 kg", "volume": "62500 ml", "to_hit": -3, - "bashing": 8, "material": [ "steel", "aluminum" ], "symbol": ";", "color": "dark_gray", - "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID", "SINGLE_USE" ] + "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID", "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "abstract": "bot_hack_base", @@ -312,12 +312,11 @@ "price": 10000, "price_postapoc": 10000, "to_hit": -3, - "bashing": 4, - "cutting": 4, "material": [ "aluminum", "plastic" ], "symbol": ";", "color": "light_green", - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 4, "cut": 4 } }, { "id": "bot_light_hack", @@ -349,10 +348,10 @@ "price": 10000, "price_postapoc": 10000, "to_hit": -3, - "bashing": 8, "symbol": ";", "color": "light_gray", - "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID", "SINGLE_USE" ] + "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID", "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "id": "bot_milbot_308", @@ -380,10 +379,10 @@ "price": 10000, "price_postapoc": 10000, "to_hit": -3, - "bashing": 8, "symbol": ";", "color": "light_gray", - "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID" ] + "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID" ], + "melee_damage": { "bash": 8 } }, { "abstract": "bot_skitterbot_base", @@ -396,10 +395,10 @@ "price": 10000, "price_postapoc": 10000, "to_hit": -3, - "bashing": 6, "symbol": ";", "color": "dark_gray", - "flags": [ "TRADER_AVOID", "SINGLE_USE" ] + "flags": [ "TRADER_AVOID", "SINGLE_USE" ], + "melee_damage": { "bash": 6 } }, { "id": "bot_skitterbot_rat", @@ -412,14 +411,14 @@ "volume": "1 L", "price": "200 USD", "to_hit": -3, - "bashing": 2, "use_action": { "type": "place_monster", "monster_id": "mon_skitterbot_rat", "difficulty": 1, "moves": 100, "skills": [ "electronics", "computer" ] - } + }, + "melee_damage": { "bash": 2 } }, { "id": "bot_skitterbot_grab", @@ -448,7 +447,8 @@ "monster_id": "mon_skitterbot_hunter", "difficulty": 1, "moves": 100, - "skills": [ "electronics", "computer" ] + "skills": [ "electronics", "computer" ], + "is_pet": true } }, { @@ -461,12 +461,11 @@ "material": [ "steel", "plastic" ], "weight": "62650 g", "volume": "30 L", - "bashing": 4, - "cutting": 4, "to_hit": -3, "symbol": ";", "color": "light_green", - "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID" ] + "flags": [ "LEAK_DAM", "RADIOACTIVE", "TRADER_AVOID" ], + "melee_damage": { "bash": 4, "cut": 4 } }, { "id": "bot_eyebot_heater", @@ -480,7 +479,8 @@ "monster_id": "mon_eyebot_heater", "difficulty": 1, "moves": 100, - "skills": [ "electronics", "computer" ] + "skills": [ "electronics", "computer" ], + "is_pet": true }, "flags": [ "SINGLE_USE" ] }, @@ -494,7 +494,6 @@ "price": 600000, "price_postapoc": 12000, "to_hit": -3, - "bashing": 8, "material": [ "steel", "plastic" ], "symbol": ";", "color": "white", @@ -505,6 +504,88 @@ "moves": 100, "skills": [ "electronics", "computer" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } + }, + { + "id": "bot_eyebot", + "looks_like": "broken_eyebot", + "type": "TOOL", + "name": { "str": "inactive eyebot" }, + "description": "An inactive eyebot. Using this item involves turning it on and launching the UAV. If reprogrammed and rewired successfully, the eyebot will then keep watch for intruders.", + "weight": "40750 g", + "volume": "30 L", + "price": 10000, + "price_postapoc": 500, + "to_hit": -3, + "material": [ "steel" ], + "symbol": ";", + "color": "light_green", + "use_action": { + "type": "place_monster", + "monster_id": "mon_eyebot", + "friendly_msg": "The eyebot hums and takes to the sky.", + "hostile_msg": "The eyebot beeps disapprovingly and focuses its camera on your face. Say cheese!", + "//": "Like most surveillance tech these likely have poor security. Secure the wifi!", + "difficulty": 1, + "moves": 100, + "skills": [ "electronics", "computer" ] + }, + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } + }, + { + "id": "bot_copbot", + "looks_like": "broken_copbot", + "type": "TOOL", + "name": { "str": "inactive police bot" }, + "description": "An inactive police robot. Using this item involves placing it on the ground and turning it on. If reprogrammed and rewired successfully, the police bot will then identify you as law enforcement, roam around or follow you, and attempt to detain lawbreakers.", + "weight": "81500 g", + "volume": "62500 ml", + "price": 100000, + "price_postapoc": 500, + "to_hit": -3, + "material": [ "steel" ], + "symbol": ";", + "color": "light_green", + "use_action": { + "type": "place_monster", + "monster_id": "mon_copbot", + "friendly_msg": "The police bot rolls into action, ready to pursue criminals.", + "hostile_msg": "A siren howls and lights flash as the police bot prepares to arrest you!", + "//": "Wheeled and must be easy-to-use for police deployment", + "difficulty": 3, + "moves": 100, + "skills": [ "electronics", "computer" ] + }, + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } + }, + { + "id": "bot_riotbot", + "looks_like": "broken_riotbot", + "type": "TOOL", + "name": { "str": "inactive riot control bot" }, + "description": "An inactive riot control bot. Using this item involves placing it on the ground and turning it on. If reprogrammed and rewired successfully, the robot will bring order and peace to the horde.", + "weight": "81500 g", + "volume": "62500 ml", + "price": 35000, + "price_postapoc": 1500, + "to_hit": -3, + "material": [ "steel" ], + "symbol": ";", + "color": "light_green", + "use_action": { + "type": "place_monster", + "monster_id": "mon_riotbot", + "friendly_msg": "The riot control bot rolls into action.", + "hostile_msg": "The riot control bot gasses you and approaches with a pair of handcuffs!", + "//": "Pretty easy but you want to be careful with the gas", + "difficulty": 4, + "moves": 150, + "skills": [ "electronics", "computer" ] + }, + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/item_enchants.json b/data/Mainline_mods/Mods/Aftershock/items/item_enchants.json new file mode 100644 index 000000000..c7b747b43 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/item_enchants.json @@ -0,0 +1,119 @@ +[ + { + "type": "enchantment", + "id": "ench_cold_armor", + "has": "WORN", + "condition": "ALWAYS", + "name": { "str": "Cold Barrier" }, + "description": "Reduces incoming cold damage by 25%.", + "values": [ { "value": "ARMOR_COLD", "multiply": -0.25 } ] + }, + { + "type": "enchantment", + "id": "afs_motion_sensor_wield", + "has": "WIELD", + "name": { "str": "Active Motion Detector" }, + "description": "Actively detects nearby movement.", + "condition": { "u_compare_var": "afs_motion_sensor_ping", "type": "flag", "context": "motion_sensor", "op": ">=", "value": 1 }, + "values": [ { "value": "MOTION_VISION_RANGE", "add": 24 } ] + }, + { + "type": "enchantment", + "id": "afs_ench_esab", + "has": "WIELD", + "condition": "ACTIVE", + "name": { "str": "Super Heated Blade" }, + "description": "The energy radiating from this weapon cuts and burns with ease.", + "values": [ { "value": "ITEM_DAMAGE_CUT", "add": 18 }, { "value": "ITEM_DAMAGE_HEAT", "add": 35 } ] + }, + { + "type": "enchantment", + "id": "afs_ench_exo_big_carry", + "has": "WORN", + "condition": "ACTIVE", + "name": { "str": "Load Support Module" }, + "values": [ { "value": "CARRY_WEIGHT", "add": 20000 } ], + "description": "Provides 20kg of additional storage." + }, + { + "type": "enchantment", + "id": "afs_ench_exo_small_carry", + "has": "WORN", + "condition": "ACTIVE", + "name": { "str": "Small Load Support Module" }, + "values": [ { "value": "CARRY_WEIGHT", "add": 10000 } ], + "description": "Provides 10kg of additional storage." + }, + { + "type": "enchantment", + "id": "afs_ench_exo_recoil", + "has": "WORN", + "condition": "ACTIVE", + "name": { "str": "Recoil Mitigation System" }, + "values": [ { "value": "WEAPON_DISPERSION", "multiply": -0.3 } ], + "description": "Reduces weapon dispersion." + }, + { + "type": "enchantment", + "id": "afs_ench_exo_forcefield_bash_cut", + "has": "WORN", + "condition": "ACTIVE", + "name": { "str": "Low Energy Forcefield" }, + "values": [ { "value": "ARMOR_BASH", "add": -25 }, { "value": "ARMOR_CUT", "add": -25 } ], + "description": "Reduces incoming bash and cut damage by 25." + }, + { + "type": "enchantment", + "id": "afs_ench_exo_forcefield_ballistic_pierce", + "has": "WORN", + "condition": "ACTIVE", + "name": { "str": "High Energy Forcefield" }, + "values": [ { "value": "ARMOR_BULLET", "add": -40 }, { "value": "ARMOR_STAB", "add": -40 } ], + "description": "Reduces incoming pierce and bullet damage by 40." + }, + { + "type": "enchantment", + "id": "afs_ench_exo_AR_module", + "has": "WORN", + "condition": "ACTIVE", + "name": { "str": "Education Assist" }, + "values": [ { "value": "LEARNING_FOCUS", "add": 15 } ], + "description": "Assists with learning and study." + }, + { + "id": "ench_climate_control_all_permanent_improved", + "name": { "str": "Improved Complete Climate Control" }, + "description": "You are wearing equipment that helps handle harsh climates.", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 100 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 100 } ] + }, + { + "id": "ench_climate_control_all_permanent_greater", + "name": { "str": "Extreme Complete Climate Control" }, + "description": "You are wearing equipment that helps handle harsh climates.", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 150 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 150 } ] + }, + { + "id": "ench_climate_control_all_permanent_space", + "name": { "str": "Space Climate Control" }, + "description": "You are wearing equipment that helps handle harsh climates.", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 300 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 300 } ] + }, + { + "id": "ench_smart_gun", + "name": { "str": "Smart Gun" }, + "description": "Your gun aims itself, reducing your dispersion by 90%.", + "type": "enchantment", + "has": "WIELD", + "condition": "ALWAYS", + "values": [ { "value": "WEAPON_DISPERSION", "multiply": -0.9 } ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/items.json b/data/Mainline_mods/Mods/Aftershock/items/items.json index 1245daad3..fb816c915 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/items.json +++ b/data/Mainline_mods/Mods/Aftershock/items/items.json @@ -17,18 +17,18 @@ { "type": "GENERIC", "id": "afs_radiobeacon", - "name": { "str": "orbital distress beacon" }, - "description": "A distress radio beacon that automatically engages in the event of a crash. You could plant it outside of the pod to attempt to attract rescuers, or more likely, bandits. Alternatively, you could disassemble it for scrap.", + "name": { "str": "broken distress beacon" }, + "description": "Truly putting the 'distress' in 'distress beacon,' this one has a huge hole in the front. It will not be alerting anyone today. Perhaps you could disassemble it for scrap.", "weight": "340 g", "volume": "1 L", "category": "spare_parts", "price": 0, "price_postapoc": 50, "to_hit": -1, - "bashing": 6, "material": [ "plastic", "aluminum" ], "symbol": ";", - "color": "yellow" + "color": "yellow", + "melee_damage": { "bash": 6 } }, { "type": "GENERIC", @@ -59,8 +59,8 @@ "looks_like": "scrap", "weight": "450 g", "volume": "100 ml", - "bashing": 1, - "to_hit": -2 + "to_hit": -2, + "melee_damage": { "bash": 1 } }, { "id": "nuclear_waste", @@ -127,10 +127,10 @@ "color": "light_green", "use_action": { "type": "deploy_furn", "furn_type": "f_atomic_butter_churn" }, "to_hit": -2, - "bashing": 5, "material": [ "plastic", "steel" ], "//": "I figured bionic preppers would have a sci-fi solution to some low tech problems.", - "flags": [ "LEAK_DAM", "RADIOACTIVE", "DURABLE_MELEE" ] + "flags": [ "LEAK_DAM", "RADIOACTIVE", "DURABLE_MELEE" ], + "melee_damage": { "bash": 5 } }, { "id": "atomic_pseudo_churn", @@ -141,12 +141,12 @@ "volume": "11356 ml", "price": 20000, "to_hit": -2, - "bashing": 9, "material": [ "plastic", "steel" ], "qualities": [ [ "CONTAIN", 1 ], [ "CHURN", 2 ] ], "symbol": "H", "color": "light_cyan", - "flags": [ "ALLOWS_REMOTE_USE" ] + "flags": [ "ALLOWS_REMOTE_USE" ], + "melee_damage": { "bash": 9 } }, { "id": "afs_titanium_small", @@ -225,5 +225,19 @@ "symbol": "[", "color": "light_gray", "flags": [ "STURDY" ] + }, + { + "id": "afs_glass_device", + "type": "ARMOR", + "name": { "str": "glass device" }, + "description": "This transparent slate of computation glass was once an incredibly versatile hypercloud access point. With all its functions dependent on a now broken FTL communications network, it's not really useful for anything.", + "weight": "80 g", + "volume": "80 ml", + "price": 700, + "price_postapoc": 500, + "material": [ "glass" ], + "symbol": "[", + "color": "light_gray", + "flags": [ "STURDY" ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/magazine/10mm.json b/data/Mainline_mods/Mods/Aftershock/items/magazine/10mm.json index e211e6613..9d3e53208 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/magazine/10mm.json +++ b/data/Mainline_mods/Mods/Aftershock/items/magazine/10mm.json @@ -15,5 +15,22 @@ "ammo_type": [ "afs_10mm" ], "flags": [ "MAG_COMPACT" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "afs_10mm": 20 } } ] + }, + { + "id": "afs_silvergram_22mag", + "looks_like": "glock17_17", + "type": "MAGAZINE", + "name": { "str": "Silvergram 22-round magazine" }, + "description": "A transparent polymer 22-round magazine for Silvergram pattern smart pistols.", + "weight": "70 g", + "volume": "103 ml", + "longest_side": "114 mm", + "price": 2400, + "material": [ "plastic", "superalloy" ], + "symbol": "#", + "color": "light_gray", + "ammo_type": [ "afs_10mm_smart" ], + "flags": [ "MAG_COMPACT" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "afs_10mm_smart": 22 } } ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/magazine/5x50.json b/data/Mainline_mods/Mods/Aftershock/items/magazine/5x50.json new file mode 100644 index 000000000..4d83c7ef0 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/magazine/5x50.json @@ -0,0 +1,38 @@ +[ + { + "id": "afs_5x50_100_mag", + "looks_like": "mp5mag", + "type": "MAGAZINE", + "name": { "str": "5x50mm 100-round magazine" }, + "description": "A 100-round box magazine for use with 5x50mm flechette firearms. Designated as RMFB100.", + "weight": "360 g", + "volume": "630ml", + "price": 15000, + "price_postapoc": 750, + "material": [ "superalloy", "plastic" ], + "symbol": "#", + "color": "dark_gray", + "ammo_type": [ "afs_5x50" ], + "reload_time": 60, + "flags": [ "MAG_COMPACT" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "afs_5x50": 100 } } ] + }, + { + "id": "afs_5x50_50_mag", + "looks_like": "mp5mag", + "type": "MAGAZINE", + "name": { "str": "5x50mm 50-round magazine" }, + "description": "A 50-round box magazine for use with 5x50mm flechette firearms. Designated as RMFB50.", + "weight": "240 g", + "volume": "315ml", + "price": 12500, + "price_postapoc": 500, + "material": [ "superalloy", "plastic" ], + "symbol": "#", + "color": "dark_gray", + "ammo_type": [ "afs_5x50" ], + "reload_time": 50, + "flags": [ "MAG_COMPACT" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "afs_5x50": 50 } } ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/magazine/plasma.json b/data/Mainline_mods/Mods/Aftershock/items/magazine/plasma.json index 80ca3b7b2..1a5384683 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/magazine/plasma.json +++ b/data/Mainline_mods/Mods/Aftershock/items/magazine/plasma.json @@ -18,6 +18,25 @@ "reload_time": 10, "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "airtight": true, "ammo_restriction": { "afs_shydrogen": 4 } } ] }, + { + "id": "afs_20g_plasma", + "looks_like": "plasma", + "type": "MAGAZINE", + "name": { "str": "20g plasma cell" }, + "description": "A reinforced canister that can safely store up to 20 grams of solid hydrogen in a cryo-pressurized state.", + "weight": "30 g", + "volume": "120 ml", + "price": "1400 USD", + "price_postapoc": "1400 USD", + "material": [ "hydrogen_cell" ], + "symbol": "o", + "color": "light_blue", + "ammo_type": [ "afs_shydrogen" ], + "flags": [ "NO_UNLOAD", "NO_RELOAD" ], + "capacity": 4, + "reload_time": 10, + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "airtight": true, "ammo_restriction": { "afs_shydrogen": 20 } } ] + }, { "id": "afs_40g_plasma_civ", "looks_like": "plasma", diff --git a/data/Mainline_mods/Mods/Aftershock/items/magazine/shot.json b/data/Mainline_mods/Mods/Aftershock/items/magazine/shot.json new file mode 100644 index 000000000..69c51b0f3 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/magazine/shot.json @@ -0,0 +1,35 @@ +[ + { + "id": "afs_raketa30mag", + "looks_like": "shotbelt_20", + "type": "MAGAZINE", + "name": { "str": "Raketa 30-round shotgun magazine" }, + "description": "A removable 30-round horizontal magazine, for use with the Raketa shotgun.", + "variant_type": "gun", + "weight": "460 g", + "volume": "1 L", + "material": [ "plastic" ], + "symbol": "=", + "color": "dark_gray", + "ammo_type": [ "shot" ], + "reload_time": 180, + "flags": [ "MAG_BULKY" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "shot": 30 } } ] + }, + { + "id": "afs_shot_speedloader8", + "looks_like": "38_speedloader", + "type": "MAGAZINE", + "name": { "str": "Drotik speedloader" }, + "description": "This speedloader holds up to eight 12ga shotgun shells, intended for use with the Drotik.", + "weight": "150 g", + "volume": "350 ml", + "material": [ "superalloy", "plastic" ], + "symbol": "o", + "color": "dark_gray", + "ammo_type": [ "shot" ], + "capacity": 8, + "flags": [ "SPEEDLOADER" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "shot": 8 } } ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/materials.json b/data/Mainline_mods/Mods/Aftershock/items/materials.json index f26d778de..136d4ba69 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/materials.json +++ b/data/Mainline_mods/Mods/Aftershock/items/materials.json @@ -4,17 +4,13 @@ "id": "titanium", "name": "Titanium", "density": 10, - "bash_resist": 4, - "cut_resist": 9, - "bullet_resist": 7, - "acid_resist": 14, - "fire_resist": 4, - "elec_resist": 8, "chip_resist": 20, "repaired_with": "afs_scrap_titanium", "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], "bash_dmg_verb": "dented", - "cut_dmg_verb": "scratched" + "cut_dmg_verb": "scratched", + "resist": { "bash": 4, "cut": 9, "acid": 14, "heat": 4, "bullet": 7, "electric": 8 }, + "repair_difficulty": 5 }, { "type": "material", @@ -24,70 +20,65 @@ "specific_heat_liquid": 0.82, "specific_heat_solid": 0.45, "latent_heat": 273, - "bash_resist": 3, - "cut_resist": 3, - "bullet_resist": 2, - "acid_resist": 5, - "fire_resist": 5, - "elec_resist": 0, "chip_resist": 10, "breathability": "GOOD", "dmg_adj": [ "marked", "dented", "scarred", "broken" ], "bash_dmg_verb": "ripped", - "cut_dmg_verb": "cut" + "cut_dmg_verb": "cut", + "resist": { "bash": 3, "cut": 3, "acid": 5, "heat": 5, "bullet": 2, "electric": 0 }, + "repair_difficulty": 10 }, { "type": "material", "id": "vacuum_carbide", - "name": "Vacuum-cast carbide", + "name": "Vacuum-cast Carbide", "density": 18, - "bash_resist": 8, - "cut_resist": 14, - "bullet_resist": 12, - "acid_resist": 17, - "fire_resist": 14, - "elec_resist": -4, "chip_resist": 25, "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], "bash_dmg_verb": "dented", "cut_dmg_verb": "scratched", - "//": "only to be used in encumbering armors." + "//": "only to be used in encumbering armors.", + "resist": { "bash": 8, "cut": 14, "acid": 17, "heat": 14, "bullet": 12, "electric": -4 }, + "repair_difficulty": 10 }, { "type": "material", "id": "nanoprinted_alloy", - "name": "Nanoprinted alloy mesh", + "name": "Nanoprinted Alloy Mesh", "density": 6, - "bash_resist": 4, - "cut_resist": 6, - "bullet_resist": 8, - "acid_resist": 6, - "fire_resist": 2, - "elec_resist": 0, "chip_resist": 4, "dmg_adj": [ "marked", "dented", "scarred", "broken" ], "bash_dmg_verb": "ripped", "cut_dmg_verb": "cut", - "//": "lightweight high-protection-value armors that degrade easily." + "//": "lightweight high-protection-value armors that degrade easily.", + "resist": { "bash": 4, "cut": 6, "acid": 6, "heat": 2, "bullet": 8, "electric": 0 }, + "repair_difficulty": 9 }, { "type": "material", "id": "clearcrete", - "name": "clearcrete", + "name": "Clearcrete", "density": 40, "specific_heat_liquid": 0.82, "specific_heat_solid": 0.45, "latent_heat": 273, - "bash_resist": 10, - "cut_resist": 6, - "bullet_resist": 100, - "acid_resist": 6, - "fire_resist": 100, - "elec_resist": 10, "chip_resist": 30, - "repaired_with": "scrap", "dmg_adj": [ "scratched", "cut", "cracked", "shattered" ], "bash_dmg_verb": "cracked", - "cut_dmg_verb": "scratched" + "cut_dmg_verb": "scratched", + "resist": { "bash": 10, "cut": 6, "acid": 6, "heat": 100, "bullet": 100, "electric": 10 }, + "repair_difficulty": 10 + }, + { + "type": "material", + "id": "enamel", + "name": "Enamel", + "density": 6, + "chip_resist": 2, + "dmg_adj": [ "scratched", "chipped", "cracked", "shattered" ], + "bash_dmg_verb": "chipped", + "cut_dmg_verb": "scratched", + "resist": { "bash": 4, "cut": 7, "acid": 2, "heat": 4, "bullet": 6, "electric": 8 }, + "repair_difficulty": 7 } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/migration_items.json b/data/Mainline_mods/Mods/Aftershock/items/migration_items.json new file mode 100644 index 000000000..6aa1d6391 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/migration_items.json @@ -0,0 +1,43 @@ +[ + { + "id": "5x50dart", + "//": "5x50 migrations valid until obsolete basedgame 5x50 items are migrated", + "type": "MIGRATION", + "replace": "afs_5x50dart" + }, + { + "id": "5x50heavy", + "type": "MIGRATION", + "replace": "afs_5x50heavy" + }, + { + "id": "reloaded_5x50dart", + "type": "MIGRATION", + "replace": "afs_reloaded_5x50dart" + }, + { + "id": "needlegun", + "type": "MIGRATION", + "replace": "afs_needlegun" + }, + { + "id": "needlepistol", + "type": "MIGRATION", + "replace": "afs_needlepistol" + }, + { + "id": "5x50_hull", + "type": "MIGRATION", + "replace": "afs_5x50_hull" + }, + { + "id": "5x50_50_mag", + "type": "MIGRATION", + "replace": "afs_5x50_50_mag" + }, + { + "id": "5x50_100_mag", + "type": "MIGRATION", + "replace": "afs_5x50_100_mag" + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/mutagen.json b/data/Mainline_mods/Mods/Aftershock/items/mutagen.json index 43d4ca652..7c48b8392 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/mutagen.json +++ b/data/Mainline_mods/Mods/Aftershock/items/mutagen.json @@ -20,9 +20,13 @@ "copy-from": "mutagen_flavor", "type": "COMESTIBLE", "name": "mi-go mutagen", - "description": "An extremely rare mutagen cocktail, it smells of sulphur and glows orange.", + "description": "An extremely rare mutagen cocktail, it smells of sulfur and glows orange.", "price": 500000, - "vitamins": [ [ "mutagen_migo", 175 ], [ "mutagen", 125 ] ] + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the mi-go mutagen.", + "vitamins": [ [ "mutagen_migo", 175 ], [ "mutagen", 125 ] ] + } }, { "id": "iv_mutagen_mastodon", @@ -47,6 +51,10 @@ "name": { "str": "mastodon mutagen" }, "description": "An extremely rare mutagen cocktail, it seeks to cure what's deep inside.", "price": 500000, - "vitamins": [ [ "mutagen_mastodon", 175 ], [ "mutagen", 125 ] ] + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the mastodon mutagen.", + "vitamins": [ [ "mutagen_mastodon", 175 ], [ "mutagen", 125 ] ] + } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/nanofab_templates.json b/data/Mainline_mods/Mods/Aftershock/items/nanofab_templates.json new file mode 100644 index 000000000..84ba0c3b8 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/items/nanofab_templates.json @@ -0,0 +1,12 @@ +[ + { + "type": "GENERIC", + "id": "afs_10mm_smart_template", + "copy-from": "standard_template_construct", + "color": "yellow", + "name": { "str": "Wraitheon production chip" }, + "description": "An encrypted Wraitheon industrial production chip. The executive logo embossed on its lower right imply its contents are extremely valuable.", + "nanofab_template_group": "afs_template_10mm_smart", + "template_requirements": "afs_nanofab_material_3" + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/items/obsolete.json b/data/Mainline_mods/Mods/Aftershock/items/obsolete.json index 5e27cc23b..bb664714b 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/obsolete.json +++ b/data/Mainline_mods/Mods/Aftershock/items/obsolete.json @@ -41,164 +41,41 @@ "price_postapoc": 10000, "material": [ "steel" ], "to_hit": -4, - "bashing": 8, "flags": [ "DURABLE_MELEE" ], - "looks_like": "minifridge" + "looks_like": "minifridge", + "melee_damage": { "bash": 8 } }, { "type": "vehicle_part", "id": "afs_fridge", "copy-from": "minifridge", "name": { "str": "refrigerator" }, - "symbol": "{", "categories": [ "cargo" ], "color": "white", "broken_color": "white", "looks_like": "minifridge", "durability": 400, "description": "A medium-sized household refrigerator, converted to utilize vehicle power. When turned on, food inside will be cooled, extending the time it has before spoiling.", - "epower": -100, - "size": 1200, - "item": "afs_fridge" + "epower": "-100 W", + "size": "300 L", + "item": "afs_fridge", + "variants": [ { "symbols": "{", "symbols_broken": "#" } ] }, { "type": "vehicle_part", "id": "afs_freezer", "copy-from": "minifreezer", "name": { "str": "freezer" }, - "symbol": "{", "categories": [ "cargo" ], "color": "light_blue", "broken_color": "light_blue", "looks_like": "minifridge", "durability": 400, "description": "A household fridge, converted to run at a much lower temperature and on vehicle power. When turned on, food inside will be frozen, completely stopping it from spoiling.", - "epower": -120, - "size": 1200, - "item": "afs_freezer" - }, - { - "type": "vehicle_part", - "id": "afs_metal_rig", - "name": { "str": "MetalMaster forge buddy" }, - "symbol": "&", - "categories": [ "utility" ], - "color": "red", - "broken_symbol": "x", - "broken_color": "red", - "looks_like": "welding_rig", - "damage_modifier": 10, - "durability": 200, - "description": "A welding and metalworking station, powered by the vehicle's battery. 'e'xamine the forge rig to utilize its welder or soldering iron; you'll still need glare protection.", - "size": 200, - "item": "afs_metal_rig", - "location": "center", - "requirements": { - "install": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "repair": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, - "flags": [ "CARGO", "OBSTACLE", "COVERED" ], - "pseudo_tools": [ { "id": "welder", "hotkey": "w" }, { "id": "soldering_iron", "hotkey": "s" }, { "id": "forge" }, { "id": "kiln" } ], - "breaks_into": [ - { "item": "steel_lump", "count": [ 3, 6 ] }, - { "item": "steel_chunk", "count": [ 3, 6 ] }, - { "item": "scrap", "count": [ 3, 6 ] }, - { "item": "welder", "charges": 0, "prob": 50 }, - { "item": "forge", "charges": 0, "prob": 50 }, - { "item": "kiln", "charges": 0, "prob": 50 } - ] - }, - { - "type": "vehicle_part", - "id": "afs_cooking_rig", - "name": { "str": "cooking rig" }, - "symbol": "&", - "categories": [ "utility" ], - "color": "blue", - "broken_symbol": "x", - "broken_color": "blue", - "looks_like": "kitchen_unit", - "damage_modifier": 10, - "durability": 125, - "description": "An all-in-one kitchen unit and chemistry lab. 'e'xamine it to use its hotplate to heat up food or drinks.", - "size": 200, - "item": "afs_cooking_rig", - "location": "center", - "requirements": { - "install": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "repair": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, - "flags": [ "CARGO", "OBSTACLE", "COVERED", "FLAT_SURF" ], - "pseudo_tools": [ - { "id": "water_faucet" }, - { "id": "hotplate", "hotkey": "h" }, - { "id": "pot" }, - { "id": "pan" }, - { "id": "chemistry_set" }, - { "id": "electrolysis_kit" } - ], - "breaks_into": [ - { "item": "steel_lump", "count": [ 6, 9 ] }, - { "item": "steel_chunk", "count": [ 6, 9 ] }, - { "item": "scrap", "count": [ 6, 9 ] }, - { "item": "pot", "prob": 50 }, - { "item": "pan", "prob": 50 }, - { "item": "chemistry_set", "charges": 0, "prob": 50 }, - { "item": "hotplate", "charges": 0, "prob": 50 } - ] - }, - { - "type": "vehicle_part", - "id": "afs_kitchen_rig", - "name": { "str": "KitchenMaster cooking buddy" }, - "symbol": "&", - "categories": [ "utility" ], - "color": "yellow", - "broken_symbol": "x", - "broken_color": "yellow", - "looks_like": "kitchen_unit", - "damage_modifier": 10, - "durability": 200, - "description": "An all-in-one kitchen unit, chemistry lab, and food preparation area. 'e'xamine it to use its hotplate to heat up food or drinks.", - "size": 200, - "item": "afs_kitchen_rig", - "location": "center", - "requirements": { - "install": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "repair": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, - "flags": [ "CARGO", "OBSTACLE", "COVERED", "FLAT_SURF" ], - "pseudo_tools": [ - { "id": "water_faucet" }, - { "id": "vac_sealer" }, - { "id": "dehydrator" }, - { "id": "food_processor" }, - { "id": "press" }, - { "id": "puller" }, - { "id": "hotplate", "hotkey": "h" }, - { "id": "pot" }, - { "id": "pan" }, - { "id": "chemistry_set" }, - { "id": "electrolysis_kit" }, - { "id": "water_purifier", "hotkey": "p" } - ], - "breaks_into": [ - { "item": "steel_lump", "count": [ 9, 18 ] }, - { "item": "steel_chunk", "count": [ 9, 18 ] }, - { "item": "scrap", "count": [ 9, 18 ] }, - { "item": "pot", "prob": 50 }, - { "item": "pan", "prob": 50 }, - { "item": "chemistry_set", "charges": 0, "prob": 50 }, - { "item": "hotplate", "charges": 0, "prob": 50 }, - { "item": "water_purifier", "charges": 0, "prob": 50 }, - { "item": "vac_sealer", "charges": 0, "prob": 50 }, - { "item": "dehydrator", "charges": 0, "prob": 50 }, - { "item": "food_processor", "charges": 0, "prob": 50 }, - { "item": "press", "prob": 50 } - ] + "epower": "-120 W", + "size": "300 L", + "item": "afs_freezer", + "variants": [ { "symbols": "{", "symbols_broken": "#" } ] }, { "id": "afs_freezer", @@ -209,27 +86,6 @@ "description": "This refurbished refrigerator has been stripped of much of its internal components and converted to run at a much lower temperature, causing it to serve as a freezer for more power. Like its predecessor, it runs on vehicle power.", "color": "light_blue" }, - { - "type": "GENERIC", - "id": "afs_metal_rig", - "copy-from": "vehicle_rig", - "name": { "str": "MetalMaster forge buddy", "str_pl": "MetalMaster forge buddies" }, - "description": "From the makers of the best-selling* FOODCO kitchen buddy comes the MetalMaster forge buddy, for all your metalworking, firing, and welding needs! It's just as clunky and awkward as the thing it's spinning off, and still requires a vehicle battery to function." - }, - { - "type": "GENERIC", - "id": "afs_kitchen_rig", - "copy-from": "vehicle_rig", - "name": { "str": "KitchenMaster cooking buddy", "str_pl": "KitchenMaster cooking buddies" }, - "description": "Because it *clearly* needed one, this large all-in-one station provides the functions of FOODCO's kitchen buddy, now with complementary fume hoods and chemistry materials. Why a chef would need a chemical rig is anyone's guess, but you can mount it on a vehicle to make use of it." - }, - { - "type": "GENERIC", - "id": "afs_cooking_rig", - "copy-from": "vehicle_rig", - "name": { "str": "cooking rig" }, - "description": "Skillet, pot, hotplate, and chemistry set; everything you need to cook food and chemicals. Includes proper fume vents and a separator, so you don't contaminate your food with toxic chemicals." - }, { "id": "afs_bio_precision_solderers", "copy-from": "bionic_general", @@ -252,23 +108,22 @@ "price_postapoc": 50000, "material": [ "superalloy", "kevlar" ], "material_thickness": 2, + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ACTIVE", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 50 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 50 } ] + } + ] + }, "pocket_data": [ { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "3 kg", "moves": 80 }, { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "3 kg", "moves": 80 } ], "warmth": 20, "environmental_protection": 5, - "flags": [ - "CLIMATE_CONTROL", - "ELECTRIC_IMMUNE", - "RAD_PROOF", - "WATERPROOF", - "COLLAR", - "THERMOMETER", - "ONLY_ONE", - "OUTER", - "STURDY" - ], + "flags": [ "ELECTRIC_IMMUNE", "RAD_PROOF", "WATERPROOF", "COLLAR", "THERMOMETER", "ONLY_ONE", "OUTER", "STURDY" ], "looks_like": "depowered_armor", "armor": [ { @@ -487,11 +342,11 @@ "ammo_type": "40x46mm", "casing": "40x46mm_m118_casing", "range": 40, - "bashing": 5, "dispersion": 30, "recoil": 225, "drop": "40mmEMP_act", - "effects": [ "COOKOFF", "NEVER_MISFIRES", "NO_EMBED" ] + "effects": [ "COOKOFF", "NEVER_MISFIRES", "NO_EMBED" ], + "melee_damage": { "bash": 5 } }, { "id": "40mmEMP_act", @@ -509,13 +364,7 @@ "initial_charges": 0, "max_charges": 0, "turns_per_charge": 1, - "use_action": { - "type": "explosion", - "draw_explosion_radius": 8, - "draw_explosion_color": "light_blue", - "emp_blast_radius": 8, - "sound_volume": 0 - }, + "use_action": { "type": "explosion", "draw_explosion_radius": 8, "draw_explosion_color": "light_blue", "emp_blast_radius": 8 }, "flags": [ "TRADER_AVOID" ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/robotparts.json b/data/Mainline_mods/Mods/Aftershock/items/robotparts.json index 362445d1d..ea64a8a5c 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/robotparts.json +++ b/data/Mainline_mods/Mods/Aftershock/items/robotparts.json @@ -137,5 +137,19 @@ "material": [ "steel" ], "category": "spare_parts", "color": "red_green" + }, + { + "type": "GENERIC", + "id": "reverse_jointed_legs", + "name": { "str": "set of reverse-jointed legs", "str_pl": "sets of reverse-jointed legs" }, + "description": "A set of reverse-jointed legs, like the ones found under a chicken walker.", + "symbol": "k", + "color": "light_gray", + "weight": "60000 g", + "volume": "20 L", + "price": 500000, + "price_postapoc": 250, + "material": [ "steel" ], + "category": "spare_parts" } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/seed.json b/data/Mainline_mods/Mods/Aftershock/items/seed.json index af819a26d..88f341f2e 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/seed.json +++ b/data/Mainline_mods/Mods/Aftershock/items/seed.json @@ -3,13 +3,12 @@ "id": "seed_pineapple", "copy-from": "seed", "type": "COMESTIBLE", - "name": { "str_sp": "pineapple stem" }, + "name": { "str_sp": "pineapple roots" }, "description": "Roots of a pineapple plant, for growing your own.", "weight": "152 g", - "price": 160, - "charges": 2, - "stack_size": 8, - "seed_data": { "plant_name": "pineapple", "fruit": "pineapple", "byproducts": [ "straw_pile" ], "grow": "280 days" } + "price": "20 cent", + "seed_data": { "plant_name": "pineapple", "fruit": "pineapple", "byproducts": [ "straw_pile" ], "grow": "280 days" }, + "volume": "31 ml" }, { "id": "seed_melon", @@ -31,15 +30,15 @@ "id": "seed_orange", "copy-from": "seed_fruit", "type": "COMESTIBLE", - "name": { "str_sp": "orange vine" }, - "description": "Some orange vine. Definitely GMO.", + "name": { "str_sp": "orange vines" }, + "description": "Some orange vines. Definitely GMO.", "seed_data": { "plant_name": "orange", "fruit": "orange", "byproducts": [ "withered" ], "grow": "91 days" } }, { "id": "seed_lemon", "copy-from": "seed_fruit", "type": "COMESTIBLE", - "name": { "str_sp": "lemon vine" }, + "name": { "str_sp": "lemon vines" }, "description": "Some lemon vines. Definitely GMO.", "seed_data": { "plant_name": "lemon", "fruit": "lemon", "byproducts": [ "withered" ], "grow": "91 days" } }, @@ -47,7 +46,7 @@ "id": "seed_coconut", "copy-from": "seed_fruit", "type": "COMESTIBLE", - "name": { "str_sp": "subterraenean coconut" }, + "name": { "str": "subterraenean coconut" }, "description": "Proof that man went too far before the Cataclysm.", "seed_data": { "plant_name": "coconut", "fruit": "coconut", "byproducts": [ "withered" ], "grow": "120 days" } } diff --git a/data/Mainline_mods/Mods/Aftershock/items/tool_armor.json b/data/Mainline_mods/Mods/Aftershock/items/tool_armor.json index efcf07eb7..130e4a785 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/tool_armor.json +++ b/data/Mainline_mods/Mods/Aftershock/items/tool_armor.json @@ -15,6 +15,7 @@ "volume": "4500 ml", "charges_per_use": 5, "ammo": "battery", + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_all" } ] }, "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", @@ -34,7 +35,7 @@ "warmth": 20, "environmental_protection": 10, "material_thickness": 1, - "flags": [ "VARSIZE", "SKINTIGHT", "RAINPROOF", "STURDY", "WATERPROOF", "HYGROMETER" ], + "flags": [ "VARSIZE", "SKINTIGHT", "RAINPROOF", "STURDY", "WATERPROOF", "PADDED" ], "armor": [ { "encumbrance": 5, @@ -50,10 +51,10 @@ "type": "TOOL_ARMOR", "name": { "str": "cryopod bodyglove (on)", "str_pl": "cryopod bodygloves (on)" }, "looks_like": "afs_cryopod_bodyglove", - "description": "The temperature control units of this high-tech garment are currently active, and continuously draining battery power. Use it to turn them off.", - "power_draw": "90 J", + "description": "A dark orange bodyglove, hundreds of tubes curl over its surface, tracing the contours of human musculature. Meant to control body temperature during prolonged cryopreservation, it could easily keep you comfortable in any earthly climate. The temperature control units of this high-tech garment are currently active, and continuously draining battery power. Use it to turn them off.", + "power_draw": "90 W", "revert_to": "afs_cryopod_bodyglove", "use_action": { "type": "transform", "menu_text": "Turn off", "msg": "Your %s deactivates.", "target": "afs_cryopod_bodyglove" }, - "flags": [ "STURDY", "WATERPROOF", "THERMOMETER", "RAINPROOF", "CLIMATE_CONTROL" ] + "flags": [ "VARSIZE", "SKINTIGHT", "RAINPROOF", "STURDY", "WATERPROOF", "PADDED", "THERMOMETER", "HYGROMETER" ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/tools.json b/data/Mainline_mods/Mods/Aftershock/items/tools.json index 16c809d7e..02affb242 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/tools.json +++ b/data/Mainline_mods/Mods/Aftershock/items/tools.json @@ -44,11 +44,11 @@ "type": "TOOL", "name": { "str": "structural imager" }, "description": "A compact imaging tool, capable of scanning and visualizing objects hiding behind walls, maintenance panels and all other sort of visual barriers. While normally used to diagnostic potential faults within the internal systems of spaceships, the ability to peer between obstacles grant it obvious surveillance applications. It can be activated to reveal a small conical area around you.", - "weight": "1060 g", - "volume": "350 ml", + "weight": "500 g", + "volume": "850 ml", + "longest_side": "20 cm", "price": "10 kUSD", "to_hit": -2, - "bashing": 6, "material": [ "plastic", "steel" ], "symbol": "(", "color": "yellow", @@ -63,7 +63,68 @@ } ], "use_action": { "type": "cast_spell", "spell_id": "afs_clairvoyance_cone", "no_fail": true, "level": 5 }, - "flags": [ "BELT_CLIP" ] + "flags": [ "BELT_CLIP" ], + "melee_damage": { "bash": 6 } + }, + { + "id": "afs_motion_sensor", + "type": "TOOL", + "name": { "str": "motion scanner" }, + "description": "A handheld motion scanner normally used for pest control within spaceships. This model features an integrated screen to highlight the location of detected motion. It must be activated to function.", + "weight": "680 g", + "volume": "650 ml", + "price": "6 kUSD", + "longest_side": "20 cm", + "to_hit": -2, + "material": [ "plastic", "steel" ], + "symbol": "(", + "color": "yellow", + "ammo": [ "battery" ], + "charges_per_use": 1, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM" ], + "default_magazine": "medium_battery_cell" + } + ], + "relic_data": { + "passive_effects": [ + { "id": "afs_motion_sensor_wield" }, + { + "has": "HELD", + "condition": "ALWAYS", + "name": { "str": "Passive Motion Detection" }, + "description": "Passively detects movement at 10 second intervals.", + "intermittent_activation": { "effects": [ { "frequency": "10 seconds", "spell_effects": [ { "id": "afs_motion_sensor_spell" } ] } ] } + } + ] + }, + "flags": [ "BELT_CLIP", "MUNDANE" ], + "use_action": { + "menu_text": "Activate", + "type": "transform", + "target": "afs_motion_sensor_on", + "need_charges": 1, + "active": true, + "msg": "The %s screen flashes on." + }, + "melee_damage": { "bash": 6 } + }, + { + "id": "afs_motion_sensor_on", + "type": "TOOL", + "copy-from": "afs_motion_sensor", + "name": { "str": "motion scanner (on)", "str_pl": "motion scanners (on)" }, + "description": "This active motion scanner will survey your surroundings every ten seconds and audibly alert you when movement is detected. Wielding it will accurately reveal the location of motion sources.", + "revert_to": "afs_motion_sensor", + "use_action": { + "menu_text": "Deactivate", + "type": "transform", + "target": "afs_motion_sensor", + "msg": "The %s screen flashes briefly before fading out." + } }, { "id": "afs_plasma_torch", @@ -101,7 +162,8 @@ "name": { "str": "atomic smartphone - music", "str_pl": "atomic smartphones - music" }, "description": "This phone is playing music, steadily raising your morale. You can't hear anything else while you're listening.", "revert_to": "afs_atomic_smartphone", - "use_action": [ "MP3_ON", "PORTABLE_GAME", "EINKTABLETPC", "EBOOKSAVE", "EBOOKREAD" ], + "use_action": [ "PORTABLE_GAME", "EINKTABLETPC", "EBOOKSAVE", "EBOOKREAD", "MP3_DEACTIVATE" ], + "tick_action": [ "MP3_ON" ], "extend": { "flags": [ "TRADER_AVOID" ] } }, { @@ -122,6 +184,7 @@ "type": "transform" } ], + "tick_action": [ "MP3_ON" ], "extend": { "flags": [ "TRADER_AVOID", "LIGHT_25" ] } }, { @@ -167,8 +230,9 @@ "name": { "str": "Wraitheon executive's smartphone - music", "str_pl": "Wraitheon executive's smartphones - music" }, "description": "This phone is playing music, steadily raising your morale. You can't hear anything else while you're listening.", "revert_to": "afs_atomic_smartphone", - "use_action": [ "MP3_ON", "PORTABLE_GAME", "EINKTABLETPC", "EBOOKSAVE", "EBOOKREAD" ], - "extend": { "flags": [ "TRADER_AVOID" ] } + "use_action": [ "PORTABLE_GAME", "EINKTABLETPC", "EBOOKSAVE", "EBOOKREAD", "MP3_DEACTIVATE" ], + "extend": { "flags": [ "TRADER_AVOID" ] }, + "tick_action": [ "MP3_ON" ] }, { "id": "afs_atomic_wraitheon_flashlight", @@ -204,6 +268,27 @@ "use_action": [ "HOTPLATE" ], "flags": [ "ALLOWS_REMOTE_USE" ] }, + { + "id": "atomic_coffeepot", + "type": "GENERIC", + "category": "tools", + "name": { "str": "atomic coffeemaker" }, + "looks_like": "coffeemaker", + "description": "A Curie-G coffeemaker, made by CuppaTech. It famously uses a radioactive generator to heat water for coffee. Normally the water is heated using energy stored in a capacitor, and makes ordinary coffee. However, as a special feature, water from the RTG containment area can be used, giving the coffee a very special kick. The Curie-G is illegal in most countries.", + "weight": "6000 g", + "volume": "1500 ml", + "longest_side": "20 cm", + "price": 100000, + "price_postapoc": 3000, + "to_hit": -2, + "material": [ "plastic", "aluminum" ], + "qualities": [ [ "BOIL", 1 ] ], + "symbol": ",", + "color": "light_green", + "use_action": [ "HOTPLATE_ATOMIC" ], + "flags": [ "LEAK_DAM", "RADIOACTIVE", "DURABLE_MELEE" ], + "melee_damage": { "bash": 5 } + }, { "id": "afs_power_cutter", "type": "TOOL", @@ -214,8 +299,6 @@ "price": 100000, "price_postapoc": 10000, "to_hit": -3, - "bashing": 7, - "cutting": 3, "material": [ "steel", "plastic", "diamond" ], "symbol": "/", "looks_like": "circsaw_off", @@ -224,7 +307,8 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 500 } } ], "charges_per_use": 1, "use_action": { "target": "afs_power_cutter_on", "msg": "You rev up the power cutter!", "active": true, "type": "transform" }, - "flags": [ "ALWAYS_TWOHAND", "NONCONDUCTIVE" ] + "flags": [ "ALWAYS_TWOHAND", "NONCONDUCTIVE" ], + "melee_damage": { "bash": 7, "cut": 3 } }, { "id": "afs_power_cutter_on", @@ -232,12 +316,12 @@ "type": "TOOL", "name": { "str": "power cutter (on)", "str_pl": "power cutters (on)" }, "description": "A huge, gas-powered saw with a diamond blade, currently a whirling blur. It's consuming gasoline, but can be used as a fantastic tool for cutting metal. You can also use it as a terrifying weapon, if you're into that sort of thing.", - "cutting": 80, "turns_per_charge": 3, "revert_to": "afs_power_cutter", "use_action": { "target": "afs_power_cutter", "msg": "Your power cutter falls quiet.", "menu_text": "Turn off", "type": "transform" }, "qualities": [ [ "CUT", 2 ], [ "SAW_M", 20 ], [ "SAW_M_FINE", 1 ], [ "BUTCHER", -70 ] ], - "flags": [ "ALWAYS_TWOHAND", "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ] + "flags": [ "ALWAYS_TWOHAND", "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ], + "melee_damage": { "bash": 7, "cut": 80 } }, { "id": "afs_murdersaw", @@ -249,8 +333,6 @@ "price": 100000, "price_postapoc": 30000, "to_hit": -3, - "bashing": 6, - "cutting": 3, "material": [ "steel", "plastic", "diamond" ], "symbol": "/", "looks_like": "circsaw_off", @@ -259,7 +341,8 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "watertight": true, "ammo_restriction": { "gasoline": 500 } } ], "charges_per_use": 1, "use_action": { "target": "afs_murdersaw_on", "msg": "You rev up the murdersaw!", "active": true, "type": "transform" }, - "flags": [ "ALWAYS_TWOHAND", "NONCONDUCTIVE" ] + "flags": [ "ALWAYS_TWOHAND", "NONCONDUCTIVE" ], + "melee_damage": { "bash": 6, "cut": 3 } }, { "id": "afs_murdersaw_on", @@ -267,13 +350,26 @@ "type": "TOOL", "name": { "str": "murdersaw (on)", "str_pl": "murdersaws (on)" }, "description": "This fearsome weapon is currently whirring loudly and shaking with the force of its own power. Use it to turn it off.", - "cutting": 80, "to_hit": 2, "turns_per_charge": 5, "revert_to": "afs_murdersaw", "use_action": { "target": "afs_murdersaw", "msg": "Your murdersaw falls quiet.", "menu_text": "Turn off", "type": "transform" }, "qualities": [ [ "CUT", 2 ], [ "SAW_M", 10 ], [ "BUTCHER", -50 ] ], - "flags": [ "ALWAYS_TWOHAND", "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ] + "flags": [ "ALWAYS_TWOHAND", "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ], + "melee_damage": { "bash": 6, "cut": 80 } + }, + { + "type": "GENERIC", + "id": "afs_oxygen_candle", + "symbol": "*", + "color": "light_gray", + "name": { "str": "oxygen candle" }, + "description": "An ignitable device that produces oxygen through an exothermic chemical reaction. Often stocked as the last backup in case of total life support failure. You could activate it, but that would just waste it.", + "material": [ "steel" ], + "weight": "840 g", + "volume": "500 ml", + "to_hit": -1, + "melee_damage": { "bash": 5 } }, { "id": "UPS_off", @@ -301,7 +397,7 @@ "type": "TOOL", "name": { "str": "bionic maintenance toolkit" }, "description": "A set of very small tools and encrypted digital keys normally used to repair bionic modules in clinical settings. They will allow you to disassemble simple bionics, but anything more complex would require even more specialized tools.", - "qualities": [ [ "BIONIC_ASSEMBLY", 1 ], [ "SAW_M_FINE", 1 ] ] + "qualities": [ [ "BIONIC_ASSEMBLY", 1 ], [ "SCREW_FINE", 1 ], [ "WRENCH_FINE", 1 ] ] }, { "id": "afs_complete_bionic_toolkit", @@ -309,7 +405,7 @@ "type": "TOOL", "name": { "str": "complete bionic toolkit" }, "description": "A set of very small robotic tools and encrypted digital keys originally designed to disassemble and test the quality of industrially produced bionics. A highly skilled and patient engineer could use them to manually assemble new cybernetics.", - "qualities": [ [ "BIONIC_ASSEMBLY", 2 ], [ "SAW_M_FINE", 1 ] ] + "qualities": [ [ "BIONIC_ASSEMBLY", 2 ], [ "SCREW_FINE", 1 ], [ "WRENCH_FINE", 1 ] ] }, { "id": "afs_bionic_power_mod", @@ -364,9 +460,10 @@ "copy-from": "control_laptop", "type": "TOOL", "name": { "str": "control laptop - lit screen", "str_pl": "control laptops - lit screen" }, - "power_draw": "1 J", + "power_draw": "1 W", "revert_to": "control_laptop", "use_action": { "target": "control_laptop", "msg": "You stop lighting up the screen.", "menu_text": "Turn off", "type": "transform" }, + "tick_action": [ "EPIC_MUSIC" ], "flags": [ "WATCH", "LIGHT_10", "TRADER_AVOID" ] }, { @@ -410,7 +507,7 @@ "copy-from": "vr_laptop", "type": "TOOL_ARMOR", "name": { "str": "vr rig - holosuite deployed", "str_pl": "vr rigs - holosuite deployed" }, - "power_draw": "1 J", + "power_draw": "1 W", "revert_to": "vr_laptop", "use_action": { "target": "vr_laptop", "msg": "You power down the virtual overlay.", "menu_text": "Turn off", "type": "transform" }, "flags": [ "WATCH", "TRADER_AVOID" ], @@ -419,11 +516,14 @@ { "has": "WORN", "condition": "ALWAYS", + "name": { "str": "Augmented Reality" }, + "description": "You are wearing equipment that gives 1 additional perception but causes you to see strange things.", "mutations": [ "PSYCHOPATH", "SCHIZOPHRENIC" ], "values": [ { "value": "PERCEPTION", "add": 1 } ] } ] - } + }, + "tick_action": [ "EPIC_MUSIC" ] }, { "id": "nano_forge", @@ -440,11 +540,11 @@ "color": "light_green", "use_action": { "type": "deploy_furn", "furn_type": "f_nano_forge" }, "to_hit": -2, - "bashing": 5, "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "battery": 5000 } } ], "relic_data": { "charge_info": { "recharge_type": "periodic", "time": "1 h", "regenerate_ammo": true } }, "material": [ "superalloy" ], - "flags": [ "DURABLE_MELEE" ] + "flags": [ "DURABLE_MELEE" ], + "melee_damage": { "bash": 5 } }, { "id": "nano_pseudo_forge", @@ -455,12 +555,12 @@ "volume": "11356 ml", "price": 20000, "to_hit": -2, - "bashing": 9, "material": [ "plastic", "steel" ], "qualities": [ [ "NANO_FORGE", 1 ] ], "symbol": "H", "color": "light_gray", - "flags": [ "ALLOWS_REMOTE_USE" ] + "flags": [ "ALLOWS_REMOTE_USE" ], + "melee_damage": { "bash": 9 } }, { "id": "diamond_press", @@ -477,9 +577,9 @@ "color": "light_green", "use_action": { "type": "deploy_furn", "furn_type": "f_diamond_press" }, "to_hit": -2, - "bashing": 5, "material": [ "superalloy" ], - "flags": [ "DURABLE_MELEE" ] + "flags": [ "DURABLE_MELEE" ], + "melee_damage": { "bash": 5 } }, { "id": "pseudo_diamond_press", @@ -490,11 +590,40 @@ "volume": "11356 ml", "price": 20000, "to_hit": -2, - "bashing": 9, "material": [ "plastic", "steel" ], "qualities": [ [ "DIAMONDPRESS", 1 ] ], "symbol": "H", "color": "light_gray", - "flags": [ "ALLOWS_REMOTE_USE" ] + "flags": [ "ALLOWS_REMOTE_USE" ], + "melee_damage": { "bash": 9 } + }, + { + "id": "mil_mess_kit", + "type": "TOOL", + "name": { "str": "military mess kit" }, + "description": "A military mess kit designed for long-range reconnaissance patrols deployed behind enemy lines. All of its parts are made from thin sheets of aluminum-superalloy composite and are insulated with ceramic coating. Relies on a battery-operated hotplate, rather than the smoke-producing chemical-fueled hexamine stove. Compact, durable and lightweight.", + "weight": "900 g", + "volume": "1 L", + "longest_side": "10 cm", + "price": 6000, + "price_postapoc": 500, + "to_hit": -1, + "material": [ "superalloy", "ceramic" ], + "symbol": ";", + "color": "green", + "ammo": [ "battery" ], + "sub": "hotplate_induction", + "charges_per_use": 25, + "qualities": [ [ "COOK", 2 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ] ], + "use_action": [ "HOTPLATE", "HEAT_FOOD" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM" ], + "default_magazine": "medium_plus_battery_cell" + } + ], + "melee_damage": { "bash": 4 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/items/vehicle_items.json b/data/Mainline_mods/Mods/Aftershock/items/vehicle_items.json index eff193c15..ad4a28d92 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/vehicle_items.json +++ b/data/Mainline_mods/Mods/Aftershock/items/vehicle_items.json @@ -19,7 +19,7 @@ { "type": "GENERIC", "id": "exo_gantry", - "copy-from": "vehicle_rig", + "copy-from": "veh_tools_workshop", "name": { "str": "exosuit maintenance gantry", "str_pl": "exosuit maintenance gantries" }, "description": "A vehicle-mounted gantry for supporting an exosuit upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when activated from the vehicle's controls." } diff --git a/data/Mainline_mods/Mods/Aftershock/items/weapons.json b/data/Mainline_mods/Mods/Aftershock/items/weapons.json index 77602f4ef..596d8ae9e 100644 --- a/data/Mainline_mods/Mods/Aftershock/items/weapons.json +++ b/data/Mainline_mods/Mods/Aftershock/items/weapons.json @@ -1,11 +1,4 @@ [ - { - "type": "enchantment", - "id": "afs_ench_esab", - "has": "WIELD", - "condition": "ACTIVE", - "values": [ { "value": "ITEM_DAMAGE_CUT", "add": 18 }, { "value": "ITEM_DAMAGE_HEAT", "add": 35 } ] - }, { "id": "afs_energy_saber_off", "type": "TOOL", @@ -24,7 +17,6 @@ "ammo": [ "battery" ], "techniques": [ "WBLOCK_2", "RAPID" ], "charges_per_use": 1, - "bashing": 22, "to_hit": 3, "use_action": { "menu_text": "Activate", @@ -52,7 +44,8 @@ "light_disposable_cell" ] } - ] + ], + "melee_damage": { "bash": 22 } }, { "id": "afs_energy_saber_on", @@ -68,7 +61,6 @@ "turns_per_charge": 4, "relic_data": { "passive_effects": [ { "id": "afs_ench_esab" } ] }, "to_hit": 2, - "bashing": 8, "flags": [ "DURABLE_MELEE" ], "techniques": [ "WBLOCK_2" ], "revert_to": "afs_energy_saber_off", @@ -77,7 +69,8 @@ "type": "transform", "target": "afs_energy_saber_off", "msg": "The blade stops humming, and its edge dissipates into a smooth curve as it cools." - } + }, + "melee_damage": { "bash": 8 } }, { "id": "afs_hardlight_longbow", @@ -96,14 +89,14 @@ "weight": "500 g", "volume": "2700 ml", "longest_side": "90 cm", - "bashing": 8, "to_hit": -2, "reload_noise_volume": 0, "loudness": 0, "ranged_damage": { "damage_type": "heat", "amount": 50, "armor_penetration": 15 }, "ammo": [ "battery" ], + "ammo_to_fire": 0, + "energy_drain": "900 kJ", "ammo_effects": [ "LOW_RANGE_VAPORIZATION", "NEVER_MISFIRES" ], - "ammo_to_fire": 900, "range": 30, "dispersion": 80, "durability": 6, @@ -116,11 +109,12 @@ "max_contains_weight": "20 kg", "item_restriction": [ "alien_battery" ] } - ] + ], + "melee_damage": { "bash": 8 } }, { "id": "afs_hydraulic_gauntlet", - "type": "GENERIC", + "type": "ARMOR", "name": { "str": "hydraulic gauntlet" }, "description": "A huge, heavy metal gauntlet lined with tubing and gauges. Slow and unwieldy, it uses internal pressure to deliver devastating blows, but takes tremendous strength to use effectively. Thanks to an internal microreactor, it doesn't require power of its own.", "weight": "3778 g", @@ -131,10 +125,11 @@ "symbol": "[", "looks_like": "gauntlets_chitin", "color": "light_gray", - "bashing": 50, "to_hit": -2, - "flags": [ "NO_REPAIR", "NONCONDUCTIVE", "SLOW_WIELD", "DURABLE_MELEE", "LEAK_DAM", "UNARMED_WEAPON" ], - "techniques": [ "BRUTAL", "AFS_PRESSURE_CRUNCH" ] + "flags": [ "NO_REPAIR", "NONCONDUCTIVE", "SLOW_WIELD", "DURABLE_MELEE", "LEAK_DAM" ], + "techniques": [ "BRUTAL", "AFS_PRESSURE_CRUNCH" ], + "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "hand_r" ] } ], + "melee_damage": { "bash": 50 } }, { "id": "afs_freeze_gauntlet", @@ -149,15 +144,23 @@ "symbol": "[", "looks_like": "gauntlets_chitin", "color": "light_cyan", - "bashing": 3, "relic_data": { - "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_COLD", "add": 17 } ] } ] + "passive_effects": [ + { + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "ITEM_DAMAGE_COLD", "add": 17 } ], + "name": { "str": "Ice Fists" }, + "description": "Strikes from this weapon can freeze targets solid." + } + ] }, "to_hit": 0, - "flags": [ "NO_REPAIR", "NONCONDUCTIVE", "SLOW_WIELD", "DURABLE_MELEE", "UNARMED_WEAPON" ], + "flags": [ "NO_REPAIR", "NONCONDUCTIVE", "SLOW_WIELD", "DURABLE_MELEE" ], "techniques": [ "WBLOCK_1" ], "material_thickness": 1, - "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ] + "armor": [ { "encumbrance": 5, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ], + "melee_damage": { "bash": 3 } }, { "type": "GENERIC", @@ -174,7 +177,6 @@ "volume": "2250 ml", "price": 0, "to_hit": -2, - "bashing": 9, "material": [ "steel", "plastic" ], "symbol": "(", "looks_like": "bio_int_enhancer", @@ -186,7 +188,8 @@ "clip_size": 1, "reload": 150, "flags": [ "NEVER_JAMS", "BIONIC_WEAPON", "TRADER_AVOID", "ZERO_WEIGHT" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40x46mm": 1 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "40x46mm": 1 } } ], + "melee_damage": { "bash": 9 } }, { "id": "TANK", @@ -202,14 +205,14 @@ "ammo": [ "120mm" ], "weight": "2500 g", "volume": "2500 ml", - "bashing": 6, "to_hit": -3, "dispersion": 60, "durability": 9, "clip_size": 1, "loudness": 300, "flags": [ "NO_TURRET" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "120mm": 1 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "120mm": 1 } } ], + "melee_damage": { "bash": 6 } }, { "type": "GENERIC", @@ -222,9 +225,9 @@ "color": "light_gray", "symbol": "/", "material": [ "titanium" ], - "bashing": 22, "price": 20000, - "price_postapoc": 1750 + "price_postapoc": 1750, + "melee_damage": { "bash": 22 } }, { "id": "ceramic_knife", @@ -235,13 +238,12 @@ "weight": "390 g", "volume": "250 ml", "price": 4000, - "bashing": 2, - "cutting": 15, "material": [ "ceramic", "plastic" ], "symbol": "/", "color": "dark_gray", "qualities": [ [ "CUT", 2 ], [ "BUTCHER", 5 ] ], - "flags": [ "SHEATH_KNIFE", "DURABLE_MELEE", "STAB" ] + "flags": [ "SHEATH_KNIFE", "DURABLE_MELEE" ], + "melee_damage": { "bash": 2, "stab": 15 } }, { "type": "GENERIC", @@ -257,12 +259,11 @@ "techniques": [ "WBLOCK_1", "DEF_DISARM" ], "volume": "1750 ml", "longest_side": "140 cm", - "bashing": 5, - "cutting": 28, "qualities": [ [ "COOK", 1 ] ], - "flags": [ "SPEAR", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "STAB" ], + "flags": [ "SPEAR", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR" ], "price": 7500, - "price_postapoc": 1200 + "price_postapoc": 1200, + "melee_damage": { "bash": 5, "stab": 28 } }, { "id": "azabow_off", @@ -311,7 +312,8 @@ "name": { "str": "Aztlani bow (active)", "str_pl": "Aztlani bows (active)" }, "description": "An ornate bow used by Aztlani nobility during hunting rituals. Designed to fell the plated creatures of Aztlan, its articulated and power assisted limbs allow it to fire projectiles with a strength comparable to modern assault rifles.\n\nWith its drawing aid system enabled, it can be much more easily drawn, at the cost of a modest amount of UPS power consumption per arrow. It can be activated to toggle it drawing assist functionality.", "min_strength": 20, - "ups_charges": 12, + "energy_drain": "12 kJ", + "extend": { "flags": [ "USE_UPS" ] }, "use_action": { "menu_text": "Deactivate", "ammo_scale": 0, @@ -335,11 +337,10 @@ "weight": "1360 g", "volume": "2 L", "longest_side": "90 cm", - "bashing": 10, - "cutting": 50, "to_hit": 2, "category": "weapons", - "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ] + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ], + "melee_damage": { "bash": 10, "cut": 50 } }, { "id": "scrapbow", @@ -350,12 +351,11 @@ "description": "A bow made from readily-available materials, and quickly and cheaply put together. It is not made to be pretty, but to get a job done. Its nocks and string are made of shape-memory alloy that help increase string tension in the string. The memory alloy requires a UPS source to be activated.", "price": 38000, "material": [ "steel", "plastic" ], - "ups_charges": 4, + "energy_drain": "4 kJ", "weight": "540 g", "volume": "2500 ml", "longest_side": "152 cm", "price_postapoc": 2000, - "bashing": 12, "armor_data": { "armor": [ { @@ -373,8 +373,10 @@ "range": 14, "dispersion": 850, "durability": 6, - "valid_mod_locations": [ [ "underbarrel", 1 ], [ "sights", 1 ], [ "accessories", 2 ], [ "stabilizer", 1 ], [ "dampening", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "arrow": 1 } } ] + "valid_mod_locations": [ [ "underbarrel", 1 ], [ "sights", 1 ], [ "stabilizer", 1 ], [ "dampening", 1 ] ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "arrow": 1 } } ], + "extend": { "flags": [ "USE_UPS" ] }, + "melee_damage": { "bash": 12 } }, { "id": "scrapcrossbow", @@ -394,8 +396,7 @@ "volume": "1750 ml", "longest_side": "69 cm", "price_postapoc": 6000, - "ups_charges": 4, - "bashing": 11, + "energy_drain": "4 kJ", "to_hit": 1, "ranged_damage": { "damage_type": "stab", "amount": 16 }, "range": 22, @@ -405,7 +406,6 @@ "clip_size": 1, "reload": 900, "valid_mod_locations": [ - [ "accessories", 4 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "rail", 1 ], @@ -415,6 +415,34 @@ [ "underbarrel", 1 ], [ "dampening", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "bolt": 1 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "bolt": 1 } } ], + "melee_damage": { "bash": 11 } + }, + { + "id": "afs_bio_whip_weapon", + "type": "GENERIC", + "symbol": "/", + "color": "red", + "name": { "str": "monofilament whip" }, + "description": "A long filament of nested carbon nanotubes only a few microns in diameter. In essence a very thin, very strong and very sharp blade that you throw at a moment's notice.", + "weight": "40 g", + "volume": "200 ml", + "price": 3500, + "price_postapoc": 500, + "material": [ "nanotubes" ], + "flags": [ + "REACH_ATTACK", + "REACH3", + "NONCONDUCTIVE", + "BIONIC_WEAPON", + "BIONIC_WEAPON_MELEE", + "UNBREAKABLE_MELEE", + "TRADER_AVOID", + "USE_UPS" + ], + "techniques": [ "WBLOCK_1", "WIDE", "SPIN", "RAPID" ], + "to_hit": { "grip": "bad", "length": "long", "surface": "every", "balance": "clumsy" }, + "weapon_category": [ "BIONIC_WEAPONRY" ], + "melee_damage": { "cut": 27 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/crashing_ship.json b/data/Mainline_mods/Mods/Aftershock/maps/crashing_ship.json new file mode 100644 index 000000000..e0d549e38 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/maps/crashing_ship.json @@ -0,0 +1,331 @@ +[ + { + "type": "palette", + "id": "aftershock_crashing_ship", + "terrain": { "0": "t_metal_floor" } + }, + { + "//": "Aftershock crashing ship, divided into six sections. This is intended to be the port side of a larger ship, with the corridors leading to the rest of the ship sealed off due to hull breaches.", + "//1": "Barracks (Top Left): Top Left: locker room, meant to store work clothes and small tools/trinkets. Top Right: armory, stores weapons and armor. Mid Left: Bathroom/showers. Mid Right: Sleeping quarters. Lockers in corner will have emergency supplies. Bottom: Cafeteria.", + "//2": "Cargo (Top Center): Six shipping containers with crates of misc equipment and supplies.", + "//3": "Workshop (Top Right): Toolshop and light manufacturing. Shelves with spare parts for vehicles and individual equipment, some broken/damaged.", + "//4": "Corridor (Center): Access to the various rooms, hallways are sealed due to breaches on either end of the ship.", + "//5": "Shuttle Bay (Bottom Left): Berthing for small shuttles.", + "//6": "Launch Bay (Bottom Center): A long launch bay with a ramp for ground vehicles to embark/disembark.", + "//7": "Vehicle Bay (Bottom Right): Escape pod bays are near the central coridor. Storage for ground vehicles.", + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "crashing_ship_3", "crashing_ship_2", "crashing_ship_1" ], + [ "crashing_ship_6", "crashing_ship_5", "crashing_ship_4" ], + [ "crashing_ship_9", "crashing_ship_8", "crashing_ship_7" ] + ], + "weight": 100, + "object": { + "fill_ter": "t_metal_floor", + "rows": [ + "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM", + "MLLLLLLLM......MeeeeeeeMM......................MMPPPPPPPPPPPPPPPPPPPPPPM", + "M...*...M......M......eMM.MddM.MddM..MddM.MddM.MMPPPPPPPPPPPPPPPPPPPPPPM", + "M.bbbbb.M......@......eMM.MCCM.MCCM..MCCM.MCCM.MMPPPPPPPPPPPPPPPPPPPPPPM", + "M...*...d......d...*..eMM.MCCM.MCCM..MCCM.MCCM.MMPPPPPPPPPPPPPPPPPPPPPPM", + "M.bbbbb.!.....FM......eMM.MCCM.MCCM..MCCM.MCCM.MMPPPPpppppppppppppPPPPPM", + "M...*...MFFFF..M......eMM.MCCM.MCCM..MCCM.MCCM.MMPPPPpppppppppppppPPPPPM", + "MLLLLLLLMFvPPFFMeeeeeeeMM.MddM.MddM..MddM.MddMFMMPPPPpppppppppppppPPPPPM", + "MMMMMMMMM*.pFv*MMMMMMMMMM.....*..........*...F.MMPPPPpppppppppppppPPPPPM", + "MsMsMsMsM.F..F.ME.B.B.BMM.MddM.MddM..MddM.MddM.PPPPPPpppppppppppppPPPPPM", + "MgMgMgMgM......M..B.B.BMM.MCCM.MCCM..MCCM.MCCMFPPPPPPPPPPPPPPPPPPPPpp..M", + "M.......M......M..f.f.fMM.MCCM.MCCM..MCCM.MCCMFPPPPPPPPPPPPPPPPPPPPppF.M", + "MS..*...D......D...*...MM.MCCM.MCCM..MCCM.MCCM.ppppPPPPPPPPPPPPPPPPp...M", + "M.......M......M..f.f.fMM.MCCM.MCCM..MCCM.MCCM.MM.FppPPPPPPPPPPPPPPppFFM", + "MgMgMgMgM......M..B.B.BMM.MddM.MddM..MddM.MddM.MMF..ppPPPPPPPPPPPPPp...M", + "MTMTMTMTM......ME.B.B.BMM.....*..........*.....MMFFPPPPPPPPPPPPPPPPp...M", + "MMMMMMMMM*....*MMMMMMMMMM.MddM.MddM..MddM.MddM.MM...pppPPPPPPPPPPPppp..M", + "MVVVVVVVV......VVVVVVVVMM.MCCM.MCCM..MCCM.MCCM.MM.....ppppPPPPPPppppF..M", + "M.....*..........*.....MM.MCCM.MCCM..MCCM.MCCM.MMJJJJJJJJJpppppppJJJFJJM", + "M.bbbbbbbbb..bbbbbbbbb.MM.MCCM.MCCM..MCCM.MCCM.MM.........J..J..F..F...M", + "M.ttttttttt..ttttttttt.MM.MCCM.MCCM..MCCM.MCCM.MM.........j..j.........M", + "M.bbbbbbbbb..bbbbbbbbb.MM.MddM.MddM..MddM.MddM.MM.........j..j.........M", + "M.....*..........*.....MM......................MMH.H.H.H.HJ..JH.H.H.H.HM", + "MMMMMMMMMMMDDMMMMMMMMMMMMddddddddddddddddddddddMMMMMMMMMMM#ddMMMMMMMMMMM", + "MPPpv................................................................pPM", + "Mpppv.*.....*.....*.....*.....*....**....*.....*.....*.....*.....*...pPM", + "MPPPpv...............................................................pPM", + "MPPpMMMMMMMMMMMMMMMMMMMMMddddddddddddddddddddddMMMMMMMMMMMMDDMMMMMMMMMMM", + "MPPPv................*....*..................*.MM.....cx...............M", + "MPvYYYYYYYYYYYYYYYYYY..................pp......MM.MMM..x..........(YYY.M", + "M.....................................ppPp.....MM.MFDxx*x.......*..YYY.M", + "M....................................pppPpp....MM.MMM(x............YYY.M", + "M....................................pPPpp.....MM..xcx.................M", + "M.....................................ppp......MM.YYY.............(YYY.M", + "M..............................................MM.YYY..*........*..YYY.M", + "M..YYYYYYYYYYYYYYYYYY..........................MM.YYY(.............YYY.M", + "M..............................................MM.................pPPppM", + "M.*..................*....*..................*.MM.YYY.............(YYY.M", + "M..............................................MM.YYY..*........*..YYY.M", + "M..YYYYYYYYYYYYYYYYYY..........................MM.YYY(.............YYY.M", + "M................p.............................MM......................M", + "M...............ppp............................MM.YYY.............^MMM.M", + "M..............ppPpp...........................MM.YYY..*........*..dzM.M", + "M...............ppp............................MM.YYY(.............MMM.M", + "M................p.............................MM......................M", + "M..YYYYYYYYYYYYYYYYYY..........................MMMMMMMMMMMMMDDMMMMMMMMMM", + "M..............................................MME....................EM", + "M.*..................*....*......pp..........*.MME....................EM", + "M...............................ppPp...........MM.*Y....Y......Y....Y*.M", + "M..YYYYYYYYYYYYYYYYYY..........pPppp...........MM..Y....Y......Y....Y..M", + "M...............................ppp............MM..Y....Y......Y....Y..M", + "M................................p.............MM..Y....Y......Y....Y..M", + "M..............................................MM..Y....Y......Y....Y..M", + "M..............................................MM..Y....Y......Y....Y..M", + "M..............................................MM..Y....Y......Y....Y..M", + "M..YYYYYYYYYYYYYYYYYY..........................MM..Y....Y...p..Y....Y..M", + "M..............................................MM..Y....Y..pPp.Y....Y..M", + "M.*..................*....*..................*.MM.*Y....Y.pPPppY....Y*.M", + "M..............................................MM..Y....Y..pPp.Y....Y..M", + "M..YYYYYYYYYYYYYYYYYY..........................MM..Y....Y...p..Y....Y..M", + "M.FFMMMMMMMMMMMMMMM.......................p....MM..Y....Y......Y....Y..M", + "M..FFF.[.[.[.[.M[UM......................ppp...MM..Y....Y......Y....Y..M", + "M.F.u..........u.UM......................Pppp..MM..Y....Y......Y....Y..M", + "M...M..[.[.[.[.M[UM.....................pppppp.MM..Y....Y......Y....Y..M", + "M...MMMMMMMMMMMMMMM....................pppppp..MM..Y....Y......Y....Y..M", + "M..YYYYYYYYYYYYYYYYYY...................pp.p...MM..Y....Y......Y....Y..M", + "M..............................................MM.*Y....Y......Y....Y*.M", + "M.*..................*....*..................*.MM..Y....Y......Y....Y..M", + "MWWWWWWWWWWWWWWWWWWWW..........................MM..Y....Y......Y....Y..M", + "Mw(w(w(w(w(w(w(w(w(wW..........................MM..Y....Y......Y....Y..M", + "M...F*pPp.*.F..*FF..D..........................MM..Y....Y......Y....Y..M", + "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" + ], + "palettes": [ "aftershock_crashing_ship" ], + "furniture": { + "L": "f_locker", + "E": "f_locker", + "e": "f_gun_safe_el", + "B": "f_bunkbed", + "f": "f_foot_locker", + "b": "f_bench", + "s": "f_shower", + "T": "f_toilet", + "w": "f_workbench", + "S": "f_sink", + "t": "f_table", + "V": "f_vending_reinforced", + "C": "f_crate_c", + "1": "f_arcfurnace_empty", + "2": "f_hydraulic_press", + "3": "f_air_compressor", + "4": "f_drill_press", + "9": "f_heavy_lathe", + "K": "f_beverly_shear", + "H": "f_exo_gantry", + "5": "f_machinery_electronic", + "6": "f_machinery_light", + "7": "f_machinery_heavy", + "8": "f_machinery_old", + "$": "f_console_broken", + "z": "f_afs_escape_pod_seat", + "v": "f_wreckage", + "(": "f_console", + "%": "f_console", + "^": "f_console", + "[": "f_afs_shuttle_seat" + }, + "terrain": { + "Y": "t_bridge", + "!": "t_card_locker_room", + "@": "t_card_armory_room", + "#": "t_card_exobay_room", + "*": "t_metal_floor_olight", + "u": "t_afs_space_ship_hatch_c", + "U": "t_afs_shuttlepod_g", + "M": "t_afs_space_ship_hull_wall", + "D": "t_door_metal_c", + "g": "t_door_glass_frosted_c", + "d": "t_door_metal_locked", + "c": "t_metal_floor", + "x": "t_metal_floor", + "F": "t_metal_floor", + "J": "t_chainfence", + "j": "t_chaingate_l", + "W": "t_reinforced_glass_shutter", + "P": "t_foamcrete_wall_seal", + "p": "t_foamcrete_floor_seal" + }, + "place_zones": [ { "type": "ZONE_START_POINT", "faction": "your_followers", "x": 19, "y": 14 } ], + "set": [ { "point": "trap", "id": "tr_escape_pod", "x": 68, "y": 42 } ], + "mapping": { + "e": { "items": [ { "item": "afs_ballistic_armory", "chance": 20 } ] }, + "z": { "items": { "item": "afs_escape_pod_suppliesII", "chance": 100 }, "traps": [ "tr_escape_pod", 1 ] }, + "L": { + "items": [ + { "item": "gear_soldier_sidearm", "chance": 33 }, + { "item": "book_military", "chance": 20 }, + { "item": "afs_plastic_armor_g", "chance": 33 }, + { "item": "afs_carbide_raider_armor_g", "chance": 10 }, + { "item": "mil_armor", "chance": 10 }, + { "item": "afs_colonist_outfit", "chance": 75, "repeat": [ 3, 5 ] }, + { "item": "drugs_soldier", "chance": 25 }, + { "item": "tools_survival", "chance": 60 } + ] + }, + "r": { + "items": [ + { "item": "afs_tools_scavenging", "chance": 60 }, + { "item": "afs_tools_robot_maintenance", "chance": 10 }, + { "item": "afs_tools_electric_repair", "chance": 10 } + ] + }, + "T": { "items": [ { "item": "afs_todd_howard", "chance": 1 } ] }, + "c": { "items": [ { "item": "afs_escapepod_shootout", "chance": 100, "container-item": "corpse" } ] }, + "C": { + "items": [ + { "item": "hardware_bulk", "chance": 25 }, + { "item": "plumbing_bulk", "chance": 25 }, + { "item": "sports_bulk", "chance": 25 }, + { "item": "cleaning_bulk", "chance": 25 } + ] + }, + "E": { "items": [ { "item": "afs_tools_space_emergency", "chance": 100 } ] }, + "w": { "items": [ { "item": "office_mess", "chance": 75 } ] }, + "t": { "items": [ { "item": "afs_mess_hall", "chance": 80 } ] }, + "V": { "items": [ { "item": "afs_vending_false_meals", "chance": 100 } ] }, + "H": { "items": [ { "item": "afs_exosuit_worker", "chance": 75 } ] } + }, + "place_loot": [ + { "item": "crashing_ship_locker_card", "x": [ 16, 22 ], "y": [ 9, 15 ], "chance": 100 }, + { "item": "crashing_ship_armory_card", "x": [ 1, 7 ], "y": 1, "chance": 100 }, + { "item": "crashing_ship_exobay_card", "x": [ 16, 22 ], "y": [ 9, 15 ], "chance": 100 }, + { "item": "electrohack", "x": [ 1, 7 ], "y": [ 1, 1 ], "chance": 100 }, + { "group": "ammo_light_batteries_full", "x": [ 1, 7 ], "y": [ 1, 1 ], "chance": 300 }, + { "group": "afs_escapepod_shootout_corpse", "x": 54, "y": 28 }, + { "group": "afs_escapepod_shootout_corpse", "x": 52, "y": 32 } + ], + "place_rubble": [ { "x": [ 1, 4 ], "y": [ 24, 29 ], "repeat": [ 5, 20 ] } ], + "place_item": [ + { "item": "afs_set_us_up_the_bomb_act", "x": 59, "y": 8, "amount": 1, "custom-flags": [ "ACTIVATE_ON_PLACE" ] }, + { + "item": "afs_set_us_up_the_bomb_act", + "x": 25, + "y": 71, + "amount": 1, + "custom-flags": [ "ACTIVATE_ON_PLACE" ] + }, + { + "item": "afs_set_us_up_the_bomb_act", + "x": 1, + "y": 16, + "amount": 1, + "custom-flags": [ "ACTIVATE_ON_PLACE" ] + }, + { + "item": "afs_set_us_up_the_bomb_act", + "x": 30, + "y": 4, + "amount": 1, + "custom-flags": [ "ACTIVATE_ON_PLACE" ] + }, + { + "item": "afs_set_us_up_the_bomb_act", + "x": 69, + "y": 37, + "amount": 1, + "custom-flags": [ "ACTIVATE_ON_PLACE" ] + }, + { + "item": "afs_set_us_up_the_bomb_act", + "x": 41, + "y": 62, + "amount": 1, + "custom-flags": [ "ACTIVATE_ON_PLACE" ] + }, + { + "item": "afs_set_us_up_the_bomb_act", + "x": 60, + "y": 57, + "amount": 1, + "custom-flags": [ "ACTIVATE_ON_PLACE" ] + }, + { + "item": "afs_set_us_up_the_bomb_act", + "x": 17, + "y": 42, + "amount": 1, + "custom-flags": [ "ACTIVATE_ON_PLACE" ] + }, + { + "item": "afs_set_us_up_the_bomb_act", + "x": 7, + "y": 68, + "amount": 1, + "custom-flags": [ "ACTIVATE_ON_PLACE" ] + }, + { + "item": "afs_set_us_up_the_bomb_act", + "x": 40, + "y": 31, + "amount": 1, + "custom-flags": [ "ACTIVATE_ON_PLACE" ] + } + ], + "place_graffiti": [ + { "text": "Barracks", "x": 10, "y": 23 }, + { "text": "Barracks", "x": 13, "y": 23 }, + { "text": "Cargo Bay 01", "x": 24, "y": 23 }, + { "text": "Cargo Bay 01", "x": 47, "y": 23 }, + { "text": "Workshop", "x": 61, "y": 23 }, + { "text": "Workshop", "x": 57, "y": 23 }, + { "text": "Shuttle Bay 01", "x": 24, "y": 27 }, + { "text": "Shuttle Bay 01", "x": 47, "y": 27 }, + { "text": "Escape Pods & Vehicle Bay", "x": 58, "y": 27 }, + { "text": "Escape Pods & Vehicle Bay", "x": 61, "y": 27 } + ], + "fields": { "F": { "field": "fd_fire", "intensity": 3, "age": 1 }, "x": { "field": "fd_blood", "intensity": 3 } }, + "computers": { "^": { "name": "Escape Pod", "security": 0, "options": [ { "name": "Ready Escape Pod", "action": "unlock" } ] } } + } + }, + { + "id": "afs_set_us_up_the_bomb", + "type": "TOOL", + "category": "weapons", + "name": { "str": "ship self-destruct system" }, + "description": "You shouldn't be seeing this!", + "weight": "1 g", + "volume": "1 ml", + "price": 0, + "material": [ "steel" ], + "looks_like": "t_foamcrete_wall_seal", + "symbol": " ", + "color": "white", + "explode_in_fire": false, + "explosion": { "power": 90000000, "shrapnel": { "casing_mass": 1200000, "fragment_mass": 60000 } }, + "use_action": { + "target": "afs_set_us_up_the_bomb_act", + "target_timer": "420 seconds", + "menu_text": "Activate fuze", + "type": "transform" + }, + "flags": [ "BOMB", "HIDDEN_ITEM" ] + }, + { + "id": "afs_set_us_up_the_bomb_act", + "type": "TOOL", + "category": "weapons", + "name": { "str": "active ship self-destruct system" }, + "description": "You shouldn't be seeing this!", + "weight": "1 g", + "volume": "1 ml", + "price": 0, + "material": [ "steel" ], + "looks_like": "t_foamcrete_wall_seal", + "symbol": " ", + "color": "white", + "explode_in_fire": false, + "use_action": { "type": "message", "message": "You should be running!" }, + "countdown_action": { + "type": "explosion", + "explosion": { "power": 90000000, "shrapnel": { "casing_mass": 1260000, "fragment_mass": 60000 } } + }, + "flags": [ "BOMB", "HIDDEN_ITEM" ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture.json index 25a640daf..753ecb64b 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/furniture.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture.json @@ -223,7 +223,7 @@ "coverage": 80, "required_str": -1, "looks_like": "t_column", - "flags": [ "TRANSPARENT", "EMITTER" ], + "flags": [ "TRANSPARENT" ], "emissions": [ "emit_glimmer", "emit_cold_air2_stream" ], "bash": { "str_min": 18, @@ -251,7 +251,7 @@ "coverage": 80, "required_str": -1, "looks_like": "t_column", - "flags": [ "TRANSPARENT", "EMITTER" ], + "flags": [ "TRANSPARENT" ], "emissions": [ "emit_heater_vehicle" ], "bash": { "str_min": 18, @@ -477,7 +477,7 @@ "str_max": 150, "sound_fail": "clang!", "items": [ - { "item": "afs_circuitry_1", "charges": [ 0, 4 ] }, + { "item": "afs_circuitry_1", "count": [ 0, 4 ] }, { "item": "afs_material_1", "count": [ 8, 12 ] }, { "item": "afs_material_2", "count": [ 2, 4 ] }, { "item": "afs_magnet_1", "count": [ 4, 10 ] }, @@ -486,7 +486,7 @@ }, "deconstruct": { "items": [ - { "item": "afs_circuitry_1", "charges": [ 4, 8 ] }, + { "item": "afs_circuitry_1", "count": [ 4, 8 ] }, { "item": "afs_material_2", "count": [ 4, 6 ] }, { "item": "afs_energy_storage_2", "count": [ 1, 2 ] }, { "item": "afs_material_1", "count": [ 12, 16 ] }, @@ -514,7 +514,7 @@ "str_max": 150, "sound_fail": "clang!", "items": [ - { "item": "afs_circuitry_1", "charges": [ 0, 4 ] }, + { "item": "afs_circuitry_1", "count": [ 0, 4 ] }, { "item": "afs_material_1", "count": [ 8, 12 ] }, { "item": "afs_material_2", "count": [ 2, 4 ] }, { "item": "afs_magnet_1", "count": [ 4, 10 ] }, @@ -523,7 +523,7 @@ }, "deconstruct": { "items": [ - { "item": "afs_circuitry_1", "charges": [ 4, 8 ] }, + { "item": "afs_circuitry_1", "count": [ 4, 8 ] }, { "item": "afs_material_2", "count": [ 4, 6 ] }, { "item": "afs_energy_storage_1", "count": [ 1, 2 ] }, { "item": "afs_material_1", "count": [ 12, 16 ] }, @@ -1097,5 +1097,65 @@ { "item": "amplifier", "count": [ 1, 2 ] } ] } + }, + { + "type": "furniture", + "id": "f_exo_gantry", + "name": "Exosuit gantry", + "symbol": "T", + "description": "A gantry for supporting an exosuit upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active. This one is not currently functioning.", + "color": "light_cyan", + "looks_like": "f_robotic_arm", + "move_cost_mod": -1, + "coverage": 35, + "required_str": -1, + "flags": [ "PLACE_ITEM", "TRANSPARENT" ], + "max_volume": "1750 L", + "deconstruct": { + "items": [ + { "item": "steel_lump", "count": [ 3, 6 ] }, + { "item": "steel_chunk", "count": [ 3, 6 ] }, + { "item": "scrap", "count": [ 3, 6 ] }, + { "item": "welder", "charges": 0, "prob": 50 } + ] + } + }, + { + "type": "furniture", + "id": "f_afs_shuttle_seat", + "name": "shuttle seat", + "copy-from": "f_seat_airplane", + "description": "The cushioned and upright facing seat of a short-ranged shuttle pod. Has a locking bar that fits over your shoulders.", + "symbol": "H", + "color": "light_red", + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "ORGANIC", "MOUNTABLE", "CAN_SIT" ], + "move_cost_mod": 1, + "coverage": 45, + "comfort": 3, + "floor_bedding_warmth": 500, + "bonus_fire_warmth_feet": 1000, + "deconstruct": { + "items": [ { "item": "pipe", "count": 10 }, { "item": "cotton_patchwork", "count": [ 30, 33 ] }, { "item": "rope_6" } ] + }, + "required_str": 20 + }, + { + "type": "furniture", + "id": "f_afs_escape_pod_seat_launch", + "name": "escape pod seat", + "copy-from": "f_seat_airplane", + "description": "The cushioned and upright facing seat of a single-seater escape pod. A storage space beneath it holds survival supplies.", + "symbol": "H", + "color": "light_red", + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "ORGANIC", "MOUNTABLE", "CAN_SIT" ], + "move_cost_mod": 1, + "coverage": 45, + "comfort": 3, + "floor_bedding_warmth": 500, + "bonus_fire_warmth_feet": 1000, + "deconstruct": { + "items": [ { "item": "pipe", "count": 10 }, { "item": "cotton_patchwork", "count": [ 30, 33 ] }, { "item": "rope_6" } ] + }, + "required_str": 20 } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/furniture_habitat.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/furniture_habitat.json index cba0941bb..361fe83da 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/furniture_habitat.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/furniture_habitat.json @@ -10,7 +10,8 @@ "move_cost_mod": -1, "coverage": 55, "required_str": -1, - "flags": [ "FLAMMABLE_ASH", "CONTAINER", "PLACE_ITEM", "ORGANIC", "MOUNTABLE", "FLAT_SURF" ], + "flags": [ "FLAMMABLE_ASH", "CONTAINER", "PLACE_ITEM", "ORGANIC", "MOUNTABLE", "FLAT_SURF", "NO_SELF_CONNECT" ], + "connect_groups": "COUNTER", "connects_to": "COUNTER", "deconstruct": { "items": [ @@ -32,5 +33,115 @@ }, "examine_action": "workbench", "workbench": { "multiplier": 1.1, "mass": 200000, "volume": "50L" } + }, + { + "type": "furniture", + "id": "f_habitat_storage_board", + "name": "storage board", + "symbol": "#", + "looks_like": "f_cupboard", + "description": "The wall-mounted, steel and plastic storage solution of tomorrow.", + "color": "blue", + "move_cost_mod": 1, + "coverage": 55, + "required_str": -1, + "flags": [ "TRANSPARENT", "CONTAINER", "PLACE_ITEM", "MOUNTABLE", "FLAT_SURF" ], + "connect_groups": "COUNTER", + "connects_to": "COUNTER", + "rotates_to": "INDOORFLOOR", + "deconstruct": { + "items": [ + { "item": "plastic_chunk", "count": 3 }, + { "item": "scrap", "count": [ 2, 8 ] }, + { "item": "rigid_plastic_sheet", "count": 1 }, + { "item": "polycarbonate_sheet", "count": [ 2, 8 ] } + ] + }, + "bash": { + "str_min": 8, + "str_max": 30, + "sound": "smash!", + "sound_fail": "whump.", + "items": [ + { "item": "scrap", "count": [ 2, 8 ] }, + { "item": "polycarbonate_sheet", "count": [ 1, 3 ] }, + { "item": "rigid_plastic_sheet", "count": [ 0, 1 ] }, + { "item": "plastic_chunk", "count": [ 2, 16 ] } + ] + }, + "examine_action": "workbench", + "workbench": { "multiplier": 1.1, "mass": 200000, "volume": "75L" } + }, + { + "type": "furniture", + "id": "f_habitat_bathroom", + "name": "integrated washroom", + "symbol": "#", + "looks_like": "f_shower", + "description": "Waste and water pipes, conjoined into the most compact bathroom that could possibly be built.", + "color": "white", + "move_cost_mod": 0, + "coverage": 35, + "required_str": -1, + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "CONTAINER", "PLACE_ITEM", "BLOCKSDOOR" ], + "bash": { + "str_min": 6, + "str_max": 30, + "sound": "metal screeching!", + "sound_fail": "clang!", + "sound_vol": 16, + "sound_fail_vol": 12, + "items": [ + { "item": "cable", "charges": [ 1, 2 ] }, + { "item": "water_faucet", "count": 1 }, + { "item": "hose", "count": [ 2, 3 ] }, + { "item": "afs_circuitry_1", "count": [ 0, 1 ] }, + { "item": "plastic_chunk", "count": [ 5, 10 ] }, + { "item": "scrap", "count": [ 2, 7 ] }, + { "item": "steel_chunk", "count": [ 0, 3 ] } + ] + } + }, + { + "type": "furniture", + "id": "f_screenmirror", + "name": "screen mirror", + "symbol": "{", + "description": "A wall mounted digital display. It would once have served as an entertainment and advertising system.", + "color": "dark_gray", + "move_cost_mod": 2, + "coverage": 80, + "required_str": 5, + "crafting_pseudo_item": "mirror", + "flags": [ "NOITEM", "BLOCKSDOOR" ], + "examine_action": "change_appearance", + "deconstruct": { + "items": [ + { "item": "large_lcd_screen", "count": 1 }, + { "item": "small_lcd_screen", "count": 2 }, + { "item": "sheet_metal_small", "count": [ 2, 3 ] }, + { "item": "afs_circuitry_1", "count": [ 1, 2 ] }, + { "item": "cable", "charges": [ 2, 4 ] }, + { "item": "e_scrap", "count": [ 1, 3 ] }, + { "item": "circuit", "count": [ 1, 2 ] } + ] + }, + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "items": [ + { "item": "scrap", "count": [ 2, 4 ] }, + { "item": "steel_chunk", "count": [ 2, 4 ] }, + { "item": "plastic_chunk", "count": [ 2, 4 ] }, + { "item": "small_lcd_screen", "count": 1, "prob": 50 }, + { "item": "sheet_metal_small", "count": [ 2, 3 ] }, + { "item": "afs_circuitry_1", "count": 1, "prob": 50 }, + { "item": "cable", "charges": [ 0, 2 ] }, + { "item": "e_scrap", "count": [ 0, 1 ] }, + { "item": "circuit", "count": [ 0, 1 ] } + ] + } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/furniture_habitat_machinery.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/furniture_habitat_machinery.json new file mode 100644 index 000000000..e52a8eff4 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/furniture_habitat_machinery.json @@ -0,0 +1,116 @@ +[ + { + "type": "furniture", + "id": "f_ECU", + "name": "ECU", + "looks_like": "f_air_filter", + "description": "The central node of a life support system, tasked with regulating atmospherics and water flow to the rest of an habitat or ship.", + "symbol": "0", + "bgcolor": "white", + "move_cost_mod": -1, + "coverage": 60, + "required_str": -1, + "flags": [ "CONTAINER", "PLACE_ITEM", "LIQUIDCONT", "NOITEM", "SEALED" ], + "examine_action": "fireplace", + "deconstruct": { + "items": [ + { "item": "pipe", "count": 1 }, + { "item": "small_lcd_screen", "count": 1 }, + { "item": "afs_circuitry_1", "count": [ 1, 4 ] }, + { "item": "afs_circuitry_2", "count": 1 }, + { "item": "afs_material_1", "count": [ 2, 5 ] }, + { "item": "scrap", "count": [ 2, 6 ] }, + { "item": "steel_chunk", "count": [ 1, 3 ] }, + { "item": "sheet_metal", "count": [ 2, 6 ] }, + { "item": "cable", "charges": [ 1, 15 ] }, + { "item": "cu_pipe", "count": [ 2, 5 ] }, + { "item": "thermostat", "count": 1 }, + { "item": "pipe_fittings", "count": [ 2, 6 ] }, + { "item": "afs_circuitry_1", "count": [ 1, 4 ] } + ] + }, + "bash": { + "str_min": 18, + "str_max": 50, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 2, 7 ] }, + { "item": "steel_chunk", "count": [ 0, 3 ] }, + { "item": "sheet_metal", "count": [ 2, 6 ] }, + { "item": "afs_material_1", "count": [ 2, 5 ] }, + { "item": "cable", "charges": [ 1, 15 ] }, + { "item": "afs_circuitry_1", "count": [ 1, 4 ] }, + { "item": "cu_pipe", "count": [ 1, 4 ] }, + { "item": "afs_circuitry_1", "count": [ 1, 4 ] }, + { "item": "scrap_copper", "count": [ 0, 2 ] } + ] + } + }, + { + "type": "furniture", + "id": "f_cryofluid_pump", + "name": "Cryo-fluid pump", + "looks_like": "f_standing_tank", + "description": "An insulated metal tank prepared for the storage of exotic cryo-coolants. Relatively advanced in construction, it can be salvaged for valuable scrap.", + "symbol": "0", + "bgcolor": "white", + "move_cost_mod": -1, + "coverage": 55, + "required_str": -1, + "flags": [ "CONTAINER", "PLACE_ITEM", "LIQUIDCONT", "NOITEM", "SEALED" ], + "examine_action": "keg", + "keg_capacity": 20, + "bash": { + "str_min": 18, + "str_max": 50, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 2, 7 ] }, + { "item": "afs_material_2", "count": [ 0, 1 ] }, + { "item": "afs_material_1", "count": [ 2, 12 ] }, + { "item": "afs_circuitry_2", "count": [ 0, 2 ] }, + { "item": "afs_energy_storage_1", "count": [ 1, 2 ] }, + { "item": "afs_heat_2_salvage", "count": [ 1, 4 ] }, + { "item": "frame", "count": 1 }, + { "item": "cable", "charges": [ 1, 15 ] }, + { "item": "hose", "count": [ 0, 2 ] }, + { "item": "cu_pipe", "count": [ 1, 4 ] }, + { "item": "polycarbonate_sheet", "count": [ 1, 2 ] } + ] + } + }, + { + "type": "furniture", + "id": "f_atmospheric_control", + "name": "atmospherics controller", + "looks_like": "f_console", + "description": "An imposing brick of circuitry inlaid tubing adorned with a single console. It might still half-work, even after all this time.", + "symbol": "0", + "bgcolor": "white", + "move_cost_mod": -1, + "coverage": 55, + "required_str": -1, + "flags": [ "TRANSPARENT", "CONTAINER", "SEALED", "ALLOW_FIELD_EFFECT", "FLAMMABLE", "PLACE_ITEM" ], + "bash": { + "str_min": 18, + "str_max": 50, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 2, 7 ] }, + { "item": "afs_material_1", "count": [ 2, 12 ] }, + { "item": "afs_circuitry_2", "count": [ 0, 2 ] }, + { "item": "afs_energy_storage_1", "count": [ 1, 2 ] }, + { "item": "afs_heat_2_salvage", "count": [ 1, 4 ] }, + { "item": "frame", "count": 1 }, + { "item": "oxygen_tank", "prob": 15, "charges-min": 4 }, + { "item": "cable", "charges": [ 1, 15 ] }, + { "item": "hose", "count": [ 3, 10 ] }, + { "item": "cu_pipe", "count": [ 5, 15 ] }, + { "item": "polycarbonate_sheet", "count": [ 1, 2 ] } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain.json index 167a9250f..a682ee757 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain.json @@ -58,5 +58,32 @@ "ter_set": "t_floor", "items": [ { "item": "clearcrete_chunk", "count": [ 42, 84 ] } ] } + }, + { + "type": "terrain", + "id": "t_foamcrete_wall_seal", + "name": "foamcrete wall", + "description": "Automatically deployed by the ship to block breaches and seal off damaged sections, this foamcrete wall is a temporary solution at best.", + "symbol": "#", + "color": "white", + "looks_like": "t_rock_wall", + "move_cost": 0, + "coverage": 100, + "roof": "t_foamcrete_floor", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "DESTROY_ITEM", "MINEABLE", "BLOCK_WIND" ], + "bash": { "str_min": 15, "str_max": 40, "sound": "crash!", "sound_fail": "thump!", "ter_set": "t_null" } + }, + { + "type": "terrain", + "id": "t_foamcrete_floor_seal", + "name": "foamcrete floor", + "description": "Automatically deployed by the ship to block breaches and seal off damaged sections, this foamcrete floor is a temporary solution at best.", + "symbol": ".", + "color": "light_blue", + "looks_like": "t_rock_floor", + "move_cost": 2, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "FLAT", "ROAD", "SUPPORTS_ROOF" ], + "bash": { "ter_set": "t_null", "str_min": 75, "str_max": 400, "str_min_supported": 30, "bash_below": true } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_alienciv.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_alienciv.json index 076ef1d33..7c6744dc3 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_alienciv.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_alienciv.json @@ -26,7 +26,6 @@ "symbol": "LINE_XOXO", "looks_like": "t_rock_wall", "color": "light_gray", - "connects_to": "WALL", "move_cost": 0, "coverage": 100, "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_floraxeno.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_floraxeno.json index c22716630..b67c519f4 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_floraxeno.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_floraxeno.json @@ -142,7 +142,7 @@ "move_cost_mod": -1, "coverage": 65, "required_str": -1, - "flags": [ "NOITEM", "MINEABLE", "BLOCK_WIND", "EMITTER" ], + "flags": [ "NOITEM", "MINEABLE", "BLOCK_WIND" ], "emissions": [ "emit_smoke_plume", "emit_hot_air_migo_seep" ], "bash": { "str_min": 65, diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_groundxeno.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_groundxeno.json index f31ce42c7..1049bec19 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_groundxeno.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_groundxeno.json @@ -95,7 +95,7 @@ "move_cost_mod": -1, "coverage": 65, "required_str": -1, - "flags": [ "NOITEM", "MINEABLE", "BLOCK_WIND", "EMITTER" ], + "flags": [ "NOITEM", "MINEABLE", "BLOCK_WIND" ], "emissions": [ "emit_smoke_plume", "afs_emit_geovent" ], "bash": { "str_min": 65, @@ -121,7 +121,7 @@ "color": "white", "move_cost": 0, "coverage": 80, - "flags": [ "NOITEM", "MINEABLE", "BLOCK_WIND", "EMITTER" ], + "flags": [ "NOITEM", "MINEABLE", "BLOCK_WIND" ], "emissions": [ "emit_smoke_plume", "afs_emit_geovent" ], "bash": { "str_min": 45, "str_max": 140, "sound": "smash!", "sound_fail": "thump.", "ter_set": "t_fumarole" } }, @@ -145,7 +145,7 @@ "symbol": ".", "color": "white", "move_cost": 10, - "flags": [ "TRANSPARENT", "FLAT", "ROUGH", "EMITTER" ], + "flags": [ "TRANSPARENT", "FLAT", "ROUGH" ], "emissions": [ "emit_smoke_plume", "afs_emit_geovent" ] }, { @@ -237,7 +237,6 @@ "coverage": 100, "roof": "t_basaltfloor", "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", "bash": { "str_min": 80, "str_max": 300, @@ -258,7 +257,6 @@ "coverage": 100, "roof": "t_ice", "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", "bash": { "str_min": 50, "str_max": 100, "sound": "crash!", "sound_fail": "whump!", "ter_set": "t_ice" } }, { @@ -272,7 +270,6 @@ "coverage": 100, "roof": "t_snow_roof", "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], - "connects_to": "WALL", "bash": { "str_min": 50, "str_max": 100, "sound": "crash!", "sound_fail": "whump!", "ter_set": "t_null", "bash_below": true } }, { diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_habitat_wall.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_habitat_wall.json index ed0b58eeb..648f55093 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_habitat_wall.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_habitat_wall.json @@ -8,7 +8,6 @@ "symbol": "LINE_XOXO", "looks_like": "t_wall_metal", "color": "light_gray", - "connects_to": "WALL", "move_cost": 0, "coverage": 100, "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], @@ -112,7 +111,7 @@ "color": "yellow", "description": "The glass panel that would have covered this porthole has been broken, allowing unfettered access to the rooms within.", "close": "t_wall_prefab_bglass_shutters", - "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "MOUNTABLE", "CONNECT_TO_WALL", "SMALL_PASSAGE", "WINDOW" ], + "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "MOUNTABLE", "CONNECT_WITH_WALL", "SMALL_PASSAGE", "WINDOW" ], "roof": "t_metal_flat_roof", "bash": { "str_min": 20, diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_manufactured.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_manufactured.json new file mode 100644 index 000000000..ca24586de --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_manufactured.json @@ -0,0 +1,35 @@ +[ + { + "type": "terrain", + "id": "t_nanofab", + "name": "nanofabricator control panel", + "symbol": "&", + "description": "A small computer panel attached to a nanofabricator. It has a single slot for reading templates.", + "allowed_template_ids": [ "standard_template_construct", "debug_template", "afs_10mm_smart_template" ], + "color": "red", + "looks_like": "f_console", + "move_cost": 0, + "coverage": 50, + "flags": [ "WALL", "NOITEM", "PERMEABLE" ], + "examine_action": "nanofab", + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_metal_floor", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_spaceship.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_spaceship.json index 8466698e7..24ee02300 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_spaceship.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture_and_terrain/terrain_spaceship.json @@ -74,7 +74,7 @@ "symbol": "+", "color": "light_red", "open": "t_afs_space_ship_hatch_o", - "flags": [ "NOITEM", "DOOR", "CONNECT_TO_WALL", "MINEABLE" ], + "flags": [ "NOITEM", "DOOR", "CONNECT_WITH_WALL", "MINEABLE" ], "copy-from": "t_door_metal_lab_c", "bash": { "str_min": 200, @@ -101,7 +101,7 @@ "copy-from": "t_door_metal_lab_o", "symbol": "'", "color": "light_red", - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD", "MINEABLE" ], + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_WITH_WALL", "ROAD", "MINEABLE" ], "bash": { "str_min": 200, "str_max": 600, @@ -116,5 +116,120 @@ { "item": "scrap", "count": [ 6, 24 ] } ] } + }, + { + "type": "terrain", + "id": "t_card_locker_room", + "name": "Locker room card reader", + "description": "This is a smartcard reader. Bold lettering proclaims that this controls access to the locker room. You could swipe an appropriate crew ID card near it to unlock the gates.", + "//": "Entrance card for the barracks locker room. Low security access.", + "symbol": "6", + "color": "cyan", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "AFS_CS_LOCKER_CARD" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 2, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_armory_room", + "name": "Armory card reader", + "description": "This is a smartcard reader. Bold lettering proclaims that this controls access to the armory. You could swipe an appropriate crew ID card near it to unlock the gates.", + "//": "Entrance card for the barracks armory. High security access.", + "symbol": "6", + "color": "cyan", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "AFS_CS_LOCKER_CARD" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 2, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_exobay_room", + "name": "Exobay card reader", + "description": "This is a smartcard reader. Bold lettering proclaims that this controls access to the exosuit bay. You could swipe an appropriate crew ID card near it to unlock the gates.", + "//": "Entrance card for the barracks armory. Medium security access.", + "symbol": "6", + "color": "cyan", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "AFS_CS_EXOBAY_CARD" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 2, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_afs_shuttlepod_g", + "name": "shuttle pod guidance system", + "description": "The complex controls of a shuttlepod. Doesn't seem to be working right now.", + "roof": "t_metal_flat_roof", + "looks_like": "f_console_broken", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "MINEABLE", "BLOCK_WIND" ], + "symbol": "o", + "color": "white", + "copy-from": "t_afs_space_ship_hull_wall", + "deconstruct": { + "ter_set": "t_afs_space_ship_hull_wall", + "items": [ + { "item": "afs_circuitry_3", "count": [ 1, 2 ] }, + { "item": "afs_circuitry_2", "count": [ 4, 8 ] }, + { "item": "cable", "charges": [ 4, 6 ] }, + { "item": "small_lcd_screen", "count": [ 1, 2 ] }, + { "item": "afs_material_1", "count": [ 2, 4 ] }, + { "item": "afs_energy_storage_2", "count": [ 1, 2 ] }, + { "item": "afs_energy_storage_3", "count": [ 0, 1 ] }, + { "item": "plastic_chunk", "count": [ 1, 2 ] }, + { "item": "afs_material_2", "count": [ 0, 2 ] } + ] + }, + "bash": { + "str_min": 30, + "str_max": 40, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_null", + "items": [ + { "item": "cable", "charges": [ 2, 6 ] }, + { "item": "plastic_chunk", "count": [ 6, 10 ] }, + { "item": "afs_energy_storage_2", "count": [ 0, 2 ] }, + { "item": "afs_energy_storage_2", "count": [ 1, 2 ] }, + { "item": "afs_circuitry_1", "count": [ 0, 2 ] }, + { "item": "afs_material_2", "count": [ 1, 2 ] }, + { "item": "afs_material_1", "count": [ 2, 12 ] }, + { "item": "scrap", "count": [ 6, 24 ] } + ] + } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/furniture_lab.json b/data/Mainline_mods/Mods/Aftershock/maps/furniture_lab.json index 5bf41413f..21808e45f 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/furniture_lab.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/furniture_lab.json @@ -175,7 +175,7 @@ { "item": "sheet_metal", "count": [ 2, 6 ] }, { "item": "element", "count": [ 2, 3 ] }, { "item": "cable", "charges": [ 1, 15 ] }, - { "item": "motor_small", "charges": 1 }, + { "item": "motor_small", "count": 1 }, { "item": "cu_pipe", "count": [ 1, 3 ] }, { "item": "afs_biomaterial_1", "count": [ 1, 4 ] }, { "item": "afs_biomaterial_2", "count": [ 0, 3 ] }, @@ -320,12 +320,12 @@ { "item": "pipe", "count": [ 1, 4 ] }, { "item": "cable", "charges": [ 1, 15 ] }, { "item": "solder_wire", "charges": [ 1, 15 ] }, - { "item": "afs_circuitry_2", "charges": [ 4, 8 ] }, - { "item": "afs_circuitry_3", "charges": [ 1, 4 ] }, - { "item": "afs_circuitry_4", "charges": 1, "prob": 25 }, - { "item": "afs_magnet_1", "charges": [ 3, 6 ] }, - { "item": "afs_magnet_2", "charges": [ 2, 6 ] }, - { "item": "afs_energy_storage_2", "charges": [ 1, 4 ] } + { "item": "afs_circuitry_2", "count": [ 4, 8 ] }, + { "item": "afs_circuitry_3", "count": [ 1, 4 ] }, + { "item": "afs_circuitry_4", "count": 1, "prob": 25 }, + { "item": "afs_magnet_1", "count": [ 3, 6 ] }, + { "item": "afs_magnet_2", "count": [ 2, 6 ] }, + { "item": "afs_energy_storage_2", "count": [ 1, 4 ] } ] }, "bash": { @@ -342,11 +342,11 @@ { "item": "cable", "charges": [ 1, 15 ] }, { "item": "e_scrap", "count": [ 5, 10 ] }, { "item": "plastic_chunk", "count": [ 0, 2 ] }, - { "item": "afs_circuitry_2", "charges": [ 0, 3 ] }, - { "item": "afs_circuitry_3", "charges": [ 0, 2 ], "prob": 50 }, - { "item": "afs_magnet_1", "charges": [ 0, 3 ] }, - { "item": "afs_magnet_2", "charges": [ 0, 2 ] }, - { "item": "afs_energy_storage_2", "charges": [ 0, 2 ] } + { "item": "afs_circuitry_2", "count": [ 0, 3 ] }, + { "item": "afs_circuitry_3", "count": [ 0, 2 ], "prob": 50 }, + { "item": "afs_magnet_1", "count": [ 0, 3 ] }, + { "item": "afs_magnet_2", "count": [ 0, 2 ] }, + { "item": "afs_energy_storage_2", "count": [ 0, 2 ] } ] } }, @@ -371,12 +371,12 @@ { "item": "pipe", "count": [ 1, 4 ] }, { "item": "cable", "charges": [ 1, 15 ] }, { "item": "solder_wire", "charges": [ 1, 15 ] }, - { "item": "afs_circuitry_2", "charges": [ 4, 8 ] }, - { "item": "afs_circuitry_3", "charges": [ 1, 4 ] }, - { "item": "afs_circuitry_4", "charges": 1, "prob": 25 }, - { "item": "afs_magnet_1", "charges": [ 3, 6 ] }, - { "item": "afs_magnet_2", "charges": [ 2, 6 ] }, - { "item": "afs_energy_storage_2", "charges": [ 1, 4 ] } + { "item": "afs_circuitry_2", "count": [ 4, 8 ] }, + { "item": "afs_circuitry_3", "count": [ 1, 4 ] }, + { "item": "afs_circuitry_4", "count": 1, "prob": 25 }, + { "item": "afs_magnet_1", "count": [ 3, 6 ] }, + { "item": "afs_magnet_2", "count": [ 2, 6 ] }, + { "item": "afs_energy_storage_2", "count": [ 1, 4 ] } ] }, "bash": { @@ -393,11 +393,11 @@ { "item": "cable", "charges": [ 1, 15 ] }, { "item": "e_scrap", "count": [ 5, 10 ] }, { "item": "plastic_chunk", "count": [ 0, 2 ] }, - { "item": "afs_circuitry_2", "charges": [ 0, 3 ] }, - { "item": "afs_circuitry_3", "charges": [ 0, 2 ], "prob": 50 }, - { "item": "afs_magnet_1", "charges": [ 0, 3 ] }, - { "item": "afs_magnet_2", "charges": [ 0, 2 ] }, - { "item": "afs_energy_storage_2", "charges": [ 0, 2 ] } + { "item": "afs_circuitry_2", "count": [ 0, 3 ] }, + { "item": "afs_circuitry_3", "count": [ 0, 2 ], "prob": 50 }, + { "item": "afs_magnet_1", "count": [ 0, 3 ] }, + { "item": "afs_magnet_2", "count": [ 0, 2 ] }, + { "item": "afs_energy_storage_2", "count": [ 0, 2 ] } ] } }, @@ -424,11 +424,11 @@ { "item": "steel_chunk", "count": 3 }, { "item": "sheet_metal", "count": 3 }, { "item": "cable", "charges": 5 }, - { "item": "afs_circuitry_2", "charges": [ 2, 6 ] }, - { "item": "afs_circuitry_3", "charges": [ 1, 2 ] }, - { "item": "afs_magnet_1", "charges": [ 3, 6 ] }, - { "item": "afs_magnet_2", "charges": [ 2, 4 ] }, - { "item": "afs_energy_storage_2", "charges": [ 1, 2 ] } + { "item": "afs_circuitry_2", "count": [ 2, 6 ] }, + { "item": "afs_circuitry_3", "count": [ 1, 2 ] }, + { "item": "afs_magnet_1", "count": [ 3, 6 ] }, + { "item": "afs_magnet_2", "count": [ 2, 4 ] }, + { "item": "afs_energy_storage_2", "count": [ 1, 2 ] } ] }, "bash": { @@ -443,11 +443,11 @@ { "item": "steel_chunk", "count": [ 0, 3 ] }, { "item": "sheet_metal", "count": [ 1, 3 ] }, { "item": "cable", "charges": [ 1, 15 ] }, - { "item": "afs_circuitry_2", "charges": [ 0, 3 ] }, - { "item": "afs_circuitry_3", "charges": [ 0, 2 ], "prob": 50 }, - { "item": "afs_magnet_1", "charges": [ 0, 3 ] }, - { "item": "afs_magnet_2", "charges": [ 0, 1 ] }, - { "item": "afs_energy_storage_2", "charges": [ 0, 2 ] } + { "item": "afs_circuitry_2", "count": [ 0, 3 ] }, + { "item": "afs_circuitry_3", "count": [ 0, 2 ], "prob": 50 }, + { "item": "afs_magnet_1", "count": [ 0, 3 ] }, + { "item": "afs_magnet_2", "count": [ 0, 1 ] }, + { "item": "afs_energy_storage_2", "count": [ 0, 2 ] } ] } } diff --git a/data/Mainline_mods/Mods/Aftershock/maps/lab_cryo_room.json b/data/Mainline_mods/Mods/Aftershock/maps/lab_cryo_room.json index b3dfaef1d..790ebd18b 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/lab_cryo_room.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/lab_cryo_room.json @@ -34,8 +34,8 @@ "|----------------------|" ], "palettes": [ "lab_palette_aftershock" ], - "furniture": { "P": "f_cooling_pylon", "C": "f_cryo_pod", "&": "f_trashcan", "W": "f_workbench", "R": "f_crispr" }, - "terrain": { "7": "t_console", "*": "t_thconc_floor" }, + "furniture": { "7": "f_console", "P": "f_cooling_pylon", "C": "f_cryo_pod", "&": "f_trashcan", "W": "f_workbench", "R": "f_crispr" }, + "terrain": { "*": "t_thconc_floor" }, "place_traps": [ { "trap": "tr_cryo_pod_switch", "x": [ 5 ], "y": [ 8 ] } ], "place_monsters": [ { "monster": "GROUP_LAB", "chance": 2, "x": [ 2, 21 ], "y": [ 2, 21 ], "repeat": [ 1, 5 ] } ], "mapping": { diff --git a/data/Mainline_mods/Mods/Aftershock/maps/lab_weapons_range.json b/data/Mainline_mods/Mods/Aftershock/maps/lab_weapons_range.json index b01f339f9..d618b0690 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/lab_weapons_range.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/lab_weapons_range.json @@ -34,8 +34,8 @@ "|----------------------|" ], "palettes": [ "lab_palette" ], - "furniture": { "S": "f_sofa", "s": "f_sandbag_half", "&": "f_trashcan" }, - "terrain": { "7": "t_console", "*": "t_thconc_floor" }, + "furniture": { "7": "f_console", "S": "f_sofa", "s": "f_sandbag_half", "&": "f_trashcan" }, + "terrain": { "*": "t_thconc_floor" }, "mapping": { "l": { "items": [ { "item": "gear_soldier_sidearm", "chance": 33 } ] }, "]": { "items": [ { "item": "book_military", "chance": 20 } ] }, diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/augmentation_clinic.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/augmentation_clinic.json index 5b4934ee6..82ae70576 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/augmentation_clinic.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/augmentation_clinic.json @@ -33,8 +33,15 @@ " " ], "palettes": [ "aug_clinic" ], - "terrain": { "'": "t_door_glass_o", ".": "t_strconc_floor", ",": "t_sidewalk", "E": "t_machinery_electronic" }, - "furniture": { "?": "f_autodoc", "/": "f_autodoc_couch", "T": "f_table", "n": "f_trashcan", "B": "f_monomolecularsaw" }, + "terrain": { "'": "t_door_glass_o", ".": "t_strconc_floor", ",": "t_sidewalk" }, + "furniture": { + "?": "f_autodoc", + "/": "f_autodoc_couch", + "T": "f_table", + "n": "f_trashcan", + "E": "f_machinery_electronic", + "B": "f_monomolecularsaw" + }, "items": { "c": { "item": "dissection", "chance": 80, "repeat": [ 1, 3 ] }, "d": { "item": "office", "chance": 60 }, diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/escape_pod.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/escape_pod.json index 9f9c5d318..3095e9276 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/escape_pod.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/escape_pod.json @@ -41,6 +41,7 @@ ",": "t_dirt", "#": "t_dirtmound" }, + "place_zones": [ { "type": "ZONE_START_POINT", "faction": "your_followers", "x": [ 11, 11 ], "y": [ 13, 13 ] } ], "furniture": { "!": "f_afs_escape_pod_seat" }, "items": { "!": { "item": "afs_escape_pod_suppliesII", "chance": 100 } } } diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/formless_ruins/formless_ruins_dynamic.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/formless_ruins/formless_ruins_dynamic.json index 070867f8a..e7a54016d 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/formless_ruins/formless_ruins_dynamic.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/formless_ruins/formless_ruins_dynamic.json @@ -171,7 +171,7 @@ "method": "json", "om_terrain": [ "afs_formless_ruins_dynamic" ], "//": "emptier map with a droneswarm, very rare", - "weight": 10, + "weight": 5, "object": { "predecessor_mapgen": "field", "rows": [ @@ -807,8 +807,8 @@ "///.. // " ], "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], - "terrain": { "C": "t_metal_floor", "W": "t_metal_floor", "T": "t_metal_floor", "1": "t_machinery_heavy" }, - "furniture": { "C": "f_counter", "W": "f_rack", "T": "f_afs_telepad" }, + "terrain": { "C": "t_metal_floor", "W": "t_metal_floor", "T": "t_metal_floor" }, + "furniture": { "1": "f_machinery_heavy", "C": "f_counter", "W": "f_rack", "T": "f_afs_telepad" }, "items": { "W": [ { "item": "afs_experimental_combat_gear", "chance": 10, "repeat": [ 1, 2 ] }, @@ -856,7 +856,7 @@ ] }, "place_monsters": [ { "monster": "AFS_GROUP_ROBOT_LOW_RISK", "x": [ 0, 11 ], "y": [ 0, 11 ], "density": 0.1 } ], - "monster": { "M": { "monster": "mon_skitterbot" } }, + "monster": { "M": { "monster": "mon_skitterbot", "pack_size": 1 } }, "palettes": [ "afs_formless_ruins" ] } }, @@ -904,7 +904,7 @@ ], "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], "terrain": { "6": "t_metal_floor", "C": "t_metal_floor", "W": "t_metal_floor" }, - "furniture": { "6": "f_console_broken", "C": "f_compact_ASRG", "W": "f_workbench" }, + "furniture": { "6": "f_console_broken", "C": "f_compact_ASRG_containment", "W": "f_workbench" }, "items": { "W": [ { "item": "tools_robotics", "chance": 80, "repeat": [ 1, 3 ] }, diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/map_palletes.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/map_palletes.json index 5413742fa..807e1a91b 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/map_palletes.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/map_palletes.json @@ -8,7 +8,6 @@ "2": "t_door_metal_c", "4": "t_door_metal_pickable", "5": "t_door_metal_locked", - "6": "t_console_broken", "[": "t_door_glass_c", "-": "t_wall", "|": "t_concrete_wall", @@ -31,6 +30,7 @@ }, "furniture": { "&": "f_toilet", + "6": "f_console_broken", "~": "f_shower", "@": "f_bed", "a": "f_armchair", diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/millyficent_lab.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/millyficent_lab.json index f37770e3d..3707cb23a 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/millyficent_lab.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/millyficent_lab.json @@ -151,12 +151,12 @@ "n": "t_linoleum_white", "H": "t_linoleum_white", "T": "t_linoleum_white", - "8": "t_console_broken", "W": "t_water_dispenser", "*": "t_thconc_floor_olight" }, "liquids": { "E": { "liquid": "water_clean", "amount": [ 0, 100 ] }, "W": { "liquid": "water_clean", "amount": [ 0, 80 ] } }, "furniture": { + "8": "f_console_broken", "T": "f_workbench", "G": "f_glass_cabinet", "c": "f_counter", @@ -242,8 +242,6 @@ "=": "t_door_glass_frosted_lab_c", ":": "t_reinforced_glass", "m": "t_door_metal_c", - "o": "t_centrifuge", - "x": "t_console_broken", "*": "t_floor_olight", "w": "t_window_bars_curtains", ">": "t_wood_stairs_down", @@ -258,6 +256,8 @@ "A": "f_air_filter", "b": "f_lab_bench", "B": "f_bookcase", + "o": "f_centrifuge", + "x": "f_console_broken", "C": "f_counter", "c": "f_chair", "d": "f_desk", @@ -316,18 +316,18 @@ " ", " ", " ", - " |22223 ", - " |222222|....|2222223 ", - " |..................3 ", - "|2|..................3 ", - "|....................3 ", - "|.U..................3 ", - "|....................3 ", - "--5..................3 ", - " |..................3 ", - " |..................3 ", - " |..................3 ", - " |------------------3 ", + " ------ ", + " --------....-------- ", + " -..................- ", + "---..................- ", + "-....................- ", + "-.U..................- ", + "-....................- ", + "--5..................- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -------------------- ", " " ], "palettes": [ "roof_palette" ], diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/municipal_microreactor.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/municipal_microreactor.json index 45c9a3863..645fda436 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/municipal_microreactor.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/municipal_microreactor.json @@ -26,8 +26,8 @@ ",---- 2 i- dd-2--- d6-,", ",-t ----4(((- 2 -,", ",-a Ydh - -----,", - ",-a d - 2eeE-,", - ",-^ 4 2eee-,", + ",-a d - 2eE-,", + ",-^ 4 2ee-,", ",-=[[==---------55-----,", "ssssssssssssssssssssssss" ], @@ -117,11 +117,11 @@ "#########-% -##########", "#########-% -##########", "######-----55-----------", - "######-**%% ****2**2 ", - "######-** M 2 2 ", - "######- M ---- ", - "######-*** ** ****-``- ", - "######-*** ** ****-``- ", + "######-**%% **** 2**2 ", + "######-** M 2 2 ", + "######- M ---- ", + "######-*** ** **** -``- ", + "######-*** ** **** -``- ", "######------------------", "########################" ], @@ -131,7 +131,8 @@ { "square": "radiation", "amount": 10000, "x": 9, "y": 5, "x2": 14, "y2": 8 } ], "palettes": [ "general_jc" ], - "terrain": { "-": "t_wall_metal", "1": "t_support_l", "#": "t_rock", "%": "t_machinery_heavy" }, + "terrain": { "-": "t_wall_metal", "1": "t_support_l", "#": "t_rock" }, + "furniture": { "%": "f_machinery_heavy" }, "items": { "*": { "item": "nuclear_waste", "chance": 70 } }, "monster": { "M": { "monster": "mon_hazmatbot" } } } @@ -170,14 +171,8 @@ ], "set": [ { "square": "radiation", "amount": 50, "x": 0, "y": 17, "x2": 17, "y2": 21 } ], "palettes": [ "general_jc" ], - "terrain": { - "-": "t_wall_metal", - "1": "t_support_l", - "#": "t_rock", - "e": "t_elevator", - "E": "t_elevator_control_off", - "%": "t_machinery_heavy" - }, + "terrain": { "-": "t_wall_metal", "1": "t_support_l", "#": "t_rock", "e": "t_elevator", "E": "t_elevator_control_off" }, + "furniture": { "%": "f_machinery_heavy" }, "items": { "d": { "item": "cop_armory", "chance": 5 }, "l": { "item": "reactor_gear", "chance": 70 }, @@ -214,9 +209,9 @@ "####- ^ 6-G55--l b l-#", "####--2----- 2 l-#", "####- -(22(-------#", - "####- d YYY 2eE-##", - "####- hd 2ee-##", - "####------------------##", + "####- d YYY 2eE-#", + "####- hd 2ee-#", + "####-------------------#", "########################" ], "set": [ diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/robot_dispatch/tpalettes.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/robot_dispatch/tpalettes.json index 9f24337b8..3868629ce 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/robot_dispatch/tpalettes.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/robot_dispatch/tpalettes.json @@ -18,10 +18,6 @@ "_": "t_metal_floor", "~": "t_water_sh", "1": "t_column", - "2": "t_machinery_light", - "3": "t_machinery_heavy", - "4": "t_machinery_electronic", - "6": "t_console_broken", "7": "t_gates_mech_control", "e": "t_elevator", "E": "t_elevator_control_off", @@ -33,6 +29,10 @@ "w": "t_sidewalk" }, "furniture": { + "6": "f_console_broken", + "2": "f_machinery_light", + "3": "f_machinery_heavy", + "4": "f_machinery_electronic", "$": "f_safe_l", "%": "f_robotic_arm", "a": "f_armchair", diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/sadie_large_storage.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/sadie_large_storage.json index f121aea9f..2fef8235a 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/sadie_large_storage.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/sadie_large_storage.json @@ -75,7 +75,6 @@ { "item": "bedroom", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 50, "repeat": [ 1, 6 ] }, { "item": "dresser", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 50, "repeat": [ 1, 6 ] }, { "item": "mil_surplus", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 35, "repeat": [ 1, 6 ] }, - { "item": "mil_hw", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 10, "repeat": [ 1, 6 ] }, { "item": "mil_armor", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 6 ] }, { "item": "mil_accessories", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 6 ] }, { "item": "weapons", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 35, "repeat": [ 1, 6 ] }, diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/stratoscomm_relay.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/stratoscomm_relay.json index 8daa6bd6b..61f1a2e89 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/stratoscomm_relay.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/stratoscomm_relay.json @@ -74,6 +74,7 @@ "terrain": { "5": "t_ramp_up_high", "6": "t_ramp_up_low", "#": "t_rock" }, "furniture": { "@": "f_sleep_pod", + "~": "f_shower", "1": [ "f_mil_comms_power", "f_mil_comms_power_broken" ], "2": "f_mil_comms_terminal", "3": "f_mil_comms_heatsink", @@ -81,10 +82,7 @@ "o": "f_habitat_kitchenette", "F": "f_fridge" }, - "items": { - "o": { "item": "afs_kitchenette", "chance": 100 }, - "F": { "item": "afs_cheap_food", "chance": 80, "repeat": [ 1, 10 ] } - }, + "items": { "o": { "item": "afs_kitchenette", "chance": 100 }, "F": { "item": "afs_old_food_storage", "chance": 80 } }, "monster": { "ö": { "monster": "mon_skitterbot" } } } }, @@ -122,8 +120,8 @@ " " ], "palettes": [ "afs_habitat_structure" ], - "terrain": { "'": "t_door_glass_o", ".": "t_strconc_floor", ",": "t_sidewalk", "E": "t_machinery_electronic" }, - "furniture": { "4": "f_mil_comms_sat" } + "terrain": { " ": "t_open_air", "'": "t_door_glass_o", ".": "t_strconc_floor", ",": "t_sidewalk" }, + "furniture": { "4": "f_mil_comms_sat", "E": "f_machinery_electronic" } } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/urban_worm_farm.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/urban_worm_farm.json index 3694d680a..49465fbb6 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/urban_worm_farm.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/urban_worm_farm.json @@ -33,13 +33,14 @@ " " ], "palettes": [ "afs_generic_building" ], - "terrain": { "'": "t_door_glass_o", ".": "t_metal_floor_no_roof", ",": "t_sidewalk", "E": "t_machinery_electronic" }, + "terrain": { "'": "t_door_glass_o", ".": "t_metal_floor_no_roof", ",": "t_sidewalk" }, "furniture": { "0": "f_fvat_empty", "/": "f_autodoc_couch", "T": "f_table", "n": "f_trashcan", "R": "f_locker", + "E": "f_machinery_electronic", "B": "f_monomolecularsaw" }, "items": { diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/whately_lmoe.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/whately_lmoe.json index dac4e2b7b..c00d16232 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen/whately_lmoe.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen/whately_lmoe.json @@ -174,7 +174,6 @@ ":": "t_secretdoor_metal_c", ";": "t_secretdoor_metal_o", "~": "t_water_pump", - "G": "t_generator_broken", "t": "t_metal_floor", "k": "t_metal_floor_olight" }, @@ -191,6 +190,7 @@ "E": "f_exercise", "F": "f_fridge", "f": "f_sofa", + "G": "f_generator_broken", "h": "f_chair", "H": "f_water_heater", "K": "f_sink", diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen_pallete/afs_habitat_structure.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen_pallete/afs_habitat_structure.json index ab5379e30..69477d10e 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen_pallete/afs_habitat_structure.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen_pallete/afs_habitat_structure.json @@ -30,7 +30,7 @@ ">": "t_stairs_down", "<": "t_stairs_up" }, - "furniture": { "~": "f_shower", "^": "f_sink", "*": "f_sink" } + "furniture": { "~": "f_habitat_bathroom", "^": "f_sink", "*": "f_sink", "%": "f_fireman_cabinet" } }, { "type": "palette", @@ -54,8 +54,8 @@ "terrain": { "p": "t_sewage_pipe" }, "furniture": { "@": "f_bed", - "f": "f_table", - "y": "f_table", + "f": "f_workbench", + "y": "f_workbench", "c": "f_console_broken", "h": "f_chair", "P": "f_water_purifier", @@ -64,13 +64,10 @@ "E": "f_machinery_electronic", "L": "f_machinery_light", "H": "f_machinery_heavy", - "O": "f_machinery_old", + "O": "f_ECU", + "T": "f_cryofluid_pump", "p": "f_solar_unit", - "t": "f_toposcan_process", - "T": "f_toposcan_terminal", - "S": "f_toposcan_scanner", "F": "f_fridge", - "^": "f_sink", "j": "f_counter", "q": "f_rack", "r": "f_bookcase", @@ -90,5 +87,33 @@ "@": { "item": "bed", "chance": 50 }, "v": { "item": "trash", "chance": 30, "repeat": [ 1, 4 ] } } + }, + { + "type": "palette", + "id": "afs_habitat_residential_furnishing", + "furniture": { + "@": "f_bed", + "f": "f_workbench", + "y": "f_table", + "c": "f_console_broken", + "h": "f_chair", + "j": "f_counter", + "o": "f_habitat_kitchenette", + "W": "f_habitat_storage_board", + "U": "f_habitat_storage_board", + "n": "f_screenmirror", + "q": "f_rack", + "v": "f_trashcan", + "l": "f_locker", + "k": "f_desk" + }, + "items": { + "o": { "item": "afs_kitchenette", "chance": 60 }, + "U": { "item": "afs_old_food_storage", "chance": 60 }, + "W": { "item": "afs_colonist_outfit", "chance": 60 }, + "l": { "item": "afs_frontier_cryo_g", "chance": 50 }, + "@": { "item": "bed", "chance": 50 }, + "v": { "item": "trash", "chance": 30, "repeat": [ 1, 4 ] } + } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mapgen_pallete/houses.json b/data/Mainline_mods/Mods/Aftershock/maps/mapgen_pallete/houses.json index c6743766d..f38ff5f47 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mapgen_pallete/houses.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mapgen_pallete/houses.json @@ -57,13 +57,13 @@ }, "items": { "t": { "item": "SUS_toilet", "chance": 10, "repeat": [ 1, 3 ] }, - "D": [ { "item": "wardrobe_unisex_afs", "chance": 100, "repeat": [ 1, 2 ] } ], + "D": [ { "item": "afs_colonist_outfit", "chance": 100, "repeat": [ 1, 2 ] } ], "O": { "item": "SUS_oven", "chance": 100 }, "2": [ { "item": "consumer_electronics", "chance": 10, "repeat": [ 1, 3 ] }, { "item": "livingroom", "chance": 10, "repeat": [ 1, 3 ] } ], - "F": { "item": "SUS_fridge", "chance": 80 }, + "F": { "item": "afs_ruined_food", "chance": 80, "repeat": [ 5, 13 ] }, "P": { "item": "SUS_dishwasher", "chance": 70 }, "f": [ { "item": "elecsto_persele", "chance": 10, "repeat": [ 1, 3 ] }, @@ -83,13 +83,13 @@ "V": [ { "item": "SUS_utensils", "chance": 50 }, { "item": "SUS_knife_drawer", "chance": 50 } ], "I": { "item": "SUS_junk_drawer", "chance": 100 }, "^": { "item": "SUS_kitchen_sink", "chance": 100 }, - "M": [ { "item": "SUS_pantry", "chance": 25 }, { "item": "cannedfood", "chance": 20, "repeat": [ 1, 2 ] } ], - "S": [ { "item": "SUS_breakfast_cupboard", "chance": 30 }, { "item": "SUS_coffee_cupboard", "chance": 50 } ], + "M": [ { "item": "afs_old_food_storage", "chance": 45 } ], + "S": [ { "item": "afs_old_food_storage", "chance": 30 }, { "item": "SUS_coffee_cupboard", "chance": 50 } ], "5": [ { "item": "SUS_bathroom_sink", "chance": 80 }, { "item": "SUS_bathroom_medicine", "chance": 60 } ], "9": { "item": "shower", "chance": 30, "repeat": [ 1, 2 ] }, "@": { "item": "bed", "chance": 50 }, - "Z": { "item": "wardrobe_unisex_afs", "chance": 100 }, - "W": { "item": "wardrobe_unisex_afs", "chance": 50 }, + "Z": { "item": "afs_colonist_outfit", "chance": 100 }, + "W": { "item": "afs_colonist_outfit", "chance": 50 }, "Y": { "item": "trash", "chance": 30, "repeat": [ 1, 4 ] } } } diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mutable_specials/formless_ruin.json b/data/Mainline_mods/Mods/Aftershock/maps/mutable_specials/formless_ruin.json index 750befc75..e778693bc 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mutable_specials/formless_ruin.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mutable_specials/formless_ruin.json @@ -14,6 +14,7 @@ [ [ 0, -1, 0 ], [ "land" ] ], [ [ -1, 0, 0 ], [ "land" ] ] ], + "flags": [ "EXOPLANET" ], "joins": [ "ruin_to_ruin" ], "overmaps": { "ruin_core": { diff --git a/data/Mainline_mods/Mods/Aftershock/maps/mutable_specials/ravine_tunnels.json b/data/Mainline_mods/Mods/Aftershock/maps/mutable_specials/ravine_tunnels.json index 5d3f122b6..0e1aa0135 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/mutable_specials/ravine_tunnels.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/mutable_specials/ravine_tunnels.json @@ -6,7 +6,7 @@ "locations": [ "subterranean_empty", "ravine_edge", "land" ], "city_distance": [ 10, -1 ], "occurrences": [ 10, 10 ], - "flags": [ "WILDERNESS" ], + "flags": [ "WILDERNESS", "EXOPLANET" ], "check_for_locations": [ [ [ 0, 0, 0 ], [ "ravine_edge" ] ], [ [ -1, 0, 0 ], [ "ravine_edge" ] ], diff --git a/data/Mainline_mods/Mods/Aftershock/maps/nested/arcology/arcology_gate_chunks.json b/data/Mainline_mods/Mods/Aftershock/maps/nested/arcology/arcology_gate_chunks.json index 55c1f5a55..b427ec10e 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/nested/arcology/arcology_gate_chunks.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/nested/arcology/arcology_gate_chunks.json @@ -126,7 +126,7 @@ "palettes": [ "arcology_exterior" ], "terrain": { "P": "t_metal_floor", "C": "t_metal_floor", "W": "t_metal_floor" }, "items": { - "W": [ { "item": "building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], + "W": [ { "item": "collapsed_building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], "C": [ { "item": "wreckage", "chance": 100, "repeat": [ 1, 2 ] } ] }, "furniture": { "P": "f_ash" } @@ -153,7 +153,7 @@ "palettes": [ "arcology_exterior" ], "terrain": { "P": "t_broken_metal_floor", "C": "t_broken_metal_floor", "W": "t_broken_metal_floor" }, "items": { - "W": [ { "item": "building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], + "W": [ { "item": "collapsed_building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], "C": [ { "item": "wreckage", "chance": 100, "repeat": [ 1, 2 ] } ] }, "furniture": { "P": "f_ash" }, @@ -302,7 +302,7 @@ "palettes": [ "arcology_exterior" ], "terrain": { "P": "t_metal_floor", "C": "t_metal_floor", "W": "t_metal_floor" }, "items": { - "W": [ { "item": "building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], + "W": [ { "item": "collapsed_building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], "C": [ { "item": "wreckage", "chance": 100, "repeat": [ 1, 2 ] } ] }, "furniture": { "P": "f_ash" }, @@ -342,7 +342,7 @@ "nested": { "6": { "chunks": [ [ "arcology_1x1_gate", 50 ], [ "arcology_1x1_gate_broken", 50 ] ] } }, "terrain": { "P": "t_broken_metal_floor", "C": "t_broken_metal_floor", "W": "t_broken_metal_floor" }, "items": { - "W": [ { "item": "building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], + "W": [ { "item": "collapsed_building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], "C": [ { "item": "wreckage", "chance": 100, "repeat": [ 1, 2 ] } ] }, "furniture": { "P": "f_ash" } @@ -481,7 +481,7 @@ "nested": { "6": { "chunks": [ [ "arcology_1x1_gate", 50 ], [ "arcology_1x1_gate_broken", 50 ] ] } }, "terrain": { "P": "t_metal_floor", "C": "t_metal_floor", "W": "t_metal_floor" }, "items": { - "W": [ { "item": "building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], + "W": [ { "item": "collapsed_building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], "C": [ { "item": "wreckage", "chance": 100, "repeat": [ 1, 2 ] } ] }, "furniture": { "P": "f_ash" } @@ -509,7 +509,7 @@ "nested": { "6": { "chunks": [ [ "arcology_1x1_gate", 50 ], [ "arcology_1x1_gate_broken", 50 ] ] } }, "terrain": { "P": "t_broken_metal_floor", "C": "t_broken_metal_floor", "W": "t_broken_metal_floor" }, "items": { - "W": [ { "item": "building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], + "W": [ { "item": "collapsed_building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], "C": [ { "item": "wreckage", "chance": 100, "repeat": [ 1, 2 ] } ] }, "furniture": { "P": "f_ash" }, @@ -659,7 +659,7 @@ "nested": { "6": { "chunks": [ [ "arcology_1x1_gate", 50 ], [ "arcology_1x1_gate_broken", 50 ] ] } }, "terrain": { "P": "t_metal_floor", "C": "t_metal_floor", "W": "t_metal_floor" }, "items": { - "W": [ { "item": "building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], + "W": [ { "item": "collapsed_building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], "C": [ { "item": "wreckage", "chance": 100, "repeat": [ 1, 2 ] } ] }, "furniture": { "P": "f_ash" } @@ -687,7 +687,7 @@ "nested": { "6": { "chunks": [ [ "arcology_1x1_gate", 50 ], [ "arcology_1x1_gate_broken", 50 ] ] } }, "terrain": { "P": "t_broken_metal_floor", "C": "t_broken_metal_floor", "W": "t_broken_metal_floor" }, "items": { - "W": [ { "item": "building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], + "W": [ { "item": "collapsed_building_rubble", "chance": 80, "repeat": [ 1, 3 ] } ], "C": [ { "item": "wreckage", "chance": 100, "repeat": [ 1, 2 ] } ] }, "furniture": { "P": "f_ash" }, diff --git a/data/Mainline_mods/Mods/Aftershock/maps/nested/road.json b/data/Mainline_mods/Mods/Aftershock/maps/nested/road.json index 0b768c240..668d7226e 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/nested/road.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/nested/road.json @@ -15,5 +15,22 @@ { "monster": "mon_wraitheon_kaburaya", "x": 4, "y": 4, "repeat": [ 6, 10 ] } ] } + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_reaver_bandits", + "object": { + "place_monster": [ + { "monster": "afs_mon_reaver_rifle", "x": 12, "y": 12, "spawn_data": { "patrol": [ { "x": 12, "y": 12 } ] } }, + { + "monster": "afs_mon_reaver_rifle", + "x": 8, + "y": 8, + "spawn_data": { "patrol": [ { "x": 8, "y": 8 }, { "x": 8, "y": 16 }, { "x": 16, "y": 16 }, { "x": 16, "y": 8 } ] } + }, + { "monster": "afs_mon_reaver", "x": 4, "y": 4, "repeat": [ 1, 6 ] } + ] + } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/overmap_locations.json b/data/Mainline_mods/Mods/Aftershock/maps/overmap_locations.json index 2a7db4ea0..1695bba75 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/overmap_locations.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/overmap_locations.json @@ -9,5 +9,11 @@ "type": "overmap_location", "id": "ravine_edge", "terrains": [ "ravine_edge" ] + }, + { + "type": "start_location", + "id": "sloc_crashing_ship", + "name": "crashing ship", + "terrain": [ "crashing_ship_3" ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/overmap_map_extras.json b/data/Mainline_mods/Mods/Aftershock/maps/overmap_map_extras.json index ff4307546..7f68cd5ef 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/overmap_map_extras.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/overmap_map_extras.json @@ -8,5 +8,15 @@ "sym": "w", "color": "pink", "autonote": true + }, + { + "id": "mx_reaver_bandits", + "type": "map_extra", + "name": { "str": "Scavenger Party" }, + "description": "A group of scavengers who double as bandits.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_reaver_bandits" }, + "sym": "b", + "color": "pink", + "autonote": true } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/overmap_specials.json b/data/Mainline_mods/Mods/Aftershock/maps/overmap_specials.json index 022bce281..1964bb2f4 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/overmap_specials.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/overmap_specials.json @@ -16,7 +16,8 @@ "locations": [ "land" ], "city_distance": [ 5, -1 ], "city_sizes": [ 0, -1 ], - "occurrences": [ 0, 1 ] + "occurrences": [ 0, 1 ], + "flags": [ "EXOPLANET" ] }, { "id": "municipal_reactor", @@ -109,6 +110,26 @@ { "point": [ 0, 0, 0 ], "overmap": "robot_dispatch_first_north" }, { "point": [ 0, 0, 1 ], "overmap": "robot_dispatch_second_north" } ], - "flags": [ "MAN_MADE" ] + "flags": [ "MAN_MADE", "EXOPLANET" ] + }, + { + "type": "overmap_special", + "id": "crashing ship", + "overmaps": [ + { "point": [ 0, 0, -10 ], "overmap": "crashing_ship_3_north" }, + { "point": [ 1, 0, -10 ], "overmap": "crashing_ship_2_north" }, + { "point": [ 2, 0, -10 ], "overmap": "crashing_ship_1_north" }, + { "point": [ 0, 1, -10 ], "overmap": "crashing_ship_6_north" }, + { "point": [ 1, 1, -10 ], "overmap": "crashing_ship_5_north" }, + { "point": [ 2, 1, -10 ], "overmap": "crashing_ship_4_north" }, + { "point": [ 0, 2, -10 ], "overmap": "crashing_ship_9_north" }, + { "point": [ 1, 2, -10 ], "overmap": "crashing_ship_8_north" }, + { "point": [ 2, 2, -10 ], "overmap": "crashing_ship_7_north" } + ], + "locations": [ "open_air", "land" ], + "city_distance": [ 0, -1 ], + "city_sizes": [ 0, -1 ], + "occurrences": [ 1, 1 ], + "flags": [ "GLOBALLY_UNIQUE", "MAN_MADE", "EXOPLANET" ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/maps/overmap_terrain.json b/data/Mainline_mods/Mods/Aftershock/maps/overmap_terrain.json index 1c66b6f0f..c7962e0b9 100644 --- a/data/Mainline_mods/Mods/Aftershock/maps/overmap_terrain.json +++ b/data/Mainline_mods/Mods/Aftershock/maps/overmap_terrain.json @@ -307,5 +307,24 @@ "see_cost": 2, "mondensity": 2, "flags": [ "RISK_HIGH" ] + }, + { + "type": "overmap_terrain", + "name": "Crashing Ship", + "id": [ + "crashing_ship_3", + "crashing_ship_2", + "crashing_ship_1", + "crashing_ship_6", + "crashing_ship_5", + "crashing_ship_4", + "crashing_ship_9", + "crashing_ship_8", + "crashing_ship_7" + ], + "sym": "+", + "color": "i_red", + "see_cost": 2, + "flags": [ "SOURCE_FOOD", "SOURCE_GUN", "SOURCE_AMMO" ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/PrepPhyle_mobs.json b/data/Mainline_mods/Mods/Aftershock/mobs/PrepPhyle_mobs.json index 90094ddcc..76d44fa3f 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/PrepPhyle_mobs.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/PrepPhyle_mobs.json @@ -18,9 +18,6 @@ "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 7 } ], "dodge": 3, - "armor_bash": 8, - "armor_cut": 14, - "armor_bullet": 11, "looks_like": "mon_dog_gpyrenees", "vision_day": 30, "vision_night": 8, @@ -29,7 +26,8 @@ "reproduction": { "baby_monster": "afs_mon_cyber_mastiff_pup", "baby_count": 7, "baby_timer": 320 }, "//2": "1-7 puppies & 300-320 days per-litter for size medium canines", "flags": [ "ANIMAL", "PET_MOUNTABLE", "HEARS", "HIT_AND_RUN", "KEENNOSE", "PATH_AVOID_DANGER_1", "SEES", "SMELLS", "WARM" ], - "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ] + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "armor": { "bash": 8, "cut": 14, "bullet": 11 } }, { "id": "afs_mon_cyber_mastiff_pup", @@ -66,7 +64,7 @@ "petfood": { "food": [ "DOGFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", - "pet": "The %s happily wags its tail while you pat their head." + "pet": "The %s happily wags its tail while you pat its head." }, "flags": [ "ANIMAL", "DOGFOOD", "CANPLAY", "HEARS", "KEENNOSE", "PATH_AVOID_DANGER_1", "SEES", "SMELLS", "WARM" ] } diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/abstract_monsters.json b/data/Mainline_mods/Mods/Aftershock/mobs/abstract_monsters.json index d7954840f..f4beb3b40 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/abstract_monsters.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/abstract_monsters.json @@ -4,7 +4,7 @@ "type": "MONSTER", "looks_like": "mon_secubot", "name": "military robot", - "description": "A military robot still operating due to its internal power core. This one is armed with an electric prod and an integrated 5.56mm.", + "description": "A military robot still operating due to its internal power core. This one is armed with an electric prod and an integrated 5.56mm firearm.", "default_faction": "WraitheonRobotics", "species": [ "ROBOT" ], "volume": "62500 ml", @@ -20,16 +20,12 @@ "melee_dice": 2, "melee_dice_sides": 4, "dodge": 4, - "armor_bash": 12, - "armor_cut": 12, - "armor_stab": 6, - "armor_fire": 5, - "armor_acid": 12, "vision_day": 50, "path_settings": { "max_dist": 5 }, "death_drops": { "groups": [ [ "broken_robots", 1 ] ] }, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "HEARS", "BASHES", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_1" ] + "flags": [ "SEES", "HEARS", "BASHES", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_1" ], + "armor": { "bash": 12, "cut": 12, "stab": 6, "acid": 12, "heat": 5 } }, { "abstract": "mon_defbot_base", @@ -54,16 +50,12 @@ "melee_dice": 2, "melee_dice_sides": 4, "dodge": 4, - "armor_bash": 10, - "armor_cut": 10, - "armor_stab": 5, - "armor_fire": 5, - "armor_acid": 10, "vision_day": 50, "path_settings": { "max_dist": 5 }, "death_drops": { "groups": [ [ "broken_robots", 1 ] ] }, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "HEARS", "BASHES", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_1" ] + "flags": [ "SEES", "HEARS", "BASHES", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_1" ], + "armor": { "bash": 10, "cut": 10, "stab": 5, "acid": 10, "heat": 5 } }, { "abstract": "mon_advbot_base", @@ -75,15 +67,52 @@ "default_faction": "defense_bot", "species": [ "ROBOT" ], "hp": 100, - "armor_bash": 8, - "armor_cut": 6, - "armor_stab": 6, - "armor_fire": 8, - "armor_acid": 12, "vision_day": 50, "speed": 110, "color": "white_cyan", "aggression": 100, - "dodge": 5 + "dodge": 5, + "armor": { "bash": 8, "cut": 6, "stab": 6, "acid": 12, "heat": 8 } + }, + { + "abstract": "afs_mon_reaver_abstract", + "type": "MONSTER", + "name": { "str_sp": "bandits, pirates and reavers" }, + "description": "A scavenger willing to engage in violence to scavenge your remains.", + "default_faction": "reavers", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "symbol": "r", + "color": "light_green_yellow", + "aggression": 50, + "morale": 100, + "anger_triggers": [ "HURT", "FRIEND_DIED", "PLAYER_CLOSE" ], + "aggro_character": false, + "melee_skill": 3, + "melee_dice": 2, + "melee_dice_sides": 4, + "dodge": 3, + "vision_day": 30, + "vision_night": 6, + "path_settings": { "max_dist": 5 }, + "death_drops": { "groups": [ [ "afs_bandits", 1 ] ] }, + "harvest": "human", + "dissect": "dissect_human_reaver", + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PRIORITIZE_TARGETS" + ], + "armor": { "bash": 12, "cut": 12, "stab": 6, "acid": 12, "heat": 5 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/aliens.json b/data/Mainline_mods/Mods/Aftershock/mobs/aliens.json index 0017ce236..04b79103b 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/aliens.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/aliens.json @@ -90,18 +90,22 @@ "attack_cost": 330, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], "dodge": 3, - "armor_bash": 15, - "armor_elec": 3, "bleed_rate": 40, "harvest": "alien_floater", "vision_day": 3, "vision_night": 3, - "special_attacks": [ [ "RANGED_PULL", 10 ], [ "GRAB_DRAG", 3 ] ], + "grab_strength": 50, + "special_attacks": [ + { "id": "ranged_pull", "cooldown": 10, "grab_data": { "pull_weight_ratio": 5.0 } }, + { "id": "grab_drag", "cooldown": 3 }, + { "id": "drag_followup" } + ], "flags": [ "ANIMAL", "SEES", "SMELLS", "HEARS", + "GRABS", "GOODHEARING", "NOHEAD", "BASHES", @@ -111,7 +115,8 @@ "WARM", "PUSH_MON", "PUSH_VEH" - ] + ], + "armor": { "bash": 15, "electric": 3 } }, { "id": "afs_runner", @@ -133,15 +138,13 @@ "morale": -7, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "dodge": 1, - "armor_bash": 4, - "armor_cut": 1, - "armor_bullet": 1, "vision_night": 25, "path_settings": { "max_dist": 10 }, "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], "harvest": "alien_large_leather", "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 8 }, - "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM" ] + "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM" ], + "armor": { "bash": 4, "cut": 1, "bullet": 1 } }, { "id": "afs_grazer", @@ -166,16 +169,14 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "dodge": 1, - "armor_bash": 4, - "armor_cut": 1, - "armor_bullet": 1, "vision_night": 7, "path_settings": { "max_dist": 10 }, "anger_triggers": [ "HURT", "MATING_SEASON" ], "baby_flags": [ "AUTUMN" ], "harvest": "alien_large_leather", "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 8 }, - "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "ATTACKMON" ] + "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "ATTACKMON" ], + "armor": { "bash": 4, "cut": 1, "bullet": 1 } }, { "id": "afs_mon_hevel", @@ -229,12 +230,12 @@ "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 4, - "armor_bash": 1, "vision_night": 5, "harvest": "alien_mammal_fur", "path_settings": { "max_dist": 10 }, "anger_triggers": [ "STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "PLAYER_CLOSE" ], - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE" ], + "armor": { "bash": 1 } }, { "type": "MONSTER", @@ -256,8 +257,6 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "dodge": 2, - "armor_bash": 1, - "armor_cut": 1, "luminance": 0, "hp": 60, "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, { "type": "bite", "cooldown": 10 } ], @@ -267,6 +266,7 @@ "harvest": "bird_large", "anger_triggers": [ "PLAYER_WEAK", "HURT", "FRIEND_ATTACKED", "PLAYER_CLOSE" ], "fear_triggers": [ "FIRE", "FRIEND_DIED" ], - "categories": [ "WILDLIFE" ] + "categories": [ "WILDLIFE" ], + "armor": { "bash": 1, "cut": 1 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/monster_faction.json b/data/Mainline_mods/Mods/Aftershock/mobs/monster_faction.json index f561db00b..c799da77e 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/monster_faction.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/monster_faction.json @@ -51,11 +51,20 @@ "by_mood": [ "insect", "small_animal", "human", "bee" ], "hate": [ "zombie" ] }, + { + "type": "MONSTER_FACTION", + "name": "reavers", + "base_faction": "human", + "neutral": [ "herbivore", "robofac" ], + "by_mood": [ "insect", "small_animal", "human", "bee" ], + "hate": [ "zombie" ] + }, { "type": "MONSTER_FACTION", "name": "zombie", "copy-from": "zombie", - "neutral": [ "moxie" ] + "neutral": [ "moxie" ], + "hate": [ "reavers" ] }, { "type": "MONSTER_FACTION", diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/monster_groups.json b/data/Mainline_mods/Mods/Aftershock/mobs/monster_groups.json index 4f92bae27..b51f8d2bf 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/monster_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/monster_groups.json @@ -208,5 +208,13 @@ "conditions": [ "SPRING", "SUMMER", "AUTUMN", "WINTER" ] } ] + }, + { + "type": "monstergroup", + "name": "GROUP_RUINS", + "monsters": [ + { "monster": "afs_mon_reaver", "weight": 25, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "afs_mon_reaver_rifle", "weight": 25, "cost_multiplier": 0 } + ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/monster_groups/robot_monster_groups.json b/data/Mainline_mods/Mods/Aftershock/mobs/monster_groups/robot_monster_groups.json index ad02cf3f6..82cb4ee4f 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/monster_groups/robot_monster_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/monster_groups/robot_monster_groups.json @@ -15,10 +15,10 @@ "name": "AFS_GROUP_ROBOT_LOW_RISK", "default": "mon_skitterbot_rat", "monsters": [ - { "monster": "mon_bloodhound_drone", "weight": 500, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, + { "monster": "mon_bloodhound_drone", "weight": 100, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_manhack", "weight": 200, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_skitterbot", "weight": 200, "cost_multiplier": 0 }, - { "monster": "mon_skitterbot_rat", "weight": 100, "cost_multiplier": 0 } + { "monster": "mon_skitterbot_rat", "weight": 500, "cost_multiplier": 0 } ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/obsolete.json b/data/Mainline_mods/Mods/Aftershock/mobs/obsolete.json index f501eb7e0..ef65a5b89 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/obsolete.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/obsolete.json @@ -142,7 +142,7 @@ "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "harvest": "zombie", - "special_attacks": [ [ "GRAB", 7 ], [ "scratch", 20 ] ], + "special_attacks": [ { "id": "grab", "cooldown": 7 }, [ "scratch", 20 ] ], "death_drops": "default_zombie_death_drops", "upgrades": { "half_life": 28, "into": "mon_afs_headless_horror" }, "flags": [ diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/reavers_and_bandits.json b/data/Mainline_mods/Mods/Aftershock/mobs/reavers_and_bandits.json new file mode 100644 index 000000000..160b361f4 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/mobs/reavers_and_bandits.json @@ -0,0 +1,63 @@ +[ + { + "id": "afs_mon_reaver", + "type": "MONSTER", + "name": "skittish scavenger", + "description": "A scavenger willing to engage in violence to scavenge your remains. Will run after a reasonable show of force from their would be victims.", + "copy-from": "afs_mon_reaver_abstract", + "aggression": 20, + "morale": 60, + "starting_ammo": { "afs_10mm_caseless_JHP": 30 }, + "special_attacks": [ + { + "type": "gun", + "cooldown": 1, + "move_cost": 150, + "gun_type": "afs_seyfert_84K", + "ammo_type": "afs_10mm_caseless_JHP", + "fake_skills": [ [ "gun", 1 ], [ "pistol", 1 ] ], + "fake_dex": 3, + "ranges": [ [ 0, 14, "DEFAULT" ] ], + "require_targeting_npc": true, + "require_targeting_monster": true, + "laser_lock": false, + "targeting_cost": 400, + "targeting_timeout_extend": -1, + "targeting_sound": "\"Let's see what loot you are carrying!\"", + "targeting_volume": 20, + "no_ammo_sound": "a chk!" + } + ] + }, + { + "id": "afs_mon_reaver_rifle", + "type": "MONSTER", + "name": "opportunistic bandit", + "description": "Armed with a rifle, this bandit seems to feel quite sure of their impending victory.", + "copy-from": "afs_mon_reaver_abstract", + "aggression": 30, + "morale": 60, + "starting_ammo": { "afs_7.50mm_caseless": 30 }, + "color": "green_yellow", + "special_attacks": [ + { + "type": "gun", + "cooldown": 1, + "move_cost": 150, + "gun_type": "afs_Accipitermg", + "ammo_type": "afs_7.50mm_caseless", + "fake_skills": [ [ "gun", 1 ], [ "rifle", 1 ] ], + "fake_dex": 3, + "ranges": [ [ 0, 14, "DEFAULT" ] ], + "require_targeting_npc": true, + "require_targeting_monster": true, + "laser_lock": false, + "targeting_cost": 400, + "targeting_timeout_extend": -10, + "targeting_sound": "\"I bet you're worth a pretty penny!\"", + "targeting_volume": 20, + "no_ammo_sound": "a chk!" + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/robot_groups.json b/data/Mainline_mods/Mods/Aftershock/mobs/robot_groups.json index 702228d00..69b177412 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/robot_groups.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/robot_groups.json @@ -91,11 +91,6 @@ { "monster": "mon_utilibot_const", "weight": 10, "cost_multiplier": 0 } ] }, - { - "type": "monstergroup", - "name": "GROUP_ROBOT_EYEBOT", - "monsters": [ { "monster": "mon_eyebot", "weight": 100, "cost_multiplier": 0 } ] - }, { "name": "GROUP_MANSION", "type": "monstergroup", @@ -112,11 +107,6 @@ "name": "GROUP_FIRE", "monsters": [ { "monster": "mon_utilibot_fire", "weight": 200, "cost_multiplier": 2, "pack_size": [ 4, 6 ] } ] }, - { - "name": "GROUP_NECROPOLIS_ROBOT", - "type": "monstergroup", - "monsters": [ { "monster": "mon_tankbot", "weight": 20, "cost_multiplier": 0 } ] - }, { "type": "monstergroup", "name": "GROUP_MIL_BASE", diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/robots.json b/data/Mainline_mods/Mods/Aftershock/mobs/robots.json index fc40a0f53..91bff06f1 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/robots.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/robots.json @@ -3,7 +3,7 @@ "id": "afs_mon_migoturret", "type": "MONSTER", "name": { "str": "brain blaster" }, - "description": "The mi-go have set up some defenses here. This horrifying techo-organic amalgamation appears to use brains in jars as their operating system. On the plus side it looks like an easy headshot.", + "description": "The mi-go have set up some defenses here. This horrifying techno-organic amalgamation appears to use brains in jars as their operating system. On the plus side it looks like an easy headshot.", "default_faction": "mi-go", "species": [ "ROBOT" ], "diff": 20, @@ -16,8 +16,6 @@ "color": "green", "aggression": 50, "morale": 100, - "armor_bash": 14, - "armor_cut": 16, "vision_day": 50, "starting_ammo": { "acidic_bore": 500 }, "revert_to_itype": "bot_migoturret", @@ -33,7 +31,8 @@ ], "death_drops": { }, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "ELECTRONIC", "IMMOBILE", "NO_BREATHE" ] + "flags": [ "SEES", "ELECTRONIC", "IMMOBILE", "NO_BREATHE" ], + "armor": { "bash": 14, "cut": 16 } }, { "id": "mon_migoturret_whately", @@ -65,9 +64,6 @@ "melee_dice": 3, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 18, - "armor_cut": 14, - "armor_bullet": 11, "vision_day": 50, "vision_night": 35, "revert_to_itype": "bot_chickenbot", @@ -75,7 +71,8 @@ "path_settings": { "max_dist": 10 }, "special_attacks": [ [ "CHICKENBOT", 4 ] ], "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "HEARS", "BASHES", "NO_BREATHE", "ELECTRONIC", "PRIORITIZE_TARGETS", "DROPS_AMMO" ] + "flags": [ "SEES", "HEARS", "BASHES", "NO_BREATHE", "ELECTRONIC", "PRIORITIZE_TARGETS", "DROPS_AMMO" ], + "armor": { "bash": 18, "cut": 14, "bullet": 11 } }, { "id": "mon_tankbot", @@ -98,9 +95,6 @@ "melee_dice": 5, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 90, - "armor_cut": 90, - "armor_bullet": 72, "vision_day": 50, "revert_to_itype": "bot_tankbot", "starting_ammo": { "40x46mm_m433": 200, "556": 3000 }, @@ -118,7 +112,8 @@ "ELECTRONIC", "PRIORITIZE_TARGETS", "DROPS_AMMO" - ] + ], + "armor": { "bash": 90, "cut": 90, "bullet": 72 } }, { "id": "mon_tripod", @@ -142,9 +137,6 @@ "melee_dice": 3, "melee_dice_sides": 12, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 8, - "armor_bullet": 6, "path_settings": { "max_dist": 5 }, "revert_to_itype": "bot_tripod", "starting_ammo": { "napalm": 10000 }, @@ -169,7 +161,8 @@ ], "death_drops": { "groups": [ [ "robots", 4 ], [ "tripod", 1 ] ] }, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "HEARS", "GOODHEARING", "BASHES", "NO_BREATHE", "ELECTRONIC", "CLIMBS", "PRIORITIZE_TARGETS", "FIREPROOF" ] + "flags": [ "SEES", "HEARS", "GOODHEARING", "BASHES", "NO_BREATHE", "ELECTRONIC", "CLIMBS", "PRIORITIZE_TARGETS", "FIREPROOF" ], + "armor": { "bash": 12, "cut": 8, "bullet": 6 } }, { "id": "afs_mon_sentinel_lx", @@ -193,9 +186,6 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], "dodge": 8, - "armor_bash": 10, - "armor_cut": 20, - "armor_bullet": 16, "vision_day": 6, "vision_night": 6, "path_settings": { "max_dist": 6, "avoid_traps": true, "avoid_sharp": true }, @@ -223,7 +213,8 @@ "GOODHEARING", "PATH_AVOID_DANGER_1", "HIT_AND_RUN" - ] + ], + "armor": { "bash": 10, "cut": 20, "bullet": 16 } }, { "id": "mon_bloodhound_drone", @@ -233,21 +224,22 @@ "description": "A small, spiked quadcopter robot equipped with a high-power spotlight. This automated seeker drone was originally designed to harry and harass fugitives while maintaining visual contact for other pursuers.", "diff": 2, "default_faction": "science", - "speed": 190, + "speed": 150, "color": "light_gray", + "scents_tracked": [ "sc_human" ], "melee_skill": 2, "melee_dice": 1, "melee_dice_sides": 4, + "dodge": 3, "special_attacks": [ [ "SEARCHLIGHT", 1 ] ], "luminance": 60, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], - "armor_bash": 2, - "armor_cut": 8, - "armor_bullet": 6, "revert_to_itype": "bot_bloodhound_drone", "death_drops": { "groups": [ [ "robots", 4 ], [ "manhack", 1 ], [ "turret_searchlight", 1 ] ] }, "death_function": { "corpse_type": "BROKEN" }, - "extend": { "flags": [ "HIT_AND_RUN" ] } + "extend": { "flags": [ "HIT_AND_RUN", "SMELLS" ] }, + "delete": { "flags": [ "PACIFIST" ] }, + "armor": { "bash": 2, "cut": 8, "bullet": 6 } }, { "id": "mon_utilibot", @@ -267,14 +259,11 @@ "morale": 80, "aggression": 0, "anger_triggers": [ "HURT" ], - "armor_bash": 8, - "armor_cut": 8, - "armor_fire": 4, - "armor_acid": 6, "vision_day": 50, "death_function": { "corpse_type": "BROKEN" }, "death_drops": { "groups": [ [ "broken_robots", 3 ] ] }, - "flags": [ "SEES", "HEARS", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_1" ] + "flags": [ "SEES", "HEARS", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_1" ], + "armor": { "bash": 8, "cut": 8, "acid": 6, "heat": 4 } }, { "id": "mon_hazmatbot", @@ -356,10 +345,6 @@ "material": [ "steel", "plastic" ], "symbol": "R", "color": "white", - "armor_bash": 6, - "armor_cut": 6, - "armor_fire": 2, - "armor_acid": 6, "morale": 100, "melee_skill": 8, "melee_dice": 1, @@ -371,7 +356,8 @@ "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE" ], "death_function": { "corpse_type": "BROKEN" }, "death_drops": { "groups": [ [ "broken_robots", 3 ] ] }, - "flags": [ "SEES", "HEARS", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_1" ] + "flags": [ "SEES", "HEARS", "ELECTRONIC", "NO_BREATHE", "PRIORITIZE_TARGETS", "PATH_AVOID_DANGER_1" ], + "armor": { "bash": 6, "cut": 6, "acid": 6, "heat": 2 } }, { "id": "mon_skitterbot_rat", @@ -382,18 +368,18 @@ "volume": "750 ml", "weight": "1 kg", "color": "light_gray", + "scents_tracked": [ "sc_human" ], "speed": 100, "attack_cost": 500, "hp": 10, - "armor_bash": 8, - "armor_cut": 8, "vision_night": 10, "revert_to_itype": "bot_skitterbot_rat", - "melee_skill": 6, + "melee_skill": 3, "melee_dice": 2, "melee_dice_sides": 2, "special_attacks": [ { "type": "leap", "cooldown": 2, "move_cost": 0, "max_range": 2, "min_consider_range": 3 }, [ "TAZER", 10 ] ], - "extend": { "flags": [ "CLIMBS", "HIT_AND_RUN" ] } + "extend": { "flags": [ "CLIMBS", "HIT_AND_RUN", "SMELLS" ] }, + "armor": { "bullet": 10, "electric": 5, "bash": 4, "cut": 4 } }, { "id": "mon_skitterbot_grab", @@ -403,18 +389,19 @@ "description": "A salvaged skitterbot repurposed to grab onto and immobilize enemies. It's meant to work in a pack.", "aggression": 50, "color": "light_green", + "scents_tracked": [ "sc_human" ], "speed": 200, "hp": 30, - "armor_bash": 8, - "armor_cut": 8, "vision_day": 20, "revert_to_itype": "bot_skitterbot_grab", - "melee_skill": 6, + "melee_skill": 3, "melee_dice": 4, "melee_dice_sides": 2, "attack_effs": [ { "id": "downed", "chance": 20, "duration": 5 } ], - "special_attacks": [ [ "GRAB", 1 ] ], - "extend": { "flags": [ "SWARMS", "GRABS", "GROUP_BASH" ] } + "grab_strength": 50, + "special_attacks": [ { "id": "grab", "cooldown": 2 } ], + "extend": { "flags": [ "SWARMS", "GRABS", "GROUP_BASH", "SMELLS" ] }, + "armor": { "bullet": 10, "electric": 5, "bash": 8, "cut": 8 } }, { "id": "mon_skitterbot_hunter", @@ -423,11 +410,10 @@ "name": "pest hunter", "description": "A salvaged skitterbot refitted with an 8mm integrated firearm. The robot's small size precludes rapid-fire, due to recoil, and requires the use of lightweight caseless ammo.", "color": "dark_gray", + "scents_tracked": [ "sc_human" ], "aggression": 50, "speed": 200, "hp": 30, - "armor_bash": 8, - "armor_cut": 8, "vision_day": 20, "revert_to_itype": "bot_skitterbot_hunter", "starting_ammo": { "8mm_caseless": 120 }, @@ -443,7 +429,8 @@ "no_ammo_sound": "click!", "ranges": [ [ 0, 10, "DEFAULT" ] ] } - ] + ], + "armor": { "bullet": 10, "electric": 5, "bash": 8, "cut": 8 } }, { "id": "mon_defbot_shot", @@ -483,7 +470,7 @@ "type": "gun", "cooldown": 2, "move_cost": 150, - "gun_type": "m16_auto_rifle", + "gun_type": "modular_m16_auto_rifle", "ammo_type": "556", "fake_skills": [ [ "gun", 5 ], [ "rifle", 5 ] ], "fake_dex": 10, @@ -508,14 +495,14 @@ "description": "The Hashashiyyin is unorthodox in its design as a military humaniform. While it keeps the strength of most Wraitheon humaniforms, it also prioritizes stealth. It comes equipped with an integrated 5x50mm flechette gun.", "diff": 15, "melee_damage": [ { "damage_type": "electric", "amount": 6 } ], - "starting_ammo": { "5x50dart": 1000 }, + "starting_ammo": { "afs_5x50dart": 1000 }, "special_attacks": [ { "type": "gun", "move_cost": 150, "cooldown": 2, - "gun_type": "needlegun", - "ammo_type": "5x50dart", + "gun_type": "afs_needlegun", + "ammo_type": "afs_5x50dart", "fake_skills": [ [ "gun", 5 ], [ "rifle", 5 ] ], "fake_dex": 10, "no_ammo_sound": "click!", @@ -600,10 +587,6 @@ "diff": 40, "speed": 150, "color": "pink", - "armor_bash": 20, - "armor_cut": 30, - "armor_fire": 15, - "armor_bullet": 35, "luminance": 20, "extend": { "flags": [ "FIREPROOF" ] }, "starting_ammo": { "plasma": 100 }, @@ -628,7 +611,8 @@ "targeting_volume": 50 }, { "type": "leap", "cooldown": 10, "max_range": 8 } - ] + ], + "armor": { "stab": 6, "acid": 12, "bash": 20, "cut": 30, "heat": 15, "bullet": 35 } }, { "id": "mon_wraitheon_isohypsa", @@ -641,10 +625,6 @@ "diff": 20, "speed": 100, "color": "light_red", - "armor_bash": 20, - "armor_cut": 30, - "armor_fire": 15, - "armor_bullet": 35, "morale": 20, "luminance": 20, "tracking_distance": 20, @@ -656,7 +636,8 @@ "cooldown": 5, "monster_message": "The Isohypsa emits a rapid sequence of sibilant tones!" } - ] + ], + "armor": { "stab": 6, "acid": 12, "bash": 20, "cut": 30, "heat": 15, "bullet": 35 } }, { "id": "mon_wraitheon_kaburaya", @@ -668,11 +649,10 @@ "diff": 10, "speed": 250, "color": "green", - "armor_cut": 4, - "armor_bullet": 3, "revert_to_itype": "bot_wraitheon_kaburaya", "starting_ammo": { "afs_kaburaya_bomb": 1 }, - "special_attacks": [ [ "KAMIKAZE", 0 ] ] + "special_attacks": [ [ "KAMIKAZE", 0 ] ], + "armor": { "cut": 4, "bullet": 3 } }, { "id": "mon_advbot_emp", @@ -700,5 +680,110 @@ "targeting_volume": 10 } ] + }, + { + "id": "mon_eyebot", + "type": "MONSTER", + "name": { "str": "eyebot" }, + "description": "A quadcopter drone largely comprised of a high-resolution camera lens and a speaker, this robot hovers above the ground, documenting the carnage and mayhem around it. While it is no longer able to report to a central authority, it's likely that some of its automated alert systems are still functional, given that the thing seems to have an operational charging station somewhere.", + "default_faction": "cop_bot", + "species": [ "ROBOT" ], + "diff": 2, + "volume": "30000 ml", + "weight": "40750 g", + "hp": 20, + "speed": 120, + "material": [ "steel" ], + "symbol": "e", + "color": "light_gray", + "morale": 100, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "dodge": 3, + "revert_to_itype": "bot_eyebot", + "special_attacks": [ [ "PHOTOGRAPH", 30 ] ], + "death_drops": { "groups": [ [ "robots", 4 ], [ "eyebot", 1 ] ] }, + "death_function": { "corpse_type": "BROKEN" }, + "flags": [ "SEES", "FLIES", "ELECTRONIC", "COLDPROOF", "NO_BREATHE", "NOHEAD", "PRIORITIZE_TARGETS", "STUN_IMMUNE" ], + "armor": { "bash": 8, "cut": 10, "bullet": 8 } + }, + { + "id": "mon_copbot", + "type": "MONSTER", + "name": { "str": "police bot" }, + "description": "One of the many models of armored law enforcement robots employed shortly before the collapse of civilization. Solar powered like many other robots, it maintains its programmed pursuit of law and order, propelled on a trio of omni wheels.", + "default_faction": "cop_bot", + "species": [ "ROBOT" ], + "diff": 10, + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "steel" ], + "symbol": "R", + "color": "light_blue", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 3, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "dodge": 8, + "vision_day": 50, + "path_settings": { "max_dist": 5 }, + "revert_to_itype": "bot_copbot", + "special_attacks": [ [ "COPBOT", 3 ] ], + "death_drops": { "groups": [ [ "robots", 4 ], [ "copbot", 1 ] ] }, + "death_function": { "corpse_type": "BROKEN" }, + "flags": [ + "SEES", + "HEARS", + "BASHES", + "ELECTRONIC", + "COLDPROOF", + "NO_BREATHE", + "PRIORITIZE_TARGETS", + "PATH_AVOID_DANGER_1", + "STUN_IMMUNE" + ], + "armor": { "bash": 12, "cut": 8, "bullet": 6 } + }, + { + "id": "mon_riotbot", + "type": "MONSTER", + "name": { "str": "riot control bot" }, + "description": "A nonviolent riot-control bot, designed to suppress riots and make mass arrests of those participating. Though its relaxation gas is by far its best-known weapon, it carries a blinding spotlight and a low-powered stungun for self-defense--in addition to a supply of electronic handcuffs.", + "default_faction": "cop_bot", + "species": [ "ROBOT" ], + "diff": 10, + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "steel" ], + "symbol": "R", + "color": "light_blue", + "aggression": 100, + "morale": 100, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "dodge": 8, + "vision_day": 50, + "path_settings": { "max_dist": 5 }, + "revert_to_itype": "bot_riotbot", + "special_attacks": [ [ "RIOTBOT", 1 ] ], + "special_when_hit": [ "ZAPBACK", 100 ], + "death_drops": { "groups": [ [ "robots", 4 ], [ "copbot", 1 ] ] }, + "death_function": { "corpse_type": "BROKEN" }, + "flags": [ + "SEES", + "HEARS", + "GOODHEARING", + "ELECTRONIC", + "COLDPROOF", + "NO_BREATHE", + "PRIORITIZE_TARGETS", + "PATH_AVOID_DANGER_1", + "STUN_IMMUNE" + ], + "armor": { "bash": 12, "cut": 8, "bullet": 6 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/scavbots.json b/data/Mainline_mods/Mods/Aftershock/mobs/scavbots.json index 2f671b48d..65d346a51 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/scavbots.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/scavbots.json @@ -29,9 +29,9 @@ "aggression": 0, "morale": 50, "dodge": 8, - "armor_cut": 4, "revert_to_itype": "bot_light_hack", - "extend": { "flags": [ "STUMBLES", "HARDTOSHOOT" ] } + "extend": { "flags": [ "STUMBLES", "HARDTOSHOOT" ] }, + "armor": { "cut": 4 } }, { "id": "mon_eyebot_heater", @@ -40,11 +40,11 @@ "name": "floating heater", "color": "pink", "luminance": 8, - "armor_fire": 10, "description": "A salvaged eyebot repurposed into a floating space heater. It emits a constant jet of warm air to heat an enclosed space.", "revert_to_itype": "bot_eyebot_heater", "fear_triggers": [ "HURT" ], "emit_fields": [ { "emit_id": "emit_hot_air2_stream", "delay": "1 s" } ], - "extend": { "flags": [ "PET_WONT_FOLLOW", "WARM" ] } + "extend": { "flags": [ "PET_WONT_FOLLOW", "WARM" ] }, + "armor": { "bash": 8, "cut": 10, "bullet": 8, "heat": 10 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/turrets.json b/data/Mainline_mods/Mods/Aftershock/mobs/turrets.json index 65da26d92..dc795aa05 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/turrets.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/turrets.json @@ -16,9 +16,6 @@ "color": "white", "aggression": 50, "morale": 100, - "armor_bash": 14, - "armor_cut": 16, - "armor_bullet": 13, "vision_day": 50, "revert_to_itype": "bot_laserturret_xray", "starting_ammo": { "xray_laser_barrel": 3 }, @@ -34,6 +31,7 @@ "special_when_hit": [ "RETURN_FIRE", 100 ], "death_drops": { }, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "COLDPROOF", "IMMOBILE", "NO_BREATHE" ] + "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "COLDPROOF", "IMMOBILE", "NO_BREATHE" ], + "armor": { "bash": 14, "cut": 16, "bullet": 13 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/uplifted_monsters.json b/data/Mainline_mods/Mods/Aftershock/mobs/uplifted_monsters.json index bcb4fe5aa..c89fbd90e 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/uplifted_monsters.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/uplifted_monsters.json @@ -22,7 +22,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 3, - "armor_bash": 2, "starting_ammo": { "9mm": 30 }, "special_attacks": [ { @@ -55,7 +54,8 @@ "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet" ], "reproduction": { "baby_monster": "mon_uplifted_bear_cub", "baby_count": 1, "baby_timer": 700 }, "baby_flags": [ "SPRING" ], - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "BASHES", "ATTACKMON" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "BASHES", "ATTACKMON" ], + "armor": { "bash": 2 } }, { "id": "mon_uplifted_bear_cub", @@ -136,7 +136,6 @@ "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 3, - "armor_bash": 2, "starting_ammo": { "9mm": 30 }, "special_attacks": [ { @@ -169,7 +168,8 @@ "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor" ], "reproduction": { "baby_monster": "mon_uplifted_octopus_spawn", "baby_count": 1, "baby_timer": 700 }, "baby_flags": [ "SPRING" ], - "flags": [ "SEES", "HEARS", "SMELLS", "SWIMS", "PATH_AVOID_DANGER_1", "WARM", "ATTACKMON" ] + "flags": [ "SEES", "HEARS", "SMELLS", "SWIMS", "PATH_AVOID_DANGER_1", "WARM", "ATTACKMON" ], + "armor": { "bash": 2 } }, { "id": "mon_uplifted_octopus_spawn", diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/water_mobs.json b/data/Mainline_mods/Mods/Aftershock/mobs/water_mobs.json index 7fd215c74..62661d6b9 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/water_mobs.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/water_mobs.json @@ -21,9 +21,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 4, - "armor_bash": 4, - "armor_cut": 12, - "armor_bullet": 10, "vision_day": 40, "vision_night": 15, "harvest": "zombie_meatslug", @@ -47,7 +44,8 @@ "CAN_OPEN_DOORS", "PRIORITIZE_TARGETS", "SWIMS" - ] + ], + "armor": { "bash": 4, "cut": 12, "bullet": 10 } }, { "id": "mon_deep_go_slaver", @@ -71,9 +69,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 4, - "armor_bash": 4, - "armor_cut": 12, - "armor_bullet": 10, "vision_day": 40, "vision_night": 15, "harvest": "zombie_meatslug", @@ -98,6 +93,7 @@ "CAN_OPEN_DOORS", "PRIORITIZE_TARGETS", "SWIMS" - ] + ], + "armor": { "bash": 4, "cut": 12, "bullet": 10 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/mobs/zombies.json b/data/Mainline_mods/Mods/Aftershock/mobs/zombies.json index 0e8927938..1a2935db0 100644 --- a/data/Mainline_mods/Mods/Aftershock/mobs/zombies.json +++ b/data/Mainline_mods/Mods/Aftershock/mobs/zombies.json @@ -22,8 +22,9 @@ "vision_day": 25, "vision_night": 5, "harvest": "zombie_meatslug", + "grab_strength": 50, "special_attacks": [ - [ "GRAB", 3 ], + { "id": "grab", "cooldown": 3 }, { "type": "bite", "cooldown": 10, @@ -37,6 +38,7 @@ "GOODHEARING", "STUMBLES", "WARM", + "GRABS", "BASHES", "GROUP_BASH", "POISON", @@ -112,8 +114,6 @@ "melee_dice": 6, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 12, - "armor_cut": 16, "vision_day": 50, "vision_night": 4, "harvest": "zombie", @@ -134,7 +134,8 @@ "PUSH_MON", "PUSH_VEH", "FILTHY" - ] + ], + "armor": { "bash": 12, "cut": 16 } }, { "id": "mon_zombie_upliftedoctopus", @@ -203,9 +204,6 @@ "dodge": 4, "vision_day": 25, "regenerates": 10, - "armor_bullet": 5, - "armor_bash": 3, - "armor_cut": 5, "harvest": "frost_human", "death_drops": "default_moxie_human_death_drops", "special_attacks": [ @@ -225,7 +223,8 @@ "REVIVES", "PUSH_MON", "FILTHY" - ] + ], + "armor": { "bash": 3, "cut": 5, "bullet": 5 } }, { "id": "mon_moxie_spartan", @@ -252,14 +251,12 @@ "dodge": 4, "vision_day": 40, "regenerates": 15, - "armor_bullet": 30, - "armor_bash": 15, - "armor_cut": 20, "harvest": "frost_human", "death_drops": "default_moxie_human_death_drops", + "grab_strength": 20, "special_attacks": [ [ "LONGSWIPE", 20 ], - [ "GRAB", 20 ], + { "id": "grab", "cooldown": 20 }, { "id": "scratch", "cooldown": 10, @@ -276,6 +273,7 @@ "GOODHEARING", "SWIMS", "WARM", + "GRABS", "BASHES", "GROUP_BASH", "DESTROYS", @@ -285,7 +283,8 @@ "PUSH_MON", "PUSH_VEH", "FILTHY" - ] + ], + "armor": { "bash": 15, "cut": 20, "bullet": 30 } }, { "id": "mon_moxie_regenerator", @@ -312,9 +311,6 @@ "dodge": 2, "vision_day": 40, "regenerates": 20, - "armor_bullet": 25, - "armor_bash": 10, - "armor_cut": 20, "harvest": "frost_human", "death_drops": "default_moxie_human_death_drops", "special_attacks": [ @@ -334,13 +330,14 @@ "REVIVES", "PUSH_MON", "FILTHY" - ] + ], + "armor": { "bash": 10, "cut": 20, "bullet": 25 } }, { "id": "mon_moxie_grabby", "type": "MONSTER", "name": { "str": "MoxPhore Tangler" }, - "description": "A human stands here, several rust-colored limbs jut out of its back, moving around and grabbing at the air while the person looks blankly around….", + "description": "A human stands here, several rust-colored limbs jutting out of its back, the limbs moving around and grabbing at the air while the person looks blankly around…", "default_faction": "moxie", "bodytype": "human", "species": [ "MOXIE" ], @@ -358,19 +355,20 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "grab_strength": 5, + "grab_strength": 100, "dodge": 2, "vision_day": 25, "regenerates": 5, "harvest": "frost_human", "death_drops": "default_moxie_human_death_drops", - "special_attacks": [ { "type": "bite", "cooldown": 5 }, [ "GRAB", 20 ] ], + "special_attacks": [ { "id": "bite_humanoid", "cooldown": 5 }, { "id": "grab" } ], "flags": [ "SEES", "HEARS", "GOODHEARING", "SWIMS", "WARM", + "GRABS", "BASHES", "GROUP_BASH", "POISON", @@ -449,13 +447,11 @@ "dodge": 4, "vision_day": 10, "regenerates": 15, - "armor_bullet": 30, - "armor_bash": 15, - "armor_cut": 20, "harvest": "alien_moxphore", + "grab_strength": 50, "special_attacks": [ [ "LONGSWIPE", 20 ], - [ "GRAB", 20 ], + { "id": "grab", "cooldown": 20 }, { "id": "scratch", "cooldown": 10, @@ -473,6 +469,7 @@ "KEENNOSE", "SWIMS", "WARM", + "GRABS", "BASHES", "GROUP_BASH", "DESTROYS", @@ -482,7 +479,8 @@ "PUSH_MON", "PUSH_VEH", "FILTHY" - ] + ], + "armor": { "bash": 15, "cut": 20, "bullet": 30 } }, { "id": "mon_moxie_bloodhound", @@ -509,9 +507,6 @@ "dodge": 2, "vision_day": 2, "regenerates": 7, - "armor_bullet": 20, - "armor_bash": 10, - "armor_cut": 10, "harvest": "frost_human", "special_attacks": [ { "type": "bite", "cooldown": 5 }, @@ -531,7 +526,8 @@ "REVIVES", "PUSH_MON", "FILTHY" - ] + ], + "armor": { "bash": 10, "cut": 10, "bullet": 20 } }, { "id": "mon_moxphore_emetic", @@ -558,9 +554,6 @@ "dodge": 1, "vision_day": 15, "regenerates": 10, - "armor_bullet": 18, - "armor_bash": 3, - "armor_cut": 5, "harvest": "alien_moxphore", "special_attacks": [ [ "ACID", 20 ], { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 6 } ] } ], "death_function": { "message": "The %s's body leaks acid.", "effect": { "id": "death_acid", "hit_self": true } }, @@ -579,7 +572,8 @@ "REVIVES", "PUSH_MON", "FILTHY" - ] + ], + "armor": { "bash": 3, "cut": 5, "bullet": 18 } }, { "id": "mon_zombie_brute_shocker", diff --git a/data/Mainline_mods/Mods/Aftershock/modinfo.json b/data/Mainline_mods/Mods/Aftershock/modinfo.json index 1197c64d0..cd2c121ee 100644 --- a/data/Mainline_mods/Mods/Aftershock/modinfo.json +++ b/data/Mainline_mods/Mods/Aftershock/modinfo.json @@ -4,7 +4,7 @@ "id": "aftershock", "name": "Aftershock", "authors": [ "Esther", "Coolthulu", "Maleclypse", "Candlebury", "Mom_Bun" ], - "maintainers": [ "Maleclypse", "Candlebury", "Mom_Bun" ], + "maintainers": [ "Maleclypse", "Candlebury", "Mom_Bun", "Drew4484" ], "description": "Moving towards a survival horror full conversion mod set in a mostly abandoned extrasolar colony far from Earth hundreds of years from today.", "category": "content", "dependencies": [ "dda" ] diff --git a/data/Mainline_mods/Mods/Aftershock/monsterdrops/monster_default.json b/data/Mainline_mods/Mods/Aftershock/monsterdrops/monster_default.json index db4e92874..48f9696a4 100644 --- a/data/Mainline_mods/Mods/Aftershock/monsterdrops/monster_default.json +++ b/data/Mainline_mods/Mods/Aftershock/monsterdrops/monster_default.json @@ -5,63 +5,8 @@ "//": "contains cloth for an average human moxie", "id": "default_moxie_human_clothes", "entries": [ - { "group": "coats_unisex_afs", "damage": [ 1, 4 ], "prob": 20 }, - { "item": "thermal_shirt", "prob": 100, "damage": [ 1, 4 ] }, - { "group": "common_gloves_afs", "damage": [ 1, 4 ], "prob": 20 }, - { "group": "hatstore_hats_afs", "damage": [ 1, 4 ], "prob": 20 }, - { "group": "scarfs_unisex_afs", "damage": [ 1, 4 ], "prob": 20 }, - { "group": "accesories_personal_unisex_afs", "damage": [ 1, 4 ], "prob": 15 }, - { - "distribution": [ - { - "collection": [ - { - "distribution": [ - { "group": "male_underwear", "prob": 10, "damage": [ 1, 4 ] }, - { "item": "union_suit", "prob": 90, "damage": [ 1, 4 ] } - ] - }, - { - "distribution": [ - { - "collection": [ - { "group": "pants_unisex_afs", "prob": 60, "damage": [ 1, 4 ] }, - { "group": "shirts_unisex_afs", "prob": 60, "damage": [ 1, 4 ] }, - { "item": "leather_belt", "prob": 30, "damage": [ 1, 4 ] } - ] - } - ] - }, - { "group": "shoes_unisex_afs", "prob": 30, "damage": [ 1, 4 ] }, - { "group": "socks_unisex", "damage": [ 1, 4 ], "prob": 50 } - ] - }, - { - "collection": [ - { "group": "female_underwear", "prob": 90, "damage": [ 1, 4 ] }, - { "group": "accesories_personal_womens", "prob": 15, "damage": [ 1, 4 ] }, - { - "distribution": [ - { - "collection": [ - { "group": "pants_unisex_afs", "prob": 60, "damage": [ 1, 4 ] }, - { "group": "shoes_unisex_afs", "prob": 30, "damage": [ 1, 4 ] }, - { "group": "shirts_unisex_afs", "prob": 60, "damage": [ 1, 4 ] }, - { - "distribution": [ - { "distribution": [ { "item": "stockings", "prob": 50, "damage": [ 1, 4 ] } ] }, - { "group": "socks_unisex", "prob": 50, "damage": [ 1, 4 ] } - ] - } - ], - "prob": 70 - } - ] - } - ] - } - ] - } + { "group": "afs_colonist_outfit", "damage": [ 1, 4 ] }, + { "group": "afs_scrap_armor_g", "damage": [ 1, 4 ], "prob": 15 } ] }, { @@ -70,22 +15,17 @@ "//": "items people could have carried in their bags prior to the moxification, that word is a WIP, haha", "id": "default_moxie_human_item_bags", "entries": [ - { "group": "bags", "damage": [ 1, 4 ] }, + { "group": "afs_colonist_bags", "damage": [ 1, 4 ] }, { "group": "default_moxie_human_items_pockets", "prob": 50 }, - { "group": "homebooks", "prob": 30 }, { "group": "alcohol_bottled_canned", "prob": 10 }, { "group": "vending_drink_items", "prob": 25 }, - { "item": "laptop", "prob": 10, "charges-min": 0, "charges-max": 500 }, - { "item": "eink_tablet_pc", "prob": 10, "charges-min": 0, "charges-max": 50 }, - { "item": "vibrator", "prob": 5, "charges-min": 0, "charges-max": 50 }, { "item": "file", "prob": 10 }, { "item": "thermos", "prob": 10 }, - { "item": "spray_can", "prob": 10 }, { "distribution": [ - { "group": "tools_carpentry", "prob": 33 }, - { "group": "tools_home", "prob": 33 }, - { "group": "tools_electronics", "prob": 33 } + { "group": "afs_tools_electric_repair", "prob": 40 }, + { "group": "afs_tools_scavenging", "prob": 10 }, + { "group": "afs_tools_programing", "prob": 50 } ], "prob": 5 }, @@ -104,45 +44,28 @@ "//": "items people could have carried in their pockets prior to moxieification", "id": "default_moxie_human_items_pockets", "entries": [ + { "group": "afs_tools_pocket", "prob": 5 }, + { "item": "afs_glass_device", "prob": 15 }, { "distribution": [ - { "item": "pockknife", "prob": 50 }, - { "item": "knife_folding", "prob": 30 }, - { "item": "knife_swissarmy", "prob": 10 }, - { "item": "switchblade", "prob": 10 } - ], - "prob": 5 - }, - { - "distribution": [ - { "item": "cig", "prob": 65, "charges-min": 0, "charges-max": 20 }, + { + "item": "cig", + "prob": 65, + "count-min": 0, + "count-max": 20, + "container-item": "null", + "entry-wrapper": "box_cigarette" + }, { "item": "chaw", "prob": 5 }, { "item": "cigar", "prob": 10 }, { "item": "handrolled_cig", "prob": 10 }, { "item": "nic_gum", "prob": 20 }, { "item": "ecig", "prob": 15 }, - { "collection": [ { "item": "weed" }, { "item": "pipe_glass", "prob": 50 } ], "prob": 10 }, - { "distribution": [ { "item": "joint", "prob": 80 }, { "item": "joint_roach", "prob": 20 } ], "prob": 10 }, - { - "collection": [ - { "item": "tobacco" }, - { "distribution": [ { "item": "rolling_paper", "prob": 80 }, { "item": "pipe_tobacco", "prob": 20 } ] } - ], - "prob": 10 - }, { "collection": [ { "item": "advanced_ecig" }, { "item": "nicotine_liquid" } ], "prob": 10 }, { "collection": [ { "item": "crackpipe" }, { "item": "crack" } ], "prob": 5 } ], "prob": 50 }, - { - "distribution": [ - { "item": "lighter", "prob": 100, "charges": [ 0, 100 ] }, - { "item": "ref_lighter", "prob": 40, "charges": [ 0, 50 ] }, - { "item": "matches", "prob": 20, "charges": [ 0, 20 ] } - ], - "prob": 30 - }, { "distribution": [ { "item": "gum" }, { "item": "caff_gum" } ], "prob": 30 }, { "item": "mp3", "prob": 18, "charges-min": 0, "charges-max": 15 }, { "item": "portable_game", "prob": 10, "charges-min": 0, "charges-max": 50 }, @@ -152,14 +75,12 @@ { "item": "coke", "prob": 2 }, { "item": "lsd", "prob": 2 }, { "item": "heroin", "prob": 2 }, - { "item": "mobile_memory_card", "prob": 10 }, + { "item": "memory_card_unread", "prob": 10 }, { "item": "flyer", "prob": 30 }, { "item": "multitool", "prob": 5 }, { "item": "permanent_marker", "prob": 10, "charges": [ 0, 500 ] }, { "group": "softdrugs", "prob": 10 }, - { "group": "harddrugs", "prob": 5 }, - { "group": "phones", "prob": 85 }, - { "group": "vending_food_items", "prob": 50 } + { "group": "harddrugs", "prob": 5 } ] }, { @@ -171,13 +92,7 @@ "magazine": 100, "entries": [ { "group": "default_moxie_human_item_bags", "prob": 16 }, - { "group": "default_moxie_human_items_pockets", "prob": 20 }, - { "group": "ammo_pistol_common", "prob": 2 }, - { "group": "ammo_shotgun_common", "prob": 1 }, - { "group": "guns_pistol_common", "prob": 2 }, - { "group": "guns_shotgun_common_worn", "prob": 1, "contents-item": "shoulder_strap" }, - { "group": "postman_gear", "prob": 5 }, - { "group": "hardware_plumbing", "prob": 5 } + { "group": "default_moxie_human_items_pockets", "prob": 20 } ] }, { diff --git a/data/Mainline_mods/Mods/Aftershock/monsterdrops/monsterdrops.json b/data/Mainline_mods/Mods/Aftershock/monsterdrops/monsterdrops.json index 24a543811..f1b6221bc 100644 --- a/data/Mainline_mods/Mods/Aftershock/monsterdrops/monsterdrops.json +++ b/data/Mainline_mods/Mods/Aftershock/monsterdrops/monsterdrops.json @@ -10,7 +10,7 @@ "id": "tripod", "items": [ { "item": "flamethrower", "prob": 1, "charges-min": 0, "charges-max": 3000 }, - [ "kevlar_plate", 10 ], + [ "sheet_kevlar_layered", 10 ], [ "ceramic_armor", 15 ], [ "alloy_plate", 10 ], [ "robot_controls", 3 ] @@ -46,24 +46,36 @@ { "item": "flamethrower", "prob": 1, "charges-min": 0, "charges-max": 3000 }, [ "556", 8 ], [ "alloy_plate", 10 ], - [ "kevlar_plate", 10 ], + [ "sheet_kevlar_layered", 10 ], [ "ceramic_armor", 10 ], [ "hard_plate", 30 ], [ "robot_controls", 5 ] ] }, + { + "type": "item_group", + "id": "afs_bandits", + "subtype": "collection", + "entries": [ + { "item": "boots_combat" }, + { "item": "technician_pants_gray", "prob": 100, "damage-min": 0, "damage-max": 5 }, + { "item": "technician_shirt_gray", "prob": 100, "damage-min": 0, "damage-max": 5 }, + { "item": "afs_magellan_suit", "prob": 50, "damage-min": 0, "damage-max": 5 }, + { "group": "military", "prob": 50, "damage-min": 0, "damage-max": 5 }, + { "group": "mil_food", "prob": 100, "damage-min": 0, "damage-max": 5 } + ] + }, { "type": "item_group", "id": "xl_uplift_death_drop", "subtype": "collection", "entries": [ - { "item": "xlboots_combat" }, - { "item": "xl_technician_pants_gray", "prob": 50 }, - { "item": "xl_technician_shirt_gray", "prob": 100 }, - { "item": "xl_jeans", "prob": 50 }, - { "item": "mp5mag", "prob": 10 }, - { "group": "military", "prob": 50 }, - { "group": "mil_food", "prob": 100 } + { "item": "xlboots_combat", "damage-min": 0, "damage-max": 5 }, + { "item": "xl_technician_pants_gray", "prob": 50, "damage-min": 0, "damage-max": 5 }, + { "item": "xl_technician_shirt_gray", "prob": 100, "damage-min": 0, "damage-max": 5 }, + { "item": "xl_jeans", "prob": 50, "damage-min": 0, "damage-max": 5 }, + { "group": "military", "prob": 50, "damage-min": 0, "damage-max": 5 }, + { "group": "mil_food", "prob": 100, "damage-min": 0, "damage-max": 5 } ] }, { @@ -71,13 +83,13 @@ "id": "xl_uplift_zed_death_drop", "subtype": "collection", "entries": [ - { "item": "xlboots_combat" }, - { "item": "xl_technician_pants_gray", "prob": 50 }, - { "item": "xl_technician_shirt_gray", "prob": 100 }, - { "item": "xl_jeans", "prob": 50 }, + { "item": "xlboots_combat", "damage-min": 1, "damage-max": 5 }, + { "item": "xl_technician_pants_gray", "prob": 50, "damage-min": 1, "damage-max": 5 }, + { "item": "xl_technician_shirt_gray", "prob": 100, "damage-min": 1, "damage-max": 5 }, + { "item": "xl_jeans", "prob": 50, "damage-min": 1, "damage-max": 5 }, { "item": "mp5mag", "prob": 10 }, - { "group": "military", "prob": 50 }, - { "group": "mil_food", "prob": 100 } + { "group": "military", "prob": 50, "damage-min": 0, "damage-max": 5 }, + { "group": "mil_food", "prob": 100, "damage-min": 0, "damage-max": 5 } ] }, { diff --git a/data/Mainline_mods/Mods/Aftershock/mood_faces.json b/data/Mainline_mods/Mods/Aftershock/mood_faces.json new file mode 100644 index 000000000..040ed3b07 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/mood_faces.json @@ -0,0 +1,30 @@ +[ + { + "type": "mood_face", + "id": "THRESH_YUGGOTH_HORIZONTAL", + "values": [ + { "value": 200, "face": "*~*" }, + { "value": 100, "face": "O~O" }, + { "value": 50, "face": "o~o" }, + { "value": 10, "face": "^~^" }, + { "value": -10, "face": "-~-" }, + { "value": -50, "face": ".~." }, + { "value": -100, "face": "T~T" }, + { "value": -200, "face": "X~X" } + ] + }, + { + "type": "mood_face", + "id": "THRESH_MASTODON_HORIZONTAL", + "values": [ + { "value": 200, "face": "*J*" }, + { "value": 100, "face": "OJO" }, + { "value": 50, "face": "oJo" }, + { "value": 10, "face": "^J^" }, + { "value": -10, "face": "-J-" }, + { "value": -50, "face": ".J." }, + { "value": -100, "face": "TJT" }, + { "value": -200, "face": "XJX" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/mutations/integrated.json b/data/Mainline_mods/Mods/Aftershock/mutations/integrated.json new file mode 100644 index 000000000..ed94a8445 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/mutations/integrated.json @@ -0,0 +1,105 @@ +[ + { + "id": "integrated_mastodon_fur", + "type": "ARMOR", + "category": "armor", + "name": { "str": "wooly fur" }, + "description": "A course thick matt of fur, somewhere between a ballistic vest and attic insulation.", + "weight": "4 kg", + "volume": "4 L", + "price": 0, + "price_postapoc": 0, + "material": [ "mut_fur" ], + "symbol": "x", + "color": "black", + "warmth": 90, + "environmental_protection": 2, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "SKINTIGHT", "NORMAL", "WATER_FRIENDLY", "SOFT" ], + "armor": [ + { + "material": [ { "type": "mut_fur", "covered_by_mat": 100, "thickness": 20 } ], + "covers": [ "leg_l", "leg_r", "arm_l", "arm_r", "torso" ], + "coverage": 100, + "encumbrance": 5 + }, + { + "material": [ { "type": "mut_fur", "covered_by_mat": 100, "thickness": 13 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "head" ], + "coverage": 100, + "encumbrance": 6 + }, + { + "material": [ { "type": "mut_fur", "covered_by_mat": 100, "thickness": 8 } ], + "covers": [ "mouth" ], + "coverage": 85, + "encumbrance": 0 + } + ] + }, + { + "id": "integrated_hide", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "sparse scales" }, + "description": "Your dermis has toughened and thickened to provide additional protection.", + "weight": "1 kg", + "volume": "900 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "hflesh" ], + "symbol": "x", + "color": "light_red", + "warmth": 1, + "environmental_protection": 1, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ { "type": "hflesh", "covered_by_mat": 100, "thickness": 3 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "SECOND_SKIN" + } + ] + }, + { + "id": "integrated_rhomboidal_denticles", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "thick scales" }, + "description": "Leathery and heavily armored, your lamellar skin has toughened for the fiercest battles ahead.", + "weight": "4 kg", + "volume": "3600 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "flesh", "enamel" ], + "symbol": "x", + "color": "light_red", + "warmth": 5, + "environmental_protection": 2, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "SKINTIGHT", "NORMAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ + { "type": "flesh", "covered_by_mat": 100, "thickness": 0.5 }, + { "type": "enamel", "covered_by_mat": 95, "thickness": 1.0 } + ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 4, + "breathability": "GOOD" + }, + { + "material": [ + { "type": "flesh", "covered_by_mat": 100, "thickness": 0.5 }, + { "type": "enamel", "covered_by_mat": 95, "thickness": 1.0 } + ], + "covers": [ "mouth" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "GOOD", + "layers": [ "SKINTIGHT" ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/mutations/mutation_eocs.json b/data/Mainline_mods/Mods/Aftershock/mutations/mutation_eocs.json new file mode 100644 index 000000000..8b24f341f --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/mutations/mutation_eocs.json @@ -0,0 +1,30 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_RAD_ADAP_activated", + "condition": { "compare_int": [ { "u_val": "sleep_deprivation" }, "<=", { "const": 14400 } ] }, + "effect": [ + { "arithmetic": [ { "u_val": "sleep_deprivation" }, "+=", { "time": "15 minutes" } ] }, + { + "u_message": "You think about activating your immune system and your body warms with exertion.", + "type": "good" + }, + { "u_add_effect": "migo_rad_away", "duration": "5 minutes" } + ], + "false_effect": [ { "u_message": "You are too exhausted to focus your immune system.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_RAD_FLUSH_activated", + "condition": { "compare_int": [ { "u_val": "sleep_deprivation" }, "<=", { "const": 14400 } ] }, + "effect": [ + { "arithmetic": [ { "u_val": "sleep_deprivation" }, "+=", { "time": "35 minutes" } ] }, + { + "u_message": "You think quite pointedly about activating your immune system and your body hums with exertion.", + "type": "good" + }, + { "u_add_effect": "migo_rad_flush", "duration": "15 minutes" } + ], + "false_effect": [ { "u_message": "You are too exhausted to focus your immune system.", "type": "bad" } ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/mutations/mutations.json b/data/Mainline_mods/Mods/Aftershock/mutations/mutations.json index 10fe9a20e..55b5467b3 100644 --- a/data/Mainline_mods/Mods/Aftershock/mutations/mutations.json +++ b/data/Mainline_mods/Mods/Aftershock/mutations/mutations.json @@ -53,6 +53,28 @@ "category": [ "MIGO" ], "prereqs": [ "WARM_NATURED" ] }, + { + "type": "mutation", + "id": "MIGO_RAD_ADAPTION", + "name": { "str": "Radioactive Environment Adaptation" }, + "points": 2, + "description": "You think you know how to instruct your body to process radioactive particles out of itself faster than normal.", + "category": [ "MIGO" ], + "active": true, + "activated_eocs": [ "EOC_RAD_ADAP_activated" ] + }, + { + "type": "mutation", + "id": "MIGO_THRESH_RAD_FLUSH", + "name": { "str": "Radiation Flush " }, + "points": 5, + "description": "You can instruct your immune system to flush out radioactive particles at an enviable speed.", + "prereqs": [ "MIGO_RAD_ADAPTION" ], + "category": [ "MIGO" ], + "threshreq": [ "THRESH_YUGGOTH" ], + "active": true, + "activated_eocs": [ "EOC_RAD_FLUSH_activated" ] + }, { "type": "mutation", "id": "FACIAL_TENTACLES", @@ -60,11 +82,13 @@ "points": 1, "visibility": 8, "ugliness": 5, + "consume_time_modifier": 0.5, "description": "A set of tentacles surrounds your mouth. They allow you to eat twice as fast. Slightly decreases wet penalties.", + "types": [ "MUZZLE" ], "prereqs": [ "MOUTH_TENDRILS" ], "cancels": [ "MANDIBLES" ], "category": [ "MIGO" ], - "wet_protection": [ { "part": "mouth", "neutral": 4 } ] + "wet_protection": [ { "part": "mouth", "ignored": 1 } ] }, { "type": "mutation", @@ -74,19 +98,91 @@ "visibility": 7, "ugliness": 6, "description": "Skin tabs and odd flaps of skin surround your mouth. They don't affect your eating, but are unpleasant to look at.", + "types": [ "MUZZLE" ], "category": [ "MIGO" ], "leads_to": [ "FACIAL_TENTACLES" ] }, + { + "type": "mutation", + "id": "FUNGAL_IMMUNITY", + "name": { "str": "fungivoral immune system" }, + "points": 5, + "description": "The immune system of these beings transcends anything seen in humanity and appear to be able to target even directed infections such as fungal infestations.", + "purifiable": false, + "threshreq": [ "THRESH_YUGGOTH" ], + "category": [ "MIGO" ], + "flags": [ "MYCUS_IMMUNE" ] + }, { "type": "mutation", "id": "WARM_NATURED", "name": "Warm Natured", "points": 2, "description": "Your body becomes much more efficient at distributing heat from itself.", + "types": [ "METABOLISM" ], "category": [ "MIGO" ], "leads_to": [ "MIGO_HEAT_RESIST" ], "bodytemp_modifiers": [ -500, -1250 ] }, + { + "type": "mutation", + "id": "THICKSKIN", + "copy-from": "THICKSKIN", + "extend": { "category": [ "MIGO", "MASTODON" ] } + }, + { + "type": "mutation", + "id": "THICK_HIDE", + "name": { "str": "Thick Hide" }, + "points": 2, + "visibility": 10, + "ugliness": 2, + "description": "Your skin has thickened and toughened further, acting as natural armor. Somewhat reduces wet effects.", + "types": [ "SKIN" ], + "category": [ "MIGO" ], + "prereqs": [ "THICKSKIN" ], + "changes_to": [ "RHOMBOIDAL_DENTICLES" ], + "wet_protection": [ + { "part": "head", "ignored": 2 }, + { "part": "leg_l", "ignored": 5 }, + { "part": "leg_r", "ignored": 5 }, + { "part": "foot_l", "ignored": 2 }, + { "part": "foot_r", "ignored": 2 }, + { "part": "arm_l", "ignored": 4 }, + { "part": "arm_r", "ignored": 4 }, + { "part": "hand_l", "ignored": 1 }, + { "part": "hand_r", "ignored": 1 }, + { "part": "torso", "ignored": 10 } + ], + "integrated_armor": [ "integrated_hide" ] + }, + { + "type": "mutation", + "id": "RHOMBOIDAL_DENTICLES", + "name": { "str": "Rhomboidal Denticles" }, + "points": 3, + "visibility": 10, + "ugliness": 4, + "mixed_effect": true, + "description": "Your skin has thick diamond shaped enamel scutes that both armor your body and allow you to move more smoothly in water. While difficult to penetrate, it also limits your flexibility. Greatly reduces wet effects.", + "types": [ "SKIN" ], + "prereqs": [ "THICK_HIDE" ], + "threshreq": [ "THRESH_YUGGOTH" ], + "category": [ "MIGO" ], + "wet_protection": [ + { "part": "head", "ignored": 15 }, + { "part": "leg_l", "ignored": 26 }, + { "part": "leg_r", "ignored": 26 }, + { "part": "foot_l", "ignored": 15 }, + { "part": "foot_r", "ignored": 15 }, + { "part": "arm_l", "ignored": 24 }, + { "part": "arm_r", "ignored": 24 }, + { "part": "hand_l", "ignored": 14 }, + { "part": "hand_r", "ignored": 14 }, + { "part": "torso", "ignored": 50 } + ], + "integrated_armor": [ "integrated_rhomboidal_denticles" ] + }, { "type": "mutation", "id": "NEURAL_IMPROVEMENT", @@ -94,6 +190,7 @@ "points": 1, "description": "You see the world a little differently today. Intelligence + 1", "changes_to": [ "EXPANDED_CONSCIOUSNESS" ], + "types": [ "INT" ], "category": [ "MIGO" ], "passive_mods": { "int_mod": 1 } }, @@ -103,6 +200,7 @@ "name": "Expanded Consciousness", "points": 2, "description": "You are beginning to see a way off this planet. Intelligence + 2", + "types": [ "INT" ], "prereqs": [ "NEURAL_IMPROVEMENT" ], "changes_to": [ "UPLIFTED_CONSCIOUSNESS" ], "category": [ "MIGO" ], @@ -111,12 +209,13 @@ { "type": "mutation", "id": "UPLIFTED_CONSCIOUSNESS", - "name": "Extremely Smart", + "name": "Uplifted Consciousness", "points": 3, "visibility": 1, "ugliness": 1, "description": "As humans uplifted our pets in the final years this process is lifting you to a new level of intelligence. Intelligence + 4", "prereqs": [ "EXPANDED_CONSCIOUSNESS" ], + "types": [ "INT" ], "changes_to": [ "ALIEN_INT" ], "category": [ "MIGO" ], "passive_mods": { "int_mod": 4 } @@ -130,6 +229,7 @@ "ugliness": 6, "description": "You can see the connections from A to B to C to D. You look at fellow survivors like you are imagining taking them apart. Intelligence + 5", "prereqs": [ "UPLIFTED_CONSCIOUSNESS" ], + "types": [ "INT" ], "category": [ "MIGO" ], "threshreq": [ "THRESH_YUGGOTH" ], "starting_trait": false, @@ -141,6 +241,7 @@ "name": "Enhanced Reactions", "points": 1, "description": "Today is the day to start juggling. Dexterity + 1", + "types": [ "DEX" ], "changes_to": [ "QUICKENING" ], "category": [ "MIGO" ], "passive_mods": { "dex_mod": 1 } @@ -151,6 +252,7 @@ "name": "Quickening", "points": 2, "description": "You are starting to move like they do. Dexterity + 2", + "types": [ "DEX" ], "prereqs": [ "ENHANCED_REACTIONS" ], "changes_to": [ "OTHERWORLDLY_GRACE" ], "category": [ "MIGO" ], @@ -162,6 +264,7 @@ "name": "Otherworldly Grace", "points": 3, "description": "You no longer move like a human, others find it disconcerting. Dexterity + 4", + "types": [ "DEX" ], "prereqs": [ "ENHANCED_REACTIONS" ], "threshreq": "THRESH_YUGGOTH", "social_modifiers": { "persuade": -10, "lie": -6 }, @@ -176,6 +279,7 @@ "description": "You see some new muscles that you aren't sure you've seen on humans before. Strength + 1", "changes_to": [ "MUSCLE_FIBER" ], "category": [ "MIGO" ], + "types": [ "STR" ], "social_modifiers": { "persuade": -3, "intimidate": 2 }, "passive_mods": { "str_mod": 1 } }, @@ -185,7 +289,8 @@ "name": "Muscle Fiber", "points": 2, "description": "Fibrous tissue seems to be spreading through your body. Strength + 2", - "prereqs": [ "STR_UP" ], + "types": [ "STR" ], + "prereqs": [ "NEW_MUSCLES" ], "category": [ "MIGO" ], "social_modifiers": { "persuade": -3, "intimidate": 2 }, "ugliness": 2, @@ -235,7 +340,7 @@ "id": "THRESH_YUGGOTH", "name": "YUGGOTH", "points": 1, - "description": "This death throes of this world are the birthing pangs of yours.", + "description": "The death throes of this world are the birthing pangs of yours.", "valid": false, "purifiable": false, "threshold": true @@ -248,8 +353,8 @@ "description": "Your sweat now smells otherworldly, and not in a good way. The mi-go still hate you but at least they aren't offended by your smell.", "valid": false, "purifiable": false, - "types": [ "LEGS" ], - "prereqs": [ "SMELLY", "SMELLY2" ], + "types": [ "SCENT" ], + "prereqs": [ "SMELLY2" ], "threshreq": [ "THRESH_YUGGOTH" ], "category": [ "MIGO" ], "ugliness": 1, @@ -262,6 +367,7 @@ "points": 1, "description": "You are off-putting to others. Your mannerisms have changed as if human interaction is becoming foreign.", "category": [ "MIGO" ], + "types": [ "ATTRACTIVENESS" ], "social_modifiers": { "persuade": -15, "lie": -10 }, "ugliness": 2 }, @@ -275,6 +381,7 @@ "description": "You have a pair of large, veiny wings. They don't appear to be made for this atmosphere but they grant a powerful buffeting attack.", "types": [ "WINGS" ], "prereqs": [ "WINGS_STUB" ], + "flags": [ "WINGS_1" ], "category": [ "MIGO" ], "attacks": { "attack_text_u": "You buffet %s with your wings", @@ -325,12 +432,6 @@ "copy-from": "TOUGH_FEET", "extend": { "category": [ "MASTODON" ] } }, - { - "type": "mutation", - "id": "THICKSKIN", - "copy-from": "THICKSKIN", - "extend": { "category": [ "MASTODON" ] } - }, { "type": "mutation", "id": "HAULER", @@ -383,10 +484,17 @@ "changes_to": [ "LIGHTFUR" ], "category": [ "MASTODON", "SPIDER", "MOUSE", "BEAST", "CATTLE", "RAT", "FELINE", "LUPINE", "RABBIT", "INSECT", "URSINE" ] }, + { + "type": "mutation", + "id": "HIRSUTE", + "copy-from": "HIRSUTE", + "extend": { "category": [ "MASTODON" ] } + }, { "type": "mutation", "id": "LIGHTFUR", "copy-from": "LIGHTFUR", + "prereqs": [ "HIRSUTE" ], "extend": { "category": [ "MASTODON" ] } }, { @@ -397,15 +505,24 @@ }, { "type": "mutation", - "id": "URSINE_FUR", - "copy-from": "URSINE_FUR", - "extend": { "category": [ "MASTODON" ] } + "id": "MASTODON_FUR", + "name": { "str": "Wooly Fur" }, + "points": 4, + "visibility": 10, + "ugliness": 3, + "bodytemp_sleep": 550, + "description": "Your fur has grown out and thickened, providing great protection from attacks as well as considerable insulation.", + "types": [ "SKIN" ], + "prereqs": [ "FUR" ], + "threshreq": [ "THRESH_MASTODON" ], + "category": [ "MASTODON" ], + "integrated_armor": [ "integrated_mastodon_fur" ] }, { "type": "mutation", "id": "CRUSHINGFEET", "name": "Crushing Feet", - "points": -4, + "points": 0, "visibility": 2, "ugliness": 2, "mixed_effect": true, @@ -442,6 +559,7 @@ "visibility": 3, "ugliness": 3, "description": "You have a pair of bumps on your face above your mouth and beside your nose.", + "types": [ "TUSKS" ], "category": [ "MASTODON" ], "changes_to": [ "TUSKS" ] }, @@ -453,13 +571,13 @@ "visibility": 3, "ugliness": 1, "description": "You have a pair of small tusks on your face. They allow you to make a weak piercing goring attack.", - "types": [ "HORNS" ], + "types": [ "TUSKS" ], "prereqs": [ "FACEBUMPS" ], "changes_to": [ "TUSKS_POINTED" ], "category": [ "MASTODON" ], "attacks": { - "attack_text_u": "You gore %s with your tusks", - "attack_text_npc": "%1$s gores %2$s with their tusks", + "attack_text_u": "You gore %s with your tusks!", + "attack_text_npc": "%1$s gores %2$s with their tusks!", "chance": 20, "base_damage": [ { "damage_type": "stab", "amount": 3 }, { "damage_type": "bash", "amount": 3 } ] } @@ -473,19 +591,25 @@ "ugliness": 2, "mixed_effect": true, "description": "You have a pair of long, pointed tusks, like someone weaponized an elephant. They allow you to make a strong piercing headbutt attack, but prevent wearing mouthgear that is not made of fabric.", - "types": [ "HORNS" ], - "prereqs": [ "HORNS" ], + "types": [ "TUSKS" ], + "prereqs": [ "TUSKS" ], "restricts_gear": [ "mouth" ], "allow_soft_gear": true, "category": [ "MASTODON" ], "threshreq": [ "THRESH_MASTODON" ], "attacks": { - "attack_text_u": "You stab %s with your pointed tusks", - "attack_text_npc": "%1$s stabs %2$s with their pointed tusks", + "attack_text_u": "You stab %s with your pointed tusks!", + "attack_text_npc": "%1$s stabs %2$s with their pointed tusks!", "chance": 22, "base_damage": { "damage_type": "stab", "amount": 24 } } }, + { + "type": "mutation", + "id": "DENSE_BONES", + "copy-from": "DENSE_BONES", + "extend": { "category": [ "MASTODON" ] } + }, { "type": "mutation", "id": "MUT_TOUGH", @@ -545,7 +669,7 @@ "type": "mutation", "id": "TRUNK", "name": { "str": "Elephant Trunk" }, - "points": -4, + "points": 0, "visibility": 5, "ugliness": 6, "mixed_effect": true, @@ -569,12 +693,6 @@ "copy-from": "MET_RAT", "extend": { "category": [ "MASTODON" ] } }, - { - "type": "mutation", - "id": "SKIN_ROUGH", - "copy-from": "SKIN_ROUGH", - "extend": { "category": [ "MASTODON" ] } - }, { "type": "mutation", "id": "SLEEPY", @@ -597,7 +715,7 @@ "type": "mutation", "id": "TRIPAWS", "name": "Three Fingered", - "points": -3, + "points": 0, "visibility": 3, "ugliness": 2, "mixed_effect": true, @@ -631,7 +749,7 @@ "type": "mutation", "id": "TRUMPET", "name": "Trumpeting Voice", - "points": -1, + "points": 0, "mixed_effect": true, "description": "You have a trumpeting, elephantine voice. Threatening NPCs will be easier, but lying will be very hard.", "category": [ "MASTODON" ], @@ -672,6 +790,48 @@ "copy-from": "CHEMIMBALANCE", "extend": { "category": [ "MIGO" ] } }, + { + "type": "mutation", + "id": "POISRESIST", + "copy-from": "POISRESIST", + "extend": { "category": [ "MIGO" ] } + }, + { + "type": "mutation", + "id": "NIGHTVISION", + "copy-from": "NIGHTVISION", + "extend": { "category": [ "MIGO" ] } + }, + { + "type": "mutation", + "id": "DISRESISTANT", + "copy-from": "DISRESISTANT", + "extend": { "category": [ "MIGO" ] } + }, + { + "type": "mutation", + "id": "DISIMMUNE", + "copy-from": "DISIMMUNE", + "extend": { "category": [ "MIGO" ] } + }, + { + "type": "mutation", + "id": "INFRESIST", + "copy-from": "INFRESIST", + "extend": { "category": [ "MIGO" ] } + }, + { + "type": "mutation", + "id": "INFIMMUNE", + "copy-from": "INFIMMUNE", + "extend": { "category": [ "MIGO" ] } + }, + { + "type": "mutation", + "id": "PARAIMMUNE", + "copy-from": "PARAIMMUNE", + "extend": { "category": [ "MIGO" ] } + }, { "type": "mutation", "id": "SCHIZOPHRENIC", @@ -682,7 +842,7 @@ "type": "mutation", "id": "STR_UP", "copy-from": "STR_UP", - "extend": { "category": [ "MASTODON", "MIGO" ] } + "extend": { "category": [ "MASTODON" ] } }, { "type": "mutation", @@ -710,14 +870,12 @@ }, { "type": "mutation", - "id": "HORNS", - "copy-from": "HORNS", - "extend": { "category": [ "MASTODON" ] } - }, - { - "type": "mutation", - "id": "HEADBUMPS", - "copy-from": "HEADBUMPS", - "extend": { "category": [ "MASTODON" ] } + "id": "SKULLGUN_STUPID", + "name": { "str": "Skullgun Stupidity" }, + "points": -1, + "description": "You took the bionic skullgun out of your noggin, but that didn't replace the brain cells you lost when you installed it.", + "valid": false, + "purifiable": false, + "passive_mods": { "int_mod": -4, "per_mod": -2 } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/mutations/obsolete.json b/data/Mainline_mods/Mods/Aftershock/mutations/obsolete.json index a56fbc014..45fa72096 100644 --- a/data/Mainline_mods/Mods/Aftershock/mutations/obsolete.json +++ b/data/Mainline_mods/Mods/Aftershock/mutations/obsolete.json @@ -128,7 +128,6 @@ "description": "Thick brown fur has grown to cover your entire body, providing a slight protection against attacks, and some protection from cold.", "valid": false, "types": [ "SKIN" ], - "changes_to": [ "MASTODON_FUR" ], "prereqs": [ "LIGHTFUR" ], "armor": [ { @@ -137,27 +136,6 @@ } ] }, - { - "type": "mutation", - "id": "MASTODON_FUR", - "name": { "str": "Shaggy Fur" }, - "points": 4, - "visibility": 10, - "ugliness": 3, - "bodytemp_modifiers": [ 750, 1500 ], - "bodytemp_sleep": 500, - "description": "Your fur has grown out and thickened, providing noticeable protection from attacks as well as considerable insulation.", - "valid": false, - "types": [ "SKIN" ], - "prereqs": [ "MEDIUMFUR" ], - "threshreq": [ "THRESH_MASTODON" ], - "armor": [ - { - "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth", "eyes" ], - "bash": 4 - } - ] - }, { "type": "mutation", "id": "MUT_TANK", @@ -308,7 +286,7 @@ "types": [ "HEALING" ], "cancels": [ "LIGHTEATER", "COLDBLOOD", "COLDBLOOD2", "COLDBLOOD3", "COLDBLOOD4", "WAKEFUL", "WAKEFUL2", "WAKEFUL3" ], "prereqs": [ "HUNGER" ], - "healing_resting": 0.25, + "healing_multiplier": 0.25, "fatigue_modifier": 0.75, "fatigue_regen_modifier": 0.5, "metabolism_modifier": 0.4 diff --git a/data/Mainline_mods/Mods/Aftershock/npcs/Backgrounds/BGBR_Sadie.json b/data/Mainline_mods/Mods/Aftershock/npcs/Backgrounds/BGBR_Sadie.json index a7680bf7c..5a4f12fd6 100644 --- a/data/Mainline_mods/Mods/Aftershock/npcs/Backgrounds/BGBR_Sadie.json +++ b/data/Mainline_mods/Mods/Aftershock/npcs/Backgrounds/BGBR_Sadie.json @@ -41,7 +41,7 @@ "yes": "What a beautiful facility. I bet they have all kinds of lovely toys to play with. We should kill everyone here and do some creative self-experimentation." }, { - "npc_at_om_location": "Mansion_Wild", + "npc_at_om_location": "Mansion_Road_1", "no": "", "yes": "Ooh, it's like a murder mystery here. Are we the murderers, the murdered, or the mystery?" } diff --git a/data/Mainline_mods/Mods/Aftershock/npcs/Backgrounds/BGRS_migo_2.json b/data/Mainline_mods/Mods/Aftershock/npcs/Backgrounds/BGRS_migo_2.json index e70f6907e..0fe9dc632 100644 --- a/data/Mainline_mods/Mods/Aftershock/npcs/Backgrounds/BGRS_migo_2.json +++ b/data/Mainline_mods/Mods/Aftershock/npcs/Backgrounds/BGRS_migo_2.json @@ -22,7 +22,7 @@ { "id": "BGRS_MIGO_2_STORY3", "type": "talk_topic", - "dynamic_line": "Some kind of hideos alien was standing over my neighbors disemboweled corpse. It looked at me and said 'You're a great neighbor' then everything faded to black. I feel like everything in my body fits differently now.", + "dynamic_line": "Some kind of hideous alien was standing over my neighbors disemboweled corpse. It looked at me and said 'You're a great neighbor' then everything faded to black. I feel like everything in my body fits differently now.", "responses": [ { "text": "", "topic": "TALK_FRIEND" }, { "text": "", "topic": "TALK_DONE" } ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/npcs/classes.json b/data/Mainline_mods/Mods/Aftershock/npcs/classes.json index 2d21e9a34..a1e1b775d 100644 --- a/data/Mainline_mods/Mods/Aftershock/npcs/classes.json +++ b/data/Mainline_mods/Mods/Aftershock/npcs/classes.json @@ -209,6 +209,10 @@ "name": "forgotten experiment", "job_description": "What a magical world to explore…", "common": false, + "bonus_str": { "rng": [ 3, 7 ] }, + "bonus_dex": { "rng": [ 3, 5 ] }, + "bonus_int": { "rng": [ 3, 5 ] }, + "bonus_per": { "rng": [ 3, 5 ] }, "worn_override": "NC_CYBORG_worn", "carry_override": "NC_DOCTOR_misc", "weapon_override": "EMPTY_GROUP", @@ -227,7 +231,7 @@ ], "skills": [ { "skill": "ALL", "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -4 } ] } ] } }, - { "skill": "firstaid", "bonus": { "rng": [ 4, 8 ] } } + { "skill": "firstaid", "bonus": { "rng": [ 6, 8 ] } } ], "bionics": [ { "id": "bio_ankles", "chance": 5 }, @@ -245,6 +249,8 @@ { "id": "bio_sleepy", "chance": 5 }, { "id": "bio_heat_absorb", "chance": 20 }, { "id": "bio_eye_enhancer", "chance": 20 }, + { "id": "bio_recycler", "chance": 100 }, + { "id": "bio_digestion", "chance": 100 }, { "id": "bio_pokedeye", "chance": 10 }, { "id": "bio_hydraulics", "chance": 10 }, { "id": "bio_painkiller", "chance": 15 }, @@ -256,7 +262,16 @@ { "id": "bio_armor_arms", "chance": 30 }, { "id": "bio_armor_legs", "chance": 25 }, { "id": "bio_razors", "chance": 15 }, + { "id": "bio_nanobots", "chance": 20 }, + { "id": "bio_sunglasses", "chance": 50 }, + { "id": "bio_weight", "chance": 50 }, { "id": "bio_power_storage", "chance": 100 }, + { "id": "bio_power_storage_mkII", "chance": 70 }, + { "id": "bio_trickle", "chance": 100 }, + { "id": "bio_trickle", "chance": 75 }, + { "id": "bio_trickle", "chance": 50 }, + { "id": "bio_trickle", "chance": 25 }, + { "id": "bio_trickle", "chance": 10 }, { "id": "bio_torsionratchet", "chance": 20 } ] } diff --git a/data/Mainline_mods/Mods/Aftershock/npcs/cyborg_npcs/item_groups_cyborg.json b/data/Mainline_mods/Mods/Aftershock/npcs/cyborg_npcs/item_groups_cyborg.json index bb47d8551..11f8a1ee1 100644 --- a/data/Mainline_mods/Mods/Aftershock/npcs/cyborg_npcs/item_groups_cyborg.json +++ b/data/Mainline_mods/Mods/Aftershock/npcs/cyborg_npcs/item_groups_cyborg.json @@ -102,7 +102,7 @@ [ "knife_rm42", 2 ], [ "kukri", 2 ], [ "knife_hunting", 4 ], - [ "knife_rambo", 20 ], + { "group": "knife_rambo_cont", "prob": 20 }, [ "tanto", 3 ], [ "throwing_knife", 7 ], [ "punch_dagger", 12 ], @@ -146,7 +146,7 @@ [ "vac_sealer", 10 ], [ "smart_phone", 50 ], [ "eink_tablet_pc", 15 ], - [ "mobile_memory_card", 40 ], + [ "memory_card_unread", 40 ], [ "camera", 15 ], [ "camera_pro", 5 ], [ "wristwatch", 15 ], @@ -264,7 +264,7 @@ [ "hotplate", 10 ], [ "smart_phone", 50 ], [ "eink_tablet_pc", 15 ], - [ "mobile_memory_card", 40 ], + [ "memory_card_unread", 40 ], [ "camera", 15 ], [ "camera_pro", 5 ], [ "wristwatch", 15 ], diff --git a/data/Mainline_mods/Mods/Aftershock/npcs/prepnet_dialogue.json b/data/Mainline_mods/Mods/Aftershock/npcs/prepnet_dialogue.json index 0f68a824d..68b97c9af 100644 --- a/data/Mainline_mods/Mods/Aftershock/npcs/prepnet_dialogue.json +++ b/data/Mainline_mods/Mods/Aftershock/npcs/prepnet_dialogue.json @@ -69,7 +69,7 @@ { "type": "talk_topic", "id": "TALK_PrepNet_gardener_food", - "dynamic_line": "This food has to go back to our core communities. But maybe we can trade some food for services", + "dynamic_line": "This food has to go back to our core communities. But maybe we can trade some food for services.", "responses": [ { "text": "I can pay.", "topic": "TALK_PrepNet_gardener_ask_food_bribe" }, { "text": "What do you need done?", "topic": "TALK_MISSION_LIST" }, @@ -79,7 +79,7 @@ { "type": "talk_topic", "id": "TALK_PrepNet_gardener_ask_food_bribe", - "dynamic_line": "You have to earn the right to trade with us. Plus we created our own currency before the Cataclysm", + "dynamic_line": "You have to earn the right to trade with us. Plus we created our own currency before the Cataclysm.", "responses": [ { "text": "It was worth a try.", "topic": "TALK_PrepNet_gardener_1" }, { "text": "What kind of currency?", "topic": "TALK_PrepNet_gardener_currency" } @@ -94,7 +94,7 @@ { "type": "talk_topic", "id": "TALK_PrepNet_gardener_ask_goods", - "dynamic_line": "Here? Fruits and berries. Maybe the occasional piece of farm equipment, but you need crypto coins", + "dynamic_line": "Here? Fruits and berries. Maybe the occasional piece of farm equipment, but you'll need crypto coins.", "responses": [ { "text": "Ok.", "topic": "TALK_PrepNet_gardener_1" }, { diff --git a/data/Mainline_mods/Mods/Aftershock/options.json b/data/Mainline_mods/Mods/Aftershock/options.json index a491b2346..6382e08eb 100644 --- a/data/Mainline_mods/Mods/Aftershock/options.json +++ b/data/Mainline_mods/Mods/Aftershock/options.json @@ -10,5 +10,11 @@ "name": "CBM_SLOTS_ENABLED", "stype": "bool", "value": true + }, + { + "type": "EXTERNAL_OPTION", + "name": "EMP_DISABLE_ELECTRONICS", + "stype": "bool", + "value": false } ] diff --git a/data/Mainline_mods/Mods/Aftershock/player/bionic_eocs.json b/data/Mainline_mods/Mods/Aftershock/player/bionic_eocs.json new file mode 100644 index 000000000..51c15640f --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/player/bionic_eocs.json @@ -0,0 +1,82 @@ +[ + { + "id": "eoc_bio_superheater_on", + "type": "effect_on_condition", + "effect": { "u_add_var": "on", "type": "bio", "context": "superheater", "value": "yes" } + }, + { + "id": "eoc_bio_superheater_off", + "type": "effect_on_condition", + "effect": { "u_lose_var": "on", "type": "bio", "context": "superheater" } + }, + { + "id": "eoc_bio_blade_electric_on", + "type": "effect_on_condition", + "effect": { "u_add_var": "on", "type": "bio", "context": "blade_electric", "value": "yes" } + }, + { + "id": "eoc_bio_blade_electric_off", + "type": "effect_on_condition", + "effect": { "u_lose_var": "on", "type": "bio", "context": "blade_electric" } + }, + { + "type": "effect_on_condition", + "id": "afs_eoc_hangover_baseline", + "effect": [ + { "u_add_effect": "decreased_performance", "duration": "6 hours" }, + { "u_add_effect": "disrupted_sleep", "duration": "8 hours" }, + { + "u_add_morale": "morale_off_drugs", + "bonus": -20, + "max_bonus": -60, + "duration": "36 hours", + "decay_start": "24 hours" + } + ] + }, + { + "type": "effect_on_condition", + "id": "afs_eoc_hangover_speed", + "effect": [ + { "u_add_effect": "post_speed_injection", "duration": "6 hours" }, + { "u_add_effect": "disrupted_sleep", "duration": "8 hours" }, + { + "u_add_morale": "morale_off_drugs", + "bonus": -20, + "max_bonus": -60, + "duration": "36 hours", + "decay_start": "24 hours" + } + ] + }, + { + "type": "effect_on_condition", + "id": "afs_eoc_hangover_healing", + "effect": [ + { "u_add_effect": "post_healing_injection", "duration": "6 hours" }, + { "arithmetic": [ { "u_val": "fatigue" }, "+=", { "const": 80 } ] }, + { + "u_add_morale": "morale_off_drugs", + "bonus": -20, + "max_bonus": -60, + "duration": "36 hours", + "decay_start": "24 hours" + } + ] + }, + { + "type": "effect_on_condition", + "id": "afs_eoc_hangover_strength", + "effect": [ + { "u_add_effect": "post_strength_injection", "duration": "6 hours" }, + { "arithmetic": [ { "u_val": "fatigue" }, "+=", { "const": 80 } ] }, + { + "u_add_morale": "morale_off_drugs", + "bonus": -20, + "max_bonus": -60, + "duration": "36 hours", + "decay_start": "24 hours" + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/player/bionics.json b/data/Mainline_mods/Mods/Aftershock/player/bionics.json index 649eca334..66d2d3c69 100644 --- a/data/Mainline_mods/Mods/Aftershock/player/bionics.json +++ b/data/Mainline_mods/Mods/Aftershock/player/bionics.json @@ -32,6 +32,16 @@ "flags": [ "BIONIC_TOGGLED", "BIONIC_WEAPON", "NO_UNWIELD" ], "act_cost": "35 J" }, + { + "type": "bionic", + "id": "afs_bio_monowhip", + "name": { "str": "Monofilament Whip" }, + "description": "A carbon nanotube wire covertly installed in your right arm. When activated, it extends to its full length and can be used to strike enemies both at close and long range.", + "occupied_bodyparts": [ [ "arm_r", 4 ], [ "hand_r", 1 ] ], + "act_cost": "50 J", + "fake_weapon": "afs_bio_whip_weapon", + "flags": [ "BIONIC_TOGGLED", "BIONIC_WEAPON", "BIONIC_NPC_USABLE" ] + }, { "id": "afs_bio_linguistic_coprocessor", "type": "bionic", @@ -74,6 +84,105 @@ "react_cost": "12 kJ", "time": "1 s" }, + { + "id": "afs_bio_chemical_enhancement_rig", + "type": "bionic", + "name": { "str": "Chemical Enhancement Rig and computer" }, + "description": "An implanted AI module and medication dispenser calculates the optimal chemical mix to keep you on your toes and ready for combat. This bionic must be active to function and while it functions your body is at a heightened performance but if it turns off it will take you several days to get back to normal. There are a significant number of baseline bonuses granted by this setup but people around will notice your junkie behavior.", + "occupied_bodyparts": [ [ "head", 5 ], [ "torso", 10 ], [ "arm_l", 3 ], [ "arm_r", 3 ], [ "leg_l", 3 ], [ "leg_r", 3 ] ], + "flags": [ "BIONIC_TOGGLED" ], + "enchantments": [ "heightened_performance" ], + "included_bionics": [ "afs_speed_injection", "afs_healing_injection", "afs_strength_injection" ], + "deactivated_eocs": [ "afs_eoc_hangover_baseline" ], + "act_cost": "100 J", + "react_cost": "20 J", + "time": "1 m" + }, + { + "id": "afs_speed_injection", + "type": "bionic", + "name": { "str": "Speed Injection System" }, + "description": "The chemical injection system and microcomputer that when activated greatly enhances your reaction times and overall speed. Upon deactivation, the user may experience dizziness, heart palpitations and ravenous appetites.", + "flags": [ "BIONIC_TOGGLED" ], + "enchantments": [ + { + "condition": "ACTIVE", + "values": [ + { "value": "HUNGER", "multiply": 2 }, + { "value": "SPEED", "multiply": 1.75 }, + { "value": "MAX_STAMINA", "multiply": 1.35 }, + { "value": "THIRST", "multiply": 2.5 }, + { "value": "METABOLISM", "multiply": 2.5 }, + { "value": "REGEN_STAMINA", "multiply": 1.15 }, + { "value": "BONUS_DODGE", "add": 2 } + ] + } + ], + "deactivated_eocs": [ "afs_eoc_hangover_speed" ], + "act_cost": "100 J", + "react_cost": "20 J", + "time": "1 m" + }, + { + "id": "afs_healing_injection", + "type": "bionic", + "name": { "str": "Pain Suppression Injection System" }, + "description": "The chemical injection system and microcomputer that when activated gives a burst of chemicals that allows your blood to work a little harder at stabilizing the body and then flushes your system with a powerful anesthetic that allows you to continue operating at high capacity. Upon deactivation, the user may experience extreme lethargy, sudden loss of consciousness, among other symptoms that may prove potentially fatal if not in a safe location.", + "flags": [ "BIONIC_TOGGLED" ], + "//": "Pain enchantment doesn't work currently. Remove spell and this comment once it does.", + "enchantments": [ + { + "condition": "ACTIVE", + "values": [ + { "value": "ARMOR_BIO", "add": 7 }, + { "value": "ARMOR_COLD", "add": 5 }, + { "value": "PAIN_REMOVE", "add": 45 }, + { "value": "METABOLISM", "multiply": 1.5 }, + { "value": "REGEN_HP", "multiply": 2 } + ] + }, + { "condition": "ACTIVE", "ench_effects": [ { "effect": "pain_recovery", "intensity": 1 } ] } + ], + "deactivated_eocs": [ "afs_eoc_hangover_healing" ], + "act_cost": "100 J", + "react_cost": "20 J", + "time": "1 m" + }, + { + "id": "afs_strength_injection", + "type": "bionic", + "name": { "str": "Strength Injection System" }, + "description": "The chemical injection system and microcomputer that when activated greatly enhances your reaction times and overall speed. Upon deactivation, the user may experience dizziness, heart palpitations and ravenous appetites.", + "flags": [ "BIONIC_TOGGLED" ], + "enchantments": [ + { + "condition": "ACTIVE", + "values": [ + { "value": "STRENGTH", "add": 3 }, + { "value": "MAX_HP", "add": 17 }, + { "value": "BONUS_BLOCK", "add": 3 }, + { "value": "MAX_STAMINA", "multiply": 1.25 }, + { "value": "THIRST", "multiply": 2.5 }, + { "value": "METABOLISM", "multiply": 2.5 }, + { "value": "REGEN_STAMINA", "multiply": 1.05 }, + { "value": "FOOTSTEP_NOISE", "add": 4 } + ] + } + ], + "deactivated_eocs": [ "afs_eoc_hangover_strength" ], + "act_cost": "100 J", + "react_cost": "20 J", + "time": "1 m" + }, + { + "id": "bio_power_storage_salvaged", + "type": "bionic", + "name": { "str": "Power Storage, salvaged" }, + "capacity": "50 kJ", + "dupes_allowed": true, + "description": "A battered and used Compact Bionics Module that increases your power capacity by 50 kJ. Having at least one of these is a prerequisite to using powered bionics. You will also need a power supply, found in various CBMs.", + "flags": [ "BIONIC_NPC_USABLE" ] + }, { "id": "bio_forcefield_bash_cut_weak", "type": "bionic", @@ -192,18 +301,71 @@ "react_cost": "1 kJ", "time": "10 s" }, + { + "id": "afs_bio_blade_fire", + "type": "bionic", + "name": { "str": "Bioweapon Thermal Conduits" }, + "description": "An improved ulnar sheath equipped with thermal inductors allows for the super heating of all types of implanted bladed weaponry. While this bionic is active, any deployed bionic blades will deal additional fire damage to targets.", + "occupied_bodyparts": [ [ "arm_r", 7 ] ], + "encumbrance": [ [ "arm_r", 2 ] ], + "act_cost": "1500 J", + "react_cost": "250 J", + "activated_eocs": [ "eoc_bio_superheater_on" ], + "deactivated_eocs": [ "eoc_bio_superheater_off" ], + "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE" ], + "enchantments": [ + { + "name": { "str": "Super Heated Bionic Weapon" }, + "description": "The superheated bionic weapon cuts and burns with ease.", + "condition": { + "and": [ + { "u_has_var": "on", "type": "bio", "context": "superheater", "value": "yes" }, + { "u_has_wielded_with_flag": "BIONIC_WEAPON_MELEE" } + ] + }, + "values": [ { "value": "ITEM_DAMAGE_HEAT", "add": 35 } ] + } + ] + }, + { + "id": "afs_bio_blade_electric", + "type": "bionic", + "name": { "str": "Bioweapon Superconductive Channels" }, + "description": "Paired capacitor banks maintain implanted bladed weaponry under constant electrical charge. While this bionic is active, any deployed bionic blades will deal additional electric damage with a chance of the damage arcing to other nearby targets.", + "occupied_bodyparts": [ [ "arm_r", 7 ] ], + "encumbrance": [ [ "arm_r", 2 ] ], + "act_cost": "1500 J", + "react_cost": "1000 J", + "activated_eocs": [ "eoc_bio_blade_electric_on" ], + "deactivated_eocs": [ "eoc_bio_blade_electric_off" ], + "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE" ], + "enchantments": [ + { + "name": { "str": "Charged Bionic Weapon" }, + "description": "Your bionic weapon sparks under constant electrical charge.", + "condition": { + "and": [ + { "u_has_var": "on", "type": "bio", "context": "blade_electric", "value": "yes" }, + { "u_has_wielded_with_flag": "BIONIC_WEAPON_MELEE" } + ] + }, + "hit_you_effect": [ { "id": "bio_blade_electric_arc" } ], + "values": [ { "value": "ITEM_DAMAGE_ELEC", "add": 10 } ] + } + ] + }, { "type": "bionic", "id": "afs_bio_skullgun", "name": { "str": "Skullgun" }, - "description": "Concealed in your head is a single shot .40 pistol. Activate the bionic to fire and reload the skullgun.", + "description": "Concealed in your head is a single shot 10mm pistol. Activate the bionic to fire and reload the skullgun.", "occupied_bodyparts": [ [ "head", 5 ] ], "encumbrance": [ [ "head", 5 ] ], - "act_cost": "35 J", "fake_weapon": "bio_skullgun_gun", - "flags": [ "BIONIC_TOGGLED", "BIONIC_WEAPON", "NO_UNWIELD" ], + "flags": [ "BIONIC_GUN" ], "stat_bonus": [ [ "INT", -4 ], [ "PER", -2 ] ], - "canceled_mutations": [ "INT_UP", "INT_UP_2", "INT_UP_3", "INT_UP_4", "INT_ALPHA" ], - "spell_on_activation": { "id": "skullgun_snapback", "hit_self": true } + "canceled_mutations": [ "INT_UP", "INT_UP_2", "INT_UP_3", "INT_UP_4", "INT_ALPHA", "SKULLGUN_STUPID" ], + "give_mut_on_removal": [ "SKULLGUN_STUPID" ], + "activated_close_ui": true } ] diff --git a/data/Mainline_mods/Mods/Aftershock/player/professions.json b/data/Mainline_mods/Mods/Aftershock/player/professions.json index 3325785f9..11264d510 100644 --- a/data/Mainline_mods/Mods/Aftershock/player/professions.json +++ b/data/Mainline_mods/Mods/Aftershock/player/professions.json @@ -85,6 +85,30 @@ "female": [ "sports_bra", "boy_shorts" ] } }, + { + "type": "profession", + "id": "afs_speed_freak", + "name": "Speed Freak", + "description": "Were you a mercenary, a criminal, a pirate or a very dedicated adrenaline junkie? Whatever you were before, now you've got a speed freak rig pumping drugs into your veins 24/7. Statistically you'll die young, your body burned out by all the drugs, but what other chance did you have to become an immortal legend? None.", + "points": 3, + "CBMs": [ "afs_bio_chemical_enhancement_rig", "bio_adrenaline", "bio_metabolics", "bio_power_storage_mkII" ], + "skills": [ + { "level": 1, "name": "gun" }, + { "level": 1, "name": "cutting" }, + { "level": 1, "name": "melee" }, + { "level": 1, "name": "dodge" } + ], + "traits": [ "STR_UP_3", "UPLIFTED", "THRESH_URSINE", "URSINE_FUR", "CANNIBAL", "HUGE_OK" ], + "//": "replace esapu armor with an XL environmentally controlled armor once those exist", + "items": { + "both": { + "items": [ "boots_combat", "gloves_tactical", "wristwatch" ], + "entries": [ { "item": "sheath", "contents-item": "knife_hunting" }, { "item": "police_belt" } ] + }, + "male": [ "boxer_shorts" ], + "female": [ "sports_bra", "boxer_shorts" ] + } + }, { "type": "profession", "id": "afs_captain_bearman", @@ -186,7 +210,7 @@ "entries": [ { "item": "water_clean", "container-item": "camelbak" }, { "item": "crowbar", "custom-flags": [ "auto_wield" ] }, - { "item": "phase_immersion_suit", "ammo-item": "heavy_atomic_battery_cell", "charges": 10000 }, + { "item": "phase_immersion_suit" }, { "item": "dimensional_anchor", "ammo-item": "medium_atomic_battery_cell", "charges": 5000 } ] }, @@ -238,10 +262,17 @@ "skills": [ { "level": 6, "name": "speech" }, { "level": 6, "name": "computer" } ], "items": { "both": { - "items": [ "tux", "dress_shoes", "socks", "gold_watch", "undershirt", "gasdiscount_platinum" ], + "items": [ "tux", "dress_shoes", "socks", "gold_watch", "undershirt", "gasdiscount_platinum", "afs_10mm_smart_template" ], "entries": [ { "item": "cash_card", "charges": 200000000 }, { "item": "cash_card", "charges": 200000000 }, + { + "item": "afs_silvergram_pistol", + "ammo-item": "afs_10mm_smart", + "charges": 22, + "container-item": "holster" + }, + { "item": "afs_silvergram_22mag", "ammo-item": "afs_10mm_smart", "charges": 22 }, { "item": "afs_wraitheon_smartphone" } ] }, @@ -286,8 +317,8 @@ { "item": "kukri", "container-item": "sheath" }, { "item": "afs_cam_spy", "ammo-item": "light_minus_atomic_battery_cell", "charges": 500 }, { "item": "radiocontrol", "ammo-item": "light_atomic_battery_cell", "charges": 1000 }, - { "item": "afs_eidolon_derringer", "ammo-item": "5x50heavy", "charges": 4, "container-item": "holster" }, - { "item": "5x50heavy" } + { "item": "afs_eidolon_derringer", "ammo-item": "afs_5x50heavy", "charges": 4, "container-item": "holster" }, + { "item": "afs_5x50heavy" } ] } } @@ -374,7 +405,6 @@ "both": { "items": [ "winter_pants_army", - "army_top", "winter_jacket_army", "gloves_tactical", "rucksack", @@ -393,6 +423,7 @@ { "item": "medium_plus_battery_cell", "ammo-item": "battery", "charges": 600, "container-item": "mil_mess_kit" }, { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, { "item": "hat_boonie", "custom-flags": [ "no_auto_equip" ] }, + { "item": "tank_top", "variant": "tank_top_camo" }, { "item": "m2010", "ammo-item": "300_winmag", @@ -494,5 +525,12 @@ "male": [ "boxer_shorts" ], "female": [ "sports_bra", "panties" ] } + }, + { + "type": "profession", + "id": "afs_ship_escape", + "copy-from": "afs_rating", + "name": "Escaping Crew", + "description": "You awake in your cabin to the sound of emergency sirens and the ship's computer calmly announcing in a posh English voice 'Abandon the vessel immediately.', and then counting down from five minutes. You've got just enough time to hit a supply locker before you need to activate the escape pod down the hall." } ] diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/ammo_recipes.json b/data/Mainline_mods/Mods/Aftershock/recipes/ammo_recipes.json index e8eabc558..e22d1ed1d 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/ammo_recipes.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/ammo_recipes.json @@ -47,5 +47,54 @@ "qualities": [ { "id": "CHEM", "level": 1 }, { "id": "NANO_FORGE", "level": 1 }, { "id": "HAMMER_FINE", "level": 1 } ], "using": [ [ "nanosmithing_standard", 5 ] ], "components": [ [ [ "afs_material_2", 4 ] ], [ [ "afs_material_3", 3 ] ] ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "rebar_rail", + "category": "CC_AMMO", + "subcategory": "CSC_AMMO_OTHER", + "skill_used": "fabrication", + "difficulty": 1, + "time": "120 m", + "autolearn": true, + "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ [ [ "rebar", 2 ] ] ] + }, + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "steel_rail", + "category": "CC_AMMO", + "subcategory": "CSC_AMMO_OTHER", + "skill_used": "fabrication", + "difficulty": 2, + "time": "100 m", + "autolearn": true, + "using": [ [ "blacksmithing_standard", 16 ], [ "steel_standard", 4 ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "afs_reloaded_5x50dart", + "category": "CC_AMMO", + "subcategory": "CSC_AMMO_RIFLE", + "skill_used": "fabrication", + "difficulty": 6, + "skills_required": [ "gun", 5 ], + "time": "2 m", + "batch_time_factors": [ 60, 5 ], + "book_learn": [ [ "recipe_caseless", 4 ] ], + "charges": 1, + "reversible": true, + "proficiencies": [ { "proficiency": "prof_plasticworking" }, { "proficiency": "prof_handloading" } ], + "using": [ [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ], + "//": "3000 mg gunpowder rounded to 30 100 mg 'pieces'", + "components": [ + [ [ "afs_5x50_hull", 1 ] ], + [ [ "smrifle_primer", 1 ] ], + [ [ "gunpowder", 30 ], [ "gunpowder_magnum_pistol", 30 ] ], + [ [ "combatnail", 1 ] ] + ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/armor_recipes.json b/data/Mainline_mods/Mods/Aftershock/recipes/armor_recipes.json index c2e2b44db..88dba67f3 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/armor_recipes.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/armor_recipes.json @@ -2,7 +2,7 @@ { "result": "afs_titanium_vest", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_ARMOR", "subcategory": "CSC_ARMOR_TORSO", "skill_used": "tailor", @@ -16,7 +16,7 @@ { "result": "afs_recall_rig", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_ARMOR", "subcategory": "CSC_ARMOR_OTHER", "skill_used": "electronics", diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/basecamps/recipe_overwrites.json b/data/Mainline_mods/Mods/Aftershock/recipes/basecamps/recipe_overwrites.json index 7035e1b63..e3f34c7aa 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/basecamps/recipe_overwrites.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/basecamps/recipe_overwrites.json @@ -44,141 +44,5 @@ "blueprint_requires": [ { "id": "fbmc_shelter_1_fire" } ], "blueprint_provides": [ { "id": "fbmc_shelter_1_craftspot" }, { "id": "tool_storage" } ], "blueprint_excludes": [ { "id": "fbmc_shelter_1_craftspot" } ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_modular_workshop_room6_rock_north", - "description": "Let's expand our production by adding a rock walled pottery kiln area.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "fbmw_room6_rock_north", - "blueprint_name": "north pottery wall", - "blueprint_requires": [ { "id": "fbmw_center" } ], - "blueprint_provides": [ { "id": "fbmw_north" }, { "id": "blacksmith_recipes_4" } ], - "blueprint_excludes": [ { "id": "fbmw_north", "amount": 2 } ], - "blueprint_resources": [ "tongs", "chisel", "hammer", "swage" ], - "components": [ [ [ "tongs", 1 ] ], [ [ "chisel", 1 ] ], [ [ "hammer", 1 ] ], [ [ "swage", 1 ] ] ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_modular_workshop_room2_common_northeast", - "description": "Let's install an anvil, some quenching containers and a workbench.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "fbmw_room2_common_northeast", - "blueprint_name": "anvil and workbench", - "blueprint_requires": [ { "id": "fbmw_northeast", "amount": 2 } ], - "blueprint_provides": [ { "id": "fbmw_northeast" }, { "id": "blacksmith_recipes_2" } ], - "blueprint_excludes": [ { "id": "fbmw_northeast", "amount": 3 } ], - "blueprint_resources": [ "anvil" ], - "components": [ [ [ "anvil", 1 ] ], [ [ "55gal_drum", 1 ] ], [ [ "30gal_drum", 1 ] ] ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_modular_workshop_room6_log_north", - "description": "Let's expand our production by adding a log walled pottery kiln area.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "fbmw_room6_log_north", - "blueprint_name": "north pottery wall", - "blueprint_requires": [ { "id": "fbmw_center" } ], - "blueprint_provides": [ { "id": "fbmw_north" }, { "id": "blacksmith_recipes_4" } ], - "blueprint_excludes": [ { "id": "fbmw_north", "amount": 2 } ], - "blueprint_resources": [ "tongs", "chisel", "hammer", "swage" ], - "components": [ [ [ "tongs", 1 ] ], [ [ "chisel", 1 ] ], [ [ "hammer", 1 ] ], [ [ "swage", 1 ] ] ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_modular_workshop_room6_migo_resin_north", - "description": "Let's expand our production by adding a mi-go resin walled pottery kiln area.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "fbmw_room6_migo_resin_north", - "blueprint_name": "north pottery wall", - "blueprint_requires": [ { "id": "fbmw_center" } ], - "blueprint_provides": [ { "id": "fbmw_north" }, { "id": "blacksmith_recipes_4" } ], - "blueprint_excludes": [ { "id": "fbmw_north", "amount": 2 } ], - "blueprint_resources": [ "tongs", "chisel", "hammer", "swage" ], - "components": [ [ [ "tongs", 1 ] ], [ [ "chisel", 1 ] ], [ [ "hammer", 1 ] ], [ [ "swage", 1 ] ] ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_modular_workshop_room6_rammed_earth_north", - "description": "Let's expand our production by adding a rammed earth walled pottery kiln area.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "fbmw_room6_rammed_earth_north", - "blueprint_name": "north pottery wall", - "blueprint_requires": [ { "id": "fbmw_center" } ], - "blueprint_provides": [ { "id": "fbmw_north" }, { "id": "blacksmith_recipes_4" } ], - "blueprint_excludes": [ { "id": "fbmw_north", "amount": 2 } ], - "blueprint_resources": [ "tongs", "chisel", "hammer", "swage" ], - "components": [ [ [ "tongs", 1 ] ], [ [ "chisel", 1 ] ], [ [ "hammer", 1 ] ], [ [ "swage", 1 ] ] ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_modular_workshop_room6_wad_north", - "description": "Let's expand our production by adding a wattle and daub walled pottery kiln area.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "fbmw_room6_wad_north", - "blueprint_name": "north pottery wall", - "blueprint_requires": [ { "id": "fbmw_center" } ], - "blueprint_provides": [ { "id": "fbmw_north" }, { "id": "blacksmith_recipes_4" } ], - "blueprint_excludes": [ { "id": "fbmw_north", "amount": 2 } ], - "blueprint_resources": [ "tongs", "chisel", "hammer", "swage" ], - "components": [ [ [ "tongs", 1 ] ], [ [ "chisel", 1 ] ], [ [ "hammer", 1 ] ], [ [ "swage", 1 ] ] ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_modular_workshop_room6_wad_north", - "description": "Let's expand our production by adding a wattle and daub walled pottery kiln area.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "fbmw_room6_wad_north", - "blueprint_name": "north pottery wall", - "blueprint_requires": [ { "id": "fbmw_center" } ], - "blueprint_provides": [ { "id": "fbmw_north" }, { "id": "blacksmith_recipes_4" } ], - "blueprint_excludes": [ { "id": "fbmw_north", "amount": 2 } ], - "blueprint_resources": [ "tongs", "chisel", "hammer", "swage" ], - "components": [ [ [ "tongs", 1 ] ], [ [ "chisel", 1 ] ], [ [ "hammer", 1 ] ], [ [ "swage", 1 ] ] ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_modular_workshop_room6_wood_north", - "description": "Let's expand our production by adding a pottery kiln area.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "fbmw_room6_wood_north", - "blueprint_name": "north pottery wall", - "blueprint_requires": [ { "id": "fbmw_center" } ], - "blueprint_provides": [ { "id": "fbmw_north" }, { "id": "blacksmith_recipes_4" } ], - "blueprint_excludes": [ { "id": "fbmw_north", "amount": 2 } ], - "blueprint_resources": [ "tongs", "chisel", "hammer", "swage" ], - "components": [ [ [ "tongs", 1 ] ], [ [ "chisel", 1 ] ], [ [ "hammer", 1 ] ], [ [ "swage", 1 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/bionic_recipes.json b/data/Mainline_mods/Mods/Aftershock/recipes/bionic_recipes.json index 590a57f7f..eb7367d4e 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/bionic_recipes.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/bionic_recipes.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_power_storage", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -23,7 +23,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_power_storage_mkII", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -45,7 +45,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bn_bio_solar", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -68,7 +68,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_batteries", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -90,7 +90,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_ups", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -111,7 +111,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_evap", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -134,7 +134,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_flashlight", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -156,7 +156,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_water_extractor", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -179,7 +179,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_climate", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -202,7 +202,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_emp_armgun", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -227,7 +227,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_syringe", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -250,7 +250,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_cold_absorber", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -274,7 +274,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_weight", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -299,7 +299,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "bio_sunglasses", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -322,7 +322,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "afs_bio_missiles", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -345,7 +345,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "bio_armor_head", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -373,7 +373,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "bio_armor_arms", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -400,7 +400,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "bio_armor_torso", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", @@ -427,7 +427,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "bio_armor_legs", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/comestible_recipes.json b/data/Mainline_mods/Mods/Aftershock/recipes/comestible_recipes.json index a73c74a2c..c9995b3c8 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/comestible_recipes.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/comestible_recipes.json @@ -1,9 +1,8 @@ [ { "type": "recipe", - "activity_level": "fake", - "result": "butter", - "result_mult": 1, + "activity_level": "NO_EXERCISE", + "result": "atomic_butter", "category": "CC_FOOD", "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", @@ -11,11 +10,12 @@ "time": "15 m", "qualities": [ { "id": "CHURN", "level": 2 } ], "autolearn": true, - "components": [ [ [ "milk_raw", 45 ] ], [ [ "salt", 15 ] ] ] + "components": [ [ [ "milk_raw", 45 ] ], [ [ "salt", 15 ] ] ], + "charges": 32 }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "afs_calorie_water", "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREAD", @@ -27,7 +27,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "cream_prot_cold", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", @@ -46,7 +46,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "cream_greater_prot_cold", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", @@ -75,8 +75,9 @@ "batch_time_factors": [ 99, 1 ], "book_learn": [ [ "recipe_lichenlog", 2 ] ], "qualities": [ { "id": "CONTAIN", "level": 1 } ], - "tools": [ [ [ "surface_heat", 60, "LIST" ] ], [ [ "pressure_cooker", -1 ] ] ], - "components": [ [ [ "yum_lichen", 4 ] ] ] + "tools": [ [ [ "surface_heat", 60, "LIST" ] ], [ [ "pressure_cooker", -1 ], [ "makeshift_pressure_cooker", -1 ] ] ], + "components": [ [ [ "yum_lichen", 4 ] ] ], + "charges": 3 }, { "type": "recipe", diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction.json b/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction.json index b7ca56af7..b38c83982 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction.json @@ -2,7 +2,7 @@ { "result": "broken_afs_mon_migoturret", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "survival", "difficulty": 5, "time": "1 h", @@ -23,7 +23,7 @@ { "result": "broken_tankbot", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "electronics", "difficulty": 8, "time": "10 h", @@ -41,7 +41,7 @@ [ [ "gun_module", 3 ] ], [ [ "flamethrower", 1 ] ], [ [ "tazer", 1 ] ], - [ [ "m4a1", 1 ] ], + [ [ "modular_m4_carbine", 1 ] ], [ [ "power_supply", 20 ] ], [ [ "storage_battery", 1 ] ], [ [ "plut_cell", 4 ] ], @@ -51,7 +51,7 @@ { "result": "broken_chickenbot", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "electronics", "difficulty": 8, "time": "10 h", @@ -76,7 +76,7 @@ { "result": "broken_tripod", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "electronics", "difficulty": 8, "time": "5 h", @@ -101,7 +101,7 @@ { "result": "broken_afs_mon_sentinel_lx", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "electronics", "difficulty": 6, "time": "2 h", @@ -126,7 +126,7 @@ { "result": "broken_wraitheon_irradiant", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "electronics", "difficulty": 8, "time": "5 h", @@ -155,7 +155,7 @@ { "result": "broken_wraitheon_isohypsa", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "electronics", "difficulty": 8, "time": "5 h", @@ -181,7 +181,7 @@ { "result": "broken_wraitheon_kaburaya", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "electronics", "difficulty": 4, "time": "10 m", @@ -197,7 +197,7 @@ { "result": "broken_bloodhound_drone", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "electronics", "difficulty": 4, "time": "2 m", @@ -229,7 +229,7 @@ "//": "TODO: use copy-from inheritance for solarpack uncrafts -- it is currently not working properly #24702", "result": "q_solarpack", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "electronics", "difficulty": 10, "skills_required": [ [ "fabrication", 2 ], [ "mechanics", 2 ] ], @@ -252,7 +252,7 @@ "//": "TODO: use copy-from inheritance for solarpack uncrafts -- it is currently not working properly #24702", "result": "q_solarpack_on", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "electronics", "difficulty": 10, "skills_required": [ [ "fabrication", 2 ], [ "mechanics", 2 ] ], diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction/bionic_deconstruction.json b/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction/bionic_deconstruction.json index 6bd7b0dc9..7ac2f9fae 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction/bionic_deconstruction.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction/bionic_deconstruction.json @@ -2,7 +2,7 @@ { "result": "burnt_out_bionic", "type": "uncraft", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "skill_used": "electronics", "difficulty": 7, "time": "10 m", diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction/robot.json b/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction/robot.json index f9b3074c0..92ee60796 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction/robot.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/deconstruction/robot.json @@ -20,5 +20,75 @@ [ [ "robot_controls", 1 ] ], [ [ "turret_chassis", 1 ] ] ] + }, + { + "result": "broken_eyebot", + "type": "uncraft", + "activity_level": "LIGHT_EXERCISE", + "skill_used": "electronics", + "difficulty": 2, + "time": "30 m", + "using": [ [ "soldering_standard", 3 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ + [ [ "ai_module", 1 ] ], + [ [ "identification_module", 1 ] ], + [ [ "pathfinding_module", 1 ] ], + [ [ "sensor_module", 1 ] ], + [ [ "small_storage_battery", 1 ] ], + [ [ "RAM", 1 ] ], + [ [ "processor", 1 ] ], + [ [ "scrap", 1 ] ], + [ [ "e_scrap", 1 ] ], + [ [ "quad_rotors", 1 ] ], + [ [ "lens", 1 ] ] + ] + }, + { + "result": "broken_copbot", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "electronics", + "difficulty": 6, + "time": "2 h", + "//": "These robot corpses should really be moved into the butcher mechanic", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "ai_module", 1 ] ], + [ [ "sensor_module", 1 ] ], + [ [ "memory_module", 1 ] ], + [ [ "pathfinding_module", 1 ] ], + [ [ "identification_module", 1 ] ], + [ [ "omni_wheel", 1 ] ], + [ [ "copbot_chassis", 1 ] ], + [ [ "android_arms", 1 ] ], + [ [ "power_supply", 4 ] ], + [ [ "solar_cell", 2 ] ], + [ [ "tazer", 1 ] ] + ] + }, + { + "result": "broken_riotbot", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "electronics", + "difficulty": 6, + "time": "2 h", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 5 ] ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "ai_module", 1 ] ], + [ [ "sensor_module", 1 ] ], + [ [ "memory_module", 1 ] ], + [ [ "pathfinding_module", 1 ] ], + [ [ "identification_module", 1 ] ], + [ [ "omni_wheel", 1 ] ], + [ [ "copbot_chassis", 1 ] ], + [ [ "android_arms", 1 ] ], + [ [ "power_supply", 4 ] ], + [ [ "solar_cell", 2 ] ], + [ [ "canister_empty", 1 ] ] + ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/frankenstein_recipes.json b/data/Mainline_mods/Mods/Aftershock/recipes/frankenstein_recipes.json index 7407fd4e0..3dce6d222 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/frankenstein_recipes.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/frankenstein_recipes.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "inactive_frankenstein", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_CBMS", diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/grenades.json b/data/Mainline_mods/Mods/Aftershock/recipes/grenades.json index fc6ca772b..d9e8d9f05 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/grenades.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/grenades.json @@ -2,7 +2,7 @@ { "result": "afs_electroshock_grenade_1", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_EXPLOSIVE", "skill_used": "electronics", @@ -16,7 +16,7 @@ { "result": "grenade_cryo", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_EXPLOSIVE", "skill_used": "electronics", @@ -26,5 +26,23 @@ "qualities": [ { "id": "DIAMONDPRESS", "level": 1 } ], "using": [ [ "soldering_standard", 10 ] ], "components": [ [ [ "afs_energy_storage_3", 1 ] ], [ [ "afs_material_1", 3 ] ], [ [ "afs_energy_storage_2", 2 ] ] ] + }, + { + "result": "afs_oxygen_bomb", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_EXPLOSIVE", + "skill_used": "chemistry", + "difficulty": 4, + "skills_required": [ "fabrication", 2 ], + "autolearn": true, + "time": "10 m", + "qualities": [ { "id": "SCREW_FINE", "level": 1 }, { "id": "HAMMER", "level": 1 } ], + "components": [ + [ [ "afs_oxygen_candle", 1 ] ], + [ [ "duct_tape", 10 ], [ "medical_tape", 20 ] ], + [ [ "afs_heat_2", 1 ], [ "motor_oil", 1 ] ] + ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/gun_recipes.json b/data/Mainline_mods/Mods/Aftershock/recipes/gun_recipes.json index 98da2ffff..c66f0ee94 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/gun_recipes.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/gun_recipes.json @@ -2,7 +2,7 @@ { "result": "afs_plasma_torch_gun", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", "skill_used": "electronics", diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/mutagens.json b/data/Mainline_mods/Mods/Aftershock/recipes/mutagens.json index 26795ee2d..876ff5998 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/mutagens.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/mutagens.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "mutagen_mastodon", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", @@ -16,7 +16,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "iv_mutagen_mastodon", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", @@ -36,7 +36,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "mutagen_migo", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", @@ -51,7 +51,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "iv_mutagen_migo", "category": "CC_CHEM", "subcategory": "CSC_CHEM_MUTAGEN", diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/recipe_overrides.json b/data/Mainline_mods/Mods/Aftershock/recipes/recipe_overrides.json index 0f81c8b83..d0d708539 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/recipe_overrides.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/recipe_overrides.json @@ -177,7 +177,8 @@ [ [ "salt", 1 ] ], [ [ "seasoning_mild", 4, "LIST" ] ], [ [ "fry_oil", 4, "LIST" ] ] - ] + ], + "charges": 3 }, { "type": "recipe", diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/recipes.json b/data/Mainline_mods/Mods/Aftershock/recipes/recipes.json index 921b42253..dc383da2e 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/recipes.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/recipes.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "light_battery_cell", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_COMPONENTS", @@ -20,7 +20,7 @@ { "result": "mininuke", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_EXPLOSIVE", "skill_used": "mechanics", @@ -44,7 +44,7 @@ { "result": "plut_cell", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_COMPONENTS", "skill_used": "mechanics", @@ -59,7 +59,7 @@ "result": "light_battery_cell", "id_suffix": "afs_plutonium_battery", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_COMPONENTS", "skill_used": "electronics", @@ -75,7 +75,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "afs_murdersaw", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_CUTTING", @@ -90,7 +90,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "thermometer", "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", @@ -111,7 +111,7 @@ { "result": "afs_titanium_frame", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_PARTS", "skill_used": "fabrication", @@ -139,7 +139,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "afs_atomic_smartphone", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_TOOLS", @@ -154,7 +154,7 @@ { "result": "laser_rifle_cheap", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", "skill_used": "electronics", @@ -176,7 +176,7 @@ { "result": "plut_cell", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_COMPONENTS", "skill_used": "electronics", @@ -197,7 +197,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "bot_tankbot", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_OTHER", @@ -227,7 +227,7 @@ [ [ "gun_module", 3 ] ], [ [ "flamethrower", 1 ] ], [ [ "tazer", 1 ] ], - [ [ "m4a1", 1 ] ], + [ [ "modular_m4_carbine", 1 ] ], [ [ "power_supply", 20 ] ], [ [ "storage_battery", 1 ] ], [ [ "plut_cell", 4 ] ], @@ -236,7 +236,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "bot_tripod", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_OTHER", @@ -271,7 +271,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "bot_chickenbot", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_OTHER", @@ -311,7 +311,7 @@ { "result": "afs_scrap_titanium", "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", @@ -327,7 +327,7 @@ { "result": "afs_material_1", "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", @@ -342,7 +342,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "control_laptop", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_TOOLS", @@ -358,7 +358,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "result": "afs_rebar_rifle", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/requirements.json b/data/Mainline_mods/Mods/Aftershock/recipes/requirements.json index d0d0df9bd..7d4286b0c 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/requirements.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/requirements.json @@ -2,33 +2,15 @@ { "id": "surface_heat", "type": "requirement", - "tools": [ - [ - [ "hotplate", 1 ], - [ "multi_cooker", 1 ], - [ "char_smoker", 1 ], - [ "toolset", 1 ], - [ "afs_atompot", -1 ], - [ "fire", -1 ] - ] - ] + "//copy-from": "surface_heat", + "extend": { "tools": [ [ [ "afs_atompot", -1 ] ] ] } }, { "id": "water_boiling_heat", "type": "requirement", "//": "Tools usable for providing heat usable for boiling water, but not necessarily for anything else.", - "tools": [ - [ - [ "hotplate", 1 ], - [ "multi_cooker", 1 ], - [ "char_smoker", 1 ], - [ "toolset", 1 ], - [ "coffeemaker", 1 ], - [ "atomic_coffeepot", -1 ], - [ "afs_atompot", -1 ], - [ "fire", -1 ] - ] - ] + "//copy-from": "water_boiling_heat", + "extend": { "tools": [ [ [ "afs_atompot", -1 ], [ "atomic_coffeepot", -1 ] ] ] } }, { "id": "electric_probing", @@ -50,5 +32,10 @@ [ "afs_plasma_torch", 1 ] ] ] + }, + { + "id": "afs_nanofab_material_3", + "type": "requirement", + "components": [ [ [ "afs_material_3", 2 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/robot_recipes.json b/data/Mainline_mods/Mods/Aftershock/recipes/robot_recipes.json index 0116c6a37..242159771 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/robot_recipes.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/robot_recipes.json @@ -78,5 +78,109 @@ [ [ "afs_material_1", 8 ] ], [ [ "robot_controls", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "bot_eyebot", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_OTHER", + "skill_used": "electronics", + "skills_required": [ [ "mechanics", 4 ], [ "computer", 4 ] ], + "reversible": true, + "decomp_learn": 5, + "book_learn": [ [ "schematics_eyebot", 7 ] ], + "difficulty": 4, + "time": "30 m", + "//": "50cm weld", + "using": [ [ "soldering_standard", 3 ], [ "welding_standard", 50 ] ], + "qualities": [ + { "id": "SCREW", "level": 1 }, + { "id": "SCREW_FINE", "level": 1 }, + { "id": "WRENCH", "level": 2 }, + { "id": "WRENCH_FINE", "level": 1 } + ], + "components": [ + [ [ "ai_module", 1 ] ], + [ [ "identification_module", 1 ] ], + [ [ "pathfinding_module", 1 ] ], + [ [ "sensor_module", 1 ] ], + [ [ "small_storage_battery", 1 ] ], + [ [ "RAM", 1 ] ], + [ [ "processor", 1 ] ], + [ [ "scrap", 1 ] ], + [ [ "quad_rotors", 1 ] ], + [ [ "lens", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "bot_copbot", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_OTHER", + "skill_used": "electronics", + "skills_required": [ [ "mechanics", 5 ], [ "computer", 6 ] ], + "reversible": true, + "decomp_learn": 8, + "book_learn": [ [ "schematics_copbot", 7 ] ], + "difficulty": 6, + "time": "130 m", + "//": "200cm weld", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 200 ] ], + "qualities": [ + { "id": "SCREW", "level": 1 }, + { "id": "SCREW_FINE", "level": 1 }, + { "id": "WRENCH", "level": 2 }, + { "id": "WRENCH_FINE", "level": 1 } + ], + "components": [ + [ [ "ai_module", 1 ] ], + [ [ "sensor_module", 1 ] ], + [ [ "memory_module", 1 ] ], + [ [ "pathfinding_module", 1 ] ], + [ [ "identification_module", 1 ] ], + [ [ "omni_wheel", 1 ] ], + [ [ "copbot_chassis", 1 ] ], + [ [ "android_arms", 1 ] ], + [ [ "power_supply", 4 ] ], + [ [ "solar_cell", 2 ] ], + [ [ "tazer", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "bot_riotbot", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_OTHER", + "skill_used": "electronics", + "skills_required": [ [ "mechanics", 7 ], [ "computer", 6 ] ], + "reversible": true, + "decomp_learn": 8, + "book_learn": [ [ "schematics_riotbot", 7 ] ], + "difficulty": 6, + "time": "140 m", + "//": "200cm weld", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 200 ] ], + "qualities": [ + { "id": "SCREW", "level": 1 }, + { "id": "SCREW_FINE", "level": 1 }, + { "id": "WRENCH", "level": 2 }, + { "id": "WRENCH_FINE", "level": 1 } + ], + "components": [ + [ [ "ai_module", 1 ] ], + [ [ "sensor_module", 1 ] ], + [ [ "memory_module", 1 ] ], + [ [ "pathfinding_module", 1 ] ], + [ [ "identification_module", 1 ] ], + [ [ "omni_wheel", 1 ] ], + [ [ "copbot_chassis", 1 ] ], + [ [ "android_arms", 1 ] ], + [ [ "power_supply", 4 ] ], + [ [ "solar_cell", 2 ] ], + [ [ "canister_empty", 1 ] ] + ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/recipes/uncraft.json b/data/Mainline_mods/Mods/Aftershock/recipes/uncraft.json index 4cf1ae741..55fc8c7c6 100644 --- a/data/Mainline_mods/Mods/Aftershock/recipes/uncraft.json +++ b/data/Mainline_mods/Mods/Aftershock/recipes/uncraft.json @@ -3,7 +3,7 @@ "result": "golf_club", "//": "Google tells me that golf clubs often have titanium heads, so that's a source of it.", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "fabrication", "difficulty": 2, "time": "30 m", @@ -13,7 +13,7 @@ { "result": "afs_atomic_smartphone", "type": "uncraft", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "time": "5 s", "qualities": [ { "id": "SCREW", "level": 1 } ], "components": [ @@ -21,14 +21,13 @@ [ [ "small_lcd_screen", 1 ] ], [ [ "RAM", 1 ] ], [ [ "processor", 1 ] ], - [ [ "lens_small", 1 ] ], [ [ "plut_cell", 1 ] ] ] }, { "result": "afs_titanium_frame", "type": "uncraft", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "skill_used": "fabrication", "difficulty": 4, "time": "1 h", @@ -39,7 +38,7 @@ { "result": "afs_titanium_tooth", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "time": "30 s", "qualities": [ { "id": "HAMMER", "level": 1 } ], "components": [ [ [ "afs_titanium_small", 1 ] ] ] @@ -47,7 +46,7 @@ { "result": "afs_titanium_watch", "type": "uncraft", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "time": "36 s", "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SCREW", "level": 1 } ], "components": [ [ [ "afs_titanium_small", 20 ] ], [ [ "clockworks", 1 ] ] ] @@ -55,7 +54,7 @@ { "result": "afs_titanium_ring", "type": "uncraft", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "time": "30 s", "qualities": [ { "id": "HAMMER", "level": 1 } ], "components": [ [ [ "afs_titanium_small", 2 ] ] ] @@ -63,7 +62,7 @@ { "result": "afs_titanium_implant", "type": "uncraft", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "time": "10 m", "qualities": [ { "id": "HAMMER", "level": 1 } ], "components": [ [ [ "afs_scrap_titanium", 5 ] ] ] @@ -71,7 +70,7 @@ { "result": "afs_titanium_bat", "type": "uncraft", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "skill_used": "mechanics", "difficulty": 3, "time": "30 m", @@ -82,7 +81,7 @@ { "result": "afs_energy_saber_off", "type": "uncraft", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "time": "1 h", "qualities": [ { "id": "SCREW_FINE", "level": 1 } ], "components": [ @@ -96,7 +95,7 @@ { "result": "afs_plasma_torch", "type": "uncraft", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "time": "1 h", "qualities": [ { "id": "SCREW_FINE", "level": 1 } ], "components": [ @@ -112,7 +111,7 @@ { "result": "afs_plasma_torch_gun", "type": "uncraft", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "time": "1 h", "qualities": [ { "id": "SCREW_FINE", "level": 1 } ], "components": [ @@ -128,7 +127,7 @@ { "result": "azabow_off", "type": "uncraft", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "time": "2 h", "qualities": [ { "id": "SCREW_FINE", "level": 1 }, { "id": "SAW_M", "level": 1 } ], "components": [ @@ -141,7 +140,7 @@ { "result": "aza_sword", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "time": "5 s", "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SAW_M", "level": 1 } ], "components": [ [ [ "afs_material_2", 6 ] ], [ [ "afs_material_3", 4 ] ], [ [ "afs_material_1", 8 ] ] ] @@ -467,5 +466,36 @@ [ [ "pathfinding_module", 1 ] ], [ [ "identification_module", 1 ] ] ] + }, + { + "result": "afs_5x50dart", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "gun", + "difficulty": 5, + "time": "5 s", + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "combatnail", 1 ] ], [ [ "5x50_hull", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder_rifle", 30 ] ] ] + }, + { + "result": "afs_5x50heavy", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "gun", + "difficulty": 5, + "time": "5 s", + "qualities": [ { "id": "PULL", "level": 1 } ], + "components": [ [ [ "lead", 3 ] ], [ [ "5x50_hull", 1 ] ], [ [ "smrifle_primer", 1 ] ], [ [ "gunpowder_rifle", 30 ] ] ] + }, + { + "result": "reverse_jointed_legs", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "mechanics", + "difficulty": 4, + "time": "6 h 40 m", + "using": [ [ "soldering_standard", 5 ] ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ [ [ "motor_tiny", 6 ] ], [ [ "power_supply", 6 ] ], [ [ "cable", 12 ] ], [ [ "steel_chunk", 6 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/region_settings.json b/data/Mainline_mods/Mods/Aftershock/region_settings.json index 35f0570f4..87ff813eb 100644 --- a/data/Mainline_mods/Mods/Aftershock/region_settings.json +++ b/data/Mainline_mods/Mods/Aftershock/region_settings.json @@ -7,12 +7,13 @@ "shop_sigma": 300, "shops": { "afs_augmentation_clinic_1": 400, - "city_block_2": 700, - "urban_35_hospital": 875, - "office_tower_large": 800, - "office_tower_hiddenlab": 800, - "afs_astrobiology_lab": 300, - "mall": 700 + "city_block_2": 300, + "urban_35_hospital": 175, + "office_skyscraper": 300, + "office_tower_large": 300, + "office_tower_hiddenlab": 200, + "afs_astrobiology_lab": 200, + "mall": 100 }, "houses": { "afs_city_ruinfield": 200, "afs_formless_ruins_dynamic": 300, "afs_house_1": 100 } }, @@ -24,7 +25,8 @@ "mx_military": 50, "mx_science": 400, "mx_collegekids": 500, - "mx_roadblock": 1000, + "mx_roadblock": 830, + "mx_roadblock_mil": 170, "mx_bandits_block": 800, "mx_drugdeal": 300, "mx_supplydrop": 100, diff --git a/data/Mainline_mods/Mods/Aftershock/requirements.json b/data/Mainline_mods/Mods/Aftershock/requirements.json index e4e97d079..a73d97321 100644 --- a/data/Mainline_mods/Mods/Aftershock/requirements.json +++ b/data/Mainline_mods/Mods/Aftershock/requirements.json @@ -36,6 +36,18 @@ "//": "Lard that is 'safe' for consumption.", "extend": { "components": [ [ [ "frost_human_lard", 1 ], [ "alien_lard", 1 ] ] ] } }, + { + "id": "any_butter", + "type": "requirement", + "//": "Butter of all types and other future butter substitutes", + "extend": { "components": [ [ [ "atomic_butter", 1 ] ] ] } + }, + { + "id": "any_butter_or_oil", + "type": "requirement", + "//": "For when a recipe calls for either cooking oil or butter, like many baking recipes do.", + "extend": { "components": [ [ [ "atomic_butter", 1 ] ] ] } + }, { "id": "meat_offal", "type": "requirement", @@ -46,7 +58,7 @@ "id": "meat_raw_steak", "type": "requirement", "//": "An unbroken slab of raw meat. For when scraps just aren't good enough.", - "extend": { "components": [ [ [ "frost_human_flesh", 1 ], [ "alien_flesh", 1 ] ] ] } + "extend": { "components": [ [ [ "frost_human_flesh", 1 ], [ "afs_synthetic_meat", 1 ], [ "alien_flesh", 1 ] ] ] } }, { "id": "meat_red_raw", @@ -76,28 +88,15 @@ "id": "meat_nofish", "type": "requirement", "//": "Any type of raw meat except for fish. About 300-400kcal of meat.", - "extend": { - "components": [ - [ - [ "alien_liver", 5 ], - [ "alien_kidney", 5 ], - [ "alien_sweetbread", 5 ], - [ "bacon", 4 ], - [ "bologna", 5 ], - [ "meat_pickled", 1 ], - [ "dry_meat", 1 ], - [ "jerky", 1 ], - [ "meat_smoked", 1 ], - [ "meat_salted", 1 ] - ] - ] - } + "extend": { "components": [ [ [ "afs_mealgrubs", 1 ], [ "alien_liver", 5 ], [ "alien_kidney", 5 ], [ "alien_sweetbread", 5 ] ] ] } }, { "id": "meat_cooked", "type": "requirement", "//": "meat you'd put on a sandwich", - "extend": { "components": [ [ [ "alien_flesh_cooked", 1 ], [ "alien_meat_scrap_cooked", 10 ], [ "frost_human_cooked", 1 ] ] ] } + "extend": { + "components": [ [ [ "alien_flesh_cooked", 1 ], [ "alien_meat_scrap_cooked", 10 ], [ "frost_human_cooked", 1 ], [ "afs_jerky", 1 ] ] ] + } }, { "id": "human_meat", @@ -110,5 +109,17 @@ "type": "requirement", "//": "Cooked meat that non-cannibals would be unhappy eating.", "extend": { "components": [ [ [ "frost_human_cooked", 1 ] ] ] } + }, + { + "id": "veggy_any_fresh_uncooked", + "type": "requirement", + "//": "Any type of edible raw fat.", + "extend": { "components": [ [ [ "afs_kelp", 1 ] ] ] } + }, + { + "id": "veggy_green", + "type": "requirement", + "//": "Any type of edible raw fat.", + "extend": { "components": [ [ [ "afs_kelp", 1 ] ] ] } } ] diff --git a/data/Mainline_mods/Mods/Aftershock/scenarios.json b/data/Mainline_mods/Mods/Aftershock/scenarios.json index b01ec2871..e2faab1be 100644 --- a/data/Mainline_mods/Mods/Aftershock/scenarios.json +++ b/data/Mainline_mods/Mods/Aftershock/scenarios.json @@ -168,5 +168,16 @@ "description": "You've already been modified mutagenically but now you were all ready for a bionic implant or three - the bill footed by the corp., of course - when everything went pear-shaped and all you could hear from the other rooms was screaming. For a few hours, at least. Now all you can hear is shuffling, crackling, the occasional gurgling, burbling moan, and heavy, wet thumps. Hopefully your surgery was registered as an elective because you've elected to get the heck out of here!", "forced_traits": [ "ELECTRORECEPTORS", "NIGHTVISION3", "LIGHTSTEP" ], "allowed_locs": [ "sloc_afs_augmentation_clinic_n3" ] + }, + { + "type": "scenario", + "id": "crashing_ship", + "name": "Emergency Evacuation", + "points": 1, + "description": "You must have hit your head when the first explosion happened. You sit up and realize everyone is gone, that the air smells like smoke, and that the ship's computer is calmly announcing in a posh English voice 'Abandon the vessel immediately.', and then counting down from seven minutes. Time to grab what you can and find an escape pod.", + "allowed_locs": [ "sloc_crashing_ship" ], + "professions": [ "afs_espatier", "afs_rating", "afs_ship_escape" ], + "flags": [ "LONE_START", "HELI_CRASH" ], + "start_name": "Crashing Ship" } ] diff --git a/data/Mainline_mods/Mods/Aftershock/skills.json b/data/Mainline_mods/Mods/Aftershock/skills.json new file mode 100644 index 000000000..8bfa8122f --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/skills.json @@ -0,0 +1,13 @@ +[ + { + "type": "skill", + "id": "smartgun", + "name": { "str": "smart guns" }, + "description": "Back in the 21st century marksmanship was an art whose mastery meant arduous years of constant training and preparation. There are computers for that now.", + "tags": [ "combat_skill" ], + "time_to_attack": { "min_time": 20, "base_time": 30, "time_reduction_per_level": 1 }, + "display_category": "display_ranged", + "sort_rank": 10500, + "companion_skill_practice": [ { "skill": "combat", "weight": 25 } ] + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/spells.json b/data/Mainline_mods/Mods/Aftershock/spells.json index 920b5456f..07bda412c 100644 --- a/data/Mainline_mods/Mods/Aftershock/spells.json +++ b/data/Mainline_mods/Mods/Aftershock/spells.json @@ -63,21 +63,6 @@ "max_damage": 8, "damage_type": "electric" }, - { - "id": "skullgun_snapback", - "type": "SPELL", - "name": "Skullgun Snapback", - "//": "Used for activating Skullgun CBM, not castable", - "description": "This fake spell occurs on skullgun activation. May be fatal if done in critical condition.", - "effect": "attack", - "shape": "blast", - "valid_targets": [ "self" ], - "flags": [ "SILENT", "NO_LEGS", "NO_HANDS", "NO_FAIL", "NO_PROJECTILE" ], - "min_damage": 10, - "max_damage": 10, - "message": "Your head snaps back from the force of the shot.", - "damage_type": "biological" - }, { "id": "afs_generic_free_turn", "type": "SPELL", @@ -156,6 +141,59 @@ "min_duration": 720000, "max_duration": 720000 }, + { + "type": "SPELL", + "id": "afs_motion_sensor_spell", + "name": { "str": "motion sensor spell" }, + "description": "EOCs the victim.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 75, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "afs_motion_sensor_eoc" + }, + { + "id": "bio_blade_electric_arc", + "type": "SPELL", + "name": "Superconductive Arc", + "description": "Your bionic weapon arcs electricity to a nearby target.", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "hostile" ], + "flags": [ "SOMATIC", "NO_LEGS", "RANDOM_TARGET", "RANDOM_DAMAGE" ], + "max_level": 1, + "min_damage": 5, + "max_damage": 15, + "min_range": 1, + "max_range": 1, + "extra_effects": [ { "id": "bio_blade_electric_arc_2" } ], + "difficulty": 1, + "sound_description": "a crackle", + "damage_type": "electric" + }, + { + "id": "bio_blade_electric_arc_2", + "type": "SPELL", + "name": "Superconductive Arc", + "description": "Your bionic weapon arcs electricity to a nearby target.", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "hostile" ], + "flags": [ "SOMATIC", "NO_LEGS", "RANDOM_TARGET", "RANDOM_DAMAGE" ], + "max_level": 1, + "min_damage": 5, + "max_damage": 15, + "min_range": 1, + "max_range": 1, + "difficulty": 1, + "sound_description": "a crackle", + "damage_type": "electric" + }, { "id": "cream_greater_prot_cold", "type": "SPELL", @@ -224,5 +262,20 @@ "max_field_intensity": 4, "field_intensity_increment": 0.5, "damage_type": "cold" + }, + { + "type": "SPELL", + "id": "escape_pod", + "name": "Escape Pod Launch", + "description": "You're slammed back against the seat as the pod launches at incredible speed from the ship!", + "effect": "effect_on_condition", + "effect_str": "EOC_ESCAPE_POD_CHAIR", + "valid_targets": "ground", + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1 } ] diff --git a/data/Mainline_mods/Mods/Aftershock/spells/enchantments.json b/data/Mainline_mods/Mods/Aftershock/spells/enchantments.json index 6cf32fab5..96cc2b44b 100644 --- a/data/Mainline_mods/Mods/Aftershock/spells/enchantments.json +++ b/data/Mainline_mods/Mods/Aftershock/spells/enchantments.json @@ -23,6 +23,20 @@ "condition": "ACTIVE", "hit_you_effect": [ { "id": "afs_generic_speed_bonus", "hit_self": true } ] }, + { + "type": "enchantment", + "id": "heightened_performance", + "condition": "ACTIVE", + "values": [ + { "value": "DEXTERITY", "add": 1 }, + { "value": "STRENGTH", "add": 1 }, + { "value": "SPEED", "add": 3 }, + { "value": "HUNGER", "multiply": 1.5 }, + { "value": "THIRST", "multiply": 1.5 }, + { "value": "METABOLISM", "multiply": 1.5 }, + { "value": "SOCIAL_PERSUADE", "add": -10 } + ] + }, { "type": "enchantment", "id": "protect_cold", diff --git a/data/Mainline_mods/Mods/Aftershock/suit_operating_time.md b/data/Mainline_mods/Mods/Aftershock/suit_operating_time.md index 3ed1f4b5c..1f07e9388 100644 --- a/data/Mainline_mods/Mods/Aftershock/suit_operating_time.md +++ b/data/Mainline_mods/Mods/Aftershock/suit_operating_time.md @@ -1,14 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Powered Armor Balance](#powered-armor-balance) - - [Operating time](#operating-time) - - [Additional factors](#additional-factors) - - [Example Calculation](#example-calculation) - - - # Powered Armor Balance These are guidelines for designing all sorts of Aftershock power armor. diff --git a/data/Mainline_mods/Mods/Aftershock/traps.json b/data/Mainline_mods/Mods/Aftershock/traps.json new file mode 100644 index 000000000..aa52e28d5 --- /dev/null +++ b/data/Mainline_mods/Mods/Aftershock/traps.json @@ -0,0 +1,16 @@ +[ + { + "type": "trap", + "id": "tr_escape_pod", + "name": "escape pod launch button", + "color": "red", + "symbol": "#", + "visibility": -1, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 2, + "action": "spell", + "flags": [ "UNCONSUMED", "UNDODGEABLE" ], + "spell_data": { "id": "escape_pod" } + } +] diff --git a/data/Mainline_mods/Mods/Aftershock/vehicles/part_items.json b/data/Mainline_mods/Mods/Aftershock/vehicles/part_items.json index ba9ed7851..aa4e4160d 100644 --- a/data/Mainline_mods/Mods/Aftershock/vehicles/part_items.json +++ b/data/Mainline_mods/Mods/Aftershock/vehicles/part_items.json @@ -12,9 +12,9 @@ "looks_like": "xlframe", "techniques": [ "DEF_DISARM" ], "volume": "7500 ml", - "bashing": 15, "category": "veh_parts", - "price": 4000 + "price": 4000, + "melee_damage": { "bash": 15 } }, { "type": "GENERIC", @@ -35,9 +35,9 @@ "symbol": "$", "material": [ "plastic", "steel" ], "volume": "6 L", - "bashing": 2, "category": "veh_parts", - "price": 60000 + "price": 60000, + "melee_damage": { "bash": 2 } }, { "type": "GENERIC", diff --git a/data/Mainline_mods/Mods/Aftershock/vehicles/vehicle_overrides.json b/data/Mainline_mods/Mods/Aftershock/vehicles/vehicle_overrides.json index 675ead148..9c107db00 100644 --- a/data/Mainline_mods/Mods/Aftershock/vehicles/vehicle_overrides.json +++ b/data/Mainline_mods/Mods/Aftershock/vehicles/vehicle_overrides.json @@ -4,69 +4,69 @@ "type": "vehicle", "name": "Armored Personnel Carrier", "parts": [ - { "y": 2, "x": 5, "parts": [ "hdframe_ne", "hdhalfboard_ne", "plating_military" ] }, - { "y": 1, "x": 5, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal", "plating_military" ] }, - { "y": 0, "x": 5, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal", "plating_military" ] }, - { "y": 0, "x": 5, "part": "horn_big" }, - { "y": -1, "x": 5, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal", "plating_military" ] }, - { "y": -2, "x": 5, "parts": [ "hdframe_nw", "hdhalfboard_nw", "plating_military" ] }, - { "y": 2, "x": 4, "parts": [ "hdframe_ne", "hdboard_ne", "plating_military" ] }, - { "y": 1, "x": 4, "parts": [ "hdframe_horizontal", "hdboard_horizontal", "plating_military" ] }, + { "y": 2, "x": 5, "parts": [ "hdframe#ne", "hdhalfboard#ne", "plating_military" ] }, + { "y": 1, "x": 5, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal", "plating_military" ] }, + { "y": 0, "x": 5, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal", "plating_military" ] }, + { "y": 0, "x": 5, "parts": [ "horn_big" ] }, + { "y": -1, "x": 5, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal", "plating_military" ] }, + { "y": -2, "x": 5, "parts": [ "hdframe#nw", "hdhalfboard#nw", "plating_military" ] }, + { "y": 2, "x": 4, "parts": [ "hdframe#ne", "hdboard#ne", "plating_military" ] }, + { "y": 1, "x": 4, "parts": [ "hdframe#horizontal", "hdboard#horizontal", "plating_military" ] }, { "y": 1, "x": 4, "parts": [ "headlight_reinforced" ] }, - { "y": 0, "x": 4, "parts": [ "hdframe_horizontal", "hdboard_ne", "plating_military" ] }, - { "y": -1, "x": 4, "parts": [ "hdframe_horizontal", "plating_military" ] }, + { "y": 0, "x": 4, "parts": [ "hdframe#horizontal", "hdboard#ne", "plating_military" ] }, + { "y": -1, "x": 4, "parts": [ "hdframe#horizontal", "plating_military" ] }, { "y": -1, "x": 4, "parts": [ "headlight_reinforced", "reinforced_windshield" ] }, - { "y": -2, "x": 4, "parts": [ "hdframe_nw", "hdboard_nw", "plating_military" ] }, - { "y": 2, "x": 3, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": -2, "x": 4, "parts": [ "hdframe#nw", "hdboard#nw", "plating_military" ] }, + { "y": 2, "x": 3, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": 2, "x": 3, "parts": [ "wheel_mount_heavy_steerable", "wheel_armor", "omnicam" ] }, - { "y": 1, "x": 3, "parts": [ "hdframe_vertical_2", "hdroof", "plating_military" ] }, - { "y": 1, "x": 3, "parts": [ { "fuel": "diesel", "part": "tank_small" }, "cam_control" ] }, + { "y": 1, "x": 3, "parts": [ "hdframe#vertical_2", "hdroof", "plating_military" ] }, + { "y": 1, "x": 3, "parts": [ { "part": "tank_small", "fuel": "diesel" }, "cam_control" ] }, { "y": 1, "x": 3, "parts": [ "turret_mount", { "part": "turret_m2browning", "ammo": 60, "ammo_qty": [ 10, 100 ] } ] }, { "y": 1, "x": 3, "parts": [ "seat", "seatbelt_heavyduty" ] }, - { "y": 0, "x": 3, "parts": [ "hdframe_vertical_2", "stowboard_vertical", "hdroof" ] }, + { "y": 0, "x": 3, "parts": [ "hdframe#vertical_2", "stowboard#vertical", "hdroof" ] }, { "y": 0, "x": 3, "parts": [ "diesel_engine_v6", "battery_car", "alternator_truck", "plating_military" ] }, - { "y": -1, "x": 3, "parts": [ "hdframe_vertical_2", "hdroof" ] }, + { "y": -1, "x": 3, "parts": [ "hdframe#vertical_2", "hdroof" ] }, { "y": -1, "x": 3, "parts": [ "afs_control_station", "dashboard" ] }, { "y": -1, "x": 3, "parts": [ "seat", "seatbelt_heavyduty" ] }, - { "y": -2, "x": 3, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": -2, "x": 3, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": -2, "x": 3, "parts": [ "wheel_mount_heavy_steerable", "wheel_armor", "omnicam" ] }, - { "y": 2, "x": 2, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 2, "x": 2, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": 2, "x": 2, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 1, "x": 2, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": 0, "x": 2, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "y": -1, "x": 2, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": -2, "x": 2, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 1, "x": 2, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": 0, "x": 2, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "y": -1, "x": 2, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": -2, "x": 2, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": -2, "x": 2, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 2, "x": 1, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 2, "x": 1, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": 2, "x": 1, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 1, "x": 1, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": 0, "x": 1, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "y": -1, "x": 1, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": -2, "x": 1, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 1, "x": 1, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": 0, "x": 1, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "y": -1, "x": 1, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": -2, "x": 1, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": -2, "x": 1, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 2, "x": 0, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 2, "x": 0, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": 2, "x": 0, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 1, "x": 0, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": 0, "x": 0, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "y": -1, "x": 0, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": -2, "x": 0, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 1, "x": 0, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": 0, "x": 0, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "y": -1, "x": 0, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": -2, "x": 0, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": -2, "x": 0, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 2, "x": -1, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, - { "y": 1, "x": -1, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": 0, "x": -1, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "y": -1, "x": -1, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": -2, "x": -1, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, - { "y": 2, "x": -2, "parts": [ "hdframe_se", "hdboard_se", "muffler", "plating_military" ] }, - { "y": 1, "x": -2, "parts": [ "hdframe_horizontal", "hdboard_horizontal", "plating_military" ] }, - { "y": 0, "x": -2, "parts": [ "hdframe_horizontal", "hddoor_opaque", "omnicam", "plating_military" ] }, - { "y": -1, "x": -2, "parts": [ "hdframe_horizontal", "hdboard_horizontal", "plating_military" ] }, - { "y": -2, "x": -2, "parts": [ "hdframe_sw", "hdboard_sw", "muffler", "plating_military" ] }, - { "y": 2, "x": -3, "parts": [ { "fuel": "diesel", "part": "external_tank" } ] }, - { "y": -2, "x": -3, "parts": [ { "fuel": "diesel", "part": "external_tank" } ] } + { "y": 2, "x": -1, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, + { "y": 1, "x": -1, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": 0, "x": -1, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "y": -1, "x": -1, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": -2, "x": -1, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, + { "y": 2, "x": -2, "parts": [ "hdframe#se", "hdboard#se", "muffler", "plating_military" ] }, + { "y": 1, "x": -2, "parts": [ "hdframe#horizontal", "hdboard#horizontal", "plating_military" ] }, + { "y": 0, "x": -2, "parts": [ "hdframe#horizontal", "hddoor_opaque", "omnicam", "plating_military" ] }, + { "y": -1, "x": -2, "parts": [ "hdframe#horizontal", "hdboard#horizontal", "plating_military" ] }, + { "y": -2, "x": -2, "parts": [ "hdframe#sw", "hdboard#sw", "muffler", "plating_military" ] }, + { "y": 2, "x": -3, "parts": [ { "part": "external_tank", "fuel": "diesel" } ] }, + { "y": -2, "x": -3, "parts": [ { "part": "external_tank", "fuel": "diesel" } ] } ], "items": [ { "y": -1, "x": 3, "chance": 2, "items": [ "id_military" ] } ] }, @@ -77,69 +77,69 @@ "//": "grenade launcher version", "items": [ { "y": -1, "x": 3, "chance": 2, "items": [ "id_military" ] } ], "parts": [ - { "y": 2, "x": 5, "parts": [ "hdframe_ne", "hdhalfboard_ne", "plating_military" ] }, - { "y": 1, "x": 5, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal", "plating_military" ] }, - { "y": 0, "x": 5, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal", "plating_military" ] }, - { "y": 0, "x": 5, "part": "horn_big" }, - { "y": -1, "x": 5, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal", "plating_military" ] }, - { "y": -2, "x": 5, "parts": [ "hdframe_nw", "hdhalfboard_nw", "plating_military" ] }, - { "y": 2, "x": 4, "parts": [ "hdframe_ne", "hdboard_ne", "plating_military" ] }, - { "y": 1, "x": 4, "parts": [ "hdframe_horizontal", "hdboard_horizontal", "plating_military" ] }, + { "y": 2, "x": 5, "parts": [ "hdframe#ne", "hdhalfboard#ne", "plating_military" ] }, + { "y": 1, "x": 5, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal", "plating_military" ] }, + { "y": 0, "x": 5, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal", "plating_military" ] }, + { "y": 0, "x": 5, "parts": [ "horn_big" ] }, + { "y": -1, "x": 5, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal", "plating_military" ] }, + { "y": -2, "x": 5, "parts": [ "hdframe#nw", "hdhalfboard#nw", "plating_military" ] }, + { "y": 2, "x": 4, "parts": [ "hdframe#ne", "hdboard#ne", "plating_military" ] }, + { "y": 1, "x": 4, "parts": [ "hdframe#horizontal", "hdboard#horizontal", "plating_military" ] }, { "y": 1, "x": 4, "parts": [ "headlight_reinforced" ] }, - { "y": 0, "x": 4, "parts": [ "hdframe_horizontal", "hdboard_ne", "plating_military" ] }, - { "y": -1, "x": 4, "parts": [ "hdframe_horizontal", "plating_military" ] }, + { "y": 0, "x": 4, "parts": [ "hdframe#horizontal", "hdboard#ne", "plating_military" ] }, + { "y": -1, "x": 4, "parts": [ "hdframe#horizontal", "plating_military" ] }, { "y": -1, "x": 4, "parts": [ "headlight_reinforced", "reinforced_windshield" ] }, - { "y": -2, "x": 4, "parts": [ "hdframe_nw", "hdboard_nw", "plating_military" ] }, - { "y": 2, "x": 3, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": -2, "x": 4, "parts": [ "hdframe#nw", "hdboard#nw", "plating_military" ] }, + { "y": 2, "x": 3, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": 2, "x": 3, "parts": [ "wheel_mount_heavy_steerable", "wheel_armor", "omnicam" ] }, - { "y": 1, "x": 3, "parts": [ "hdframe_vertical_2", "hdroof", "plating_military" ] }, - { "y": 1, "x": 3, "parts": [ { "fuel": "diesel", "part": "tank_small" }, "cam_control" ] }, + { "y": 1, "x": 3, "parts": [ "hdframe#vertical_2", "hdroof", "plating_military" ] }, + { "y": 1, "x": 3, "parts": [ { "part": "tank_small", "fuel": "diesel" }, "cam_control" ] }, { "y": 1, "x": 3, - "parts": [ "turret_mount", { "ammo_types": [ "40x53mm_m430a1" ], "part": "turret_mark19", "ammo": 60, "ammo_qty": [ 1, 25 ] } ] + "parts": [ "turret_mount", { "part": "turret_mark19", "ammo": 60, "ammo_types": [ "40x53mm_m430a1" ], "ammo_qty": [ 1, 25 ] } ] }, { "y": 1, "x": 3, "parts": [ "seat", "seatbelt_heavyduty" ] }, - { "y": 0, "x": 3, "parts": [ "hdframe_vertical_2", "stowboard_vertical", "hdroof" ] }, + { "y": 0, "x": 3, "parts": [ "hdframe#vertical_2", "stowboard#vertical", "hdroof" ] }, { "y": 0, "x": 3, "parts": [ "diesel_engine_v6", "battery_car", "alternator_truck", "plating_military" ] }, - { "y": -1, "x": 3, "parts": [ "hdframe_vertical_2", "hdroof" ] }, + { "y": -1, "x": 3, "parts": [ "hdframe#vertical_2", "hdroof" ] }, { "y": -1, "x": 3, "parts": [ "afs_control_station", "dashboard" ] }, { "y": -1, "x": 3, "parts": [ "seat", "seatbelt_heavyduty" ] }, - { "y": -2, "x": 3, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": -2, "x": 3, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": -2, "x": 3, "parts": [ "wheel_mount_heavy_steerable", "wheel_armor", "omnicam" ] }, - { "y": 2, "x": 2, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 2, "x": 2, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": 2, "x": 2, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 1, "x": 2, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": 0, "x": 2, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "y": -1, "x": 2, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": -2, "x": 2, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 1, "x": 2, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": 0, "x": 2, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "y": -1, "x": 2, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": -2, "x": 2, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": -2, "x": 2, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 2, "x": 1, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 2, "x": 1, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": 2, "x": 1, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 1, "x": 1, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": 0, "x": 1, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "y": -1, "x": 1, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": -2, "x": 1, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 1, "x": 1, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": 0, "x": 1, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "y": -1, "x": 1, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": -2, "x": 1, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": -2, "x": 1, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 2, "x": 0, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 2, "x": 0, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": 2, "x": 0, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 1, "x": 0, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": 0, "x": 0, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "y": -1, "x": 0, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": -2, "x": 0, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, + { "y": 1, "x": 0, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": 0, "x": 0, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "y": -1, "x": 0, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": -2, "x": 0, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, { "y": -2, "x": 0, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "y": 2, "x": -1, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, - { "y": 1, "x": -1, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": 0, "x": -1, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "y": -1, "x": -1, "parts": [ "hdframe_vertical_2", "seat", "hdroof" ] }, - { "y": -2, "x": -1, "parts": [ "hdframe_vertical", "hdboard_vertical", "plating_military" ] }, - { "y": 2, "x": -2, "parts": [ "hdframe_se", "hdboard_se", "muffler", "plating_military" ] }, - { "y": 1, "x": -2, "parts": [ "hdframe_horizontal", "hdboard_horizontal", "plating_military" ] }, - { "y": 0, "x": -2, "parts": [ "hdframe_horizontal", "hddoor_opaque", "omnicam", "plating_military" ] }, - { "y": -1, "x": -2, "parts": [ "hdframe_horizontal", "hdboard_horizontal", "plating_military" ] }, - { "y": -2, "x": -2, "parts": [ "hdframe_sw", "hdboard_sw", "muffler", "plating_military" ] }, - { "y": 2, "x": -3, "parts": [ { "fuel": "diesel", "part": "external_tank" } ] }, - { "y": -2, "x": -3, "parts": [ { "fuel": "diesel", "part": "external_tank" } ] } + { "y": 2, "x": -1, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, + { "y": 1, "x": -1, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": 0, "x": -1, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "y": -1, "x": -1, "parts": [ "hdframe#vertical_2", "seat", "hdroof" ] }, + { "y": -2, "x": -1, "parts": [ "hdframe#vertical", "hdboard#vertical", "plating_military" ] }, + { "y": 2, "x": -2, "parts": [ "hdframe#se", "hdboard#se", "muffler", "plating_military" ] }, + { "y": 1, "x": -2, "parts": [ "hdframe#horizontal", "hdboard#horizontal", "plating_military" ] }, + { "y": 0, "x": -2, "parts": [ "hdframe#horizontal", "hddoor_opaque", "omnicam", "plating_military" ] }, + { "y": -1, "x": -2, "parts": [ "hdframe#horizontal", "hdboard#horizontal", "plating_military" ] }, + { "y": -2, "x": -2, "parts": [ "hdframe#sw", "hdboard#sw", "muffler", "plating_military" ] }, + { "y": 2, "x": -3, "parts": [ { "part": "external_tank", "fuel": "diesel" } ] }, + { "y": -2, "x": -3, "parts": [ { "part": "external_tank", "fuel": "diesel" } ] } ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/vehicles/vehicle_parts.json b/data/Mainline_mods/Mods/Aftershock/vehicles/vehicle_parts.json index c0d9b3fbb..f880645a6 100644 --- a/data/Mainline_mods/Mods/Aftershock/vehicles/vehicle_parts.json +++ b/data/Mainline_mods/Mods/Aftershock/vehicles/vehicle_parts.json @@ -19,11 +19,9 @@ "id": "afs_crude_plating", "name": { "str": "crude plating" }, "description": "A piece of sheet metal welded onto a vehicle as armor. Thin, and not as protective as proper armor, but it'll do if there's nothing else available.", - "symbol": ")", "looks_like": "steel_plate", "categories": [ "warfare" ], "color": "light_gray", - "broken_symbol": ")", "broken_color": "dark_gray", "durability": 300, "item": "sheet_metal", @@ -35,24 +33,23 @@ }, "flags": [ "ARMOR" ], "breaks_into": [ { "item": "steel_chunk", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 4, 6 ] } ], - "damage_reduction": { "all": 4 } + "damage_reduction": { "all": 4 }, + "variants": [ { "symbols": ")", "symbols_broken": ")" } ] }, { "type": "vehicle_part", "id": "afs_control_station", "name": { "str": "control station" }, - "symbol": "$", "looks_like": "vehicle_dashboard", "categories": [ "operations" ], "color": "red", - "broken_symbol": "$", "broken_color": "light_gray", "damage_modifier": 10, "durability": 400, "description": "A large and complex dashboard mounted with steering controls and several LCD touch screens for controlling vehicle systems.", "bonus": 10, "item": "afs_control_station", - "epower": -125, + "epower": "-125 W", "requirements": { "install": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] }, "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, @@ -74,9 +71,10 @@ { "item": "steel_chunk", "count": [ 2, 4 ] }, { "item": "scrap", "count": [ 2, 4 ] }, { "item": "cable", "charges": [ 5, 20 ] }, - { "item": "RAM", "charges": [ 1, 4 ] }, - { "item": "e_scrap", "charges": [ 3, 8 ] } - ] + { "item": "RAM", "count": [ 1, 4 ] }, + { "item": "e_scrap", "count": [ 3, 8 ] } + ], + "variants": [ { "symbols": "$", "symbols_broken": "$" } ] }, { "id": "afs_mounted_external_tank", @@ -85,18 +83,15 @@ "type": "vehicle_part", "name": { "str": "mounted external tank (200L)" }, "item": "55gal_drum", - "location": "center", - "size": 200000 + "location": "center" }, { - "abstract": "afs_lightweight_frame", + "id": "afs_lightweight_frame", "type": "vehicle_part", + "copy-from": "frame_abstract", "name": { "str": "ultralight frame" }, "item": "afs_titanium_frame", - "location": "structure", - "categories": [ "hull" ], "color": "light_gray", - "symbol": "c", "durability": 100, "description": "An ultralight titanium framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size.", "breaks_into": [ { "item": "afs_scrap_titanium", "count": [ 1, 3 ] } ], @@ -104,162 +99,19 @@ "install": { "skills": [ [ "mechanics", 1 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] }, "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 2 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, - "flags": [ "MOUNTABLE" ] - }, - { - "id": "afs_lightweight_frame_cover", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "^" - }, - { - "id": "afs_lightweight_frame_cross", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "c", - "extend": { "flags": [ "INITIAL_PART" ] } - }, - { - "id": "afs_lightweight_frame_horizontal", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "h" - }, - { - "id": "afs_lightweight_frame_horizontal_2", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "=" - }, - { - "id": "afs_lightweight_frame_ne", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "u" + } }, { - "id": "afs_lightweight_frame_nw", - "copy-from": "afs_lightweight_frame", + "id": "afs_lightweight_foldable_frame", "type": "vehicle_part", - "symbol": "y" - }, - { - "id": "afs_lightweight_frame_se", "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "n" - }, - { - "id": "afs_lightweight_frame_sw", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "b" - }, - { - "id": "afs_lightweight_frame_vertical", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "j" - }, - { - "id": "afs_lightweight_frame_vertical_2", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "H" - }, - { - "abstract": "afs_lightweight_foldable_frame", - "type": "vehicle_part", "name": { "str": "ultralight foldable frame" }, "item": "afs_titanium_foldable_frame", - "location": "structure", - "categories": [ "hull" ], - "color": "light_gray", "durability": 75, - "symbol": "H", "folded_volume": "10 L", "folding_time": "1 minute", "unfolding_time": "1 minute", - "description": "An ultralight titanium foldable framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size.", - "breaks_into": [ { "item": "afs_scrap_titanium", "count": [ 1, 3 ] } ], - "requirements": { - "install": { "skills": [ [ "mechanics", 1 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] }, - "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, - "repair": { "skills": [ [ "mechanics", 2 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, - "flags": [ "INITIAL_PART", "MOUNTABLE", "FOLDABLE" ] - }, - { - "id": "afs_lightweight_foldable_frame_cover", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_cover", - "symbol": "^" - }, - { - "id": "afs_lightweight_foldable_frame_cross", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_cross", - "symbol": "c", - "extend": { "flags": [ "INITIAL_PART" ] } - }, - { - "id": "afs_lightweight_foldable_frame_horizontal", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_horizontal", - "symbol": "h" - }, - { - "id": "afs_lightweight_foldable_frame_horizontal_2", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_horizontal_2", - "symbol": "=" - }, - { - "id": "afs_lightweight_foldable_frame_ne", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_ne", - "symbol": "u" - }, - { - "id": "afs_lightweight_foldable_frame_nw", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_nw", - "symbol": "y" - }, - { - "id": "afs_lightweight_foldable_frame_se", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_se", - "symbol": "n" - }, - { - "id": "afs_lightweight_foldable_frame_sw", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_sw", - "symbol": "b" - }, - { - "id": "afs_lightweight_foldable_frame_vertical", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_vertical", - "symbol": "j" - }, - { - "id": "afs_lightweight_foldable_frame_vertical_2", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_vertical_2", - "symbol": "H" + "description": "An ultralight titanium foldable framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size." }, { "type": "vehicle_part", @@ -288,15 +140,13 @@ "type": "vehicle_part", "id": "robot_cargo", "name": "robot_carrier", - "symbol": "=", "categories": [ "cargo", "passengers" ], "color": "light_gray", "looks_like": "cargo_space", - "broken_symbol": "#", "broken_color": "dark_gray", "durability": 250, "description": "A cargo space for carrying robots. 'e'xamine it to capture a robot next to you, or to release the robot currently contained. When selecting a robot to capture, choose its tile relative to you, not the part.", - "size": 800, + "size": "200 L", "item": "robot_carrier", "location": "center", "requirements": { @@ -309,24 +159,23 @@ { "item": "steel_lump", "count": [ 6, 8 ] }, { "item": "steel_chunk", "count": [ 6, 8 ] }, { "item": "scrap", "count": [ 6, 8 ] } - ] + ], + "variants": [ { "symbols": "=", "symbols_broken": "#" } ] }, { "type": "vehicle_part", "id": "exo_gantry", "name": { "str": "exosuit maintenance gantry" }, - "symbol": "T", "categories": [ "utility" ], "color": "light_gray", - "broken_symbol": "x", "broken_color": "light_gray", - "looks_like": "welding_rig", + "looks_like": "veh_tools_workshop", "damage_modifier": 10, "durability": 200, "description": "A gantry for supporting an exosuit upright during maintenance and repair. Includes the specialized tools needed for complex repairs and will also charge the suit's power when active.", - "size": 800, + "size": "200 L", "bonus": 600, - "item": "afs_metal_rig", + "item": "veh_tools_workshop", "location": "center", "requirements": { "install": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, @@ -344,6 +193,7 @@ { "item": "steel_chunk", "count": [ 3, 6 ] }, { "item": "scrap", "count": [ 3, 6 ] }, { "item": "welder", "charges": 0, "prob": 50 } - ] + ], + "variants": [ { "symbols": "T", "symbols_broken": "x" } ] } ] diff --git a/data/Mainline_mods/Mods/Aftershock/vehicles/vehicles.json b/data/Mainline_mods/Mods/Aftershock/vehicles/vehicles.json index c48f328ba..f1ac793a0 100644 --- a/data/Mainline_mods/Mods/Aftershock/vehicles/vehicles.json +++ b/data/Mainline_mods/Mods/Aftershock/vehicles/vehicles.json @@ -9,25 +9,25 @@ [ "o>+-" ] ], "parts": [ - { "x": 0, "y": 0, "parts": [ "xlframe_vertical_2", "seat", "seatbelt", "roof" ] }, + { "x": 0, "y": 0, "parts": [ "xlframe#vertical_2", "seat", "seatbelt", "roof" ] }, { "x": 0, "y": 0, "parts": [ "controls", "dashboard", "vehicle_alarm" ] }, - { "x": 0, "y": 0, "parts": [ "vehicle_clock", "stereo", "horn_car" ] }, - { "x": 0, "y": 1, "parts": [ "xlframe_vertical_2", "door_right" ] }, - { "x": 0, "y": -1, "parts": [ "xlframe_vertical", "door_left" ] }, - { "x": 1, "y": 0, "parts": [ "xlframe_horizontal", "windshield_horizontal_front", "headlight" ] }, + { "x": 0, "y": 0, "parts": [ "stereo", "horn_car" ] }, + { "x": 0, "y": 1, "parts": [ "xlframe#vertical_2", "door#right" ] }, + { "x": 0, "y": -1, "parts": [ "xlframe#vertical", "door#left" ] }, + { "x": 1, "y": 0, "parts": [ "xlframe#horizontal", "windshield#horizontal_front", "headlight" ] }, { "x": 1, "y": 0, "parts": [ "wheel_mount_medium_steerable", "wheel" ] }, - { "x": 1, "y": 1, "parts": [ "xlframe_horizontal", "xlhalfboard_ne" ] }, - { "x": 1, "y": -1, "parts": [ "xlframe_vertical", "xlhalfboard_nw" ] }, - { "x": -1, "y": 0, "parts": [ "xlframe_ne", "seat", "seatbelt", "roof" ] }, - { "x": -1, "y": 0, "part": "small_storage_battery" }, - { "x": -1, "y": -1, "parts": [ "xlframe_horizontal", "xlhalfboard_vertical_left" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_nw", "minireactor", "engine_electric" ] }, - { "x": -1, "y": 1, "parts": [ "halfboard_vertical_right", "plating_steel" ] }, - { "x": -2, "y": -1, "parts": [ "xlframe_horizontal", "xlhalfboard_sw" ] }, + { "x": 1, "y": 1, "parts": [ "xlframe#horizontal", "xlhalfboard#ne" ] }, + { "x": 1, "y": -1, "parts": [ "xlframe#vertical", "xlhalfboard#nw" ] }, + { "x": -1, "y": 0, "parts": [ "xlframe#ne", "seat", "seatbelt", "roof" ] }, + { "x": -1, "y": 0, "parts": [ "small_storage_battery" ] }, + { "x": -1, "y": -1, "parts": [ "xlframe#horizontal", "xlhalfboard#vertical_left" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#nw", "minireactor", "engine_electric" ] }, + { "x": -1, "y": 1, "parts": [ "halfboard#vertical_right", "plating_steel" ] }, + { "x": -2, "y": -1, "parts": [ "xlframe#horizontal", "xlhalfboard#sw" ] }, { "x": -2, "y": -1, "parts": [ "wheel_mount_medium", "wheel" ] }, - { "x": -2, "y": 0, "parts": [ "xlframe_horizontal", "windshield_horizontal_rear" ] }, - { "x": -2, "y": 1, "parts": [ "xlframe_horizontal", "engine_electric" ] }, - { "x": -2, "y": 1, "parts": [ "halfboard_se", "plating_steel" ] }, + { "x": -2, "y": 0, "parts": [ "xlframe#horizontal", "windshield#horizontal_rear" ] }, + { "x": -2, "y": 1, "parts": [ "xlframe#horizontal", "engine_electric" ] }, + { "x": -2, "y": 1, "parts": [ "halfboard#se", "plating_steel" ] }, { "x": -2, "y": 1, "parts": [ "wheel_mount_medium", "wheel" ] } ], "items": [ @@ -47,43 +47,43 @@ [ "o-++-o" ] ], "parts": [ - { "x": 0, "y": 0, "parts": [ "frame_vertical_2", "reclining_seat", "seatbelt" ] }, - { "x": 0, "y": 0, "parts": [ "controls", "dashboard", "vehicle_clock", "vehicle_alarm" ] }, + { "x": 0, "y": 0, "parts": [ "frame#vertical_2", "reclining_seat", "seatbelt" ] }, + { "x": 0, "y": 0, "parts": [ "controls", "dashboard", "vehicle_alarm" ] }, { "x": 0, "y": 0, "parts": [ "stereo", "horn_car", "roof" ] }, - { "x": 0, "y": 1, "parts": [ "frame_vertical_2", "box", "roof" ] }, - { "x": 0, "y": 2, "parts": [ "frame_vertical_2", "reclining_seat", "seatbelt", "roof" ] }, - { "x": 0, "y": -1, "parts": [ "frame_vertical", "door_left" ] }, - { "x": 0, "y": 3, "parts": [ "frame_vertical", "door_right" ] }, - { "x": -1, "y": 0, "parts": [ "frame_vertical_2", "seat", "seatbelt", "roof" ] }, - { "x": -1, "y": 1, "parts": [ "frame_vertical_2", "seat", "seatbelt", "roof" ] }, - { "x": -1, "y": 2, "parts": [ "frame_vertical_2", "seat", "seatbelt", "roof" ] }, - { "x": -1, "y": -1, "parts": [ "frame_vertical", "door_left" ] }, - { "x": -1, "y": 3, "parts": [ "frame_vertical", "door_right" ] }, - { "x": 1, "y": 0, "parts": [ "frame_horizontal", "windshield_horizontal_front" ] }, - { "x": 1, "y": 1, "parts": [ "frame_horizontal", "windshield_horizontal_front" ] }, - { "x": 1, "y": 2, "parts": [ "frame_horizontal", "windshield_horizontal_front" ] }, - { "x": 1, "y": -1, "parts": [ "frame_horizontal", "windshield_nw" ] }, - { "x": 1, "y": 3, "parts": [ "frame_horizontal", "windshield_ne" ] }, - { "x": 2, "y": 0, "parts": [ "frame_horizontal", "halfboard_horizontal_front" ] }, - { "x": 2, "y": 1, "parts": [ "frame_horizontal", "halfboard_cover" ] }, - { "x": 2, "y": 2, "parts": [ "frame_horizontal", "halfboard_horizontal_front" ] }, - { "x": 2, "y": -1, "parts": [ "frame_nw", "halfboard_nw" ] }, + { "x": 0, "y": 1, "parts": [ "frame#vertical_2", "box", "roof" ] }, + { "x": 0, "y": 2, "parts": [ "frame#vertical_2", "reclining_seat", "seatbelt", "roof" ] }, + { "x": 0, "y": -1, "parts": [ "frame#vertical", "door#left" ] }, + { "x": 0, "y": 3, "parts": [ "frame#vertical", "door#right" ] }, + { "x": -1, "y": 0, "parts": [ "frame#vertical_2", "seat", "seatbelt", "roof" ] }, + { "x": -1, "y": 1, "parts": [ "frame#vertical_2", "seat", "seatbelt", "roof" ] }, + { "x": -1, "y": 2, "parts": [ "frame#vertical_2", "seat", "seatbelt", "roof" ] }, + { "x": -1, "y": -1, "parts": [ "frame#vertical", "door#left" ] }, + { "x": -1, "y": 3, "parts": [ "frame#vertical", "door#right" ] }, + { "x": 1, "y": 0, "parts": [ "frame#horizontal", "windshield#horizontal_front" ] }, + { "x": 1, "y": 1, "parts": [ "frame#horizontal", "windshield#horizontal_front" ] }, + { "x": 1, "y": 2, "parts": [ "frame#horizontal", "windshield#horizontal_front" ] }, + { "x": 1, "y": -1, "parts": [ "frame#horizontal", "windshield#nw" ] }, + { "x": 1, "y": 3, "parts": [ "frame#horizontal", "windshield#ne" ] }, + { "x": 2, "y": 0, "parts": [ "frame#horizontal", "halfboard#horizontal_front" ] }, + { "x": 2, "y": 1, "parts": [ "frame#horizontal", "halfboard#cover" ] }, + { "x": 2, "y": 2, "parts": [ "frame#horizontal", "halfboard#horizontal_front" ] }, + { "x": 2, "y": -1, "parts": [ "frame#nw", "halfboard#nw" ] }, { "x": 2, "y": -1, "parts": [ "wheel_mount_medium_steerable", "wheel", "headlight" ] }, - { "x": 2, "y": 3, "parts": [ "frame_ne", "halfboard_ne" ] }, + { "x": 2, "y": 3, "parts": [ "frame#ne", "halfboard#ne" ] }, { "x": 2, "y": 3, "parts": [ "wheel_mount_medium_steerable", "wheel", "headlight" ] }, - { "x": -2, "y": 0, "parts": [ "frame_vertical", "trunk", "roof" ] }, - { "x": -2, "y": 1, "parts": [ "hdframe_vertical", "minireactor", "halfboard_cover" ] }, - { "x": -2, "y": 1, "part": "plating_steel" }, - { "x": -2, "y": 2, "parts": [ "frame_vertical", "trunk", "roof" ] }, - { "x": -2, "y": -1, "parts": [ "frame_vertical", "halfboard_vertical_left" ] }, - { "x": -2, "y": 3, "parts": [ "frame_vertical", "halfboard_vertical_right" ] }, - { "x": -3, "y": -1, "parts": [ "frame_horizontal", "halfboard_sw" ] }, + { "x": -2, "y": 0, "parts": [ "frame#vertical", "trunk", "roof" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#vertical", "minireactor", "halfboard#cover" ] }, + { "x": -2, "y": 1, "parts": [ "plating_steel" ] }, + { "x": -2, "y": 2, "parts": [ "frame#vertical", "trunk", "roof" ] }, + { "x": -2, "y": -1, "parts": [ "frame#vertical", "halfboard#vertical_left" ] }, + { "x": -2, "y": 3, "parts": [ "frame#vertical", "halfboard#vertical_right" ] }, + { "x": -3, "y": -1, "parts": [ "frame#horizontal", "halfboard#sw" ] }, { "x": -3, "y": -1, "parts": [ "wheel_mount_medium", "wheel" ] }, - { "x": -3, "y": 0, "parts": [ "frame_horizontal", "door_trunk" ] }, - { "x": -3, "y": 1, "parts": [ "frame_horizontal_2", "engine_electric_large" ] }, - { "x": -3, "y": 1, "parts": [ "storage_battery", "halfboard_vertical_2", "plating_steel" ] }, - { "x": -3, "y": 2, "parts": [ "frame_horizontal", "door_trunk" ] }, - { "x": -3, "y": 3, "parts": [ "frame_horizontal", "halfboard_se" ] }, + { "x": -3, "y": 0, "parts": [ "frame#horizontal", "door_trunk" ] }, + { "x": -3, "y": 1, "parts": [ "frame#horizontal_2", "engine_electric_large" ] }, + { "x": -3, "y": 1, "parts": [ "storage_battery", "halfboard#vertical_2", "plating_steel" ] }, + { "x": -3, "y": 2, "parts": [ "frame#horizontal", "door_trunk" ] }, + { "x": -3, "y": 3, "parts": [ "frame#horizontal", "halfboard#se" ] }, { "x": -3, "y": 3, "parts": [ "wheel_mount_medium", "wheel" ] } ], "items": [ @@ -107,37 +107,37 @@ [ "o-++-o" ] ], "parts": [ - { "x": 0, "y": 0, "parts": [ "frame_vertical_2", "reclining_seat", "seatbelt" ] }, - { "x": 0, "y": 0, "parts": [ "controls", "dashboard", "vehicle_clock" ] }, + { "x": 0, "y": 0, "parts": [ "frame#vertical_2", "reclining_seat", "seatbelt" ] }, + { "x": 0, "y": 0, "parts": [ "controls", "dashboard" ] }, { "x": 0, "y": 0, "parts": [ "vehicle_alarm", "stereo", "horn_car", "roof" ] }, - { "x": 0, "y": 1, "parts": [ "frame_vertical_2", "reclining_seat", "seatbelt", "roof" ] }, - { "x": 0, "y": -1, "parts": [ "frame_vertical", "door_left" ] }, - { "x": 0, "y": 2, "parts": [ "frame_vertical", "door_right" ] }, - { "x": -1, "y": 0, "parts": [ "frame_vertical_2", "seat", "seatbelt", "roof" ] }, - { "x": -1, "y": 1, "parts": [ "frame_vertical_2", "seat", "seatbelt", "roof" ] }, - { "x": -1, "y": -1, "parts": [ "frame_vertical", "door_left" ] }, - { "x": -1, "y": 2, "parts": [ "frame_vertical", "door_right" ] }, - { "x": 1, "y": 0, "parts": [ "frame_horizontal", "windshield_horizontal_front" ] }, - { "x": 1, "y": 1, "parts": [ "frame_horizontal", "windshield_horizontal_front" ] }, - { "x": 1, "y": -1, "parts": [ "frame_horizontal", "windshield_nw" ] }, - { "x": 1, "y": 2, "parts": [ "frame_horizontal", "windshield_ne" ] }, - { "x": 2, "y": 0, "parts": [ "frame_horizontal", "halfboard_horizontal_front" ] }, + { "x": 0, "y": 1, "parts": [ "frame#vertical_2", "reclining_seat", "seatbelt", "roof" ] }, + { "x": 0, "y": -1, "parts": [ "frame#vertical", "door#left" ] }, + { "x": 0, "y": 2, "parts": [ "frame#vertical", "door#right" ] }, + { "x": -1, "y": 0, "parts": [ "frame#vertical_2", "seat", "seatbelt", "roof" ] }, + { "x": -1, "y": 1, "parts": [ "frame#vertical_2", "seat", "seatbelt", "roof" ] }, + { "x": -1, "y": -1, "parts": [ "frame#vertical", "door#left" ] }, + { "x": -1, "y": 2, "parts": [ "frame#vertical", "door#right" ] }, + { "x": 1, "y": 0, "parts": [ "frame#horizontal", "windshield#horizontal_front" ] }, + { "x": 1, "y": 1, "parts": [ "frame#horizontal", "windshield#horizontal_front" ] }, + { "x": 1, "y": -1, "parts": [ "frame#horizontal", "windshield#nw" ] }, + { "x": 1, "y": 2, "parts": [ "frame#horizontal", "windshield#ne" ] }, + { "x": 2, "y": 0, "parts": [ "frame#horizontal", "halfboard#horizontal_front" ] }, { "x": 2, "y": 0, "parts": [ "engine_electric_large", "storage_battery", "plating_steel" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_horizontal", "minireactor", "halfboard_horizontal_front" ] }, - { "x": 2, "y": 1, "part": "plating_steel" }, - { "x": 2, "y": -1, "parts": [ "frame_nw", "halfboard_nw" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#horizontal", "minireactor", "halfboard#horizontal_front" ] }, + { "x": 2, "y": 1, "parts": [ "plating_steel" ] }, + { "x": 2, "y": -1, "parts": [ "frame#nw", "halfboard#nw" ] }, { "x": 2, "y": -1, "parts": [ "wheel_mount_medium_steerable", "wheel", "headlight" ] }, - { "x": 2, "y": 2, "parts": [ "frame_ne", "halfboard_ne" ] }, + { "x": 2, "y": 2, "parts": [ "frame#ne", "halfboard#ne" ] }, { "x": 2, "y": 2, "parts": [ "wheel_mount_medium_steerable", "wheel", "headlight" ] }, - { "x": -2, "y": 0, "parts": [ "frame_vertical", "trunk", "roof" ] }, - { "x": -2, "y": 1, "parts": [ "frame_vertical", "trunk", "roof" ] }, - { "x": -2, "y": -1, "parts": [ "frame_vertical", "halfboard_vertical_left" ] }, - { "x": -2, "y": 2, "parts": [ "frame_vertical", "halfboard_vertical_right" ] }, - { "x": -3, "y": -1, "parts": [ "frame_horizontal", "halfboard_sw" ] }, + { "x": -2, "y": 0, "parts": [ "frame#vertical", "trunk", "roof" ] }, + { "x": -2, "y": 1, "parts": [ "frame#vertical", "trunk", "roof" ] }, + { "x": -2, "y": -1, "parts": [ "frame#vertical", "halfboard#vertical_left" ] }, + { "x": -2, "y": 2, "parts": [ "frame#vertical", "halfboard#vertical_right" ] }, + { "x": -3, "y": -1, "parts": [ "frame#horizontal", "halfboard#sw" ] }, { "x": -3, "y": -1, "parts": [ "wheel_mount_medium", "wheel" ] }, - { "x": -3, "y": 0, "parts": [ "frame_horizontal", "door_trunk" ] }, - { "x": -3, "y": 1, "parts": [ "frame_horizontal", "door_trunk" ] }, - { "x": -3, "y": 2, "parts": [ "frame_horizontal", "halfboard_se" ] }, + { "x": -3, "y": 0, "parts": [ "frame#horizontal", "door_trunk" ] }, + { "x": -3, "y": 1, "parts": [ "frame#horizontal", "door_trunk" ] }, + { "x": -3, "y": 2, "parts": [ "frame#horizontal", "halfboard#se" ] }, { "x": -3, "y": 2, "parts": [ "wheel_mount_medium", "wheel" ] } ], "items": [ @@ -161,34 +161,34 @@ [ "'++'-o" ] ], "parts": [ - { "x": -4, "y": -1, "parts": [ "frame_vertical", "halfboard_sw" ] }, + { "x": -4, "y": -1, "parts": [ "frame#vertical", "halfboard#sw" ] }, { "x": -4, "y": -1, "parts": [ "wheel_mount_medium", "wheel" ] }, - { "x": -3, "y": -1, "parts": [ "frame_vertical", "windshield_vertical_left" ] }, - { "x": -2, "y": -1, "parts": [ "frame_vertical", "windshield_vertical_left" ] }, - { "x": -1, "y": -1, "parts": [ "frame_vertical", "windshield_vertical_left" ] }, - { "x": 0, "y": -1, "parts": [ "frame_vertical", "windshield_vertical_left" ] }, - { "x": 1, "y": -1, "parts": [ "frame_vertical", "windshield_nw" ] }, + { "x": -3, "y": -1, "parts": [ "frame#vertical", "windshield#vertical_left" ] }, + { "x": -2, "y": -1, "parts": [ "frame#vertical", "windshield#vertical_left" ] }, + { "x": -1, "y": -1, "parts": [ "frame#vertical", "windshield#vertical_left" ] }, + { "x": 0, "y": -1, "parts": [ "frame#vertical", "windshield#vertical_left" ] }, + { "x": 1, "y": -1, "parts": [ "frame#vertical", "windshield#nw" ] }, { "x": 1, "y": -1, "parts": [ "wheel_mount_medium_steerable", "wheel" ] }, - { "x": -4, "y": 0, "parts": [ "frame_vertical", "door_rear" ] }, - { "x": -3, "y": 0, "parts": [ "frame_vertical", "seat", "seatbelt", "roof" ] }, - { "x": -2, "y": 0, "parts": [ "frame_vertical", "box", "dashboard", "stereo", "roof" ] }, - { "x": -1, "y": 0, "parts": [ "frame_vertical", "windshield_horizontal_front" ] }, - { "x": 0, "y": 0, "parts": [ "frame_vertical", "robot_controls", "roof" ] }, - { "x": 1, "y": 0, "parts": [ "frame_vertical", "windshield_horizontal_front", "headlight" ] }, - { "x": -4, "y": 1, "parts": [ "frame_vertical", "door_rear" ] }, - { "x": -3, "y": 1, "parts": [ "frame_vertical", "seat", "seatbelt", "roof" ] }, - { "x": -2, "y": 1, "parts": [ "frame_vertical", "seat", "seatbelt", "roof" ] }, - { "x": -1, "y": 1, "parts": [ "frame_vertical", "windshield_horizontal_front", "headlight" ] }, - { "x": 0, "y": 1, "parts": [ "frame_vertical", "windshield_horizontal_front", "engine_electric_large" ] }, - { "x": 1, "y": 1, "parts": [ "frame_vertical", "windshield_horizontal_front" ] }, - { "x": -4, "y": 2, "parts": [ "frame_vertical", "halfboard_se" ] }, + { "x": -4, "y": 0, "parts": [ "frame#vertical", "door#rear" ] }, + { "x": -3, "y": 0, "parts": [ "frame#vertical", "seat", "seatbelt", "roof" ] }, + { "x": -2, "y": 0, "parts": [ "frame#vertical", "box", "dashboard", "stereo", "roof" ] }, + { "x": -1, "y": 0, "parts": [ "frame#vertical", "windshield#horizontal_front" ] }, + { "x": 0, "y": 0, "parts": [ "frame#vertical", "robot_controls", "roof" ] }, + { "x": 1, "y": 0, "parts": [ "frame#vertical", "windshield#horizontal_front", "headlight" ] }, + { "x": -4, "y": 1, "parts": [ "frame#vertical", "door#rear" ] }, + { "x": -3, "y": 1, "parts": [ "frame#vertical", "seat", "seatbelt", "roof" ] }, + { "x": -2, "y": 1, "parts": [ "frame#vertical", "seat", "seatbelt", "roof" ] }, + { "x": -1, "y": 1, "parts": [ "frame#vertical", "windshield#horizontal_front", "headlight" ] }, + { "x": 0, "y": 1, "parts": [ "frame#vertical", "windshield#horizontal_front", "engine_electric_large" ] }, + { "x": 1, "y": 1, "parts": [ "frame#vertical", "windshield#horizontal_front" ] }, + { "x": -4, "y": 2, "parts": [ "frame#vertical", "halfboard#se" ] }, { "x": -4, "y": 2, "parts": [ "wheel_mount_medium", "wheel" ] }, - { "x": -3, "y": 2, "parts": [ "frame_vertical", "door_right" ] }, - { "x": -2, "y": 2, "parts": [ "frame_vertical", "door_right" ] }, - { "x": -1, "y": 2, "parts": [ "frame_vertical", "windshield_ne" ] }, - { "x": 0, "y": 2, "parts": [ "frame_vertical", "halfboard_vertical_right" ] }, + { "x": -3, "y": 2, "parts": [ "frame#vertical", "door#right" ] }, + { "x": -2, "y": 2, "parts": [ "frame#vertical", "door#right" ] }, + { "x": -1, "y": 2, "parts": [ "frame#vertical", "windshield#ne" ] }, + { "x": 0, "y": 2, "parts": [ "frame#vertical", "halfboard#vertical_right" ] }, { "x": 0, "y": 2, "parts": [ "storage_battery_mount", "storage_battery_removable" ] }, - { "x": 1, "y": 2, "parts": [ "frame_vertical", "halfboard_ne" ] }, + { "x": 1, "y": 2, "parts": [ "frame#vertical", "halfboard#ne" ] }, { "x": 1, "y": 2, "parts": [ "storage_battery_mount", "storage_battery_removable" ] }, { "x": 1, "y": 2, "parts": [ "wheel_mount_medium_steerable", "wheel" ] } ] @@ -198,65 +198,119 @@ "type": "vehicle", "name": "Armored Robot Carrier", "parts": [ - { "x": -2, "y": -1, "parts": [ "hdframe_horizontal", "hdboard_horizontal", "plating_military" ] }, - { "x": -2, "y": -2, "parts": [ "hdframe_sw", "hdboard_sw", "muffler", "plating_military" ] }, - { "x": -2, "y": 0, "parts": [ "hdframe_horizontal", "hddoor_opaque_rear", "omnicam", "plating_military" ] }, - { "x": -2, "y": 1, "parts": [ "hdframe_horizontal", "hdboard_horizontal", "plating_military" ] }, - { "x": -2, "y": 2, "parts": [ "hdframe_se", "hdboard_se", "muffler", "plating_military" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_vertical_2", "robot_cargo", "hdroof" ] }, - { "x": -1, "y": -2, "parts": [ "hdframe_vertical", "hddoor_opaque_left", "plating_military" ] }, - { "x": -1, "y": 0, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_vertical_2", "robot_cargo", "hdroof" ] }, - { "x": -1, "y": 2, "parts": [ "hdframe_vertical", "hddoor_opaque_right", "plating_military" ] }, - { "x": -3, "y": -2, "part": "external_tank", "fuel": "diesel" }, - { "x": -3, "y": 2, "part": "external_tank", "fuel": "diesel" }, - { "x": 0, "y": -1, "parts": [ "hdframe_vertical_2", "robot_cargo", "hdroof" ] }, - { "x": 0, "y": -2, "parts": [ "hdframe_vertical", "hddoor_opaque_left", "plating_military" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#horizontal", "hdboard#horizontal", "plating_military" ] }, + { "x": -2, "y": -2, "parts": [ "hdframe#sw", "hdboard#sw", "muffler", "plating_military" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#horizontal", "hddoor_opaque#rear", "omnicam", "plating_military" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#horizontal", "hdboard#horizontal", "plating_military" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#se", "hdboard#se", "muffler", "plating_military" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#vertical_2", "robot_cargo", "hdroof" ] }, + { "x": -1, "y": -2, "parts": [ "hdframe#vertical", "hddoor_opaque#left", "plating_military" ] }, + { "x": -1, "y": 0, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#vertical_2", "robot_cargo", "hdroof" ] }, + { "x": -1, "y": 2, "parts": [ "hdframe#vertical", "hddoor_opaque#right", "plating_military" ] }, + { "x": -3, "y": -2, "parts": [ { "part": "external_tank", "fuel": "diesel" } ] }, + { "x": -3, "y": 2, "parts": [ { "part": "external_tank", "fuel": "diesel" } ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#vertical_2", "robot_cargo", "hdroof" ] }, + { "x": 0, "y": -2, "parts": [ "hdframe#vertical", "hddoor_opaque#left", "plating_military" ] }, { "x": 0, "y": -2, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 0, "y": 0, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_vertical_2", "robot_cargo", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_vertical", "hddoor_opaque_right", "plating_military" ] }, + { "x": 0, "y": 0, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#vertical_2", "robot_cargo", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#vertical", "hddoor_opaque#right", "plating_military" ] }, { "x": 0, "y": 2, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_vertical_2", "robot_cargo", "hdroof" ] }, - { "x": 1, "y": -2, "parts": [ "hdframe_vertical", "hddoor_opaque_left", "plating_military" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#vertical_2", "robot_cargo", "hdroof" ] }, + { "x": 1, "y": -2, "parts": [ "hdframe#vertical", "hddoor_opaque#left", "plating_military" ] }, { "x": 1, "y": -2, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 1, "y": 0, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "x": 1, "y": 1, "parts": [ "hdframe_vertical_2", "robot_cargo", "hdroof" ] }, - { "x": 1, "y": 2, "parts": [ "hdframe_vertical", "hddoor_opaque_right", "plating_military" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#vertical_2", "robot_cargo", "hdroof" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#vertical", "hddoor_opaque#right", "plating_military" ] }, { "x": 1, "y": 2, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_vertical_2", "robot_cargo", "hdroof" ] }, - { "x": 2, "y": -2, "parts": [ "hdframe_vertical", "hddoor_opaque_left", "plating_military" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#vertical_2", "robot_cargo", "hdroof" ] }, + { "x": 2, "y": -2, "parts": [ "hdframe#vertical", "hddoor_opaque#left", "plating_military" ] }, { "x": 2, "y": -2, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 2, "y": 0, "parts": [ "hdframe_vertical_2", "aisle_horizontal", "hdroof" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_vertical_2", "robot_cargo", "hdroof" ] }, - { "x": 2, "y": 2, "parts": [ "hdframe_vertical", "hddoor_opaque_right", "plating_military" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#vertical_2", "aisle#horizontal", "hdroof" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#vertical_2", "robot_cargo", "hdroof" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#vertical", "hddoor_opaque#right", "plating_military" ] }, { "x": 2, "y": 2, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 3, "y": -1, "parts": [ "hdframe_vertical_2", "seat", "controls", "dashboard" ] }, - { "x": 3, "y": -1, "parts": [ "cam_control", "vehicle_clock", "seatbelt_heavyduty", "hdroof" ] }, - { "x": 3, "y": -2, "part": "hdframe_vertical" }, + { "x": 3, "y": -1, "parts": [ "hdframe#vertical_2", "seat", "controls", "dashboard" ] }, + { "x": 3, "y": -1, "parts": [ "cam_control", "seatbelt_heavyduty", "hdroof" ] }, + { "x": 3, "y": -2, "parts": [ "hdframe#vertical" ] }, { "x": 3, "y": -2, "parts": [ "wheel_mount_heavy_steerable", "wheel_armor" ] }, - { "x": 3, "y": -2, "parts": [ "hdboard_vertical_left", "omnicam", "plating_military" ] }, - { "x": 3, "y": 0, "parts": [ "hdframe_vertical_2", "stowboard_vertical", "hdroof" ] }, + { "x": 3, "y": -2, "parts": [ "hdboard#vertical_left", "omnicam", "plating_military" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#vertical_2", "stowboard#vertical", "hdroof" ] }, { "x": 3, "y": 0, "parts": [ "diesel_engine_v6", "battery_car", "alternator_truck", "plating_military" ] }, - { "x": 3, "y": 1, "parts": [ "hdframe_vertical_2", "cam_control", "plating_military" ] }, - { "x": 3, "y": 1, "part": "tank_small", "fuel": "diesel" }, + { "x": 3, "y": 1, "parts": [ "hdframe#vertical_2", "cam_control", "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ { "part": "tank_small", "fuel": "diesel" } ] }, { "x": 3, "y": 1, "parts": [ "seat", "seatbelt_heavyduty", "turret_mount" ] }, - { "x": 3, "y": 1, "part": "turret_m2browning", "ammo": 60, "ammo_qty": [ 10, 100 ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_vertical", "hdboard_vertical_right" ] }, + { "x": 3, "y": 1, "parts": [ { "part": "turret_m2browning", "ammo": 60, "ammo_qty": [ 10, 100 ] } ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#vertical", "hdboard#vertical_right" ] }, { "x": 3, "y": 2, "parts": [ "wheel_mount_heavy_steerable", "wheel_armor", "omnicam", "plating_military" ] }, - { "x": 4, "y": -1, "parts": [ "hdframe_horizontal", "reinforced_windshield" ] }, + { "x": 4, "y": -1, "parts": [ "hdframe#horizontal", "reinforced_windshield" ] }, { "x": 4, "y": -1, "parts": [ "headlight_reinforced", "plating_military" ] }, - { "x": 4, "y": -2, "parts": [ "hdframe_nw", "hdboard_nw", "plating_military" ] }, - { "x": 4, "y": 0, "parts": [ "hdframe_horizontal", "hdboard_horizontal", "plating_military" ] }, - { "x": 4, "y": 1, "parts": [ "hdframe_horizontal", "hdboard_horizontal", "headlight_reinforced" ] }, - { "x": 4, "y": 1, "part": "plating_military" }, - { "x": 4, "y": 2, "parts": [ "hdframe_ne", "hdboard_ne", "plating_military" ] }, - { "x": 5, "y": -1, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal", "plating_military" ] }, - { "x": 5, "y": -2, "parts": [ "hdframe_nw", "hdhalfboard_nw", "plating_military" ] }, - { "x": 5, "y": 0, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal", "horn_big" ] }, - { "x": 5, "y": 0, "part": "plating_military" }, - { "x": 5, "y": 1, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal", "plating_military" ] }, - { "x": 5, "y": 2, "parts": [ "hdframe_ne", "hdhalfboard_ne", "plating_military" ] } + { "x": 4, "y": -2, "parts": [ "hdframe#nw", "hdboard#nw", "plating_military" ] }, + { "x": 4, "y": 0, "parts": [ "hdframe#horizontal", "hdboard#horizontal", "plating_military" ] }, + { "x": 4, "y": 1, "parts": [ "hdframe#horizontal", "hdboard#horizontal", "headlight_reinforced" ] }, + { "x": 4, "y": 1, "parts": [ "plating_military" ] }, + { "x": 4, "y": 2, "parts": [ "hdframe#ne", "hdboard#ne", "plating_military" ] }, + { "x": 5, "y": -1, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal", "plating_military" ] }, + { "x": 5, "y": -2, "parts": [ "hdframe#nw", "hdhalfboard#nw", "plating_military" ] }, + { "x": 5, "y": 0, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal", "horn_big" ] }, + { "x": 5, "y": 0, "parts": [ "plating_military" ] }, + { "x": 5, "y": 1, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal", "plating_military" ] }, + { "x": 5, "y": 2, "parts": [ "hdframe#ne", "hdhalfboard#ne", "plating_military" ] } + ] + }, + { + "id": "car_sports_atomic", + "type": "vehicle", + "//": "This definition is here for regression testing, do not move.", + "name": "Atomic Sports Car", + "blueprint": [ + [ "o--+-o" ], + [ "=>'#'|" ], + [ "=>'#'|" ], + [ "o--+-o" ] + ], + "parts": [ + { "x": 0, "y": 0, "parts": [ "frame#cross", "seat_leather", "seatbelt", "controls" ] }, + { "x": 0, "y": 0, "parts": [ "dashboard", "vehicle_alarm", "stereo", "horn_car", "roof" ] }, + { "x": 0, "y": -1, "parts": [ "frame#vertical_left", "door#sw" ] }, + { "x": 0, "y": 1, "parts": [ "frame#cross", "seat_leather", "seatbelt", "roof" ] }, + { "x": 0, "y": 2, "parts": [ "frame#vertical_right", "door#se" ] }, + { "x": 1, "y": -1, "parts": [ "frame#vertical_T_left", "windshield#nw" ] }, + { "x": 1, "y": 0, "parts": [ "frame#horizontal_2", "windshield#horizontal_front" ] }, + { "x": 1, "y": 1, "parts": [ "frame#horizontal_2", "windshield#horizontal_front" ] }, + { "x": 1, "y": 2, "parts": [ "frame#vertical_T_right", "windshield#ne" ] }, + { "x": 2, "y": -1, "parts": [ "frame#nw", "halfboard#nw", "wheel_mount_medium_steerable" ] }, + { "x": 2, "y": -1, "parts": [ "wheel_slick", "headlight" ] }, + { "x": 2, "y": 0, "parts": [ "frame#horizontal_front", "halfboard#horizontal_front" ] }, + { "x": 2, "y": 1, "parts": [ "frame#horizontal_front", "halfboard#horizontal_front" ] }, + { "x": 2, "y": 2, "parts": [ "frame#ne", "halfboard#ne", "wheel_mount_medium_steerable" ] }, + { "x": 2, "y": 2, "parts": [ "wheel_slick", "headlight" ] }, + { "x": -1, "y": -1, "parts": [ "frame#vertical_left", "halfboard#vertical_left" ] }, + { "x": -1, "y": 0, "parts": [ "frame#cross", "windshield#horizontal_rear", "roof" ] }, + { "x": -1, "y": 1, "parts": [ "frame#cross", "windshield#horizontal_rear", "roof" ] }, + { "x": -1, "y": 2, "parts": [ "frame#vertical_right", "halfboard#vertical_right" ] }, + { "x": -2, "y": -1, "parts": [ "frame#vertical_left", "halfboard#vertical_left" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#cross", "minireactor", "halfboard#cover" ] }, + { "x": -2, "y": 0, "parts": [ "plating_steel" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#cross", "storage_battery_mount" ] }, + { "x": -2, "y": 1, "parts": [ "storage_battery_removable", "halfboard#cover" ] }, + { "x": -2, "y": 1, "parts": [ "plating_steel" ] }, + { "x": -2, "y": 2, "parts": [ "frame#vertical_right", "halfboard#vertical_right" ] }, + { "x": -3, "y": -1, "parts": [ "frame#sw", "halfboard#sw", "wheel_mount_medium" ] }, + { "x": -3, "y": -1, "parts": [ "wheel_slick" ] }, + { "x": -3, "y": 0, "parts": [ "hdframe#horizontal_rear", "halfboard#horizontal_rear" ] }, + { "x": -3, "y": 0, "parts": [ "engine_electric_enhanced", "plating_steel" ] }, + { "x": -3, "y": 1, "parts": [ "hdframe#horizontal_rear", "halfboard#horizontal" ] }, + { "x": -3, "y": 1, "parts": [ "engine_electric_enhanced", "plating_steel" ] }, + { "x": -3, "y": 2, "parts": [ "frame#se", "halfboard#se", "wheel_mount_medium" ] }, + { "x": -3, "y": 2, "parts": [ "wheel_slick" ] } + ], + "items": [ + { "x": 0, "y": 0, "chance": 16, "items": [ "coke" ] }, + { "x": 0, "y": 0, "chance": 8, "item_groups": [ "snacks_fancy" ] }, + { "x": 0, "y": 1, "chance": 10, "item_groups": [ "snacks_fancy" ] }, + { "x": 0, "y": 1, "chance": 5, "item_groups": [ "female_underwear" ] } ] } ] diff --git a/data/Mainline_mods/Mods/Backrooms/README.md b/data/Mainline_mods/Mods/Backrooms/README.md index 78ba319b1..3d93c9393 100644 --- a/data/Mainline_mods/Mods/Backrooms/README.md +++ b/data/Mainline_mods/Mods/Backrooms/README.md @@ -1,20 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Backrooms CDDA](#backrooms-cdda) - - [Warning: You MUST choose the scenario "Backrooms" when creating a character!](#warning-you-must-choose-the-scenario-backrooms-when-creating-a-character) -- [Questions](#questions) - - [What's the current state of the mod?](#whats-the-current-state-of-the-mod) - - [Is this a gimmick mod?](#is-this-a-gimmick-mod) - - [Will this work with other mods?](#will-this-work-with-other-mods) - - [I found something weird!](#i-found-something-weird) - - [No, I mean weirder than that...](#no-i-mean-weirder-than-that) - - [What are the Red Rooms for?](#what-are-the-red-rooms-for) - - [How do I survive?](#how-do-i-survive) - - - # Backrooms CDDA A Backrooms-themed mod for Cataclysm: Dark Days Ahead. diff --git a/data/Mainline_mods/Mods/Backrooms/artifacts.json b/data/Mainline_mods/Mods/Backrooms/artifacts.json new file mode 100644 index 000000000..625ec232e --- /dev/null +++ b/data/Mainline_mods/Mods/Backrooms/artifacts.json @@ -0,0 +1,121 @@ +[ + { + "type": "GENERIC", + "id": "backrooms_strange_object", + "symbol": "%", + "color": "light_gray", + "name": { "str": "strange object" }, + "description": "An object of uncertain origin, unusually heavy for its size.", + "price": 0, + "price_postapoc": 0, + "material": [ "unobtanium" ], + "volume": "150 ml", + "weight": "2856 g", + "longest_side": "26 cm", + "flags": [ "TRADER_AVOID", "RADIOACTIVE", "LEAK_DAM" ], + "variant_type": "generic", + "variants": [ + { + "id": "backrooms_strange_object_the_stapler", + "description": "It looks like a glob of white plastic streaked with bits of red and black has melted over a jagged chunk of mixed scrap metals. There are two large and sharp pieces of metal jutting out from the side in parallel. The metal is very slightly, inexplicably slimy to the touch. If you hold it up to your ear, it emits a low, oscillating hum very quietly. Unsettling…", + "weight": 1, + "color": "red", + "name": { "str": "strange object" }, + "append": true + }, + { + "id": "backrooms_strange_object_hybrid_fossil", + "description": "It's a brown, flaky rock just bigger than your fist. Horrifically, what seem to be small animal bones stick out of it at weird angles. Something that looks suspiciously like blood very slowly oozes out from between the layers in the rock - almost imperceptibly slow - almost as if something living were freshly crushed between the sedimentary layers. But that would be impossible…", + "weight": 1, + "color": "brown", + "name": { "str": "strange object" }, + "append": true + }, + { + "id": "backrooms_strange_object_disappearing_box", + "description": "It's a small wooden cuboid with a large rectangular hole running from one side to the other. The wood is well-treated and it seems completely mundane at first.\n\nIf you look through the hole, everything looks normal. It's only when you wave your hand in front that you realize that you can't see yourself! If you stick your finger inside the hole, it doesn't seem to come out the other side. How is that possible?!", + "weight": 1, + "color": "brown", + "name": { "str": "strange object" }, + "append": true + }, + { + "id": "backrooms_strange_object_bong_chihuly", + "description": "You could be wrong, but it appears to be maybe 6 or 7 colorful glass bongs fused together in a ball-shaped mess of melted glass, reminding you strangely of an art exhibition you saw once. When you pick up the object, you notice a pale purple ooze trapped in the middle of the glass meld. It's iridescent, colloidal, and slightly viscous, although it doesn't remind you of any fluid you've ever seen before.", + "weight": 1, + "name": { "str": "strange object" }, + "append": true + }, + { + "id": "backrooms_strange_object_demon_horn", + "description": "It's colored jet black and looks suspiciously like the ridged horn of a goat, only seemingly studded with red gems and carved with inscriptions. You're no expert, but these inscriptions are unlike anything you've ever seen humans make, with many geometric shapes inside squares that could be words or characters. There are thin, intricate lines weaving all over the horn, curving in a way that you're sure could only be achieved with laser engraving technology yet you feel certain they were not.", + "weight": 1, + "color": "black", + "name": { "str": "strange object" }, + "append": true + }, + { + "id": "backrooms_strange_object_nineteenth_bible", + "description": "It appears like a normal book with a bright blue cover from a distance, but when you pick the object up you notice it's simply a thick slab of some dense material shaped like a book. It's oddly stocky and brightly colored, textured with low-resolution images almost like an object that fell straight out of an old video game. On the cover is just the number \"19\" and below it the words \"A new bible by\" but there's no author listed. In fact, there's no other text on the entire object.", + "weight": 1, + "color": "light_blue", + "name": { "str": "strange object" }, + "append": true + }, + { + "id": "backrooms_strange_object_dimensional_amber", + "description": "It seems to be a heavy chunk of light pink amber. Suspended inside the amber are… fossils? You're unsure what to call them.\n\nOne appears to be a small ball of hair with copper wires reaching out in one direction, reminiscent of an amoeba reaching for something. Another appears to be a tiny fern, only made out of a highly iridescent metal, with blades quite literally as thin as a razor. A third, particularly horrifying one appears to be the shrunken head of a human with a network of dark red nerves instead of hair.", + "weight": 1, + "color": "pink", + "name": { "str": "strange object" }, + "append": true + }, + { + "id": "backrooms_strange_object_meat_bopit", + "description": "It seems almost like a children's toy has somehow melted into a solid chunk of brass. There are bright red, green, and yellow plastic pieces fused into the sides and a very distinct purple button in the middle. When you press it, however, there's a sickening squelch and you can't help but feel like you're pressing into a pile of ground meat protected by this metal outer shell. Disgusting.", + "weight": 1, + "color": "yellow", + "name": { "str": "strange object" }, + "append": true + }, + { + "id": "backrooms_strange_object_velvet_rock", + "description": "It seems like a small, jagged rock uniformly and evenly covered in bright red velvet. You feel certain that the rock came to be this way through some supernatural process. When you hold it to your ear, it emits a very low, oscillating hum. Very strange.", + "weight": 1, + "color": "red", + "name": { "str": "strange object" }, + "append": true + }, + { + "id": "backrooms_strange_object_impossible_rainstick", + "description": "It appears to be a small black box made out of some kind of hard metal. Although it has no discernable openings, you call it a box because when you shake it you can feel things moving around inside. Strangely, though, what's inside always seems to be… changing. One moment it's a liquid, the next it feels like marbles or rocks, and then the next it feels like sand.\n\nAlthough probably inconsequential, the object emits a fairly strong odor of ginger at all times.", + "weight": 1, + "color": "black", + "name": { "str": "strange object" }, + "append": true + } + ], + "category": "other" + }, + { + "type": "item_group", + "id": "backrooms_strange_object_group", + "subtype": "distribution", + "items": [ [ "backrooms_strange_object", 100 ] ] + }, + { + "type": "item_group", + "id": "backrooms_artifacts", + "subtype": "distribution", + "entries": [ + { + "group": "backrooms_strange_object_group", + "artifact": { + "procgen_id": "cult", + "rules": { "power_level": 1250, "max_attributes": 4, "max_negative_power": -1000, "resonant": true } + }, + "prob": 100 + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Backrooms/itemgroups.json b/data/Mainline_mods/Mods/Backrooms/itemgroups.json index 67ed5dc2f..fe4bb2f62 100644 --- a/data/Mainline_mods/Mods/Backrooms/itemgroups.json +++ b/data/Mainline_mods/Mods/Backrooms/itemgroups.json @@ -114,7 +114,8 @@ { "group": "surgery", "prob": 40 }, { "group": "ammo_parts", "prob": 50 }, { "group": "antique_ammo", "prob": 50 }, - { "group": "mut_lab", "prob": 20 } + { "group": "mut_lab", "prob": 20 }, + { "group": "backrooms_artifacts", "prob": 1 } ] }, { @@ -293,10 +294,10 @@ { "group": "mutagens", "prob": 25 }, { "group": "guns_energy", "prob": 5 }, { "group": "military", "prob": 50 }, - { "group": "mil_hw", "prob": 25 }, { "group": "science", "prob": 100 }, { "group": "guns_launcher_milspec", "prob": 5 }, - { "group": "vault", "prob": 50 } + { "group": "vault", "prob": 50 }, + { "group": "backrooms_artifacts", "prob": 5 } ] }, { @@ -631,13 +632,14 @@ "//": "Any generic office desk, for personal effects and office supplies.", "subtype": "distribution", "entries": [ - { "group": "cubical_office", "count": [ 1, 6 ], "prob": 50 }, - { "group": "SUS_office_desk", "prob": 50 }, - { "group": "bedroom", "count": [ 1, 3 ], "prob": 5 }, - { "group": "office_mess", "count": [ 1, 6 ], "prob": 25 }, - { "group": "office_supplies", "count": [ 2, 6 ], "prob": 50 }, - { "group": "npc_hacker", "prob": 10 }, - { "group": "school", "count": [ 1, 4 ], "prob": 20 } + { "group": "cubical_office", "count": [ 1, 6 ], "prob": 250 }, + { "group": "SUS_office_desk", "prob": 250 }, + { "group": "bedroom", "count": [ 1, 3 ], "prob": 25 }, + { "group": "office_mess", "count": [ 1, 6 ], "prob": 125 }, + { "group": "office_supplies", "count": [ 2, 6 ], "prob": 250 }, + { "group": "npc_hacker", "prob": 50 }, + { "group": "school", "count": [ 1, 4 ], "prob": 100 }, + { "group": "backrooms_artifacts", "prob": 1 } ] }, { @@ -645,7 +647,11 @@ "type": "item_group", "//": "Any generic trashcan. For trash.", "subtype": "distribution", - "entries": [ { "group": "trash", "count": [ 1, 5 ], "prob": 100 }, { "group": "trash_forest", "count": [ 1, 4 ], "prob": 10 } ] + "entries": [ + { "group": "trash", "count": [ 1, 5 ], "prob": 1000 }, + { "group": "trash_forest", "count": [ 1, 4 ], "prob": 100 }, + { "group": "backrooms_artifacts", "prob": 1 } + ] }, { "id": "backrooms_master_filing", diff --git a/data/Mainline_mods/Mods/Backrooms/modinfo.json b/data/Mainline_mods/Mods/Backrooms/modinfo.json index cae16262f..9646884f0 100644 --- a/data/Mainline_mods/Mods/Backrooms/modinfo.json +++ b/data/Mainline_mods/Mods/Backrooms/modinfo.json @@ -4,6 +4,7 @@ "id": "backrooms", "name": "The Backrooms", "authors": [ "TGW" ], + "maintainers": [ "onura46" ], "description": "A strange place between dimensions traps you. Can you survive among endless halls of yellowed carpet and harshly humming fluorescents?\n\nReplaces all normal worldgen: no wilderness, no rivers, no cities, no farms, no sky. Just endless, winding indoor halls of mildewy carpeting, faded drywall, desolate breakrooms and abandoned boardrooms.\n\nRecommended city size is 0. Play Now! (Default Scenario) is not supported.", "category": "total_conversion", "dependencies": [ "dda" ], diff --git a/data/Mainline_mods/Mods/Backrooms/monstergroups.json b/data/Mainline_mods/Mods/Backrooms/monstergroups.json index da43e36f8..5fc21be39 100644 --- a/data/Mainline_mods/Mods/Backrooms/monstergroups.json +++ b/data/Mainline_mods/Mods/Backrooms/monstergroups.json @@ -3,25 +3,25 @@ "name": "GROUP_BACKROOMS", "type": "monstergroup", "monsters": [ - { "group": "GROUP_ZOMBIE", "pack_size": [ 2, 12 ], "weight": 900 }, - { "group": "GROUP_PET_CATS", "pack_size": [ 1, 1 ], "weight": 20 }, - { "group": "GROUP_PET_DOGS", "pack_size": [ 1, 1 ], "weight": 20 }, + { "group": "GROUP_ZOMBIE", "pack_size": [ 1, 2 ], "weight": 920 }, + { "group": "GROUP_PET_CATS", "pack_size": [ 1, 1 ], "weight": 15 }, + { "group": "GROUP_PET_DOGS", "pack_size": [ 1, 1 ], "weight": 15 }, { "monster": "mon_mutant_experimental", "weight": 1, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, { "monster": "mon_broken_cyborg", "weight": 1, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, { "monster": "mon_zomborg", "weight": 1, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, { "monster": "mon_skeleton_brute", "weight": 1, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_cougar", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_bobcat", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_bear", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_moose", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_wolf", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, + { "monster": "mon_cougar", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, + { "monster": "mon_bobcat", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, + { "monster": "mon_bear", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, + { "monster": "mon_moose", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, + { "monster": "mon_wolf", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, { "monster": "mon_wolf_mutant_huge", "weight": 1, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_coyote", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_duck", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_goose_canadian", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_raccoon", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_opossum", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, - { "monster": "mon_chipmunk", "weight": 5, "cost_multiplier": 1, "pack_size": [ 1, 1 ] } + { "monster": "mon_coyote", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, + { "monster": "mon_duck", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, + { "monster": "mon_goose_canadian", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, + { "monster": "mon_raccoon", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, + { "monster": "mon_opossum", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] }, + { "monster": "mon_chipmunk", "weight": 4, "cost_multiplier": 1, "pack_size": [ 1, 1 ] } ] } ] diff --git a/data/Mainline_mods/Mods/Backrooms/overmap_terrain.json b/data/Mainline_mods/Mods/Backrooms/overmap_terrain.json index 7dda19656..3883c28cd 100644 --- a/data/Mainline_mods/Mods/Backrooms/overmap_terrain.json +++ b/data/Mainline_mods/Mods/Backrooms/overmap_terrain.json @@ -11,7 +11,7 @@ "sym": ".", "color": "white", "see_cost": 20, - "spawns": { "group": "GROUP_BACKROOMS", "population": [ 0, 1 ], "chance": 50 }, + "spawns": { "group": "GROUP_BACKROOMS", "population": [ 2, 15 ], "chance": 40 }, "extras": "field" }, { diff --git a/data/Mainline_mods/Mods/Backrooms/palettes.json b/data/Mainline_mods/Mods/Backrooms/palettes.json index b2d60680c..687c323cf 100644 --- a/data/Mainline_mods/Mods/Backrooms/palettes.json +++ b/data/Mainline_mods/Mods/Backrooms/palettes.json @@ -36,7 +36,6 @@ "r": [ "t_carpet_backrooms" ], "s": [ "t_carpet_backrooms" ], "t": [ "t_carpet_backrooms" ], - "u": [ "t_console_broken" ], "x": [ "t_carpet_backrooms" ], "y": [ "t_carpet_backrooms" ], "z": [ "t_carpet_backrooms" ], @@ -44,6 +43,7 @@ }, "furniture": { "a": [ [ "f_null", 5 ], [ "f_chair", 10 ] ], + "u": [ "f_console_broken" ], "b": [ [ "f_null", 5 ], [ "f_camp_chair", 10 ], [ "f_chair", 2 ] ], "c": [ "f_table" ], "e": [ "f_table" ], @@ -66,6 +66,13 @@ }, "liquids": { "l": { "liquid": "water_clean", "amount": [ 0, 30 ] } }, "items": { + " ": { + "item": { + "subtype": "distribution", + "entries": [ { "item": "null", "prob": 20000 }, { "group": "backrooms_artifacts", "prob": 1 } ] + }, + "chance": 100 + }, "c": [ { "item": "backrooms_master_table_office", "chance": 25 } ], "e": [ { "item": "backrooms_master_table_office", "chance": 25 } ], "f": [ { "item": "backrooms_master_desk", "chance": 33 } ], @@ -114,7 +121,7 @@ "I": [ "f_locker" ], "J": [ "f_locker" ], "K": [ "f_workbench" ], - "L": [ "f_water_heater" ], + "L": [ "f_water_heater", "f_water_heater_family" ], "M": [ "f_standing_tank" ], "N": [ "f_air_conditioner" ], "P": [ "f_air_filter" ], diff --git a/data/Mainline_mods/Mods/Backrooms/portal_storm_effect_on_condition.json b/data/Mainline_mods/Mods/Backrooms/portal_storm_effect_on_condition.json new file mode 100644 index 000000000..0579ec075 --- /dev/null +++ b/data/Mainline_mods/Mods/Backrooms/portal_storm_effect_on_condition.json @@ -0,0 +1,9 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_STORM_WARN_OR_CAUSE_RECURRING", + "recurrence": [ "10 days", "11 days" ], + "global": true, + "effect": [ ] + } +] diff --git a/data/Mainline_mods/Mods/Backrooms/regional_map_settings.json b/data/Mainline_mods/Mods/Backrooms/regional_map_settings.json index 441fbcfd1..3f8a2f47b 100644 --- a/data/Mainline_mods/Mods/Backrooms/regional_map_settings.json +++ b/data/Mainline_mods/Mods/Backrooms/regional_map_settings.json @@ -140,7 +140,7 @@ }, "map_extras": { "field": { - "chance": 20, + "chance": 40, "extras": { "mx_teleporter_node": 100, "mx_casings": 50, @@ -185,19 +185,7 @@ "base_wind": 3.4, "base_wind_distrib_peaks": 80, "base_wind_season_variation": 50, - "weather_types": [ - "clear", - "sunny", - "cloudy", - "light_drizzle", - "drizzle", - "rain", - "thunder", - "lightning", - "flurries", - "snowing", - "snowstorm" - ] + "weather_black_list": [ "early_portal_storm", "portal_storm" ] }, "overmap_feature_flag_settings": { "clear_blacklist": false, "blacklist": [ "LAB" ], "clear_whitelist": false, "whitelist": [ ] } } diff --git a/data/Mainline_mods/Mods/Backrooms/scenarios.json b/data/Mainline_mods/Mods/Backrooms/scenarios.json index 1d35cffe0..cacc51dbe 100644 --- a/data/Mainline_mods/Mods/Backrooms/scenarios.json +++ b/data/Mainline_mods/Mods/Backrooms/scenarios.json @@ -9,6 +9,15 @@ "start_name": "The Backrooms", "flags": [ "LONE_START" ] }, + { + "type": "scenario", + "id": "backroom_dweller_starternpc", + "name": "Backrooms (NPC EDITION)", + "points": 0, + "description": "What is this place? You can't seem to find your way back out. But hey, at least you aren't alone. Will you cannibalize them as a last resort? Maybe get them to surgically implant bionics into you? Just keep them around for company? Maybe you two will protect each other? The possibilities have just widened, my friend, for you are no longer one. You are two, and that's better than what it used to be like.", + "allowed_locs": [ "sloc_backrooms" ], + "start_name": "The Backrooms" + }, { "type": "start_location", "id": "sloc_backrooms", @@ -18,6 +27,6 @@ { "type": "SCENARIO_BLACKLIST", "subtype": "whitelist", - "scenarios": [ "backroom_dweller" ] + "scenarios": [ "backroom_dweller", "backroom_dweller_starternpc" ] } ] diff --git a/data/Mainline_mods/Mods/Backrooms/snippets.json b/data/Mainline_mods/Mods/Backrooms/snippets.json index 5e5cddad3..43cfcd7e8 100644 --- a/data/Mainline_mods/Mods/Backrooms/snippets.json +++ b/data/Mainline_mods/Mods/Backrooms/snippets.json @@ -234,7 +234,7 @@ { "id": "backrooms_unknown_news_1", "text": { - "str": "\"St. Mary bingo will be hel777 B24G43A23K19T99 assistance with bond. The empty ap... , , , thsi empty abyss, floating on a salt laboratory abbbbbbbooooooooooooooannaannan.\"", + "str": "\"St. Mary bingo will be hel777 B24G43A23K19T99 assistance with bond. The empty ap… , , , thsi empty abyss, floating on a salt laboratory abbbbbbbooooooooooooooannaannan.\"", "//NOLINT(cata-text-style)": "intentional format" } }, diff --git a/data/Mainline_mods/Mods/BlazeIndustries/furniture_and_terrain/blaze_appliances.json b/data/Mainline_mods/Mods/BlazeIndustries/furniture_and_terrain/blaze_appliances.json index d903f01c9..71b6372c3 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/furniture_and_terrain/blaze_appliances.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/furniture_and_terrain/blaze_appliances.json @@ -1,44 +1,17 @@ [ - { - "type": "vehicle_part", - "id": "ap_afs_metal_rig", - "name": { "str": "MetalMaster forge buddy" }, - "description": "A welding and metalworking station, powered by the vehicle's battery. 'e'xamine the forge rig to utilize its welder or soldering iron; you'll still need glare protection.", - "item": "afs_metal_rig", - "flags": [ "CARGO", "OBSTACLE", "APPLIANCE" ], - "copy-from": "afs_metal_rig" - }, - { - "type": "vehicle_part", - "id": "ap_afs_cooking_rig", - "name": { "str": "cooking rig" }, - "description": "An all-in-one kitchen unit and chemistry lab. 'e'xamine it to use its hotplate to heat up food or drinks.", - "item": "afs_cooking_rig", - "flags": [ "CARGO", "OBSTACLE", "APPLIANCE", "FLAT_SURF" ], - "copy-from": "afs_cooking_rig" - }, - { - "type": "vehicle_part", - "id": "ap_afs_kitchen_rig", - "name": { "str": "KitchenMaster cooking buddy" }, - "description": "An all-in-one kitchen unit, chemistry lab, and food preparation area. 'e'xamine it to use its hotplate to heat up food or drinks.", - "item": "afs_kitchen_rig", - "flags": [ "CARGO", "OBSTACLE", "APPLIANCE", "FLAT_SURF" ], - "copy-from": "afs_kitchen_rig" - }, { "type": "vehicle_part", "id": "blaze_washing_machine", "copy-from": "washing_machine", "name": { "str": "full-size washing machine" }, - "symbol": "W", "categories": [ "cargo" ], "color": "light_blue", "looks_like": "f_washer", "durability": 200, "description": "A medium-sized household washing machine, converted to utilize vehicle power. When turned on, filthy items will be laundered.", - "epower": -400, - "size": 540, - "item": "household_washing_machine" + "epower": "-400 W", + "size": "135 L", + "item": "household_washing_machine", + "variants": [ { "symbols": "W", "symbols_broken": "#" } ] } ] diff --git a/data/Mainline_mods/Mods/BlazeIndustries/items/gun/grenade.json b/data/Mainline_mods/Mods/BlazeIndustries/items/gun/grenade.json index 6c5ece3ea..9929b6f76 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/items/gun/grenade.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/items/gun/grenade.json @@ -15,11 +15,11 @@ "ammo_type": "40x46mm", "casing": "40x46mm_m118_casing", "range": 40, - "bashing": 5, "dispersion": 30, "recoil": 225, "drop": "40mmEMP_act", - "effects": [ "COOKOFF", "NEVER_MISFIRES", "NO_EMBED" ] + "effects": [ "COOKOFF", "NEVER_MISFIRES", "NO_EMBED" ], + "melee_damage": { "bash": 5 } }, { "id": "40mmEMP_act", @@ -34,16 +34,8 @@ "material": [ "steel", "plastic" ], "symbol": "*", "color": "cyan", - "initial_charges": 0, - "max_charges": 0, - "turns_per_charge": 1, - "use_action": { - "type": "explosion", - "draw_explosion_radius": 8, - "draw_explosion_color": "light_blue", - "emp_blast_radius": 8, - "sound_volume": 0 - }, + "countdown_interval": "1 seconds", + "tick_action": { "type": "explosion", "draw_explosion_radius": 8, "draw_explosion_color": "light_blue", "emp_blast_radius": 8 }, "flags": [ "TRADER_AVOID" ] } ] diff --git a/data/Mainline_mods/Mods/BlazeIndustries/items/items.json b/data/Mainline_mods/Mods/BlazeIndustries/items/items.json index 45159485c..26d223099 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/items/items.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/items/items.json @@ -12,8 +12,8 @@ "looks_like": "scrap", "weight": "450 g", "volume": "100 ml", - "bashing": 1, - "to_hit": -2 + "to_hit": -2, + "melee_damage": { "bash": 1 } }, { "id": "afs_titanium_small", diff --git a/data/Mainline_mods/Mods/BlazeIndustries/items/materials.json b/data/Mainline_mods/Mods/BlazeIndustries/items/materials.json index cf474456f..9ac6859d0 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/items/materials.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/items/materials.json @@ -4,16 +4,11 @@ "id": "titanium", "name": "Titanium", "density": 10, - "bash_resist": 4, - "cut_resist": 9, - "bullet_resist": 7, - "acid_resist": 14, - "fire_resist": 4, - "elec_resist": 8, "chip_resist": 20, "repaired_with": "afs_scrap_titanium", "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], "bash_dmg_verb": "dented", - "cut_dmg_verb": "scratched" + "cut_dmg_verb": "scratched", + "resist": { "bash": 4, "cut": 9, "acid": 14, "heat": 4, "bullet": 7, "electric": 8 } } ] diff --git a/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_gun.json b/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_gun.json index 9430546f2..91c41611f 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_gun.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_gun.json @@ -11,7 +11,6 @@ "price": 23000, "price_postapoc": 2000, "to_hit": -1, - "bashing": 12, "material": [ "iron", "wood" ], "symbol": "(", "color": "brown", @@ -23,7 +22,6 @@ "blackpowder_tolerance": 56, "clip_size": 19, "valid_mod_locations": [ - [ "accessories", 4 ], [ "barrel", 1 ], [ "bore", 1 ], [ "brass catcher", 1 ], @@ -38,7 +36,8 @@ ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], "flags": [ "RELOAD_ONE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 19 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 19 } } ], + "melee_damage": { "bash": 12 } }, { "id": "blaze_sks", @@ -53,7 +52,6 @@ "price": 38000, "price_postapoc": 3500, "to_hit": -1, - "bashing": 12, "material": [ "steel", "wood" ], "symbol": "(", "color": "brown", @@ -66,7 +64,6 @@ "barrel_volume": "500 ml", "built_in_mods": [ "inter_bayonet" ], "valid_mod_locations": [ - [ "accessories", 4 ], [ "barrel", 1 ], [ "bore", 1 ], [ "brass catcher", 1 ], @@ -80,6 +77,7 @@ [ "underbarrel", 1 ] ], "flags": [ "RELOAD_ONE", "NEVER_JAMS" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762": 10 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762": 10 } } ], + "melee_damage": { "bash": 12 } } ] diff --git a/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_other.json b/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_other.json index e2fdb9ba4..373d73915 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_other.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_other.json @@ -10,10 +10,10 @@ "symbol": "]", "material": [ "steel", "plastic" ], "volume": "200 L", - "bashing": 2, "category": "veh_parts", "price": 80000, - "price_postapoc": 1000 + "price_postapoc": 1000, + "melee_damage": { "bash": 2 } }, { "id": "afs_fridge", @@ -29,9 +29,9 @@ "price_postapoc": 10000, "material": [ "steel" ], "to_hit": -4, - "bashing": 8, "flags": [ "DURABLE_MELEE" ], - "looks_like": "minifridge" + "looks_like": "minifridge", + "melee_damage": { "bash": 8 } }, { "id": "afs_freezer", @@ -56,26 +56,5 @@ "longest_side": "116cm", "price": 0, "price_postapoc": 10 - }, - { - "type": "GENERIC", - "id": "afs_metal_rig", - "copy-from": "vehicle_rig", - "name": { "str": "MetalMaster forge buddy", "str_pl": "MetalMaster forge buddies" }, - "description": "From the makers of the best-selling* FOODCO kitchen buddy comes the MetalMaster forge buddy, for all your metalworking, firing, and welding needs! It's just as clunky and awkward as the thing it's spinning off, and still requires a vehicle battery to function." - }, - { - "type": "GENERIC", - "id": "afs_kitchen_rig", - "copy-from": "vehicle_rig", - "name": { "str": "KitchenMaster cooking buddy", "str_pl": "KitchenMaster cooking buddies" }, - "description": "Because it *clearly* needed one, this large all-in-one station provides the functions of FOODCO's kitchen buddy, now with complementary fume hoods and chemistry materials. Why a chef would need a chemical rig is anyone's guess, but you can mount it on a vehicle to make use of it." - }, - { - "type": "GENERIC", - "id": "afs_cooking_rig", - "copy-from": "vehicle_rig", - "name": { "str": "cooking rig" }, - "description": "Skillet, pot, hotplate, and chemistry set; everything you need to cook food and chemicals. Includes proper fume vents and a separator, so you don't contaminate your food with toxic chemicals." } ] diff --git a/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_solar.json b/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_solar.json index 182c0985b..bcb91d8c5 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_solar.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/items/vehicle/blaze_solar.json @@ -10,11 +10,11 @@ "price": 120000, "price_postapoc": 1000, "to_hit": -4, - "bashing": 1, "flags": [ "NO_REPAIR" ], "material": [ "glass" ], "symbol": "]", - "color": "yellow" + "color": "yellow", + "melee_damage": { "bash": 1 } }, { "id": "reinforced_solar_array", diff --git a/data/Mainline_mods/Mods/BlazeIndustries/obsoletion/migrate_to_VEH_TOOLS.json b/data/Mainline_mods/Mods/BlazeIndustries/obsoletion/migrate_to_VEH_TOOLS.json new file mode 100644 index 000000000..0da10c6f1 --- /dev/null +++ b/data/Mainline_mods/Mods/BlazeIndustries/obsoletion/migrate_to_VEH_TOOLS.json @@ -0,0 +1,46 @@ +[ + { + "type": "vehicle_part_migration", + "from": "afs_metal_rig", + "to": "veh_tools_workshop", + "add_veh_tools": [ "welder", "soldering_iron", "forge", "kiln" ] + }, + { + "type": "vehicle_part_migration", + "from": "afs_kitchen_rig", + "to": "veh_tools_kitchen", + "add_veh_tools": [ + "vac_sealer", + "dehydrator", + "food_processor", + "press", + "puller", + "pot", + "pan", + "chemistry_set", + "electrolysis_kit", + "water_purifier" + ] + }, + { + "type": "vehicle_part_migration", + "from": "afs_cooking_rig", + "to": "veh_tools_kitchen", + "add_veh_tools": [ "pot", "pan", "chemistry_set", "electrolysis_kit" ] + }, + { + "id": "afs_metal_rig", + "type": "MIGRATION", + "replace": "veh_tools_workshop" + }, + { + "id": "afs_kitchen_rig", + "type": "MIGRATION", + "replace": "veh_tools_kitchen" + }, + { + "id": "afs_cooking_rig", + "type": "MIGRATION", + "replace": "veh_tools_kitchen" + } +] diff --git a/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_construction_recipes.json b/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_construction_recipes.json index 4aa1d081a..baeb6c846 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_construction_recipes.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_construction_recipes.json @@ -1,37 +1,4 @@ [ - { - "type": "construction", - "id": "app_afs_metal_rig", - "group": "place_metal_rig", - "category": "APPLIANCE", - "required_skills": [ [ "fabrication", 0 ] ], - "time": "5 m", - "components": [ [ [ "afs_metal_rig", 1 ] ] ], - "pre_special": "check_empty", - "post_special": "done_appliance" - }, - { - "type": "construction", - "id": "app_afs_cooking_rig", - "group": "place_cooking_rig", - "category": "APPLIANCE", - "required_skills": [ [ "fabrication", 0 ] ], - "time": "5 m", - "components": [ [ [ "afs_cooking_rig", 1 ] ] ], - "pre_special": "check_empty", - "post_special": "done_appliance" - }, - { - "type": "construction", - "id": "app_afs_kitchen_rig", - "group": "place_kitchen_rig", - "category": "APPLIANCE", - "required_skills": [ [ "fabrication", 0 ] ], - "time": "5 m", - "components": [ [ [ "afs_kitchen_rig", 1 ] ] ], - "pre_special": "check_empty", - "post_special": "done_appliance" - }, { "type": "construction", "id": "constr_blz_fridge_vehicle", diff --git a/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_gun_recipes.json b/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_gun_recipes.json index d902c3b2b..8f128b10b 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_gun_recipes.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_gun_recipes.json @@ -2,7 +2,7 @@ { "result": "blaze_sks", "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "mechanics", @@ -15,7 +15,7 @@ { "result": "blaze_marlin_9a", "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "mechanics", diff --git a/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_other_recipes.json b/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_other_recipes.json index 80c177ebc..ebfe76678 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_other_recipes.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/recipes/blaze_other_recipes.json @@ -2,7 +2,7 @@ { "result": "solar_array", "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", @@ -25,7 +25,7 @@ { "result": "reinforced_solar_array", "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", @@ -48,7 +48,7 @@ { "result": "solar_array_v2", "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", @@ -71,7 +71,7 @@ { "result": "reinforced_solar_array_v2", "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", @@ -93,7 +93,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "result": "vehicle_shelving", "category": "CC_OTHER", "subcategory": "CSC_OTHER_PARTS", @@ -110,81 +110,5 @@ { "id": "WRENCH", "level": 1 } ], "components": [ [ [ "cargo_rack", 4 ] ], [ [ "pipe", 16 ] ], [ [ "sheet_metal", 4 ] ], [ [ "hinge", 10 ] ] ] - }, - { - "result": "afs_metal_rig", - "id_suffix": "blaze", - "type": "recipe", - "activity_level": "fake", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_VEHICLE", - "skill_used": "fabrication", - "skills_required": [ "electronics", 3 ], - "difficulty": 4, - "time": "15 m", - "decomp_learn": 3, - "reversible": true, - "book_learn": [ [ "textbook_mechanics", 6 ], [ "textbook_electronics", 8 ], [ "textbook_fabrication", 8 ], [ "welding_book", 5 ] ], - "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "WRENCH", "level": 2 }, { "id": "SAW_M", "level": 1 } ], - "using": [ [ "welding_standard", 10 ], [ "soldering_standard", 25 ] ], - "components": [ [ [ "hdframe", 1 ] ], [ [ "welding_components", 1 ] ], [ [ "forge", 1 ] ], [ [ "kiln", 1 ] ], [ [ "cable", 10 ] ] ] - }, - { - "result": "afs_kitchen_rig", - "id_suffix": "blaze", - "type": "recipe", - "activity_level": "fake", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_VEHICLE", - "skill_used": "fabrication", - "skills_required": [ "electronics", 3 ], - "difficulty": 4, - "time": "15 m", - "decomp_learn": 3, - "reversible": true, - "book_learn": [ [ "textbook_fabrication", 3 ], [ "manual_fabrication", 3 ], [ "manual_electronics", 3 ], [ "manual_mechanics", 3 ] ], - "using": [ [ "welding_standard", 10 ] ], - "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ], - "components": [ - [ [ "hdframe", 1 ] ], - [ [ "vac_sealer", 1 ], [ "makeshift_sealer", 1 ] ], - [ [ "dehydrator", 1 ] ], - [ [ "water_purifier", 1 ] ], - [ [ "food_processor", 1 ] ], - [ [ "press", 1 ] ], - [ [ "cable", 15 ] ], - [ [ "hotplate", 1 ] ], - [ [ "pot", 1 ], [ "pot_copper", 1 ] ], - [ [ "pan", 1 ] ], - [ [ "water_faucet", 2 ] ], - [ [ "chemistry_set", 1 ] ], - [ [ "electrolysis_kit", 1 ] ] - ] - }, - { - "result": "afs_cooking_rig", - "id_suffix": "blaze", - "type": "recipe", - "activity_level": "fake", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_VEHICLE", - "skill_used": "electronics", - "difficulty": 4, - "time": "10 m", - "decomp_learn": 3, - "reversible": true, - "autolearn": true, - "using": [ [ "welding_standard", 10 ] ], - "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "WRENCH", "level": 2 }, { "id": "SAW_M", "level": 1 } ], - "components": [ - [ [ "hdframe", 1 ] ], - [ [ "hotplate", 1 ] ], - [ [ "pot", 1 ], [ "pot_copper", 1 ] ], - [ [ "pan", 1 ] ], - [ [ "water_faucet", 2 ] ], - [ [ "cable", 10 ] ], - [ [ "chemistry_set", 1 ] ], - [ [ "electrolysis_kit", 1 ] ] - ] } ] diff --git a/data/Mainline_mods/Mods/BlazeIndustries/recipes/construction_group.json b/data/Mainline_mods/Mods/BlazeIndustries/recipes/construction_group.json index 7e7de2dee..6ab1d2b88 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/recipes/construction_group.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/recipes/construction_group.json @@ -1,19 +1,4 @@ [ - { - "type": "construction_group", - "id": "place_metal_rig", - "name": "Place MetalMaster forge buddy" - }, - { - "type": "construction_group", - "id": "place_cooking_rig", - "name": "Place Cooking Rig" - }, - { - "type": "construction_group", - "id": "place_kitchen_rig", - "name": "Place KitchenMaster Cooking Buddy" - }, { "type": "construction_group", "id": "convert_fridge_power_supply", diff --git a/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/blaze_combustion.json b/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/blaze_combustion.json index 8f8a75284..0415c6b7c 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/blaze_combustion.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/blaze_combustion.json @@ -6,9 +6,9 @@ "type": "vehicle_part", "item": "steam_triple_large", "durability": 200, - "epower": 0, - "power": 242450, - "energy_consumption": 485000, + "epower": "0 W", + "power": "242450 W", + "energy_consumption": "485000 W", "breaks_into": [ { "item": "steel_lump", "count": [ 30, 60 ] }, { "item": "steel_chunk", "count": [ 30, 60 ] }, @@ -28,9 +28,9 @@ "type": "vehicle_part", "item": "steam_triple_giant", "durability": 200, - "epower": 0, - "power": 447600, - "energy_consumption": 895250, + "epower": "0 W", + "power": "447600 W", + "energy_consumption": "895250 W", "breaks_into": [ { "item": "steel_lump", "count": [ 30, 60 ] }, { "item": "steel_chunk", "count": [ 30, 60 ] }, @@ -61,9 +61,9 @@ "type": "vehicle_part", "item": "steam_turbine_small", "durability": 200, - "epower": 0, - "power": 93250, - "energy_consumption": 207250, + "epower": "0 W", + "power": "93250 W", + "energy_consumption": "207250 W", "breaks_into": [ { "item": "steel_lump", "count": [ 30, 60 ] }, { "item": "steel_chunk", "count": [ 30, 60 ] }, @@ -83,9 +83,9 @@ "type": "vehicle_part", "item": "steam_turbine_medium", "durability": 200, - "epower": 0, - "power": 149200, - "energy_consumption": 331750, + "epower": "0 W", + "power": "149200 W", + "energy_consumption": "331750 W", "breaks_into": [ { "item": "steel_lump", "count": [ 30, 60 ] }, { "item": "steel_chunk", "count": [ 30, 60 ] }, @@ -105,9 +105,9 @@ "type": "vehicle_part", "item": "steam_turbine_large", "durability": 200, - "epower": 0, - "power": 242450, - "energy_consumption": 539000, + "epower": "0 W", + "power": "242450 W", + "energy_consumption": "539000 W", "breaks_into": [ { "item": "steel_lump", "count": [ 30, 60 ] }, { "item": "steel_chunk", "count": [ 30, 60 ] }, @@ -127,9 +127,9 @@ "type": "vehicle_part", "item": "steam_turbine_giant", "durability": 200, - "epower": 0, - "power": 447600, - "energy_consumption": 994750, + "epower": "0 W", + "power": "447600 W", + "energy_consumption": "994750 W", "breaks_into": [ { "item": "steel_lump", "count": [ 30, 60 ] }, { "item": "steel_chunk", "count": [ 30, 60 ] }, diff --git a/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/blaze_other_parts.json b/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/blaze_other_parts.json index 1c2dda2b6..be93b5e8c 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/blaze_other_parts.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/blaze_other_parts.json @@ -3,14 +3,12 @@ "type": "vehicle_part", "id": "cargo_rack_extended", "name": { "str": "cargo shelving" }, - "symbol": "=", "looks_like": "box", "categories": [ "cargo" ], "color": "light_gray", - "broken_symbol": "#", "broken_color": "dark_gray", "durability": 250, - "size": 8000, + "size": "2000 L", "item": "vehicle_shelving", "location": "center", "requirements": { @@ -24,164 +22,47 @@ { "item": "steel_chunk", "count": [ 6, 16 ] }, { "item": "scrap", "count": [ 6, 16 ] } ], - "damage_reduction": { "all": 28 } + "damage_reduction": { "all": 28 }, + "variants": [ { "symbols": "=", "symbols_broken": "#" } ] + }, + { + "type": "vehicle_part", + "id": "veh_tools_workshop", + "copy-from": "veh_tools_workshop", + "looks_like": "welding_rig", + "extend": { "allowed_tools": [ "forge", "kiln" ] } }, { "type": "vehicle_part", "id": "afs_fridge", "copy-from": "minifridge", "name": { "str": "refrigerator" }, - "symbol": "{", "categories": [ "cargo" ], "color": "white", "broken_color": "white", "looks_like": "minifridge", "durability": 400, "description": "A medium-sized household refrigerator, converted to utilize vehicle power. When turned on, food inside will be cooled, extending the time it has before spoiling.", - "epower": -100, - "size": 1200, - "item": "afs_fridge" + "epower": "-100 W", + "size": "300 L", + "item": "afs_fridge", + "variants": [ { "symbols": "{", "symbols_broken": "#" } ] }, { "type": "vehicle_part", "id": "afs_freezer", "copy-from": "minifreezer", "name": { "str": "freezer" }, - "symbol": "{", "categories": [ "cargo" ], "color": "light_blue", "broken_color": "light_blue", "looks_like": "minifridge", "durability": 400, "description": "A household fridge, converted to run at a much lower temperature and on vehicle power. When turned on, food inside will be frozen, completely stopping it from spoiling.", - "epower": -120, - "size": 1200, - "item": "afs_freezer" - }, - { - "type": "vehicle_part", - "id": "afs_metal_rig", - "name": { "str": "MetalMaster forge buddy" }, - "symbol": "&", - "categories": [ "utility" ], - "color": "red", - "broken_symbol": "x", - "broken_color": "red", - "looks_like": "welding_rig", - "damage_modifier": 10, - "durability": 200, - "description": "A welding and metalworking station, powered by the vehicle's battery. 'e'xamine the forge rig to utilize its welder or soldering iron; you'll still need glare protection.", - "size": 200, - "item": "afs_metal_rig", - "location": "center", - "requirements": { - "install": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "repair": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, - "flags": [ "CARGO", "OBSTACLE", "COVERED" ], - "pseudo_tools": [ { "id": "welder", "hotkey": "w" }, { "id": "soldering_iron", "hotkey": "s" }, { "id": "forge" }, { "id": "kiln" } ], - "breaks_into": [ - { "item": "steel_lump", "count": [ 3, 6 ] }, - { "item": "steel_chunk", "count": [ 3, 6 ] }, - { "item": "scrap", "count": [ 3, 6 ] }, - { "item": "welder", "charges": 0, "prob": 50 }, - { "item": "forge", "charges": 0, "prob": 50 }, - { "item": "kiln", "charges": 0, "prob": 50 } - ] - }, - { - "type": "vehicle_part", - "id": "afs_cooking_rig", - "name": { "str": "cooking rig" }, - "symbol": "&", - "categories": [ "utility" ], - "color": "blue", - "broken_symbol": "x", - "broken_color": "blue", - "looks_like": "kitchen_unit", - "damage_modifier": 10, - "durability": 125, - "description": "An all-in-one kitchen unit and chemistry lab. 'e'xamine it to use its hotplate to heat up food or drinks.", - "size": 200, - "item": "afs_cooking_rig", - "location": "center", - "requirements": { - "install": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "repair": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, - "flags": [ "CARGO", "OBSTACLE", "COVERED", "FLAT_SURF" ], - "pseudo_tools": [ - { "id": "water_faucet" }, - { "id": "hotplate", "hotkey": "h" }, - { "id": "pot" }, - { "id": "pan" }, - { "id": "chemistry_set" }, - { "id": "electrolysis_kit" } - ], - "breaks_into": [ - { "item": "steel_lump", "count": [ 6, 9 ] }, - { "item": "steel_chunk", "count": [ 6, 9 ] }, - { "item": "scrap", "count": [ 6, 9 ] }, - { "item": "pot", "prob": 50 }, - { "item": "pan", "prob": 50 }, - { "item": "chemistry_set", "charges": 0, "prob": 50 }, - { "item": "electrolysis_kit", "charges": 0, "prob": 50 }, - { "item": "hotplate", "charges": 0, "prob": 50 } - ] - }, - { - "type": "vehicle_part", - "id": "afs_kitchen_rig", - "name": { "str": "KitchenMaster cooking buddy" }, - "symbol": "&", - "categories": [ "utility" ], - "color": "yellow", - "broken_symbol": "x", - "broken_color": "yellow", - "looks_like": "kitchen_unit", - "damage_modifier": 10, - "durability": 200, - "description": "An all-in-one kitchen unit, chemistry lab, and food preparation area. 'e'xamine it to use its hotplate to heat up food or drinks.", - "size": 200, - "item": "afs_kitchen_rig", - "location": "center", - "requirements": { - "install": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, - "repair": { "skills": [ [ "mechanics", 4 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, - "flags": [ "CARGO", "OBSTACLE", "COVERED", "FLAT_SURF" ], - "pseudo_tools": [ - { "id": "water_faucet" }, - { "id": "vac_sealer" }, - { "id": "dehydrator" }, - { "id": "food_processor" }, - { "id": "press" }, - { "id": "puller" }, - { "id": "hotplate", "hotkey": "h" }, - { "id": "pot" }, - { "id": "pan" }, - { "id": "chemistry_set" }, - { "id": "electrolysis_kit" }, - { "id": "water_purifier", "hotkey": "p" } - ], - "breaks_into": [ - { "item": "steel_lump", "count": [ 9, 18 ] }, - { "item": "steel_chunk", "count": [ 9, 18 ] }, - { "item": "scrap", "count": [ 9, 18 ] }, - { "item": "pot", "prob": 50 }, - { "item": "pan", "prob": 50 }, - { "item": "chemistry_set", "charges": 0, "prob": 50 }, - { "item": "electrolysis_kit", "charges": 0, "prob": 50 }, - { "item": "hotplate", "charges": 0, "prob": 50 }, - { "item": "water_purifier", "charges": 0, "prob": 50 }, - { "item": "vac_sealer", "charges": 0, "prob": 50 }, - { "item": "dehydrator", "charges": 0, "prob": 50 }, - { "item": "food_processor", "charges": 0, "prob": 50 }, - { "item": "press", "prob": 50 } - ] + "epower": "-120 W", + "size": "300 L", + "item": "afs_freezer", + "variants": [ { "symbols": "{", "symbols_broken": "#" } ] }, { "id": "solar_array_part", @@ -189,13 +70,11 @@ "name": { "str": "solar array" }, "item": "solar_array", "location": "structure", - "symbol": "#", - "broken_symbol": "x", "categories": [ "energy" ], "color": "yellow", "broken_color": "yellow", "durability": 20, - "epower": 145, + "epower": "145 W", "damage_modifier": 10, "folded_volume": "10 L", "description": "A vertical array of three solar panels set on a chassis rising above one another on a metal pole with rudimentary tracking and motors. Due to the flimsy nature of the hydraulics and high surface area profile to maximize sunlight, they can't really be installed onto an existing vehicle. Requires a jumper cable or similar to pull power from.", @@ -214,7 +93,8 @@ "using": [ [ "vehicle_screw", 1 ], [ "solar_panel", 3 ], [ "soldering_standard", 8 ] ] } }, - "flags": [ "SOLAR_PANEL", "OBSTACLE", "INITIAL_PART", "PROTRUSION", "FOLDABLE", "EXTRA_DRAG" ] + "flags": [ "SOLAR_PANEL", "OBSTACLE", "INITIAL_PART", "PROTRUSION", "EXTRA_DRAG" ], + "variants": [ { "symbols": "#", "symbols_broken": "x" } ] }, { "id": "reinforced_solar_array_part", @@ -244,7 +124,7 @@ "using": [ [ "vehicle_screw", 1 ], [ "solar_panel", 3 ], [ "soldering_standard", 8 ] ] } }, - "flags": [ "SOLAR_PANEL", "OBSTACLE", "INITIAL_PART", "PROTRUSION", "FOLDABLE", "EXTRA_DRAG" ] + "flags": [ "SOLAR_PANEL", "OBSTACLE", "INITIAL_PART", "PROTRUSION", "EXTRA_DRAG" ] }, { "id": "solar_array_v2_part", @@ -269,7 +149,7 @@ "using": [ [ "vehicle_screw", 1 ], [ "solar_panel_v2", 3 ], [ "soldering_standard", 8 ] ] } }, - "flags": [ "SOLAR_PANEL", "OBSTACLE", "INITIAL_PART", "PROTRUSION", "FOLDABLE", "EXTRA_DRAG" ] + "flags": [ "SOLAR_PANEL", "OBSTACLE", "INITIAL_PART", "PROTRUSION", "EXTRA_DRAG" ] }, { "id": "reinforced_solar_array_v2_part", @@ -297,7 +177,7 @@ "using": [ [ "vehicle_screw", 1 ], [ "solar_panel_v2", 3 ], [ "soldering_standard", 8 ] ] } }, - "flags": [ "SOLAR_PANEL", "OBSTACLE", "INITIAL_PART", "PROTRUSION", "FOLDABLE", "EXTRA_DRAG" ] + "flags": [ "SOLAR_PANEL", "OBSTACLE", "INITIAL_PART", "PROTRUSION", "EXTRA_DRAG" ] }, { "id": "wiring", @@ -305,8 +185,6 @@ "name": { "str": "wiring" }, "item": "wire", "location": "structure", - "symbol": ".", - "broken_symbol": "#", "categories": [ "hull", "energy" ], "color": "white", "broken_color": "white", @@ -319,6 +197,7 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 s" }, "repair": { "skills": [ [ "mechanics", 2 ] ], "time": "60 s" } }, - "flags": [ "INITIAL_PART", "FOLDABLE", "AISLE" ] + "flags": [ "INITIAL_PART", "AISLE" ], + "variants": [ { "symbols": ".", "symbols_broken": "#" } ] } ] diff --git a/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/vehicle_parts.json b/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/vehicle_parts.json index 19defae81..ff6452883 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/vehicle_parts.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/vehicleparts/vehicle_parts.json @@ -1,13 +1,11 @@ [ { - "abstract": "afs_lightweight_frame", + "id": "afs_lightweight_frame", "type": "vehicle_part", + "copy-from": "frame_abstract", "name": { "str": "ultralight frame" }, "item": "afs_titanium_frame", - "location": "structure", - "categories": [ "hull" ], "color": "light_gray", - "symbol": "c", "durability": 100, "description": "An ultralight titanium framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size.", "breaks_into": [ { "item": "afs_scrap_titanium", "count": [ 1, 3 ] } ], @@ -15,161 +13,18 @@ "install": { "skills": [ [ "mechanics", 1 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] }, "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 2 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, - "flags": [ "MOUNTABLE" ] + } }, { - "id": "afs_lightweight_frame_cover", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "^" - }, - { - "id": "afs_lightweight_frame_cross", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "c", - "extend": { "flags": [ "INITIAL_PART" ] } - }, - { - "id": "afs_lightweight_frame_horizontal", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "h" - }, - { - "id": "afs_lightweight_frame_horizontal_2", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "=" - }, - { - "id": "afs_lightweight_frame_ne", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "u" - }, - { - "id": "afs_lightweight_frame_nw", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "y" - }, - { - "id": "afs_lightweight_frame_se", - "copy-from": "afs_lightweight_frame", + "id": "afs_lightweight_foldable_frame", "type": "vehicle_part", - "symbol": "n" - }, - { - "id": "afs_lightweight_frame_sw", "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "b" - }, - { - "id": "afs_lightweight_frame_vertical", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "j" - }, - { - "id": "afs_lightweight_frame_vertical_2", - "copy-from": "afs_lightweight_frame", - "type": "vehicle_part", - "symbol": "H" - }, - { - "abstract": "afs_lightweight_foldable_frame", - "type": "vehicle_part", "name": { "str": "ultralight foldable frame" }, "item": "afs_titanium_foldable_frame", - "location": "structure", - "categories": [ "hull" ], - "color": "light_gray", "durability": 75, - "symbol": "H", "folded_volume": "10 L", "folding_time": "1 minute", "unfolding_time": "1 minute", - "description": "An ultralight titanium foldable framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size.", - "breaks_into": [ { "item": "afs_scrap_titanium", "count": [ 1, 3 ] } ], - "requirements": { - "install": { "skills": [ [ "mechanics", 1 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] }, - "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, - "repair": { "skills": [ [ "mechanics", 2 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, - "flags": [ "INITIAL_PART", "MOUNTABLE", "FOLDABLE" ] - }, - { - "id": "afs_lightweight_foldable_frame_cover", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_cover", - "symbol": "^" - }, - { - "id": "afs_lightweight_foldable_frame_cross", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_cross", - "symbol": "c", - "extend": { "flags": [ "INITIAL_PART" ] } - }, - { - "id": "afs_lightweight_foldable_frame_horizontal", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_horizontal", - "symbol": "h" - }, - { - "id": "afs_lightweight_foldable_frame_horizontal_2", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_horizontal_2", - "symbol": "=" - }, - { - "id": "afs_lightweight_foldable_frame_ne", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_ne", - "symbol": "u" - }, - { - "id": "afs_lightweight_foldable_frame_nw", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_nw", - "symbol": "y" - }, - { - "id": "afs_lightweight_foldable_frame_se", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_se", - "symbol": "n" - }, - { - "id": "afs_lightweight_foldable_frame_sw", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_sw", - "symbol": "b" - }, - { - "id": "afs_lightweight_foldable_frame_vertical", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_vertical", - "symbol": "j" - }, - { - "id": "afs_lightweight_foldable_frame_vertical_2", - "copy-from": "afs_lightweight_foldable_frame", - "type": "vehicle_part", - "looks_like": "afs_lightweight_frame_vertical_2", - "symbol": "H" + "description": "An ultralight titanium foldable framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size." } ] diff --git a/data/Mainline_mods/Mods/BlazeIndustries/vehicles/part_items.json b/data/Mainline_mods/Mods/BlazeIndustries/vehicles/part_items.json index c0575a6c7..1641ab906 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/vehicles/part_items.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/vehicles/part_items.json @@ -12,9 +12,9 @@ "looks_like": "xlframe", "techniques": [ "DEF_DISARM" ], "volume": "7500 ml", - "bashing": 15, "category": "veh_parts", - "price": 4000 + "price": 4000, + "melee_damage": { "bash": 15 } }, { "type": "GENERIC", diff --git a/data/Mainline_mods/Mods/BlazeIndustries/vehicles/vehicles.json b/data/Mainline_mods/Mods/BlazeIndustries/vehicles/vehicles.json index 81ba73fa4..f8e928a63 100644 --- a/data/Mainline_mods/Mods/BlazeIndustries/vehicles/vehicles.json +++ b/data/Mainline_mods/Mods/BlazeIndustries/vehicles/vehicles.json @@ -14,77 +14,77 @@ [ " o " ] ], "parts": [ - { "x": -2, "y": 2, "parts": [ "hdframe_vertical_2", "box", "roof" ] }, - { "x": -2, "y": 3, "parts": [ "hdframe_vertical_2", "bed", "roof" ] }, - { "x": -2, "y": 1, "parts": [ "hdframe_vertical_2", "box", "roof" ] }, - { "x": -2, "y": 4, "parts": [ "hdframe_vertical", "board_vertical_right" ] }, - { "x": -2, "y": 0, "parts": [ "hdframe_vertical_2", "bed", "roof" ] }, - { "x": -2, "y": -1, "parts": [ "hdframe_vertical", "board_vertical_left" ] }, - { "x": -1, "y": 2, "parts": [ "hdframe_horizontal", "door_internal" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_horizontal", "board_horizontal_front" ] }, - { "x": -1, "y": 3, "parts": [ "hdframe_horizontal", "board_horizontal_front" ] }, - { "x": -1, "y": 3, "part": "large_storage_battery" }, - { "x": -1, "y": 0, "parts": [ "hdframe_horizontal", "board_horizontal_front" ] }, - { "x": -1, "y": 0, "part": "large_storage_battery" }, - { "x": -1, "y": 4, "parts": [ "hdframe_vertical", "board_vertical_right" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_vertical", "board_vertical_left" ] }, - { "x": -3, "y": 2, "parts": [ "hdframe_horizontal", "board_horizontal_rear", "beeper" ] }, - { "x": -3, "y": 3, "parts": [ "hdframe_horizontal", "board_horizontal_rear" ] }, - { "x": -3, "y": 1, "parts": [ "hdframe_horizontal", "board_horizontal_rear" ] }, - { "x": -3, "y": 0, "parts": [ "hdframe_horizontal", "board_horizontal_rear" ] }, - { "x": -3, "y": 4, "parts": [ "hdframe_se", "board_se" ] }, - { "x": -3, "y": -1, "parts": [ "hdframe_sw", "board_sw" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_horizontal", "box", "roof" ] }, - { "x": 0, "y": 3, "parts": [ "hdframe_vertical_2", "seat", "seatbelt", "roof" ] }, - { "x": 0, "y": 0, "parts": [ "hdframe_vertical_2", "seat", "seatbelt", "roof" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#vertical_2", "box", "roof" ] }, + { "x": -2, "y": 3, "parts": [ "hdframe#vertical_2", "bed", "roof" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#vertical_2", "box", "roof" ] }, + { "x": -2, "y": 4, "parts": [ "hdframe#vertical", "board#vertical_right" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#vertical_2", "bed", "roof" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#vertical", "board#vertical_left" ] }, + { "x": -1, "y": 2, "parts": [ "hdframe#horizontal", "door_internal" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#horizontal", "board#horizontal_front" ] }, + { "x": -1, "y": 3, "parts": [ "hdframe#horizontal", "board#horizontal_front" ] }, + { "x": -1, "y": 3, "parts": [ "large_storage_battery" ] }, + { "x": -1, "y": 0, "parts": [ "hdframe#horizontal", "board#horizontal_front" ] }, + { "x": -1, "y": 0, "parts": [ "large_storage_battery" ] }, + { "x": -1, "y": 4, "parts": [ "hdframe#vertical", "board#vertical_right" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#vertical", "board#vertical_left" ] }, + { "x": -3, "y": 2, "parts": [ "hdframe#horizontal", "board#horizontal_rear", "beeper" ] }, + { "x": -3, "y": 3, "parts": [ "hdframe#horizontal", "board#horizontal_rear" ] }, + { "x": -3, "y": 1, "parts": [ "hdframe#horizontal", "board#horizontal_rear" ] }, + { "x": -3, "y": 0, "parts": [ "hdframe#horizontal", "board#horizontal_rear" ] }, + { "x": -3, "y": 4, "parts": [ "hdframe#se", "board#se" ] }, + { "x": -3, "y": -1, "parts": [ "hdframe#sw", "board#sw" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#horizontal", "box", "roof" ] }, + { "x": 0, "y": 3, "parts": [ "hdframe#vertical_2", "seat", "seatbelt", "roof" ] }, + { "x": 0, "y": 0, "parts": [ "hdframe#vertical_2", "seat", "seatbelt", "roof" ] }, { "x": 0, "y": 0, "parts": [ "controls", "dashboard", "vehicle_alarm", "horn_big" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_horizontal", "box", "roof" ] }, - { "x": 0, "y": 4, "parts": [ "hdframe_vertical", "door_right" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_vertical", "door_left" ] }, - { "x": -4, "y": 2, "part": "hdframe_vertical" }, - { "x": -4, "y": 1, "part": "hdframe_vertical" }, - { "x": -4, "y": 3, "parts": [ "hdframe_vertical_2", "trunk" ] }, - { "x": -4, "y": 0, "parts": [ "hdframe_vertical_2", "trunk" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_vertical", "windshield_nw" ] }, - { "x": 1, "y": 0, "parts": [ "hdframe_horizontal", "windshield_horizontal_front" ] }, - { "x": 1, "y": 1, "parts": [ "hdframe_horizontal", "windshield_horizontal_front" ] }, - { "x": 1, "y": 2, "parts": [ "hdframe_horizontal", "windshield_horizontal_front" ] }, - { "x": 1, "y": 3, "parts": [ "hdframe_horizontal", "windshield_horizontal_front" ] }, - { "x": 1, "y": 4, "parts": [ "hdframe_vertical", "windshield_ne" ] }, - { "x": 1, "y": -2, "part": "wing_mirror_left" }, - { "x": 1, "y": 5, "part": "wing_mirror_right" }, - { "x": -5, "y": 2, "part": "hdframe_cross" }, - { "x": -5, "y": 1, "part": "hdframe_cross" }, - { "x": -5, "y": 3, "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide" ] }, - { "x": -5, "y": 0, "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide" ] }, - { "x": -5, "y": 4, "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide" ] }, - { "x": -5, "y": -1, "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide" ] }, - { "x": 2, "y": 2, "parts": [ "hdframe_vertical_2", "halfboard_vertical_2" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#horizontal", "box", "roof" ] }, + { "x": 0, "y": 4, "parts": [ "hdframe#vertical", "door#right" ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#vertical", "door#left" ] }, + { "x": -4, "y": 2, "parts": [ "hdframe#vertical" ] }, + { "x": -4, "y": 1, "parts": [ "hdframe#vertical" ] }, + { "x": -4, "y": 3, "parts": [ "hdframe#vertical_2", "trunk" ] }, + { "x": -4, "y": 0, "parts": [ "hdframe#vertical_2", "trunk" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#vertical", "windshield#nw" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#horizontal", "windshield#horizontal_front" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#horizontal", "windshield#horizontal_front" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#horizontal", "windshield#horizontal_front" ] }, + { "x": 1, "y": 3, "parts": [ "hdframe#horizontal", "windshield#horizontal_front" ] }, + { "x": 1, "y": 4, "parts": [ "hdframe#vertical", "windshield#ne" ] }, + { "x": 1, "y": -2, "parts": [ "wing_mirror#left" ] }, + { "x": 1, "y": 5, "parts": [ "wing_mirror#right" ] }, + { "x": -5, "y": 2, "parts": [ "hdframe#cross" ] }, + { "x": -5, "y": 1, "parts": [ "hdframe#cross" ] }, + { "x": -5, "y": 3, "parts": [ "hdframe#horizontal", "wheel_mount_medium", "wheel_wide" ] }, + { "x": -5, "y": 0, "parts": [ "hdframe#horizontal", "wheel_mount_medium", "wheel_wide" ] }, + { "x": -5, "y": 4, "parts": [ "hdframe#horizontal", "wheel_mount_medium", "wheel_wide" ] }, + { "x": -5, "y": -1, "parts": [ "hdframe#horizontal", "wheel_mount_medium", "wheel_wide" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#vertical_2", "halfboard#vertical_2" ] }, { "x": 2, "y": 2, "parts": [ "engine_electric_large", "reinforced_solar_panel" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_vertical_2", "halfboard_vertical_2" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#vertical_2", "halfboard#vertical_2" ] }, { "x": 2, "y": 1, "parts": [ "engine_electric_large", "reinforced_solar_panel" ] }, - { "x": 2, "y": 3, "parts": [ "hdframe_horizontal", "halfboard_horizontal_front" ] }, - { "x": 2, "y": 3, "part": "reinforced_solar_panel" }, - { "x": 2, "y": 0, "parts": [ "hdframe_horizontal", "halfboard_horizontal_front" ] }, - { "x": 2, "y": 0, "part": "reinforced_solar_panel" }, - { "x": 2, "y": 4, "parts": [ "hdframe_vertical", "halfboard_vertical_right" ] }, + { "x": 2, "y": 3, "parts": [ "hdframe#horizontal", "halfboard#horizontal_front" ] }, + { "x": 2, "y": 3, "parts": [ "reinforced_solar_panel" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#horizontal", "halfboard#horizontal_front" ] }, + { "x": 2, "y": 0, "parts": [ "reinforced_solar_panel" ] }, + { "x": 2, "y": 4, "parts": [ "hdframe#vertical", "halfboard#vertical_right" ] }, { "x": 2, "y": 4, "parts": [ "wheel_mount_medium_steerable", "wheel_wide" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_vertical", "halfboard_vertical_left" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#vertical", "halfboard#vertical_left" ] }, { "x": 2, "y": -1, "parts": [ "wheel_mount_medium_steerable", "wheel_wide" ] }, - { "x": -6, "y": 2, "part": "hdframe_cross" }, - { "x": -6, "y": 1, "part": "hdframe_cross" }, - { "x": -6, "y": 3, "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide" ] }, - { "x": -6, "y": 0, "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide" ] }, - { "x": -6, "y": 4, "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide" ] }, - { "x": -6, "y": -1, "parts": [ "hdframe_horizontal", "wheel_mount_medium", "wheel_wide" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_cover", "halfboard_cover" ] }, - { "x": 3, "y": 1, "parts": [ "hdframe_cover", "halfboard_cover" ] }, - { "x": 3, "y": 3, "parts": [ "hdframe_horizontal_2", "halfboard_horizontal_front" ] }, - { "x": 3, "y": 3, "part": "headlight" }, - { "x": 3, "y": 0, "parts": [ "hdframe_horizontal_2", "halfboard_horizontal_front" ] }, - { "x": 3, "y": 0, "part": "headlight" }, - { "x": 3, "y": 4, "parts": [ "hdframe_ne", "halfboard_ne" ] }, - { "x": 3, "y": -1, "parts": [ "hdframe_nw", "halfboard_nw" ] } + { "x": -6, "y": 2, "parts": [ "hdframe#cross" ] }, + { "x": -6, "y": 1, "parts": [ "hdframe#cross" ] }, + { "x": -6, "y": 3, "parts": [ "hdframe#horizontal", "wheel_mount_medium", "wheel_wide" ] }, + { "x": -6, "y": 0, "parts": [ "hdframe#horizontal", "wheel_mount_medium", "wheel_wide" ] }, + { "x": -6, "y": 4, "parts": [ "hdframe#horizontal", "wheel_mount_medium", "wheel_wide" ] }, + { "x": -6, "y": -1, "parts": [ "hdframe#horizontal", "wheel_mount_medium", "wheel_wide" ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#cover", "halfboard#cover" ] }, + { "x": 3, "y": 1, "parts": [ "hdframe#cover", "halfboard#cover" ] }, + { "x": 3, "y": 3, "parts": [ "hdframe#horizontal_2", "halfboard#horizontal_front" ] }, + { "x": 3, "y": 3, "parts": [ "headlight" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#horizontal_2", "halfboard#horizontal_front" ] }, + { "x": 3, "y": 0, "parts": [ "headlight" ] }, + { "x": 3, "y": 4, "parts": [ "hdframe#ne", "halfboard#ne" ] }, + { "x": 3, "y": -1, "parts": [ "hdframe#nw", "halfboard#nw" ] } ], "items": [ { "x": 0, "y": 0, "chance": 20, "items": [ "hat_ball" ] }, @@ -101,13 +101,13 @@ "name": "Sports Bike", "blueprint": [ "o#o" ], "parts": [ - { "x": 0, "y": 0, "parts": [ "afs_lightweight_frame_vertical_2", "saddle", "foot_pedals" ] }, + { "x": 0, "y": 0, "parts": [ "afs_lightweight_frame#vertical_2", "saddle", "foot_pedals" ] }, { "x": 1, "y": 0, - "parts": [ "afs_lightweight_frame_vertical", "wheel_mount_light_steerable", "wheel_bicycle" ] + "parts": [ "afs_lightweight_frame#vertical", "wheel_mount_light_steerable", "wheel_bicycle" ] }, - { "x": -1, "y": 0, "parts": [ "afs_lightweight_frame_vertical", "wheel_mount_light", "wheel_bicycle" ] } + { "x": -1, "y": 0, "parts": [ "afs_lightweight_frame#vertical", "wheel_mount_light", "wheel_bicycle" ] } ] }, { @@ -122,60 +122,57 @@ [ "O-++-OH" ] ], "parts": [ - { "x": 0, "y": 1, "parts": [ "hdframe_vertical_2", "box", "recharge_station", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_vertical_2", "seat", "seatbelt", "hdroof" ] }, - { "x": 0, "y": 2, "part": "tank", "fuel": "diesel" }, - { "x": 0, "y": 0, "parts": [ "hdframe_vertical_2", "controls", "dashboard" ] }, - { "x": 0, "y": 0, "parts": [ "vehicle_clock", "horn_big", "seat", "seatbelt", "hdroof" ] }, - { "x": 0, "y": 0, "part": "tank", "fuel": "diesel" }, - { "x": 0, "y": 3, "parts": [ "hdframe_vertical", "hddoor_right" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_vertical", "hddoor_left" ] }, - { "x": 1, "y": 1, "parts": [ "hdframe_horizontal", "reinforced_windshield_horizontal_front" ] }, - { "x": 1, "y": 2, "parts": [ "hdframe_horizontal", "reinforced_windshield_horizontal_front" ] }, - { "x": 1, "y": 3, "parts": [ "hdframe_horizontal", "reinforced_windshield_ne" ] }, - { "x": 1, "y": 0, "parts": [ "hdframe_horizontal", "reinforced_windshield_horizontal_front" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_horizontal", "reinforced_windshield_nw" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#vertical_2", "box", "recharge_station", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#vertical_2", "seat", "seatbelt", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ { "part": "tank", "fuel": "diesel" } ] }, + { "x": 0, "y": 0, "parts": [ "hdframe#vertical_2", "controls", "dashboard" ] }, + { "x": 0, "y": 0, "parts": [ "horn_big", "seat", "seatbelt", "hdroof" ] }, + { "x": 0, "y": 0, "parts": [ { "part": "tank", "fuel": "diesel" } ] }, + { "x": 0, "y": 3, "parts": [ "hdframe#vertical", "hddoor#right" ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#vertical", "hddoor#left" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#horizontal", "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#horizontal", "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 3, "parts": [ "hdframe#horizontal", "reinforced_windshield#ne" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#horizontal", "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#horizontal", "reinforced_windshield#nw" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 1, "parts": [ "diesel_engine_v8", "alternator_truck", "battery_car" ] }, - { "x": 2, "y": 1, "part": "plating_military" }, - { "x": 2, "y": 2, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal", "plating_military" ] }, - { "x": 2, "y": 2, "part": "headlight_reinforced" }, - { "x": 2, "y": 3, "parts": [ "hdframe_ne", "hdhalfboard_ne", "plating_military" ] }, + { "x": 2, "y": 1, "parts": [ "plating_military" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal", "plating_military" ] }, + { "x": 2, "y": 2, "parts": [ "headlight_reinforced" ] }, + { "x": 2, "y": 3, "parts": [ "hdframe#ne", "hdhalfboard#ne", "plating_military" ] }, { "x": 2, "y": 3, "parts": [ "wheel_mount_heavy_steerable", "wheel_armor" ] }, - { "x": 2, "y": 0, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 0, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_nw", "hdhalfboard_nw", "plating_military" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#nw", "hdhalfboard#nw", "plating_military" ] }, { "x": 2, "y": -1, "parts": [ "wheel_mount_heavy_steerable", "wheel_armor" ] }, - { "x": 3, "y": 1, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 3, "parts": [ "hdframe_ne", "plating_military" ] }, - { "x": 3, "y": 0, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": -1, "parts": [ "hdframe_nw", "plating_military" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_horizontal_2", "aisle_horizontal", "roof", "turret_mount" ] }, + { "x": 3, "y": 1, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 3, "parts": [ "hdframe#ne", "plating_military" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": -1, "parts": [ "hdframe#nw", "plating_military" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#horizontal_2", "aisle#horizontal", "roof", "turret_mount" ] }, { "x": -1, "y": 1, - "part": "turret_mark19", - "ammo": 60, - "ammo_types": [ "40x53mm_m430a1" ], - "ammo_qty": [ 1, 25 ] + "parts": [ { "part": "turret_mark19", "ammo": 60, "ammo_types": [ "40x53mm_m430a1" ], "ammo_qty": [ 1, 25 ] } ] }, - { "x": -1, "y": 2, "parts": [ "hdframe_horizontal_2", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": 3, "parts": [ "hdframe_vertical", "hddoor_right" ] }, - { "x": -1, "y": 0, "parts": [ "hdframe_horizontal_2", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_vertical", "hddoor_left" ] }, - { "x": -2, "y": 1, "parts": [ "hdframe_horizontal_2", "trunk", "hdroof" ] }, - { "x": -2, "y": 2, "parts": [ "hdframe_horizontal_2", "trunk", "hdroof" ] }, - { "x": -2, "y": 3, "parts": [ "hdframe_vertical", "hdboard_vertical_right", "plating_military" ] }, - { "x": -2, "y": 0, "parts": [ "hdframe_horizontal_2", "trunk", "hdroof" ] }, - { "x": -2, "y": -1, "parts": [ "hdframe_vertical", "hdboard_vertical_left", "plating_military" ] }, - { "x": -3, "y": 1, "parts": [ "hdframe_horizontal_2", "hddoor_trunk", "plating_military" ] }, - { "x": -3, "y": 2, "parts": [ "hdframe_horizontal_2", "hddoor_trunk", "plating_military" ] }, - { "x": -3, "y": 3, "parts": [ "hdframe_se", "hdboard_se", "plating_military" ] }, + { "x": -1, "y": 2, "parts": [ "hdframe#horizontal_2", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": 3, "parts": [ "hdframe#vertical", "hddoor#right" ] }, + { "x": -1, "y": 0, "parts": [ "hdframe#horizontal_2", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#vertical", "hddoor#left" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#horizontal_2", "trunk", "hdroof" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#horizontal_2", "trunk", "hdroof" ] }, + { "x": -2, "y": 3, "parts": [ "hdframe#vertical", "hdboard#vertical_right", "plating_military" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#horizontal_2", "trunk", "hdroof" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#vertical", "hdboard#vertical_left", "plating_military" ] }, + { "x": -3, "y": 1, "parts": [ "hdframe#horizontal_2", "hddoor_trunk", "plating_military" ] }, + { "x": -3, "y": 2, "parts": [ "hdframe#horizontal_2", "hddoor_trunk", "plating_military" ] }, + { "x": -3, "y": 3, "parts": [ "hdframe#se", "hdboard#se", "plating_military" ] }, { "x": -3, "y": 3, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": -3, "y": 0, "parts": [ "hdframe_horizontal", "hddoor_trunk", "muffler" ] }, - { "x": -3, "y": 0, "part": "plating_military" }, - { "x": -3, "y": -1, "parts": [ "hdframe_sw", "hdboard_sw", "plating_military" ] }, + { "x": -3, "y": 0, "parts": [ "hdframe#horizontal", "hddoor_trunk", "muffler" ] }, + { "x": -3, "y": 0, "parts": [ "plating_military" ] }, + { "x": -3, "y": -1, "parts": [ "hdframe#sw", "hdboard#sw", "plating_military" ] }, { "x": -3, "y": -1, "parts": [ "wheel_mount_heavy", "wheel_armor" ] } ], "items": [ diff --git a/data/Mainline_mods/Mods/BombasticPerks/corefiles/config_menu.json b/data/Mainline_mods/Mods/BombasticPerks/corefiles/config_menu.json new file mode 100644 index 000000000..bbd7d35c2 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/corefiles/config_menu.json @@ -0,0 +1,101 @@ +[ + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CONFIG", + "dynamic_line": "What settings would you like to modify?", + "responses": [ + { "text": "Notifications", "topic": "TALK_PERK_MENU_CONFIG_NOTIFICATIONS" }, + { "text": "Exp to level", "topic": "TALK_PERK_MENU_CONFIG_EXP_TO_LEVEL" }, + { "text": "Requirements", "topic": "TALK_PERK_MENU_REQUIREMENTS" }, + { "text": "Back", "topic": "TALK_PERK_MENU_MAIN" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CONFIG_NOTIFICATIONS", + "dynamic_line": "Should the perk menu pop up on level up?", + "responses": [ + { + "text": "Yes", + "effect": [ { "arithmetic": [ { "u_val": "var", "var_name": "no_notifications" }, "=", { "const": 0 } ] } ], + "condition": { "compare_num": [ { "u_val": "var", "var_name": "no_notifications" }, "!=", { "const": 0 } ] }, + "failure_explanation": "Current Setting", + "failure_topic": "TALK_PERK_MENU_CONFIG", + "topic": "TALK_PERK_MENU_CONFIG" + }, + { + "text": "No", + "effect": [ { "arithmetic": [ { "u_val": "var", "var_name": "no_notifications" }, "=", { "const": 1 } ] } ], + "condition": { "compare_num": [ { "u_val": "var", "var_name": "no_notifications" }, "!=", { "const": 1 } ] }, + "failure_explanation": "Current Setting", + "failure_topic": "TALK_PERK_MENU_CONFIG", + "topic": "TALK_PERK_MENU_CONFIG" + }, + { "text": "Back", "topic": "TALK_PERK_MENU_CONFIG" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CONFIG_EXP_TO_LEVEL", + "dynamic_line": "Set exp required per level. Does not effect levels already gained, or current level.", + "responses": [ + { + "text": "None (0 exp)", + "effect": [ { "arithmetic": [ { "u_val": "var", "var_name": "exp_per_level" }, "=", { "const": 0 } ] } ], + "condition": { "compare_num": [ { "u_val": "var", "var_name": "exp_per_level" }, "!=", { "const": 0 } ] }, + "failure_explanation": "Current Setting", + "failure_topic": "TALK_PERK_MENU_CONFIG", + "topic": "TALK_PERK_MENU_CONFIG" + }, + { + "text": "Normal (300 xp)", + "effect": [ { "arithmetic": [ { "u_val": "var", "var_name": "exp_per_level" }, "=", { "const": 300 } ] } ], + "condition": { "compare_num": [ { "u_val": "var", "var_name": "exp_per_level" }, "!=", { "const": 300 } ] }, + "failure_explanation": "Current Setting", + "failure_topic": "TALK_PERK_MENU_CONFIG", + "topic": "TALK_PERK_MENU_CONFIG" + }, + { + "text": "Large (1000 xp)", + "effect": [ { "arithmetic": [ { "u_val": "var", "var_name": "exp_per_level" }, "=", { "const": 1000 } ] } ], + "condition": { "compare_num": [ { "u_val": "var", "var_name": "exp_per_level" }, "!=", { "const": 1000 } ] }, + "failure_explanation": "Current Setting", + "failure_topic": "TALK_PERK_MENU_CONFIG", + "topic": "TALK_PERK_MENU_CONFIG" + }, + { + "text": "Very Large (10000 xp)", + "effect": [ { "arithmetic": [ { "u_val": "var", "var_name": "exp_per_level" }, "=", { "const": 10000 } ] } ], + "condition": { "compare_num": [ { "u_val": "var", "var_name": "exp_per_level" }, "!=", { "const": 10000 } ] }, + "failure_explanation": "Current Setting", + "failure_topic": "TALK_PERK_MENU_CONFIG", + "topic": "TALK_PERK_MENU_CONFIG" + }, + { "text": "Back", "topic": "TALK_PERK_MENU_CONFIG" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_REQUIREMENTS", + "dynamic_line": "Should there be requirements to get perks?", + "responses": [ + { + "text": "Prerequisites", + "effect": [ { "arithmetic": [ { "u_val": "var", "var_name": "no_prerecs" }, "=", { "const": 0 } ] } ], + "condition": { "compare_num": [ { "u_val": "var", "var_name": "no_prerecs" }, "!=", { "const": 0 } ] }, + "failure_explanation": "Current Setting", + "failure_topic": "TALK_PERK_MENU_CONFIG", + "topic": "TALK_PERK_MENU_CONFIG" + }, + { + "text": "No Prerequisites", + "effect": [ { "arithmetic": [ { "u_val": "var", "var_name": "no_prerecs" }, "=", { "const": 1 } ] } ], + "condition": { "compare_num": [ { "u_val": "var", "var_name": "no_prerecs" }, "!=", { "const": 1 } ] }, + "failure_explanation": "Current Setting", + "failure_topic": "TALK_PERK_MENU_CONFIG", + "topic": "TALK_PERK_MENU_CONFIG" + }, + { "text": "Back", "topic": "TALK_PERK_MENU_CONFIG" } + ] + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/corefiles/core_eocs.json b/data/Mainline_mods/Mods/BombasticPerks/corefiles/core_eocs.json new file mode 100644 index 000000000..2719ef71a --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/corefiles/core_eocs.json @@ -0,0 +1,79 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_open_perk_menu", + "effect": [ { "open_dialogue": { "topic": "TALK_PERK_MENU_MAIN" } } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_level_up", + "condition": { "math": [ "u_available_exp", ">", "u_exp_to_perk" ] }, + "effect": [ + { "run_eocs": "EOC_give_perk_point" }, + { "math": [ "u_used_exp", "+=", "u_exp_to_perk" ] }, + { "math": [ "u_available_exp", "=", "u_val('exp') - u_used_exp" ] }, + { "math": [ "u_exp_to_perk", "+=", "u_exp_per_level" ] }, + { "math": [ "u_current_level", "+=", "1" ] }, + { "run_eocs": "EOC_level_up_notification" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_level_up_notification", + "condition": { "compare_int": [ { "u_val": "var", "var_name": "no_notifications" }, "!=", { "const": 1 } ] }, + "effect": [ { "open_dialogue": { "topic": "TALK_PERK_MENU_MAIN" } } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_on_kill_check_exp", + "eoc_type": "EVENT", + "required_event": "character_kills_monster", + "effect": [ { "math": [ "u_available_exp", "=", "u_val('exp') - u_used_exp" ] }, { "run_eocs": "EOC_level_up" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bombastic_perks_initialize", + "eoc_type": "EVENT", + "required_event": "game_begin", + "condition": { "and": [ { "not": { "u_has_trait": "perk_perk_menu" } } ] }, + "effect": [ + { + "u_message": "Bombastic Perks is loaded, configuration menu should appear. If the mod is properly loaded you should have a new mutation called \"perk menu\". If you do not, you can enable the mod manually by activating the \"EOC_bombastic_perks_try_configure\" EOC in debug." + }, + { "run_eocs": "EOC_bombastic_perks_try_configure" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bombastic_perks_try_configure", + "condition": { "and": [ { "not": { "u_has_trait": "perk_perk_menu" } } ] }, + "effect": [ + { "open_dialogue": { "topic": "TALK_PERK_MENU_WELCOME" } }, + { "queue_eocs": "EOC_bombastic_perks_try_configure", "time_in_future": "30 seconds" }, + { + "u_message": "Configuration menu closed, if Bombastic Perks was not properly configured menu will open again in 30 seconds." + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_give_perk_menu", + "condition": { "and": [ { "not": { "u_has_trait": "perk_perk_menu" } } ] }, + "effect": [ + { "math": [ "u_num_perks", "=", "0" ] }, + { "math": [ "u_exp_to_perk", "=", "100" ] }, + { "math": [ "u_exp_per_level", "=", "300" ] }, + { "math": [ "u_available_exp", "=", "0" ] }, + { "math": [ "u_current_level", "=", "0" ] }, + { "math": [ "u_no_playstyle", "=", "0" ] }, + { "math": [ "u_playstyle_cost", "=", "3" ] }, + { "math": [ "u_no_prerecs", "=", "0" ] }, + { "u_add_trait": "perk_perk_menu" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_give_perk_point", + "effect": [ { "math": [ "u_num_perks", "++" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/corefiles/welcomemenu.json b/data/Mainline_mods/Mods/BombasticPerks/corefiles/welcomemenu.json new file mode 100644 index 000000000..a21b77f0c --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/corefiles/welcomemenu.json @@ -0,0 +1,148 @@ +[ + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_WELCOME", + "dynamic_line": "Welcome to Bombastic Perks. Once you complete this configuration, your character should receive a \"perk menu\" trait which you can use to check your EXP, level, and browse available perks.\nPlease configure the mod with the settings below.", + "responses": [ + { "text": "Use Default Settings", "effect": [ { "run_eocs": "EOC_give_perk_menu" } ], "topic": "TALK_DONE" }, + { "text": "Customize Settings", "topic": "TALK_PERK_MENU_WELCOME_FIRST_LEVEL" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_WELCOME_FIRST_LEVEL", + "dynamic_line": "How much experience should be required to get to the first level?", + "responses": [ + { + "text": "Default (100 exp)", + "effect": [ { "math": [ "u_exp_to_perk", "=", "100" ] } ], + "topic": "TALK_PERK_MENU_WELCOME_EXP_INCREMENT" + }, + { + "text": "Custom Value", + "effect": [ { "math": [ "u_exp_to_perk", "=", "num_input('Exp until first level?', 100)" ] } ], + "topic": "TALK_PERK_MENU_WELCOME_EXP_INCREMENT" + }, + { "text": "Back", "topic": "TALK_PERK_MENU_WELCOME" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_WELCOME_EXP_INCREMENT", + "dynamic_line": "How much more experience should be required to get to each additional level?", + "responses": [ + { + "text": "Default (300 xp)", + "effect": [ { "math": [ "u_exp_per_level", "=", "300" ] } ], + "topic": "TALK_PERK_MENU_WELCOME_REQUIREMENTS" + }, + { + "text": "Custom Value", + "effect": [ { "math": [ "u_exp_per_level", "=", "num_input('Exp increase?', 300)" ] } ], + "topic": "TALK_PERK_MENU_WELCOME_REQUIREMENTS" + }, + { "text": "Back", "topic": "TALK_PERK_MENU_WELCOME_FIRST_LEVEL" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_WELCOME_REQUIREMENTS", + "dynamic_line": "Should some perks be allowed to be locked behind prerequisites?", + "responses": [ + { + "text": "Prerequisites (default)", + "effect": [ + { "arithmetic": [ { "u_val": "var", "var_name": "no_prerecs" }, "=", { "const": 0 } ] }, + { + "u_add_var": "prereq_note", + "type": "dialogue", + "context": "perks", + "value": "Perks will have requirements." + } + ], + "topic": "TALK_PERK_MENU_WELCOME_PLAYSTYLE" + }, + { + "text": "No Prerequisites", + "effect": [ + { "arithmetic": [ { "u_val": "var", "var_name": "no_prerecs" }, "=", { "const": 1 } ] }, + { + "u_add_var": "prereq_note", + "type": "dialogue", + "context": "perks", + "value": "Perks will not have requirements." + } + ], + "topic": "TALK_PERK_MENU_WELCOME_PLAYSTYLE" + }, + { "text": "Back", "topic": "TALK_PERK_MENU_WELCOME_EXP_INCREMENT" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_WELCOME_PLAYSTYLE", + "dynamic_line": "Normal perks are considered lifestyle perks and are small bonuses to help your character progress. Playstyle perks on the other hand can vary wildly in power, in some cases aren't well balanced, and will define your character's playstyle. Do you want to enable playstyle perks and if so, how many perk points should they cost?", + "responses": [ + { + "text": "Default (4 perk points)", + "effect": [ + { "math": [ "u_playstyle_cost", "=", "3" ] }, + { "math": [ "u_no_playstyle", "=", "0" ] }, + { + "u_add_var": "playstyle_note", + "type": "dialogue", + "context": "perks", + "value": "I can select playstyle perks for 4 perk points." + } + ], + "topic": "TALK_PERK_MENU_WELCOME_CONFIRM" + }, + { + "text": "Enabled, Custom Cost", + "effect": [ + { "math": [ "u_playstyle_cost", "=", "num_input('Playstyle Perks Cost?', 4) - 1" ] }, + { "math": [ "u_no_playstyle", "=", "0" ] }, + { + "u_add_var": "playstyle_note", + "type": "dialogue", + "context": "perks", + "value": "I can select playstyle perks for a custom cost." + } + ], + "topic": "TALK_PERK_MENU_WELCOME_CONFIRM" + }, + { + "text": "Disabled", + "effect": [ + { "math": [ "u_no_playstyle", "=", "1" ] }, + { + "u_add_var": "playstyle_note", + "type": "dialogue", + "context": "perks", + "value": "I cannot select playstyle perks." + } + ], + "topic": "TALK_PERK_MENU_WELCOME_CONFIRM" + }, + { "text": "Back", "topic": "TALK_PERK_MENU_WELCOME_REQUIREMENTS" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_WELCOME_CONFIRM", + "dynamic_line": "You are about to enable the mod with:\nFirst perk at: exp.\nAdditional exp required per level: .\n\n", + "responses": [ + { + "text": "Confirm", + "effect": [ + { "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "var", "var_name": "available_exp" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "var", "var_name": "current_level" }, "=", { "const": 0 } ] }, + { "u_add_trait": "perk_perk_menu" } + ], + "topic": "TALK_DONE" + }, + { "text": "Back", "topic": "TALK_PERK_MENU_WELCOME_PLAYSTYLE" } + ] + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/docs/contributing.md b/data/Mainline_mods/Mods/BombasticPerks/docs/contributing.md new file mode 100644 index 000000000..0de71f36f --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/docs/contributing.md @@ -0,0 +1,49 @@ +# Contributing to Bombastic Perks + +## Rules for all content +* All contributions to the mod should revolve around perks, and core game items. Perks can give items, but a perk can't require a custom item that isn't provided by the perk. +* Standard perks must be just kinda okay. +* Any standard perk that's more than just kinda okay needs downsides or to be complex / niche. +* Playstyle perks can be much more powerful since players can potentially disable them. +* Perks should try to be funny and lean into the absurdity. + +## Naming Convention +* Perks should have an ID of: `perk_[name_of_perk]` +* Confirmation menu IDs should be in the format `TALK_PERK_MENU_[NAME_OF_PERK]` + +## Adding +When adding stuff to the mod you should organize your files as follows: +* the perks (which are implemented as mutations) go in the `perks.json` file. +* any additional things for your perk: items, effects, spells, EOCs should be gathered in a single file called `[name_of_perk].json` in the `perkdata` folder. +* perk menu expects a `menu entry` and a `confirmation menu` which go in `perkmenu.json`. These are explained bellow: + +### Menu Entry +Each perk needs to be selectable in the menu itself. To do this append a response to `TALK_PERK_MENU_MAIN` with the following format: +You need to fill in the: +`PERK_ID`: The requirements text and the perk condition. +`REQUIREMENTS TEXT`: A description of the requirements to select the perk. If you don't have requirements put: "No Requirements". +`CONDITION_GOES_HERE`: The EOC conditional that is required to select the perk. If you don't have a condition put: "math": [ "0", "==", "0" ]. +`ANY ADDITIONAL INFO TEXT`: Any additional info you want to include. If you don't have any additional details put "". +``` json +{ + "condition": { "not": { "u_has_trait": "PERK_ID" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "global_val": "trait_name" } }, + { "set_string_var": "", "target_var": { "global_val": "trait_description" } }, + { "set_string_var": "PERK_ID", "target_var": { "global_val": "trait_id" } }, + { "set_string_var": "REQUIREMENTS TEXT", "target_var": { "global_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { CONDITION_GOES_HERE } }, + { + "set_string_var": "ANY ADDITIONAL INFO TEXT", + "target_var": { "global_val": "trait_additional_details" } + } + ], + "topic": "TALK_PERK_MENU_SELECT" +} +``` + +## Reasoning For The Above +* If everyone stays organized the mod should be easy to read, and contribute to. +* Players should be able to see all the perks that they could possibly get, and read their effects (even if they can't select them) +* The menu should have as little clutter as possible \ No newline at end of file diff --git a/data/Mainline_mods/Mods/BombasticPerks/docs/expanding_with_mods.md b/data/Mainline_mods/Mods/BombasticPerks/docs/expanding_with_mods.md new file mode 100644 index 000000000..ada0b9bd3 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/docs/expanding_with_mods.md @@ -0,0 +1,28 @@ +# Expanding Bombastic Perks With Mods + + +## Adding the perk +To add a perk in another mod you need to add the following JSON + +*you don't need to worry about Bombastic Perks being in a mod list to include the following code. Without it included the perks just will not be available* + + +This adds the option to the Perk Menu. Add one object to responses per perk. They should have the same format as laid out in `contributing.md`. +``` json +[ + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + ... + } + { + ... + } + ] + } +] +``` + +Then you just need to implement your perks. \ No newline at end of file diff --git a/data/Mainline_mods/Mods/BombasticPerks/modinfo.json b/data/Mainline_mods/Mods/BombasticPerks/modinfo.json new file mode 100644 index 000000000..6a9fad7c7 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/modinfo.json @@ -0,0 +1,11 @@ +[ + { + "type": "MOD_INFO", + "id": "bombastic_perks", + "name": "Bombastic Perks", + "authors": [ "bombasticSlacks" ], + "description": "Killing enemies allows you to level up, unlocking powerful and fun perks for your character. Just after game start a configuration menu should open to let you enable the mod.", + "category": "misc_additions", + "dependencies": [ "dda" ] + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/closedfist.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/closedfist.json new file mode 100644 index 000000000..72ee59dae --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/closedfist.json @@ -0,0 +1,12 @@ +[ + { + "id": "integrated_hand_closedfist", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "callused hands" }, + "description": "You've dealt so many blows your hands are rough with calluses. The bottoms of your hand can deal blows hard enough to hammer or finely crush objects.", + "copy-from": "integrated_hand_openpalm", + "qualities": [ [ "HAMMER", 2 ], [ "HAMMER_FINE", 1 ], [ "FINE_GRIND", 1 ] ], + "melee_damage": { "bash": 4, "cut": 0 } + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/empath.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/empath.json new file mode 100644 index 000000000..7e8984bc5 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/empath.json @@ -0,0 +1,153 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_empath", + "eoc_type": "EVENT", + "required_event": "character_kills_monster", + "condition": { "and": [ { "u_has_trait": "perk_empath" } ] }, + "effect": [ + { + "run_eocs": [ "EOC_empath_zombie", "EOC_empath_animal", "EOC_empath_nether", "EOC_empath_fungus", "EOC_empath_insect" ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_empath_zombie", + "condition": { + "and": [ + { "u_has_trait": "perk_empath" }, + { "compare_string": [ "zombie", { "mutator": "mon_faction", "mtype_id": { "context_val": "victim_type" } } ] } + ] + }, + "effect": [ { "u_add_effect": "effect_zombie", "duration": "30 seconds" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_empath_animal", + "condition": { + "and": [ + { "u_has_trait": "perk_empath" }, + { "compare_string": [ "animal", { "mutator": "mon_faction", "mtype_id": { "context_val": "victim_type" } } ] } + ] + }, + "effect": [ { "u_add_effect": "effect_animal", "duration": "30 seconds" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_empath_nether", + "condition": { + "and": [ + { "u_has_trait": "perk_empath" }, + { "compare_string": [ "nether", { "mutator": "mon_faction", "mtype_id": { "context_val": "victim_type" } } ] } + ] + }, + "effect": [ { "u_add_effect": "effect_nether", "duration": "30 seconds" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_empath_fungus", + "condition": { + "and": [ + { "u_has_trait": "perk_empath" }, + { "compare_string": [ "fungus", { "mutator": "mon_faction", "mtype_id": { "context_val": "victim_type" } } ] } + ] + }, + "effect": [ { "u_add_effect": "effect_fungus", "duration": "30 seconds" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_empath_insect", + "condition": { + "and": [ + { "u_has_trait": "perk_empath" }, + { "compare_string": [ "insect", { "mutator": "mon_faction", "mtype_id": { "context_val": "victim_type" } } ] } + ] + }, + "effect": [ { "u_add_effect": "effect_insect", "duration": "30 seconds" } ] + }, + { + "type": "effect_type", + "id": "effect_zombie", + "name": [ "Zombie Empathy" ], + "desc": [ + "You are really feeling for the last zombie you killed. That must have been really hard for it to die again. Though you aren't really feeling pain right now." + ], + "apply_message": "You feel a bit hungry for brains.", + "decay_messages": [ [ "Brains are overrated anyways.", "bad" ] ], + "rating": "good", + "max_intensity": 1, + "int_dur_factor": "30 s", + "blood_analysis_description": "Zombie?", + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "PAIN", "multiply": -0.99 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_animal", + "name": [ "Animal Empathy" ], + "desc": [ + "You are really feeling for the last animal you killed. Reminds you of that scene in the movie where they kill the pet, really sad stuff. Though you are feeling ready to learn to fight right now." + ], + "apply_message": "You are ready for a fight.", + "decay_messages": [ [ "Your animal instincts dissipate.", "bad" ] ], + "rating": "good", + "max_intensity": 1, + "int_dur_factor": "30 s", + "blood_analysis_description": "Animal?", + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "COMBAT_CATCHUP", "multiply": 4.0 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_nether", + "name": [ "Nether Empathy" ], + "desc": [ + "You are really feeling for the last demon you killed. Must be hard to die when you don't truly exist. Though you are feeling rejuvenated." + ], + "apply_message": "You feel your wounds begin to seal.", + "decay_messages": [ [ "Your regeneration ceases.", "bad" ] ], + "rating": "good", + "max_intensity": 1, + "int_dur_factor": "30 s", + "blood_analysis_description": "Nothing?", + "base_mods": { "health_min": [ 1 ], "health_chance": [ 40 ], "h_mod_min": [ 1 ], "h_mod_chance": [ 80 ] } + }, + { + "type": "effect_type", + "id": "effect_fungus", + "name": [ "Fungal Empathy" ], + "desc": [ + "You are really feeling for the last mushroom you killed. You always hated mushrooms on food, too earthy for your taste. Though you feel like your illness is gone." + ], + "apply_message": "You feel like something eats all the sickness inside you.", + "rating": "good", + "max_intensity": 1, + "int_dur_factor": "30 s", + "blood_analysis_description": "Mushroom?", + "removes_effects": [ "infected", "bite", "bleed", "fungus", "dermatik", "winded", "poison", "badpoison", "venom_dmg", "venom_weaken" ] + }, + { + "type": "effect_type", + "id": "effect_insect", + "name": [ "Bug Empathy" ], + "desc": [ + "You are really feeling for the last bug you killed. You always hated squishing bugs, what did they ever do to you. Though you feel like your skin has hardened." + ], + "apply_message": "Your skin hardens significantly.", + "decay_messages": [ [ "Your skin softens again.", "bad" ] ], + "rating": "good", + "max_intensity": 1, + "int_dur_factor": "30 s", + "blood_analysis_description": "Bug?", + "enchantments": [ + { + "condition": "ALWAYS", + "values": [ + { "value": "ARMOR_BASH", "add": 8.0 }, + { "value": "ARMOR_CUT", "add": 8.0 }, + { "value": "ARMOR_BULLET", "add": 8.0 }, + { "value": "ARMOR_ACID", "multiply": 0.0 } + ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/frankenstein.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/frankenstein.json new file mode 100644 index 000000000..e46a417a5 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/frankenstein.json @@ -0,0 +1,101 @@ +[ + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "meat_hunk", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MEDICAL", + "skill_used": "firstaid", + "difficulty": 5, + "skills_required": [ "electronics", 4 ], + "time": "240 m", + "qualities": [ { "id": "SEW", "level": 2 }, { "id": "SAW_M", "level": 2 }, { "id": "JUMPSTART", "level": 1 } ], + "components": [ [ [ "meat_tainted", 180 ] ], [ [ "bone_tainted", 80 ] ], [ [ "pipe", 2 ] ] ], + "flags": [ "SECRET" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_frankenstein_insight", + "condition": { "u_know_recipe": "meat_hunk" }, + "effect": [ { "u_message": "You have already mastered the art of bringing back the undead!" } ], + "false_effect": [ + { "u_message": "With a flash of insight you now understand how to bring the dead back to life!" }, + { "u_learn_recipe": "meat_hunk" } + ] + }, + { + "id": "meat_hunk", + "type": "TOOL", + "name": { "str": "homunculus", "str_pl": "homunculi" }, + "description": "A stitched together monstrosity of meat and bone, with limbs as wide as trash cans. This one is still sleeping. It would require a master's touch to bring it to life.", + "volume": "875000 ml", + "weight": "200 kg", + "price": 0, + "price_postapoc": 0, + "to_hit": -3, + "material": [ "flesh" ], + "symbol": ";", + "color": "white_magenta", + "use_action": { + "type": "place_monster", + "monster_id": "mon_meat_hunk", + "friendly_msg": "", + "hostile_msg": "", + "difficulty": 0, + "moves": 150, + "skills": [ "electronics", "firstaid" ] + }, + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } + }, + { + "id": "mon_meat_hunk", + "type": "MONSTER", + "name": { "str": "homunculus", "str_pl": "homunculi" }, + "description": "A stitched together monstrosity of meat and bone, with limbs as wide as trash cans.", + "default_faction": "player", + "bodytype": "human", + "species": [ "ZOMBIE", "HUMAN" ], + "diff": 5, + "volume": "875000 ml", + "weight": "200 kg", + "hp": 150, + "speed": 130, + "material": [ "flesh" ], + "symbol": "Z", + "color": "white_magenta", + "scents_tracked": [ "sc_human", "sc_fetid" ], + "aggression": 100, + "morale": 100, + "melee_skill": 5, + "melee_dice": 4, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "weakpoints": [ + { "name": "the head", "armor_mult": { "physical": 0.5 }, "coverage": 3 }, + { "name": "the eye", "armor_mult": { "physical": 0 }, "coverage": 1 } + ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_hulk" ], + "bleed_rate": 0, + "vision_day": 83, + "vision_night": 4, + "harvest": "zombie", + "special_attacks": [ { "id": "smash", "throw_strength": 96 } ], + "fungalize_into": "mon_zombie_fungus", + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "STUMBLES", + "WARM", + "BASHES", + "DESTROYS", + "POISON", + "NO_BREATHE", + "PUSH_MON", + "PUSH_VEH", + "FILTHY" + ], + "armor": { "bash": 4, "cut": 4, "bullet": 4, "electric": 2 } + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/holdout_pocket.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/holdout_pocket.json new file mode 100644 index 000000000..5da9f4e20 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/holdout_pocket.json @@ -0,0 +1,29 @@ +[ + { + "id": "integrated_holdout_pocket", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "holdout pocket" }, + "description": "A secret pocket no one knows about that can easily store a weapon.", + "volume": "10 L", + "price": 0, + "price_postapoc": 0, + "material": [ "flesh" ], + "symbol": "x", + "color": "magenta", + "flags": [ "INTEGRATED", "UNBREAKABLE", "PERSONAL", "NO_SALVAGE" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "min_item_volume": "300 ml", + "max_contains_volume": "8 L", + "max_contains_weight": "8200 g", + "max_item_length": "120 cm", + "moves": 120, + "volume_encumber_modifier": 0.3 + } + ], + "armor": [ { "covers": [ "torso" ], "coverage": 0, "encumbrance": 0 } ] + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/old_guns.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/old_guns.json new file mode 100644 index 000000000..e54095590 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/old_guns.json @@ -0,0 +1,282 @@ +[ + { + "id": "marlin_9a", + "type": "GUN", + "copy-from": "marlin_9a", + "name": { "str": "small game rifle" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "moss_brownie", + "type": "GUN", + "copy-from": "moss_brownie", + "name": { "str": "Mossberg Brownie" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "win70", + "type": "GUN", + "copy-from": "win70", + "name": { "str": "Winchester Model 70" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "garand", + "type": "GUN", + "copy-from": "garand", + "name": { "str": "M1 Garand" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "m1903", + "type": "GUN", + "copy-from": "m1903", + "name": { "str": "M1903 Springfield" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "m1918", + "type": "GUN", + "copy-from": "m1918", + "name": { "str": "Browning Automatic Rifle" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "smle_mk3", + "type": "GUN", + "copy-from": "smle_mk3", + "name": { "str": "Enfield battle rifle" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "m1carbine", + "type": "GUN", + "copy-from": "m1carbine", + "name": { "str": "M1 carbine" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "walther_ppk", + "type": "GUN", + "copy-from": "walther_ppk", + "name": { "str": "Walther PPK" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "colt_navy", + "type": "GUN", + "copy-from": "colt_navy", + "name": { "str_sp": "Colt M1861 Navy" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "model_10_revolver", + "type": "GUN", + "copy-from": "model_10_revolver", + "name": { "str": "S&W Model 10" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "fn1910", + "type": "GUN", + "copy-from": "fn1910", + "name": { "str": "FN 1910 .380" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "hi_power_40", + "type": "GUN", + "copy-from": "hi_power_40", + "name": { "str": "Browning Hi-Power .40 S&W" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "m1911", + "type": "GUN", + "copy-from": "m1911", + "name": { "str": "M1911 pistol" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "tommygun", + "type": "GUN", + "copy-from": "tommygun", + "name": { "str": "Thompson M1928A1" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "greasegun", + "type": "GUN", + "copy-from": "greasegun", + "name": { "str": "M3 SMG" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "1895sbl", + "type": "GUN", + "copy-from": "1895sbl", + "name": { "str": "Marlin 1895 SBL" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "mosin91_30", + "type": "GUN", + "copy-from": "mosin91_30", + "name": { "str": "Mosin battle rifle" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "tokarev", + "type": "GUN", + "copy-from": "tokarev", + "name": { "str": "Tokarev handgun" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "p08", + "type": "GUN", + "copy-from": "p08", + "name": { "str": "Luger P08" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "mauser_c96", + "type": "GUN", + "copy-from": "mauser_c96", + "name": { "str": "Broomhandle pistol" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "mp40", + "type": "GUN", + "copy-from": "mp40", + "name": { "str": "Schmeisser MP 40" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "sten", + "type": "GUN", + "copy-from": "sten", + "name": { "str": "STEN Mk II", "str_pl": "STENs Mk II" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "hi_power_9mm", + "type": "GUN", + "copy-from": "hi_power_9mm", + "name": { "str": "Browning Hi-Power 9x19mm" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "walther_p38", + "type": "GUN", + "copy-from": "walther_p38", + "name": { "str": "Walther P38" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "cannon_3in_ordnance", + "type": "GUN", + "copy-from": "cannon_3in_ordnance", + "name": { "str": "3-inch ordnance rifle" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "carbine_flintlock", + "type": "GUN", + "copy-from": "carbine_flintlock", + "name": { "str": "flintlock carbine" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "pistol_flintlock", + "type": "GUN", + "copy-from": "pistol_flintlock", + "name": { "str": "flintlock pistol" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "rifle_flintlock", + "type": "GUN", + "copy-from": "rifle_flintlock", + "name": { "str": "flintlock musket" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "shotgun_d", + "type": "GUN", + "copy-from": "shotgun_d", + "name": { "str": "double barrel shotgun" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "shotgun_s", + "type": "GUN", + "copy-from": "shotgun_s", + "name": { "str": "single barrel shotgun" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "winchester_1887", + "type": "GUN", + "copy-from": "winchester_1887", + "name": { "str": "bootleg lever-action shotgun" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "winchester_1897", + "type": "GUN", + "copy-from": "winchester_1897", + "name": { "str": "6-round trenchgun" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "ppsh", + "type": "GUN", + "copy-from": "ppsh", + "name": { "str": "PPSh-41 submachine gun" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "mp18", + "type": "GUN", + "copy-from": "mp18", + "name": { "str": "MP 18 submachine gun" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "number4_mki", + "type": "GUN", + "copy-from": "number4_mki", + "name": { "str": "updated Enfield rifle" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "m2browning", + "type": "GUN", + "copy-from": "m2browning", + "name": { "str": "M2HB Browning HMG" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "m2browning_sawn", + "type": "GUN", + "copy-from": "m2browning_sawn", + "name": { "str": ".50 caliber rifle" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "shotgun_410", + "type": "GUN", + "copy-from": "shotgun_410", + "name": { "str": "Winchester M37 .410" }, + "extend": { "flags": [ "OLD_GUN" ] } + }, + { + "id": "mosin44", + "type": "GUN", + "copy-from": "mosin44", + "name": { "str": "Mosin carbine" }, + "extend": { "flags": [ "OLD_GUN" ] } + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/openpalm.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/openpalm.json new file mode 100644 index 000000000..7cd9cd47f --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/openpalm.json @@ -0,0 +1,19 @@ +[ + { + "id": "integrated_hand_openpalm", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "callused hands" }, + "description": "You've dealt so many blows your hands are rough with calluses. The edge of your hand is sharp enough to cut paper.", + "price": 0, + "price_postapoc": 0, + "material": [ "flesh" ], + "material_thickness": 2, + "symbol": "x", + "color": "magenta", + "flags": [ "INTEGRATED", "UNBREAKABLE", "PERSONAL", "ZERO_WEIGHT" ], + "armor": [ { "encumbrance": 1, "coverage": 100, "covers": [ "hand_l", "hand_r" ] } ], + "qualities": [ [ "BUTCHER", 5 ], [ "CUT", 1 ] ], + "melee_damage": { "cut": 4 } + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/pinchedfingers.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/pinchedfingers.json new file mode 100644 index 000000000..245806d68 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/pinchedfingers.json @@ -0,0 +1,12 @@ +[ + { + "id": "integrated_hand_pinchedfingers", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "callused hands" }, + "description": "You've dealt so many blows your hands are rough with calluses. The tips of your fingers can pinch firmly enough to pry nails or turn small bolts.", + "copy-from": "integrated_hand_openpalm", + "qualities": [ [ "PRY", 1 ], [ "PRYING_NAIL", 1 ], [ "WRENCH", 1 ], [ "WRENCH_FINE", 1 ] ], + "melee_damage": { "stab": 4 } + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/popeye.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/popeye.json new file mode 100644 index 000000000..baa49973a --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/popeye.json @@ -0,0 +1,42 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_spinach_consumption", + "condition": { "u_has_items": { "item": "spinach", "count": 1 } }, + "effect": [ + { "u_consume_item": "spinach" }, + { + "u_cast_spell": { + "id": "spell_strength_of_spinach", + "message": "You swallow the spinach raw and grow visibly stronger, for a short while." + }, + "targeted": true + } + ], + "false_effect": [ { "u_message": "You don't have any spinach!" } ] + }, + { + "id": "spell_strength_of_spinach", + "type": "SPELL", + "name": "Strength in Spinach", + "description": "You gain the strength of a sailor.", + "valid_targets": [ "self" ], + "min_duration": 6000, + "max_duration": 6000, + "max_level": 1, + "flags": [ "SILENT", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], + "shape": "blast", + "effect": "attack", + "effect_str": "spinach_strength" + }, + { + "type": "effect_type", + "id": "spinach_strength", + "name": [ "Strength of Spinach" ], + "desc": [ "You have the strength of a sailor!" ], + "apply_message": "You feel strong!", + "remove_message": "Your strength deflates.", + "rating": "good", + "base_mods": { "str_mod": [ 2 ] } + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/recycler.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/recycler.json new file mode 100644 index 000000000..8e124d540 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/recycler.json @@ -0,0 +1,25 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_can_hunting", + "//": "only 50% chance to happen each time", + "//2": "Processing effect", + "condition": { "math": [ "rng(0, 1.0)", ">", "0.5" ] }, + "effect": [ + { "u_message": "Someone left a perfectly good can of soda on the ground!" }, + { "u_spawn_item": "groce_softdrink", "use_item_group": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_can_finder_on", + "//": "Activation effect", + "effect": [ { "u_message": "You start hunting for cans" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_can_finder_off", + "//": "Deactivation effect", + "effect": [ { "u_message": "You stop looking for cans" } ] + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/skeleton.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/skeleton.json new file mode 100644 index 000000000..c3dccf6ae --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/skeleton.json @@ -0,0 +1,12 @@ +[ + { + "id": "skeleton_plate", + "type": "TOOL_ARMOR", + "copy-from": "armor_lc_plate", + "name": { "str": "skeletal plate" }, + "description": "A full body multilayered suit of skeletal plate armor.", + "replace_materials": { "lc_steel": "bone", "lc_steel_chain": "flesh" }, + "extend": { "flags": [ "INTEGRATED", "UNBREAKABLE", "NO_SALVAGE" ] }, + "proportional": { "encumbrance": 0.3 } + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/thick_skull.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/thick_skull.json new file mode 100644 index 000000000..e71a04268 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/thick_skull.json @@ -0,0 +1,24 @@ +[ + { + "id": "integrated_thick_skull", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "thick skull" }, + "description": "You've taken so many hits to the head that your skull's gotten thicker.", + "price": 0, + "price_postapoc": 0, + "material": [ "bone" ], + "material_thickness": 3, + "symbol": "x", + "color": "magenta", + "flags": [ "INTEGRATED", "UNBREAKABLE", "PERSONAL", "ZERO_WEIGHT", "NO_SALVAGE", "SOFT" ], + "armor": [ + { + "covers": [ "head" ], + "specifically_covers": [ "head_forehead", "head_crown", "head_nape", "head_ear_r", "head_ear_l" ], + "coverage": 100, + "encumbrance": 1 + } + ] + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkdata/troubleseeker.json b/data/Mainline_mods/Mods/BombasticPerks/perkdata/troubleseeker.json new file mode 100644 index 000000000..8fcc30b5a --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkdata/troubleseeker.json @@ -0,0 +1,28 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_troubleseeking", + "effect": [ + { + "u_spawn_monster": "mon_zombie", + "real_count": 1, + "min_radius": 35, + "max_radius": 50, + "spawn_message": "You suddently feel that you have found some trouble.", + "spawn_message_plural": "You suddently feel that you have found a lot of trouble." + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_troubleseek_on", + "//": "Activation effect", + "effect": [ { "u_message": "You start seeking trouble." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_troubleseek_off", + "//": "Deactivation effect", + "effect": [ { "u_message": "You stop seeking trouble for now." } ] + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perkmenu.json b/data/Mainline_mods/Mods/BombasticPerks/perkmenu.json new file mode 100644 index 000000000..09a720513 --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perkmenu.json @@ -0,0 +1,681 @@ +[ + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "dynamic_line": "Lifestyle Perks:\nLevel .\n perk points to spend.\nCurrent EXP: .\nEXP to next level: .", + "responses": [ + { + "condition": { "not": { "u_has_trait": "perk_STR_UP" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_STR_UP", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_DEX_UP" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_DEX_UP", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_INT_UP" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_INT_UP", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_PER_UP" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_PER_UP", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_holdout_pocket" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_holdout_pocket", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_built_tough" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_built_tough", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_hauler" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_hauler", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_vacationer" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_vacationer", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_gymrat" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_gymrat", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Requires athletics 3", + "target_var": { "context_val": "trait_requirement_description" } + }, + { "set_condition": "perk_condition", "condition": { "math": [ "u_skill('swimming')", ">=", "3" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_safety_net" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_safety_net", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_lucky_dodge" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_lucky_dodge", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_thick_skull" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_thick_skull", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_way_openpalm" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_way_openpalm", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Must not have , . Requires unarmed 2 and cutting 1", + "target_var": { "context_val": "trait_requirement_description" } + }, + { + "set_condition": "perk_condition", + "condition": { + "and": [ + { "not": { "or": [ { "u_has_trait": "perk_way_closedfist" }, { "u_has_trait": "perk_way_pinchedfingers" } ] } }, + { + "and": [ { "math": [ "u_skill('unarmed')", ">=", "2" ] }, { "math": [ "u_skill('cutting')", ">=", "1" ] } ] + } + ] + } + }, + { + "set_string_var": "Taking this means you can't take or ", + "target_var": { "context_val": "trait_additional_details" } + } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_way_closedfist" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_way_closedfist", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Must not have , . Requires unarmed 2 and bashing 1", + "target_var": { "context_val": "trait_requirement_description" } + }, + { + "set_condition": "perk_condition", + "condition": { + "and": [ + { "not": { "or": [ { "u_has_trait": "perk_way_openpalm" }, { "u_has_trait": "perk_way_pinchedfingers" } ] } }, + { + "and": [ { "math": [ "u_skill('unarmed')", ">=", "2" ] }, { "math": [ "u_skill('bashing')", ">=", "1" ] } ] + } + ] + } + }, + { + "set_string_var": "Taking this means you can't take or ", + "target_var": { "context_val": "trait_additional_details" } + } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_way_pinchedfingers" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_way_pinchedfingers", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Must not have , . Requires unarmed 2 and piercing 1", + "target_var": { "context_val": "trait_requirement_description" } + }, + { + "set_condition": "perk_condition", + "condition": { + "and": [ + { "not": { "or": [ { "u_has_trait": "perk_way_closedfist" }, { "u_has_trait": "perk_way_openpalm" } ] } }, + { + "and": [ { "math": [ "u_skill('unarmed')", ">=", "2" ] }, { "math": [ "u_skill('stabbing')", ">=", "1" ] } ] + } + ] + } + }, + { + "set_string_var": "Taking this means you can't take or ", + "target_var": { "context_val": "trait_additional_details" } + } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_bloody_mess" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_bloody_mess", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Must not have ", + "target_var": { "context_val": "trait_requirement_description" } + }, + { "set_condition": "perk_condition", "condition": { "not": { "u_has_trait": "perk_surgical_strikes" } } }, + { + "set_string_var": "Taking this means you can't take ", + "target_var": { "context_val": "trait_additional_details" } + } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_surgical_strikes" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_surgical_strikes", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Must not have . Melee or guns 2", + "target_var": { "context_val": "trait_requirement_description" } + }, + { + "set_condition": "perk_condition", + "condition": { + "and": [ + { "not": { "u_has_trait": "perk_bloody_mess" } }, + { + "or": [ { "math": [ "u_skill('melee')", ">=", "2" ] }, { "math": [ "u_skill('gun')", ">=", "2" ] } ] + } + ] + } + }, + { + "set_string_var": "Taking this means you can't take ", + "target_var": { "context_val": "trait_additional_details" } + } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_quickdraw" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_quickdraw", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Requires handguns 2", + "target_var": { "context_val": "trait_requirement_description" } + }, + { "set_condition": "perk_condition", "condition": { "math": [ "u_skill('pistol')", ">=", "2" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_tuck_and_roll" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_tuck_and_roll", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_recycler" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_recycler", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Requires survival 4", + "target_var": { "context_val": "trait_requirement_description" } + }, + { "set_condition": "perk_condition", "condition": { "math": [ "u_skill('survival')", ">=", "4" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_tingly" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_tingly", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_jumpy" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { "set_string_var": "", "target_var": { "context_val": "trait_description" } }, + { "set_string_var": "perk_jumpy", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_hobbyist" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_hobbyist", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_troubleseeker" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_troubleseeker", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_long_shot" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_long_shot", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Requires perception 10", + "target_var": { "context_val": "trait_requirement_description" } + }, + { "set_condition": "perk_condition", "condition": { "math": [ "u_val('perception_base')", ">=", "10" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_popeye" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_popeye", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_crafty_hands" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_crafty_hands", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "not": { "u_has_trait": "perk_chainsmoker" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_chainsmoker", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT" + }, + { + "condition": { "math": [ "u_no_playstyle", "==", "0" ] }, + "text": "Playstyle Perks", + "topic": "TALK_PERK_MENU_PLAYSTYLE" + }, + { "text": "Settings", "topic": "TALK_PERK_MENU_CONFIG" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_PLAYSTYLE", + "dynamic_line": "Playstyle Perks:\nLevel .\n perk points to spend.\nCurrent EXP: .\nEXP to next level: .", + "responses": [ + { + "condition": { "not": { "u_has_trait": "perk_frakenstein" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_frakenstein", "target_var": { "context_val": "trait_id" } }, + { + "set_string_var": "Requires electronics 4, and health care 4", + "target_var": { "context_val": "trait_requirement_description" } + }, + { + "set_condition": "perk_condition", + "condition": { "and": [ { "math": [ "u_skill('electronics')", ">=", "4" ] }, { "math": [ "u_skill('firstaid')", ">=", "4" ] } ] } + } + ], + "topic": "TALK_PERK_MENU_SELECT_PLAYSTYLE" + }, + { + "condition": { "not": { "u_has_trait": "perk_jugg" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { "set_string_var": "", "target_var": { "context_val": "trait_description" } }, + { "set_string_var": "perk_jugg", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT_PLAYSTYLE" + }, + { + "condition": { "not": { "u_has_trait": "perk_olde_guns" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_olde_guns", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT_PLAYSTYLE" + }, + { + "condition": { "not": { "u_has_trait": "perk_empath" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_empath", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT_PLAYSTYLE" + }, + { + "condition": { "not": { "u_has_trait": "perk_chainsaw" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_chainsaw", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT_PLAYSTYLE" + }, + { + "condition": { "not": { "u_has_trait": "perk_skeleton" } }, + "text": "Gain []", + "effect": [ + { "set_string_var": "", "target_var": { "context_val": "trait_name" } }, + { + "set_string_var": "", + "target_var": { "context_val": "trait_description" } + }, + { "set_string_var": "perk_skeleton", "target_var": { "context_val": "trait_id" } }, + { "set_string_var": "No Requirements", "target_var": { "context_val": "trait_requirement_description" } }, + { "set_condition": "perk_condition", "condition": { "math": [ "0", "==", "0" ] } } + ], + "topic": "TALK_PERK_MENU_SELECT_PLAYSTYLE" + }, + { "text": "Lifestyle Perks", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Settings", "topic": "TALK_PERK_MENU_CONFIG" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_FAIL", + "dynamic_line": "You don't have a perk point, or meet the prerequisites for this perk.", + "responses": [ { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, { "text": "Quit.", "topic": "TALK_DONE" } ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_SELECT", + "dynamic_line": ": \"\"\n.\n", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { + "and": [ + { "or": [ { "math": [ "u_no_prerecs", ">", "0" ] }, { "get_condition": "perk_condition" } ] }, + { "math": [ "u_num_perks", ">", "0" ] } + ] + }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ { "u_add_trait": { "context_val": "trait_id" } }, { "math": [ "u_num_perks", "--" ] } ] + }, + { + "text": "Go Back.", + "effect": [ { "set_string_var": "", "target_var": { "context_val": "trait_additional_details" } } ], + "topic": "TALK_PERK_MENU_MAIN" + }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_SELECT_PLAYSTYLE", + "dynamic_line": ": \"\"\nCosts + 1 perk points, .\n", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { + "and": [ + { "or": [ { "math": [ "u_no_prerecs", ">", "0" ] }, { "get_condition": "perk_condition" } ] }, + { "math": [ "u_num_perks", ">=", "u_playstyle_cost + 1" ] } + ] + }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ { "u_add_trait": { "context_val": "trait_id" } }, { "math": [ "u_num_perks", "-=", "u_playstyle_cost + 1" ] } ] + }, + { + "text": "Go Back.", + "effect": [ { "set_string_var": "", "target_var": { "context_val": "trait_additional_details" } } ], + "topic": "TALK_PERK_MENU_PLAYSTYLE" + }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/Mainline_mods/Mods/BombasticPerks/perks.json b/data/Mainline_mods/Mods/BombasticPerks/perks.json new file mode 100644 index 000000000..1c9ec510e --- /dev/null +++ b/data/Mainline_mods/Mods/BombasticPerks/perks.json @@ -0,0 +1,374 @@ +[ + { + "type": "mutation_type", + "id": "perk" + }, + { + "type": "mutation", + "id": "perk_perk_menu", + "name": { "str": "Open Perk Menu" }, + "points": 0, + "description": "Direct access to the perk menu.", + "category": [ "perk" ], + "active": true, + "activated_eocs": [ "EOC_open_perk_menu" ] + }, + { + "type": "mutation", + "id": "perk_STR_UP", + "name": { "str": "Stronger" }, + "points": 0, + "description": "Have you been working out? +1 Strength.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "STRENGTH", "add": 1 } ] } ] + }, + { + "type": "mutation", + "id": "perk_DEX_UP", + "name": { "str": "Faster" }, + "points": 0, + "description": "Have you been doing cardio? +1 Dexterity.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "DEXTERITY", "add": 1 } ] } ] + }, + { + "type": "mutation", + "id": "perk_INT_UP", + "name": { "str": "Smarter" }, + "points": 0, + "description": "Have you been reading? +1 Intelligence.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "INTELLIGENCE", "add": 1 } ] } ] + }, + { + "type": "mutation", + "id": "perk_PER_UP", + "name": { "str": "Sharper" }, + "points": 0, + "description": "Have you been staring out into the middle distance? +1 Perception.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "PERCEPTION", "add": 1 } ] } ] + }, + { + "type": "mutation", + "id": "perk_holdout_pocket", + "name": { "str": "Holdout Pocket" }, + "points": 0, + "description": "Never leave home without it! You have a secret pocket no one knows about that can easily store a weapon.", + "category": [ "perk" ], + "integrated_armor": [ "integrated_holdout_pocket" ] + }, + { + "type": "mutation", + "id": "perk_built_tough", + "name": { "str": "Built Tough" }, + "points": 0, + "description": "You're like a walking tank! Take 5% less damage from all sources.", + "category": [ "perk" ], + "enchantments": [ + { + "condition": "ALWAYS", + "values": [ + { "value": "ARMOR_ACID", "multiply": -0.05 }, + { "value": "ARMOR_BASH", "multiply": -0.05 }, + { "value": "ARMOR_BIO", "multiply": -0.05 }, + { "value": "ARMOR_BULLET", "multiply": -0.05 }, + { "value": "ARMOR_COLD", "multiply": -0.05 }, + { "value": "ARMOR_CUT", "multiply": -0.05 }, + { "value": "ARMOR_ELEC", "multiply": -0.05 }, + { "value": "ARMOR_HEAT", "multiply": -0.05 }, + { "value": "ARMOR_STAB", "multiply": -0.05 } + ] + } + ] + }, + { + "type": "mutation", + "id": "perk_hauler", + "name": { "str": "Hauler" }, + "points": 0, + "description": "All that hauling has paid off. You can carry 10kg of additional items.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "CARRY_WEIGHT", "add": 10000 } ] } ] + }, + { + "type": "mutation", + "id": "perk_vacationer", + "name": { "str": "Vacationer" }, + "points": 0, + "description": "Every day in the apocalypse is just like the beach. You are more comfortable in cold and warm weather.", + "category": [ "perk" ], + "enchantments": [ + { + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 10 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 10 } ] + } + ] + }, + { + "type": "mutation", + "id": "perk_gymrat", + "name": { "str": "Gym Rat" }, + "points": 0, + "description": "Your time exercising has gotten you used to being drenched in your own sweat. Being wet doesn't bother you as much anymore.", + "category": [ "perk" ], + "wet_protection": [ + { "part": "head", "neutral": 6 }, + { "part": "leg_l", "neutral": 8 }, + { "part": "leg_r", "neutral": 8 }, + { "part": "foot_l", "neutral": 2 }, + { "part": "foot_r", "neutral": 2 }, + { "part": "arm_l", "neutral": 8 }, + { "part": "arm_r", "neutral": 8 }, + { "part": "hand_l", "neutral": 12 }, + { "part": "hand_r", "neutral": 12 }, + { "part": "torso", "neutral": 10 } + ] + }, + { + "type": "mutation", + "id": "perk_thick_skull", + "name": { "str": "Thick Skull" }, + "points": 0, + "description": "You've taken so many blows to the head you've lost count. You've got additional skull armor.", + "category": [ "perk" ], + "integrated_armor": [ "integrated_thick_skull" ] + }, + { + "type": "mutation", + "id": "perk_way_openpalm", + "name": { "str": "Way of the Open Palm" }, + "points": 0, + "description": "You've dealt enough blows that your hands have callused, and your knifehand strikes are sharp enough to draw blood.", + "category": [ "perk" ], + "integrated_armor": [ "integrated_hand_openpalm" ] + }, + { + "type": "mutation", + "id": "perk_way_closedfist", + "name": { "str": "Way of the Closed Fist" }, + "points": 0, + "description": "You've dealt enough blows that your hands have callused, and your hammerfist strikes are as strong as a real hammer.", + "category": [ "perk" ], + "integrated_armor": [ "integrated_hand_closedfist" ] + }, + { + "type": "mutation", + "id": "perk_way_pinchedfingers", + "name": { "str": "Way of the Pinched Fingers" }, + "points": 0, + "description": "You've dealt enough blows that your hands have callused, your spearhand strikes can pierce armor, and your grip can turn bolts barehanded.", + "category": [ "perk" ], + "integrated_armor": [ "integrated_hand_pinchedfingers" ] + }, + { + "type": "mutation", + "id": "perk_quickdraw", + "name": { "str": "Quickdraw" }, + "points": 0, + "description": "Practicing with handguns has improved your draw speed with pretty much everything. Retrieve objects 25% faster from containers.", + "category": [ "perk" ], + "obtain_cost_multiplier": 0.75 + }, + { + "type": "mutation", + "id": "perk_tuck_and_roll", + "name": { "str": "Tuck and Roll" }, + "points": 0, + "description": "At some point you got really good at falling off rooftops. Take 40% less fall damage.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "FALL_DAMAGE", "multiply": -0.4 } ] } ] + }, + { + "type": "mutation", + "id": "perk_surgical_strikes", + "name": { "str": "Surgical Strikes" }, + "points": 0, + "description": "Careful aim allows you to take down game with little tissue damage. Enemies you kill tend to stay intact.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "OVERKILL_DAMAGE", "add": 30.0 } ] } ] + }, + { + "type": "mutation", + "id": "perk_bloody_mess", + "name": { "str": "Bloody Mess" }, + "points": 0, + "description": "For whatever reason you seem to always make a real mess of things. Enemies you kill tend to explode into a mess of viscera.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "OVERKILL_DAMAGE", "add": -1000.0 } ] } ] + }, + { + "type": "mutation", + "id": "perk_tingly", + "name": { "str": "Tingly" }, + "points": 0, + "description": "Ever since the apocalypse you get a funny feeling during storms and have trouble trusting small appliances. You usually have a pretty good idea where they are though.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "SIGHT_RANGE_ELECTRIC", "add": 4.0 } ] } ] + }, + { + "type": "mutation", + "id": "perk_jumpy", + "name": { "str": "Jumpy" }, + "points": 0, + "description": "You've not been the same since the apocalypse, almost everything makes you jump. You are just a bit quicker to act though.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "SPEED", "multiply": 0.03 } ] } ] + }, + { + "type": "mutation", + "id": "perk_hobbyist", + "name": { "str": "Hobbyist" }, + "points": 0, + "description": "No work, no social obligations, lots of time to focus on your hobbies. You feel like you've been picking up skills faster recently.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "LEARNING_FOCUS", "add": 5.0 } ] } ] + }, + { + "type": "mutation", + "id": "perk_recycler", + "name": { "str": "Recycler" }, + "points": 0, + "description": "Even with no one around you feel obligated to clean up the streets. You find full cans of soda in the weirdest places.", + "category": [ "perk" ], + "active": true, + "activated_is_setup": true, + "activated_eocs": [ "EOC_can_finder_on" ], + "deactivated_eocs": [ "EOC_can_finder_off" ], + "processed_eocs": [ "EOC_can_hunting" ], + "time": 24000 + }, + { + "type": "mutation", + "id": "perk_troubleseeker", + "name": { "str": "Trouble seeker" }, + "points": 0, + "description": "As if the apocalypse itself wasn't enough, you are constantly looking for some trouble. Zombies will sometimes appear out of nowhere to attack you. Fortunately, they always appear at a good distance from you. Activate to toggle.", + "category": [ "perk" ], + "active": true, + "activated_is_setup": true, + "activated_eocs": [ "EOC_troubleseek_on" ], + "deactivated_eocs": [ "EOC_troubleseek_off" ], + "processed_eocs": [ "EOC_troubleseeking" ], + "time": 20000 + }, + { + "type": "mutation", + "id": "perk_popeye", + "name": { "str": "Of sailors and spinach" }, + "points": 0, + "description": "You spent several years on the high sea and now your muscles visibly swell and clench when you eat raw spinach.", + "category": [ "perk" ], + "active": true, + "activated_eocs": [ "EOC_spinach_consumption" ] + }, + { + "type": "mutation", + "id": "perk_frakenstein", + "name": { "str": "Playing God" }, + "points": 0, + "description": "You've been dissecting critters since high school. Last night a voice gave you an idea for how to bring them back to life activate the perk to gain insight into the nature of life itself!", + "category": [ "perk" ], + "active": true, + "activated_eocs": [ "EOC_frankenstein_insight" ] + }, + { + "type": "mutation", + "id": "perk_safety_net", + "name": { "str": "Safety net" }, + "points": 0, + "description": "You've always felt like someone was looking out for you upstairs. When you are attacked there is a 5% chance the attack will deal no damage.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "FORCEFIELD", "add": 0.05 } ] } ] + }, + { + "type": "mutation", + "id": "perk_lucky_dodge", + "name": { "str": "Lucky dodge" }, + "points": 0, + "description": "You have a habit of always ducking at the right time. You have a 5% chance to dodge any incoming attack.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "EVASION", "add": 0.05 } ] } ] + }, + { + "type": "mutation", + "id": "perk_long_shot", + "name": { "str": "Long shot" }, + "points": 0, + "description": "You always ate your carrots, that good eyesight is paying off. You can use ranged weapons effectively up to 4 more tiles away.", + "category": [ "perk" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "RANGE", "add": 4 } ] } ] + }, + { + "type": "mutation", + "id": "perk_crafty_hands", + "name": { "str": "Crafty hands" }, + "points": 0, + "description": "You really like to do stuff with your own hands. +10% for crafting speed.", + "category": [ "perk" ], + "crafting_speed_multiplier": 1.1 + }, + { + "type": "mutation", + "id": "perk_chainsmoker", + "name": { "str": "Chainsmoker" }, + "points": 0, + "description": "Smoking is bad, but damn it's badass. You deal more damage and shoot more accurately when you smoke.", + "category": [ "perk" ], + "enchantments": [ + { "condition": { "u_has_effect": "cig" }, "values": [ { "value": "MELEE_DAMAGE", "multiply": 0.25 } ] }, + { "condition": { "u_has_effect": "cig" }, "values": [ { "value": "WEAPON_DISPERSION", "multiply": 0.25 } ] } + ] + }, + { + "type": "mutation", + "id": "perk_empath", + "name": { "str": "Empath" }, + "points": 0, + "description": "You've always had a passion for people, and a deep understanding of their thoughts and feelings. Now that almost everyone's dead that has to extend to other things too! When you kill a creature gain some of its abilities temporarily.", + "category": [ "perk" ] + }, + { + "type": "mutation", + "id": "perk_jugg", + "name": { "str": "Unstoppable force" }, + "points": 0, + "description": "You've always been a bit of a bull in a china shop; people used to call you heavy handed but now they aren't saying much at all. You deal extra damage based on how protective your armor is.", + "category": [ "perk" ], + "enchantments": [ + { + "condition": "ALWAYS", + "values": [ { "value": "ITEM_DAMAGE_BASH", "add": { "math": [ "u_armor('bash', 'arm_r') * u_attack_speed() / 200" ] } } ] + } + ] + }, + { + "type": "mutation", + "id": "perk_skeleton", + "name": { "str": "Skin and bones" }, + "points": 0, + "description": "People always used to tell you that you should eat more. It seems you needed their reminders because you can see your bones at this point. You have skeletal armor.", + "category": [ "perk" ], + "integrated_armor": [ "skeleton_plate" ] + }, + { + "type": "mutation", + "id": "perk_chainsaw", + "name": { "str": "The Great Communicator" }, + "points": 0, + "description": "You've always had something to say about ripping apart things with chainsaws. You can swing powered blades faster.", + "category": [ "perk" ], + "enchantments": [ { "condition": { "u_has_wielded_with_flag": "MESSY" }, "values": [ { "value": "ATTACK_SPEED", "multiply": -0.2 } ] } ] + }, + { + "type": "mutation", + "id": "perk_olde_guns", + "name": { "str": "Olde Reliables" }, + "points": 0, + "description": "You've always had a bit of a fondness for the older firearms. Post apocalypse, this has translated into a damage boost when using WWII and older weapons.", + "category": [ "perk" ], + "enchantments": [ + { "condition": { "u_has_wielded_with_flag": "OLD_GUN" }, "values": [ { "value": "RANGED_DAMAGE", "multiply": 0.25 } ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/Classic_zombies/alberta_regional_map_settings.json b/data/Mainline_mods/Mods/Classic_zombies/alberta_regional_map_settings.json index e833b7bf2..7e00ba356 100644 --- a/data/Mainline_mods/Mods/Classic_zombies/alberta_regional_map_settings.json +++ b/data/Mainline_mods/Mods/Classic_zombies/alberta_regional_map_settings.json @@ -17,13 +17,13 @@ "solid_earth", "empty_rock", "empty_rock", - "empty_rock", - "empty_rock", - "empty_rock", - "empty_rock", - "empty_rock", - "empty_rock", - "empty_rock" + "deep_rock", + "deep_rock", + "deep_rock", + "deep_rock", + "deep_rock", + "deep_rock", + "deep_rock" ], "default_groundcover": [ [ "t_region_groundcover", 1 ] ], "region_terrain_and_furniture": { @@ -35,34 +35,84 @@ "t_region_groundcover_barren": { "t_dirt": 30, "t_grass_dead": 2, "t_railroad_rubble": 1 }, "t_region_grass": { "t_grass": 1 }, "t_region_soil": { "t_dirt": 1 }, - "t_region_shrub": { "t_underbrush": 30, "t_shrub": 15, "t_shrub_rose": 15, "t_fern": 2, "t_shrub_blueberry": 3, "t_shrub_strawberry": 1 }, + "t_region_shrub": { + "t_underbrush": 30, + "t_shrub": 15, + "t_fern": 5, + "t_shrub_blueberry": 2, + "t_shrub_strawberry": 2, + "t_shrub_blackberry": 2, + "t_shrub_raspberry": 2, + "t_shrub_huckleberry": 2, + "t_shrub_rose": 2, + "t_shrub_hydrangea": 2, + "t_shrub_lilac": 2, + "t_shrub_grape": 1 + }, "t_region_shrub_fruit": { "t_shrub_blueberry": 6, "t_shrub_strawberry": 6, "t_shrub_raspberry": 4, + "t_shrub_grape": 4, "t_shrub_blackberry": 2, "t_shrub_huckleberry": 2 }, - "t_region_shrub_decorative": { "t_shrub": 3, "t_shrub_rose": 3, "t_shrub_hydrangea": 2, "t_shrub_lilac": 2 }, + "t_region_shrub_decorative": { "t_shrub": 3, "t_fern": 1, "t_shrub_rose": 2, "t_shrub_hydrangea": 2, "t_shrub_lilac": 2 }, + "t_region_tree_forest_dense": { + "t_tree": 18, + "t_tree_blackjack": 10, + "t_tree_hickory": 18, + "t_tree_pine": 9, + "t_tree_maple": 7, + "t_tree_birch": 7, + "t_tree_beech": 7, + "t_tree_cottonwood": 4, + "t_tree_elm": 4, + "t_tree_cherry": 4, + "t_tree_plum": 2, + "t_region_tree_dead": 5, + "t_region_tree_forest_other": 5 + }, + "t_region_tree_forest_other": { + "t_tree_willow": 15, + "t_tree_alder": 15, + "t_tree_chestnut": 10, + "t_tree_basswood": 10, + "t_tree_hazelnut": 10, + "t_tree_apple": 10, + "t_tree_apricot": 2, + "t_tree_pear": 1, + "t_tree_elderberry": 10, + "t_tree_mulberry": 10, + "t_tree_juniper": 5 + }, + "t_region_tree_forest": { "t_region_tree_forest_dense": 2, "t_region_tree_forest_other": 1 }, "t_region_tree": { "t_tree": 128, "t_tree_young": 128, - "t_tree_pine": 128, "t_tree_birch": 16, "t_tree_elm": 16, "t_tree_cottonwood": 16, - "t_tree_alder": 32, - "t_tree_maple": 16, - "t_tree_willow": 16, + "t_tree_basswood": 16, + "t_tree_alder": 16, + "t_tree_pine": 32, + "t_tree_maple": 32, + "t_tree_willow": 32, + "t_tree_hickory": 16, + "t_tree_walnut": 8, + "t_tree_chestnut": 8, + "t_tree_hazelnut": 2, "t_tree_beech": 2, + "t_tree_blackjack": 8, "t_tree_apple": 2, "t_tree_apricot": 2, "t_tree_cherry": 2, "t_tree_juniper": 2, "t_tree_pear": 2, "t_tree_plum": 2, - "t_tree_deadpine": 32, - "t_tree_dead": 32 + "t_tree_elderberry": 2, + "t_tree_mulberry": 2, + "t_region_tree_dead": 48 }, "t_region_tree_shade": { "t_tree": 64, @@ -70,12 +120,15 @@ "t_tree_birch": 16, "t_tree_elm": 16, "t_tree_cottonwood": 16, - "t_tree_alder": 32, + "t_tree_basswood": 16, + "t_tree_alder": 16, + "t_tree_maple": 32, "t_tree_willow": 32, - "t_tree_maple": 24, + "t_tree_hickory": 16, + "t_tree_chestnut": 8, + "t_tree_blackjack": 8, "t_tree_elderberry": 2, - "t_tree_hickory": 1, - "t_tree_chestnut": 1, + "t_tree_mulberry": 2, "t_tree_dead": 2 }, "t_region_tree_fruit": { @@ -83,35 +136,104 @@ "t_tree_apple": 2, "t_tree_apricot": 2, "t_tree_cherry": 2, - "t_tree_peach": 1, "t_tree_pear": 2, "t_tree_plum": 2, - "t_tree_elderberry": 1, + "t_tree_elderberry": 2, + "t_tree_mulberry": 2, + "t_tree_dead": 4 + }, + "t_region_tree_dead": { "t_tree_hickory_dead": 8, "t_tree_dead": 7, "t_tree_deadpine": 3 }, + "t_region_tree_nut": { + "t_tree_hickory": 16, + "t_tree_hickory_dead": 16, + "t_tree_walnut": 8, + "t_tree_chestnut": 8, + "t_tree_young": 4, + "t_tree_beech": 2, + "t_tree_hazelnut": 2, "t_tree_dead": 4 }, - "t_region_tree_nut": { "t_tree_young": 4, "t_tree_beech": 16, "t_tree_walnut": 3, "t_tree_dead": 4 }, - "t_region_tree_evergreen": { "t_tree_pine": 64, "t_tree_juniper": 16, "t_tree_deadpine": 2 } + "t_region_tree_evergreen": { "t_tree_pine": 32, "t_tree_juniper": 16, "t_tree_deadpine": 2 } }, "furniture": { "f_region_flower": { + "f_black_eyed_susan": 100, "f_lily": 100, "f_flower_tulip": 100, "f_flower_spurge": 100, - "f_burdock": 100, "f_chamomile": 100, - "f_dandelion": 500, - "f_chicory": 100 + "f_dandelion": 100, + "f_dahlia": 100, + "f_bluebell": 100, + "f_sunflower": 100 }, "f_region_flower_decorative": { "f_lily": 4, "f_flower_tulip": 4, "f_black_eyed_susan": 3, "f_bluebell": 2, + "f_maianthemum_stellatum": 2, "f_flower_spurge": 1, + "f_dahlia": 1, + "f_salsify": 1, "f_chicory": 1, "f_sunflower": 1 }, - "f_region_weed": { "f_dandelion": 600, "f_chamomile": 400, "f_burdock": 100, "f_lily": 100, "f_flower_tulip": 100, "f_mustard": 100 }, + "f_region_weed": { + "f_chamomile": 400, + "f_carrot_wild": 300, + "f_salsify": 300, + "f_datura": 300, + "f_japanese_knotweed": 300, + "f_bluebell": 200, + "f_burdock": 100, + "f_dahlia": 100, + "f_lily": 100, + "f_sunflower": 100, + "f_mustard": 100 + }, + "f_region_plain": { + "f_dandelion": 600, + "f_flower_spurge": 400, + "f_chamomile": 400, + "f_carrot_wild": 300, + "f_salsify": 300, + "f_datura": 300, + "f_japanese_knotweed": 200, + "f_dahlia": 200, + "f_maianthemum_stellatum": 200, + "f_mutpoppy": 200, + "f_black_eyed_susan": 100, + "f_flower_tulip": 100, + "f_mustard": 100, + "f_sunflower": 100, + "f_jerusalem_artichoke": 100, + "f_lily": 100, + "f_chicory": 100 + }, + "f_region_forest": { + "f_burdock": 2000, + "f_bluebell": 600, + "f_wild_sarsaparilla": 600, + "f_lily": 500, + "f_chamomile": 500, + "f_japanese_knotweed": 300, + "f_carrot_wild": 300, + "f_salsify": 300, + "f_dahlia": 200, + "f_mutpoppy": 100, + "f_maianthemum_stellatum": 100, + "f_wintergreen": 100 + }, + "f_region_forest_dense": { + "f_burdock": 2000, + "f_bluebell": 800, + "f_lily": 500, + "f_wild_sarsaparilla": 400, + "f_salsify": 300, + "f_wintergreen": 200 + }, + "f_region_forest_water": { "f_burdock": 4, "f_japanese_knotweed": 2, "f_lily": 1 }, "f_region_water_plant": { "f_cattails": 15, "f_lilypad": 1, "f_lotus": 5 } } }, @@ -122,8 +244,7 @@ "other": { "t_region_tree": 1, "t_region_shrub": 3, - "f_region_weed": 49, - "f_region_flower": 37, + "f_region_plain": 49, "f_boulder_small": 5, "f_boulder_medium": 4, "f_boulder_large": 1 @@ -132,15 +253,21 @@ "boosted_percent_coverage": 2.5, "boosted_other": { "t_tree_young": 0.2, - "t_tree": 0.27, + "t_tree": 0.1, "t_tree_birch": 0.05, "t_tree_elm": 0.05, "t_tree_cottonwood": 0.05, - "t_tree_pine": 8, - "t_tree_alder": 0.2, - "t_tree_maple": 0.12, + "t_tree_basswood": 0.07, + "t_tree_alder": 2, + "t_tree_pine": 0.1, + "t_tree_maple": 0.1, "t_tree_willow": 0.1, + "t_tree_hickory": 0.1, + "t_tree_walnut": 0.05, + "t_tree_chestnut": 0.05, + "t_tree_hazelnut": 0.02, "t_tree_beech": 0.02, + "t_tree_blackjack": 0.05, "t_tree_apple": 0.02, "t_tree_apricot": 0.02, "t_tree_cherry": 0.02, @@ -148,20 +275,28 @@ "t_tree_pear": 0.02, "t_tree_plum": 0.02, "t_tree_elderberry": 0.02, - "t_tree_deadpine": 2.14, - "t_tree_dead": 3.05, - "t_shrub": 10, + "t_tree_mulberry": 0.02, + "t_region_tree_dead": 0.15, "t_shrub_blueberry": 8.0, - "t_shrub_strawberry": 6.5, + "t_shrub_strawberry": 5.0, "t_shrub_blackberry": 5.0, - "t_shrub_raspberry": 5.0, - "t_shrub_huckleberry": 3.0, - "t_shrub_rose": 13.7, + "t_shrub_raspberry": 8.0, + "t_shrub_huckleberry": 5.0, + "t_shrub_grape": 5.0, + "t_shrub_rose": 3, + "t_shrub_hydrangea": 3, + "t_shrub_lilac": 3, + "f_black_eyed_susan": 3, "f_lily": 3, "f_flower_tulip": 3, "f_flower_spurge": 3.5, "f_chicory": 3, - "f_dandelion": 11.0, + "f_mutpoppy": 3.5, + "f_bluebell": 3.5, + "f_dahlia": 3.5, + "f_datura": 0.2, + "f_dandelion": 5.0, + "f_sunflower": 3.5, "f_mustard": 0.2 }, "boosted_other_percent": 50.0 @@ -189,6 +324,7 @@ }, "forest_mapgen_settings": { "forest": { + "terrains": [ "forest", "special_forest" ], "sparseness_adjacency_factor": 3, "item_group": "forest", "item_group_chance": 60, @@ -197,8 +333,8 @@ "groundcover": { "t_region_groundcover_forest": 1 }, "clear_components": false, "components": { - "trees": { "sequence": 0, "chance": 12, "clear_types": false, "types": { "t_region_tree": 128 } }, - "shrubs_and_flowers": { "sequence": 1, "chance": 10, "clear_types": false, "types": { "t_region_shrub": 100, "f_region_weed": 20 } }, + "trees": { "sequence": 0, "chance": 12, "clear_types": false, "types": { "t_region_tree_forest": 128, "t_tree_young": 32 } }, + "shrubs_and_flowers": { "sequence": 1, "chance": 10, "clear_types": false, "types": { "t_region_shrub": 120, "f_region_forest": 10 } }, "clutter": { "sequence": 2, "chance": 80, @@ -214,12 +350,103 @@ "t_pit_shallow": 1 } }, - "water": { "sequence": 3, "chance": 512, "clear_types": false, "types": { "t_water_sh": 1 } } + "water": { "sequence": 3, "chance": 512, "clear_types": false, "types": { "t_puddle": 1 } } }, "clear_terrain_furniture": false, "terrain_furniture": { } }, "forest_thick": { + "terrains": [ + "forest_thick", + "forest_trail_isolated", + "forest_trail_end_north", + "forest_trail_end_east", + "forest_trail_end_south", + "forest_trail_end_west", + "forest_trail_ns", + "forest_trail_ew", + "forest_trail_ne", + "forest_trail_es", + "forest_trail_sw", + "forest_trail_wn", + "forest_trail_new", + "forest_trail_nsw", + "forest_trail_esw", + "forest_trail_nes", + "forest_trail_nesw", + "campsite_north", + "campsite_south", + "campsite_east", + "campsite_west", + "campsite_cabin_incomplete_north", + "campsite_cabin_incomplete_south", + "campsite_cabin_incomplete_east", + "campsite_cabin_incomplete_west", + "campsite_field_biker_north", + "campsite_field_biker_south", + "campsite_field_biker_east", + "campsite_field_biker_west", + "campsite_field_biker_destroyed_north", + "campsite_field_biker_destroyed_south", + "campsite_field_biker_destroyed_east", + "campsite_field_biker_destroyed_west", + "campsite_a_north", + "campsite_a_south", + "campsite_a_east", + "campsite_a_west", + "desolatebarn_north", + "desolatebarn_south", + "desolatebarn_east", + "desolatebarn_west", + "derelict_property_north", + "derelict_property_south", + "derelict_property_east", + "derelict_property_west", + "homelesscamp_north", + "homelesscamp_south", + "homelesscamp_east", + "homelesscamp_west", + "spider_pit_north", + "spider_pit_south", + "spider_pit_east", + "spider_pit_west", + "central_lab_entrance", + "moonshine_still_north", + "moonshine_still_south", + "moonshine_still_east", + "moonshine_still_west", + "moonshine_still_1_north", + "moonshine_still_1_south", + "moonshine_still_1_east", + "moonshine_still_1_west", + "moonshine_still_2_north", + "moonshine_still_2_south", + "moonshine_still_2_east", + "moonshine_still_2_west", + "standing_stones", + "ws_survivor_bunker_f0_north", + "ws_survivor_bunker_f0_south", + "ws_survivor_bunker_f0_east", + "ws_survivor_bunker_f0_west", + "bandit_cabin_north", + "bandit_cabin_south", + "bandit_cabin_east", + "bandit_cabin_west", + "bandit_garage_1_north", + "bandit_garage_1_south", + "bandit_garage_1_east", + "bandit_garage_1_west", + "bandit_garage_2_north", + "bandit_garage_2_south", + "bandit_garage_2_east", + "bandit_garage_2_west", + "natural_spring_north", + "natural_spring_south", + "natural_spring_east", + "natural_spring_west", + "cave", + "special_forest_thick" + ], "sparseness_adjacency_factor": 4, "item_group": "forest", "item_group_chance": 60, @@ -228,8 +455,8 @@ "groundcover": { "t_region_groundcover_forest": 1 }, "clear_components": false, "components": { - "trees": { "sequence": 0, "chance": 5, "clear_types": false, "types": { "t_region_tree": 100 } }, - "shrubs_and_flowers": { "sequence": 1, "chance": 5, "clear_types": false, "types": { "t_region_shrub": 100, "f_region_weed": 20 } }, + "trees": { "sequence": 0, "chance": 5, "clear_types": false, "types": { "t_region_tree_forest_dense": 100, "t_tree_young": 5 } }, + "shrubs_and_flowers": { "sequence": 1, "chance": 5, "clear_types": false, "types": { "t_region_shrub": 130, "f_region_forest_dense": 10 } }, "clutter": { "sequence": 2, "chance": 64, @@ -245,12 +472,31 @@ "t_pit_shallow": 1 } }, - "water": { "sequence": 3, "chance": 512, "clear_types": false, "types": { "t_water_sh": 1 } } + "water": { "sequence": 3, "chance": 512, "clear_types": false, "types": { "t_puddle": 1 } } }, "clear_terrain_furniture": false, "terrain_furniture": { } }, "forest_water": { + "terrains": [ + "forest_water", + "hunter_shack_north", + "hunter_shack_south", + "hunter_shack_east", + "hunter_shack_west", + "hunter_shack_1_north", + "hunter_shack_1_south", + "hunter_shack_1_east", + "hunter_shack_1_west", + "shipwreck_river_1_north", + "shipwreck_river_1_south", + "shipwreck_river_1_east", + "shipwreck_river_1_west", + "shipwreck_river_2_north", + "shipwreck_river_2_south", + "shipwreck_river_2_east", + "shipwreck_river_2_west" + ], "sparseness_adjacency_factor": 2, "item_group": "forest", "item_group_chance": 60, @@ -281,31 +527,33 @@ "t_tree_apple": 2, "t_tree_cherry": 2, "t_tree_juniper": 2, - "t_tree_peach": 2, "t_tree_pear": 2, "t_tree_plum": 2, "t_tree_elderberry": 2, "t_tree_mulberry": 2, - "t_tree_deadpine": 30, - "t_tree_hickory_dead": 30, - "t_tree_dead": 30 + "t_region_tree_dead": 90 } }, - "shrubs_and_flowers": { "sequence": 1, "chance": 15, "clear_types": false, "types": { "t_region_shrub": 80, "f_region_weed": 30 } }, + "shrubs_and_flowers": { "sequence": 1, "chance": 15, "clear_types": false, "types": { "t_region_shrub": 80, "f_region_forest_water": 30 } }, "clutter": { "sequence": 2, "chance": 75, "clear_types": false, "types": { "t_trunk": 1, "f_boulder_small": 2, "f_boulder_medium": 1 } }, - "water": { "sequence": 3, "chance": 2, "clear_types": false, "types": { "t_swater_sh": 12, "t_swater_dp": 1, "t_water_sh": 6 } } + "water": { + "sequence": 3, + "chance": 2, + "clear_types": false, + "types": { "t_swater_sh": 6, "t_swater_dp": 1, "t_water_murky": 12 } + } }, "clear_terrain_furniture": false, - "terrain_furniture": { "t_water_sh": { "chance": 2, "clear_furniture": false, "furniture": { "f_region_water_plant": 1 } } } + "terrain_furniture": { "t_water_murky": { "chance": 2, "clear_furniture": false, "furniture": { "f_region_water_plant": 1 } } } } }, "forest_trail_settings": { - "chance": 1, + "chance": 2, "border_point_chance": 2, "minimum_forest_size": 100, "random_point_min": 4, @@ -322,105 +570,135 @@ }, "map_extras": { "forest": { - "chance": 20, + "chance": 40, "extras": { - "mx_helicopter": 1, - "mx_military": 1, - "mx_science": 20, - "mx_collegekids": 25, - "mx_crater": 10, - "mx_grass": 90, - "mx_grass2": 150, - "mx_fallen_shed": 30, - "mx_grove": 800, - "mx_shrubbery": 800, - "mx_clearcut": 225, - "mx_pond": 225, - "mx_clay_deposit": 125, + "mx_blackberry_patch": 1000, "mx_point_dead_vegetation": 500, "mx_point_burned_ground": 500, + "mx_grove": 500, + "mx_shrubbery": 500, + "mx_spider": 200, + "mx_clearcut": 125, + "mx_pond": 125, + "mx_pond_forest": 125, + "mx_pond_forest_2": 125, + "mx_clay_deposit": 125, + "mx_knotweed_patch": 120, + "mx_grass2": 40, "mx_casings": 2, + "mx_fallen_shed": 30, "mx_corpses": 30, - "mx_mass_grave": 5 + "mx_collegekids": 25, + "mx_grass": 20, + "mx_science": 20, + "mx_toxic_waste": 10, + "mx_crater": 10, + "mx_supplydrop": 8, + "mx_military": 1, + "mx_drugdeal": 8, + "mx_mass_grave": 5, + "mx_helicopter": 1 } }, "forest_thick": { - "chance": 20, + "chance": 30, "extras": { - "mx_helicopter": 1, - "mx_military": 1, - "mx_science": 1, - "mx_collegekids": 25, - "mx_crater": 10, - "mx_grass": 30, - "mx_grass2": 90, - "mx_fallen_shed": 30, - "mx_grove": 800, - "mx_shrubbery": 800, - "mx_clearcut": 325, - "mx_pond": 125, - "mx_clay_deposit": 125, + "mx_blackberry_patch": 1300, + "mx_grove": 500, + "mx_shrubbery": 500, "mx_point_dead_vegetation": 500, "mx_point_burned_ground": 500, - "mx_casings": 5, + "mx_spider": 200, + "mx_clearcut": 125, + "mx_pond": 125, + "mx_pond_forest": 125, + "mx_pond_forest_2": 125, + "mx_clay_deposit": 125, + "mx_knotweed_patch": 100, + "mx_casings": 2, "mx_corpses": 30, - "mx_mass_grave": 5 + "mx_science": 20, + "mx_collegekids": 25, + "mx_drugdeal": 20, + "mx_grass2": 20, + "mx_fallen_shed": 20, + "mx_toxic_waste": 15, + "mx_crater": 10, + "mx_grass": 10, + "mx_military": 1, + "mx_mass_grave": 5, + "mx_supplydrop": 5, + "mx_helicopter": 1 } }, "forest_water": { "chance": 20, "extras": { - "mx_helicopter": 1, - "mx_military": 1, - "mx_science": 1, - "mx_crater": 20, - "mx_fallen_shed": 50, - "mx_grass": 90, - "mx_grass2": 220, - "mx_pond": 440, - "mx_clay_deposit": 240, + "mx_pond": 240, + "mx_pond_swamp": 240, + "mx_pond_swamp_2": 240, + "mx_spider": 200, + "mx_clay_deposit": 140, + "mx_knotweed_patch": 140, "mx_point_dead_vegetation": 60, - "mx_casings": 1, - "mx_corpses": 80 + "mx_science": 50, + "mx_military": 5, + "mx_supplydrop": 25, + "mx_crater": 20, + "mx_drugdeal": 20, + "mx_fallen_shed": 10, + "mx_casings": 2, + "mx_corpses": 80, + "mx_grass2": 20, + "mx_grass": 10, + "mx_toxic_waste": 10, + "mx_helicopter": 5 } }, "field": { "chance": 6, "extras": { - "mx_helicopter": 2, - "mx_military": 4, - "mx_science": 10, - "mx_collegekids": 30, - "mx_crater": 150, - "mx_point_dead_vegetation": 500, - "mx_grass": 6500, - "mx_grass2": 6500, - "mx_trees": 2500, - "mx_trees2": 2800, - "mx_fallen_shed": 300, - "mx_pond": 400, + "mx_grass": 3500, + "mx_grass2": 3500, + "mx_trees2": 800, "mx_point_burned_ground": 500, + "mx_point_dead_vegetation": 500, + "mx_trees": 500, + "mx_knotweed_patch": 250, + "mx_fallen_shed": 200, + "mx_pond": 200, "mx_casings": 10, - "mx_corpses": 30, + "mx_crater": 150, "mx_mass_grave": 50, - "mx_grave": 50 + "mx_grave": 50, + "mx_supplydrop": 40, + "mx_collegekids": 30, + "mx_drugdeal": 30, + "mx_corpses": 30, + "mx_toxic_waste": 10, + "mx_science": 10, + "mx_military": 1 } }, "road": { "chance": 75, "extras": { - "mx_helicopter": 2, - "mx_military": 4, - "mx_science": 10, - "mx_collegekids": 20, - "mx_roadblock": 2000, + "mx_helicopter": 10, + "mx_military": 20, + "mx_science": 400, + "mx_collegekids": 500, + "mx_roadblock": 40, + "mx_roadblock_mil": 10, "mx_bandits_block": 800, + "mx_drugdeal": 300, + "mx_supplydrop": 100, "mx_crater": 100, - "mx_roadworks": 3000, + "mx_roadworks": 1000, "mx_mayhem": 500, - "mx_casings": 20, - "mx_corpses": 600, - "mx_prison_bus": 150 + "mx_casings": 10, + "mx_corpses": 300, + "mx_prison_bus": 150, + "mx_prison_van": 10 } }, "bridgehead_ground": { "chance": 5, "extras": { "mx_minefield": 100 } }, @@ -428,21 +706,25 @@ "build": { "chance": 90, "extras": { - "mx_helicopter": 1, + "mx_bugout": 20, + "mx_house_spider": 40, + "mx_military": 1, + "mx_science": 12, "mx_collegekids": 15, "mx_crater": 60, "mx_point_burned_ground": 5, - "mx_casings": 1, + "mx_casings": 2, "mx_looters": 10, - "mx_corpses": 80 + "mx_corpses": 30 } }, - "subway": { "chance": 75, "extras": { "mx_military": 1, "mx_science": 12, "mx_collegekids": 15, "mx_casings": 30 } }, + "subway": { "chance": 75, "extras": { "mx_military": 1, "mx_science": 12, "mx_drugdeal": 5, "mx_casings": 1 } }, + "lab_subway": { "chance": 25, "extras": { "mx_military": 1, "mx_science": 15 } }, "research_facility_lot": { "chance": 3, "extras": { "mx_helicopter": 15, - "mx_military": 65, + "mx_military": 20, "mx_collegekids": 1, "mx_crater": 180, "mx_point_burned_ground": 100, @@ -452,32 +734,7 @@ "research_facility_interior": { "chance": 2, "extras": { "mx_military": 5, "mx_crater": 300, "mx_point_burned_ground": 125, "mx_casings": 30 } }, "river": { "chance": 3, "extras": { "mx_reed": 100 } }, "lake_shore": { "chance": 2, "extras": { "mx_reed": 100 } }, - "sewer": { - "chance": 1, - "extras": { - "mx_sewer_round": 40, - "mx_sewer_grid": 20, - "mx_sewer_grid2": 20, - "mx_sewer_mntE": 10, - "mx_sewer_mntW": 10, - "mx_sewer_mntN": 10, - "mx_sewer_mntS": 10, - "mx_sewer_grateE": 10, - "mx_sewer_grateW": 10, - "mx_sewer_grateN": 10, - "mx_sewer_grateS": 10, - "mx_sewer_pipesA": 30, - "mx_sewer_pipesB": 30, - "mx_sewer_pipesC": 30, - "mx_sewer_pipesD": 30, - "mx_sewer_pipesE": 30, - "mx_sewer_pipesF": 30, - "mx_sewer_pipesG": 30, - "mx_sewer_pipesH": 30, - "mx_sewer_pipesI": 30, - "mx_sewer_pipesJ": 30 - } - } + "sewer": { "chance": 80, "extras": { "mx_null": 100 } } }, "city": { "shop_radius": 30, @@ -486,8 +743,13 @@ "park_sigma": 80, "houses": { "2storyModern01": 5, + "2storyModern02": 50, + "2StoryModern03": 50, + "2StoryModern04": 50, "house_w_1": 50, "house_two_story_basement": 50, + "multi_unit_two_story_basement": 40, + "multi_unit_three_story_basement": 30, "house_crack1": 5, "house_crack2": 5, "house_crack3": 5, @@ -565,6 +827,7 @@ "house_garage8": 50, "rural_house1": 50, "rural_house2": 50, + "garden_house_1": 50, "house_toolshed": 50, "house_suicide": 20, "house_quiverfull": 30, @@ -588,6 +851,7 @@ "house_inner_garden": 50, "urban_1_house": 50, "urban_2_house": 50, + "urban_dd_house": 1, "urban_3_house": 50, "urban_4_house_basement": 50, "urban_5_house": 50, @@ -603,20 +867,26 @@ "urban_17_house_ranch": 50, "urban_18_victorian": 50, "emptyresidentiallot": 20, - "house_vacant": 20, - "house_vacant2": 20, + "house_vacant": 7, + "house_vacant1": 7, + "house_vacant2": 7, + "house_vacant3": 7, "apartments_con_new": 10, "apartments_mod_new": 10, "s_apt": 30, "s_apt_2": 30, "school": 15, "motel_city": 10, - "fishing_pond_city": 10, - "trailerpark_city": 15, - "railroad_city": 5 + "fishing_pond_city": 10 }, "parks": { - "park": 400, + "park": 50, + "park_2": 50, + "park_3": 50, + "park_4": 50, + "park_5": 50, + "park_6": 50, + "park_7": 50, "pool": 20, "pool_1": 20, "pool_2": 20, @@ -624,21 +894,34 @@ "pool_4": 20, "pool_5": 20, "pool_6": 20, - "skate_park": 100, - "park_maze": 50, - "small_wooded_trail": 300, + "playground": 40, + "playground_1": 40, + "dog_park": 20, + "volleyball_court": 30, + "tennis_court": 30, + "baskeball_court": 30, + "skate_park_ramp": 20, + "skate_park": 20, + "park_maze": 10, + "park_maze_2": 10, + "small_wooded_trail": 30, + "small_wooded_trail_2": 30, "pavilion": 100, "pavilion_1": 100, "cemetery_small": 200, "Pond": 200, - "communitygarden": 200, - "publicgarden": 200, + "communitygarden": 75, + "communitygarden_2": 75, + "communitygarden_3": 75, + "publicgarden": 100, + "publicgarden_2": 100, "cathedral": 50, "football_field": 25, "baseball_field": 50, "botanical_garden": 100, "zoo": 25, "stadium": 25, + "stadium_football": 25, "cemetery_city": 50, "public_pond_city": 50, "cemetery_religious_city": 25, @@ -651,6 +934,8 @@ "shops": { "bus_station": 200, "city_block_2": 300, + "textile_mill_museum": 50, + "abandoned_textile_mill": 20, "s_apt": 50, "s_apt_2": 50, "urban_13_dense_house_apt_house": 300, @@ -661,10 +946,12 @@ "craft_shop": 200, "craft_shop_1": 200, "craft_shop_2": 200, + "craft_shop_3": 200, "s_gas": 500, "s_gas_1": 500, "s_pharm": 300, "s_pharm_1": 300, + "s_cosmetic": 300, "s_grocery": 1500, "s_grocery_1": 1500, "s_hardware": 400, @@ -679,6 +966,16 @@ "gym_fitness": 200, "gym_fitness_1": 200, "s_liquor": 500, + "s_gun": 50, + "s_gun_looted": 50, + "s_gun_1": 50, + "s_gun_2": 50, + "s_gun_3": 50, + "s_gun_3_looted": 50, + "s_gun_4": 50, + "s_gun_4_looted": 50, + "s_gunstore": 50, + "s_gunstore_looted": 50, "s_clothes": 450, "s_clothes_1": 200, "s_clothes_2": 200, @@ -742,6 +1039,7 @@ "police": 100, "police_1": 100, "police_2": 100, + "police_dept": 1250, "fire_station": 200, "fire_station_1": 200, "home_improvement": 200, @@ -751,6 +1049,7 @@ "s_jewelry_shop": 200, "s_antique": 200, "s_gardening": 200, + "s_dive_shop": 300, "museum": 100, "s_music": 200, "s_laundromat": 100, @@ -772,7 +1071,7 @@ "art_gallery": 200, "small_storage_units": 150, "small_storage_units_1": 150, - "construction_site": 400, + "construction_site": 600, "post_office": 200, "post_office_1": 200, "candy_shop": 200, @@ -823,7 +1122,8 @@ "public_works": 200, "office_tower": 150, "office_tower_2": 150, - "office_tower_large": 500, + "office_skyscraper": 300, + "office_tower_large": 300, "office_tower_hiddenlab": 50, "mall": 100, "home_improvement_superstore_new": 150, @@ -845,7 +1145,9 @@ "cs_sex_shop": 100, "cs_tire_shop": 100, "homeless_shelter": 100, - "parking_garage": 200 + "parking_garage": 200, + "salon": 500, + "strip_mall": 750 } }, "weather": { @@ -855,19 +1157,7 @@ "base_wind": 4.4, "base_wind_distrib_peaks": 80, "base_wind_season_variation": 50, - "weather_types": [ - "clear", - "sunny", - "cloudy", - "light_drizzle", - "drizzle", - "rain", - "thunder", - "lightning", - "flurries", - "snowing", - "snowstorm" - ] + "weather_black_list": [ "early_portal_storm", "portal_storm" ] }, "overmap_feature_flag_settings": { "clear_blacklist": false, "blacklist": [ ], "clear_whitelist": false, "whitelist": [ ] } } diff --git a/data/Mainline_mods/Mods/Classic_zombies/design-doc.md b/data/Mainline_mods/Mods/Classic_zombies/design-doc.md index 95f13e7f0..d240a94e9 100644 --- a/data/Mainline_mods/Mods/Classic_zombies/design-doc.md +++ b/data/Mainline_mods/Mods/Classic_zombies/design-doc.md @@ -1,43 +1,19 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [The DDotDDD - Dark Days of the Dead Design Document](#the-ddotddd---dark-days-of-the-dead-design-document) - - [Mission Statement](#mission-statement) - - [Gameplay](#gameplay) - - [Desired changes to monster stats](#desired-changes-to-monster-stats) - - [Setting](#setting) - - [Changes to in-game stuff for setting reasons](#changes-to-in-game-stuff-for-setting-reasons) - - [Items and spawns](#items-and-spawns) - - [Professions and Scenarios](#professions-and-scenarios) - - [Movie-inspired starts](#movie-inspired-starts) - - [Story starts](#story-starts) - - [Zombification Mechanics](#zombification-mechanics) - - [History](#history) - - [Factions](#factions) - - [The Montana Army National Guard](#the-montana-army-national-guard) - - [The Central Alberta Historical Re-Enactors Army](#the-central-alberta-historical-re-enactors-army) - - [The Wild Rose Survivors](#the-wild-rose-survivors) - - - # The DDotDDD - Dark Days of the Dead Design Document ## Mission Statement -Dark days of the dead is a cataclysm full conversion mod meant to turn the kitchen sink of cataclysm dda into a classic Romero-style zombie story. +Dark days of the dead is a Cataclysm full conversion mod meant to turn the kitchen sink of Cataclysm: DDA into a classic Romero-style zombie story. ## Gameplay DDotD, like CDDA, aims for verisimilitude and the feeling of being a survivor in a Romero zombie movie. Like Dawn of the Dead, zombies should represent less of an individual deadly threat, and more of an unstoppable glacial force. Survivors should be poorly prepared and weak. ### Desired changes to monster stats -Only classic zombies are allowed in ddotd. These zombies are slow moving shamblers. They have an enormous pool of hit points, but no armor. They are walking corpses, feeling no pain and continuing on in the face of incredible injuries. They can be destroyed with catastrophic damage, by completely destroying their bodies (represented by depleting their very large HP pool) or by a headshot. A deep bite from a zombie should have a very high (about 80%) chance of developing Conversion, an effect that kills you in about 3 days. (We should add an achievement for things accomplished in the time after getting Conversion). Scratches that pierce armor should have a low (about 10%) chance of causing Conversion, and gives an alternate form that takes longer, about 5 days, to kill you. +Only classic zombies are allowed in DDotD. These zombies are slow moving shamblers. They have an enormous pool of hit points, but no armor. They are walking corpses, feeling no pain and continuing on in the face of incredible injuries. They can be destroyed with catastrophic damage, by completely destroying their bodies (represented by depleting their very large HP pool) or by a headshot. A deep bite from a zombie should have a very high (about 80%) chance of developing Conversion, an effect that kills you in about 3 days. (We should add an achievement for things accomplished in the time after getting Conversion). Scratches that pierce armor should have a low (about 10%) chance of causing Conversion, and gives an alternate form that takes longer, about 5 days, to kill you. -Re-dead zombies do not revive. Some, but not all, human corpses should revive as zombies though. These zombies do not evolve. However it should be possible to destroy body parts and get things like crawling zombies as a result. +Killed zombies do not revive. Some, but not all, human corpses should revive as zombies though. These zombies do not evolve. However it should be possible to destroy body parts and get things like crawling zombies as a result. DDotD zombies *are* capable of learning. At some point we may add our own late stage evolution to introduce zombies that can open doors or use simple tools. -There are no aliens or interdimensional threats in ddotd. - +There are no aliens or interdimensional threats in DDotD. ## Setting The setting of DDotD should be vaguely "in the past", some time between 1980 and 2000. DDotD takes place in Alberta, Canada, in a fictionalized version of the Red Deer area. Why Alberta? Because the current CDDA mapgen of small clustered towns surrounded by fields and patches of forests on mostly flat land suits Alberta perfectly. This also allows us to have harsher winters to survive. Most buildings and loot in CDDA core will be appropriate, but guns and gun stores (with the exception of hunting rifles) are somewhat less common, and military presence substantially less so. diff --git a/data/Mainline_mods/Mods/Classic_zombies/exclusions.json b/data/Mainline_mods/Mods/Classic_zombies/exclusions.json index 281418337..bb0b4570d 100644 --- a/data/Mainline_mods/Mods/Classic_zombies/exclusions.json +++ b/data/Mainline_mods/Mods/Classic_zombies/exclusions.json @@ -40,12 +40,16 @@ "type": "region_overlay", "regions": [ "all" ], "map_extras": { - "forest": { "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_spider": 0 } }, - "forest_thick": { "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_shia": 0, "mx_spider": 0, "mx_jabberwock": 0 } }, - "forest_water": { "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_spider": 0 } }, - "field": { "extras": { "mx_portal": 0, "mx_portal_in": 0 } }, - "road": { "extras": { "mx_portal": 0, "mx_portal_in": 0 } }, - "build": { "extras": { "mx_house_spider": 0, "mx_house_wasp": 0, "mx_portal": 0, "mx_portal_in": 0 } }, + "forest": { "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_spider": 0, "mx_exocrash_1": 0, "mx_exocrash_2": 0 } }, + "forest_thick": { + "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_spider": 0, "mx_jabberwock": 0, "mx_exocrash_1": 0, "mx_exocrash_2": 0 } + }, + "forest_water": { "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_spider": 0, "mx_exocrash_1": 0, "mx_exocrash_2": 0 } }, + "field": { "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_exocrash_1": 0, "mx_exocrash_2": 0 } }, + "road": { "extras": { "mx_portal": 0, "mx_portal_in": 0, "mx_exocrash_1": 0, "mx_exocrash_2": 0 } }, + "build": { + "extras": { "mx_house_spider": 0, "mx_house_wasp": 0, "mx_portal": 0, "mx_portal_in": 0, "mx_exocrash_1": 0, "mx_exocrash_2": 0 } + }, "marloss": { "chance": 0, "extras": { "mx_marloss_pilgrimage": 0 } }, "subway": { "extras": { "mx_portal": 0, "mx_portal_in": 0 } } } diff --git a/data/Mainline_mods/Mods/Classic_zombies/items/blacklists.json b/data/Mainline_mods/Mods/Classic_zombies/items/blacklists.json index e08689b8a..edd73b31e 100644 --- a/data/Mainline_mods/Mods/Classic_zombies/items/blacklists.json +++ b/data/Mainline_mods/Mods/Classic_zombies/items/blacklists.json @@ -20,11 +20,6 @@ "20x66_inc", "20x66_shot", "20x66_slug", - "5x50_100_mag", - "5x50_50_mag", - "5x50_hull", - "5x50dart", - "5x50heavy", "8mm_bootleg", "8mm_caseless", "8mm_civilian", @@ -37,19 +32,88 @@ "8x40_250_mag", "8x40_50_mag", "8x40_500_mag", - "90two", + "m9", "90two40", "90two40mag", "acr_300blk", "af2011a1_38super", "af2011a1mag", "alien_pod_resin", - "ar15_retool_300blk", "arm", "arx160", "as50", "as50mag", "atomic_coffee", + "ar15_223long", + "ar15_223medium", + "ar15_223short", + "ar15_300", + "ar15_300medium", + "ar15_300short", + "ar15_50", + "ar15_50medium", + "ar15_50short", + "ar15_450", + "ar15_450medium", + "ar15_450short", + "ar15_762", + "bren2_762", + "bren2_556", + "mdrx", + "mdrx_223", + "mdrx_223short", + "mdrx_300", + "mdrx_308", + "mdrx_308medium", + "ruger_arr", + "ruger_pr", + "cz600", + "cz600_762", + "axmc", + "axmc_300", + "axmc_308", + "savage112", + "mrad_smr", + "tac338", + "50beowulf_xtp", + "450_ftx", + "338lapua_hpbt", + "reloaded_50beowulf_xtp", + "reloaded_450_ftx", + "reloaded_338lapua_hpbt", + "bp_50beowulf_xtp", + "bp_450_ftx", + "bp_338lapua_hpbt", + "50beowulf_penetrator", + "450_penetrator", + "338lapua_fmjbt", + "338lapua_api", + "reloaded_50beowulf_penetrator", + "reloaded_450_penetrator", + "reloaded_338lapua_fmjbt", + "reloaded_338lapua_api", + "bp_50beowulf_penetrator", + "bp_450_penetrator", + "bp_338lapua_fmjbt", + "bp_338lapua_api", + "stanag20_beowulf", + "stanag20ranger_beowulf", + "stanag30_beowulf", + "stanag30ranger_beowulf", + "50beowulf_ar15mag", + "450_ar15mag", + "762_ar15mag_5rd", + "762_ar15mag_10rd", + "762_ar15mag_20rd", + "762_ar15mag_30rd", + "ruger_arr_mag", + "bren2_762mag30", + "bren2_762mag10", + "ai_338mag", + "ai_338mag_10", + "ai_308mag_10", + "mrad_338lapua_mag", + "ruger_pr_mag", "atomic_coffeepot", "atomic_lamp", "atomic_light", @@ -110,13 +174,10 @@ "bio_night_vision", "bio_ods", "bio_painkiller", - "bio_power_armor_interface", - "bio_power_armor_interface_mkII", "bio_power_storage", "bio_probability_travel", "bio_purifier", "bio_radscrubber", - "bio_railgun", "bio_razors", "bio_recycler", "bio_remote", @@ -216,7 +277,7 @@ "m2010", "m2010mag", "m249_semi", - "m27_assault_rifle", + "modular_m27_assault_rifle", "m320", "marloss_berry", "marloss_gel", @@ -246,8 +307,6 @@ "mutagen_troglobite", "mutagen_ursine", "mycus_fruit", - "needlegun", - "needlepistol", "p220_10", "p220_10_mag", "p320_357sig", @@ -279,11 +338,9 @@ "raging_judge", "454_speedloader6", "razorclaw_roe", - "rebar_rail", "recipe_caseless", "recon_mech_laser", "recon_mech_laser_single", - "reloaded_5x50dart", "remington_870_breacher", "resin_chunk", "rm103a_pistol", @@ -330,7 +387,6 @@ "sp2022mag_10rd_9mm", "sp2022mag_12rd_9mm", "sp2022mag_15rd_9mm", - "steel_rail", "streetsweeper", "sw_500", "500_speedloader5", diff --git a/data/Mainline_mods/Mods/Classic_zombies/items/guns.json b/data/Mainline_mods/Mods/Classic_zombies/items/guns.json index 7d34d6701..d1137caf8 100644 --- a/data/Mainline_mods/Mods/Classic_zombies/items/guns.json +++ b/data/Mainline_mods/Mods/Classic_zombies/items/guns.json @@ -2,20 +2,20 @@ { "type": "GUN", "//": "The C7A1 is semi or full-auto with a 20 in. barrel, which it shares with the M16A3 it overrides.", - "id": "m16_auto_rifle", - "copy-from": "m16_auto_rifle", + "id": "modular_m16_auto_rifle", + "copy-from": "modular_m16_auto_rifle", "name": { "str": "C7 assault rifle" }, "description": "The C7A1 is the standard issue rifle for the Canadian military manufactured by Diemaco. It is a gas-operated, rotating bolt rifle known for its accuracy and controllable recoil.", "variant_type": "gun", "variants": [ { - "id": "m16a3", + "id": "modular_m16a3", "name": { "str": "C7" }, "description": "The standard issue rifle for the Canadian armed forces, featuring a 20 in. long barrel and full auto capabilities when fed from STANAG magazines.", "weight": 1 }, { - "id": "acr", + "id": "modular_acr", "name": { "str": "C7A1" }, "description": "This is the updated model of the C7 carbine, using a modified Weaver rail instead of a carrying handle/iron sight assembly to assist in mounting optics." } @@ -23,17 +23,17 @@ }, { "type": "GUN", - "id": "m4_carbine", - "copy-from": "m4_carbine", + "id": "modular_m4_carbine", + "copy-from": "modular_m4_carbine", "looks_like": "ar15", "name": { "str": "C8 carbine" }, "description": "A carbine variant of the C7A1, recently introduced by the Canadian armed forces. Though accurate, small, and lightweight, it is infamous for its unreliability when not properly maintained. It is chambered in 5.56x45mm and accepts STANAG magazines.", "variants": [ { - "id": "m4a1", + "id": "modular_m4a1", "name": { "str": "C8" }, "description": "The standard issue carbine for the Canadian armed forces, featuring a 14.5 in. long barrel and full auto capabilities when fed from STANAG magazines.", - "ascii_picture": "m4a1", + "ascii_picture": "modular_m4a1", "weight": 1 }, { diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_ammo_effects.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_ammo_effects.json new file mode 100644 index 000000000..8baddc0a7 --- /dev/null +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_ammo_effects.json @@ -0,0 +1,7 @@ +[ + { + "id": "EXPLOSIVE_HUGE", + "type": "ammo_effect", + "explosion": { "power": 1200 } + } +] diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_aperturepotato.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_aperturepotato.json index 23c9e8d42..fd15f5805 100644 --- a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_aperturepotato.json +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_aperturepotato.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "aperture_potato", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_COMPONENTS", diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_comestibles.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_comestibles.json index 6aa5636f5..3f280045e 100644 --- a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_comestibles.json +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_comestibles.json @@ -10,16 +10,15 @@ "quench": 25, "calories": 217, "description": "The hit cookie from Mycus Industries! Now comes in addicting flavors such as Marloss, Chanterelle, and The Encroaching, Unavoidable Death of Human Civilization.", - "price": 0, + "price": "1 cent", "material": [ "wheat", "fruit" ], - "charges": 4, - "stack_size": 20, "fun": 10, - "flags": [ "MYCUS_OK", "FUNGAL_VECTOR" ] + "flags": [ "MYCUS_OK", "FUNGAL_VECTOR" ], + "volume": "12 ml" }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "sporeos", "category": "CC_FOOD", "subcategory": "CSC_FOOD_SNACK", @@ -28,7 +27,8 @@ "autolearn": true, "time": "10 s", "qualities": [ { "id": "COOK", "level": 2 } ], - "components": [ [ [ "cookies", 4 ] ], [ [ "marloss_berry", 1 ], [ "marloss_seed", 1 ], [ "mycus_fruit", 1 ] ] ] + "components": [ [ [ "cookies", 4 ] ], [ [ "marloss_berry", 1 ], [ "marloss_seed", 1 ], [ "mycus_fruit", 1 ] ] ], + "charges": 4 }, { "id": "powerthirst1", diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_item_groups.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_item_groups.json index f50972870..bc4b9ee30 100644 --- a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_item_groups.json +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_item_groups.json @@ -50,5 +50,23 @@ "copy-from": "fridgesnacks", "subtype": "distribution", "extend": { "entries": [ { "group": "powerthirst_flavors", "prob": 10 } ] } + }, + { + "id": "virology_lab_fridge", + "type": "item_group", + "copy-from": "virology_lab_fridge", + "extend": { "items": [ [ "flu_shot_fun", 50 ] ] } + }, + { + "id": "drugs_misc", + "type": "item_group", + "copy-from": "drugs_misc", + "extend": { "items": [ [ "flu_shot_fun", 50 ] ] } + }, + { + "id": "harddrugs", + "type": "item_group", + "copy-from": "harddrugs", + "extend": { "items": [ [ "flu_shot_fun", 50 ] ] } } ] diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_items.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_items.json index 0e33d8f34..088cd4d4e 100644 --- a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_items.json +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_items.json @@ -9,11 +9,17 @@ "volume": "250 ml", "price": 40000, "to_hit": -1, - "bashing": 6, "material": [ "steel", "plastic" ], "symbol": "*", "color": "green", - "use_action": [ "GRANADE" ] + "use_action": { + "need_wielding": true, + "target": "granade_act", + "msg": "You pull the pin on the Granade.", + "target_timer": "5 seconds", + "type": "transform" + }, + "melee_damage": { "bash": 6 } }, { "id": "granade_act", @@ -25,15 +31,16 @@ "volume": "250 ml", "price": 0, "to_hit": -1, - "bashing": 6, "material": [ "steel", "plastic" ], "symbol": "*", "color": "green", - "initial_charges": 5, - "max_charges": 5, - "turns_per_charge": 1, - "use_action": [ "GRANADE_ACT" ], - "flags": [ "TRADER_AVOID" ] + "use_action": { "type": "message", "message": "You've already pulled the %s's pin, try throwing it instead." }, + "tick_action": [ + { "type": "sound", "sound_message": "Merged!", "sound_volume": 0, "sound_id": "speech", "sound_variant": "granade_act" } + ], + "countdown_action": "GRANADE_ACT", + "flags": [ "TRADER_AVOID" ], + "melee_damage": { "bash": 6 } }, { "id": "bio_chest_gun", @@ -50,9 +57,8 @@ "name": { "str": "Ionic Overload Generator" }, "description": "A powerful ion energy generator is implanted on your chest. Fires a powerful, ever-expanding energy blast. The resulting blast ignites oxygen creating fires as it moves and an explosion on impact. Close range use is highly discouraged.", "occupied_bodyparts": [ [ "torso", 20 ] ], - "act_cost": 500, "fake_weapon": "bio_ion_gun", - "flags": [ "BIONIC_GUN", "USES_BIONIC_POWER" ] + "flags": [ "BIONIC_GUN" ] }, { "id": "bio_ion_gun", @@ -63,20 +69,21 @@ "volume": "3 L", "price": 1600000, "to_hit": -1, - "bashing": 12, "material": [ "steel", "plastic" ], "symbol": "(", "color": "cyan", "skill": "rifle", "range": 45, "ranged_damage": { "damage_type": "stab", "amount": 250, "armor_penetration": 20 }, + "energy_drain": "500 kJ", "dispersion": 10, "recoil": 100, "durability": 10, "loudness": 50, "reload": 0, "ammo_effects": [ "PLASMA", "EXPLOSIVE_HUGE", "STREAM_BIG", "INCENDIARY", "WIDE" ], - "flags": [ "NEVER_JAMS", "NO_UNLOAD", "TRADER_AVOID", "BIONIC_WEAPON" ] + "flags": [ "NEVER_JAMS", "NO_UNLOAD", "TRADER_AVOID", "BIONIC_WEAPON", "USES_BIONIC_POWER" ], + "melee_damage": { "bash": 12 } }, { "id": "yeet_cannon", @@ -88,7 +95,6 @@ "volume": "539 ml", "price": 7500, "to_hit": -2, - "bashing": 8, "material": [ "plastic", "steel", "zinc" ], "color": "dark_gray", "ammo": [ "9mm" ], @@ -102,7 +108,8 @@ "max_contains_weight": "20 kg", "item_restriction": [ "hptc9mag_8rd", "hptc9mag_10rd", "hptc9mag_15rd" ] } - ] + ], + "melee_damage": { "bash": 8 } }, { "id": "firekatana_off", @@ -113,8 +120,6 @@ "weight": "1400 g", "volume": "2250 ml", "price": 98000, - "bashing": 4, - "cutting": 31, "material": [ "steel" ], "symbol": "/", "color": "light_gray", @@ -127,11 +132,11 @@ "target_id": "firekatana_on", "moves": 10, "noise": 10, - "success_message": "The Sun rises.", - "lacks_fuel_message": "Time stands still." + "success_message": "The Sun rises." }, "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 6 ] ], - "flags": [ "FIRE", "DURABLE_MELEE", "SHEATH_SWORD" ] + "flags": [ "FIRE", "DURABLE_MELEE", "SHEATH_SWORD" ], + "melee_damage": { "bash": 4, "cut": 31 } }, { "id": "firekatana_on", @@ -142,8 +147,6 @@ "weight": "1400 g", "volume": "2250 ml", "price": 98000, - "bashing": 4, - "cutting": 31, "material": [ "steel" ], "symbol": "/", "color": "red", @@ -153,17 +156,20 @@ "revert_to": "firekatana_off", "techniques": [ "RAPID", "WBLOCK_2" ], "use_action": [ + { "type": "transform", "target": "firekatana_off", "msg": "The Sun sets.", "menu_text": "Turn off" }, + { "type": "firestarter", "moves": 30 } + ], + "tick_action": [ { "type": "fireweapon_on", "noise_chance": 35, "noise_message": "The Sun shines brightly.", - "voluntary_extinguish_message": "The Sun sets.", "charges_extinguish_message": "The Light Fades.", "water_extinguish_message": "Your sword hisses in the water and goes out." - }, - { "type": "firestarter", "moves": 30 } + } ], - "flags": [ "FIRE", "LIGHT_240", "CHARGEDIM", "FLAMING", "DURABLE_MELEE", "TRADER_AVOID", "WATER_EXTINGUISH" ] + "flags": [ "FIRE", "LIGHT_240", "CHARGEDIM", "FLAMING", "DURABLE_MELEE", "TRADER_AVOID", "WATER_EXTINGUISH" ], + "melee_damage": { "bash": 4, "cut": 31 } }, { "id": "zweifire_off", @@ -175,8 +181,6 @@ "weight": "3400 g", "volume": "3750 ml", "price": 160000, - "bashing": 17, - "cutting": 40, "material": [ "steel" ], "symbol": "/", "color": "light_gray", @@ -189,11 +193,11 @@ "target_id": "zweifire_on", "moves": 10, "noise": 10, - "success_message": "Die Klinge deines Schwertes brennt!", - "lacks_fuel_message": "Dein Flammenschwert hat keinen Brennstoff mehr." + "success_message": "Die Klinge deines Schwertes brennt!" }, "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 1 ] ], - "flags": [ "DURABLE_MELEE", "SHEATH_SWORD", "ALWAYS_TWOHAND" ] + "flags": [ "DURABLE_MELEE", "SHEATH_SWORD", "ALWAYS_TWOHAND" ], + "melee_damage": { "bash": 17, "cut": 40 } }, { "id": "zweifire_on", @@ -205,8 +209,6 @@ "weight": "3400 g", "volume": "3750 ml", "price": 160000, - "bashing": 17, - "cutting": 40, "material": [ "steel" ], "symbol": "/", "color": "red", @@ -216,17 +218,25 @@ "revert_to": "zweifire_off", "techniques": [ "WBLOCK_1", "WIDE", "BRUTAL", "SWEEP" ], "use_action": [ + { + "type": "transform", + "target": "zweifire_off", + "msg": "Die Flamme deines Schwertes erlischt.", + "menu_text": "Turn off" + }, + { "type": "firestarter", "moves": 30 } + ], + "tick_action": [ { "type": "fireweapon_on", "noise_chance": 35, "noise_message": "Das Feuer um deine Schwertklinge leuchtet hell!", - "voluntary_extinguish_message": "Die Flamme deines Schwertes erlischt.", "charges_extinguish_message": "Deinem Flammenschwert ist der Brennstoff ausgegangen!", "water_extinguish_message": "Dein Schwert zischt und erlischt." - }, - { "type": "firestarter", "moves": 30 } + } ], - "flags": [ "FIRE", "LIGHT_240", "CHARGEDIM", "FLAMING", "DURABLE_MELEE", "TRADER_AVOID", "WATER_EXTINGUISH", "ALWAYS_TWOHAND" ] + "flags": [ "FIRE", "LIGHT_240", "CHARGEDIM", "FLAMING", "DURABLE_MELEE", "TRADER_AVOID", "WATER_EXTINGUISH", "ALWAYS_TWOHAND" ], + "melee_damage": { "bash": 17, "cut": 40 } }, { "type": "GENERIC", @@ -241,8 +251,8 @@ "techniques": [ "WBLOCK_1" ], "flags": [ "DURABLE_MELEE" ], "volume": "1750 ml", - "bashing": 19, - "price": 18000 + "price": 18000, + "melee_damage": { "bash": 19 } }, { "id": "battletorch", @@ -254,7 +264,6 @@ "volume": "2 L", "price": 16000, "to_hit": 3, - "bashing": 18, "material": [ "wood", "nomex" ], "symbol": "/", "color": "brown", @@ -270,7 +279,8 @@ "menu_text": "Light", "type": "transform" }, - "flags": [ "DURABLE_MELEE" ] + "flags": [ "DURABLE_MELEE" ], + "melee_damage": { "bash": 18 } }, { "id": "battletorch_lit", @@ -282,7 +292,6 @@ "volume": "2 L", "price": 16000, "to_hit": 3, - "bashing": 18, "material": [ "wood", "nomex" ], "symbol": "/", "color": "red", @@ -301,10 +310,11 @@ "type": "transform" } ], - "flags": [ "FIRE", "LIGHT_310", "CHARGEDIM", "FLAMING", "DURABLE_MELEE", "TRADER_AVOID", "WATER_EXTINGUISH" ] + "flags": [ "FIRE", "LIGHT_310", "CHARGEDIM", "FLAMING", "DURABLE_MELEE", "TRADER_AVOID", "WATER_EXTINGUISH" ], + "melee_damage": { "bash": 18 } }, { - "id": "flu_shot", + "id": "flu_shot_fun", "copy-from": "flu_shot", "type": "COMESTIBLE", "comestible_type": "MED", @@ -346,14 +356,13 @@ "volume": "2450 ml", "weight": "250 g", "longest_side": "100 cm", - "bashing": 4, - "cutting": 8, "to_hit": { "grip": "solid", "length": "long", "surface": "line", "balance": "uneven" }, "price_postapoc": 250, "flags": [ "BELT_CLIP", "NONCONDUCTIVE" ], "weapon_category": [ "CONSTRUCTED_SWORDS", "MEDIUM_SWORDS" ], "qualities": [ [ "BUTCHER", -50 ] ], - "techniques": [ "WBLOCK_1" ] + "techniques": [ "WBLOCK_1" ], + "melee_damage": { "bash": 4, "cut": 8 } }, { "id": "rocket_can_drink", diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_mapgen.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_mapgen.json new file mode 100644 index 000000000..3d5e9126f --- /dev/null +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_mapgen.json @@ -0,0 +1,46 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_shia", + "object": { "place_monster": [ { "monster": "mon_shia", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 100 } ] } + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_jackson", + "object": { "place_monster": [ { "monster": "mon_zombie_jackson", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 100 } ] } + }, + { + "id": "mx_shia", + "type": "map_extra", + "name": { "str": "Shia LaBeouf" }, + "description": "Cannibal is nearby.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_shia" }, + "min_max_zlevel": [ 0, 0 ], + "sym": "s", + "color": "red", + "autonote": true + }, + { + "id": "mx_jackson", + "type": "map_extra", + "name": { "str": "Jackson" }, + "description": "It's close to midnight, and something evil's lurking in the dark.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_jackson" }, + "min_max_zlevel": [ 0, 0 ], + "sym": "j", + "color": "red", + "autonote": true + }, + { + "type": "region_overlay", + "regions": [ "all" ], + "map_extras": { + "forest_thick": { "extras": { "mx_shia": 1 } }, + "forest": { "extras": { "mx_shia": 1 } }, + "field": { "extras": { "mx_shia": 1 } }, + "road": { "extras": { "mx_jackson": 1 } } + } + } +] diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_monsters.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_monsters.json index 3329d341f..b467efa75 100644 --- a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_monsters.json +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_monsters.json @@ -49,15 +49,13 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 2, - "armor_cut": 15, - "armor_stab": 15, - "armor_acid": 3, "vision_day": 30, "vision_night": 3, "death_drops": "skeltal_drops", "flags": [ "SEES", "HEARS", "HARDTOSHOOT", "REVIVES", "NO_BREATHE", "FILTHY" ], "harvest": "mr_bones", - "special_attacks": [ [ "DOOT", 50 ] ] + "special_attacks": [ [ "DOOT", 50 ] ], + "armor": { "cut": 15, "stab": 15, "acid": 3 } }, { "id": "mon_zombie_skeltal_minion", @@ -107,14 +105,12 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 3, - "armor_bash": 4, - "armor_cut": 4, "vision_day": 30, "vision_night": 10, "emit_fields": [ { "emit_id": "emit_smoke_stream", "delay": "1 s" } ], "special_attacks": [ { "type": "bite", "cooldown": 5 } ], "anger_triggers": [ "HURT", "PLAYER_CLOSE" ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explode!" }, + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, "harvest": "zombie_fur", "flags": [ "SEES", @@ -128,12 +124,117 @@ "FIREPROOF", "NO_BREATHE", "FILTHY" - ] + ], + "armor": { "bash": 4, "cut": 4 } }, { "id": "mon_moose", "type": "MONSTER", "name": { "ctxt": "crazy", "str": "moose", "str_pl": "meese", "//~": "joke plural name for CrazyCataclysm" }, "copy-from": "mon_moose" + }, + { + "id": "mon_zombie_dancer", + "type": "MONSTER", + "name": { "str": "zombie dancer" }, + "description": "The foulest stench is in the air,\nThe funk of forty thousand years,\nAnd grisly ghouls from every tomb,\nAre closing in to seal your doom!\n\nThe dancer doesn't even notice you, it seems like something nearby is controlling it.", + "default_faction": "zombie", + "bodytype": "human", + "categories": [ "CLASSIC" ], + "species": [ "ZOMBIE", "HUMAN" ], + "volume": "875000 ml", + "weight": "200 kg", + "hp": 10000, + "speed": 200, + "material": [ "flesh" ], + "symbol": "Z", + "color": "white_magenta", + "aggression": 100, + "morale": 100, + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "vision_day": 50, + "vision_night": 3, + "harvest": "zombie_leather", + "special_attacks": [ [ "DANCE", 30 ] ], + "death_drops": "mon_zombie_hulk_death_drops", + "fungalize_into": "mon_zombie_fungus", + "regenerates": 50, + "flags": [ "WARM", "BASHES", "DESTROYS", "NO_BREATHE", "POISON", "FILTHY" ], + "armor": { "bash": 12, "cut": 8, "bullet": 6, "electric": 5 } + }, + { + "id": "mon_zombie_jackson", + "type": "MONSTER", + "name": { "str": "Thriller" }, + "description": "And though you fight to stay alive,\nYour body starts to shiver.\nFor no mere mortal can resist,\nThe evil of the thriller.", + "default_faction": "zombie", + "bodytype": "human", + "species": [ "ZOMBIE", "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 100, + "speed": 100, + "material": [ "flesh" ], + "symbol": "Z", + "color": "dark_gray_red", + "aggression": 2, + "morale": 100, + "melee_skill": 9, + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "dodge": 6, + "weakpoints": [ + { "name": "the funky, funky head", "armor_mult": { "physical": 0.5 }, "coverage": 3 }, + { "name": "the glittering, beautiful eye", "armor_mult": { "physical": 0 }, "coverage": 1 } + ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "vision_day": 50, + "vision_night": 3, + "harvest": "zombie", + "special_attacks": [ [ "JACKSON", 0 ] ], + "death_drops": "jackson_drops", + "death_function": { "message": "The music stops!", "effect": { "id": "death_jackson", "hit_self": true }, "corpse_type": "NO_CORPSE" }, + "flags": [ "SEES", "SMELLS", "WARM", "BASHES", "NO_BREATHE", "POISON", "FILTHY" ], + "armor": { "bash": 2, "cut": 2, "bullet": 2, "electric": 1 } + }, + { + "id": "mon_shia", + "type": "MONSTER", + "name": { "str_sp": "Shia LaBeouf" }, + "description": "Living in the woods,\nkilling for sport,\neating all the bodies--\nactual cannibal Shia LaBeouf.", + "default_faction": "zombie", + "bodytype": "human", + "species": [ "ZOMBIE", "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 50, + "speed": 110, + "material": [ "flesh" ], + "symbol": "@", + "color": "red", + "aggression": 100, + "morale": 100, + "melee_skill": 9, + "melee_dice": 3, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "dodge": 4, + "vision_day": 30, + "vision_night": 10, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "harvest": "human", + "path_settings": { "max_dist": 30, "avoid_traps": true, "avoid_sharp": true }, + "special_attacks": [ [ "BRANDISH", 10 ] ], + "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE" ], + "fear_triggers": [ "FIRE" ], + "death_drops": { "groups": [ [ "shia_stuff", 1 ] ] }, + "flags": [ "SEES", "HEARS", "WARM", "BASHES", "POISON", "NO_BREATHE", "PATH_AVOID_DANGER_1", "PRIORITIZE_TARGETS", "FILTHY" ], + "armor": { "electric": 1 } } ] diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_recipes.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_recipes.json index 3a8c4bd86..b54ab99fc 100644 --- a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_recipes.json +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_recipes.json @@ -2,13 +2,13 @@ { "result": "battletorch_done", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "time": "2 m", "components": [ [ [ "bat", 1 ] ], [ [ "nomex", 5 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "firekatana_off", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_CUTTING", @@ -29,7 +29,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "zweifire_off", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_CUTTING", @@ -51,7 +51,7 @@ { "result": "battletorch", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_BASHING", "skill_used": "fabrication", diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_spells.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_spells.json new file mode 100644 index 000000000..817b65b09 --- /dev/null +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_spells.json @@ -0,0 +1,33 @@ +[ + { + "id": "remove_controlled_jackson", + "type": "SPELL", + "name": { "str": "Uncontrol Dancers" }, + "valid_targets": [ "self", "ally" ], + "description": "Removes control effect from polymorphed dancers.", + "targeted_monster_ids": [ "mon_zombie_hulk" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "min_aoe": 48, + "max_aoe": 48, + "shape": "blast", + "effect_str": "controlled", + "effect": "remove_effect" + }, + { + "id": "death_jackson", + "type": "SPELL", + "name": { "str": "Jackson Death" }, + "description": "Hee Hee! WOO!", + "valid_targets": [ "self", "ally" ], + "effect": "targeted_polymorph", + "min_aoe": 48, + "max_aoe": 48, + "min_damage": 400, + "max_damage": 400, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "shape": "blast", + "effect_str": "mon_zombie_hulk", + "targeted_monster_ids": [ "mon_zombie_dancer" ], + "extra_effects": [ { "id": "remove_controlled_jackson", "hit_self": true } ] + } +] diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_vehicles.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_vehicles.json index dc724e07f..b9fa44b06 100644 --- a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_vehicles.json +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_vehicles.json @@ -10,44 +10,44 @@ [ "##++-o" ] ], "parts": [ - { "x": 0, "y": 0, "part": "frame_vertical_2" }, - { "x": 0, "y": 0, "part": "seat" }, - { "x": 0, "y": 0, "part": "seatbelt" }, - { "x": 0, "y": 0, "part": "controls" }, - { "x": 0, "y": 0, "part": "dashboard" }, - { "x": 0, "y": 0, "part": "roof" }, - { "x": 0, "y": 0, "part": "tank", "fuel": "napalm" }, - { "x": 0, "y": 1, "part": "frame_vertical_2" }, - { "x": 0, "y": 1, "part": "tank", "fuel": "gasoline" }, - { "x": 0, "y": -1, "part": "frame_vertical" }, - { "x": 0, "y": -1, "part": "tank", "fuel": "water_clean" }, - { "x": 0, "y": -1, "part": "turret_mount" }, - { "x": 0, "y": -1, "part": "laser_rifle" }, - { "x": 0, "y": 2, "part": "frame_vertical" }, - { "x": -1, "y": 0, "part": "frame_vertical_2" }, - { "x": -1, "y": 1, "part": "frame_vertical_2" }, - { "x": -1, "y": 1, "part": "minireactor" }, - { "x": -1, "y": -1, "part": "frame_vertical" }, + { "x": 0, "y": 0, "parts": [ "frame#vertical_2" ] }, + { "x": 0, "y": 0, "parts": [ "seat" ] }, + { "x": 0, "y": 0, "parts": [ "seatbelt" ] }, + { "x": 0, "y": 0, "parts": [ "controls" ] }, + { "x": 0, "y": 0, "parts": [ "dashboard" ] }, + { "x": 0, "y": 0, "parts": [ "roof" ] }, + { "x": 0, "y": 0, "parts": [ { "part": "tank", "fuel": "napalm" } ] }, + { "x": 0, "y": 1, "parts": [ "frame#vertical_2" ] }, + { "x": 0, "y": 1, "parts": [ { "part": "tank", "fuel": "gasoline" } ] }, + { "x": 0, "y": -1, "parts": [ "frame#vertical" ] }, + { "x": 0, "y": -1, "parts": [ { "part": "tank", "fuel": "water_clean" } ] }, + { "x": 0, "y": -1, "parts": [ "turret_mount" ] }, + { "x": 0, "y": -1, "parts": [ "turret_laser_rifle" ] }, + { "x": 0, "y": 2, "parts": [ "frame#vertical" ] }, + { "x": -1, "y": 0, "parts": [ "frame#vertical_2" ] }, + { "x": -1, "y": 1, "parts": [ "frame#vertical_2" ] }, + { "x": -1, "y": 1, "parts": [ "minireactor" ] }, + { "x": -1, "y": -1, "parts": [ "frame#vertical" ] }, { "x": -1, "y": -1, "parts": [ "wheel_mount_medium", "wheel" ] }, - { "x": -1, "y": -1, "part": "storage_battery" }, - { "x": -1, "y": 2, "part": "frame_vertical" }, + { "x": -1, "y": -1, "parts": [ "storage_battery" ] }, + { "x": -1, "y": 2, "parts": [ "frame#vertical" ] }, { "x": -1, "y": 2, "parts": [ "wheel_mount_medium", "wheel" ] }, - { "x": -1, "y": 2, "part": "storage_battery" }, - { "x": 1, "y": 0, "part": "frame_horizontal" }, - { "x": 1, "y": 0, "part": "engine_electric_large" }, - { "x": 1, "y": 0, "part": "turret_mount" }, - { "x": 1, "y": 0, "part": "flamethrower" }, - { "x": 1, "y": 1, "part": "frame_horizontal" }, - { "x": 1, "y": 1, "part": "storage_battery_mount", "//": "to make the blazemod happy" }, - { "x": 1, "y": -1, "part": "frame_nw" }, + { "x": -1, "y": 2, "parts": [ "storage_battery" ] }, + { "x": 1, "y": 0, "parts": [ "frame#horizontal" ] }, + { "x": 1, "y": 0, "parts": [ "engine_electric_large" ] }, + { "x": 1, "y": 0, "parts": [ "turret_mount" ] }, + { "x": 1, "y": 0, "parts": [ "turret_flamethrower" ] }, + { "x": 1, "y": 1, "parts": [ "frame#horizontal" ] }, + { "x": 1, "y": 1, "//": "to make the blazemod happy", "parts": [ "storage_battery_mount" ] }, + { "x": 1, "y": -1, "parts": [ "frame#nw" ] }, { "x": 1, "y": -1, "parts": [ "wheel_mount_medium_steerable", "wheel" ] }, - { "x": 1, "y": -1, "part": "turret_mount" }, - { "x": 1, "y": -1, "part": "watercannon" }, - { "x": 1, "y": 2, "part": "frame_ne" }, + { "x": 1, "y": -1, "parts": [ "turret_mount" ] }, + { "x": 1, "y": -1, "parts": [ "turret_watercannon" ] }, + { "x": 1, "y": 2, "parts": [ "frame#ne" ] }, { "x": 1, "y": 2, "parts": [ "wheel_mount_medium_steerable", "wheel" ] }, - { "x": 1, "y": 2, "part": "tank", "fuel": "water" }, - { "x": 1, "y": 2, "part": "turret_mount" }, - { "x": 1, "y": 2, "part": "m249", "ammo": 100 } + { "x": 1, "y": 2, "parts": [ { "part": "tank", "fuel": "water" } ] }, + { "x": 1, "y": 2, "parts": [ "turret_mount" ] }, + { "x": 1, "y": 2, "parts": [ { "part": "turret_m249", "ammo": 100 } ] } ] } ] diff --git a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_widgets.json b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_widgets.json index a263724db..a50e30020 100644 --- a/data/Mainline_mods/Mods/CrazyCataclysm/crazy_widgets.json +++ b/data/Mainline_mods/Mods/CrazyCataclysm/crazy_widgets.json @@ -10,7 +10,7 @@ "id": "skeletal", "text": "Spooky Scary Skeleton", "color": "red", - "condition": { "compare_int": [ { "u_val": "bmi_permil" }, "<=", { "const": 14000 } ] } + "condition": { "compare_num": [ { "u_val": "bmi_permil" }, "<=", { "const": 1000 } ] } }, { "id": "emaciated", @@ -18,8 +18,8 @@ "color": "light_red", "condition": { "and": [ - { "compare_int": [ { "u_val": "bmi_permil" }, ">", { "const": 14000 } ] }, - { "compare_int": [ { "u_val": "bmi_permil" }, "<=", { "const": 16000 } ] } + { "compare_num": [ { "u_val": "bmi_permil" }, ">", { "const": 1000 } ] }, + { "compare_num": [ { "u_val": "bmi_permil" }, "<=", { "const": 2000 } ] } ] } }, @@ -29,8 +29,8 @@ "color": "yellow", "condition": { "and": [ - { "compare_int": [ { "u_val": "bmi_permil" }, ">", { "const": 16000 } ] }, - { "compare_int": [ { "u_val": "bmi_permil" }, "<=", { "const": 18500 } ] } + { "compare_num": [ { "u_val": "bmi_permil" }, ">", { "const": 2000 } ] }, + { "compare_num": [ { "u_val": "bmi_permil" }, "<=", { "const": 3000 } ] } ] } }, @@ -41,8 +41,8 @@ "//": "Actually 18.5 - 25", "condition": { "and": [ - { "compare_int": [ { "u_val": "bmi_permil" }, ">", { "const": 18500 } ] }, - { "compare_int": [ { "u_val": "bmi_permil" }, "<=", { "const": 25000 } ] } + { "compare_num": [ { "u_val": "bmi_permil" }, ">", { "const": 3000 } ] }, + { "compare_num": [ { "u_val": "bmi_permil" }, "<=", { "const": 5000 } ] } ] } }, @@ -52,8 +52,8 @@ "color": "yellow", "condition": { "and": [ - { "compare_int": [ { "u_val": "bmi_permil" }, ">", { "const": 25000 } ] }, - { "compare_int": [ { "u_val": "bmi_permil" }, "<=", { "const": 30000 } ] } + { "compare_num": [ { "u_val": "bmi_permil" }, ">", { "const": 5000 } ] }, + { "compare_num": [ { "u_val": "bmi_permil" }, "<=", { "const": 10000 } ] } ] } }, @@ -63,8 +63,8 @@ "color": "light_red", "condition": { "and": [ - { "compare_int": [ { "u_val": "bmi_permil" }, ">", { "const": 30000 } ] }, - { "compare_int": [ { "u_val": "bmi_permil" }, "<=", { "const": 35000 } ] } + { "compare_num": [ { "u_val": "bmi_permil" }, ">", { "const": 10000 } ] }, + { "compare_num": [ { "u_val": "bmi_permil" }, "<=", { "const": 15000 } ] } ] } }, @@ -74,8 +74,8 @@ "color": "red", "condition": { "and": [ - { "compare_int": [ { "u_val": "bmi_permil" }, ">", { "const": 35000 } ] }, - { "compare_int": [ { "u_val": "bmi_permil" }, "<=", { "const": 40000 } ] } + { "compare_num": [ { "u_val": "bmi_permil" }, ">", { "const": 15000 } ] }, + { "compare_num": [ { "u_val": "bmi_permil" }, "<=", { "const": 20000 } ] } ] } }, @@ -85,8 +85,8 @@ "color": "red", "condition": { "and": [ - { "compare_int": [ { "u_val": "bmi_permil" }, ">", { "const": 40000 } ] }, - { "compare_int": [ { "u_val": "bmi_permil" }, "<=", { "const": 45000 } ] } + { "compare_num": [ { "u_val": "bmi_permil" }, ">", { "const": 20000 } ] }, + { "compare_num": [ { "u_val": "bmi_permil" }, "<=", { "const": 25000 } ] } ] } }, @@ -96,8 +96,8 @@ "color": "red", "condition": { "and": [ - { "compare_int": [ { "u_val": "bmi_permil" }, ">", { "const": 45000 } ] }, - { "compare_int": [ { "u_val": "bmi_permil" }, "<=", { "const": 50000 } ] } + { "compare_num": [ { "u_val": "bmi_permil" }, ">", { "const": 25000 } ] }, + { "compare_num": [ { "u_val": "bmi_permil" }, "<=", { "const": 30000 } ] } ] } }, @@ -105,7 +105,7 @@ "id": "morbidly_obese_plus_10", "text": "AW HELL NAH", "color": "red", - "condition": { "compare_int": [ { "u_val": "bmi_permil" }, ">", { "const": 50000 } ] } + "condition": { "compare_num": [ { "u_val": "bmi_permil" }, ">", { "const": 30000 } ] } } ] }, diff --git a/data/Mainline_mods/Mods/Defense_Mode/dialogue/TALK_DM_MERCHANT.json b/data/Mainline_mods/Mods/Defense_Mode/dialogue/TALK_DM_MERCHANT.json new file mode 100644 index 000000000..915064323 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/dialogue/TALK_DM_MERCHANT.json @@ -0,0 +1,67 @@ +[ + { + "type": "talk_topic", + "id": "TALK_DM_MERCHANT", + "dynamic_line": "Nice to see you again. Would you like to buy something, hire someone, or somethin' else?", + "responses": [ + { + "text": "I'll buy something.", + "topic": "TALK_DM_MERCHANT_2", + "effect": [ { "run_eocs": "defense_mode_money_add_npc" }, "start_trade" ] + }, + { "text": "What'll it cost me to get some help around here?", "topic": "TALK_DM_MERCHANT_HIRE_COST" }, + { + "text": "I'd like to hire some help.", + "topic": "TALK_DM_MERCHANT_2", + "effect": [ + { "u_buy_item": "mercenary_contract", "cost": 50000, "true_eocs": "defense_mode_hire_merc_true" }, + { "run_eocs": "defense_mode_money_add_npc" } + ] + }, + { "text": "Nevermind, I don't want anything.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_DM_MERCHANT_HIRE_COST", + "dynamic_line": "It's usually $500. You can pay me up front in either goods or money, then we'll talk.", + "responses": [ + { + "text": "I'll buy something.", + "topic": "TALK_DM_MERCHANT_2", + "effect": [ { "run_eocs": "defense_mode_money_add_npc" }, "start_trade" ] + }, + { + "text": "I'd like to hire some help.", + "topic": "TALK_DM_MERCHANT_2", + "effect": [ + { "u_buy_item": "mercenary_contract", "cost": 50000, "true_eocs": "defense_mode_hire_merc_true" }, + { "run_eocs": "defense_mode_money_add_npc" } + ] + }, + { "text": "Nevermind, I don't want anything.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_DM_MERCHANT_2", + "dynamic_line": "Anything else I can do for you?", + "responses": [ + { + "text": "I'll buy something.", + "topic": "TALK_DM_MERCHANT_2", + "effect": [ { "run_eocs": "defense_mode_money_add_npc" }, "start_trade" ] + }, + { "text": "What'll it cost me to get some help around here?", "topic": "TALK_DM_MERCHANT_HIRE_COST" }, + { + "text": "I'd like to hire some help.", + "topic": "TALK_DM_MERCHANT_2", + "effect": [ + { "u_buy_item": "mercenary_contract", "cost": 50000, "true_eocs": "defense_mode_hire_merc_true" }, + { "run_eocs": "defense_mode_money_add_npc" } + ] + }, + { "text": "Nevermind, I don't want anything.", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/dialogue/TALK_WANDERING_SURVIVOR.json b/data/Mainline_mods/Mods/Defense_Mode/dialogue/TALK_WANDERING_SURVIVOR.json new file mode 100644 index 000000000..eb0a5799a --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/dialogue/TALK_WANDERING_SURVIVOR.json @@ -0,0 +1,82 @@ +[ + { + "type": "talk_topic", + "id": "TALK_NPC_DEFENSE_WANDERER", + "dynamic_line": { + "npc_has_var": "knows_u", + "type": "dialogue", + "context": "first_meeting", + "value": "yes", + "yes": "", + "no": "Freeze you !" + }, + "speaker_effect": { "effect": { "npc_add_var": "knows_u", "type": "dialogue", "context": "first_meeting", "value": "yes" } }, + "responses": [ + { + "text": "&Hold up your hands. \"Don't worry, I'm not going to hurt you\"", + "topic": "TALK_NPC_DEFENSE_WANDERER_CALM", + "condition": { "not": { "npc_has_var": "knows_u", "type": "dialogue", "context": "first_meeting", "value": "yes" } } + }, + { + "text": "Hand over your stuff! Don't make any sudden moves, or you die!", + "trial": { "type": "INTIMIDATE", "difficulty": 30 }, + "success": { "topic": "TALK_WEAPON_DROPPED", "effect": "drop_weapon", "opinion": { "trust": -4, "fear": 3 } }, + "failure": { "topic": "TALK_DONE", "effect": "hostile" }, + "condition": { "not": { "npc_has_var": "knows_u", "type": "dialogue", "context": "first_meeting", "value": "yes" } } + }, + { + "text": "Nice to see you.", + "topic": "TALK_NPC_DEFENSE_WANDERER_INTRO", + "condition": { "npc_has_var": "knows_u", "type": "dialogue", "context": "first_meeting", "value": "yes" } + }, + { "text": "Bye.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_NPC_DEFENSE_WANDERER_CALM", + "dynamic_line": "Oh, you're not one of the . I'm glad to see another survivor out here, such a relief.", + "responses": [ + { "text": "Alright, let's chat.", "topic": "TALK_NPC_DEFENSE_WANDERER_INTRO" }, + { "text": "I'll be back later.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_NPC_DEFENSE_WANDERER_INTRO", + "dynamic_line": [ "What's up?", "What do you need?", "What can I do for you?" ], + "responses": [ + { "text": "What are you doing out here in the sticks?", "topic": "TALK_NPC_DEFENSE_WANDERER_STORY" }, + { "text": "Care to trade?", "topic": "TALK_NPC_DEFENSE_WANDERER_INTRO", "effect": "start_trade" }, + { + "text": "Why don't you come with me, maybe we can hold out here?", + "trial": { "type": "PERSUADE", "difficulty": -35, "mod": [ [ "value", 2 ] ] }, + "success": { "topic": "TALK_AGREE_FOLLOW", "effect": "follow", "opinion": { "trust": 1, "value": 1 } }, + "failure": { "topic": "TALK_DENY_FOLLOW", "effect": "deny_follow", "opinion": { "trust": 0, "fear": 0 } } + }, + { "text": "I gotta go.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_NPC_DEFENSE_WANDERER_STORY", + "dynamic_line": "I can't remember, actually. I have a vague sense of being in my house, asleep, before I woke up in the middle of a field. I have this strange feeling that something's after me, keep seeing things out in the woods, so I had to keep moving.", + "//": "Potential lore? This could be a good mystery.", + "responses": [ + { "text": "Seems like a hard life.", "topic": "TALK_NPC_DEFENSE_WANDERER_INTRO" }, + { "text": "Where'd you get all your stuff at?", "topic": "TALK_NPC_DEFENSE_WANDERER_STUFF" }, + { + "text": "I guess we're both in a similar predicament, then. Why not team up with me? We can hold out together and try to stay alive.", + "trial": { "type": "PERSUADE", "difficulty": -35, "mod": [ [ "value", 2 ] ] }, + "success": { "topic": "TALK_AGREE_FOLLOW", "effect": "follow", "opinion": { "trust": 1, "value": 1 } }, + "failure": { "topic": "TALK_DENY_FOLLOW", "effect": "deny_follow", "opinion": { "trust": 0, "fear": 0 } } + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_NPC_DEFENSE_WANDERER_STUFF", + "dynamic_line": "I just found it near where I woke up at. Who's it was and where it came from I have no idea, but I couldn't find anyone else around, and it seemed like it'd all been left there for someone to pick up.", + "responses": [ { "text": "Makes sense.", "topic": "TALK_NPC_DEFENSE_WANDERER_INTRO" } ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/dialogue/menu_screen.json b/data/Mainline_mods/Mods/Defense_Mode/dialogue/menu_screen.json new file mode 100644 index 000000000..a7ee73bdf --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/dialogue/menu_screen.json @@ -0,0 +1,366 @@ +[ + { + "type": "talk_topic", + "id": "TALK_DEFENSE_MODE_MAIN_MENU", + "dynamic_line": "Hello, and welcome to Defense Mode! Please alter the options as you desire, then we'll get started!", + "responses": [ + { "text": "Enemy Options", "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" }, + { "text": "Preset Game Options", "topic": "TALK_DEFENSE_MODE_PRESET_GAME_MENU" }, + { + "text": "Play!", + "condition": { + "or": [ + { "math": [ "regular_zombies_allowed", "==", "1" ] }, + { "math": [ "special_zombies_allowed", "==", "1" ] }, + { "math": [ "spiders_allowed", "==", "1" ] }, + { "math": [ "triffids_allowed", "==", "1" ] }, + { "math": [ "robots_allowed", "==", "1" ] }, + { "math": [ "subspace_allowed", "==", "1" ] }, + { "math": [ "dinos_allowed", "==", "1" ] }, + { "math": [ "lizardfolk_allowed", "==", "1" ] }, + { "math": [ "goblins_allowed", "==", "1" ] }, + { "math": [ "golems_allowed", "==", "1" ] }, + { "math": [ "orcs_allowed", "==", "1" ] }, + { "math": [ "megafauna_allowed", "==", "1" ] }, + { "math": [ "mindovermatter_allowed", "==", "1" ] }, + { "math": [ "candymonsters_allowed", "==", "1" ] }, + { "math": [ "mythos_allowed", "==", "1" ] }, + { "math": [ "exodii_allowed", "==", "1" ] }, + { "math": [ "xedra_allowed", "==", "1" ] } + ] + }, + "topic": "TALK_DONE" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_DEFENSE_MODE_ENEMY_SELECTION", + "dynamic_line": "What kinds of enemies do you want to see?", + "responses": [ + { + "text": "Allow regular zombies.", + "condition": { "math": [ "regular_zombies_allowed", "==", "0" ] }, + "effect": { "math": [ "regular_zombies_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable regular zombies.", + "condition": { "math": [ "regular_zombies_allowed", "==", "1" ] }, + "effect": { "math": [ "regular_zombies_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow special zombies.", + "condition": { "math": [ "special_zombies_allowed", "==", "0" ] }, + "effect": { "math": [ "special_zombies_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable special zombies.", + "condition": { "math": [ "special_zombies_allowed", "==", "1" ] }, + "effect": { "math": [ "special_zombies_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow spiders.", + "condition": { "math": [ "spiders_allowed", "==", "0" ] }, + "effect": { "math": [ "spiders_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable spiders.", + "condition": { "math": [ "spiders_allowed", "==", "1" ] }, + "effect": { "math": [ "spiders_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow triffids.", + "condition": { "math": [ "triffids_allowed", "==", "0" ] }, + "effect": { "math": [ "triffids_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable triffids.", + "condition": { "math": [ "triffids_allowed", "==", "1" ] }, + "effect": { "math": [ "triffids_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow robots.", + "condition": { "math": [ "robots_allowed", "==", "0" ] }, + "effect": { "math": [ "robots_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable robots.", + "condition": { "math": [ "robots_allowed", "==", "1" ] }, + "effect": { "math": [ "robots_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow eldritch horrors.", + "condition": { "math": [ "subspace_allowed", "==", "0" ] }, + "effect": { "math": [ "subspace_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable eldritch horrors.", + "condition": { "math": [ "subspace_allowed", "==", "1" ] }, + "effect": { "math": [ "subspace_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow dinosaurs.", + "condition": { "and": [ { "mod_is_loaded": "DinoMod" }, { "math": [ "dinos_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "dinos_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable dinosaurs.", + "condition": { "and": [ { "mod_is_loaded": "DinoMod" }, { "math": [ "dinos_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "dinos_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow lizardfolk.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "lizardfolk_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "lizardfolk_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable lizardfolk.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "lizardfolk_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "lizardfolk_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow golems.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "golems_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "golems_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable golems.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "golems_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "golems_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow goblins.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "goblins_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "goblins_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable goblins.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "goblins_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "goblins_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow orcs.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "orcs_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "orcs_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable orcs.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "orcs_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "orcs_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow megafauna.", + "condition": { "and": [ { "mod_is_loaded": "megafauna" }, { "math": [ "megafauna_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "megafauna_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable megafauna.", + "condition": { "and": [ { "mod_is_loaded": "megafauna" }, { "math": [ "megafauna_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "megafauna_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow psychics.", + "condition": { "and": [ { "mod_is_loaded": "mindovermatter" }, { "math": [ "mindovermatter_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "mindovermatter_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable psychics.", + "condition": { "and": [ { "mod_is_loaded": "mindovermatter" }, { "math": [ "mindovermatter_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "mindovermatter_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow sweets.", + "condition": { "and": [ { "mod_is_loaded": "my_sweet_cataclysm" }, { "math": [ "candymonsters_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "candymonsters_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable sweets.", + "condition": { "and": [ { "mod_is_loaded": "my_sweet_cataclysm" }, { "math": [ "candymonsters_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "candymonsters_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Mgah'ehye ya nyth'drnn.", + "//": "Allow my servants.", + "condition": { "and": [ { "mod_is_loaded": "Mythos-Creatures" }, { "math": [ "mythos_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "mythos_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Mgah ya nyth'drnn.", + "//": "Stop my servants.", + "condition": { "and": [ { "mod_is_loaded": "Mythos-Creatures" }, { "math": [ "mythos_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "mythos_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow exodii.", + "condition": { "and": [ { "mod_is_loaded": "xedra_evolved" }, { "math": [ "exodii_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "exodii_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable exodii.", + "condition": { "and": [ { "mod_is_loaded": "xedra_evolved" }, { "math": [ "exodii_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "exodii_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow XEDRA offworlders.", + "condition": { "and": [ { "mod_is_loaded": "xedra_evolved" }, { "math": [ "xedra_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "xedra_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable XEDRA offworlders.", + "condition": { "and": [ { "mod_is_loaded": "xedra_evolved" }, { "math": [ "xedra_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "xedra_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Play!", + "condition": { + "or": [ + { "math": [ "regular_zombies_allowed", "==", "1" ] }, + { "math": [ "special_zombies_allowed", "==", "1" ] }, + { "math": [ "spiders_allowed", "==", "1" ] }, + { "math": [ "triffids_allowed", "==", "1" ] }, + { "math": [ "robots_allowed", "==", "1" ] }, + { "math": [ "subspace_allowed", "==", "1" ] }, + { "math": [ "dinos_allowed", "==", "1" ] }, + { "math": [ "lizardfolk_allowed", "==", "1" ] }, + { "math": [ "goblins_allowed", "==", "1" ] }, + { "math": [ "golems_allowed", "==", "1" ] }, + { "math": [ "orcs_allowed", "==", "1" ] }, + { "math": [ "megafauna_allowed", "==", "1" ] }, + { "math": [ "mindovermatter_allowed", "==", "1" ] }, + { "math": [ "candymonsters_allowed", "==", "1" ] }, + { "math": [ "mythos_allowed", "==", "1" ] }, + { "math": [ "exodii_allowed", "==", "1" ] }, + { "math": [ "xedra_allowed", "==", "1" ] } + ] + }, + "topic": "TALK_DONE" + }, + { "text": "Return to main menu.", "topic": "TALK_DEFENSE_MODE_MAIN_MENU" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_DEFENSE_MODE_PRESET_GAME_MENU", + "dynamic_line": "We have a grand variety of preselected game modes for you to choose from! Pick one and play now!", + "responses": [ + { + "text": "Shaun of The Dead: (Defend a bar against classic zombies with your five friends. Easy and fun.)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "1" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "0" ] }, + { + "u_location_variable": { "global_val": "your_spawnpoint" }, + "target_params": { "om_terrain": "bar", "search_range": 500, "z": 0 } + }, + { "u_teleport": { "global_val": "your_spawnpoint" } }, + { "mapgen_update": "shaun_of_the_dead_spawns" } + ], + "topic": "TALK_DONE" + }, + { + "text": "Dawn of The Dead: (Classic zombies only, slower and more realistic.)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "1" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "0" ] } + ], + "topic": "TALK_DONE" + }, + { + "text": "Eight-Legged Freaks: (Hordes of spiders! Not arachnophobia friendly!)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "0" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "1" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "0" ] } + ], + "topic": "TALK_DONE" + }, + { + "text": "Day of The Triffids: (Protect your mansion against the triffids.)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "0" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "1" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "0" ] }, + { + "u_location_variable": { "global_val": "your_spawnpoint" }, + "target_params": { "om_terrain": "dm_mansion_e2", "search_range": 500, "z": 0 } + }, + { "u_teleport": { "global_val": "your_spawnpoint" } } + ], + "topic": "TALK_DONE" + }, + { + "text": "Skynet: (Robots have decided that humans are the enemy!)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "0" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "1" ] }, + { "math": [ "subspace_allowed", "=", "0" ] } + ], + "topic": "TALK_DONE" + }, + { + "text": "The Call of Cthulu: (Fend off hordes of eldritch horrors.)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "0" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "1" ] } + ], + "topic": "TALK_DONE" + }, + { "text": "Return to main menu.", "topic": "TALK_DEFENSE_MODE_MAIN_MENU" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/eocs.json b/data/Mainline_mods/Mods/Defense_Mode/eocs.json new file mode 100644 index 000000000..12410e3a7 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/eocs.json @@ -0,0 +1,503 @@ +[ + { + "type": "effect_on_condition", + "id": "scenario_defense_mode", + "eoc_type": "SCENARIO_SPECIFIC", + "deactivate_condition": { "compare_num": [ { "global_val": "var", "var_name": "wave_number" }, ">=", { "const": 1 } ] }, + "effect": [ + { "open_dialogue": { "topic": "TALK_DEFENSE_MODE_MAIN_MENU" } }, + { "u_message": "Get ready for the first wave, it's not that far away!", "type": "good", "popup": true }, + { "run_eocs": "DEFENSE_MODE_WAVE_CONTROL" }, + { + "u_location_variable": { "global_val": "your_spawnpoint" }, + "target_max_radius": 2, + "min_radius": 0, + "max_radius": 0 + } + ] + }, + { + "type": "effect_on_condition", + "id": "defense_mode_caravan_spawn", + "recurrence": [ "2 days", "4 days" ], + "global": true, + "condition": { "math": [ "u_monsters_nearby('radius': u_search_radius == 3)", "<=", "0" ] }, + "effect": [ + { "u_spawn_npc": "defense_mode_merchant", "lifespan": "2 hours", "real_count": 1, "min_radius": 2, "max_radius": 3 }, + { "u_message": "A caravan approaches!", "type": "good", "popup": false } + ] + }, + { + "type": "effect_on_condition", + "id": "defense_mode_hire_merc_true", + "global": true, + "effect": [ { "u_spawn_npc": "follower_mercenary", "real_count": 1, "min_radius": 2, "max_radius": 3 } ] + }, + { + "type": "effect_on_condition", + "id": "defense_mode_money_add", + "global": true, + "effect": [ { "math": [ "wave_cash", "=", "wave_cash_number * -1000" ] } ] + }, + { + "type": "effect_on_condition", + "id": "defense_mode_money_add_npc", + "global": false, + "condition": { "not": { "npc_has_var": "u_got_money", "type": "general", "context": "trade", "value": "yes" } }, + "effect": [ + { "u_spend_cash": { "global_val": "wave_cash" } }, + { "npc_add_var": "u_got_money", "type": "general", "context": "trade", "value": "yes" } + ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_CONTROL", + "recurrence": "1 day", + "global": true, + "effect": [ + { "u_teleport": { "global_val": "your_spawnpoint" } }, + { "arithmetic": [ { "global_val": "var", "var_name": "wave_number" }, "+=", { "const": 1 } ] }, + { "math": [ "wave_cash_number", "++" ] }, + { "u_message": "Welcome to wave !", "type": "bad", "popup": false }, + { "run_eocs": [ "defense_mode_money_add", "DEFENSE_MODE_WAVE_SPECIAL_DECIDER" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPECIAL_DECIDER", + "global": true, + "//": "This is used to decide for special waves, like shadow spawns and ultimate victory.", + "condition": { + "or": [ + { "compare_num": [ { "global_val": "var", "var_name": "wave_number" }, "==", { "const": 5 } ] }, + { "compare_num": [ { "global_val": "var", "var_name": "wave_number" }, "==", { "const": 15 } ] }, + { "compare_num": [ { "global_val": "var", "var_name": "wave_number" }, "==", { "const": 30 } ] }, + { "compare_num": [ { "global_val": "var", "var_name": "wave_number" }, "==", { "const": 50 } ] } + ] + }, + "effect": [ + { + "run_eocs": [ + "DEFENSE_MODE_WAVE_SPECIAL_FERALS", + "DEFENSE_MODE_WAVE_SPECIAL_RATKIN", + "DEFENSE_MODE_WAVE_SPECIAL_MILITARY", + "DEFENSE_MODE_WAVE_SPECIAL_SHADOW" + ] + } + ], + "false_effect": [ { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK", + "//": "Fallback case which runs until something spawns.", + "effect": [ + { + "weighted_list_eocs": [ + [ "DEFENSE_MODE_WAVE_SPAWN_ZOMBIES", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_SPECIAL_ZOMBIES", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_SPIDERS", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_ROBOTS", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_TRIFFIDS", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_SUBSPACE", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_DINOS", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_LIZARDFOLK", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_GOLEMS", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_GOBLINS", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_ORCS", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_MEGAFAUNA", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_PSYCHICS", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_CANDY", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_MYTHOS", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_EXODII", { "const": 1 } ], + [ "DEFENSE_MODE_WAVE_SPAWN_XEDRA", { "const": 1 } ] + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_ZOMBIES", + "condition": { "math": [ "regular_zombies_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_VANILLA_ONLY_HUMANS", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_VANILLA_ONLY_HUMANS", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_VANILLA_ONLY_HUMANS", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_SPECIAL_ZOMBIES", + "condition": { "math": [ "special_zombies_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_ZOMBIE", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_ZOMBIE", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_ZOMBIE", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_SPIDERS", + "condition": { "math": [ "spiders_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_SPIDER_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_SPIDER_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_SPIDER_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_ROBOTS", + "condition": { "math": [ "robots_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_ROBOT_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_ROBOT_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_ROBOT_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_TRIFFIDS", + "condition": { "math": [ "triffids_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_TRIFFID_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_TRIFFID_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_TRIFFID_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_SUBSPACE", + "condition": { "math": [ "subspace_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_NETHER_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_NETHER_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_NETHER_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPECIAL_FERALS", + "condition": { "compare_num": [ { "global_val": "var", "var_name": "wave_number" }, "==", { "const": 5 } ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_FERAL", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_FERAL", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_FERAL", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_message": "You hear the wild howls of crazed individuals and unintelligible, carnal gibberish and slavering cries. Something is coming, and it doesn't have your best interest in mind.", + "type": "bad", + "popup": true + } + ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPECIAL_RATKIN", + "condition": { "compare_num": [ { "global_val": "var", "var_name": "wave_number" }, "==", { "const": 15 } ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_RATKIN_EVOLVED", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_RATKIN_EVOLVED", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_RATKIN_EVOLVED", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_message": "Squeaking and chittering can be heard nearby, with the pattering of many feet, like a swarm of rats travelling quickly. However, this sounds more, organized? Almost like they're all walking in formation.", + "type": "bad", + "popup": true + } + ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPECIAL_MILITARY", + "condition": { "compare_num": [ { "global_val": "var", "var_name": "wave_number" }, "==", { "const": 30 } ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_MIL_HELIPAD", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_MIL_HELIPAD", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_MIL_HELIPAD", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_message": "You hear crazed, half-pronounced orders screamed from afar. The tamping of boots and off-beat shouts of two-three-four sound like the signs of an approaching army, but all the footfall is out of tune.", + "type": "bad", + "popup": true + } + ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPECIAL_SHADOW", + "condition": { "compare_num": [ { "global_val": "var", "var_name": "wave_number" }, "==", { "const": 50 } ] }, + "effect": [ + { "u_spawn_monster": "mon_boss_shadow", "real_count": 1, "outdoor_only": true, "min_radius": 20, "max_radius": 40 }, + { + "u_message": "Your vision flickers with black, blob-like creatures for a moment. An intense feeling of paranoia washes over you, as if the world itself is now out to kill you, the night itself reaching for your mind to rip it apart. Somethings wicked comes this way, and it wants you dead.", + "type": "bad", + "popup": true + } + ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_FORTRESS_TRAP", + "//": "Keeps you from running away from your hideout.", + "global": true, + "recurrence": 100, + "condition": { + "or": [ + { "u_near_om_location": "field", "range": 0 }, + { "u_near_om_location": "forest", "range": 0 }, + { "u_near_om_location": "forest_thick", "range": 0 }, + { "u_near_om_location": "lake_shore", "range": 0 }, + { "u_near_om_location": "lake_surface", "range": 0 } + ] + }, + "effect": [ + { "u_message": "You can't leave your fortress behind!", "type": "bad", "popup": false }, + { "u_teleport": { "global_val": "your_spawnpoint" } } + ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WIN_SCREEN", + "global": true, + "recurrence": 100, + "condition": { "math": [ "final_wave_defeated", "==", "1" ] }, + "effect": [ { "open_dialogue": { "topic": "TALK_DEFENSE_MODE_WIN" } } ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_QUEUE_WIN_SCREEN", + "effect": [ { "math": [ "final_wave_defeated", "=", "1" ] } ] + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_RANDOM_EVENT", + "recurrence": [ "2 days", "4 days" ], + "//": "A general EOC for selecting a random event. Can and should be expanded.", + "condition": { "and": [ { "not": { "is_weather": "portal_storm" } }, { "x_in_y_chance": { "x": 7, "y": 10 } } ] }, + "effect": [ + { + "weighted_list_eocs": [ + [ "EOC_DEFENSE_MODE_RANDOM_NPC", { "const": 10 } ], + [ "EOC_DEFENSE_MODE_RANDOM_NPC_ROBBER", { "const": 6 } ], + [ "EOC_DEFENSE_MODE_BANDIT_ATTACK", { "const": 1 } ] + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DEFENSE_MODE_RANDOM_NPC", + "effect": [ { "u_spawn_npc": "random_survivor", "outdoor_only": true, "real_count": 1, "min_radius": 15, "max_radius": 40 } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DEFENSE_MODE_RANDOM_NPC_ROBBER", + "effect": [ + { + "u_spawn_npc": "random_survivor_nefarious", + "outdoor_only": true, + "real_count": 1, + "min_radius": 15, + "max_radius": 40 + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DEFENSE_MODE_BANDIT_ATTACK", + "effect": [ { "u_spawn_npc": "defense_mode_raider", "outdoor_only": true, "real_count": 5, "min_radius": 15, "max_radius": 25 } ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/game_win.json b/data/Mainline_mods/Mods/Defense_Mode/game_win.json new file mode 100644 index 000000000..d86bc8737 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/game_win.json @@ -0,0 +1,15 @@ +[ + { + "type": "talk_topic", + "id": "TALK_DEFENSE_MODE_WIN", + "dynamic_line": "&Through all your struggles, you have won the day against the unknown. Do you wish to struggle more, or rest in your triumph.", + "responses": [ + { "text": "I wish to rest in my triumph, and let the struggle end.", "topic": "TALK_DONE", "effect": [ "u_die" ] }, + { + "text": "I will continue on and face oblivion, even if it costs me my life and limb.", + "topic": "TALK_DONE", + "effect": { "math": [ "final_wave_defeated", "=", "0" ] } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/items.json b/data/Mainline_mods/Mods/Defense_Mode/items.json new file mode 100644 index 000000000..426246906 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/items.json @@ -0,0 +1,16 @@ +[ + { + "type": "GENERIC", + "id": "mercenary_contract", + "name": { "str": "service contract" }, + "description": "A slip of paper signed by the issuer and the recipient, detailing the terms of service of a hiring contract.", + "price": 0, + "price_postapoc": 0, + "weight": "1 g", + "volume": "1 ml", + "to_hit": -3, + "color": "white", + "symbol": "$", + "material": [ "paper" ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mapgen/hospital.json b/data/Mainline_mods/Mods/Defense_Mode/mapgen/hospital.json new file mode 100644 index 000000000..8608ba4b7 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mapgen/hospital.json @@ -0,0 +1,133 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "dm_hospital_3", "dm_hospital_2", "dm_hospital_1" ], + [ "dm_hospital_6", "dm_hospital_5", "dm_hospital_4" ], + [ "dm_hospital_9", "dm_hospital_8", "dm_hospital_7" ] + ], + "weight": 250, + "object": { + "fill_ter": "t_dirt", + "rows": [ + "_______________________________________________________########;########", + "_______________________________________________________#...cT#...#Tc...#", + "_:__=_:__=_:__=_:____=____:__=_:__=_:__=_:__=_:__=_:___#BB...+...+...BB#", + "_:____:____:____:_________:____:____:____:____:____:___#BB...+...+...BB#", + "_:____:____:____:_________:____:____:____:____:____:___#....l#...#l....#", + "_:____:____:____:_________:____:____:____:____:____:___#######...#######", + "_:____:____:____:_________:____:____:____:____:____:___#....l#...#l....#", + "_:____:____:____:_________:____:____:____:____:____:___#BB...+...+...BB#", + "_______________________________________________________#BB...+...+...BB#", + "####################//####xxxxxxxxxxxxxxxxxxxxxxxxxx#;;#...cT#...#Tc...#", + "#&#&#&#&#&#sssss#.........TbbbbTbbbbTbbbbTbbbbTbbbbT#``#######...#######", + "#.#.#.#.#.#.....#..................................b#``#...cT#...#Tc...#", + "#+#+#+#+#+#.....+..................................b#``#BB...+...+...BB#", + "#...............+..................................b#``#BB...+...+...BB#", + "#...............#..................................b#``#....l#...#l....#", + "#################F........xCCCCCCCCCx..............T#``#######...#######", + "#...............#.........x.c.c.c.c.x..............b#``#....l#...#l....#", + "#...............+........./.........x..............b#``#BB...+...+...BB#", + "#+#+#+#+#+#.....+........./.........x..............b#``#BB...+...+...BB#", + "#.#.#.#.#.#.....#.........x.........x..............b#``#...cT#...#Tc...#", + "#&#&#&#&#&#sssss#.D.....F.#rr###+####.DF.TbbbbTbbbbT#``#######///#######", + "####################//########r....d#################``#l.rrr#...#rrr.l#", + "#...ll...x...ll...x....#SSSTf#r...cd#s.&#&.s#s.&#&.s#``#l....!...!....l#", + "#.TB..BT.x.TB..BT.x....#.....+.....L#...#...#...#...#``#l.rrr#...#rrr.l#", + "#r.B..B.rxr.B..B.rx....#########!#####+###+###+###+##;;#######...#######", + "#r......rxr......rx....................................................#", + "#xxx//xxxxxxx//xxxx....................................................;", + "#......................................................................#", + "#......................####################...#######;;#######...#######", + "#......................x...........l#8....#...#rrr.l#``#l.rrr#...#rrr.l#", + "#....................../.....A..BT.l#8....!...!....l#``#l....!...!....l#", + "#....................../.....?..B..r#88888#...#rrr.l#``#l.rrr#...#rrr.l#", + "#5.....................x...........r#######///#######``#######///#######", + "##X#################///##############...cT#...#Tc...#``#...cT#...#Tc...#", + "#H.......H#.......l#...x...........l#BB...+...+...BB#``#BB...+...+...BB#", + "#H.......H#r.TBBT..#.../.....TBBT...#BB...+...+...BB#``#BB...+...+...BB#", + "#H.......H#r..BB...#.../......BB...r#....l#...#l....#``#....l#...#l....#", + "#H.......H#........#...x...........r#######...#######``#######...#######", + "###########xxx//xxx#...##############....l#...#l....#``#....l#...#l....#", + "#l........x............x...........R#BB...+...+...BB#``#BB...+...+...BB#", + "#R.TB..A../............/.....6.....R#BB...+...+...BB#``#BB...+...+...BB#", + "#R..B..?../............/.....*.....R#...cT#...#Tc...#``#...cT#...#Tc...#", + "#.........x............x.......22..R#######...#######``#######...#######", + "###########xxx//xxx#...##############...cT#...#Tc...#``#...cT#...#Tc...#", + "#..KKKKK..#........#...x...........r#BB...+...+...BB#``#BB...+...+...BB#", + "#N........#r..BB...#.../......BB...r#BB...+...+...BB#``#BB...+...+...BB#", + "#Y.......8#r.TBBT..#.../.....TBBT...#....l#...#l....#``#....l#...#l....#", + "#...TT...8#.......l#...x...........l#######...#######``#######...#######", + "#######!#############///#############....l#...#l....#``#....l#...#l....#", + ";``````````````````;....bbb.bbb.bbb.#BB...+...+...BB#``#BB...+...+...BB#", + ";``````````````````;...............b#BB...+...+...BB#``#BB...+...+...BB#", + "######;;############...............b#...cT#...#Tc...#``#...cT#...#Tc...#", + "#&..#....LLLLLLLLLL#...............b#######...#######``#######...#######", + "#...+..............!................#...cT#...#Tc...#``#...cT#...#Tc...#", + "#..s#.....bbb.rrrr.#...............b#BB...+...+...BB#``#BB...+...+...BB#", + "#####....###########...............b#BB...#...+...BB#``#BB...#...+...BB#", + "#kddd...C#d..ddd..d#...............b#....l#...#l....#``#....l#...#l....#", + "w..c....C#dc..c..cd#................#######///#######;;#######///#######", + "#.......C#d.......d#.............................................#88888#", + "w........+.........!.............................................!....8#", + "#SSSSSS.f#lllkkkrrr#.............................................#....8#", + "####################xxxxxxxxxxxx///x##+###+###+###+##;;#######///#######", + "x...................................#...#...#...#...#``#...cT#...#Tc...#", + "x..bbbb..bbbb..bbbb..bbbb..bbbb....4#s.&#&.s#s.&#&.s#``#BB...+...+...BB#", + "x..TTTT..TTTT..TTTT..TTTT..TTTT....4#################``#BB...+...+...BB#", + "x..bbbb..bbbb..bbbb..bbbb..bbbb....4#44444#ssss#ssss#``#....l#...#l....#", + "x...................................#...............#``#######...#######", + "x..bbbb..bbbb..bbbb..bbbb..bbbb.....+......99999999.;``#....l#...#l....#", + "x..TTTT..TTTT..TTTT..TTTT..TTTT.....+......99999999.;``#BB...+...+...BB#", + "x..bbbb..bbbb..bbbb..bbbb..bbbb.....#...............#``#BB...+...+...BB#", + "x...............................444.#44444#oooo#ffff#``#...cT#...#Tc...#", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#######################;;#################" + ], + "palettes": [ "hospital" ], + "terrain": { "5": "t_floor", "H": "t_floor", "X": [ "t_door_metal_locked", "t_door_metal_elocked" ], "=": "t_pavement" }, + "furniture": { "H": "f_locker" }, + "vendingmachines": { "D": { "item_group": "vending_drink", "lootable": true }, "F": { "item_group": "vending_food", "lootable": true } }, + "computers": { + "5": { + "name": "Medical Supply Access", + "security": 2, + "options": [ { "name": "Unlock Door", "action": "unlock" } ], + "failures": [ { "action": "shutdown" }, { "action": "alarm" } ] + }, + "6": { + "name": "Centrifuge", + "options": [ { "name": "Analyze blood", "action": "blood_anal" } ], + "failures": [ { "action": "destroy_blood" } ] + } + }, + "vehicles": { "=": { "vehicle": "pickup_corpses", "chance": 10, "rotation": 270, "status": 1 } }, + "nested": { "=": { "chunks": [ [ "null", 70 ] ] } }, + "items": { + "b": { "item": "magazines", "chance": 50 }, + "B": { "item": "hospital_bed", "chance": 80 }, + "f": { "item": "SUS_fridge_breakroom", "chance": 90 }, + "d": { "item": "office", "chance": 80 }, + "C": { "item": "office", "chance": 20 }, + "S": { "item": "bed", "chance": 60 }, + "r": { "item": "hospital_medical_items", "chance": 30 }, + "R": { "item": "hospital_lab", "chance": 70 }, + "l": { "item": "surgery", "chance": 80 }, + "L": { "item": "allclothes", "chance": 90 }, + "8": { "item": "cleaning", "chance": 70 }, + "9": { "item": "produce", "chance": 40 }, + "T": { "item": "snacks", "chance": 50 }, + "2": { "item": "hospital_samples", "chance": 50 }, + "k": { "item": "doctors_books", "chance": 60 }, + "K": { "item": "hospital_oxygen", "chance": 85 }, + "H": [ + { "item": "harddrugs", "chance": 60 }, + { "item": "gear_medical", "chance": 60, "repeat": [ 1, 3 ] }, + { "item": "drugs_analgesic", "chance": 60, "repeat": [ 1, 3 ] }, + { "item": "drugs_rare", "chance": 60 }, + { "item": "surgery", "chance": 60 } + ] + } + } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mapgen/mansion.json b/data/Mainline_mods/Mods/Defense_Mode/mapgen/mansion.json new file mode 100644 index 000000000..e971b81c0 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mapgen/mansion.json @@ -0,0 +1,2783 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_e1d" ], + "//": "basement road_alt, wild 1, 0, -1.", + "weight": 1000, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " #### ", + "####### #!.####", + "......# #.!#.!!", + "...!!.############......", + "...!!.#]]]]...#..#......", + "......#]......+..+......", + ".....!#)..??..#..#......", + ".!!...#]..??..#..#......", + ".!!..!#]......#..#......", + "......#].qq.q.#<<#......", + "###++##############++###" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { " ": "t_soil", ".": "t_thconc_floor", "]": "t_sewage_pipe", ")": "t_sewage_pump" }, + "furniture": { "?": "f_generator_broken", "!": [ "f_crate_c", "f_cardboard_box" ] }, + "items": { + ".": { "item": "clutter_basement" }, + "!": { "item": "crate_stack", "chance": 100 }, + "q": { "item": "tool_common_stack", "chance": 100 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_e1u" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~#oo#~~~", + "#oooo##~~~~~~~~~~#>>##o#", + " yy #~~~~~~~~~~#++# ", + " ##oo#oo#oo## ", + " ---- |T && | ---- ", + " ---- |R H----E | ---- ", + "M --M|x H-l--l + -- M", + "M --M|x H-l--E | -- M", + " -- |R ------ | -- ", + " c | aa T| c ", + "###++##############++###" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + "~": "t_open_air", + "=": "t_open_air_rooved", + "|": "t_wall_r", + "-": "t_carpet_red", + "H": "t_carpet_red", + "E": "t_carpet_red", + "l": "t_carpet_red" + }, + "furniture": { "&": "f_sofa" }, + "items": { " ": { "item": "clutter_mansion", "chance": 2 }, "c": { "item": "suit_of_armor", "chance": 100 } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_e2d" ], + "weight": 1000, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "####### #######", + "0...xY# #.-h--.", + "5.J...# #.-==-.", + "1.JA..############.h==h.", + "3.JA..#--h-..ÆsÆ.#.--h-.", + "?.JA...-==-..A.A.......!", + "###....h==h......--h-..x", + "..#A...-h--......h==-..!", + "..#....A.........-==h...", + "..#.Øs.Øy##++##..-h--..Y", + "..########....##########", + ".....................+.U", + "...........<<........+.U", + "###++##############++###" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + " ": "t_soil", + ".": "t_thconc_floor", + "0": "t_thconc_floor", + "-": "t_carpet_concrete_red", + "h": "t_carpet_concrete_red", + "=": "t_carpet_concrete_red" + }, + "furniture": { "=": "f_table", "?": "f_glass_fridge", "!": "f_speaker_cabinet" }, + "place_loot": [ { "item": "stereo", "x": 23, "y": 16, "chance": 100 }, { "item": "television", "x": 4, "y": 11, "chance": 100 } ], + "items": { + ".": { "item": "clutter_basement" }, + "=": { "item": "table_card", "chance": 40 }, + "J": { "item": "wetbar_counter", "chance": 30 }, + "?": { "item": "wetbar_fridge", "chance": 80 }, + "1": { "item": "wetbar_stack", "chance": 100 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_e2" ], + "//": "updated", + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "........[.````p[........", + "...!!.....````.....!!...", + "..!!!!..[.%``%.[..!!!!..", + ".!!??!!...%``%...!!??!!.", + ".!!??!!.[.%``%.[.!!??!!.", + "..!!!!....%``%....!!!!..", + "...!!...[.%``%.[...!!...", + "..........%``%..........", + "......&~~&~~~~&~~&......", + "%%%%%%~~~~~~~~~~~~%%%%%%", + "#oooo##~~~~~~~~~~##oooo#", + "s T#~~~~~~~~~~#E E", + "H----E#~~~~~~~~~~#s----s", + "H----s##oo#**#oo##E----E", + "H----E|y -- y| ---- ", + " -- ", + " -- ", + " --------- -- --------- ", + " --------- -- --------- ", + " -- ", + "MM MM| |<<| |MM MM", + "||++|||c |||| c|||++||", + " ||c >> c|| ", + "| |||||||||| |" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_landscaping_palette" ], + "terrain": { "?": "t_water_pool_shallow_outdoors", "~": "t_thconc_floor", "&": "t_column", "-": "t_carpet_red" }, + "items": { + " ": { "item": "clutter_mansion" }, + ".": { "item": "clutter_yard" }, + "s": { "item": "table_foyer", "chance": 40 }, + "c": { "item": "suit_of_armor", "chance": 100 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_e2u" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~%%%%%%%%%%%%~~~~~~", + "~~~~~~%__________%~~~~~~", + "#oooo##__________##oooo#", + "T && Y#__________#T yy T", + " -ss-&)__________) --Es ", + " ----&##oo#oo#oo## ---H ", + " ---- %==========% -l-H ", + " ---- %==========% E--H ", + " ---- %==========% ---- ", + " ---- %==========% ---- ", + " ---- %%%%%==%%%%% ---- ", + " ---- c %==% c ---- ", + " ---- %>>% ---- ", + " ---------------------- ", + "Y y TyrIyT y Y", + "###++##############++###" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "=": "t_open_air_rooved", + "-": "t_carpet_red", + "H": "t_carpet_red", + "E": "t_carpet_red", + "l": "t_carpet_red", + "_": "t_concrete", + ")": "t_door_glass_c", + "%": "t_railing", + "s": "t_carpet_red" + }, + "furniture": { "&": "f_sofa" }, + "items": { + " ": { "item": "clutter_mansion" }, + "c": { "item": "suit_of_armor", "chance": 10 }, + "s": { "item": "table_foyer", "chance": 40 }, + "l": { "item": "table_foyer", "chance": 40 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t1d" ], + "weight": 700, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + "### ###", + ".z# #U.", + ".q# #z.", + "### ###", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { " ": "t_soil", ".": "t_thconc_floor" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t1" ], + "//": "updated", + "weight": 700, + "object": { + "fill_ter": "t_floor", + "rows": [ + "#.......%%%``%%%.......#", + "......````````````......", + ".....``````````````.....", + "...%%``````````````%%...", + "...%%```~~~~~~~~```%%...", + "````````~~~~~~~~````````", + "````````~~~~~~~~````````", + "...%%```~~~~~~~~```%%...", + "...%%₸``~~~~~~~~```%%...", + ".....```~~~~~~~~```.....", + ".....₸``~~~~~~~~```j....", + ".....```~~~~~~~~```j....", + ".....₸``~~~~~~~~```j....", + ".....```~~~~~~~~```.....", + ".....```~~~~~~~~```.....", + ".....``````&```````.%...", + ")))%%````````````````%))", + ".%)%%%````````````%%`%)%", + ".%)%%%%#K #%%%`%)%", + "..)))))#K GK G #)))]))%", + "...%%%.#K G G #.%%`%%.", + ".......#K a #.......", + ".......##########.......", + "........................" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_landscaping_palette" ], + "terrain": { + "&": "t_concrete", + "₸": "t_concrete", + ")": "t_privacy_fence", + "]": "t_privacy_fencegate_c", + "~": "t_water_pool_outdoors" + }, + "furniture": { "&": "f_dive_block" }, + "items": { + "j": { "item": "pool_side", "chance": 30 }, + ".": { "item": "clutter_yard" }, + "a": { "item": "fireplace_fill", "chance": 30 }, + "K": { "item": "wetbar_counter", "chance": 20 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t1u" ], + "weight": 700, + "object": { + "fill_ter": "t_floor", + "rows": [ + "#~~~~~~~~~~~~~~~~~~~~~~#", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "%%~~~~~~~~~~~~~~~~~~~~%%", + "_%~~~~~~~~~~~~~~~~~~~~%_", + "_%~~~~~~~~~~~~~~~~~~~~%_", + "%%~~~~~~~~~~~~~~~~~~~~%%", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~``````````~~~~~~~", + "~~~~~~~``````````~~~~~~~", + "~~~~~~~``````````~~~~~~~", + "~~~~~~~``````````~~~~~~~", + "~~~~~~~``````````~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { "~": "t_open_air", "`": "t_shingle_flat_roof", "%": "t_railing", "_": "t_floor_noroof" }, + "place_loot": [ { "item": "lawn_dart", "x": [ 7, 16 ], "y": [ 18, 22 ], "chance": 40, "repeat": [ 1, 2 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t2d" ], + "weight": 800, + "//": "secret room variant", + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "#!!!!..#...............#", + "WZ.z...+................", + "z......#................", + "!!....!##########+###...", + ".....KKKKK#!!#------#...", + ".....KKKKK#z.#-?---T#...", + ".......GHE#..+----hN#...", + "........HE#q.#-----N#...", + "........H.####I-----####", + ".]]]].....#KK#rh-----%%%", + ".].)].....+.K#r--A-----%", + "....]]]...+..#--&&&&---%", + ".!!...]...#ww#T---A--%%%", + "###########/############", + " ########.######### ", + " #..........dbD.$.# ", + " #.=@@-------.....# ", + " #.=@@--h----..fE.# ", + " #.=@@-------.Ef..# ", + " #................# ", + " ################## ", + " ", + " ", + " " + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + " ": "t_soil", + ".": "t_thconc_floor", + "]": "t_sewage_pipe", + ")": "t_sewage_pump", + "N": "t_carpet_concrete_green", + "-": "t_carpet_concrete_green", + "r": "t_carpet_concrete_green", + "I": "t_carpet_concrete_green", + "T": "t_carpet_concrete_green", + "h": "t_carpet_concrete_green", + "&": "t_carpet_concrete_green", + "?": "t_carpet_concrete_green", + "A": "t_carpet_concrete_green", + "@": "t_carpet_concrete_green", + "/": "t_door_locked_interior", + "%": "t_carpet_concrete_green" + }, + "furniture": { + "%": "f_rack_wood", + "=": "f_bed", + "!": [ "f_crate_c", "f_cardboard_box" ], + "&": "f_table", + "$": [ "f_shackle", "f_null" ], + "?": "f_mannequin" + }, + "items": { + "%": [ + { "item": "SUS_tailoring_materials", "chance": 80, "repeat": [ 3, 6 ] }, + { "item": "leather_shop_repair", "chance": 40, "repeat": [ 2, 4 ] } + ], + "&": [ + { "item": "SUS_tailoring_materials", "chance": 50, "repeat": [ 1, 2 ] }, + { "item": "SUS_tailoring_fasteners", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "leather_shop_repair", "chance": 40, "repeat": [ 2, 4 ] } + ], + "?": [ + { "item": "pants", "chance": 100 }, + { "item": "shirts", "chance": 100 }, + { "item": "leather_shop_accessories", "chance": 10 } + ], + "r": [ + { "item": "SUS_tailoring_tool_drawer", "chance": 60, "repeat": [ 0, 1 ] }, + { "item": "tailorbooks", "chance": 60, "repeat": [ 0, 1 ] }, + { "item": "SUS_tailoring_fasteners", "chance": 30, "repeat": [ 2, 6 ] } + ], + ".": { "item": "clutter_basement" }, + "=": { "item": "sex_lair", "chance": 25, "repeat": [ 2, 4 ] }, + "!": { "item": "crate_stack", "chance": 100 }, + "D": { "item": "sex_lair", "chance": 55, "repeat": [ 2, 6 ] }, + "d": { "item": "sex_lair", "chance": 55, "repeat": [ 2, 6 ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t2" ], + "weight": 1100, + "object": { + "fill_ter": "t_floor", + "rows": [ + "| |", + " ", + " |||||||| |||||||| ", + " |zDbD T| |z IIIT| ", + " | d| |d h D| ", + " |Ih s| |s b| ", + " |I d| |d D| ", + "|||||||+||| ||+||||||||", + "9==S8S| |T | |S8S|t|9", + "|=====+ + + +=======", + "B=====| |h h| |=======", + "B==|||| ||||| |||||BBB", + "B=t|rrr YT|by rrr|BBB", + "#o##rh | hr##o#", + "%%%# ----s|s----- Y#%%%", + "%%%#x -i))@|@))--- #%%%", + "%.%#x -i))@|@))--- #%.%", + "...#x -i))@|@))--- #...", + "...#y ----s|s----- E#...", + "...#T | yHHHl#...", + "...##oooo######oooo##...", + "........%%%%%%%%........", + "........................", + "........................" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom", "standard_domestic_landscaping_palette" ], + "terrain": { "=": "t_linoleum_gray", "i": "t_carpet_red", "-": "t_carpet_red", ")": "t_carpet_red" }, + "furniture": { ")": "f_bed" }, + "place_loot": [ { "item": "television", "x": 4, "y": 16, "chance": 100 } ], + "items": { + ")": { "item": "bed", "chance": 40 }, + "-": { "item": "clutter_bedroom", "chance": 2 }, + " ": { "item": "clutter_bedroom", "chance": 2 }, + ".": { "item": "clutter_yard" }, + "=": { "item": "clutter_bathroom", "chance": 10 }, + "I": { "item": "vanity", "chance": 40 }, + "s": { "item": "nightstand", "chance": 40 }, + "d": { "item": "dresser_stack", "chance": 100 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t2" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "| |", + " ", + " ||||||||||||+||||| ", + " |DD|dd|@ @| | D| ", + " | | |@ @| + D| ", + " ||+|+|| | + d| ", + " + | 6| | d| ", + " | | 6| |||| ", + "||||||| |H 6| |8S||||", + "S8S8QQ| |H | |======", + "======+ |v | +=====B", + "B==|||| |||&|| ||||t=B", + "B=t|@@I RR|RR rrr|8=B", + "#o##@),,,, | hr##o#", + "%%%#@),,,, + ,,,,,, #%%%", + "%%%# ,,,,, | ,,,,,,I#%%%", + "%.%# ,,,,,≠|x,,,,))@#%.%", + "...# ,,,,)@|x,,,,))@#...", + "...#≠,,,,)@|x,,,,))@#...", + "...#T I@@|T Ey I#...", + "...##oooo######oooo##...", + "........%%%%%%%%........", + "........................", + "........................" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom", "standard_domestic_landscaping_palette" ], + "terrain": { "=": "t_linoleum_gray", ")": "t_carpet_red", ",": "t_carpet_red", "&": "t_door_metal_locked" }, + "furniture": { ")": "f_bed" }, + "items": { + "v": { "item": "mansion_safe", "chance": 100 }, + ",": { "item": "clutter_bedroom", "chance": 2 }, + " ": { "item": "clutter_bedroom", "chance": 2 }, + ".": { "item": "clutter_yard" }, + "=": { "item": "clutter_bathroom", "chance": 10 }, + ")": { "item": "bed", "chance": 40 }, + "R": { "item": "mansion_bookcase", "chance": 100 }, + "6": { "item": "panic_room", "chance": 65, "repeat": [ 2, 6 ] }, + "I": { "item": "nightstand", "chance": 40 }, + "d": { "item": "dresser_stack", "chance": 100 } + }, + "place_loot": [ + { "group": "corpse_mansion", "x": [ 10, 12 ], "y": [ 5, 7 ], "chance": 50, "repeat": [ 0, 2 ] }, + { "item": "television", "x": 12, "y": 17, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t2u" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "|Yt,|BBQY| |d II|8,t|", + ",,,8|,,,,| |d A|8,,Q", + "B,,S|,,,,+ b|d |S,,B", + "B,,8|t8S8| y|TD |8,,B", + "||+|||||||| |||||+||+||", + " rI|d + + D| b T", + " ---h-r|d + + D| y", + "I-----r|||| ||||I ", + "&@@--- |TE I|&&&i x", + "&@@--- |H EI|&&&i x", + "&@@---d|H------I|&&&i ", + "I-----D|l------ |I A ", + "E b d| ------ |R rrI", + "#o##o##| -@@@@- |##o##o#", + "~~~``^#T -@@@@- E#^``~~~", + "~~~```# -@@@@- b#```~~~", + "~~~```# yI&&&&I y#```~~~", + "~~~```##oo####oo##```~~~", + "~~~``````````````````~~~", + "~~~``````````````````~~~", + "~~~``````````````````~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "-": "t_carpet_purple", + "@": "t_carpet_purple", + "h": "t_carpet_purple", + ",": "t_linoleum_gray", + "Y": "t_linoleum_gray", + "`": "t_shingle_flat_roof", + "|": "t_wall_r" + }, + "furniture": { "&": "f_bed" }, + "place_loot": [ + { "item": "laptop", "x": 6, "y": 6, "chance": 50 }, + { "item": "laptop", "x": 15, "y": 9, "chance": 50 }, + { "item": "stereo", "x": 23, "y": 8, "chance": 20 }, + { "item": "television", "x": 23, "y": 9, "chance": 100 } + ], + "items": { + "-": { "item": "clutter_bedroom", "chance": 2 }, + " ": { "item": "clutter_bedroom", "chance": 2 }, + ",": { "item": "clutter_bathroom", "chance": 15 }, + "I": { "item": "vanity", "chance": 30 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t2d" ], + "weight": 1000, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "#.HHHiHH#.....Y#.PP.%..#", + ".&&&.i..[...........[...", + ".&&&....[...........%...", + "%%%%%%%%%......%%%%%%...", + "...............[.≠₸.%...", + ".............!!%...E%...", + "........#!!..!!#..El%...", + "#%%#%%[###%%%%###%%%#%%#", + ".nT%!!..#.!!...#!z!.%...", + "...[!...%.!!...%!!..%...", + "x..%!...%......%....[..c", + "WZ.%...!%q...!!%..z!%.!!", + ".J.#...!#q...!!#..!!#.!!", + "#####%[###%[%%###[%#####", + " #....#......#...q# ", + " #...............q# ", + " #]]]....}}.......# ", + " #..]....}}...=.=.# ", + " #..)]]...........# ", + " #....]........ggg# ", + " ################## ", + " ", + " ", + " " + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + " ": "t_soil", + ".": "t_thconc_floor", + "]": "t_sewage_pipe", + ")": "t_sewage_pump", + "[": "t_chaingate_c", + "%": "t_chainfence" + }, + "furniture": { "&": "f_table", "=": "f_machinery_old", "}": "f_generator_broken", "!": [ "f_crate_c", "f_cardboard_box" ] }, + "items": { + ".": { "item": "clutter_basement" }, + "!": { "item": "crate_stack", "chance": 100 }, + "H": { "item": "mansion_ammo", "chance": 40 }, + "x": { "item": "a_television", "chance": 100 }, + "c": { "item": "suit_of_armor", "chance": 100 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t2u" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "| |", + " ", + " ", + " ||||+||--&---||+|||| ", + " | xx |R----R| rrr| ", + " | |R--&-R| hr| ", + " |I |R----R| | ", + " |@@@ |||aa||| I| ", + "|||@@@ r||||x i@@@|||", + "d |@@@ hr|t9|x i@@@|dd", + "b |I r|,,|x i@@@| ", + "d || ||+||| || D", + "D + ElE +,,,,+ + D", + "#o###ooo##8,,8##ooo###o#", + "~~~`````^#S,,S#^`````~~~", + "~~~``````#8BB8#``````~~~", + "~~~``````#oooo#``````~~~", + "~~~``````````````````~~~", + "~~~``````````````````~~~", + "~~~``````````````````~~~", + "~~~``````````````````~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "-": "t_carpet_yellow", + "&": "t_carpet_yellow", + "R": "t_carpet_yellow", + ",": "t_linoleum_gray", + "Y": "t_linoleum_gray", + "`": "t_shingle_flat_roof", + "|": "t_wall_r" + }, + "furniture": { "&": "f_armchair" }, + "place_loot": [ + { "item": "laptop", "x": 9, "y": 9, "chance": 50 }, + { "item": "laptop", "x": 20, "y": 4, "chance": 50 }, + { "item": "stereo", "x": 4, "y": 4, "chance": 100 }, + { "item": "television", "x": 14, "y": 9, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t4d" ], + "weight": 1100, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "#6666..F#......#.].#..]#", + "6...6..F#........]....].", + "6...6..F#........]]]])].", + "6......F#..........)]]].", + "#####+####+##...........", + "............#...........", + "............#..=........", + "#############...........", + "..P000000.&&#...........", + "0.....A.....#..#|[|#|||#", + "0..%%%%%%...+..|........", + "0......A....#..|...!!..q", + "...000000..L#..|...!!...", + "################.....###", + " #!..!!.# ", + " #!!.!!.# ", + " ##!...## ", + " ###### ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + " ": "t_soil", + ".": "t_thconc_floor", + "]": "t_sewage_pipe", + ")": "t_sewage_pump", + "[": "t_chaingate_c", + "|": "t_chainfence" + }, + "furniture": { "%": "f_rack_wood", "&": "f_table", "!": [ "f_cardboard_box", "f_crate_c" ], "=": "f_machinery_old" }, + "items": { + "%": { "item": "wines_worthy", "chance": 70, "repeat": [ 1, 2 ] }, + "!": { "item": "crate_stack", "chance": 100 }, + "0": { "item": "keg_wine", "chance": 100 }, + "&": { "item": "table_wine", "chance": 100, "repeat": [ 1, 4 ] }, + ".": { "item": "clutter_basement" } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t4" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "66645n53|Ty y )xx) El", + "6=6====2|M E", + "6=6====1|M ", + "6======Y| ", + "|+|||==|||+|| -h-- ", + " |F===YY===| -ff- ", + " |F=======6|J hffh ", + " |F=JJJJJ=6|J hffh ", + " |F========|J hffh H x", + " |=12OJO123| hffh H a", + " ||||||||||| hffh H x", + " + hffh ", + " + hffh ", + "#oo##oo##oo#### -ff- ###", + "...%%..%%...%%o --h- o%%", + "...%%..%%...%%oy yo%%", + ".............%##ciic##%.", + ".........[...%%#oooo#%%.", + "...[.........[%%%..%%%..", + "........................", + ".......[................", + ".....................[..", + "............[...........", + "........................" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_kitchen", "standard_domestic_landscaping_palette" ], + "terrain": { + "-": "t_carpet_purple", + "f": "t_carpet_purple", + "h": "t_carpet_purple", + "=": "t_linoleum_gray", + "Y": "t_linoleum_gray" + }, + "furniture": { ")": "f_speaker_cabinet" }, + "place_loot": [ { "item": "stereo", "x": 18, "y": 0, "chance": 100 } ], + "items": { + ".": { "item": "clutter_yard" }, + " ": { "item": "clutter_mansion" }, + "J": { "item": "table_sideboard", "chance": 35 }, + "x": { "item": "table_livingroom", "chance": 35 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t4u" ], + "weight": 1100, + "object": { + "fill_ter": "t_floor", + "rows": [ + "# #", + " ", + " ||||++|||||||||||||| ", + " |d | |8S8S8|======| ", + " |b + |,,,,,|======| ", + " |D | +,,,,,|======| ", + " |||| ||+|BB|======| ", + " |I T|t|BB|======| ", + "oo#@@@ E#o#oo#======#oo", + "``#@@@ x#````#======#``", + "``#@@@ #````#======#``", + "``#I h o````:======:``", + "``# y rIr#````#======#``", + "``##oooo##````:======:``", + "~~~~~~~~~~~~~~#======#~~", + "~~~~~~~~~~~~~~#======#~~", + "~~~~~~~~~~~~~~##====##~~", + "~~~~~~~~~~~~~~~#::::#~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { "~": "t_open_air", "=": "t_open_air_rooved", "|": "t_wall_g", ",": "t_linoleum_gray", "`": "t_shingle_flat_roof" }, + "place_loot": [ { "item": "laptop", "x": 7, "y": 12, "chance": 100 }, { "item": "television", "x": 8, "y": 9, "chance": 100 } ], + "items": { + " ": { "item": "clutter_bedroom", "chance": 2 }, + "y": { "item": "stash_drugs", "chance": 20 }, + ",": { "item": "clutter_bathroom", "chance": 10 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t5d" ], + "weight": 400, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "#`:---------b#t#t#9#9#t#", + "Y`:--}-}-}--b#+#+#```#``", + "``]---------b#```````+``", + "``]---------##```iii`###", + "``:---------#S```````#UU", + "``:`$``--`?`#8`Y#%%%%#..", + "``:````--```#S``###+##..", + "``:`$``--`?`#8``###.####", + "###````--```###+##.....<", + "###`$``-----bb--##.....<", + "####```---------##ss####", + " #####Y`iiii`Y##### ", + " ########## ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + " ": "t_soil", + ".": "t_thconc_floor", + "]": "t_door_glass_c", + "-": "t_carpet_concrete_purple", + "}": "t_carpet_concrete_purple", + "b": "t_carpet_concrete_purple", + "`": "t_linoleum_gray", + "$": "t_linoleum_gray", + "i": "t_linoleum_gray", + "%": "t_linoleum_gray", + "Y": "t_linoleum_gray", + "?": "t_linoleum_gray" + }, + "furniture": { + "}": [ "f_treadmill", "f_treadmill_mechanical" ], + "?": "f_exercise", + "%": "f_locker", + "$": [ "f_ergometer", "f_ergometer_mechanical" ] + }, + "items": { + "-": { "item": "clutter_gym", "chance": 1 }, + "i": { "item": "clutter_gym", "chance": 40 }, + "`": { "item": "clutter_gym", "chance": 2 }, + "%": { "item": "locker_gym", "chance": 40 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t5" ], + "//": "updated", + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "Y y |Uz| |UU|rrrrr T", + "r N| + |w + -?- H", + "rE AN|||| |||| --- H", + "rrr Y|y y|Y El", + "||||+||| ------ ||||+|||", + " --&&h- ", + " -h&&h- ", + "||||| | -h&&-- | |||||", + "< |R R -h&&h- R R| >", + "< зR R -h&&h- R Rз >", + "####R R ------ R R####", + "%%%#####yT Ty#####%%%", + "%%..%%%##oooooo##%%%..%%", + "......%%%%!!!!%%%%......", + "........................", + "...........[............", + "........................", + "........................", + "....[.............[.....", + "...........[............", + "........................", + ".........[............[.", + "........................", + "........................" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_landscaping_palette" ], + "terrain": { "-": "t_carpet_green", "?": "t_carpet_green", "&": "t_carpet_green", "h": "t_carpet_green", "з": "t_door_locked" }, + "furniture": { "&": "f_table" }, + "place_loot": [ + { "item": "laptop", "x": 19, "y": 0, "chance": 100 }, + { "item": "laptop", "x": 0, "y": 2, "chance": 100 }, + { "item": "television", "x": 0, "y": 3, "chance": 100 }, + { "item": "television", "x": 18, "y": 0, "chance": 100 } + ], + "items": { + ".": { "item": "clutter_yard" }, + " ": { "item": "clutter_mansion" }, + "r": { "item": "art", "chance": 20 }, + "R": { "item": "mansion_bookcase", "chance": 100 }, + "&": { "item": "mansion_bookcase", "chance": 20 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t5u" ], + "weight": 400, + "object": { + "fill_ter": "t_floor", + "rows": [ + "#BB|y h T| YIrrI|BB#", + "t,,| IrI |E h |,,t", + ",,,| E|R |,,8", + "S8,| R| ---- +,,S", + "||+|+|? ))|I----R| ||||", + " ||||||)@@--x|b ", + " |V ∞|)@@--x|b ", + "||||||V ∞|)@@--x| ||||", + "> +& ∞|I----R| + ", + "> |& h | ---- |Ddd", + "#### NNYT|T HHs y####", + "~~~##o##o######o##o##~~~", + "~~~~~~~``````````~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "-": "t_carpet_purple", + "@": "t_carpet_purple", + "|": "t_wall_b", + ",": "t_linoleum_gray", + "`": "t_shingle_flat_roof" + }, + "furniture": { ")": "f_bed", "&": "f_locker", "?": "f_dresser" }, + "place_loot": [ { "item": "television", "x": 16, "y": 6, "chance": 100 } ], + "items": { + " ": { "item": "clutter_bedroom", "chance": 2 }, + ",": { "item": "clutter_bathroom", "chance": 10 }, + ")": { "item": "bed", "chance": 30 }, + "?": { "item": "dresser_servant", "chance": 100 }, + "&": { "item": "mansion_guns", "chance": 50, "repeat": [ 2, 3 ] }, + "∞": { "item": "mansion_guns", "chance": 50, "repeat": [ 2, 3 ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t6d" ], + "weight": 1000, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "#----E#`````````Z#.G!!.#", + "P--r--+`````````Z#G.!!KK", + "P-Er--#h`````W``Z#HGG!KK", + "P--r-T#&`&&``W``J#HxG...", + "#######h`&&``W``S#H.....", + "Ywwww`#``&&`````J#......", + "J`A```+``````````+......", + "J`````#`````UUUY`#......", + "##++################++##", + ".......!!!..............", + "........!!.??.........!!", + ".!!........??.........!!", + ".!!!!...#......#...!!...", + "###!!.]]]].........!!.##", + " #...])#].....#..##### ", + " #...]..]]]]]...q# ", + " #####.....)]...ʭ# ", + " #...=..]...q# ", + " ###....].#### ", + " ######## ", + " ", + " ", + " ", + " " + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + " ": "t_soil", + ".": "t_thconc_floor", + "]": "t_sewage_pipe", + ")": "t_sewage_pump", + "-": "t_carpet_concrete_purple", + "E": "t_carpet_concrete_purple", + "r": "t_carpet_concrete_purple", + "T": "t_carpet_concrete_purple", + "P": "t_carpet_concrete_purple", + "`": "t_linoleum_white", + "Z": "t_linoleum_white", + "A": "t_linoleum_white", + "w": "t_linoleum_white", + "S": "t_linoleum_white", + "J": "t_linoleum_white", + "Y": "t_linoleum_white", + "U": "t_linoleum_white", + "W": "t_linoleum_white", + "&": "t_linoleum_white", + "h": "t_linoleum_white" + }, + "furniture": { "&": "f_table", "!": [ "f_cardboard_box", "f_crate_c" ], "=": "f_machinery_old", "?": "f_generator_broken" }, + "items": { + ".": { "item": "clutter_basement", "chance": 1 }, + "`": { "item": "clutter_basement", "chance": 1 }, + "&": { "item": "laundry", "chance": 30, "repeat": [ 0, 4 ] }, + "J": { "item": "laundry", "chance": 30, "repeat": [ 0, 4 ] }, + "!": { "item": "crate_stack", "chance": 100 }, + "x": { "item": "a_television", "chance": 100 } + }, + "place_vehicles": [ { "vehicle": "laundry_cart", "x": [ 14, 15 ], "y": [ 0, 6 ], "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t6" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "|MTiiiy |T ∞|", + " + ~~E~~~ ", + " | ~rrr~~M", + " ||||||||||||| ~~~~~~M", + " Y|IIIdddbddd | ~E~~E~ ", + " i|Ih + ", + " i|I DDbDDD | ", + " y| y|||||||| TRRRRv", + "|||||+|||s@@@@s|++||||||", + "t|8S8=| @@@@ |8S8|t", + "======+ --))))-- +=====", + "======| --))))-- |=====", + "9|====|x-------- d|BBB|9", + "###BBB|x-------- I|BBB##", + "%%oBBB| -------- d#ooo#%", + "%%oBBB| -HH--HH- #%%%%%", + ".%#ooo# -H----H- yo.....", + "..%%%%# #.....", + "......###yxaaxy####.....", + ".......%#oo##oo#%.......", + "........%%%%%%%%........", + "..X..................X..", + "........................", + "........................" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom", "standard_domestic_landscaping_palette" ], + "terrain": { + "~": "t_carpet_green", + "-": "t_carpet_yellow", + "H": "t_carpet_yellow", + ")": "t_carpet_yellow", + "r": "t_carpet_green", + "E": "t_carpet_green", + "=": "t_linoleum_gray" + }, + "furniture": { ")": "f_bed" }, + "items": { + ".": { "item": "clutter_yard" }, + "-": { "item": "clutter_bedroom", "chance": 2 }, + " ": { "item": "clutter_mansion" }, + "=": { "item": "clutter_bathroom", "chance": 10 }, + "a": { "item": "fireplace_fill", "chance": 30 }, + ")": { "item": "bed", "chance": 30 }, + "∞": { "item": "mansion_guns", "chance": 20 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t6u" ], + "weight": 1000, + "object": { + "fill_ter": "t_carpet_green", + "rows": [ + "|8S|T≠ dd | |UU|8,,|BB|", + "9,,|E + | w|S,,+,,,", + "t,,+ ≠| | w|8,,|,,t", + "||||s &| + w|S,,||||", + " |&& s&| |qq|8,,| ", + " |||||||| |||||+|| ", + " ", + " ", + "||||+||||||||||||||+||||", + "v|b--?x?|======|r------I", + "d+------|======|rh---@@@", + "z+-----h|======|r----@@@", + "d|D-----|======|Ø------I", + "###-@@@-|======|D--HHy##", + "~~#-@@@-|======||+#ooo#~", + "~~#I@@@I|======|zd#~~~~~", + "~~##ooo##======####~~~~~", + "~~~~~~``#======#```~~~~~", + "~~~~~~``#======#```~~~~~", + "~~~~~~~~#::##::#~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "=": "t_open_air_rooved", + "|": "t_wall_y", + "-": "t_carpet_green", + "&": "t_floor", + "s": "t_floor", + "d": "t_floor", + " ": "t_floor", + "z": "t_floor", + "≠": "t_floor", + "T": "t_floor", + "q": "t_floor", + "E": "t_floor", + "v": "t_floor", + "U": "t_floor", + "w": "t_floor", + ",": "t_linoleum_gray", + "`": "t_shingle_flat_roof", + "%": "t_railing" + }, + "furniture": { "&": "f_bed", "?": "f_speaker_cabinet" }, + "place_loot": [ { "item": "laptop", "x": 16, "y": 10, "chance": 100 }, { "item": "stereo", "x": 6, "y": 9, "chance": 100 } ], + "items": { + "-": { "item": "clutter_bedroom", "chance": 3 }, + " ": { "item": "clutter_mansion" }, + "v": { "item": "mansion_guns", "chance": 30 }, + ",": { "item": "clutter_bathroom", "chance": 10 }, + "D": { "item": "dresser_servant", "chance": 45 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t7d" ], + "weight": 1000, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "#--xxxx--#----#EY.!!r??#", + "---------#----#...!!r?!!", + "---------+----+....1.?.!", + "---------+----#.........", + "--sHHHHs-#---J#&&.......", + "---------#<--J#&&.......", + "--HHsHHH-#<--m#.........", + "---------######!!.......", + "--HHHsHH-# #!!..iii..", + "---------# ##....!!!.", + "--HHsHHs-# #.h...!!!.", + "---------# #&&&......", + "---------# #&&&cn..&≠", + "########## ##########", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + " ": "t_soil", + ".": "t_thconc_floor", + "x": "t_carpet_concrete_yellow", + "-": "t_carpet_concrete_yellow", + "H": "t_carpet_concrete_yellow", + "s": "t_carpet_concrete_yellow", + "J": "t_carpet_concrete_yellow", + "m": "t_carpet_concrete_yellow" + }, + "furniture": { "&": "f_table", "!": [ "f_cardboard_box", "f_crate_c" ], "?": "f_sofa" }, + "items": { + "-": { "item": "clutter_mansion" }, + ".": { "item": "clutter_basement" }, + "x": { "item": "a_television", "chance": 100 }, + "J": { "item": "fridgesnacks", "chance": 45 }, + "!": { "item": "crate_stack", "chance": 100 }, + "m": { "item": "vending_food", "chance": 40 }, + "s": { "item": "snacks_fancy", "chance": 35 }, + "n": { "item": "mansion_ammo", "chance": 40 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t7" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "| )xxx)| | PPrrrY|", + " h | | h ", + " &&h A + + ", + "h&& + + ", + " h | | ", + " AJ|> <| ", + " A AJ|> <|R E ", + " J##oo##R --‡--- ", + "s ee A#!!!!#x --‡---c", + "H ee Ø#!%%!#a --‡≠-- ", + "H ee o!%%!#x --‡--- ", + "H o!%%!#R ‡‡l--- ", + "HHs Æ#!%%!#R yyyy T", + "##ooooo###!!!!###ooooo##", + ".%%%%%%%........%%%%%%%.", + "........................", + "..........[........[....", + "........................", + ".....[......[...........", + "........................", + ".................[......", + "....[...................", + "........[...........[...", + "........................" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom", "standard_domestic_landscaping_palette" ], + "terrain": { "-": "t_carpet_green", "l": "t_carpet_green", "≠": "t_carpet_green", "‡": "t_carpet_green" }, + "furniture": { "‡": "f_sofa", "&": "f_table", ")": "f_speaker_cabinet" }, + "items": { + ".": { "item": "clutter_yard" }, + " ": { "item": "clutter_mansion" }, + "l": { "item": "mansion_bookcase", "chance": 100 }, + "&": { "item": "table_card", "chance": 35 }, + "c": { "item": "suit_of_armor", "chance": 100 } + }, + "place_loot": [ + { "item": "stereo", "x": 6, "y": 0, "chance": 100 }, + { "item": "dnd_handbook", "x": 1, "y": 2, "chance": 100 }, + { "item": "novel_fantasy", "x": [ 2, 2 ], "y": [ 3, 5 ], "chance": 60, "repeat": [ 0, 4 ] }, + { "item": "character_sheet", "x": [ 1, 2 ], "y": [ 2, 3 ], "chance": 80, "repeat": [ 1, 5 ] }, + { "item": "metal_RPG_die", "x": 2, "y": 3, "chance": 10 }, + { "item": "RPG_die", "x": [ 1, 2 ], "y": [ 2, 3 ], "chance": 90, "repeat": [ 1, 4 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_t7u" ], + "weight": 1000, + "object": { + "fill_ter": "t_carpet_green", + "rows": [ + "#--h----F| |t,S|UUww|", + "-hffh---J| ||+|||++||", + "--ff----J| ", + "--h-----J| iii ", + "||||||+||| %%%%%%%%% ", + " >%======% ", + " >%======% ", + "||+||||||##oo##======%%%", + "L---HHHHT#~~~~#=========", + "y------H-#~~~~#=========", + "--E-ll--yo~~~~#=========", + "--------ro~~~~#=========", + "RR-xxx--r#~~~~#=========", + "##ooooo###~~~~###:::::##", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "=": "t_open_air_rooved", + "|": "t_wall_b", + "U": "t_floor", + ",": "t_linoleum_gray", + "w": "t_floor", + "-": "t_carpet_green", + "%": "t_railing" + }, + "place_loot": [ { "item": "microwave", "x": 8, "y": 2, "chance": 100 }, { "item": "television", "x": 4, "y": 12, "chance": 100 } ], + "items": { + "-": { "item": "clutter_mansion", "chance": 3 }, + "F": { "item": "fridgesnacks", "chance": 45 }, + "f": { "item": "wetbar_stack", "chance": 100 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+1d" ], + "weight": 1000, + "object": { + "fill_ter": "t_dirt", + "rows": [ + "#......................#", + "#......................#", + "#......................#", + "#...################...#", + "#...# #...#", + "#...# #...#", + "#...# #...#", + "#...# #...#", + "#...# #...#", + "#...# #...#", + "#...# #...#", + "+...# #...+", + "+...# #...+", + "#...# #...#", + "#...# #...#", + "##### #####", + "# #", + "# #", + "# #", + "# #", + "# #", + "# #", + "# #", + "# #" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { " ": "t_soil", ".": "t_thconc_floor" }, + "items": { ".": { "item": "clutter_basement" } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+1" ], + "//": "updated", + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "# ₸Ky y₸K #", + "#i i#", + "#i yyy yyy i#", + "#i #::::#::::#::::# i#", + "# #..............# #", + "o :..............: o", + "o y:.%%%%....%%%%.:y o", + "# y:.%....jj....%.:y #", + "#i :.%..........%.: i#", + "#i #.%...````...%.# i#", + "#i :....``~~``....: i#", + "+ &`````~~~~`````& +", + "+ &`````~~~~`````& +", + "# :....``~~``....: #", + "#CCC#.%...````...%.#CCC#", + "#:::#.%.X..``..X.%.#:::#", + "#.....%....``....%.....#", + "o.....%%%%.``.%%%%.....o", + "o..........``..........o", + "#....[.....``.....[....#", + "#..........``..........#", + "#..........``..........#", + "#..........``..........#", + "#..........``..........#" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_landscaping_palette" ], + "terrain": { "&": "t_door_glass_c", "~": "t_water_pool_shallow_outdoors" }, + "furniture": { "@": [ "f_statue", "f_statue", "f_statue", "f_null", "f_null" ] }, + "items": { + " ": { "item": "clutter_mansion" }, + ".": { "item": "clutter_yard" }, + "C": { "item": "garden_shed", "chance": 40 }, + "G": { "item": "snacks_fancy", "chance": 20 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+1u" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor_noroof", + "rows": [ + "#ii :__yGGKKGGy__: ii#", + "#i )____________) i#", + "#i :____________: i#", + "#:)::#%%%%%%%%%%%%#::):#", + "#___%~~~~~~~~~~~~~~%___#", + "o___%~~~~~~~~~~~~~~%___o", + "o___%~~~~~~~~~~~~~~%___o", + "#___%~~~~~~~~~~~~~~%___#", + "#___%~~~~~~~~~~~~~~%___#", + "#___%~~~~~~~~~~~~~~%___#", + "#___%~~~~~~~~~~~~~~%___#", + "+___%~~~~~~~~~~~~~~%___+", + "+___%~~~~~~~~~~~~~~%___+", + "#___%~~~~~~~~~~~~~~%___#", + "#__y%~~~~~~~~~~~~~~%y__#", + "#%%%%~~~~~~~~~~~~~~%%%%#", + "#~~~~~~~~~~~~~~~~~~~~~~#", + "o~~~~~~~~~~~~~~~~~~~~~~o", + "o~~~~~~~~~~~~~~~~~~~~~~o", + "#~~~~~~~~~~~~~~~~~~~~~~#", + "#~~~~~~~~~~~~~~~~~~~~~~#", + "#~~~~~~~~~~~~~~~~~~~~~~#", + "#~~~~~~~~~~~~~~~~~~~~~~#", + "#~~~~~~~~~~~~~~~~~~~~~~#" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { "~": "t_open_air", "_": "t_floor_noroof", " ": "t_floor", "i": "t_floor", ")": "t_door_glass_c", "%": "t_railing" }, + "items": { " ": { "item": "clutter_mansion" } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+2d" ], + "weight": 900, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "#...........]..#&&.....#", + "#......]....]..#&&.....#", + "#zz....].)]]]..#......!#", + "#zz....]]]].]..#!....!!#", + "#...........)..#...!!H!#", + "#!!...??.......+...!hH.#", + "#!!...??..=....#...iiHd#", + "#............R.#....v!d#", + "####+###########....hhc#", + "#.....WO#--$rrr#&&...gh#", + "#.!....Z#--/--r#&&.....#", + "#.......#-----r#.......+", + "#.....!!#----/$#!......+", + "#.....!!#------#!!.....#", + "#G......#----T$#!!...U.#", + "#Hz....E#%#########+####", + "#H.....c#qq.UU.=.......#", + "#......Y#..............#", + "#.!!....#.........&&..=#", + "#.!!....+.....&&..&&..J#", + "#ee.HH..#.....&&......J#", + "#ee..!!.#zz...&&......J#", + "#eehh!!.#zz.......JJJJJ#", + "###########++###########" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { + " ": "t_soil", + ".": "t_thconc_floor", + "]": "t_sewage_pipe", + ")": "t_sewage_pump", + "-": "t_carpet_concrete_red", + "$": "t_carpet_concrete_red", + "r": "t_carpet_concrete_red", + "/": "t_carpet_concrete_red", + "%": "t_door_metal_locked" + }, + "furniture": { + "&": "f_table", + "/": "f_chair", + "!": [ "f_cardboard_box", "f_crate_c" ], + "=": "f_machinery_old", + "?": "f_generator_broken", + "$": "f_gunsafe_ml" + }, + "items": { + "$": { "item": "mansion_safe", "chance": 100 }, + ".": { "item": "clutter_basement" }, + "!": { "item": "crate_stack", "chance": 100 }, + "&": { "item": "snacks_fancy", "chance": 40 }, + "U": { "item": "home_hw", "chance": 25 }, + "J": { "item": "hardware_bulk", "chance": 30 }, + "q": { "item": "hardware_plumbing", "chance": 40 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+2" ], + "//": "updated", + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "| hhh h |", + "||| |||", + "|h||| |||?|", + "|&&U| ;;;;;;;;; |? ?|", + "|&& | ;-;-;-;-; | h?|", + "|hh |h ;;-;-;-;; | hh|", + "|&& |h ;-;-;-;-; | hh|", + "|&& |h ;;-;-;-;; h| hh|", + "| |h ;-;-;-;-; h| h|", + "||++| ;;-;-;-;; h|+|||", + "| h ;-;-;-;-; |", + "+ ff ;;-;-;-;; +", + "+ hffh ;-;-;-;-; +", + "| ;;-;-;-;; |", + "|||+| ;;;;;;;;; |+|||", + "|8==| hffh |==8|", + "|S==|cy ff ffh yc|==S|", + "|8==||| hh ffh |||==8|", + "|S===Y||| hh |||Y===S|", + "|8=====| |=====8|", + "||+|+|+| |+|+|+||", + "|==|=|=| |=|=|==|", + "|t=|t|t| |t|t|=t|", + "|||||||||||++|||||||||||" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom", "standard_domestic_landscaping_palette" ], + "terrain": { "=": "t_linoleum_gray", "Y": "t_linoleum_gray", "-": "t_floor_waxed_y", ";": "t_floor_waxed" }, + "furniture": { "&": "f_table", "?": "f_cardboard_box" }, + "items": { + " ": { "item": "clutter_ballroom" }, + "h": { "item": "clutter_ballroom", "chance": 20 }, + "=": { "item": "clutter_ballroom", "chance": 3 }, + "?": { "item": "dining", "chance": 45 }, + "f": { "item": "table_ballroom", "chance": 35 }, + "c": { "item": "suit_of_armor", "chance": 100 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+2u" ], + "weight": 900, + "object": { + "fill_ter": "t_floor", + "rows": [ + "# %============% #", + "# %============% #", + "# %%============%% #", + "# %==============% G#", + "# %==============% K#", + "# %==============% G#", + "# %==============% #", + "# %==============% #", + "#G %==============% #", + "#K %==============% G#", + "#G %==============% K#", + "+ %==============% G+", + "+ %==============% +", + "# %==============% #", + "#G %==============% #", + "#K %==============% #", + "#G %==============% #", + "# %%%==========%%% #", + "# %%%%%%%%%%%% #", + "# #", + "# #", + "# ₸ ₸ ₸ ₸ ₸ ₸ #", + "# #", + "###########++###########" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { "~": "t_open_air", "=": "t_open_air_rooved", "%": "t_railing" }, + "items": { " ": { "item": "clutter_mansion" }, "K": { "item": "wetbar_counter", "chance": 35 } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+2d" ], + "weight": 800, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "#.....JJJJ#$.#cEEʭØ....#", + "#........J#..+w........#", + "#....&&..J#..#R!!......#", + "#....&&..J####.!z....!!#", + "#q.A.&&...#..#∞......!!#", + "#q...&&.A.+.q#......&&&#", + "#q........#.q#H..!....A#", + "#........N####H......ee#", + "#.z....h.N#qm#H!H....ee#", + "#z.......N#..#.!H...!ee#", + "#####+######+#####+#####", + "#......................+", + "#......................+", + "#######+###..###+#######", + "#........U#..#.....q.=.#", + "#.!!.....U#..#.........#", + "#.!!......#..#]]]]]....#", + "#......!!.#..#....]).).#", + "#!!....!!.#..+....]]]]]#", + "#!!.......#..#......]..#", + "#.....!!!.#..#.??......#", + "#.....!!!.#..#.??.....q#", + "#.UUU.....#..#......UU.#", + "###########++###########" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { " ": "t_soil", ".": "t_thconc_floor", "]": "t_sewage_pipe", ")": "t_sewage_pump" }, + "furniture": { + "&": "f_table", + "=": "f_machinery_old", + "?": "f_generator_broken", + "!": [ "f_cardboard_box", "f_crate_c" ], + "$": "f_gunsafe_ml" + }, + "items": { + "$": { "item": "mansion_gunsafe", "chance": 100 }, + ".": { "item": "clutter_basement" }, + "!": { "item": "crate_stack", "chance": 100 }, + "J": { "item": "hardware_plumbing", "chance": 35 }, + "&": { "item": "hardware_bulk", "chance": 30 }, + "N": { "item": "construction_worker", "chance": 35 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+3" ], + "//": "updated", + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "# |=jjjYS8S| |", + "# |========|F ‡ |", + "# |+|==|+|=|| |", + "# |9|??|t|=== & |", + "#| |||||||||||| |", + "# :i з |", + "#i `-```}```-` :i |", + "#i `-```````-` :i з |", + "#i `-```````-` : |", + "#i `-```-```-` #:):::|", + "# ``-`````-`` |", + "+ ```-----``` +", + "+ ``````````` +", + "# ----------- |", + "#i ``````````` |", + "#i ```-----``` |", + "#i ``-`````-`` |", + "#i `-```-```-` |", + "# `-```````-` |", + "#i `-```````-` ||||||", + "#i `-```}```-` |qUUz|", + "#i + w|", + "#i | zw|", + "#||||||||||++|||||||||||" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "♣": "t_floor", + "}": "t_backboard_in", + "'": "t_backboard", + "-": "t_floor_waxed_y", + "`": "t_floor_waxed", + "=": "t_linoleum_gray", + "Y": "t_linoleum_gray", + "j": "t_linoleum_gray", + ")": "t_door_glass_c" + }, + "furniture": { + "з": [ "f_treadmill", "f_treadmill_mechanical" ], + "&": "f_exercise", + "?": "f_locker", + "‡": [ "f_ergometer", "f_ergometer_mechanical" ] + }, + "place_nested": [ { "chunks": [ [ "5x5_sauna_W", 100 ] ], "x": 18, "y": 14 } ], + "items": { + "i": { "item": "clutter_gym", "chance": 30 }, + "j": { "item": "sauna", "chance": 35 }, + "=": { "item": "clutter_gym", "chance": 2 }, + "z": { "item": "crate_sports", "chance": 100 }, + "?": { "item": "locker_gym", "chance": 45 }, + "`": { "item": "clutter_gym" }, + "F": { "item": "vending_drink", "chance": 45 }, + "w": { "item": "sports", "chance": 35 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+3u" ], + "weight": 800, + "object": { + "fill_ter": "t_floor", + "rows": [ + "# #", + "# #", + "# iiii iiii iiii #", + "# #", + "#%%%%%%%%%%%%%%%%% #", + "#================% #", + "#================% i #", + "#================% i #", + "#================% i #", + "#================% i #", + "#================% #", + "#================% i +", + "#================% i +", + "#================% i #", + "#================% i #", + "#================% #", + "#================% i #", + "#================% i #", + "#================% i #", + "#================% i #", + "#================% #", + "#=========%%%%%%%% #", + "#=========% #", + "#####oo####++###########" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { "=": "t_open_air_rooved", "%": "t_railing" }, + "items": { " ": { "item": "clutter_mansion" }, "i": { "item": "snacks_fancy", "chance": 20 } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+4d" ], + "weight": 1000, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "#....#.!!#t`S#r--------#", + "#....#..!#```#&h-r-----#", + "#....#...#```#r-h&r---r#", + "#..####+###+##&h-r&h-h&#", + "#............#r-h&r---r#", + "#............#---r&h-h&#", + "#..##+#####..+----r---r#", + "#..#......#..#---------#", + "#..#wwqUUU#..#JFJY-----#", + "#..########..########++#", + "#..# #..# #..#", + "+..# #..# #..+", + "+..# #..# #..+", + "#### #..# ####", + "# #..# #", + "# #..# #", + "# #..# #", + "# #..# #", + "# #..# #", + "# #..# #", + "# #..# #", + "# #..# #", + "# #..# #", + "###########++###########" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + " ": "t_soil", + ".": "t_thconc_floor", + "`": "t_linoleum_gray", + "-": "t_carpet_concrete_yellow", + "h": "t_carpet_concrete_yellow", + "&": "t_carpet_concrete_yellow", + "r": "t_carpet_concrete_yellow", + "J": "t_carpet_concrete_yellow", + "F": "t_carpet_concrete_yellow", + "Y": "t_carpet_concrete_yellow" + }, + "furniture": { "!": [ "f_cardboard_box", "f_crate_c" ], "&": "f_console_broken", "?": "f_glass_fridge" }, + "items": { + "t": { "item": "harddrugs", "chance": 30 }, + ".": { "item": "clutter_basement" }, + "J": { "item": "vending_food", "chance": 25 }, + "?": { "item": "fridgesnacks", "chance": 45 }, + "!": { "item": "crate_stack", "chance": 100 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+4" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "# y |Uq| #", + "# | | -E--- #", + "# ------- ||+| l----H #", + "# -h-h--- | | E--l-H #", + "# ------- ---l-H #", + "# -rrr--- -----H #", + "# Y-h---- ----- #", + "# -???- #", + "#R xxx# # y y #", + "####::::::#++#::::::####", + "#~~&%%%%..&~~&..%%%%&~~#", + "+~~~!.....!~~!.....!~~~+", + "+~~~!..X..!~~!..X..!~~~+", + "#~~&!!!!!!&~~&!!!!!!&~~#", + "#!`````````~~`````````!#", + "#!.........~~.........!#", + ":.........&~~&.........:", + ":..........~~..........:", + ":..........~~..........:", + ":.........&~~&.........:", + ":..........~~..........:", + "#..........~~..........#", + "#.........&~~&.........#", + "##:::::::##++##:::::::##" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_landscaping_palette" ], + "terrain": { + "&": "t_column", + "-": "t_carpet_green", + "?": "t_carpet_green", + "h": "t_carpet_green", + "r": "t_carpet_green", + "Y": "t_carpet_green", + "E": "t_carpet_green", + "l": "t_carpet_green", + "~": "t_thconc_floor" + }, + "furniture": { "?": "f_sofa" }, + "items": { + " ": { "item": "clutter_mansion" }, + ".": { "item": "clutter_yard" }, + "x": { "item": "medieval", "chance": 20 }, + "l": { "item": "mansion_bookcase", "chance": 100 }, + "q": { "item": "garden_shed", "chance": 40 } + }, + "place_nested": [ + { + "chunks": [ + [ "roof_6x6_garden_4", 30 ], + [ "roof_6x6_garden_2", 30 ], + [ "greenhouse_6x6_herbal", 50 ], + [ "greenhouse_6x6_vegetable", 50 ], + [ "pond_6x6", 40 ] + ], + "x": 3, + "y": 15 + }, + { + "chunks": [ + [ "roof_6x6_garden_4", 30 ], + [ "roof_6x6_garden_2", 30 ], + [ "greenhouse_6x6_herbal", 50 ], + [ "greenhouse_6x6_vegetable", 50 ], + [ "pond_6x6", 40 ] + ], + "x": 15, + "y": 15 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_+4u" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "# # lHHHHl # #", + "#R -- &----& -- R#", + "#M -- &----& -- M#", + "#R -- ------ -- R#", + "# y yT# ------ #Ty y #", + "##o++o## y EsE ##o++o##", + "#______##oooooo##______#", + "#______________________#", + "#______________________#", + "#__%%%%%%%%__%%%%%%%%__#", + "#__%~~~~~~%__%~~~~~~%__#", + "+__%~~~~~~%__%~~~~~~%__+", + "+__%~~~~~~%__%~~~~~~%__+", + "#%%%~~~~~~%__%~~~~~~%%%#", + "#~~~~~~~~~%__%~~~~~~~~~#", + "#~~~~~~~~~%__%~~~~~~~~~#", + "#~~~~~~~~~%__%~~~~~~~~~#", + "o~~~~~~~~~%__%~~~~~~~~~o", + "o~~~~~~~~~%__%~~~~~~~~~o", + "#~~~~~~~~~%__%~~~~~~~~~#", + "#~~~~~~~~~%__%~~~~~~~~~#", + "#~~~~~~~~~%__%~~~~~~~~~#", + "#~~~~~~~~~%__%~~~~~~~~~#", + "#####oo####++####oo#####" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "=": "t_open_air_rooved", + "-": "t_carpet_red", + "&": "t_carpet_red", + "_": "t_floor_noroof", + "%": "t_railing" + }, + "furniture": { "&": "f_sofa" }, + "items": { "_": { "item": "clutter_mansion" }, " ": { "item": "clutter_mansion" }, "-": { "item": "clutter_mansion" } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c1d" ], + "weight": 700, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " #####", + " #.Uq#", + " #...#", + " #!!.#", + " #!!.#", + " #...#", + " #.!!#", + " #.!!#", + " #...#", + " #...#", + " #...+", + " #...+", + " #############...#", + " #m]...=].#......#", + " #.]])]]].+......#", + " #........#....qU#", + " ##########++#####" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { " ": "t_soil", ".": "t_thconc_floor", "]": "t_sewage_pipe", ")": "t_sewage_pump" }, + "furniture": { "=": "f_machinery_old", "!": [ "f_crate_c", "f_cardboard_box" ] }, + "items": { + ".": { "item": "clutter_basement" }, + "K": { "item": "crate_stack", "chance": 100 }, + "m": { "item": "hardware_plumbing", "chance": 40 }, + "r": { "item": "pantry", "chance": 25 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c1" ], + "weight": 700, + "object": { + "fill_ter": "t_linoleum_gray", + "rows": [ + "........................", + "........................", + ".......##::::#::::##....", + ".......#y=========y#....", + ".......:=====c=====:%%..", + "......%:==~~===~~==:%%%.", + ".....%%#==~~~~~~~==#%%%.", + ".....###==~~~~~~~==#####", + "....%#y===~~~~~~~=====y#", + "....%:====~~~~~~~=====i#", + "....%:=i==~~~~~~~=====i#", + "....%:=i==~~~~~~~=====i|", + "....%:=i==~~~~~~~=====i|", + "....%:====~~~~~~~=====i|", + "....%#y===~~~~~~~======|", + ".....###==~~~~~~~==||+||", + ".....%%#==~~~~~~~==: |", + "......%:=====&=====: +", + ".......:y==========: +", + ".......#|=||||||:::| |", + ".......:8===+=t|T M|", + ".......:8===|||| M|", + ".......#S===+=9| T|", + ".......########||++|||||" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom", "standard_domestic_landscaping_palette" ], + "terrain": { "=": "t_linoleum_gray", "~": "t_water_pool", "M": "t_floor", "T": "t_floor", " ": "t_floor" }, + "furniture": { "&": "f_dive_block" }, + "items": { + ".": { "item": "clutter_yard" }, + "i": { "item": "pool_side", "chance": 30 }, + "=": { "item": "pool_side", "chance": 2 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c1u" ], + "weight": 700, + "object": { + "fill_ter": "t_floor", + "rows": [ + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~`````````````~~~~", + "~~~~~~~`````````````~~~~", + "~~~~~~~`````````````~~~~", + "~~~~~~~`````````````~~~~", + "~~~~~~~`````````````~~~~", + "~~~~~``####:::::#####o##", + "~~~~~``#===========%³°³#", + "~~~~~``#===========%°³₸#", + "~~~~~``:===========%³°³#", + "~~~~~``:===========%°³₸#", + "~~~~~``:===========%³°³#", + "~~~~~``:===========%°³₸#", + "~~~~~``#===========%³°³#", + "~~~~~``##:::::::::###+##", + "~~~~~~~#TE 15mJ Y#", + "~~~~~~~ol------ JA +", + "~~~~~~~oH---ee- JJJJ +", + "~~~~~~~#H---ee- AAA Æ#", + "~~~~~~~oH---ee- As#", + "~~~~~~~ol------ A Ø#", + "~~~~~~~#TE &xx& #", + "~~~~~~~##########++#####" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "=": "t_open_air_rooved", + "-": "t_carpet_red", + "e": "t_carpet_red", + "`": "t_shingle_flat_roof", + "%": "t_railing", + "³": "t_floor_waxed_y", + "°": "t_floor_waxed", + "₸": "t_floor_waxed" + }, + "furniture": { "&": "f_speaker_cabinet" }, + "place_loot": [ + { "item": "stereo", "x": 13, "y": 22, "chance": 100 }, + { "item": "television", "x": 14, "y": 22, "chance": 100 }, + { "item": "lawn_dart", "x": [ 11, 14 ], "y": [ 4, 6 ], "chance": 100, "repeat": [ 1, 2 ] } + ], + "items": { + " ": { "item": "clutter_mansion" }, + "J": { "item": "wetbar_counter", "chance": 25 }, + "m": { "item": "wetbar_fridge", "chance": 45 }, + "1": { "item": "wetbar_stack", "chance": 100 }, + "l": { "item": "snacks_fancy", "chance": 30 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c2d" ], + "weight": 1000, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ########## ", + " #g.......# ", + " #P.!!.E..# ", + " #..!....h# ", + " #HH......##########", + " #Hh.!!!..#Yn......#", + " #H...!!.........=.#", + " #.....&&...]]]]...#", + " #.!!..&&...].)]...#", + " #.!!.......].]]..!#", + " #&&&.....#.].....!#", + " ####....####....###", + " #......#........#", + " #...!!.#.??.....#", + " #r..!!...??..!..+", + " #r..........!!..+", + " #...........!!..#", + " #6....6.........#", + " #6....6#........#", + " #6.66.6#.....ii.#", + " ##########++#####" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { " ": "t_soil", ".": "t_thconc_floor", "]": "t_sewage_pipe", ")": "t_sewage_pump" }, + "furniture": { "=": "f_machinery_old", "&": "f_table", "?": "f_generator_broken", "!": [ "f_crate_c", "f_cardboard_box" ] }, + "items": { ".": { "item": "clutter_basement" }, "!": { "item": "crate_stack", "chance": 100 } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c2" ], + "//": "updated", + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................", + "..[...................[.", + "........................", + ".....##oo##oo##.........", + "....%# CC5m#..%%..[..", + ".[..%o J #..%%.....", + "....%o JJJJJJ#.........", + "....%# A AAA##oo##oo##", + "....%o |y A T#", + "..[.%oHHHH | ---- #", + "....%#H E + A -ee- #", + "....%oH ll E | -ee-A#", + "....%o |H -ee- #", + "...[%# ) ) |H ----A#", + ".....###xxx|++|H #", + ".......#|||| |lHH cT#", + ".[.....#bbb| |||||+|||#", + "....%%.#з + +", + "....%%.o | +", + ".......o‡ ||+||| ||||#", + "...[...o |===Y| |LLL#", + ".......#& |====| + #", + ".......# b |8S=t| |UUw#", + "....[..##########++#####" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom", "standard_domestic_landscaping_palette" ], + "terrain": { "-": "t_carpet_red", "e": "t_carpet_red", "=": "t_linoleum_gray", "Y": "t_linoleum_gray" }, + "furniture": { + "з": [ "f_treadmill", "f_treadmill_mechanical" ], + "&": "f_exercise", + "‡": [ "f_ergometer", "f_ergometer_mechanical" ], + ")": "f_speaker_cabinet" + }, + "place_loot": [ { "item": "stereo", "x": 8, "y": 14, "chance": 100 }, { "item": "television", "x": 9, "y": 14, "chance": 100 } ], + "items": { + ".": { "item": "clutter_yard" }, + " ": { "item": "clutter_mansion" }, + "x": { "item": "mansion_bookcase", "chance": 100 }, + "&": { "item": "table_card", "chance": 35 }, + "c": { "item": "suit_of_armor", "chance": 100 }, + "C": { "item": "wetbar_counter", "chance": 30 }, + "m": { "item": "wetbar_fridge", "chance": 45 }, + "J": { "item": "wetbar_stack", "chance": 100 }, + "l": { "item": "table_livingroom", "chance": 30 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c2u" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~``````````~~~~~~~~~", + "~~~~~``````````~~~~~~~~~", + "~~~~~``)))))```~~~~~~~~~", + "~~~~~``)))))```~~~~~~~~~", + "~~~~~``)))))``##oo##oo##", + "~~~~~``)))))``#T @@I r#", + "~~~~~``)))))``od @@ r#", + "~~~~~``)))))``o @@ hr#", + "~~~~~``)))))``# #", + "~~~~~``)))))``#≠ xT ER#", + "~~~~~`````````#|+||| ||#", + "~~~~~`````````o,,,S| +d#", + "~~~~~~~###oo###Q,,8| +D#", + "~~~~~~~#INNy ∞|Q,,t|+||#", + "~~~~~~~#r?--- |,,,,| +", + "~~~~~~~or---- +,|BB| +", + "~~~~~~~o ---- |||||| #", + "~~~~~~~o &&&- d| i#", + "~~~~~~~# &&&- + i#", + "~~~~~~~#T@@@I bD| iiT#", + "~~~~~~~##########++#####" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "=": "t_open_air_rooved", + "-": "t_carpet_yellow", + "&": "t_carpet_yellow", + "?": "t_carpet_yellow", + "|": "t_wall_b", + ",": "t_linoleum_gray", + "`": "t_shingle_flat_roof", + ")": "t_glass_roof" + }, + "furniture": { "&": "f_bed", "?": "f_chair" }, + "place_loot": [ + { "item": "laptop", "x": 9, "y": 16, "chance": 100 }, + { "item": "laptop", "x": 22, "y": 9, "chance": 100 }, + { "item": "television", "x": 17, "y": 12, "chance": 100 } + ], + "items": { + "-": { "item": "clutter_bedroom", "chance": 2 }, + " ": { "item": "clutter_bedroom", "chance": 2 }, + ",": { "item": "clutter_bathroom", "chance": 10 }, + "i": { "item": "wetbar_counter", "chance": 30 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c3d" ], + "weight": 500, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ######## ", + " #g..ccc# ", + " ##....Hc#########", + " ###..!!...#.!!K.hG#", + " #....!z.....!!.hGh#", + " #.!!............h.#", + " #.!!..!!!.#==....##", + " #H....zz!.#==....##", + " #HE.......#==...HH#", + " #HE......x#==.....#", + " ####.....###.....##", + " #!!.....#.......#", + " #zz...!!....K...+", + " #.....!!....A...+", + " #r..............#", + " #r.z!.....z....=#", + " #..!z.........z!#", + " #.......#.....!z#", + " ##########++#####" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { " ": "t_soil", ".": "t_thconc_floor" }, + "furniture": { "=": "f_table", "!": [ "f_crate_c", "f_cardboard_box" ] }, + "items": { + ".": { "item": "clutter_basement" }, + "!": { "item": "crate_stack", "chance": 100 }, + "x": { "item": "a_television", "chance": 100 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c3" ], + "//": "updated", + "weight": 500, + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................", + "........................", + "........................", + "........................", + ".......%%......%%.......", + ".....%%%##oooo##%.......", + ".....%%%#y #%%%.....", + "....%%%## h h ###oooo##", + "....%### ))) R| #", + ".....#s ))) R| THHH #", + ".....oH&&E& h R| &&&& #", + ".....oH&&l& + &ll&a#", + ".....oH&&l& + &ll&a#", + ".....oH&&E& R| &&&& #", + ".....#s R| &E&E #", + "....%###RRR RRR| &&&& #", + "....%%%#|||++||||y #", + ".....%%#y R|M +", + "......%# &&&&&&R|M +", + ".......o &r&E&&H|T |||||", + ".......o Er&&&&H| |~~t|", + ".......# &r&E&&R| +~~8|", + ".......#T R| |Y~S|", + ".......##########++|||||" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom", "standard_domestic_landscaping_palette" ], + "terrain": { + "~": "t_linoleum_gray", + "Y": "t_linoleum_gray", + "&": "t_carpet_yellow", + "E": "t_carpet_yellow", + "l": "t_carpet_yellow", + "r": "t_carpet_yellow" + }, + "furniture": { ")": "f_table" }, + "items": { + ".": { "item": "clutter_yard" }, + " ": { "item": "clutter_mansion" }, + "a": { "item": "fireplace_fill", "chance": 30 }, + "R": { "item": "mansion_bookcase", "chance": 100 }, + ")": { "item": "table_livingroom", "chance": 30 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c3u" ], + "weight": 500, + "object": { + "fill_ter": "t_floor", + "rows": [ + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~##::::##~~~~~~~~", + "~~~~~~~~#======#~~~~~~~~", + "~~~~~~~##====%%###oooo##", + "~~~~~###=====%_;|& y T#", + "~~~~~#=======%;₸| ---A #", + "~~~~~:=======%_;| -ee- #", + "~~~~~:=======%;_+ -ee-s#", + "~~~~~:=======%_;|∞-ee-s#", + "~~~~~:=%%%%%%%;₸|s----&#", + "~~~~~#=%_;_;_;_;|s--A-y#", + "~~~~~###;_;_;₸;_|T ys#", + "~~~~~~~#|||+|||||||||||#", + "~~~~~~~# MM MM +", + "~~~~~~~#y ----------- +", + "~~~~~~~oE ---HH-HH--- #", + "~~~~~~~oE ---HH-HH--- M#", + "~~~~~~~#y ----------- M#", + "~~~~~~~# MMTMMy yMMT#", + "~~~~~~~##########++#####" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "=": "t_open_air_rooved", + "-": "t_carpet_green", + "A": "t_carpet_green", + "e": "t_carpet_green", + "H": "t_carpet_green", + "i": "t_carpet_green", + "%": "t_railing", + "|": "t_wall_y", + ")": "t_glass_roof", + "_": "t_floor_waxed_y", + ";": "t_floor_waxed", + "₸": "t_floor_waxed_y" + }, + "furniture": { "&": "f_speaker_cabinet" }, + "place_loot": [ { "item": "stereo", "x": 22, "y": 15, "chance": 100 } ], + "items": { + " ": { "item": "clutter_mansion" }, + "M": { "item": "art", "chance": 100 }, + "s": { "item": "snacks_fancy", "chance": 20 }, + "∞": { "item": "mansion_guns", "chance": 100 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c4d" ], + "weight": 1000, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ############", + " #``UUU``hh&#", + " #``````````#", + " #x`````W``Z#", + " #``&&``W``Z#", + " #``&&``W``Z#", + " #######``&&``W``Z#", + " #...!!#``&&``````#", + " #.....#``````````#", + " #.??..######++####", + " #.??.....#````iii#", + " #......=.#```````+", + " #........+```````+", + " #]]]]....+```````#", + " #...]=...##``##+##", + " #.)]]...!#g``g#.q#", + " #..]....!#g``g#.q#", + " ###########++#####" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + " ": "t_soil", + ".": "t_thconc_floor", + "]": "t_sewage_pipe", + ")": "t_sewage_pump", + "`": "t_linoleum_white", + "Z": "t_linoleum_white", + "A": "t_linoleum_white", + "i": "t_linoleum_white", + "w": "t_linoleum_white", + "x": "t_linoleum_white", + "g": "t_linoleum_white", + "S": "t_linoleum_white", + "J": "t_linoleum_white", + "Y": "t_linoleum_white", + "U": "t_linoleum_white", + "W": "t_linoleum_white", + "&": "t_linoleum_white", + "h": "t_linoleum_white" + }, + "furniture": { "&": "f_table", "!": [ "f_cardboard_box", "f_crate_c" ], "=": "f_machinery_old", "?": "f_generator_broken" }, + "items": { + ".": { "item": "clutter_basement", "chance": 1 }, + "`": { "item": "clutter_basement", "chance": 1 }, + "&": { "item": "laundry", "chance": 30, "repeat": [ 0, 4 ] }, + "U": { "item": "crate_cleaning", "chance": 100 }, + "J": { "item": "laundry", "chance": 30, "repeat": [ 0, 4 ] }, + "!": { "item": "crate_stack", "chance": 100 }, + "x": { "item": "a_television", "chance": 100 } + }, + "place_vehicles": [ { "vehicle": "laundry_cart", "x": [ 13, 18 ], "y": [ 8, 9 ], "chance": 50 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c4" ], + "//": "updated", + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................", + "........................", + "........................", + "........................", + "............%%%.........", + "...........%%%%%%.......", + "..........%%#ooo####ooo#", + "..........%%oBBB==8|ddd#", + "..........%%oBBB==S| y#", + "...........%oBBB==S| I#", + "...........%#||===8| hI#", + "..........%%#t+===|| I#", + "......#######||||=+ D#", + "......#cxxaxx RR|=|hb D#", + "......o |+|||||#", + ".....%o -E--E-- |yMMT#", + ".....%#y------- + #", + "....%%o ------- + +", + "....%%o ------- |i +", + ".....%#y-))))--r|||i ||#", + ".....%o -))))-Er|M + #", + "......o -))))--r|M i| #", + "......#Ts@@@@s T| yi|<#", + "......###########++#####" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom", "standard_domestic_landscaping_palette" ], + "terrain": { "-": "t_carpet_purple", "E": "t_carpet_purple", ")": "t_carpet_purple", "=": "t_linoleum_gray" }, + "furniture": { ")": "f_bed" }, + "items": { + ".": { "item": "clutter_yard" }, + " ": { "item": "clutter_bedroom" }, + "=": { "item": "clutter_bathroom", "chance": 10 }, + "i": { "item": "table_foyer", "chance": 20 }, + "R": { "item": "mansion_bookcase", "chance": 100 }, + "s": { "item": "nightstand", "chance": 35 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c4u" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~````##o##o##", + "~~~~~~~~~~~~````# |ysh#", + "~~~~~~~~~~~~````o + #", + "~~~~~~~~~~~~````o |?@@#", + "~~~~~~~~~~~~````# ||||#", + "~~~~~~~~~~~~```^# +,9#", + "~~~~~~##:###:#### ||||#", + "~~~~~~#=========| |? @#", + "~~~~~~:=========| + @#", + "~~~~~~:=========| |h s#", + "~~~~~~#=========||+||||#", + "~~~~~~:=========| +", + "~~~~~~:=========| +", + "~~~~~~#=========| ||#+#", + "~~~~~~:=========| |t# #", + "~~~~~~:=========| +,# #", + "~~~~~~#=========| |S#>#", + "~~~~~~###########++#####" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { "~": "t_open_air", "=": "t_open_air_rooved", ",": "t_linoleum_gray", "`": "t_shingle_flat_roof", "|": "t_wall_b" }, + "furniture": { "?": "f_dresser" }, + "items": { + " ": { "item": "clutter_mansion" }, + "s": { "item": "nightstand", "chance": 20 }, + ",": { "item": "softdrugs", "chance": 40 }, + "?": { "item": "dresser_servant", "chance": 45 } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c5d" ], + "weight": 1000, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ##############", + " #<<#000000%%%#", + " #..#........%#", + " #####..#..hh.hh.%#", + " #FFF#..#..&&.&&.%#", + " #.../..+..hh.hh.%#", + " #??Y#..#T.......%#", + " #####..####.....%#", + " #U.......q#000000#", + " #UUU.....q########", + " #6....6...#......+", + " #6....6...+......+", + " #6..666..6#..##/##", + " #6..6....6#..#q.]#", + " #6..6....6#..#..]#", + " #6..6..666#..#]])#", + " ###########++#####" + ], + "palettes": [ "standard_domestic_palette" ], + "terrain": { " ": "t_soil", ".": "t_thconc_floor", "]": "t_sewage_pipe", ")": "t_sewage_pump", "/": "t_door_locked_interior" }, + "furniture": { + "%": "f_rack_wood", + "!": "f_wood_keg", + "&": "f_table", + "?": "f_glass_fridge", + "=": "f_machinery_old", + "}": "f_generator_broken" + }, + "liquids": { "!": { "liquid": "wine_chardonnay", "amount": [ 100, 500 ] } }, + "place_loot": [ { "item": "deck_of_cards", "x": 16, "y": 11, "chance": 100 } ], + "items": { + "%": { "item": "wines_worthy", "chance": 70, "repeat": [ 1, 2 ] }, + "m": { "item": "chilled_wine", "chance": 40, "repeat": [ 1, 4 ] }, + "0": { "item": "keg_wine", "chance": 100 }, + "&": { "item": "table_wine", "chance": 100, "repeat": [ 1, 4 ] }, + ".": { "item": "clutter_basement" } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c5" ], + "//": "updated", + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................", + "........................", + "....[...................", + "........................", + ".........[..............", + "...............%%...%%..", + "..............%%%%%%%%%.", + "......!!!!######ooooo###", + "...[..!%%!#>>|rry yrr#", + "......!!!^#~~| &&&&&&& #", + "......#####+|| &&&h&&& #", + "......#~FFF~Y| &hfffh& #", + "......#7~~~~~| &hfffh& #", + "......o5~~~~~| &hfffh& #", + "......on~~~~6| &hfffh& #", + "......o5~J~~6| &hfffh& #", + ".....[#7~JA~6| &hfffh& #", + "......#~~JA~~| &&&h&&& +", + "......o6~J~~~+ &&&&&&& +", + "......o6~JA~i|E&&&&&&&E#", + "..[...o6~~~~i|T&&&&&&&T#", + "......#~~~~~~|E&&&&&&&E#", + "......#1O2O34| cy yc #", + "......###########++#####" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_kitchen", "standard_domestic_landscaping_palette" ], + "terrain": { + "~": "t_linoleum_gray", + "i": "t_linoleum_gray", + "A": "t_linoleum_gray", + "Y": "t_linoleum_gray", + "&": "t_carpet_green", + "h": "t_carpet_green", + "f": "t_carpet_green" + }, + "items": { + " ": { "item": "clutter_mansion" }, + ".": { "item": "clutter_yard" }, + "r": { "item": "table_sideboard", "chance": 40 } + }, + "place_vehicles": [ { "vehicle": "cannon_3in", "x": 18, "y": 3, "chance": 1 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_mansion_c5u" ], + "weight": 1000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~```###ooooo###", + "~~~~~~~~~~```# I@@@I T#", + "~~~~~~~~~~``^# -@@@- #", + "~~~~~~###oo### &-@@@- ?#", + "~~~~~~# s&&T#a &----- s#", + "~~~~~~#Y -- ## & ?#", + "~~~~~~or -- R|y #", + "~~~~~~orh-- R|b yT#", + "~~~~~~or -- R||||}{}|||#", + "~~~~~~#T -- R|yc cy#", + "~~~~~~# -- + ---E--- +", + "~~~~~~#y y|x---l-H- +", + "~~~~~~#||++|||x---l-H- #", + "~~~~~~#d d|x---l-H- #", + "~~~~~~#d d| ---E--- #", + "~~~~~~#D ii D|T T#", + "~~~~~~###########++#####" + ], + "palettes": [ "standard_domestic_palette", "standard_domestic_lino_bathroom" ], + "terrain": { + "~": "t_open_air", + "-": "t_carpet_yellow", + "@": "t_carpet_yellow", + "H": "t_carpet_yellow", + "E": "t_carpet_yellow", + "}": "t_door_curtain_c", + "{": "t_door_curtain_o", + "l": "t_carpet_yellow", + "I": "t_carpet_yellow", + "'": "t_thconc_floor", + "|": "t_wall_g", + ",": "t_linoleum_gray", + "`": "t_shingle_flat_roof", + ":": "t_gutter_drop", + "_": "t_gutter_south", + ")": "t_glass_roof" + }, + "furniture": { "&": "f_sofa", "?": "f_armchair" }, + "place_loot": [ + { "item": "laptop", "x": 7, "y": 14, "chance": 100 }, + { "item": "stereo", "x": 14, "y": 18, "chance": 100 }, + { "item": "television", "x": 14, "y": 19, "chance": 100 } + ], + "items": { + " ": { "item": "clutter_mansion", "chance": 2 }, + "-": { "item": "clutter_bedroom", "chance": 2 }, + "I": { "item": "nightstand", "chance": 40 } + } + } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mapgen/megastore.json b/data/Mainline_mods/Mods/Defense_Mode/mapgen/megastore.json new file mode 100644 index 000000000..4cdd1b1d4 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mapgen/megastore.json @@ -0,0 +1,98 @@ +[ + { + "type": "overmap_terrain", + "id": "megastore_parking", + "name": "megastore parking lot", + "sym": "O", + "color": "dark_gray", + "extras": "build", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ + "megastore_0_0_0", + "megastore_1_0_0", + "megastore_2_0_0", + "megastore_0_1_0", + "megastore_1_1_0", + "megastore_2_1_0", + "megastore_0_2_0", + "megastore_2_2_0" + ], + "name": "megastore", + "sym": "M", + "color": "blue", + "extras": "build", + "see_cost": 2 + }, + { + "type": "overmap_terrain", + "id": "megastore_1_2_0", + "name": "megastore", + "sym": "+", + "color": "light_blue", + "extras": "build", + "see_cost": 5, + "flags": [ + "SIDEWALK", + "RISK_HIGH", + "SOURCE_FOOD", + "SOURCE_DRINK", + "SOURCE_GUN", + "SOURCE_AMMO", + "SOURCE_FABRICATION", + "SOURCE_COOKING", + "SOURCE_TAILORING", + "SOURCE_CONSTRUCTION", + "SOURCE_WEAPON", + "SOURCE_VEHICLES", + "SOURCE_CLOTHING", + "SOURCE_MEDICINE", + "SOURCE_BOOKS", + "SOURCE_LUXURY" + ] + }, + { + "type": "overmap_terrain", + "id": [ + "megastore_0_0_1", + "megastore_0_1_1", + "megastore_0_2_1", + "megastore_1_0_1", + "megastore_1_1_1", + "megastore_1_2_1", + "megastore_2_0_1", + "megastore_2_1_1", + "megastore_2_2_1" + ], + "name": "megastore, second floor", + "sym": "M", + "color": "blue", + "extras": "build", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ + "megastore_0_0_roof", + "megastore_0_1_roof", + "megastore_0_2_roof", + "megastore_1_0_roof", + "megastore_1_2_roof", + "megastore_2_0_roof", + "megastore_2_1_roof", + "megastore_2_2_roof" + ], + "name": "megastore roof", + "sym": "M", + "color": "blue", + "extras": "build", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "megastore_1_1_roof", + "copy-from": "megastore_0_0_roof" + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mapgen/public_works.json b/data/Mainline_mods/Mods/Defense_Mode/mapgen/public_works.json new file mode 100644 index 000000000..65008160c --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mapgen/public_works.json @@ -0,0 +1,215 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "dm_public_works_NW", "dm_public_works_NE" ], [ "dm_public_works_SW", "dm_public_works_SE" ] ], + "weight": 250, + "object": { + "fill_ter": "t_floor", + "rows": [ + " ________________________sss ", + " ________________________sss ", + " ________________________sss ", + " ________________________sss|-www--www-| ", + " ____________,_____,_____sss|^..c...ddd|4 ", + " ____________,_____,_____sss+...ch...hdw ", + " ____________,_____,_____sss+...c......w ", + " ____________,_____,_____sss|.........l| ", + " ___________ssssssssssssssss|...|--|-|-| ", + " ___________ss|-ww-|---ww---|...|.T|T|T| ", + " ___________ss|i...|..htth......|..|+|+| ", + " ___________ssw.hd.|............+......| ", + " ___________sswddd.|............|......| ", + " ___________xs|....+....llllllll|cScScS| ", + " ___________ss|..h.|...|---------------| ", + " fFFF_________FFF|----|...|ccecoS........^| ", + " f ___________ |lttl|...|..........PPP..w ", + " f ___________ |....|...+..........PPP..w ", + " f ___________ |....|..^|..htth.........| ", + " f ___________ |--D---+----ww-ww-ww-ww--|gFf ", + " f ___________ sssssss f ", + " f ___________ sssssss f ", + " f ______________________________ f ", + " f ______________________________ f ", + " f ______________________________ f ", + " f ______________________________ |--ww--| f ", + " f ______________________________ |U....U| f ", + " f ______________________________ |r....r| f ", + " f ______________________________s+......w f ", + " f ____________________________ |..rrUU|4 f ", + " f ____________________________ |---+--------| ", + " f ____________________________ |......rr.K..| ", + " f ______________________________...........U| ", + " f ______________________________...........l| ", + " f ______________________________...........c| ", + " f ______________________________...........c| ", + " f ___________ _______________............| ", + " |--___________--| _____________ |...........p| ", + " |...............| _____________ |..O.cUc.O..L| ", + " |r..............| _____________ |............| ", + " |r..............| _______________...........U| ", + " |r..............| _______________...........l| ", + " |r..............| _______________...........c| ", + " |r..............| _______________...........c| ", + " |r..............| _______________............| ", + " |....rrrrrrrr...|4 |..ll..rrr.H.| ", + " |---------------|FFFFFFFFFFFFFFF|------------| ", + " " + ], + "terrain": { + " ": "t_region_groundcover_urban", + "$": "t_region_shrub", + "+": "t_door_c", + ",": "t_pavement_y", + "-": "t_wall_w", + ".": "t_floor", + "=": "t_door_locked", + "D": "t_door_locked_alarm", + "F": "t_chainfence_h", + "G": "t_grate", + "O": "t_column", + "_": "t_pavement", + "f": "t_chainfence_v", + "g": "t_chaingate_l", + "s": "t_sidewalk", + "w": "t_window", + "|": "t_wall_w", + "4": "t_gutter_downspout" + }, + "furniture": { + "x": "f_console_broken", + "6": "f_console", + "C": "f_crate_c", + "P": "f_pool_table", + "S": "f_sink", + "^": "f_indoor_plant", + "c": "f_counter", + "d": "f_desk", + "e": "f_fridge", + "h": "f_chair", + "H": "f_hydraulic_press", + "i": "f_filing_cabinet", + "l": "f_locker", + "L": "f_heavy_lathe", + "o": "f_bookcase", + "p": "f_drill_press", + "K": "f_beverly_shear", + "r": "f_rack", + "U": "f_utility_shelf", + "t": "f_table" + }, + "toilets": { "T": { } }, + "items": { "P": { "item": "pool_table", "chance": 80 }, "e": { "item": "SUS_fridge_breakroom", "chance": 80 } }, + "place_items": [ + { "item": "hardware", "x": [ 2, 2 ], "y": [ 39, 44 ], "chance": 85, "repeat": 2 }, + { "item": "hardware", "x": [ 6, 13 ], "y": 45, "chance": 85, "repeat": 2 }, + { "item": "tools_construction", "x": [ 18, 21 ], "y": 16, "chance": 80, "repeat": 2 }, + { "item": "office", "x": [ 18, 20 ], "y": 12, "chance": 80, "repeat": 2 }, + { "item": "office", "x": 18, "y": 10, "chance": 60, "repeat": 2 }, + { "item": "tools_carpentry", "x": [ 38, 41 ], "y": 29, "chance": 85, "repeat": 3 }, + { "item": "tools_construction", "x": 41, "y": [ 26, 27 ], "chance": 85, "repeat": 3 }, + { "item": "tools_earthworking", "x": 36, "y": [ 26, 27 ], "chance": 85, "repeat": 3 }, + { "item": "mechanics", "x": 45, "y": [ 32, 35 ], "chance": 85, "repeat": 2 }, + { "item": "mechanics", "x": 45, "y": [ 40, 47 ], "chance": 85, "repeat": 2 }, + { "item": "mechanics", "x": [ 40, 45 ], "y": 38, "chance": 85, "repeat": 2 }, + { "item": "electronics", "x": [ 40, 42 ], "y": 45, "chance": 80, "repeat": 2 }, + { "item": "cleaning", "x": [ 36, 37 ], "y": 45, "chance": 85, "repeat": 2 }, + { "item": "construction_worker", "x": [ 27, 34 ], "y": 13, "chance": 80, "repeat": 2 }, + { "item": "office", "x": [ 39, 41 ], "y": 4, "chance": 80, "repeat": 2 }, + { "item": "cleaning", "x": 41, "y": 7, "chance": 80, "repeat": 2 } + ], + "place_item": [ + { "item": "log", "x": 21, "y": 45, "amount": [ 5, 20 ] }, + { "item": "pipe", "x": 15, "y": 45, "amount": [ 5, 10 ] }, + { "item": "glass_sheet", "x": 4, "y": 45, "amount": [ 2, 7 ] }, + { "item": "sewermap", "x": [ 18, 20 ], "y": 12, "chance": 50 }, + { "item": "2x4", "x": 16, "y": 42, "amount": [ 5, 50 ] }, + { "item": "2x4", "x": 16, "y": 40, "amount": [ 5, 50 ] }, + { "item": "nail", "x": 12, "y": 45, "amount": [ 5, 10 ] }, + { "item": "nail", "x": 13, "y": 45, "amount": [ 5, 10 ] }, + { "item": "material_sand", "x": 14, "y": 45, "amount": [ 5, 50 ] }, + { "item": "log", "x": 27, "y": 45, "amount": [ 5, 20 ] }, + { "item": "stepladder", "x": 2, "y": 45 } + ], + "place_vehicles": [ { "vehicle": "industrial_vehicles", "x": 27, "y": 37, "chance": 50, "fuel": 0, "status": 0, "rotation": 270 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "public_works_NW_roof", "public_works_NE_roof" ], [ "public_works_SW_roof", "public_works_SE_roof" ] ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ------------ ", + " -..........5 ", + " -......U...- ", + " -..........- ", + " -..R.......- ", + " -.......A..- ", + " ---------------.......A..- ", + " -........................- ", + " -........................- ", + " -........................- ", + " -........................- ", + " -........................- ", + " -........................- ", + " -........................- ", + " -........................- ", + " -........................- ", + " -------------------------- ", + " ", + " ", + " ", + " ", + " ", + " -------- ", + " -.A....- ", + " -......- ", + " -......- ", + " -......- ", + " ---......5---- ", + " -............- ", + " -............- ", + " -............- ", + " -............- ", + " -............- ", + " -............- ", + " ----------------- -........... - ", + " -...............- -............- ", + " -...............- -............- ", + " -...............- -............- ", + " -...............- -............- ", + " -...............- -............- ", + " -...............- -............- ", + " -...............- -............- ", + " -...............5 -............- ", + " ----------------- -------------- ", + " " + ], + "palettes": [ "roof_palette" ], + "nested": { "U": { "chunks": [ "roof_2x2_infrastructure" ] }, "R": { "chunks": [ "roof_2x2_infrastructure_1" ] } }, + "place_nested": [ + { + "chunks": [ + [ "null", 20 ], + [ "roof_2x2_utilities_b", 15 ], + [ "roof_2x2_utilities_c", 5 ], + [ "roof_2x2_utilities_d", 40 ], + [ "roof_2x2_utilities", 50 ] + ], + "x": [ 24, 38 ], + "y": [ 12, 17 ] + }, + { + "chunks": [ [ "null", 20 ], [ "roof_4x4_utility", 40 ], [ "roof_6x6_utility", 20 ] ], + "x": [ 35, 37 ], + "y": [ 31, 38 ] + } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mapgen/survivor_forest_camp.json b/data/Mainline_mods/Mods/Defense_Mode/mapgen/survivor_forest_camp.json new file mode 100644 index 000000000..5d9b199b5 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mapgen/survivor_forest_camp.json @@ -0,0 +1,101 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "dm_survivor_forest_camp" ], + "weight": 100, + "object": { + "fallback_predecessor_mapgen": "forest_thick", + "rows": [ + " ", + " ", + " ", + " ,,,,,,, ,,,,,,, ", + " ,,===,, ,,===,, ", + " ,,===,, ,,===,, ", + " ,E,,,,, ,E,,,,, ", + " ,,,,,,,,,,,,,,M,,,,,, ", + " ,,,,,,,,,,,,,,B,,,,,, ", + " ,,,,,,,,,A@,,,C,,,,,, ", + " ,,,,,,,,,,O,,,S,,,,,, ", + " ,,,,,,,,,,@,,,,,,,,,, ", + " ,,,,,,,,E,,,,,,,,,,,, ", + " ,,,,,,,,,,, ", + " ,,,,,,,,,,, ", + " ,,,,,,,,,,, ", + " ,,,,,,,,,,, ", + " ,,,,,,,,,,, ", + " ,,,,@,,,,,, ", + " ----------- ", + " --~~~~~~~~~-- ", + " --~~~~~~~~~~~-- ", + " --~~~~~~~~~-- ", + " ----------- " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "nested": { "E": { "chunks": [ [ "leather_tent_5x5_S", 100 ] ] }, "A": { "chunks": [ [ "survivor_corpse", 25 ] ] } }, + "terrain": { + ",": [ "t_region_groundcover" ], + "~": "t_water_dp", + "O": "t_region_soil", + "@": "t_region_groundcover", + "E": "t_region_groundcover", + "S": "t_region_soil", + "=": "t_dirtmound", + "-": "t_water_sh", + "C": "t_region_soil", + "B": "t_region_groundcover", + "A": "t_region_groundcover", + "M": "t_region_groundcover" + }, + "furniture": { + "O": "f_firering", + "@": "f_logstool", + "S": "f_smoking_rack", + "C": "f_kiln_empty", + "B": "f_butcher_rack", + "M": "f_fiber_mat" + }, + "place_traps": [ + { "trap": "tr_fur_rollmat", "x": 12, "y": 14 }, + { "trap": "tr_fur_rollmat", "x": [ 18, 20 ], "y": [ 7, 9 ] }, + { "trap": "tr_fur_rollmat", "x": [ 4, 6 ], "y": [ 7, 9 ] } + ], + "place_furniture": [ + { "furn": "f_cattails", "x": [ 10, 16 ], "y": [ 21, 23 ], "repeat": [ 3, 7 ] }, + { "furn": "f_boulder_large", "x": [ 10, 16 ], "y": [ 21, 23 ], "repeat": [ 1, 3 ] } + ], + "sealed_item": { "=": { "items": { "item": "farming_seeds", "chance": 100 }, "furniture": "f_plant_seedling" } }, + "place_monster": [ { "group": "GROUP_POND_FISH_2", "x": 13, "y": 21, "chance": 100, "repeat": [ 4, 8 ] } ], + "place_items": [ + { "item": "book_survival_2", "x": 11, "y": 14, "chance": 100, "repeat": [ 1, 3 ] }, + { "item": "corpse_child_survival", "x": [ 18, 20 ], "y": [ 7, 9 ], "chance": 100 }, + { "item": "corpse_female_survival", "x": [ 18, 20 ], "y": [ 7, 9 ], "chance": 100 } + ], + "place_fields": [ { "field": "fd_blood", "x": [ 18, 20 ], "y": [ 7, 9 ], "repeat": [ -1, 3 ] } ], + "place_loot": [ + { "item": "compositebow", "x": 5, "y": 7, "chance": 100 }, + { "item": "arrow_wood_heavy", "x": 5, "y": 7, "repeat": [ 1, 3 ], "chance": 100 }, + { "item": "quiver_birchbark", "x": 5, "y": 7, "chance": 100 }, + { "item": "childnote", "x": 19, "y": 7, "chance": 100 }, + { "item": "dry_meat", "x": 16, "y": 7, "chance": 100, "repeat": [ 5, 20 ] }, + { "item": "dry_fruit", "x": 16, "y": 7, "chance": 100, "repeat": [ 5, 20 ] }, + { "item": "makeshift_pillow", "x": 12, "y": 14, "chance": 100 }, + { "item": "needle_bone", "x": 11, "y": 13, "chance": 100 }, + { "item": "primitive_adze", "x": 11, "y": 13, "chance": 100 }, + { "item": "wicker_backpack", "x": 11, "y": 13, "chance": 100 }, + { "item": "primitive_hammer", "x": 11, "y": 13, "chance": 100 }, + { "item": "sickle_stone", "x": 11, "y": 13, "chance": 100 }, + { "item": "stone_chisel", "x": 11, "y": 13, "chance": 100 }, + { "item": "fire_drill_large", "x": 11, "y": 13, "chance": 100 }, + { "item": "oil_lamp_clay", "x": 11, "y": 13, "chance": 100 }, + { "item": "primitive_axe", "x": 11, "y": 9, "chance": 100 }, + { "item": "log", "x": 8, "y": 10, "chance": 100, "repeat": 3 }, + { "item": "clay_watercont", "x": 8, "y": 9, "chance": 100 }, + { "item": "clay_pot", "x": 13, "y": 18, "chance": 100 }, + { "item": "fish_bait", "x": 13, "y": 18, "chance": 100, "repeat": [ 1, 2 ] }, + { "item": "fishing_rod_basic", "x": 12, "y": 18, "chance": 100 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mapgen/updates.json b/data/Mainline_mods/Mods/Defense_Mode/mapgen/updates.json new file mode 100644 index 000000000..d1c8a0fa4 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mapgen/updates.json @@ -0,0 +1,16 @@ +[ + { + "type": "mapgen", + "update_mapgen_id": "shaun_of_the_dead_spawns", + "method": "json", + "object": { + "place_npcs": [ + { "class": "follower_liz", "x": 0, "y": 0 }, + { "class": "follower_david", "x": 1, "y": 0 }, + { "class": "follower_dianne", "x": 2, "y": 0 }, + { "class": "follower_ed", "x": 1, "y": 0 }, + { "class": "follower_barbara", "x": 1, "y": 0 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/menu_screen.json b/data/Mainline_mods/Mods/Defense_Mode/menu_screen.json new file mode 100644 index 000000000..3ed71e1a9 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/menu_screen.json @@ -0,0 +1,294 @@ +[ + { + "type": "talk_topic", + "id": "TALK_DEFENSE_MODE_MAIN_MENU", + "dynamic_line": "Hello, and welcome to Defense Mode! Please alter the options as you desire, then we'll get started!", + "responses": [ + { "text": "Enemy Options", "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" }, + { "text": "Preset Game Options", "topic": "TALK_DEFENSE_MODE_PRESET_GAME_MENU" }, + { + "text": "Play!", + "condition": { + "or": [ + { "math": [ "regular_zombies_allowed", "==", "1" ] }, + { "math": [ "special_zombies_allowed", "==", "1" ] }, + { "math": [ "spiders_allowed", "==", "1" ] }, + { "math": [ "triffids_allowed", "==", "1" ] }, + { "math": [ "robots_allowed", "==", "1" ] }, + { "math": [ "subspace_allowed", "==", "1" ] }, + { "math": [ "megafauna_allowed", "==", "1" ] }, + { "math": [ "dinos_allowed", "==", "1" ] }, + { "math": [ "lizardfolk_allowed", "==", "1" ] }, + { "math": [ "goblins_allowed", "==", "1" ] }, + { "math": [ "golems_allowed", "==", "1" ] }, + { "math": [ "orcs_allowed", "==", "1" ] } + ] + }, + "topic": "TALK_DONE" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_DEFENSE_MODE_ENEMY_SELECTION", + "dynamic_line": "What kinds of enemies do you want to see?", + "responses": [ + { + "text": "Allow regular zombies.", + "condition": { "math": [ "regular_zombies_allowed", "==", "0" ] }, + "effect": { "math": [ "regular_zombies_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable regular zombies.", + "condition": { "math": [ "regular_zombies_allowed", "==", "1" ] }, + "effect": { "math": [ "regular_zombies_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow special zombies.", + "condition": { "math": [ "special_zombies_allowed", "==", "0" ] }, + "effect": { "math": [ "special_zombies_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable special zombies.", + "condition": { "math": [ "special_zombies_allowed", "==", "1" ] }, + "effect": { "math": [ "special_zombies_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow spiders.", + "condition": { "math": [ "spiders_allowed", "==", "0" ] }, + "effect": { "math": [ "spiders_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable spiders.", + "condition": { "math": [ "spiders_allowed", "==", "1" ] }, + "effect": { "math": [ "spiders_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow triffids.", + "condition": { "math": [ "triffids_allowed", "==", "0" ] }, + "effect": { "math": [ "triffids_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable triffids.", + "condition": { "math": [ "triffids_allowed", "==", "1" ] }, + "effect": { "math": [ "triffids_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow robots.", + "condition": { "math": [ "robots_allowed", "==", "0" ] }, + "effect": { "math": [ "robots_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable robots.", + "condition": { "math": [ "robots_allowed", "==", "1" ] }, + "effect": { "math": [ "robots_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow megafauna.", + "condition": { "and": [ { "mod_is_loaded": "megafauna" }, { "math": [ "megafauna_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "megafauna_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable megafauna.", + "condition": { "and": [ { "mod_is_loaded": "megafauna" }, { "math": [ "megafauna_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "megafauna_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow eldritch horrors.", + "condition": { "math": [ "subspace_allowed", "==", "0" ] }, + "effect": { "math": [ "subspace_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable eldritch horrors.", + "condition": { "math": [ "subspace_allowed", "==", "1" ] }, + "effect": { "math": [ "subspace_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow dinosaurs.", + "condition": { "and": [ { "mod_is_loaded": "DinoMod" }, { "math": [ "dinos_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "dinos_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable dinosaurs.", + "condition": { "and": [ { "mod_is_loaded": "DinoMod" }, { "math": [ "dinos_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "dinos_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow lizardfolk.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "lizardfolk_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "lizardfolk_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable lizardfolk.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "lizardfolk_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "lizardfolk_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow golems.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "golems_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "golems_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable golems.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "golems_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "golems_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow goblins.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "goblins_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "goblins_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable goblins.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "goblins_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "goblins_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Allow orcs.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "orcs_allowed", "==", "0" ] } ] }, + "effect": { "math": [ "orcs_allowed", "=", "1" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Disable orcs.", + "condition": { "and": [ { "mod_is_loaded": "magiclysm" }, { "math": [ "orcs_allowed", "==", "1" ] } ] }, + "effect": { "math": [ "orcs_allowed", "=", "0" ] }, + "topic": "TALK_DEFENSE_MODE_ENEMY_SELECTION" + }, + { + "text": "Play!", + "condition": { + "or": [ + { "math": [ "regular_zombies_allowed", "==", "1" ] }, + { "math": [ "special_zombies_allowed", "==", "1" ] }, + { "math": [ "spiders_allowed", "==", "1" ] }, + { "math": [ "triffids_allowed", "==", "1" ] }, + { "math": [ "robots_allowed", "==", "1" ] }, + { "math": [ "subspace_allowed", "==", "1" ] }, + { "math": [ "megafauna_allowed", "==", "1" ] }, + { "math": [ "dinos_allowed", "==", "1" ] }, + { "math": [ "lizardfolk_allowed", "==", "1" ] }, + { "math": [ "goblins_allowed", "==", "1" ] }, + { "math": [ "golems_allowed", "==", "1" ] }, + { "math": [ "orcs_allowed", "==", "1" ] } + ] + }, + "topic": "TALK_DONE" + }, + { "text": "Return to main menu.", "topic": "TALK_DEFENSE_MODE_MAIN_MENU" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_DEFENSE_MODE_PRESET_GAME_MENU", + "dynamic_line": "We have a grand variety of preselected game modes for you to choose from! Pick one and play now!", + "responses": [ + { + "text": "Shaun of The Dead: (Defend a bar against classic zombies with your five friends. Easy and fun.)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "1" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "0" ] }, + { + "u_location_variable": { "global_val": "your_spawnpoint" }, + "target_params": { "om_terrain": "bar", "search_range": 500, "z": 0 } + }, + { "u_teleport": { "global_val": "your_spawnpoint" } }, + { "mapgen_update": "shaun_of_the_dead_spawns" } + ], + "topic": "TALK_DONE" + }, + { + "text": "Dawn of The Dead: (Classic zombies only, slower and more realistic.)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "1" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "0" ] } + ], + "topic": "TALK_DONE" + }, + { + "text": "Eight-Legged Freaks: (Hordes of spiders! Not arachnophobia friendly!)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "0" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "1" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "0" ] } + ], + "topic": "TALK_DONE" + }, + { + "text": "Day of The Triffids: (Protect your mansion against the triffids.)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "0" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "1" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "0" ] }, + { + "u_location_variable": { "global_val": "your_spawnpoint" }, + "target_params": { "om_terrain": "dm_mansion_e2", "search_range": 500, "z": 0 } + }, + { "u_teleport": { "global_val": "your_spawnpoint" } } + ], + "topic": "TALK_DONE" + }, + { + "text": "Skynet: (Robots have decided that humans are the enemy!)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "0" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "1" ] }, + { "math": [ "subspace_allowed", "=", "0" ] } + ], + "topic": "TALK_DONE" + }, + { + "text": "The Call of Cthulu: (Fend off hordes of eldritch horrors.)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "0" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "1" ] } + ], + "topic": "TALK_DONE" + }, + { "text": "Return to main menu.", "topic": "TALK_DEFENSE_MODE_MAIN_MENU" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/DinoMod/eocs.json b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/DinoMod/eocs.json new file mode 100644 index 000000000..338242b6f --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/DinoMod/eocs.json @@ -0,0 +1,34 @@ +[ + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_DINOS", + "condition": { "math": [ "dinos_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_DINOSAUR_DANGEROUS", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_DINOSAUR_DANGEROUS", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_DINOSAUR_DANGEROUS", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/DinoMod/species.json b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/DinoMod/species.json new file mode 100644 index 000000000..cb1030e2b --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/DinoMod/species.json @@ -0,0 +1,10 @@ +[ + { + "type": "SPECIES", + "id": "DINOSAUR", + "fear_triggers": [ "FIRE" ], + "flags": [ "ALL_SEEING", "NEMESIS" ], + "bleeds": "fd_blood", + "description": "a dinosaur" + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Magiclysm/eocs.json b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Magiclysm/eocs.json new file mode 100644 index 000000000..b84cae8ee --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Magiclysm/eocs.json @@ -0,0 +1,130 @@ +[ + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_LIZARDFOLK", + "condition": { "math": [ "lizardfolk_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_LIZARDFOLK_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_LIZARDFOLK_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_LIZARDFOLK_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_GOLEMS", + "condition": { "math": [ "golems_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_GOLEM_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_GOLEM_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_GOLEM_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_GOBLINS", + "condition": { "math": [ "goblins_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_GOBLIN_STANDARD", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_GOBLIN_STANDARD", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_GOBLIN_STANDARD", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_ORCS", + "condition": { "math": [ "orcs_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_ORC_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_ORC_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_ORC_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Megafauna/eocs.json b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Megafauna/eocs.json new file mode 100644 index 000000000..378be2763 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Megafauna/eocs.json @@ -0,0 +1,34 @@ +[ + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_MEGAFAUNA", + "condition": { "math": [ "megafauna_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_MEGAFAUNA_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_MEGAFAUNA_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_MEGAFAUNA_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/MindOverMatter/eocs.json b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/MindOverMatter/eocs.json new file mode 100644 index 000000000..2de85465e --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/MindOverMatter/eocs.json @@ -0,0 +1,34 @@ +[ + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_PSYCHICS", + "condition": { "math": [ "mindovermatter_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_FERAL_PSYCHIC_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_FERAL_PSYCHIC_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_FERAL_PSYCHIC_DM", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/MindOverMatter/species.json b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/MindOverMatter/species.json new file mode 100644 index 000000000..907e571e1 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/MindOverMatter/species.json @@ -0,0 +1,7 @@ +[ + { + "type": "SPECIES", + "id": "HUMAN", + "flags": [ "ALL_SEEING", "NEMESIS" ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/My_Sweet_Cataclysm/eocs.json b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/My_Sweet_Cataclysm/eocs.json new file mode 100644 index 000000000..98a666fae --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/My_Sweet_Cataclysm/eocs.json @@ -0,0 +1,34 @@ +[ + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_CANDY", + "condition": { "math": [ "candymonsters_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_SWEET_HORDE", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_SWEET_HORDE", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_SWEET_HORDE", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Mythos/eocs.json b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Mythos/eocs.json new file mode 100644 index 000000000..6193cc47b --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Mythos/eocs.json @@ -0,0 +1,34 @@ +[ + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_MYTHOS", + "condition": { "math": [ "mythos_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_MYTHOS_SPAWN", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_MYTHOS_SPAWN", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_MYTHOS_SPAWN", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Xedra_Evolved/eocs.json b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Xedra_Evolved/eocs.json new file mode 100644 index 000000000..a50c67328 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/mod_interactions/Xedra_Evolved/eocs.json @@ -0,0 +1,66 @@ +[ + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_EXODII", + "condition": { "math": [ "exodii_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_DEFENSE_MODE_EXODII", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_DEFENSE_MODE_EXODII", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_DEFENSE_MODE_EXODII", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + }, + { + "type": "effect_on_condition", + "id": "DEFENSE_MODE_WAVE_SPAWN_XEDRA", + "condition": { "math": [ "xedra_allowed", "==", "1" ] }, + "effect": [ + { + "u_spawn_monster": "GROUP_DEFENSE_MODE_XEDRA", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_DEFENSE_MODE_XEDRA", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + }, + { + "u_spawn_monster": "GROUP_DEFENSE_MODE_XEDRA", + "real_count": { "global_val": "wave_number", "default": 1 }, + "outdoor_only": true, + "group": true, + "min_radius": 20, + "max_radius": 40 + } + ], + "false_effect": { "run_eocs": "DEFENSE_MODE_WAVE_SPAWN_FALLBACK" } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/modinfo.json b/data/Mainline_mods/Mods/Defense_Mode/modinfo.json new file mode 100644 index 000000000..4f6c8ff7f --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/modinfo.json @@ -0,0 +1,10 @@ +[ + { + "type": "MOD_INFO", + "id": "defense_mode", + "name": "Defense Mode", + "description": "Enables the Defense game mode.", + "category": "total_conversion", + "dependencies": [ "dda" ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/monstergroups.json b/data/Mainline_mods/Mods/Defense_Mode/monstergroups.json new file mode 100644 index 000000000..0004b0418 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/monstergroups.json @@ -0,0 +1,52 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_TRIFFID_DM", + "default": "mon_triffid", + "monsters": [ + { "monster": "mon_triffid", "weight": 205 }, + { "monster": "mon_triffid", "weight": 300, "cost_multiplier": 2, "pack_size": [ 2, 3 ] }, + { "monster": "mon_fungal_fighter", "weight": 160, "cost_multiplier": 0 }, + { "monster": "mon_vinebeast", "weight": 160, "cost_multiplier": 10, "starts": "240 hours" } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SPIDER_DM", + "default": "mon_spider_web_dm", + "monsters": [ + { "monster": "mon_spider_cellar_giant_dm", "weight": 205 }, + { "monster": "mon_spider_web_dm", "weight": 300, "cost_multiplier": 2, "pack_size": [ 2, 3 ] }, + { "monster": "mon_spider_jumping_mega_dm", "weight": 160, "cost_multiplier": 0 }, + { "monster": "mon_spider_widow_giant_dm", "weight": 160, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ROBOT_DM", + "monsters": [ + { "monster": "mon_manhack", "weight": 515, "cost_multiplier": 0 }, + { "monster": "mon_skitterbot", "weight": 220, "cost_multiplier": 0 }, + { "monster": "mon_molebot", "weight": 40, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_NETHER_DM", + "default": "mon_blank", + "monsters": [ + { "monster": "mon_blank", "weight": 135, "cost_multiplier": 0 }, + { "monster": "mon_flying_polyp", "weight": 5, "cost_multiplier": 0 }, + { "monster": "mon_yugg", "weight": 10, "cost_multiplier": 0 }, + { "monster": "mon_kreck", "weight": 210, "cost_multiplier": 0 }, + { "monster": "mon_gozu", "weight": 5, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_NEMESIS", + "default": "mon_zombie_nemesis", + "//": "nemesis squad, exists here to remove them from Defense Mode", + "monsters": [ { "monster": "mon_zombie", "weight": 1000, "cost_multiplier": 0 } ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/monsters.json b/data/Mainline_mods/Mods/Defense_Mode/monsters.json new file mode 100644 index 000000000..c27c12517 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/monsters.json @@ -0,0 +1,434 @@ +[ + { + "id": "mon_zombie_nemesis", + "copy-from": "mon_zombie", + "type": "MONSTER", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_spider_web", + "type": "MONSTER", + "name": { "str": "giant web spider" }, + "description": "A giant, light gray mutant grass spider, it waits for prey to become ensnared in the vast webs that it weaves between the trees.", + "default_faction": "spider_web", + "bodytype": "spider", + "species": [ "SPIDER" ], + "diff": 2, + "volume": "62500 ml", + "weight": "81500 g", + "hp": 40, + "speed": 110, + "material": [ "iflesh" ], + "symbol": "s", + "color": "yellow", + "aggression": 100, + "morale": 100, + "aggro_character": true, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "attack_effs": [ { "id": "venom_dmg", "duration": 400, "affect_hit_bp": true } ], + "//": "5 hits to max intensity, 6 hits to max duration", + "dodge": 2, + "weakpoint_sets": [ "wps_arthropod", "wps_arthropod_spider" ], + "families": [ "prof_wp_basic_bug", "prof_wp_spider" ], + "vision_day": 5, + "vision_night": 5, + "harvest": "arachnid", + "dissect": "dissect_spider_sample_single", + "reproduction": { "baby_egg": "egg_spider_web", "baby_count": 3, "baby_timer": 15 }, + "baby_flags": [ "SPRING", "SUMMER", "AUTUMN" ], + "fungalize_into": "mon_spider_fungus", + "anger_triggers": [ "PLAYER_WEAK", "PLAYER_CLOSE" ], + "upgrades": { "half_life": 42, "into": "mon_spider_web_mega" }, + "zombify_into": "mon_meat_cocoon_small", + "trap_avoids": [ "tr_sinkhole" ], + "flags": [ "SEES", "SMELLS", "HEARS", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ], + "armor": { "bash": 2, "cut": 6, "bullet": 5 } + }, + { + "id": "mon_spider_cellar_giant", + "type": "MONSTER", + "name": { "str": "giant cellar spider" }, + "description": "A huge brown spider in constant movement, with a small body the size of a child held up at chest level by a set of spindly legs that branch into three-pronged graspers at the end. Unlike the smaller variant it obviously decided hunting you is worth a try, and follows you with mandibles chittering in anticipation.", + "default_faction": "spider_cellar", + "bodytype": "spider", + "species": [ "SPIDER" ], + "diff": 2, + "volume": "80 L", + "weight": "40750 g", + "hp": 60, + "speed": 100, + "material": [ "iflesh" ], + "symbol": "s", + "color": "brown", + "aggression": -5, + "morale": 5, + "aggro_character": true, + "melee_skill": 6, + "melee_dice": 1, + "melee_dice_sides": 9, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "grab_strength": 20, + "special_attacks": [ + { "id": "grab", "condition": { "not": { "u_has_effect": "maimed_leg" } } }, + { + "type": "bite", + "damage_max_instance": [ { "damage_type": "cut", "amount": 10 }, { "damage_type": "stab", "amount": 6 } ], + "condition": { "not": { "u_has_effect": "maimed_mandible" } }, + "cooldown": 5, + "effects": [ { "id": "venom_pain", "chance": 50, "duration": 350, "affect_hit_bp": true } ] + } + ], + "dodge": 8, + "weakpoint_sets": [ "wps_arthropod", "wps_arthropod_spider" ], + "families": [ "prof_wp_basic_bug", "prof_wp_spider" ], + "vision_day": 12, + "vision_night": 18, + "harvest": "arachnid_spider", + "dissect": "dissect_spider_sample_single", + "reproduction": { "baby_egg": "egg_spider_cellar", "baby_count": 3, "baby_timer": 15 }, + "baby_flags": [ "SPRING", "SUMMER", "AUTUMN" ], + "path_settings": { "max_dist": 50, "avoid_sharp": true }, + "fungalize_into": "mon_spider_fungus", + "upgrades": { "age_grow": 14, "into_group": "GROUP_SPIDER_CELLAR_GIANT" }, + "zombify_into": "mon_meat_cocoon_small", + "flags": [ "SEES", "SMELLS", "HEARS", "GRABS", "WEBWALK", "CLIMBS", "HARDTOSHOOT", "PATH_AVOID_DANGER_1" ], + "armor": { "bash": 1, "cut": 5, "acid": 3, "bullet": 2 } + }, + { + "id": "mon_spider_widow_giant", + "type": "MONSTER", + "name": { "str": "giant black widow" }, + "description": "A dog-sized mutated black widow spider. There is a red hourglass shape on its thorax. A highly venomous nightmare come to life.", + "default_faction": "spider_widow", + "bodytype": "spider", + "species": [ "SPIDER" ], + "diff": 2, + "volume": "30 L", + "weight": "40750 g", + "hp": 60, + "speed": 90, + "material": [ "iflesh" ], + "symbol": "s", + "color": "dark_gray", + "aggression": -10, + "morale": 100, + "aggro_character": true, + "melee_skill": 6, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], + "dodge": 2, + "weakpoint_sets": [ "wps_arthropod", "wps_arthropod_spider" ], + "families": [ "prof_wp_basic_bug", "prof_wp_spider" ], + "vision_day": 5, + "vision_night": 5, + "harvest": "arachnid", + "dissect": "dissect_spider_sample_single", + "reproduction": { "baby_egg": "egg_spider_widow", "baby_count": 3, "baby_timer": 15 }, + "baby_flags": [ "SPRING", "SUMMER", "AUTUMN" ], + "fungalize_into": "mon_spider_fungus", + "upgrades": { "half_life": 42, "into": "mon_spider_widow_mega" }, + "zombify_into": "mon_meat_cocoon_small", + "flags": [ "SEES", "SMELLS", "HEARS", "BADVENOM", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE" ], + "armor": { "bash": 2, "cut": 4, "bullet": 3 } + }, + { + "id": "mon_spider_jumping_giant", + "type": "MONSTER", + "name": { "str": "giant jumping spider" }, + "description": "A dog-sized mutant spider with big forelegs and two pairs of inquisitive-looking eyes. It can leap quite quickly, even into the treetops.", + "default_faction": "spider_jumping", + "bodytype": "spider", + "species": [ "SPIDER" ], + "diff": 2, + "volume": "30 L", + "weight": "40750 g", + "hp": 30, + "speed": 100, + "material": [ "iflesh" ], + "symbol": "s", + "color": "white", + "aggression": -20, + "morale": 80, + "aggro_character": true, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 1, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "attack_effs": [ { "id": "venom_weaken", "duration": 250 } ], + "//": "13 hits to max intensity, 17 hits to max duration", + "dodge": 8, + "weakpoint_sets": [ "wps_arthropod", "wps_arthropod_spider" ], + "families": [ "prof_wp_basic_bug", "prof_wp_spider" ], + "vision_day": 5, + "vision_night": 5, + "harvest": "arachnid", + "dissect": "dissect_spider_sample_single", + "reproduction": { "baby_egg": "egg_spider_jumping", "baby_count": 3, "baby_timer": 15 }, + "baby_flags": [ "SPRING", "SUMMER", "AUTUMN" ], + "special_attacks": [ + { + "type": "leap", + "cooldown": 2, + "max_range": 5, + "allow_no_target": true, + "condition": { "not": { "u_has_effect": "maimed_leg" } } + } + ], + "fungalize_into": "mon_spider_fungus", + "upgrades": { "half_life": 42, "into": "mon_spider_jumping_mega" }, + "zombify_into": "mon_meat_cocoon_small", + "flags": [ "SEES", "SMELLS", "HEARS", "HIT_AND_RUN", "CLIMBS", "PATH_AVOID_DANGER_1" ], + "armor": { "cut": 3, "bullet": 2 } + }, + { + "id": "mon_spider_cellar_giant_dm", + "copy-from": "mon_spider_cellar_giant", + "type": "MONSTER", + "species": [ "SPIDER_DM" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_spider_jumping_mega_dm", + "copy-from": "mon_spider_jumping_mega", + "type": "MONSTER", + "species": [ "SPIDER_DM" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_spider_web_dm", + "copy-from": "mon_spider_web", + "type": "MONSTER", + "species": [ "SPIDER_DM" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_spider_widow_giant_dm", + "copy-from": "mon_spider_widow_giant", + "type": "MONSTER", + "species": [ "SPIDER_DM" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_big_rat", + "type": "MONSTER", + "name": { "str": "big rat" }, + "//": "All monsters with faction ratkin should only appear in places that make sense for them to appear. They are specific to a unique lab and any appearances by them outside of that lab prior to at minimum two seasons after the Cataclysm occured is nonsensical and should be reported as a bug.", + "description": "This cat-sized rat snuffles along the ground looking for things to eat. It hisses at anything that comes near it, baring sizable teeth.", + "default_faction": "ratkin", + "bodytype": "pig", + "species": [ "MUTANT" ], + "volume": "2 L", + "weight": "2 kg", + "hp": 25, + "speed": 100, + "attack_cost": 95, + "material": [ "flesh" ], + "symbol": "R", + "color": "dark_gray", + "aggression": 15, + "morale": 50, + "aggro_character": true, + "melee_skill": 3, + "melee_dice": 2, + "melee_dice_sides": 3, + "vision_day": 30, + "vision_night": 10, + "path_settings": { "max_dist": 50, "avoid_sharp": true }, + "upgrades": { "half_life": 42, "into_group": "GROUP_RATKIN_EVOLVED" }, + "anger_triggers": [ "PLAYER_WEAK", "PLAYER_CLOSE", "FRIEND_ATTACKED" ], + "fear_triggers": [ "HURT", "FIRE" ], + "regen_morale": true, + "special_attacks": [ + { + "type": "bite", + "cooldown": 10, + "damage_max_instance": [ { "damage_type": "stab", "amount": 6, "armor_multiplier": 0.7 } ] + }, + { "id": "scratch", "max_mul": 1.5 } + ], + "attack_effs": [ { "id": "rat_bite_fever", "duration": 400, "chance": 10 } ], + "flags": [ "SEES", "SMELLS", "HEARS", "WARM", "SWIMS", "ANIMAL", "PATH_AVOID_DANGER_1" ], + "harvest": "mutant_mammal_small_fur", + "dissect": "dissect_rat_sample_single" + }, + { + "id": "mon_zap_rat", + "copy-from": "mon_zap_rat", + "type": "MONSTER", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_tunnel_rat", + "copy-from": "mon_tunnel_rat", + "type": "MONSTER", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_pack_rat", + "copy-from": "mon_pack_rat", + "type": "MONSTER", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_teke_mouse", + "copy-from": "mon_teke_mouse", + "type": "MONSTER", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_mausketeer", + "copy-from": "mon_mausketeer", + "type": "MONSTER", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_boss_shadow", + "//2": "This is essentially the lutenient from the base game, but reworked to be a full assault monster and to stick around. It's also the final boss of the game mode, so it should be quite challenging by design.", + "type": "MONSTER", + "name": { "str_sp": "shadow of reality" }, + "description": "Something is there! Against all reason, this shadow lurks at the corners of your vision. You close your eyes, but still, it is there. No matter how far you run, it is there. Behind heavy fortifications, it is there. The maw of the void, the all consumer, the most powerful. Now you will know why you fear the night, the day, and the unknown.", + "default_faction": "zombie", + "bodytype": "human", + "species": [ "ZOMBIE", "HUMAN" ], + "diff": 500, + "volume": "100 L", + "weight": "100 kg", + "phase": "GAS", + "hp": 350, + "//6": "Slowed and weakened by light of sufficient brightness. (It lurks outside of flashlight range) Luring it into a trap is a viable path to killing it.", + "speed": 200, + "attack_cost": 200, + "symbol": "L", + "color": "red_white", + "scents_tracked": [ "sc_human", "sc_fetid" ], + "aggression": 100, + "morale": 300, + "melee_skill": 10, + "//00": "Unfortunately, we do need some melee damage so that it can bash through terrain and the like.", + "melee_dice": 2, + "melee_dice_sides": 2, + "//0": "Blob bullshit laughs at concepts like armor. This is basically just here as anti-cheese. It should rarely if ever directly attack you.", + "melee_damage": [ { "damage_type": "pure", "amount": 1, "armor_penetration": 999 } ], + "dodge": 10, + "bleed_rate": 0, + "vision_day": 50, + "vision_night": 50, + "melee_training_cap": 0, + "//1": "Try to stay this far away from the player with your regular moves, very important", + "tracking_distance": 6, + "path_settings": { "max_dist": 40, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true, "allow_climb_stairs": true }, + "special_attacks": [ + [ "UPGRADE", 10 ], + [ "RESURRECT", 5 ], + [ "SHRIEK_ALERT", 20 ], + { + "type": "melee", + "id": "LTNT_ILLUMINATE_YOU", + "//": "Dirty little hack: We have a condition that the target is male OR female, meaning it only evaluates true for the player (and NPCs)", + "condition": { "and": [ { "not": { "npc_has_effect": "Shadow_Reveal" } }, { "or": [ "npc_male", "npc_female" ] } ] }, + "range": 30, + "dodgeable": false, + "blockable": false, + "effects_require_dmg": false, + "effects": [ { "id": "Shadow_Reveal", "duration": 60, "chance": 100 } ], + "damage_max_instance": [ { "damage_type": "pure", "amount": 0.0 } ], + "no_dmg_msg_u": "The shadows recede, leaving you with nowhere to hide!", + "no_dmg_msg_npc": "The shadows recede from , and now they stand out like a floodlight!", + "cooldown": 10 + }, + { + "type": "spell", + "spell_data": { "id": "hive_raptor_spawn", "hit_self": true }, + "cooldown": 10, + "monster_message": "The shadow opens its mouth, and a gore-smeared winged beast flies out of it!" + } + ], + "anger_triggers": [ "HURT", "PLAYER_CLOSE", "PLAYER_WEAK" ], + "death_function": { + "effect": { "id": "death_defense_mode_victory", "hit_self": true, "min_level": 1 }, + "message": "Grapsing at the air, the shadow melts away and vanishes!", + "corpse_type": "NO_CORPSE" + }, + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "NO_BREATHE", + "HARDTOSHOOT", + "CAN_OPEN_DOORS", + "CLIMBS", + "BORES", + "DESTROYS", + "FLIES", + "FIREPROOF", + "ALL_SEEING", + "ALWAYS_SEES_YOU", + "NIGHT_INVISIBILITY", + "CAMOUFLAGE", + "NO_FUNG_DMG", + "FILTHY", + "STUN_IMMUNE", + "KEEP_DISTANCE", + "PATH_AVOID_DANGER_2" + ], + "//3": "Because it's Defense Mode, you can hurt it with bullets. Otherwise, It'd be too hard to fight.", + "armor": { "cut": 25, "stab": 25, "bash": 25, "bullet": 25, "heat": 25, "cold": 25, "electric": 25, "acid": 25 } + }, + { + "id": "death_defense_mode_victory", + "type": "SPELL", + "name": { "str": "Victory Death" }, + "valid_targets": [ "hostile" ], + "description": "Ends the game in a win condition.", + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "shape": "blast", + "min_range": 100, + "max_range": 100, + "effect": "effect_on_condition", + "effect_str": "DEFENSE_MODE_QUEUE_WIN_SCREEN" + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/npcs.json b/data/Mainline_mods/Mods/Defense_Mode/npcs.json new file mode 100644 index 000000000..96f3422ba --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/npcs.json @@ -0,0 +1,270 @@ +[ + { + "type": "npc", + "id": "follower_liz", + "//": "Scenario specific unique NPC, should not spawn outside of trigger events.", + "name_unique": "Liz", + "gender": "female", + "age": 25, + "class": "NC_BOUNTY_HUNTER", + "attitude": 3, + "mission": 0, + "chat": "TALK_FRIEND", + "faction": "your_followers" + }, + { + "type": "npc", + "id": "follower_david", + "//": "Scenario specific unique NPC, should not spawn outside of trigger events.", + "name_unique": "David", + "gender": "male", + "age": 27, + "class": "NC_BOUNTY_HUNTER", + "attitude": 3, + "mission": 0, + "chat": "TALK_FRIEND", + "faction": "your_followers" + }, + { + "type": "npc", + "id": "follower_dianne", + "//": "Scenario specific unique NPC, should not spawn outside of trigger events.", + "name_unique": "Dianne", + "gender": "female", + "age": 26, + "class": "NC_BOUNTY_HUNTER", + "attitude": 3, + "mission": 0, + "chat": "TALK_FRIEND", + "faction": "your_followers" + }, + { + "type": "npc", + "id": "follower_ed", + "//": "Scenario specific unique NPC, should not spawn outside of trigger events.", + "name_unique": "Ed", + "gender": "male", + "age": 23, + "class": "NC_BOUNTY_HUNTER", + "attitude": 3, + "mission": 0, + "chat": "TALK_FRIEND", + "faction": "your_followers" + }, + { + "type": "npc", + "id": "follower_barbara", + "//": "Scenario specific unique NPC, should not spawn outside of trigger events.", + "name_unique": "Barbara", + "gender": "female", + "age": 80, + "class": "NC_BOUNTY_HUNTER", + "attitude": 3, + "mission": 0, + "chat": "TALK_FRIEND", + "faction": "your_followers" + }, + { + "type": "npc", + "id": "follower_mercenary", + "class": "NC_BOUNTY_HUNTER", + "attitude": 3, + "mission": 0, + "chat": "TALK_FRIEND", + "faction": "your_followers" + }, + { + "type": "npc", + "id": "random_survivor", + "class": "NC_SCAVENGER", + "attitude": 1, + "mission": 0, + "chat": "TALK_NPC_DEFENSE_WANDERER", + "faction": "no_faction" + }, + { + "type": "npc", + "id": "random_survivor_nefarious", + "class": "NC_SCAVENGER", + "attitude": 1, + "mission": 0, + "chat": "TALK_MUG", + "faction": "no_faction" + }, + { + "type": "npc", + "id": "defense_mode_raider", + "//": "Despite being similar to most other bandits, these are made to attack head-on.", + "name_suffix": "raider", + "class": "NC_SCAVENGER", + "attitude": 10, + "mission": 0, + "chat": "TALK_DONE", + "faction": "hells_raiders" + }, + { + "type": "npc", + "id": "defense_mode_merchant", + "//": "Carries everything you could ever need to defend yourself.", + "name_suffix": "merchant", + "class": "NC_DM_MERCHANT", + "attitude": 0, + "mission": 3, + "chat": "TALK_DM_MERCHANT", + "faction": "free_merchants", + "per": -20, + "dex": -20, + "personality": { "aggression": -100, "bravery": -100, "collector": 0, "altruism": 0 } + }, + { + "type": "npc_class", + "id": "NC_DM_MERCHANT", + "name": { "str": "Merchant" }, + "job_description": "I'm the one who sells you things.", + "common": false, + "bonus_str": 10000, + "worn_override": "NC_DM_MERCHANT_worn", + "carry_override": "NC_DM_MERCHANT_carry", + "shopkeeper_price_rules": [ + { "group": "NC_DM_MERCHANT_stock", "markup": 2.5 }, + { "group": "zombie_humanoid", "fixed_adj": -2.5 }, + { "group": "human", "fixed_adj": -2.5 }, + { "group": "arachnid", "fixed_adj": -2.5 }, + { "group": "triffid_paralytic", "fixed_adj": -2.5 }, + { "group": "default_zombie_death_drops", "fixed_adj": -0.5 }, + { "group": "mon_zombie_cop_death_drops", "fixed_adj": -0.5 }, + { "group": "mon_zombie_fireman_death_drops", "fixed_adj": -0.5 }, + { "group": "mon_zombie_hazmat_death_drops", "fixed_adj": -0.5 }, + { "group": "mon_zombie_swat_death_drops", "fixed_adj": -0.5 }, + { "group": "mon_zombie_resort_dancer_death_drops", "fixed_adj": -0.5 }, + { "group": "mon_zombie_resort_bouncer_death_drops", "fixed_adj": -0.5 }, + { "group": "mon_zombie_resort_staff_death_drops", "fixed_adj": -0.5 } + ], + "traits": [ [ "DEBUG_FLIMSY", 100 ], [ "DEBUG_FLIMSY2", 100 ], [ "DEBUG_NOSCENT", 100 ], [ "DEBUG_SILENT", 100 ] ] + }, + { + "type": "item_group", + "id": "NC_DM_MERCHANT_worn", + "subtype": "collection", + "entries": [ + { "group": "npc_pants_male", "prob": 100 }, + { "group": "npc_underwear_feet_male", "prob": 100 }, + { "group": "npc_underwear_bottom_male", "prob": 100 }, + { "group": "npc_shirt_male", "prob": 100 }, + { "group": "npc_shoes_male", "prob": 100 }, + { "item": "debug_backpack", "prob": 100 }, + { "item": "debug_backpack", "prob": 100 }, + { "item": "debug_backpack", "prob": 100 } + ] + }, + { + "type": "item_group", + "id": "NC_DM_MERCHANT_carry", + "subtype": "collection", + "entries": [ + { "group": "NC_DM_MERCHANT_stock", "prob": 100 }, + { "group": "NC_DM_MERCHANT_stock", "prob": 100 }, + { "group": "NC_DM_MERCHANT_stock", "prob": 100 }, + { "item": "FMCNote", "count": [ 700, 1000 ], "prob": 100 } + ] + }, + { + "type": "item_group", + "id": "NC_DM_MERCHANT_stock", + "subtype": "collection", + "entries": [ + { "group": "trader_farmingstuff", "prob": 70 }, + { "group": "everyday_gear", "prob": 70 }, + { "group": "child_items", "prob": 70 }, + { "group": "traveler", "prob": 70 }, + { "group": "swat_gear", "prob": 70 }, + { "group": "gear_survival", "prob": 70 }, + { "group": "civilian_body_armor", "prob": 70 }, + { "group": "drugs_pharmacy", "prob": 70 }, + { "group": "preserved_food", "prob": 70 }, + { "group": "pet_food", "prob": 70 }, + { "group": "condiments", "prob": 70 }, + { "group": "trader_guns&ammo", "prob": 70, "charges": 30 }, + { "group": "hardware", "prob": 70 }, + { "group": "defense_caravan_melee", "prob": 70 }, + { "group": "defense_caravan_ranged", "prob": 70, "charges": 30 }, + { "group": "defense_caravan_ammunition", "prob": 70 }, + { "group": "defense_caravan_components", "prob": 70 }, + { "group": "defense_caravan_clothes", "prob": 70 }, + { "group": "defense_caravan_tools", "prob": 70 }, + { "group": "hardware_bulk", "prob": 70 }, + { "group": "lumberyard", "prob": 70 }, + { "group": "supplies_hardware", "prob": 70 } + ] + }, + { + "type": "item_group", + "id": "trader_farmingstuff", + "subtype": "collection", + "entries": [ + { "group": "farming_seeds", "prob": 100 }, + { "group": "farming_seeds", "prob": 100 }, + { "group": "farming_seeds", "prob": 100 }, + { "group": "farming_seeds", "prob": 100 }, + { "group": "farming_seeds", "prob": 100 }, + { "group": "farming_seeds", "prob": 100 }, + { "group": "farming_seeds", "prob": 100 }, + { "group": "farming_seeds", "prob": 100 }, + { "group": "farming_seeds", "prob": 100 }, + { "group": "farming_tools", "prob": 90 } + ] + }, + { + "id": "trader_guns&ammo", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "group": "guns_pistol_common", "prob": 75 }, + { "group": "guns_pistol_rare", "prob": 50 }, + { "group": "guns_pistol_obscure", "prob": 30 }, + { "group": "guns_pistol_improvised", "prob": 95 }, + { "group": "guns_shotgun_common", "prob": 75 }, + { "group": "guns_shotgun_rare", "prob": 50 }, + { "group": "guns_shotgun_obscure", "prob": 30 }, + { "group": "guns_shotgun_milspec", "prob": 95 }, + { "group": "guns_shotgun_improvised", "prob": 90 }, + { "group": "guns_smg_improvised", "prob": 90 }, + { "group": "guns_smg_common", "prob": 70 }, + { "group": "guns_smg_rare", "prob": 50 }, + { "group": "guns_smg_obscure", "prob": 10 }, + { "group": "guns_rifle_common", "prob": 65 }, + { "group": "guns_rifle_rare", "prob": 40 }, + { "group": "ammo_pistol_common", "prob": 75 }, + { "group": "ammo_pistol_rare", "prob": 50 }, + { "group": "ammo_pistol_obscure", "prob": 30 }, + { "group": "ammo_shotgun_common", "prob": 75 }, + { "group": "ammo_shotgun_rare", "prob": 50 }, + { "group": "ammo_shotgun_obscure", "prob": 30 }, + { "group": "ammo_shotgun_milspec", "prob": 95 }, + { "group": "ammo_shotgun_reloaded", "prob": 90 }, + { "group": "ammo_smg_common", "prob": 70 }, + { "group": "ammo_smg_rare", "prob": 50 }, + { "group": "ammo_smg_obscure", "prob": 10 }, + { "group": "ammo_rifle_common", "prob": 65 }, + { "group": "ammo_rifle_rare", "prob": 40 } + ] + }, + { + "type": "mutation", + "id": "DEBUG_FLIMSY", + "name": { "str": "Debug No HP" }, + "points": -6, + "description": "You will die in one hit, more or less. Sneezing too hard will kill you.", + "debug": true, + "hp_modifier": -0.999 + }, + { + "type": "mutation", + "id": "DEBUG_FLIMSY2", + "name": { "str": "Debug No HP II" }, + "points": -6, + "description": "You will die in one hit, more or less. Sneezing too hard will kill you.", + "debug": true, + "hp_modifier": -0.99 + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/overmap.json b/data/Mainline_mods/Mods/Defense_Mode/overmap.json new file mode 100644 index 000000000..2fb02b6c6 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/overmap.json @@ -0,0 +1,144 @@ +[ + { + "type": "EXTERNAL_OPTION", + "name": "OVERMAP_PLACE_CITIES", + "info": "Allows to place cities during overmap generation.", + "stype": "bool", + "value": false + }, + { + "type": "EXTERNAL_OPTION", + "name": "OVERMAP_PLACE_ROADS", + "info": "Allows to place procgen roads during overmap generation.", + "stype": "bool", + "value": false + }, + { + "type": "overmap_terrain", + "id": [ + "dm_hospital_1", + "dm_hospital_2", + "dm_hospital_3", + "dm_hospital_4", + "dm_hospital_5", + "dm_hospital_6", + "dm_hospital_7", + "dm_hospital_8", + "dm_hospital_9" + ], + "copy-from": "generic_hospital" + }, + { + "type": "overmap_terrain", + "abstract": "generic_mansion_entrance", + "name": "mansion", + "sym": "M", + "color": "light_green", + "see_cost": 5, + "flags": [ "SOURCE_FOOD", "SOURCE_DRINK", "SOURCE_LUXURY", "SOURCE_BOOKS" ] + }, + { + "type": "overmap_terrain", + "abstract": "generic_mansion", + "copy-from": "generic_mansion_entrance", + "color": "green" + }, + { + "type": "overmap_terrain", + "id": [ + "dm_mansion_+1", + "dm_mansion_+1d", + "dm_mansion_+1u", + "dm_mansion_+2", + "dm_mansion_+2d", + "dm_mansion_+2u", + "dm_mansion_+3", + "dm_mansion_+3u", + "dm_mansion_+4", + "dm_mansion_+4d", + "dm_mansion_+4u", + "dm_mansion_c1", + "dm_mansion_c1d", + "dm_mansion_c1u", + "dm_mansion_c2", + "dm_mansion_c2d", + "dm_mansion_c2u", + "dm_mansion_c3", + "dm_mansion_c3d", + "dm_mansion_c3u", + "dm_mansion_c4", + "dm_mansion_c4d", + "dm_mansion_c4u", + "dm_mansion_c5", + "dm_mansion_c5d", + "dm_mansion_c5u", + "dm_mansion_e1d", + "dm_mansion_e1u", + "dm_mansion_e2", + "dm_mansion_e2d", + "dm_mansion_e2u", + "dm_mansion_t1", + "dm_mansion_t1d", + "dm_mansion_t1u", + "dm_mansion_t2", + "dm_mansion_t2d", + "dm_mansion_t2u", + "dm_mansion_t4", + "dm_mansion_t4d", + "dm_mansion_t4u", + "dm_mansion_t5", + "dm_mansion_t5d", + "dm_mansion_t5u", + "dm_mansion_t6", + "dm_mansion_t6d", + "dm_mansion_t6u", + "dm_mansion_t7", + "dm_mansion_t7d", + "dm_mansion_t7u" + ], + "copy-from": "generic_mansion" + }, + { + "type": "overmap_terrain", + "id": [ "dm_public_works_NE", "dm_public_works_NW", "dm_public_works_SE" ], + "name": "public works", + "sym": "w", + "color": "light_gray", + "see_cost": 5, + "flags": [ "SIDEWALK", "SOURCE_VEHICLES", "SOURCE_FABRICATION", "SOURCE_CONSTRUCTION" ] + }, + { + "type": "overmap_terrain", + "id": "dm_public_works_SW", + "name": "public works", + "sym": "W", + "color": "light_gray", + "see_cost": 5, + "flags": [ "SIDEWALK", "SOURCE_VEHICLES", "SOURCE_FABRICATION", "SOURCE_CONSTRUCTION" ] + }, + { + "type": "overmap_terrain", + "id": [ "public_works_NE_roof", "public_works_NW_roof", "public_works_SE_roof" ], + "name": "public works roof", + "sym": "w", + "color": "light_gray", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "public_works_SW_roof", + "name": "public works roof", + "sym": "W", + "color": "light_gray", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "dm_survivor_forest_camp" ], + "name": "survivor forest camp", + "sym": "+", + "color": "green", + "see_cost": 5, + "flags": [ "REQUIRES_PREDECESSOR" ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/region_overlay.json b/data/Mainline_mods/Mods/Defense_Mode/region_overlay.json new file mode 100644 index 000000000..54e01b507 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/region_overlay.json @@ -0,0 +1,7 @@ +[ + { + "type": "region_overlay", + "regions": [ "all" ], + "overmap_feature_flag_settings": { "clear_blacklist": false, "blacklist": [ ], "clear_whitelist": false, "whitelist": [ "DEFENSE_MODE" ] } + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/scenarios.json b/data/Mainline_mods/Mods/Defense_Mode/scenarios.json new file mode 100644 index 000000000..6bc147823 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/scenarios.json @@ -0,0 +1,113 @@ +[ + { + "type": "SCENARIO_BLACKLIST", + "subtype": "whitelist", + "scenarios": [ "defense_mode_fortified" ] + }, + { + "type": "scenario", + "id": "defense_mode_fortified", + "name": "Fortified", + "points": 0, + "description": "You do not know who you are, nor do you know why you're here. All you know is that you must fight and defend yourself from the horde.", + "allowed_locs": [ + "sloc_bar", + "sloc_hospital", + "public_works", + "megastore", + "mansion", + "sloc_shelter_a", + "sloc_gun_store", + "survivor_camp", + "sloc_cabin", + "cave", + "sugar_house", + "sloc_bank", + "sloc_pawn_shop", + "sloc_restaurant" + ], + "eoc": [ "scenario_defense_mode" ], + "forced_traits": [ "HAS_NEMESIS" ], + "flags": [ "LONE_START" ], + "start_name": "Holdout", + "reveal_locale": false + }, + { + "type": "start_location", + "id": "sloc_bar", + "name": "Bar", + "terrain": [ "bar" ] + }, + { + "type": "start_location", + "id": "sloc_hospital", + "name": "Hospital", + "terrain": [ "dm_hospital_3" ] + }, + { + "type": "start_location", + "id": "public_works", + "name": "Public Works", + "terrain": [ "dm_public_works_NW" ] + }, + { + "type": "start_location", + "id": "megastore", + "name": "Megastore", + "terrain": [ "megastore_1_2_0" ] + }, + { + "type": "start_location", + "id": "mansion", + "name": "Mansion", + "terrain": [ "dm_mansion_e2" ] + }, + { + "type": "start_location", + "id": "sloc_gun_store", + "name": "Gun Store", + "terrain": [ "s_gunstore_looted" ] + }, + { + "type": "start_location", + "id": "survivor_camp", + "name": "Survivor Camp", + "terrain": [ "dm_survivor_forest_camp" ] + }, + { + "type": "start_location", + "id": "cave", + "name": "Cave", + "terrain": [ "cave" ] + }, + { + "type": "start_location", + "id": "sugar_house", + "name": "Sugar House", + "terrain": [ "sugar_house" ] + }, + { + "type": "start_location", + "id": "motel", + "name": "Motel", + "terrain": [ "motel_twd_1" ] + }, + { + "type": "start_location", + "id": "sloc_pawn_shop", + "name": "Pawn Shop", + "terrain": [ "pawn" ] + }, + { + "type": "start_location", + "id": "sloc_restaurant", + "name": "Restaurant", + "terrain": [ "s_restaurant" ] + }, + { + "type": "start_location", + "id": "sloc_bank", + "name": "Bank", + "terrain": [ "bank" ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/specials.json b/data/Mainline_mods/Mods/Defense_Mode/specials.json new file mode 100644 index 000000000..c6615f896 --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/specials.json @@ -0,0 +1,262 @@ +[ + { + "type": "overmap_special", + "id": "bar", + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "bar_north" }, { "point": [ 0, 0, 1 ], "overmap": "bar_roof_north" } ], + "locations": [ "field" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "hospital", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "dm_hospital_3_north" }, + { "point": [ 1, 0, 0 ], "overmap": "dm_hospital_2_north" }, + { "point": [ 2, 0, 0 ], "overmap": "dm_hospital_1_north" }, + { "point": [ 0, 1, 0 ], "overmap": "dm_hospital_6_north" }, + { "point": [ 1, 1, 0 ], "overmap": "dm_hospital_5_north" }, + { "point": [ 2, 1, 0 ], "overmap": "dm_hospital_4_north" }, + { "point": [ 0, 2, 0 ], "overmap": "dm_hospital_9_north" }, + { "point": [ 1, 2, 0 ], "overmap": "dm_hospital_8_north" }, + { "point": [ 2, 2, 0 ], "overmap": "dm_hospital_7_north" }, + { "point": [ 0, 0, 1 ], "overmap": "hospital_3_roof_north" }, + { "point": [ 1, 0, 1 ], "overmap": "hospital_2_roof_north" }, + { "point": [ 2, 0, 1 ], "overmap": "hospital_1_roof_north" }, + { "point": [ 0, 1, 1 ], "overmap": "hospital_6_roof_north" }, + { "point": [ 1, 1, 1 ], "overmap": "hospital_5_roof_north" }, + { "point": [ 2, 1, 1 ], "overmap": "hospital_4_roof_north" }, + { "point": [ 0, 2, 1 ], "overmap": "hospital_9_roof_north" }, + { "point": [ 1, 2, 1 ], "overmap": "hospital_8_roof_north" }, + { "point": [ 2, 2, 1 ], "overmap": "hospital_7_roof_north" } + ], + "locations": [ "field" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "public_works", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "dm_public_works_NW_north" }, + { "point": [ 0, 0, 1 ], "overmap": "public_works_NW_roof_north" }, + { "point": [ 1, 0, 0 ], "overmap": "dm_public_works_NE_north" }, + { "point": [ 1, 0, 1 ], "overmap": "public_works_NE_roof_north" }, + { "point": [ 0, 1, 0 ], "overmap": "dm_public_works_SW_north" }, + { "point": [ 0, 1, 1 ], "overmap": "public_works_SW_roof_north" }, + { "point": [ 1, 1, 0 ], "overmap": "dm_public_works_SE_north" }, + { "point": [ 1, 1, 1 ], "overmap": "public_works_SE_roof_north" } + ], + "locations": [ "field" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "megastore", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "megastore_0_0_0_north" }, + { "point": [ 1, 0, 0 ], "overmap": "megastore_1_0_0_north" }, + { "point": [ 2, 0, 0 ], "overmap": "megastore_2_0_0_north" }, + { "point": [ 3, 0, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 0, 1, 0 ], "overmap": "megastore_0_1_0_north" }, + { "point": [ 1, 1, 0 ], "overmap": "megastore_1_1_0_north" }, + { "point": [ 2, 1, 0 ], "overmap": "megastore_2_1_0_north" }, + { "point": [ 3, 1, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 0, 2, 0 ], "overmap": "megastore_0_2_0_north" }, + { "point": [ 1, 2, 0 ], "overmap": "megastore_1_2_0_north" }, + { "point": [ 2, 2, 0 ], "overmap": "megastore_2_2_0_north" }, + { "point": [ 3, 2, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 0, 3, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 1, 3, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 2, 3, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 3, 3, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 0, 4, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 1, 4, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 2, 4, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 3, 4, 0 ], "overmap": "megastore_parking_north" }, + { "point": [ 0, 0, 1 ], "overmap": "megastore_0_0_1_north" }, + { "point": [ 1, 0, 1 ], "overmap": "megastore_1_0_1_north" }, + { "point": [ 2, 0, 1 ], "overmap": "megastore_2_0_1_north" }, + { "point": [ 0, 1, 1 ], "overmap": "megastore_0_1_1_north" }, + { "point": [ 1, 1, 1 ], "overmap": "megastore_1_1_1_north" }, + { "point": [ 2, 1, 1 ], "overmap": "megastore_2_1_1_north" }, + { "point": [ 0, 2, 1 ], "overmap": "megastore_0_2_1_north" }, + { "point": [ 1, 2, 1 ], "overmap": "megastore_1_2_1_north" }, + { "point": [ 2, 2, 1 ], "overmap": "megastore_2_2_1_north" }, + { "point": [ 0, 0, 2 ], "overmap": "megastore_0_0_roof_north" }, + { "point": [ 1, 0, 2 ], "overmap": "megastore_1_0_roof_north" }, + { "point": [ 2, 0, 2 ], "overmap": "megastore_2_0_roof_north" }, + { "point": [ 0, 1, 2 ], "overmap": "megastore_0_1_roof_north" }, + { "point": [ 1, 1, 2 ], "overmap": "megastore_1_1_roof_north" }, + { "point": [ 2, 1, 2 ], "overmap": "megastore_2_1_roof_north" }, + { "point": [ 0, 2, 2 ], "overmap": "megastore_0_2_roof_north" }, + { "point": [ 1, 2, 2 ], "overmap": "megastore_1_2_roof_north" }, + { "point": [ 2, 2, 2 ], "overmap": "megastore_2_2_roof_north" } + ], + "locations": [ "field" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "mansion", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "dm_mansion_c5_north" }, + { "point": [ 0, 0, 2 ], "overmap": "mansion_c5_roof_north" }, + { "point": [ 1, 0, 0 ], "overmap": "dm_mansion_e2_north" }, + { "point": [ 1, 0, 2 ], "overmap": "mansion_e2_roof_north" }, + { "point": [ 2, 0, 0 ], "overmap": "dm_mansion_c3_east" }, + { "point": [ 2, 0, 2 ], "overmap": "mansion_c3_roof_east" }, + { "point": [ 0, 1, 0 ], "overmap": "dm_mansion_t2_east" }, + { "point": [ 0, 1, 2 ], "overmap": "mansion_t2_roof_east" }, + { "point": [ 1, 1, 0 ], "overmap": "dm_mansion_+2_north" }, + { "point": [ 1, 1, 2 ], "overmap": "mansion_+2_roof_north" }, + { "point": [ 2, 1, 0 ], "overmap": "dm_mansion_t6_west" }, + { "point": [ 2, 1, 2 ], "overmap": "mansion_t6_roof_west" }, + { "point": [ 0, 2, 0 ], "overmap": "dm_mansion_c4_west" }, + { "point": [ 0, 2, 2 ], "overmap": "mansion_c4_roof_west" }, + { "point": [ 1, 2, 0 ], "overmap": "dm_mansion_t7_north" }, + { "point": [ 1, 2, 2 ], "overmap": "mansion_t7_roof_north" }, + { "point": [ 2, 2, 0 ], "overmap": "dm_mansion_c1_south" }, + { "point": [ 2, 2, 2 ], "overmap": "mansion_c1_roof_south" }, + { "point": [ 0, 0, 1 ], "overmap": "dm_mansion_c5u_north" }, + { "point": [ 1, 0, 1 ], "overmap": "dm_mansion_e2u_north" }, + { "point": [ 2, 0, 1 ], "overmap": "dm_mansion_c3u_east" }, + { "point": [ 0, 1, 1 ], "overmap": "dm_mansion_t2u_east" }, + { "point": [ 1, 1, 1 ], "overmap": "dm_mansion_+2u_north" }, + { "point": [ 2, 1, 1 ], "overmap": "dm_mansion_t6u_west" }, + { "point": [ 0, 2, 1 ], "overmap": "dm_mansion_c4u_west" }, + { "point": [ 1, 2, 1 ], "overmap": "dm_mansion_t7u_north" }, + { "point": [ 2, 2, 1 ], "overmap": "dm_mansion_c1u_south" }, + { "point": [ 0, 0, -1 ], "overmap": "dm_mansion_c5d_north" }, + { "point": [ 1, 0, -1 ], "overmap": "dm_mansion_e2d_north" }, + { "point": [ 2, 0, -1 ], "overmap": "dm_mansion_c3d_east" }, + { "point": [ 0, 1, -1 ], "overmap": "dm_mansion_t2d_east" }, + { "point": [ 1, 1, -1 ], "overmap": "dm_mansion_+2d_north" }, + { "point": [ 2, 1, -1 ], "overmap": "dm_mansion_t6d_west" }, + { "point": [ 0, 2, -1 ], "overmap": "dm_mansion_c4d_west" }, + { "point": [ 1, 2, -1 ], "overmap": "dm_mansion_t7d_north" }, + { "point": [ 2, 2, -1 ], "overmap": "dm_mansion_c1d_south" } + ], + "locations": [ "field" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "s_gunstore_looted", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_gunstore_looted_north" }, + { "point": [ 0, 0, 1 ], "overmap": "s_gunstore_2ndfloor_north" }, + { "point": [ 0, 0, 2 ], "overmap": "s_gunstore_roof_north" } + ], + "locations": [ "field" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "survivor_forest_camp", + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "dm_survivor_forest_camp_north" } ], + "locations": [ "forest_center" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "Evac Shelter", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "shelter_north" }, + { "point": [ 0, 0, -1 ], "overmap": "shelter_under_north" }, + { "point": [ 0, 0, 1 ], "overmap": "shelter_roof_north" } + ], + "locations": [ "wilderness" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "Cabin", + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "cabin_north" }, { "point": [ 0, 0, 1 ], "overmap": "cabin_roof_north" } ], + "locations": [ "forest" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "Cave", + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "cave" }, { "point": [ 0, 0, -1 ], "overmap": "cave_underground" } ], + "locations": [ "forest" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "Sugar House", + "overmaps": [ + { "point": [ 0, -1, 0 ], "overmap": "sugar_house_parking_north" }, + { "point": [ 0, 0, 0 ], "overmap": "sugar_house_north" }, + { "point": [ 0, 0, 1 ], "overmap": "sugar_house_roof_north" } + ], + "locations": [ "forest" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "motel-twd", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "motel_twd_1_north" }, + { "point": [ 1, 0, 0 ], "overmap": "motel_twd_2_north" }, + { "point": [ 0, 0, 1 ], "overmap": "motel_twd_1_f1_north" }, + { "point": [ 1, 0, 1 ], "overmap": "motel_twd_2_f1_north" }, + { "point": [ 0, 0, 2 ], "overmap": "motel_twd_1_f2_north" } + ], + "locations": [ "land" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "bank", + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "bank_north" }, { "point": [ 0, 0, 1 ], "overmap": "bank_roof_north" } ], + "locations": [ "land" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "pawn_shop", + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "pawn_north" }, { "point": [ 0, 0, 1 ], "overmap": "pawn_roof_north" } ], + "locations": [ "land" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "restraunt", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "s_restaurant_north" }, + { "point": [ 0, 0, 1 ], "overmap": "s_restaurant_roof_north" } + ], + "locations": [ "land" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + } +] diff --git a/data/Mainline_mods/Mods/Defense_Mode/species.json b/data/Mainline_mods/Mods/Defense_Mode/species.json new file mode 100644 index 000000000..856cc75da --- /dev/null +++ b/data/Mainline_mods/Mods/Defense_Mode/species.json @@ -0,0 +1,57 @@ +[ + { + "type": "SPECIES", + "id": "SPIDER_DM", + "description": "a spider", + "//": "Adding the ALL_SEEING and NEMESIS flags lets monsters track your position without fancy C++ stuff.", + "anger_triggers": [ "FRIEND_DIED" ], + "fear_triggers": [ "HURT", "FIRE" ], + "flags": [ "ALL_SEEING", "NEMESIS" ], + "bleeds": "fd_blood_insect" + }, + { + "type": "SPECIES", + "id": "PLANT", + "description": "a plant", + "fear_triggers": [ "HURT", "FIRE" ], + "flags": [ "ALL_SEEING", "NEMESIS" ], + "bleeds": "fd_blood_veggy" + }, + { + "type": "SPECIES", + "id": "ZOMBIE", + "description": "a zombie", + "footsteps": "shuffling.", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "bleeds": "fd_blood" + }, + { + "type": "SPECIES", + "id": "FERAL", + "description": "a feral", + "footsteps": "shuffling.", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "bleeds": "fd_blood" + }, + { + "type": "SPECIES", + "id": "ROBOT", + "description": "a robot", + "footsteps": "mechanical whirring.", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "bleeds": "fd_mechanical_fluid" + }, + { + "type": "SPECIES", + "id": "MIGO", + "description": "a creature from the mi-go homeworld", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "fear_triggers": [ "HURT" ] + }, + { + "type": "SPECIES", + "id": "NETHER", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "description": "a nether creature" + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/DESIGN.md b/data/Mainline_mods/Mods/DinoMod/DESIGN.md index 7f387800b..4ca9d2fdf 100644 --- a/data/Mainline_mods/Mods/DinoMod/DESIGN.md +++ b/data/Mainline_mods/Mods/DinoMod/DESIGN.md @@ -1,18 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Design Document SPOILERS AHEAD](#design-document-spoilers-ahead) -- [What belongs in DinoMod?](#what-belongs-in-dinomod) -- [Realism vs. Fun](#realism-vs-fun) -- [Adding, replacing, removing](#adding-replacing-removing) -- [How to contribute](#how-to-contribute) -- [Where should new dinosaurs spawn?](#where-should-new-dinosaurs-spawn) -- [How to add a dinosaur](#how-to-add-a-dinosaur) -- [How to add a dinosaur nest](#how-to-add-a-dinosaur-nest) - - - # Design Document SPOILERS AHEAD The core idea of DinoMod is this: https://tvtropes.org/pmwiki/pmwiki.php/Main/EverythingsBetterWithDinosaurs The purpose of this mod is to make Cataclysm a more fun game to play and develop for, showing off new mechanics and bringing life to parts of the game that aren't as well-developed. @@ -73,4 +58,11 @@ This is much easier! * Each dinosaur gets its own nest mapgen file in \mapgen\map_extras\ you can copy from a similar dino there * You can define the map extra in \overmap\map_extras.json * Finally you tell it to spawn in the right biome in regional_overlay.json . Predator nests go in swamps, everything else in forests + +# Lore + +* Dinosaurs came here through portals at the very beginning of the portal storm +* The Swampers expected this and were prepared. They believe that the dinosaurs are here to restore our world to be back in harmony with the rest +* Before all this, some of the labs were already pulling dinos and dino material back here for study, including some with CBMs. They got out. +* The Exodii don't know that this was a dino free world. That's very rare. diff --git a/data/Mainline_mods/Mods/DinoMod/NPC/NC_BO_BARONYX.json b/data/Mainline_mods/Mods/DinoMod/NPC/NC_BO_BARONYX.json index 80872797d..1bee24cd0 100644 --- a/data/Mainline_mods/Mods/DinoMod/NPC/NC_BO_BARONYX.json +++ b/data/Mainline_mods/Mods/DinoMod/NPC/NC_BO_BARONYX.json @@ -3,7 +3,7 @@ "type": "npc_class", "id": "NC_SWAMPER", "name": { "str": "Swamper" }, - "job_description": "The great eaters have returned and they must be fed", + "job_description": "The great eaters have returned and they must be fed.", "traits": [ { "trait": "SPIRITUAL" }, { "trait": "PRETTY" }, { "trait": "PSYCHOPATH" } ], "common": false, "bonus_per": { "rng": [ 0, 2 ] }, @@ -86,7 +86,7 @@ { "type": "talk_topic", "id": "TALK_SWAMPER_EATING", - "dynamic_line": "The great eaters have returned, along with the false ones. We must feed the eaters and destroy the pretenders child.", + "dynamic_line": "The great eaters have returned, along with the false ones. We must feed the eaters and destroy the pretenders, child.", "responses": [ { "text": "Who are you talking about?", "topic": "TALK_SWAMPER_EATING2" }, { "text": "No thank you, I'd like to leave now.", "topic": "TALK_DONE" } @@ -105,7 +105,7 @@ { "type": "talk_topic", "id": "TALK_SWAMPER_EATING3", - "dynamic_line": "The great eaters are the ones that were lost, what we call dinosaurs whose meat we took and who are taking it back. The pretenders are those others that have come to steal the meat of this world. It does not belong to them and we will take it from their mouths.", + "dynamic_line": "The great eaters are the ones that were lost, what we call dinosaurs, whose meat we took and who are taking it back. The pretenders are those others that have come to steal the meat of this world. It does not belong to them and we will take it from their mouths.", "responses": [ { "text": "Okay, so you worship dinosaurs. Understood.", "topic": "TALK_NONE" } ] }, { @@ -161,7 +161,7 @@ ] }, "dialogue": { - "describe": "The eaters are hungry. They need meat", + "describe": "The eaters are hungry. They need meat.", "offer": "If you wish to feed the eaters, your work will be rewarded. Go out, butcher a pure animal. Not a false eater, the meat must be good to eat. Then bring me the meat and I will see to the eaters.", "accepted": "Excellent. The eaters must feed.", "rejected": "Understood. The great eaters will feed either way.", @@ -177,7 +177,7 @@ "type": "talk_topic", "dynamic_line": { "has_no_available_mission": { - "has_no_assigned_mission": "The eaters have fed. They will be hungry again in time", + "has_no_assigned_mission": "The eaters have fed. They will be hungry again in time.", "no": { "has_many_assigned_missions": "You know what to do.", "no": "That is all for now." } }, "no": { diff --git a/data/Mainline_mods/Mods/DinoMod/NPC/NC_Red.json b/data/Mainline_mods/Mods/DinoMod/NPC/NC_Red.json index 39571229a..6a60d29fe 100644 --- a/data/Mainline_mods/Mods/DinoMod/NPC/NC_Red.json +++ b/data/Mainline_mods/Mods/DinoMod/NPC/NC_Red.json @@ -3,7 +3,7 @@ "type": "npc", "id": "old_guard_red", "name_unique": "Red", - "class": "NC_HUNTER", + "class": "NC_SOLDIER", "attitude": 7, "mission": 3, "chat": "TALK_OLD_GUARD_RED", diff --git a/data/Mainline_mods/Mods/DinoMod/NPC/NPC_Old_Guard_RED_Soldier_1.json b/data/Mainline_mods/Mods/DinoMod/NPC/NPC_Old_Guard_RED_Soldier_1.json new file mode 100644 index 000000000..fc8971f29 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/NPC/NPC_Old_Guard_RED_Soldier_1.json @@ -0,0 +1,25 @@ +[ + { + "type": "npc", + "id": "old_guard_red_soldier", + "//": "Generic guard for the dinomod variant of the old guard.", + "name_suffix": "Soldier", + "class": "NC_SOLDIER", + "attitude": 0, + "mission": 8, + "chat": "TALK_OLD_GUARD_RED_SOLDIER", + "faction": "old_guard" + }, + { + "type": "talk_topic", + "id": "TALK_OLD_GUARD_RED_SOLDIER", + "dynamic_line": [ + "I'm afraid I can't talk now.", + "Stay safe out there.", + "Kill all dinosaurs.", + "Welcome to whatever this is.", + "I'm supposed to direct all questions to my leadership, that's Red over there." + ], + "responses": [ { "text": "Sure sure…", "topic": "TALK_DONE" } ] + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/NPC/NPC_old_guard_representative.json b/data/Mainline_mods/Mods/DinoMod/NPC/NPC_old_guard_representative.json index 333c9c16a..18e20437e 100644 --- a/data/Mainline_mods/Mods/DinoMod/NPC/NPC_old_guard_representative.json +++ b/data/Mainline_mods/Mods/DinoMod/NPC/NPC_old_guard_representative.json @@ -7,7 +7,7 @@ { "id": "TALK_OLD_GUARD_REP_DINOSAURS", "type": "talk_topic", - "dynamic_line": "They just started showing up about the same time it all fell apart. They attack the caravans and the bandits both. Hungry bastards. All dinosaurs are shoot on sight. We don't eat them, they're probably poisoned with whatever got the dead ones. Just leave them for the crows. Same with the eggs. We have a forward base at the train station working on wiping them all out. Talk to Red there.", + "dynamic_line": "They just started showing up about the same time it all fell apart. They attack the caravans and the bandits both. Hungry bastards. All dinosaurs are shoot on sight. We don't eat them, they're probably poisoned with whatever got the dead ones. Best to burn and bury them. Same with the eggs. We have a team out working on wiping them all out in the region. Check the mass graves. Talk to Red there.", "responses": [ { "text": "Probably for the best.", "topic": "TALK_OLD_GUARD_REP" } ] } ] diff --git a/data/Mainline_mods/Mods/DinoMod/README.md b/data/Mainline_mods/Mods/DinoMod/README.md index 4217a7e33..89dfba25c 100644 --- a/data/Mainline_mods/Mods/DinoMod/README.md +++ b/data/Mainline_mods/Mods/DinoMod/README.md @@ -1,12 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [DinoMod](#dinomod) -- [Takeaway Features](#takeaway-features) - - - # DinoMod A content addition mod for Cataclysm: DDA, adds dinosaurs to fight, befriend or just to add something fun and new. Intended to work with all other vanilla-DDA based mods, but probably not total conversions. @@ -16,6 +7,7 @@ Intended for all players and includes content of varying difficulty - Introduces dinosaur faction, which operates and interacts in a similar way to vanilla factions like the blob or the fungus - Spawns a rich variety of dinosaurs in many locations based on natural habitat and story - Includes additional story content related to the new dinosaurs - - Spawns a new location outside cities and adds variants to certain areas + - Spawns new locations outside cities and adds variants to certain areas - Dinos lay eggs, some can be tamed and ridden, and spawns change seasonally and as the game progresses - Higher difficulty encounters can be found in labs, along streams, and in swamps, some with better loot + - Three new dinosaur mutation lines diff --git a/data/Mainline_mods/Mods/DinoMod/achievements/achievements.json b/data/Mainline_mods/Mods/DinoMod/achievements/achievements.json index 2b8d9a480..9164e1103 100644 --- a/data/Mainline_mods/Mods/DinoMod/achievements/achievements.json +++ b/data/Mainline_mods/Mods/DinoMod/achievements/achievements.json @@ -37,5 +37,47 @@ "name": "Giant Asteroid", "hidden_by": [ "achievement_kill_10000_dinos" ], "requirements": [ { "event_statistic": "num_avatar_dino_kills", "is": ">=", "target": 100000 } ] + }, + { + "id": "achievement_mutation_threshold_tyrant", + "type": "achievement", + "name": "Unending hunger", + "requirements": [ + { + "event_statistic": "avatar_last_crosses_mutation_threshold", + "is": "==", + "target": [ "mutation_category_id", "TYRANT" ], + "description": "crossed tyrant mutation threshold", + "visible": "when_achievement_completed" + } + ] + }, + { + "id": "achievement_mutation_threshold_stego", + "type": "achievement", + "name": "Fortress secure", + "requirements": [ + { + "event_statistic": "avatar_last_crosses_mutation_threshold", + "is": "==", + "target": [ "mutation_category_id", "STEGO" ], + "description": "crossed stego mutation threshold", + "visible": "when_achievement_completed" + } + ] + }, + { + "id": "achievement_mutation_threshold_horns", + "type": "achievement", + "name": "Too dangerous to mess with", + "requirements": [ + { + "event_statistic": "avatar_last_crosses_mutation_threshold", + "is": "==", + "target": [ "mutation_category_id", "HORNS" ], + "description": "crossed horns mutation threshold", + "visible": "when_achievement_completed" + } + ] } ] diff --git a/data/Mainline_mods/Mods/DinoMod/effects.json b/data/Mainline_mods/Mods/DinoMod/effects.json index 10added5a..448cf3dd7 100644 --- a/data/Mainline_mods/Mods/DinoMod/effects.json +++ b/data/Mainline_mods/Mods/DinoMod/effects.json @@ -24,6 +24,31 @@ "rating": "bad", "blood_analysis_description": "Stego Mutagen Contamination" }, + { + "type": "effect_type", + "id": "mutagen_horns", + "name": [ "Horns Mutation", "Horns Transformation", "Horns Metamorphosis" ], + "desc": [ + "You consumed horns mutagen.", + "You consumed a large amount of horns mutagen.", + "You consumed a life-changing amount of horns mutagen." + ], + "max_intensity": 3, + "resist_traits": [ "THRESH_HORNS" ], + "base_mods": { + "hurt_min": [ 1 ], + "hurt_max": [ 2 ], + "hurt_chance": [ -22 ], + "hurt_tick": [ 75 ], + "pain_min": [ 1 ], + "pain_max": [ 2 ], + "pain_chance": [ 100 ], + "pain_tick": [ 75 ] + }, + "scaling_mods": { "hurt_chance": [ 21, 0 ], "pain_chance": [ -30 ] }, + "rating": "bad", + "blood_analysis_description": "Horns Mutagen Contamination" + }, { "type": "effect_type", "id": "mutagen_tyrant", diff --git a/data/Mainline_mods/Mods/DinoMod/harvest.json b/data/Mainline_mods/Mods/DinoMod/harvest.json index 7d733f4ea..d93b5dcdb 100644 --- a/data/Mainline_mods/Mods/DinoMod/harvest.json +++ b/data/Mainline_mods/Mods/DinoMod/harvest.json @@ -156,6 +156,208 @@ { "drop": "down_feather", "type": "skin", "mass_ratio": 0.001 } ] }, + { + "id": "tyrannosaurus", + "//": "drops large stomach and skull", + "type": "harvest", + "entries": [ + { "drop": "skull_tyrannosaurus", "type": "bone", "scale_num": [ 1, 1 ], "max": 1 }, + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, + { "drop": "feather", "type": "skin", "mass_ratio": 0.002 }, + { "drop": "down_feather", "type": "skin", "mass_ratio": 0.001 } + ] + }, + { + "id": "allosaurus", + "//": "drops large stomach and skull", + "type": "harvest", + "entries": [ + { "drop": "skull_allosaurus", "type": "bone", "scale_num": [ 1, 1 ], "max": 1 }, + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, + { "drop": "feather", "type": "skin", "mass_ratio": 0.002 }, + { "drop": "down_feather", "type": "skin", "mass_ratio": 0.001 } + ] + }, + { + "id": "acrocanthosaurus", + "//": "drops large stomach and skull", + "type": "harvest", + "entries": [ + { "drop": "skull_acrocanthosaurus", "type": "bone", "scale_num": [ 1, 1 ], "max": 1 }, + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, + { "drop": "feather", "type": "skin", "mass_ratio": 0.002 }, + { "drop": "down_feather", "type": "skin", "mass_ratio": 0.001 } + ] + }, + { + "id": "giganotosaurus", + "//": "drops large stomach and skull", + "type": "harvest", + "entries": [ + { "drop": "skull_giganotosaurus", "type": "bone", "scale_num": [ 1, 1 ], "max": 1 }, + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, + { "drop": "feather", "type": "skin", "mass_ratio": 0.002 }, + { "drop": "down_feather", "type": "skin", "mass_ratio": 0.001 } + ] + }, + { + "id": "dino_large_leather", + "//": "drops large stomach and skull", + "type": "harvest", + "entries": [ + { "drop": "skull_dino_large", "type": "bone", "scale_num": [ 1, 1 ], "max": 1 }, + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "bone_marrow", "type": "bone", "mass_ratio": 0.005 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 } + ] + }, + { + "id": "torosaurus", + "//": "drops large stomach and skull", + "type": "harvest", + "entries": [ + { "drop": "skull_torosaurus", "type": "bone", "scale_num": [ 1, 1 ], "max": 1 }, + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "bone_marrow", "type": "bone", "mass_ratio": 0.005 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 } + ] + }, + { + "id": "styracosaurus", + "//": "drops large stomach and skull", + "type": "harvest", + "entries": [ + { "drop": "skull_styracosaurus", "type": "bone", "scale_num": [ 1, 1 ], "max": 1 }, + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "bone_marrow", "type": "bone", "mass_ratio": 0.005 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 } + ] + }, + { + "id": "centrosaurus", + "//": "drops large stomach and skull", + "type": "harvest", + "entries": [ + { "drop": "skull_centrosaurus", "type": "bone", "scale_num": [ 1, 1 ], "max": 1 }, + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "bone_marrow", "type": "bone", "mass_ratio": 0.005 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 } + ] + }, + { + "id": "triceratops", + "//": "drops large stomach and skull", + "type": "harvest", + "entries": [ + { "drop": "skull_triceratops", "type": "bone", "scale_num": [ 1, 1 ], "max": 1 }, + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "bone_marrow", "type": "bone", "mass_ratio": 0.005 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 } + ] + }, { "id": "zed_dino_leather", "type": "harvest", @@ -179,5 +381,29 @@ { "drop": "feather", "type": "skin", "mass_ratio": 0.002 }, { "drop": "down_feather", "type": "skin", "mass_ratio": 0.001 } ] + }, + { + "id": "zed_dino_leather_acid", + "type": "harvest", + "entries": [ + { "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.25 }, + { "drop": "blood_acid", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "fat_tainted", "type": "flesh", "mass_ratio": 0.08 }, + { "drop": "bone_tainted", "type": "bone", "mass_ratio": 0.1 }, + { "drop": "raw_tainted_leather", "type": "skin", "mass_ratio": 0.02 } + ] + }, + { + "id": "zed_dino_feather_acid", + "type": "harvest", + "entries": [ + { "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.25 }, + { "drop": "blood_acid", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "fat_tainted", "type": "flesh", "mass_ratio": 0.08 }, + { "drop": "bone_tainted", "type": "bone", "mass_ratio": 0.1 }, + { "drop": "raw_tainted_leather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "feather", "type": "skin", "mass_ratio": 0.002 }, + { "drop": "down_feather", "type": "skin", "mass_ratio": 0.001 } + ] } ] diff --git a/data/Mainline_mods/Mods/DinoMod/harvest_dissect.json b/data/Mainline_mods/Mods/DinoMod/harvest_dissect.json index 4260e6a0d..2e69d0fe2 100644 --- a/data/Mainline_mods/Mods/DinoMod/harvest_dissect.json +++ b/data/Mainline_mods/Mods/DinoMod/harvest_dissect.json @@ -81,6 +81,30 @@ "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", "entries": [ { "drop": "stego_sample_huge", "type": "mutagen_group" } ] }, + { + "id": "dissect_horns_sample_single", + "type": "harvest", + "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", + "entries": [ { "drop": "horns_sample_single", "type": "mutagen_group" } ] + }, + { + "id": "dissect_horns_sample_small", + "type": "harvest", + "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", + "entries": [ { "drop": "horns_sample_small", "type": "mutagen_group" } ] + }, + { + "id": "dissect_horns_sample_large", + "type": "harvest", + "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", + "entries": [ { "drop": "horns_sample_large", "type": "mutagen_group" } ] + }, + { + "id": "dissect_horns_sample_huge", + "type": "harvest", + "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", + "entries": [ { "drop": "horns_sample_huge", "type": "mutagen_group" } ] + }, { "id": "dissect_dino_large_pred", "type": "harvest", diff --git a/data/Mainline_mods/Mods/DinoMod/items/biosignatures.json b/data/Mainline_mods/Mods/DinoMod/items/biosignatures.json index 7178a678e..c96a7f8c0 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/biosignatures.json +++ b/data/Mainline_mods/Mods/DinoMod/items/biosignatures.json @@ -5,7 +5,7 @@ "name": { "str_sp": "dinosaur droppings" }, "copy-from": "feces_bird", "weight": "750 g", - "volume": "1 L", + "volume": "250 ml", "description": "Dinosaur fecal matter; this could probably be used to make some great fertilizer." } ] diff --git a/data/Mainline_mods/Mods/DinoMod/items/carnivore.json b/data/Mainline_mods/Mods/DinoMod/items/carnivore.json index 8043bc81f..bffe19b6b 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/carnivore.json +++ b/data/Mainline_mods/Mods/DinoMod/items/carnivore.json @@ -108,5 +108,61 @@ "price_postapoc": 40, "material": [ "bone" ], "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 1 ] ] + }, + { + "type": "GENERIC", + "id": "skull_tyrannosaurus", + "name": { "str": "tyrannosaurus skull" }, + "copy-from": "skull_dino_pred_large" + }, + { + "type": "GENERIC", + "id": "skull_allosaurus", + "name": { "str": "allosaurus skull" }, + "copy-from": "skull_dino_pred_large" + }, + { + "type": "GENERIC", + "id": "skull_acrocanthosaurus", + "name": { "str": "acrocanthosaurus skull" }, + "copy-from": "skull_dino_pred_large" + }, + { + "type": "GENERIC", + "id": "skull_giganotosaurus", + "name": { "str": "giganotosaurus skull" }, + "copy-from": "skull_dino_pred_large" + }, + { + "type": "GENERIC", + "id": "skull_triceratops", + "name": { "str": "triceratops skull" }, + "description": "Large dinosaur skull with three large horns and a large crest.", + "copy-from": "skull_dino_large", + "qualities": [ [ "COOK", 1 ] ] + }, + { + "type": "GENERIC", + "id": "skull_torosaurus", + "name": { "str": "torosaurus skull" }, + "description": "Large dinosaur skull with three large horns and a large crest.", + "copy-from": "skull_dino_large", + "qualities": [ [ "COOK", 1 ] ] + }, + { + "type": "GENERIC", + "id": "skull_styracosaurus", + "name": { "str": "styracosaurus skull" }, + "description": "Large dinosaur skull with a large horn above the nose and a spiked crest.", + "copy-from": "skull_dino_large", + "qualities": [ [ "COOK", 1 ] ] + }, + { + "type": "GENERIC", + "id": "skull_centrosaurus", + "name": { "str": "centrosaurus skull" }, + "description": "Large dinosaur skull with a large horn above the nose and a bony crest.", + "copy-from": "skull_dino_large", + "qualities": [ [ "COOK", 1 ] ] } ] diff --git a/data/Mainline_mods/Mods/DinoMod/items/containers.json b/data/Mainline_mods/Mods/DinoMod/items/containers.json index 5391a29c6..193bd22ef 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/containers.json +++ b/data/Mainline_mods/Mods/DinoMod/items/containers.json @@ -10,7 +10,6 @@ "price": 9000, "price_postapoc": 50, "to_hit": -1, - "bashing": 1, "material": [ "gutskin" ], "symbol": ")", "color": "brown", @@ -22,6 +21,7 @@ "max_item_volume": "34 ml", "max_contains_weight": "12 kg" } - ] + ], + "melee_damage": { "bash": 1 } } ] diff --git a/data/Mainline_mods/Mods/DinoMod/items/egg.json b/data/Mainline_mods/Mods/DinoMod/items/egg.json index c40d3d9bb..242b7a799 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/egg.json +++ b/data/Mainline_mods/Mods/DinoMod/items/egg.json @@ -13,10 +13,9 @@ "healthy": 1, "calories": 2600, "description": "Pale, round egg laid by a dinosaur.", - "price": 500, + "price": "125 cent", "material": [ "egg" ], - "volume": "6800 ml", - "stack_size": 4, + "volume": "1700 ml", "fun": -6, "flags": [ "FREEZERBURN" ], "rot_spawn": "GROUP_EGG_DINO", @@ -36,7 +35,7 @@ "calories": 80, "description": "Pale, round egg laid by a smaller dinosaur.", "material": [ "egg" ], - "volume": "50 ml", + "volume": "12 ml", "rot_spawn": "GROUP_EGG_DINO_SMALL" }, { @@ -51,7 +50,7 @@ "calories": 5200, "description": "Pale, round egg laid by a larger dinosaur.", "material": [ "egg" ], - "volume": "13600 ml", + "volume": "3400 ml", "rot_spawn": "GROUP_EGG_DINO_LARGE" }, { @@ -68,10 +67,9 @@ "healthy": 1, "calories": 2600, "description": "Pale, football-shaped egg laid by a dinosaur.", - "price": 500, + "price": "125 cent", "material": [ "egg" ], - "volume": "6800 ml", - "stack_size": 4, + "volume": "1700 ml", "fun": -6, "flags": [ "FREEZERBURN" ], "rot_spawn": "GROUP_EGG_THEROPOD", @@ -99,9 +97,16 @@ "calories": 5200, "description": "Pale, football-shaped egg laid by a larger dinosaur.", "material": [ "egg" ], - "volume": "13600 ml", + "volume": "3400 ml", "rot_spawn": "GROUP_EGG_THEROPOD_LARGE" }, + { + "type": "COMESTIBLE", + "id": "egg_tawa", + "name": "tawa egg", + "copy-from": "egg_dino_theropod_small", + "rot_spawn": "GROUP_EGG_tawa" + }, { "type": "COMESTIBLE", "id": "egg_coelophysis", @@ -151,6 +156,13 @@ "copy-from": "egg_dino_theropod", "rot_spawn": "GROUP_EGG_acrocanthosaurus" }, + { + "type": "COMESTIBLE", + "id": "egg_giganotosaurus", + "name": "giganotosaurus egg", + "copy-from": "egg_dino_theropod", + "rot_spawn": "GROUP_EGG_giganotosaurus" + }, { "type": "COMESTIBLE", "id": "egg_siats", @@ -249,6 +261,13 @@ "copy-from": "egg_dino_theropod_small", "rot_spawn": "GROUP_EGG_albertonykus" }, + { + "type": "COMESTIBLE", + "id": "egg_therizinosaurus", + "name": "therizinosaurus egg", + "copy-from": "egg_dino_theropod", + "rot_spawn": "GROUP_EGG_therizinosaurus" + }, { "type": "COMESTIBLE", "id": "egg_nothronychus", @@ -319,6 +338,13 @@ "copy-from": "egg_dino", "rot_spawn": "GROUP_EGG_sarahsaurus" }, + { + "type": "COMESTIBLE", + "id": "egg_anchisaurus", + "name": "anchisaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_anchisaurus" + }, { "type": "COMESTIBLE", "id": "egg_issi", @@ -361,6 +387,13 @@ "copy-from": "egg_dino_large", "rot_spawn": "GROUP_EGG_diplodocus" }, + { + "type": "COMESTIBLE", + "id": "egg_barosaurus", + "name": "barosaurus egg", + "copy-from": "egg_dino_large", + "rot_spawn": "GROUP_EGG_barosaurus" + }, { "type": "COMESTIBLE", "id": "egg_camarasaurus", @@ -403,6 +436,13 @@ "copy-from": "egg_dino", "rot_spawn": "GROUP_EGG_hesperosaurus" }, + { + "type": "COMESTIBLE", + "id": "egg_gastonia", + "name": "gastonia egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_gastonia" + }, { "type": "COMESTIBLE", "id": "egg_gargoyleosaurus", @@ -424,6 +464,13 @@ "copy-from": "egg_dino", "rot_spawn": "GROUP_EGG_nodosaurus" }, + { + "type": "COMESTIBLE", + "id": "egg_panoplosaurus", + "name": "panoplosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_panoplosaurus" + }, { "type": "COMESTIBLE", "id": "egg_edmontonia", @@ -452,6 +499,27 @@ "copy-from": "egg_dino", "rot_spawn": "GROUP_EGG_ankylosaurus" }, + { + "type": "COMESTIBLE", + "id": "egg_euoplocephalus", + "name": "euoplocephalus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_euoplocephalus" + }, + { + "type": "COMESTIBLE", + "id": "egg_scolosaurus", + "name": "scolosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_scolosaurus" + }, + { + "type": "COMESTIBLE", + "id": "egg_tenontosaurus", + "name": "tenontosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_tenontosaurus" + }, { "type": "COMESTIBLE", "id": "egg_dryosaurus", @@ -475,24 +543,31 @@ }, { "type": "COMESTIBLE", - "id": "egg_parasaurolophus", - "name": "parasaurolophus egg", + "id": "egg_maiasaura", + "name": "maiasaura egg", "copy-from": "egg_dino", - "rot_spawn": "GROUP_EGG_parasaurolophus" + "rot_spawn": "GROUP_EGG_maiasaura" }, { "type": "COMESTIBLE", - "id": "egg_corythosaurus", - "name": "corythosaurus egg", + "id": "egg_gryposaurus", + "name": "gryposaurus egg", "copy-from": "egg_dino", - "rot_spawn": "GROUP_EGG_corythosaurus" + "rot_spawn": "GROUP_EGG_gryposaurus" }, { "type": "COMESTIBLE", - "id": "egg_maiasaura", - "name": "maiasaura egg", + "id": "egg_prosaurolophus", + "name": "prosaurolophus egg", "copy-from": "egg_dino", - "rot_spawn": "GROUP_EGG_maiasaura" + "rot_spawn": "GROUP_EGG_prosaurolophus" + }, + { + "type": "COMESTIBLE", + "id": "egg_saurolophus", + "name": "saurolophus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_saurolophus" }, { "type": "COMESTIBLE", @@ -503,10 +578,31 @@ }, { "type": "COMESTIBLE", - "id": "egg_gryposaurus", - "name": "gryposaurus egg", + "id": "egg_parasaurolophus", + "name": "parasaurolophus egg", "copy-from": "egg_dino", - "rot_spawn": "GROUP_EGG_gryposaurus" + "rot_spawn": "GROUP_EGG_parasaurolophus" + }, + { + "type": "COMESTIBLE", + "id": "egg_lambeosaurus", + "name": "lambeosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_lambeosaurus" + }, + { + "type": "COMESTIBLE", + "id": "egg_corythosaurus", + "name": "corythosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_corythosaurus" + }, + { + "type": "COMESTIBLE", + "id": "egg_hypacrosaurus", + "name": "hypacrosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_hypacrosaurus" }, { "type": "COMESTIBLE", @@ -543,6 +639,13 @@ "copy-from": "egg_dino", "rot_spawn": "GROUP_EGG_zuniceratops" }, + { + "type": "COMESTIBLE", + "id": "egg_styracosaurus", + "name": "styracosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_styracosaurus" + }, { "type": "COMESTIBLE", "id": "egg_centrosaurus", @@ -550,6 +653,20 @@ "copy-from": "egg_dino", "rot_spawn": "GROUP_EGG_centrosaurus" }, + { + "type": "COMESTIBLE", + "id": "egg_einiosaurus", + "name": "einiosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_einiosaurus" + }, + { + "type": "COMESTIBLE", + "id": "egg_achelousaurus", + "name": "achelousaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_achelousaurus" + }, { "type": "COMESTIBLE", "id": "egg_pachyrhinosaurus", @@ -557,6 +674,13 @@ "copy-from": "egg_dino", "rot_spawn": "GROUP_EGG_pachyrhinosaurus" }, + { + "type": "COMESTIBLE", + "id": "egg_chasmosaurus", + "name": "chasmosaurus egg", + "copy-from": "egg_dino", + "rot_spawn": "GROUP_EGG_chasmosaurus" + }, { "type": "COMESTIBLE", "id": "egg_pentaceratops", @@ -640,7 +764,9 @@ "price_postapoc": 50, "material": [ "egg" ], "fun": 2, - "flags": [ "FREEZERBURN" ] + "flags": [ "FREEZERBURN" ], + "rot_spawn": "GROUP_NULL", + "rot_spawn_chance": 0 }, { "type": "COMESTIBLE", @@ -655,7 +781,9 @@ "price_postapoc": 200, "material": [ "egg" ], "fun": 10, - "flags": [ "FREEZERBURN" ] + "flags": [ "FREEZERBURN" ], + "rot_spawn": "GROUP_NULL", + "rot_spawn_chance": 0 }, { "type": "COMESTIBLE", @@ -670,6 +798,8 @@ "price_postapoc": 300, "material": [ "egg" ], "fun": 20, - "flags": [ "FREEZERBURN" ] + "flags": [ "FREEZERBURN" ], + "rot_spawn": "GROUP_NULL", + "rot_spawn_chance": 0 } ] diff --git a/data/Mainline_mods/Mods/DinoMod/items/helmets.json b/data/Mainline_mods/Mods/DinoMod/items/helmets.json new file mode 100644 index 000000000..c183d43c9 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/items/helmets.json @@ -0,0 +1,51 @@ +[ + { + "id": "helmet_dino", + "type": "ARMOR", + "name": { "str": "dinosaur skull helmet" }, + "description": "The top part of a dinosaur skull, equipped with leather straps to secure it on your head. Every inch of the skull has been carved with a maze of fine, intertwined symbols.", + "weight": "1 kg", + "volume": "3 L", + "price": 1400, + "price_postapoc": 200, + "material": [ "leather", "bone" ], + "symbol": "[", + "color": "dark_gray", + "material_thickness": 3, + "flags": [ "WATER_FRIENDLY" ], + "armor": [ { "encumbrance_modifiers": [ "IMBALANCED" ], "coverage": 85, "covers": [ "head" ] } ] + }, + { + "id": "helmet_ceratopsian", + "type": "ARMOR", + "name": { "str": "spiky dinosaur skull helmet" }, + "description": "The top part of a spiky dinosaur skull, equipped with leather straps to secure it on your head. Every inch of the skull has been carved with a maze of fine, intertwined symbols.", + "weight": "1 kg", + "volume": "3 L", + "price": 1400, + "price_postapoc": 200, + "material": [ "leather", "bone" ], + "symbol": "[", + "color": "dark_gray", + "material_thickness": 3, + "flags": [ "WATER_FRIENDLY" ], + "qualities": [ [ "COOK", 1 ] ], + "armor": [ { "encumbrance_modifiers": [ "IMBALANCED" ], "coverage": 85, "covers": [ "head" ] } ] + }, + { + "id": "helmet_dino_pred", + "type": "ARMOR", + "name": { "str": "dinosaur predator skull helmet" }, + "description": "The top part of a dinosaur skull, equipped with leather straps to secure it on your head. Every inch of the skull has been carved with a maze of fine, intertwined symbols.", + "weight": "1 kg", + "volume": "3 L", + "price": 1400, + "price_postapoc": 200, + "material": [ "leather", "bone" ], + "symbol": "[", + "color": "dark_gray", + "material_thickness": 3, + "flags": [ "WATER_FRIENDLY" ], + "armor": [ { "encumbrance_modifiers": [ "IMBALANCED" ], "coverage": 85, "covers": [ "head" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/items/itemgroups.json b/data/Mainline_mods/Mods/DinoMod/items/itemgroups.json index 3365abf47..1b673dda4 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/itemgroups.json +++ b/data/Mainline_mods/Mods/DinoMod/items/itemgroups.json @@ -8,8 +8,10 @@ [ "kiernans_notes", 1 ], [ "iv_mutagen_tyrant", 3 ], [ "iv_mutagen_stego", 3 ], + [ "iv_mutagen_horns", 3 ], [ "mutagen_tyrant", 5 ], - [ "mutagen_stego", 5 ] + [ "mutagen_stego", 5 ], + [ "mutagen_horns", 5 ] ] } }, @@ -22,7 +24,8 @@ "entries": [ { "item": "raptor_sample", "prob": 40, "count": [ 1, 3 ] }, { "item": "tyrant_sample", "prob": 40, "count": [ 1, 3 ] }, - { "item": "stego_sample", "prob": 40, "count": [ 1, 3 ] } + { "item": "stego_sample", "prob": 40, "count": [ 1, 3 ] }, + { "item": "horns_sample", "prob": 40, "count": [ 1, 3 ] } ] } }, @@ -98,6 +101,30 @@ "subtype": "collection", "entries": [ { "item": "stego_sample", "count-min": 10, "count-max": 20 } ] }, + { + "id": "horns_sample_single", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "horns_sample" } ] + }, + { + "id": "horns_sample_small", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "horns_sample", "count-min": 1, "count-max": 3 } ] + }, + { + "id": "horns_sample_large", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "horns_sample", "count-min": 3, "count-max": 6 } ] + }, + { + "id": "horns_sample_huge", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "horns_sample", "count-min": 10, "count-max": 20 } ] + }, { "type": "item_group", "id": "office_DinoLab", @@ -110,6 +137,7 @@ [ "egg_dino_theropod", 75 ], [ "mutagen_tyrant", 30 ], [ "mutagen_stego", 30 ], + [ "mutagen_horns", 30 ], [ "kiernans_notes", 10 ], { "item": "kevlar_armor_elephant", "prob": 10 }, { "item": "acidchitin_armor_elephant", "prob": 10 }, @@ -137,6 +165,51 @@ { "item": "dino_carrier_wooden", "prob": 10 } ] }, + { + "type": "item_group", + "id": "bionics_sci", + "subtype": "distribution", + "//": "High-tech bionics, handy for the harried researcher. They get access to classified toys too, but only stuff a scientist would have use for.", + "items": [ + [ "burnt_out_bionic", 60 ], + [ "bio_batteries", 30 ], + [ "bio_power_storage", 30 ], + [ "bio_metabolics", 5 ], + [ "bio_ethanol", 5 ], + [ "bio_ups", 10 ], + [ "bio_torsionratchet", 30 ], + [ "bio_tools", 10 ], + [ "bio_flashlight", 30 ], + [ "bio_lighter", 25 ], + [ "bio_magnet", 20 ], + [ "bio_memory", 15 ], + [ "bio_ears", 10 ], + [ "bio_sunglasses", 10 ], + [ "bio_eye_optic", 10 ], + [ "bio_eye_enhancer", 5 ], + [ "bio_dex_enhancer", 5 ], + [ "bio_int_enhancer", 10 ], + [ "bio_night_vision", 1 ], + [ "bio_infrared", 2 ], + [ "bio_synaptic_regen", 12 ], + [ "bio_gills", 5 ], + [ "bio_climate", 2 ], + [ "bio_heatsink", 2 ], + [ "bio_blood_filter", 10 ], + [ "bio_fingerhack", 2 ], + [ "bio_lockpick", 2 ], + [ "bio_surgical_razor", 8 ], + [ "bio_nanobots", 15 ], + [ "bio_blood_anal", 10 ], + [ "bio_geiger", 15 ], + [ "bio_radscrubber", 10 ], + [ "bio_watch", 40 ], + [ "bio_leukocyte", 15 ], + [ "bio_syringe", 2 ], + [ "bio_jointservo", 10 ], + [ "bio_soporific", 2 ] + ] + }, { "type": "item_group", "id": "museum_armor_pet", diff --git a/data/Mainline_mods/Mods/DinoMod/items/laser_items.json b/data/Mainline_mods/Mods/DinoMod/items/laser_items.json index c5f182c7a..5ad7a975e 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/laser_items.json +++ b/data/Mainline_mods/Mods/DinoMod/items/laser_items.json @@ -10,7 +10,6 @@ "flags": [ "NEVER_JAMS", "NON_FOULING", "NEEDS_NO_LUBE", "UNRECOVERABLE", "TRADER_AVOID", "WATERPROOF_GUN", "NO_SALVAGE" ], "skill": "rifle", "weight": "540 g", - "bashing": 12, "to_hit": 1, "reload_noise_volume": 3, "loudness": 6, @@ -31,6 +30,8 @@ } ], "ammo": [ "battery" ], - "ammo_to_fire": 1 + "ammo_to_fire": 0, + "energy_drain": "1 kJ", + "melee_damage": { "bash": 12 } } ] diff --git a/data/Mainline_mods/Mods/DinoMod/items/mutagen.json b/data/Mainline_mods/Mods/DinoMod/items/mutagen.json index 7d21fa0c6..7a963b907 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/mutagen.json +++ b/data/Mainline_mods/Mods/DinoMod/items/mutagen.json @@ -23,7 +23,11 @@ "description": "An extremely rare mutagen cocktail, it smells like blood and is a green goop with blood-red streaks", "color": "light_green", "price": 500000, - "vitamins": [ [ "mutagen_tyrant", 175 ], [ "mutagen", 125 ] ] + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the tyrant mutagen.", + "vitamins": [ [ "mutagen_tyrant", 175 ], [ "mutagen", 125 ] ] + } }, { "id": "iv_mutagen_stego", @@ -49,6 +53,40 @@ "description": "An extremely rare mutagen cocktail, it seeks to cure what's deep inside.", "color": "light_green", "price": 500000, - "vitamins": [ [ "mutagen_stego", 175 ], [ "mutagen", 125 ] ] + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the stego mutagen.", + "vitamins": [ [ "mutagen_stego", 175 ], [ "mutagen", 125 ] ] + } + }, + { + "id": "iv_mutagen_horns", + "copy-from": "iv_mutagen_flavor", + "type": "COMESTIBLE", + "name": { "str": "horns mutagenic primer" }, + "description": "A super-concentrated mutagenic primer containing refined and purified biological samples, spiked with rum.", + "price": 1000000, + "color": "light_green", + "healthy": -4, + "use_action": { + "type": "consume_drug", + "activation_message": "You inject the horns mutagenic primer.", + "tools_needed": { "syringe": -1 }, + "vitamins": [ [ "mutagen_horns", 450, 550 ] ] + } + }, + { + "id": "mutagen_horns", + "copy-from": "mutagen_flavor", + "type": "COMESTIBLE", + "name": { "str": "horns mutagen" }, + "description": "An extremely rare mutagen cocktail containing a mix of biological samples, spiked with rum.", + "color": "light_green", + "price": 500000, + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the horns mutagen.", + "vitamins": [ [ "mutagen_horns", 175 ], [ "mutagen", 125 ] ] + } } ] diff --git a/data/Mainline_mods/Mods/DinoMod/items/mutagen_ingredients.json b/data/Mainline_mods/Mods/DinoMod/items/mutagen_ingredients.json index f29606497..abf3fa526 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/mutagen_ingredients.json +++ b/data/Mainline_mods/Mods/DinoMod/items/mutagen_ingredients.json @@ -43,5 +43,20 @@ "weight": "114 g", "volume": "250 ml", "category": "spare_parts" + }, + { + "type": "GENERIC", + "id": "horns_sample", + "symbol": "q", + "color": "light_blue", + "name": { "str": "ceratopsian sample" }, + "description": "A sample of tissues and liquids from a living ceratopsian, one of many plant eating dinosaurs with dramatic head adaptations useful for fighting and for finding a mate.", + "price": 1000, + "price_postapoc": 10, + "material": [ "flesh" ], + "flags": [ "NO_SALVAGE" ], + "weight": "114 g", + "volume": "250 ml", + "category": "spare_parts" } ] diff --git a/data/Mainline_mods/Mods/DinoMod/items/mutation_armor.json b/data/Mainline_mods/Mods/DinoMod/items/mutation_armor.json new file mode 100644 index 000000000..8541e353f --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/items/mutation_armor.json @@ -0,0 +1,46 @@ +[ + { + "id": "integrated_stegoskin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "stego skin" }, + "description": "Thick, bulky and heavy. This skin withstands punishment from even the biggest beasts.", + "weight": "10 kg", + "volume": "3600 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "leather", "flesh", "bone", "chitin" ], + "symbol": "x", + "color": "light_red", + "warmth": 10, + "environmental_protection": 3, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "SKINTIGHT", "NORMAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 3.5 }, + { "type": "flesh", "covered_by_mat": 100, "thickness": 1 }, + { "type": "bone", "covered_by_mat": 95, "thickness": 5 }, + { "type": "chitin", "covered_by_mat": 95, "thickness": 5 } + ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 20, + "breathability": "POOR" + }, + { + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 2.5 }, + { "type": "flesh", "covered_by_mat": 100, "thickness": 1 }, + { "type": "bone", "covered_by_mat": 60, "thickness": 4.5 }, + { "type": "chitin", "covered_by_mat": 60, "thickness": 4.5 } + ], + "covers": [ "mouth" ], + "coverage": 100, + "encumbrance": 5, + "breathability": "POOR", + "layers": [ "SKINTIGHT" ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/items/pets.json b/data/Mainline_mods/Mods/DinoMod/items/pets.json index dbc01d036..dd34e9666 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/pets.json +++ b/data/Mainline_mods/Mods/DinoMod/items/pets.json @@ -8,15 +8,14 @@ "volume": "50 L", "price": 2000, "price_postapoc": 200, - "bashing": 1, - "cutting": 1, "material": [ "steel", "plastic" ], "symbol": "#", "color": "light_gray", "properties": [ [ "creature_size_capacity", "HUGE" ] ], "use_action": [ "CAPTURE_MONSTER_ACT" ], "flags": [ "TRADER_AVOID" ], - "looks_like": "pet_carrier" + "looks_like": "pet_carrier", + "melee_damage": { "bash": 1, "cut": 1 } }, { "id": "dino_carrier_wooden", @@ -27,14 +26,13 @@ "volume": "50 L", "price": 1600, "price_postapoc": 100, - "bashing": 1, - "cutting": 1, "material": [ "wood" ], "symbol": "#", "color": "brown", "properties": [ [ "creature_size_capacity", "HUGE" ] ], "use_action": [ "CAPTURE_MONSTER_ACT" ], "flags": [ "TRADER_AVOID" ], - "looks_like": "pet_carrier" + "looks_like": "pet_carrier", + "melee_damage": { "bash": 1, "cut": 1 } } ] diff --git a/data/Mainline_mods/Mods/DinoMod/items/pets_bear_armor.json b/data/Mainline_mods/Mods/DinoMod/items/pets_bear_armor.json new file mode 100644 index 000000000..4857397b8 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/items/pets_bear_armor.json @@ -0,0 +1,196 @@ +[ + { + "abstract": "bear_armor", + "type": "PET_ARMOR", + "name": { "str": "bear armor" }, + "symbol": "[", + "min_pet_vol": "50 L", + "max_pet_vol": "1000 L", + "pet_bodytype": "bear", + "longest_side": "60 cm", + "flags": [ "IS_PET_ARMOR" ] + }, + { + "type": "PET_ARMOR", + "id": "kevlar_armor_bear", + "copy-from": "bear_armor", + "color": "yellow", + "name": { "str": "Kevlar-lined bear-sized peto" }, + "description": "A heavy mattress-like armor of cloth, leather, and thick linings of Kevlar, originally used as horse protection for bullfighting, but adapted for the noblest of beasts. You could put this on a friendly bear.", + "price": 50000, + "price_postapoc": 5000, + "material": [ "cotton", "leather", "kevlar" ], + "weight": "30 kg", + "volume": "150 L", + "material_thickness": 10 + }, + { + "type": "PET_ARMOR", + "id": "acidchitin_armor_bear", + "copy-from": "bear_armor", + "color": "green", + "name": { "str": "biosilicified chitin bear armor" }, + "description": "A makeshift assembly of criniere, peytral, and croupiere made from biosilicified chitin fitted to a thin mesh. You could put this on a friendly bear.", + "price": 120000, + "price_postapoc": 8000, + "material": [ "acidchitin", "leather" ], + "weight": "35 kg", + "volume": "150 L", + "material_thickness": 6, + "environmental_protection": 7 + }, + { + "type": "PET_ARMOR", + "id": "chitin_armor_bear", + "copy-from": "bear_armor", + "color": "green", + "name": { "str": "chitin bear armor" }, + "description": "A makeshift assembly of criniere, peytral, and croupiere made from chitin fitted to a thin mesh. You could put this on a friendly bear.", + "price": 100000, + "price_postapoc": 6000, + "material": [ "chitin", "leather" ], + "weight": "35 kg", + "volume": "150 L", + "material_thickness": 6, + "environmental_protection": 4 + }, + { + "type": "PET_ARMOR", + "id": "chainmail_armor_bear", + "copy-from": "bear_armor", + "color": "green", + "name": { "str": "chainmail bear armor" }, + "description": "A heavy covering of chainmail, suitably made for bears as protection. You could put this on a friendly bear.", + "price": 40000, + "price_postapoc": 10000, + "material": [ "steel", "leather" ], + "weight": "40 kg", + "volume": "150 L", + "material_thickness": 6 + }, + { + "type": "PET_ARMOR", + "id": "leather_armor_bear", + "copy-from": "bear_armor", + "color": "green", + "name": { "str": "boiled leather bear barding with caparison", "str_pl": "boiled leather bear bardings with caparison" }, + "description": "A full barding for bears, consisting of boiled leather with cloth underneath. This caparison depicts four men in heavy metal armor riddled with bullet marks. You could put this on a friendly bear.", + "price": 30000, + "price_postapoc": 3000, + "material": [ "cotton", "leather" ], + "weight": "15 kg", + "volume": "150 L", + "material_thickness": 6, + "snippet_category": [ + { + "id": "honeyeater", + "text": "A full barding for bears, consisting of boiled leather with cloth underneath. This caparison depicts a large brown bear being swarmed by bees as it devours a honeycomb. You could put this on a friendly bear." + }, + { + "id": "mormont", + "text": "A full barding for bears, consisting of boiled leather with cloth underneath. This caparison depicts a warrior-woman holding a baby in one arm and a battleaxe in the other. You could put this on a friendly bear." + }, + { + "id": "maidenfair", + "text": "A full barding for bears, consisting of boiled leather with cloth underneath. This caparison depicts a bear dancing with a golden-haired maiden. You could put this on a friendly bear." + }, + { + "id": "wight", + "text": "A full barding for bears, consisting of boiled leather with cloth underneath. This caparison depicts a zombified bear with cold blue eyes fighting alongside an undead army. You could put this on a friendly bear." + }, + { + "id": "beorn", + "text": "A full barding for bears, consisting of boiled leather with cloth underneath. This caparison depicts a tall man transforming into a giant bear and leaping into battle. You could put this on a friendly bear." + }, + { + "id": "stegosaurus", + "text": "A full barding for bears, consisting of boiled leather with cloth underneath. This caparison depicts a fierce stegosaurus bursting out the side of a 1970s-era van. You could put this on a friendly bear." + } + ] + }, + { + "type": "PET_ARMOR", + "id": "leatherbone_armor_bear", + "copy-from": "bear_armor", + "color": "green", + "name": { "str": "boiled leather bear barding with bones", "str_pl": "boiled leather bear bardings with bones" }, + "description": "Leather bear barding with decorative bones affixed, meant to invoke fear in bandits and raiders and traders all! You could put this on a friendly bear.", + "price": 45000, + "price_postapoc": 3000, + "material": [ "bone", "leather" ], + "weight": "17 kg", + "volume": "150 L", + "material_thickness": 6 + }, + { + "type": "PET_ARMOR", + "id": "rubber_armor_bear", + "copy-from": "bear_armor", + "color": "green", + "name": { "str": "bear rain sheet" }, + "description": "A thin plastic covering, adapted to protect a bear from acid zombie splashes and similar caustic substances. You could put this on a friendly bear.", + "price": 15000, + "price_postapoc": 1500, + "material": [ "neoprene", "plastic" ], + "weight": "14 kg", + "volume": "150 L", + "material_thickness": 3 + }, + { + "type": "PET_ARMOR", + "id": "sweater_armor_bear", + "copy-from": "bear_armor", + "color": "red", + "name": { "str": "bear-sized holiday sweater" }, + "description": "A very large warm wool sweater with a festive holiday pattern. You could put this on a friendly bear.", + "price": 10000, + "price_postapoc": 1000, + "material": [ "wool" ], + "weight": "3 kg", + "volume": "20 L", + "looks_like": "longshirt", + "material_thickness": 1 + }, + { + "type": "PET_ARMOR", + "id": "iron_armor_bear", + "copy-from": "bear_armor", + "color": "brown", + "name": { "str": "iron bear armor" }, + "description": "A heavy covering of strategically placed iron plates and leather, suitably made for bears as protection. You could put this on a friendly bear.", + "price": 50000, + "price_postapoc": 10000, + "material": [ "iron", "leather" ], + "weight": "30 kg", + "volume": "150 L", + "material_thickness": 4 + }, + { + "type": "PET_ARMOR", + "id": "steel_armor_bear", + "copy-from": "bear_armor", + "color": "light_gray", + "name": { "str": "steel bear armor" }, + "description": "A heavy covering of steel plate and leather, suitably made for bears as protection. You could put this on a friendly bear.", + "price": 60000, + "price_postapoc": 15000, + "material": [ "steel", "leather" ], + "weight": "50 kg", + "volume": "150 L", + "material_thickness": 4 + }, + { + "type": "PET_ARMOR", + "id": "bronze_armor_bear", + "copy-from": "bear_armor", + "color": "yellow", + "name": { "str": "bronze bear armor" }, + "description": "A heavy covering of strategically placed bronze plates and leather, suitably made for bears as protection. You could put this on a friendly bear.", + "price": 50000, + "price_postapoc": 10000, + "material": [ "bronze", "leather" ], + "weight": "30 kg", + "volume": "150 L", + "material_thickness": 4 + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/items/pets_elephant_armor.json b/data/Mainline_mods/Mods/DinoMod/items/pets_elephant_armor.json index aa92ced52..58c2cde29 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/pets_elephant_armor.json +++ b/data/Mainline_mods/Mods/DinoMod/items/pets_elephant_armor.json @@ -33,7 +33,7 @@ "description": "A makeshift assembly of criniere, peytral, and croupiere made from biosilicified chitin fitted to a thin mesh. You could put this on a friendly elephant.", "price": 120000, "price_postapoc": 8000, - "material": [ "acidchitin", "steel" ], + "material": [ "acidchitin", "leather" ], "weight": "35 kg", "volume": "150 L", "material_thickness": 6, @@ -48,7 +48,7 @@ "description": "A makeshift assembly of criniere, peytral, and croupiere made from chitin fitted to a thin mesh. You could put this on a friendly elephant.", "price": 100000, "price_postapoc": 6000, - "material": [ "chitin", "steel" ], + "material": [ "chitin", "leather" ], "weight": "35 kg", "volume": "150 L", "material_thickness": 6, diff --git a/data/Mainline_mods/Mods/DinoMod/items/pets_ostrich_armor.json b/data/Mainline_mods/Mods/DinoMod/items/pets_ostrich_armor.json index 6d9807817..ad17a680d 100644 --- a/data/Mainline_mods/Mods/DinoMod/items/pets_ostrich_armor.json +++ b/data/Mainline_mods/Mods/DinoMod/items/pets_ostrich_armor.json @@ -33,7 +33,7 @@ "description": "A makeshift assembly of criniere, peytral, and croupiere made from biosilicified chitin fitted to a thin mesh. You could put this on a friendly ostrich.", "price": 120000, "price_postapoc": 8000, - "material": [ "acidchitin", "steel" ], + "material": [ "acidchitin", "leather" ], "weight": "35 kg", "volume": "150 L", "material_thickness": 6, @@ -48,7 +48,7 @@ "description": "A makeshift assembly of criniere, peytral, and croupiere made from chitin fitted to a thin mesh. You could put this on a friendly ostrich.", "price": 100000, "price_postapoc": 6000, - "material": [ "chitin", "steel" ], + "material": [ "chitin", "leather" ], "weight": "35 kg", "volume": "150 L", "material_thickness": 6, diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/DinoLabFinale.json b/data/Mainline_mods/Mods/DinoMod/mapgen/DinoLabFinale.json index 78ba64ff8..11c57f2ab 100644 --- a/data/Mainline_mods/Mods/DinoMod/mapgen/DinoLabFinale.json +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/DinoLabFinale.json @@ -35,15 +35,8 @@ "........................" ], "palettes": [ "lab_palette", "lab_loot_research" ], - "furniture": { "?": "f_autodoc", "/": "f_autodoc_couch" }, - "terrain": { - ",": "t_floor_blue", - "C": "t_centrifuge", - "?": "t_floor_blue", - "/": "t_floor_blue", - "7": "t_console", - "r": "t_floor_blue" - }, + "furniture": { "?": "f_autodoc", "/": "f_autodoc_couch", "C": "f_centrifuge", "7": "f_console" }, + "terrain": { ",": "t_floor_blue", "?": "t_floor_blue", "/": "t_floor_blue", "r": "t_floor_blue" }, "place_loot": [ { "item": "anesthetic_kit", "x": 15, "y": 11, "repeat": [ 4, 9 ], "ammo": 100 }, { "item": "id_science", "x": 7, "y": 11, "chance": 100 }, diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/basement_chem.json b/data/Mainline_mods/Mods/DinoMod/mapgen/basement_chem.json index 2a9a1844a..dc34f4235 100644 --- a/data/Mainline_mods/Mods/DinoMod/mapgen/basement_chem.json +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/basement_chem.json @@ -59,7 +59,7 @@ "c": "f_counter", "h": "f_chair", "R": "f_rack", - "E": "f_water_heater", + "E": [ "f_water_heater", "f_water_heater_family" ], "W": "f_water_purifier", "X": [ "f_crate_c", "f_crate_o", "f_cardboard_box" ], "U": "f_utility_shelf", @@ -157,7 +157,7 @@ "h": "f_chair", "A": "f_air_filter", "C": "f_air_conditioner", - "E": "f_water_heater", + "E": [ "f_water_heater", "f_water_heater_family" ], "W": [ "f_water_purifier", "f_home_furnace" ], "X": [ "f_crate_c", "f_crate_o", "f_cardboard_box" ], "U": "f_utility_shelf", diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/mass_grave.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/mass_grave.json index d526d021b..c15d0264e 100644 --- a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/mass_grave.json +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/mass_grave.json @@ -33,7 +33,12 @@ ], "place_nested": [ { - "chunks": [ [ "mass_grave_abandoned_dino", 30 ], [ "mass_grave_partial_dino", 20 ], [ "mass_grave_finished_dino", 10 ] ], + "chunks": [ + [ "mass_grave_abandoned_dino", 30 ], + [ "mass_grave_partial_dino", 20 ], + [ "mass_grave_finished_dino", 10 ], + [ "mass_grave_red_dino", 20 ] + ], "x": 0, "y": 0 } @@ -93,7 +98,7 @@ { "item": "stanag30", "repeat": [ 0, 2 ], "x": [ 2, 22 ], "y": [ 18, 23 ] }, { "item": "mask_gas", "repeat": [ 0, 3 ], "x": [ 2, 5 ], "y": 20 }, { "item": "pure_meth", "repeat": [ 1, 6 ], "x": 10, "y": [ 20, 22 ] }, - { "item": "gasfilter_m", "repeat": [ 5, 8 ], "x": 10, "y": [ 20, 22 ] } + { "item": "gasfilter_med", "repeat": [ 5, 8 ], "x": 10, "y": [ 20, 22 ] } ], "place_monsters": [ { "monster": "GROUP_DINOSAUR_ZOMBIE", "density": 1, "x": [ 1, 22 ], "y": [ 1, 22 ] }, @@ -201,5 +206,56 @@ "monster": { "#": { "monster": "mon_zaspletosaurus_scorched", "chance": 1 } }, "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "mass_grave_red_dino", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + " ", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " ## ## ## ## ## X", + " ## ## ## ## ## ", + " ## ## ## ## ## X ", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " ## ## ## ## ## X", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " ## ## ## ## ## X ", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " ## ## ## ## ## X", + " ## ## ## ## ## ", + " ## ## ## ## ## ", + " " + ], + "terrain": { "#": [ [ "t_dirt", 24 ], [ "t_pit_shallow", 1 ] ] }, + "furniture": { "X": [ [ "f_null", 19 ], [ "f_battlefield_cross", 1 ] ] }, + "place_loot": [ + { "group": "mass_grave_casings", "repeat": [ 20, 30 ], "x": [ 1, 23 ], "y": [ 1, 17 ] }, + { "group": "mass_grave_casings", "repeat": [ 10, 15 ], "x": [ 1, 23 ], "y": [ 18, 23 ] }, + { "group": "trash", "repeat": [ 1, 3 ], "x": [ 1, 23 ], "y": [ 18, 23 ] } + ], + "place_npcs": [ + { "class": "old_guard_red", "x": 3, "y": 1 }, + { "class": "old_guard_red_soldier", "x": 1, "y": 1 }, + { "class": "old_guard_red_soldier", "x": 5, "y": 1 }, + { "class": "old_guard_red_soldier", "x": 1, "y": 6 }, + { "class": "old_guard_red_soldier", "x": 5, "y": 6 } + ], + "place_monsters": [ { "monster": "GROUP_DINOSAUR_ZOMBIE_SCORCHED", "density": 0.1, "x": [ 1, 22 ], "y": [ 1, 22 ] } ], + "monster": { "#": { "monster": "mon_zaspletosaurus_scorched", "chance": 1 } }, + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } } ] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_achelousaurus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_achelousaurus.json new file mode 100644 index 000000000..10582db04 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_achelousaurus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_achelousaurus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_achelousaurus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_achelousaurus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_achelousaurus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_achelousaurus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_achelousaurus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_achelousaurus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_anchisaurus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_anchisaurus.json new file mode 100644 index 000000000..8ea00b442 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_anchisaurus.json @@ -0,0 +1,68 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_anchisaurus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_anchisaurus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_anchisaurus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_anchisaurus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_anchisaurus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_anchisaurus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_anchisaurus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_chasmosaurus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_chasmosaurus.json new file mode 100644 index 000000000..f3dd333b2 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_chasmosaurus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_chasmosaurus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_chasmosaurus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_chasmosaurus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_chasmosaurus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_chasmosaurus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_chasmosaurus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_chasmosaurus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_einiosaurus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_einiosaurus.json new file mode 100644 index 000000000..217cbfa85 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_einiosaurus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_einiosaurus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_einiosaurus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_einiosaurus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_einiosaurus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_einiosaurus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_einiosaurus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_einiosaurus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_euoplocephalus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_euoplocephalus.json new file mode 100644 index 000000000..d37c6abc6 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_euoplocephalus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_euoplocephalus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_euoplocephalus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_euoplocephalus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_euoplocephalus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_euoplocephalus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_euoplocephalus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_euoplocephalus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_gastonia.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_gastonia.json new file mode 100644 index 000000000..4bf83e23f --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_gastonia.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_gastonia", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_gastonia", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_gastonia", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_gastonia", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_gastonia", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_gastonia", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_gastonia", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_hypacrosaurus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_hypacrosaurus.json new file mode 100644 index 000000000..647860e7a --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_hypacrosaurus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_hypacrosaurus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_hypacrosaurus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_hypacrosaurus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_hypacrosaurus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_hypacrosaurus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_hypacrosaurus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_hypacrosaurus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_lambeosaurus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_lambeosaurus.json new file mode 100644 index 000000000..8ca80f642 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_lambeosaurus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_lambeosaurus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_lambeosaurus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_lambeosaurus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_lambeosaurus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_lambeosaurus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_lambeosaurus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_lambeosaurus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_panoplosaurus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_panoplosaurus.json new file mode 100644 index 000000000..ca9e43a43 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_panoplosaurus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_panoplosaurus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_panoplosaurus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_panoplosaurus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_panoplosaurus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_panoplosaurus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_panoplosaurus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_panoplosaurus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_prosaurolophus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_prosaurolophus.json new file mode 100644 index 000000000..c1d1eeb46 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_prosaurolophus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_prosaurolophus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_prosaurolophus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_prosaurolophus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_prosaurolophus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_prosaurolophus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_prosaurolophus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_prosaurolophus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_saurolophus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_saurolophus.json new file mode 100644 index 000000000..757e38bbf --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_saurolophus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_saurolophus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_saurolophus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_saurolophus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_saurolophus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_saurolophus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_saurolophus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_saurolophus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_scolosaurus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_scolosaurus.json new file mode 100644 index 000000000..e45259257 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_scolosaurus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_scolosaurus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_scolosaurus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_scolosaurus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_scolosaurus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_scolosaurus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_scolosaurus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_scolosaurus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_styracosaurus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_styracosaurus.json new file mode 100644 index 000000000..217a1055b --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_styracosaurus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_styracosaurus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_styracosaurus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_styracosaurus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_styracosaurus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_styracosaurus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_styracosaurus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_styracosaurus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_tawa.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_tawa.json new file mode 100644 index 000000000..22e7a2cab --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_tawa.json @@ -0,0 +1,59 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_tawa", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---.,---.- ", + " t-.--.,--...-.-- ", + " --...-.--.--. ", + " -..-,-..-,-..-t t ", + " t --....-.-..--- ", + " t---.,.-.---..- ", + " -.---.---..--- ", + " t --.---..---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_swamp" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern" ], + ".": [ "t_dirt" ] + }, + "place_monster": [ { "monster": "mon_tawa", "x": 9, "y": 11, "spawn_data": { "patrol": [ { "x": 4, "y": 11 } ] } } ], + "place_item": [ + { "item": "egg_tawa", "x": 10, "y": 10, "amount": [ 3, 16 ] }, + { "item": "straw_pile", "x": 10, "y": 10, "amount": [ 1, 2 ] }, + { "item": "bone", "x": [ 4, 17 ], "y": [ 6, 15 ], "amount": [ 10, 20 ], "repeat": [ 1, 3 ], "chance": 40 }, + { "item": "meat", "x": [ 4, 17 ], "y": [ 6, 15 ], "amount": [ 10, 20 ], "repeat": [ 1, 3 ], "chance": 40 }, + { "item": "feather", "x": [ 4, 17 ], "y": [ 6, 15 ], "amount": [ 10, 20 ], "repeat": [ 1, 3 ], "chance": 40 }, + { + "item": "down_feather", + "x": [ 4, 17 ], + "y": [ 6, 15 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 3 ], + "chance": 40 + } + ], + "place_items": [ { "item": "military", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_tenontosaurus.json b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_tenontosaurus.json new file mode 100644 index 000000000..b4a222f74 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/mapgen/map_extras/nest_tenontosaurus.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nest_tenontosaurus", + "object": { + "rows": [ + " ", + " t ", + " t ", + " ", + " t t ", + " t t---- ", + " ----..-t ", + " t t---..-..---t t ", + " -.-..---..--t ", + " ---.---..,--.- ", + " t-.--..,-...-.-- ", + " --...-..-.--. ", + " -..-.,..-.,..-t t ", + " t --....-,-..--- ", + " t---...-.-.-..- ", + " -.---.-....--- ", + " t --.-....---t ", + " t-....---t t ", + " -----t ", + " t ", + " t ", + " t ", + " ", + " t " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "t": [ "t_region_tree", "t_region_groundcover_forest" ], + ",": [ "t_pit_shallow" ], + "-": [ "t_fern", "t_grass", "t_grass", "t_region_groundcover_forest" ], + ".": [ "t_dirt", "t_dirt", "t_grass", "t_grass", "t_region_groundcover_forest" ] + }, + "place_monster": [ + { + "monster": "mon_tenontosaurus", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "repeat": [ 2, 10 ], + "chance": 50, + "spawn_data": { "patrol": [ { "x": [ 0, 23 ], "y": [ 0, 23 ] } ] } + } + ], + "place_item": [ + { "item": "egg_tenontosaurus", "x": 10, "y": 10, "amount": [ 3, 15 ] }, + { "item": "egg_tenontosaurus", "x": 14, "y": 9, "amount": [ 3, 15 ] }, + { "item": "egg_tenontosaurus", "x": 10, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_tenontosaurus", "x": 15, "y": 12, "amount": [ 3, 15 ] }, + { "item": "egg_tenontosaurus", "x": 12, "y": 13, "amount": [ 3, 15 ] }, + { "item": "feather", "x": [ 0, 23 ], "y": [ 0, 23 ], "amount": [ 10, 20 ], "repeat": [ 1, 24 ], "chance": 20 }, + { + "item": "down_feather", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 5, 10 ], + "repeat": [ 1, 24 ], + "chance": 20 + }, + { + "item": "straw_pile", + "x": [ 0, 23 ], + "y": [ 0, 23 ], + "amount": [ 10, 20 ], + "repeat": [ 1, 24 ], + "chance": 20 + } + ], + "place_items": [ { "item": "trash_forest", "x": [ 4, 17 ], "y": [ 6, 15 ], "repeat": [ 1, 3 ], "chance": 40 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/monster_attacks.json b/data/Mainline_mods/Mods/DinoMod/monster_attacks.json index 7231cc452..851c29272 100644 --- a/data/Mainline_mods/Mods/DinoMod/monster_attacks.json +++ b/data/Mainline_mods/Mods/DinoMod/monster_attacks.json @@ -1,4 +1,126 @@ [ + { + "type": "monster_attack", + "attack_type": "melee", + "id": "teeth_grab", + "cooldown": 15, + "move_cost": 210, + "damage_max_instance": [ { "damage_type": "cut", "amount": 10 } ], + "hitsize_min": 4, + "effects_require_dmg": false, + "effects": [ { "id": "grabbed", "duration": 30000, "intensity": [ 5, 15 ] } ], + "accuracy": 7, + "blockable": false, + "dodgeable": true, + "self_effects_always": [ { "id": "grabbing", "duration": 30000 } ], + "hit_dmg_u": "%1$s catches your %2$s in its long sharp teeth!", + "hit_dmg_npc": "%s grabs in a powerful bite!", + "miss_msg_u": "%1$s tries to catch your %2$s in its teeth, but you dodge!", + "miss_msg_npc": "%s tries to close its teeth around , but they dodge!", + "no_dmg_msg_u": "%1$s grabs your %2$s in its long sharp teeth!", + "no_dmg_msg_npc": "%s grabs in its long sharp teeth!" + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "teeth_rip", + "cooldown": 25, + "move_cost": 150, + "damage_max_instance": [ { "damage_type": "cut", "amount": 15, "armor_penetration": 1, "armor_multiplier": 0.5 } ], + "hitsize_min": 4, + "effects": [ { "id": "bleed", "duration": 200, "affect_hit_bp": true }, { "id": "venom_pain", "duration": 1000 } ], + "hit_dmg_u": "%1$s rips your %2$s with its sharp teeth!", + "hit_dmg_npc": "%1$s rips a gash into with its sharp teeth!", + "miss_msg_u": "%1$s tries to rip your %2$s, but you dodge!", + "miss_msg_npc": "%1$s tries to rip a gash into , but they dodge!", + "no_dmg_msg_u": "%1$s tries to rip your %2$s with its sharp teeth, but fails to penetrate your armor.", + "no_dmg_msg_npc": "%1$s tries to rip a gash into , but fails to penetrate their armor.", + "condition": { "u_has_flag": "GRAB_FILTER" }, + "dodgeable": false, + "blockable": true + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "teeth_puncture", + "cooldown": 15, + "move_cost": 210, + "range": 2, + "damage_max_instance": [ { "damage_type": "stab", "amount": 50, "armor_penetration": 50, "armor_multiplier": 0.5 } ], + "hitsize_min": 4, + "effects_require_dmg": false, + "effects": [ + { "id": "grabbed", "duration": 30000, "intensity": [ 5, 15 ] }, + { "id": "bleed", "duration": 30000, "affect_hit_bp": true } + ], + "accuracy": 7, + "blockable": false, + "dodgeable": true, + "self_effects_always": [ { "id": "grabbing", "duration": 30000 } ], + "hit_dmg_u": "%1$s punctures your %2$s with its long sharp teeth!", + "hit_dmg_npc": "%s punctures in a powerful bite!", + "miss_msg_u": "%1$s tries to catch your %2$s in its teeth, but you dodge!", + "miss_msg_npc": "%s tries to close its teeth around , but they dodge!", + "no_dmg_msg_u": "%1$s grabs your %2$s in its long sharp teeth!", + "no_dmg_msg_npc": "%s grabs in its long sharp teeth!" + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "teeth_pull", + "cooldown": 25, + "move_cost": 150, + "range": 2, + "damage_max_instance": [ { "damage_type": "cut", "amount": 50, "armor_penetration": 50, "armor_multiplier": 0.5 } ], + "hitsize_min": 4, + "hit_dmg_u": "%1$s pulls your %2$s apart with its sharp teeth!", + "hit_dmg_npc": "%1$s pulls away a large chunk of flesh from with its sharp teeth!", + "miss_msg_u": "%1$s tries to pull your %2$s apart, but you dodge!", + "miss_msg_npc": "%1$s tries to pull away a large chunk of flesh from , but they dodge!", + "no_dmg_msg_u": "%1$s tries to pull your %2$s apart with its sharp teeth, but fails to penetrate your armor.", + "no_dmg_msg_npc": "%1$s tries to pull away a large chunk of flesh from , but fails to penetrate their armor.", + "condition": { "u_has_flag": "GRAB_FILTER" }, + "dodgeable": false, + "blockable": true + }, + { + "type": "monster_attack", + "attack_type": "bite", + "id": "teeth_zino_max", + "cooldown": 25, + "move_cost": 150, + "range": 2, + "damage_max_instance": [ { "damage_type": "cut", "amount": 50, "armor_penetration": 50, "armor_multiplier": 0.5 } ], + "hitsize_min": 4, + "infection_chance": 50, + "hit_dmg_u": "%1$s tears into your %2$s with its sharp teeth!", + "hit_dmg_npc": "%1$s tears into the flesh of with its sharp teeth!", + "miss_msg_u": "%1$s tries to bite your %2$s, but you dodge!", + "miss_msg_npc": "%1$s tries to tear into the flesh of , but they dodge!", + "no_dmg_msg_u": "%1$s tries to bite into your %2$s with its sharp teeth, but fails to penetrate your armor.", + "no_dmg_msg_npc": "%1$s tries to bite into the flesh of , but fails to penetrate their armor.", + "dodgeable": true, + "blockable": true + }, + { + "type": "monster_attack", + "attack_type": "bite", + "id": "teeth_zino_mid", + "cooldown": 25, + "move_cost": 150, + "range": 1, + "damage_max_instance": [ { "damage_type": "cut", "amount": 25, "armor_multiplier": 0.5 } ], + "hitsize_min": 4, + "infection_chance": 50, + "hit_dmg_u": "%1$s tears into your %2$s with its sharp teeth!", + "hit_dmg_npc": "%1$s tears into the flesh of with its sharp teeth!", + "miss_msg_u": "%1$s tries to bite your %2$s, but you dodge!", + "miss_msg_npc": "%1$s tries to tear into the flesh of , but they dodge!", + "no_dmg_msg_u": "%1$s tries to bite into your %2$s with its sharp teeth, but fails to penetrate your armor.", + "no_dmg_msg_npc": "%1$s tries to bite into the flesh of , but fails to penetrate their armor.", + "dodgeable": true, + "blockable": true + }, { "type": "monster_attack", "attack_type": "melee", @@ -23,7 +145,7 @@ "hit_dmg_u": "%1$s stomps on your %2$s!", "hit_dmg_npc": "%1$s stomps on !", "miss_msg_u": "%1$s tries to stomp on you, but you dodge!", - "miss_msg_npc": "%1$s tries stomp on , but they dodge!", + "miss_msg_npc": "%1$s tries to stomp on , but they dodge!", "no_dmg_msg_u": "%1$s stomps on your %2$s, but your armor protects you.", "no_dmg_msg_npc": "%1$s stomps on , but their armor protects them.", "dodgeable": true, @@ -72,10 +194,25 @@ "move_cost": 200, "range": 3, "damage_max_instance": [ { "damage_type": "stab", "amount": 10 } ], + "hit_dmg_u": "%1$s thrusts its long horn at you, piercing your %2$s!", + "hit_dmg_npc": "%1$s thrusts its long horn at !", + "no_dmg_msg_u": "%1$s's long horn hits your %2$s, but it glances off your armor.", + "no_dmg_msg_npc": "%1$s's long horn hits , but it glances off their armor.", + "miss_msg_u": "%s thrusts its long horn at you, but you evade!", + "miss_msg_npc": "%s's thrusts its long horn at , but they dodge!" + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "stretch_horns_DinoMod", + "cooldown": 20, + "move_cost": 200, + "range": 3, + "damage_max_instance": [ { "damage_type": "stab", "amount": 10 } ], "hit_dmg_u": "%1$s thrusts its long horns at you, piercing your %2$s!", "hit_dmg_npc": "%1$s thrusts its long horns at !", - "no_dmg_msg_u": "%1$s's horns hit your %2$s, but they glance off your armor!", - "no_dmg_msg_npc": "%1$s's horns hit , but they glance off their armor!", + "no_dmg_msg_u": "%1$s's long horns hit your %2$s, but they glance off your armor.", + "no_dmg_msg_npc": "%1$s's long horns hit , but they glance off their armor.", "miss_msg_u": "%s thrusts its long horns at you, but you evade!", "miss_msg_npc": "%s's thrusts its long horns at , but they dodge!" }, diff --git a/data/Mainline_mods/Mods/DinoMod/monster_factions.json b/data/Mainline_mods/Mods/DinoMod/monster_factions.json index acb29bfd1..dad642131 100644 --- a/data/Mainline_mods/Mods/DinoMod/monster_factions.json +++ b/data/Mainline_mods/Mods/DinoMod/monster_factions.json @@ -42,6 +42,13 @@ "friendly": [ "herbivore_young" ], "hate": [ "plant" ] }, + { + "type": "MONSTER_FACTION", + "name": "hadrosaur", + "base_faction": "herbivore_dino", + "friendly": [ "herbivore_young" ], + "hate": [ "fungus" ] + }, { "type": "MONSTER_FACTION", "name": "insectivore_young", @@ -196,6 +203,25 @@ "base_faction": "very_small_predator", "friendly": [ "acrocanthosaurus", "acrocanthosaurus_juvenile" ] }, + { + "type": "MONSTER_FACTION", + "name": "giganotosaurus", + "base_faction": "predator_dino", + "friendly": [ "giganotosaurus_juvenile", "giganotosaurus_hatchling" ], + "by_mood": [ "giganotosaurus" ] + }, + { + "type": "MONSTER_FACTION", + "name": "giganotosaurus_juvenile", + "base_faction": "small_predator", + "friendly": [ "giganotosaurus", "giganotosaurus_hatchling" ] + }, + { + "type": "MONSTER_FACTION", + "name": "giganotosaurus_hatchling", + "base_faction": "very_small_predator", + "friendly": [ "giganotosaurus", "giganotosaurus_juvenile" ] + }, { "type": "MONSTER_FACTION", "name": "siats", @@ -495,17 +521,29 @@ "//": "omnivore", "base_faction": "very_small_predator" }, + { + "type": "MONSTER_FACTION", + "name": "tawa", + "base_faction": "small_predator", + "friendly": [ "tawa", "tawa_hatchling" ] + }, + { + "type": "MONSTER_FACTION", + "name": "tawa_hatchling", + "base_faction": "very_small_predator", + "friendly": [ "tawa", "tawa_hatchling" ] + }, { "type": "MONSTER_FACTION", "name": "coelophysis", "base_faction": "small_predator", - "friendly": [ "coelophysis_hatchling" ] + "friendly": [ "coelophysis", "coelophysis_hatchling" ] }, { "type": "MONSTER_FACTION", "name": "coelophysis_hatchling", "base_faction": "very_small_predator", - "friendly": [ "coelophysis" ] + "friendly": [ "coelophysis", "coelophysis_hatchling" ] }, { "type": "MONSTER_FACTION", diff --git a/data/Mainline_mods/Mods/DinoMod/monstergroups/dinosaur.json b/data/Mainline_mods/Mods/DinoMod/monstergroups/dinosaur.json index 5cf985d58..d2461c61c 100644 --- a/data/Mainline_mods/Mods/DinoMod/monstergroups/dinosaur.json +++ b/data/Mainline_mods/Mods/DinoMod/monstergroups/dinosaur.json @@ -4,80 +4,11 @@ "type": "monstergroup", "name": "GROUP_DINOSAUR", "monsters": [ - { "monster": "mon_coelophysis", "weight": 4, "cost_multiplier": 5, "pack_size": [ 4, 8 ] }, - { "monster": "mon_dilophosaurus", "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, - { "monster": "mon_ceratosaurus", "cost_multiplier": 30 }, - { "monster": "mon_spinosaurus", "cost_multiplier": 40 }, - { "monster": "mon_torvosaurus", "weight": 4, "cost_multiplier": 30 }, - { "monster": "mon_allosaurus", "weight": 8, "cost_multiplier": 30 }, - { "monster": "mon_acrocanthosaurus", "weight": 8, "cost_multiplier": 40 }, - { "monster": "mon_siats", "weight": 8, "cost_multiplier": 40 }, - { "monster": "mon_dryptosaurus", "weight": 4, "cost_multiplier": 35 }, - { "monster": "mon_appalachiosaurus", "weight": 4, "cost_multiplier": 35 }, - { "monster": "mon_gorgosaurus", "weight": 4, "cost_multiplier": 35 }, - { "monster": "mon_albertosaurus", "weight": 4, "cost_multiplier": 35 }, - { "monster": "mon_qianzhousaurus", "weight": 4, "cost_multiplier": 40 }, - { "monster": "mon_nanuqsaurus", "weight": 4, "cost_multiplier": 35 }, - { "monster": "mon_daspletosaurus", "weight": 4, "cost_multiplier": 35 }, - { "monster": "mon_tyrannosaurus", "weight": 8, "cost_multiplier": 40 }, - { "monster": "mon_compsognathus", "weight": 20, "pack_size": [ 4, 12 ] }, - { "monster": "mon_gallimimus", "weight": 20, "pack_size": [ 4, 12 ] }, - { "monster": "mon_struthiomimus", "weight": 20, "pack_size": [ 4, 12 ] }, - { "monster": "mon_ornithomimus", "weight": 20, "pack_size": [ 4, 12 ] }, - { "monster": "mon_albertonykus", "weight": 20, "pack_size": [ 1, 2 ] }, - { "monster": "mon_anzu", "weight": 5, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, - { "monster": "mon_nothronychus", "weight": 5, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, - { "monster": "mon_saurornitholestes", "weight": 15, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, - { "monster": "mon_velociraptor", "weight": 15, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, - { "monster": "mon_deinonychus", "weight": 10, "cost_multiplier": 15, "pack_size": [ 1, 2 ] }, - { "monster": "mon_utahraptor", "weight": 5, "cost_multiplier": 30 }, - { "monster": "mon_dromaeosaurus", "weight": 15, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, - { "monster": "mon_stenonychosaurus", "weight": 5, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, - { "monster": "mon_eoraptor", "weight": 20, "pack_size": [ 4, 12 ] }, - { "monster": "mon_sarahsaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, - { "monster": "mon_issi", "weight": 5, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, - { "monster": "mon_haplocanthosaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, - { "monster": "mon_amargasaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, - { "monster": "mon_apatosaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, - { "monster": "mon_brontosaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, - { "monster": "mon_diplodocus", "weight": 10, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, - { "monster": "mon_camarasaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, - { "monster": "mon_brachiosaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, - { "monster": "mon_alamosaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, - { "monster": "mon_scutellosaurus", "weight": 5, "pack_size": [ 2, 4 ] }, - { "monster": "mon_stegosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, - { "monster": "mon_hesperosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, - { "monster": "mon_gargoyleosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, - { "monster": "mon_sauropelta", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, - { "monster": "mon_nodosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, - { "monster": "mon_edmontonia", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, - { "monster": "mon_zuul", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, - { "monster": "mon_dyoplosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, - { "monster": "mon_ankylosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, - { "monster": "mon_dryosaurus", "weight": 5, "pack_size": [ 4, 12 ] }, - { "monster": "mon_camptosaurus", "weight": 20, "pack_size": [ 4, 12 ] }, - { "monster": "mon_hadrosaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, - { "monster": "mon_parasaurolophus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, - { "monster": "mon_corythosaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, - { "monster": "mon_maiasaura", "weight": 20, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, - { "monster": "mon_edmontosaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, - { "monster": "mon_gryposaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, - { "monster": "mon_stegoceras", "weight": 20, "pack_size": [ 4, 12 ] }, - { "monster": "mon_pachycephalosaurus", "weight": 20, "pack_size": [ 4, 12 ] }, - { "monster": "mon_aquilops", "weight": 3, "pack_size": [ 4, 8 ] }, - { "monster": "mon_leptoceratops", "weight": 3, "cost_multiplier": 30, "pack_size": [ 4, 8 ] }, - { "monster": "mon_zuniceratops", "weight": 3, "cost_multiplier": 30, "pack_size": [ 4, 8 ] }, - { "monster": "mon_centrosaurus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 4, 8 ] }, - { "monster": "mon_pachyrhinosaurus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 4, 8 ] }, - { "monster": "mon_pentaceratops", "weight": 3, "cost_multiplier": 30, "pack_size": [ 4, 8 ] }, - { "monster": "mon_torosaurus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 4, 8 ] }, - { "monster": "mon_triceratops", "weight": 5, "cost_multiplier": 30, "pack_size": [ 4, 8 ] }, - { "monster": "mon_nanosaurus", "weight": 5, "pack_size": [ 4, 8 ] }, - { "monster": "mon_oryctodromeus", "weight": 5, "pack_size": [ 1, 2 ] }, - { "monster": "mon_thescelosaurus", "weight": 20, "pack_size": [ 3, 6 ] }, - { "monster": "mon_dimorphodon", "weight": 20, "pack_size": [ 2, 4 ] }, - { "monster": "mon_pteranodon", "weight": 20, "pack_size": [ 2, 4 ] }, - { "monster": "mon_quetzalcoatlus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 2, 4 ] } + { "group": "GROUP_WILDERNESS_FOREST_DINO", "weight": 250 }, + { "group": "GROUP_DINOSAUR_SAUROPODS_WILDERNESS", "weight": 150 }, + { "group": "GROUP_DINOSAUR_HADROSAURS_WILDERNESS", "weight": 150 }, + { "group": "GROUP_DINOSAUR_PREDATOR_RIVER", "weight": 150 }, + { "group": "GROUP_DINOSAUR_PREDATOR_SWAMP", "weight": 150 } ] }, { @@ -85,6 +16,7 @@ "name": "GROUP_DINOSAUR_SOUTH_AMERICA", "monsters": [ { "monster": "mon_eoraptor", "weight": 20, "cost_multiplier": 0, "pack_size": [ 4, 12 ] }, + { "monster": "mon_giganotosaurus", "weight": 10, "cost_multiplier": 40, "pack_size": [ 1, 2 ] }, { "monster": "mon_amargasaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 4, 12 ] } ] }, @@ -93,6 +25,7 @@ "name": "GROUP_DINOSAUR_ASIA", "monsters": [ { "monster": "mon_qianzhousaurus", "weight": 200, "cost_multiplier": 40, "pack_size": [ 1, 2 ] }, + { "monster": "mon_therizinosaurus", "weight": 200, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, { "monster": "mon_velociraptor", "weight": 200, "cost_multiplier": 10, "pack_size": [ 2, 4 ] } ] }, @@ -112,9 +45,11 @@ { "monster": "mon_albertonykus", "weight": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_eoraptor", "weight": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_sarahsaurus", "weight": 20, "pack_size": [ 1, 2 ] }, + { "monster": "mon_anchisaurus", "weight": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_scutellosaurus", "weight": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_gargoyleosaurus", "weight": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_dyoplosaurus", "weight": 20, "pack_size": [ 1, 2 ] }, + { "monster": "mon_tenontosaurus", "weight": 100, "pack_size": [ 1, 2 ] }, { "monster": "mon_dryosaurus", "weight": 100, "pack_size": [ 1, 2 ] }, { "monster": "mon_camptosaurus", "weight": 100, "pack_size": [ 1, 2 ] }, { "monster": "mon_stegoceras", "weight": 20, "pack_size": [ 1, 2 ] }, @@ -131,6 +66,7 @@ "type": "monstergroup", "name": "GROUP_DINOSAUR_DANGEROUS", "monsters": [ + { "monster": "mon_tawa", "weight": 200, "cost_multiplier": 5, "pack_size": [ 1, 2 ] }, { "monster": "mon_coelophysis", "weight": 200, "cost_multiplier": 5, "pack_size": [ 1, 2 ] }, { "monster": "mon_dilophosaurus", "weight": 150, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_ceratosaurus", "weight": 100, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, @@ -157,40 +93,56 @@ { "monster": "mon_nothronychus_hatchling", "weight": 5, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_eoraptor_hatchling", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_sarahsaurus_hatchling", "weight": 10, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, + { "monster": "mon_anchisaurus_hatchling", "weight": 10, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_issi_hatchling", "weight": 10, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_haplocanthosaurus_hatchling", "weight": 10, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_amargasaurus_hatchling", "weight": 10, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_apatosaurus_hatchling", "weight": 10, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_brontosaurus_hatchling", "weight": 10, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_diplodocus_hatchling", "weight": 10, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, + { "monster": "mon_barosaurus_hatchling", "weight": 10, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_camarasaurus_hatchling", "weight": 10, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_brachiosaurus_hatchling", "weight": 10, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_alamosaurus_hatchling", "weight": 10, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_scutellosaurus_hatchling", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_stegosaurus_hatchling", "weight": 10, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_hesperosaurus_hatchling", "weight": 10, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, + { "monster": "mon_gastonia_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_gargoyleosaurus_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_sauropelta_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_nodosaurus_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_panoplosaurus_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_edmontonia_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_zuul_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_dyoplosaurus_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_ankylosaurus_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_euoplocephalus_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_scolosaurus_hatchling", "weight": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_tenontosaurus_hatchling", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_dryosaurus_hatchling", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_camptosaurus_hatchling", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_hadrosaurus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, - { "monster": "mon_parasaurolophus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, - { "monster": "mon_corythosaurus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_maiasaura_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, - { "monster": "mon_edmontosaurus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_gryposaurus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_prosaurolophus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_saurolophus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_edmontosaurus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_parasaurolophus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_lambeosaurus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_corythosaurus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_hypacrosaurus_hatchling", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_stegoceras_hatchling", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_pachycephalosaurus_hatchling", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_aquilops_hatchling", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_leptoceratops_hatchling", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_zuniceratops_hatchling", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_styracosaurus_hatchling", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_centrosaurus_hatchling", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_einiosaurus_hatchling", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_centrosaurus_hatchling", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_achelousaurus_hatchling", "weight": 10, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, { "monster": "mon_pachyrhinosaurus_hatchling", "weight": 10, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_chasmosaurus_hatchling", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_pentaceratops_hatchling", "weight": 10, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, { "monster": "mon_torosaurus_hatchling", "weight": 10, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, { "monster": "mon_triceratops_hatchling", "weight": 10, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, @@ -203,6 +155,7 @@ "type": "monstergroup", "name": "GROUP_DINOSAUR_DANGEROUS_HATCHLING", "monsters": [ + { "monster": "mon_tawa_hatchling", "weight": 4, "cost_multiplier": 5, "pack_size": [ 1, 2 ] }, { "monster": "mon_coelophysis_hatchling", "weight": 4, "cost_multiplier": 5, "pack_size": [ 1, 2 ] }, { "monster": "mon_dilophosaurus_hatchling", "weight": 15, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_ceratosaurus_hatchling", "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, @@ -235,22 +188,32 @@ { "monster": "mon_struthiomimus_juvenile", "weight": 50, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_ornithomimus_juvenile", "weight": 50, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_sarahsaurus_juvenile", "weight": 50, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, + { "monster": "mon_anchisaurus_juvenile", "weight": 50, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_stegosaurus_juvenile", "weight": 10, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_hesperosaurus_juvenile", "weight": 10, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, + { "monster": "mon_gastonia_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_gargoyleosaurus_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_sauropelta_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_nodosaurus_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_panoplosaurus_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_edmontonia_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_zuul_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_dyoplosaurus_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_ankylosaurus_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_euoplocephalus_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_scolosaurus_juvenile", "weight": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_tenontosaurus_juvenile", "weight": 50, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_camptosaurus_juvenile", "weight": 50, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_hadrosaurus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, - { "monster": "mon_parasaurolophus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, - { "monster": "mon_corythosaurus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_maiasaura_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, - { "monster": "mon_edmontosaurus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_gryposaurus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_prosaurolophus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_saurolophus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_edmontosaurus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_parasaurolophus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_lambeosaurus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_corythosaurus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_hypacrosaurus_juvenile", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_pachycephalosaurus_juvenile", "weight": 25, "cost_multiplier": 0, "pack_size": [ 1, 2 ] }, { "monster": "mon_leptoceratops_juvenile", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_zuniceratops_juvenile", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, @@ -282,24 +245,37 @@ { "monster": "mon_apatosaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_brontosaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_diplodocus", "weight": 10, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, + { "monster": "mon_barosaurus", "weight": 10, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_camarasaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_brachiosaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_alamosaurus", "weight": 5, "cost_multiplier": 25, "pack_size": [ 1, 2 ] }, { "monster": "mon_stegosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_hesperosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, + { "monster": "mon_gastonia", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_sauropelta", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_nodosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, + { "monster": "mon_panoplosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_edmontonia", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_zuul", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_ankylosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, + { "monster": "mon_euoplocephalus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, + { "monster": "mon_scolosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, { "monster": "mon_hadrosaurus", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, - { "monster": "mon_parasaurolophus", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, - { "monster": "mon_corythosaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_maiasaura", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, - { "monster": "mon_edmontosaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_gryposaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_prosaurolophus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_saurolophus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_edmontosaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_parasaurolophus", "weight": 3, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_lambeosaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_corythosaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_hypacrosaurus", "weight": 20, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_styracosaurus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, { "monster": "mon_centrosaurus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_einiosaurus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_achelousaurus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, { "monster": "mon_pachyrhinosaurus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_chasmosaurus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, { "monster": "mon_pentaceratops", "weight": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, { "monster": "mon_torosaurus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, { "monster": "mon_triceratops", "weight": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] } @@ -341,549 +317,132 @@ }, { "type": "monstergroup", - "name": "GROUP_DINOSAUR_PREDATOR_WILDERNESS", + "name": "GROUP_DINOSAUR_PREDATOR_RIVER", "monsters": [ - { "monster": "mon_coelophysis", "pack_size": [ 4, 8 ], "conditions": [ "DAY", "SPRING", "SUMMER", "AUTUMN" ] }, - { "monster": "mon_ceratosaurus", "cost_multiplier": 30, "starts": "3 days" }, - { "monster": "mon_zeratosaurus", "cost_multiplier": 35, "starts": "7 days" }, - { "monster": "mon_torvosaurus", "cost_multiplier": 30, "starts": "3 days" }, - { "monster": "mon_zorvosaurus", "cost_multiplier": 35, "starts": "7 days" }, - { "monster": "mon_allosaurus", "weight": 2, "cost_multiplier": 30, "starts": "3 days" }, - { "monster": "mon_zallosaurus", "cost_multiplier": 35, "starts": "7 days" }, - { "monster": "mon_zallosaurus", "cost_multiplier": 35, "starts": "28 days" }, - { "monster": "mon_acrocanthosaurus", "weight": 2, "cost_multiplier": 40, "starts": "3 days" }, - { "monster": "mon_zacrocanthosaurus", "cost_multiplier": 45, "starts": "7 days" }, - { "monster": "mon_zacrocanthosaurus", "cost_multiplier": 45, "starts": "28 days" }, - { "monster": "mon_siats", "weight": 2, "cost_multiplier": 40, "starts": "3 days" }, - { "monster": "mon_ziats", "cost_multiplier": 45, "starts": "7 days" }, - { "monster": "mon_ziats", "cost_multiplier": 45, "starts": "28 days" }, - { "monster": "mon_dryptosaurus", "cost_multiplier": 35, "starts": "3 days" }, - { "monster": "mon_zryptosaurus", "cost_multiplier": 35, "starts": "7 days" }, - { "monster": "mon_appalachiosaurus", "cost_multiplier": 35, "starts": "3 days" }, - { "monster": "mon_zappalachiosaurus", "cost_multiplier": 35, "starts": "7 days" }, - { "monster": "mon_gorgosaurus", "cost_multiplier": 35, "starts": "3 days" }, - { "monster": "mon_zorgosaurus", "cost_multiplier": 35, "starts": "7 days" }, - { "monster": "mon_albertosaurus", "cost_multiplier": 35, "starts": "3 days" }, - { "monster": "mon_zalbertosaurus", "cost_multiplier": 35, "starts": "7 days" }, - { "monster": "mon_nanuqsaurus", "cost_multiplier": 35, "starts": "3 days" }, - { "monster": "mon_zanuqsaurus", "cost_multiplier": 35, "starts": "7 days" }, - { "monster": "mon_daspletosaurus", "cost_multiplier": 35, "starts": "3 days" }, - { "monster": "mon_zaspletosaurus", "cost_multiplier": 35, "starts": "7 days" }, - { "monster": "mon_tyrannosaurus", "weight": 2, "cost_multiplier": 40, "starts": "3 days" }, - { "monster": "mon_zyrannosaurus", "cost_multiplier": 80, "starts": "7 days" }, - { "monster": "mon_zyrannosaurus", "cost_multiplier": 80, "starts": "28 days" }, - { - "monster": "mon_nothronychus", - "weight": 3, - "cost_multiplier": 30, - "pack_size": [ 1, 2 ], - "conditions": [ "DAY", "SPRING", "SUMMER", "AUTUMN" ] - }, - { "monster": "mon_zothronychus", "cost_multiplier": 30, "starts": "3 days", "pack_size": [ 1, 2 ] }, - { "monster": "mon_zothronychus", "cost_multiplier": 30, "starts": "7 days", "pack_size": [ 1, 2 ] }, - { "monster": "mon_zothronychus", "cost_multiplier": 30, "starts": "28 days", "pack_size": [ 1, 2 ] }, - { - "monster": "mon_anzu", - "cost_multiplier": 30, - "pack_size": [ 1, 2 ], - "conditions": [ "DAY", "SPRING", "SUMMER", "AUTUMN" ] - }, - { "monster": "mon_zanzu", "cost_multiplier": 30, "starts": "3 days", "pack_size": [ 1, 2 ] }, - { "monster": "mon_zanzu", "cost_multiplier": 30, "starts": "7 days", "pack_size": [ 1, 2 ] }, - { "monster": "mon_zanzu", "cost_multiplier": 30, "starts": "28 days", "pack_size": [ 1, 2 ] }, - { "monster": "mon_deinonychus", "cost_multiplier": 15, "pack_size": [ 2, 3 ], "conditions": [ "NIGHT" ] }, - { "monster": "mon_zeinonychus", "cost_multiplier": 30, "starts": "3 days", "pack_size": [ 2, 3 ] }, - { "monster": "mon_zeinonychus", "cost_multiplier": 30, "starts": "7 days", "pack_size": [ 2, 3 ] }, - { "monster": "mon_zeinonychus", "cost_multiplier": 30, "starts": "28 days", "pack_size": [ 2, 3 ] }, - { "monster": "mon_utahraptor", "weight": 3, "cost_multiplier": 30, "conditions": [ "NIGHT" ] }, - { "monster": "mon_zutahraptor", "cost_multiplier": 30, "starts": "3 days" }, - { "monster": "mon_zutahraptor", "cost_multiplier": 30, "starts": "7 days" }, - { "monster": "mon_zutahraptor", "cost_multiplier": 30, "starts": "28 days" }, - { "monster": "mon_dromaeosaurus", "cost_multiplier": 15, "pack_size": [ 2, 4 ], "conditions": [ "DAY" ] }, + { "monster": "mon_tawa", "pack_size": [ 4, 8 ] }, + { "monster": "mon_coelophysis", "pack_size": [ 4, 8 ] }, + { "monster": "mon_ceratosaurus", "cost_multiplier": 30 }, + { "monster": "mon_torvosaurus", "cost_multiplier": 30 }, + { "monster": "mon_allosaurus", "weight": 2, "cost_multiplier": 30 }, + { "monster": "mon_acrocanthosaurus", "weight": 2, "cost_multiplier": 40 }, + { "monster": "mon_siats", "weight": 2, "cost_multiplier": 40 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_PREDATOR_SWAMP", + "monsters": [ + { "monster": "mon_dryptosaurus", "cost_multiplier": 35 }, + { "monster": "mon_appalachiosaurus", "cost_multiplier": 35 }, + { "monster": "mon_gorgosaurus", "cost_multiplier": 35 }, + { "monster": "mon_albertosaurus", "cost_multiplier": 35 }, + { "monster": "mon_nanuqsaurus", "cost_multiplier": 35 }, + { "monster": "mon_daspletosaurus", "cost_multiplier": 35 }, + { "monster": "mon_tyrannosaurus", "weight": 2, "cost_multiplier": 40 }, + { "monster": "mon_nothronychus", "weight": 3, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_anzu", "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_deinonychus", "cost_multiplier": 15, "pack_size": [ 2, 3 ] }, + { "monster": "mon_utahraptor", "weight": 3, "cost_multiplier": 30 }, + { "monster": "mon_dromaeosaurus", "cost_multiplier": 15, "pack_size": [ 2, 4 ] }, { "monster": "mon_stenonychosaurus", "weight": 5, "cost_multiplier": 30, "pack_size": [ 1, 2 ] } ] }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_ZREDATOR_RIVER", + "monsters": [ + { "monster": "mon_zeratosaurus", "cost_multiplier": 35 }, + { "monster": "mon_zorvosaurus", "cost_multiplier": 35 }, + { "monster": "mon_zallosaurus", "cost_multiplier": 35 }, + { "monster": "mon_zacrocanthosaurus", "cost_multiplier": 45 }, + { "monster": "mon_ziats", "cost_multiplier": 45 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_ZREDATOR_SWAMP", + "monsters": [ + { "monster": "mon_zryptosaurus", "cost_multiplier": 35 }, + { "monster": "mon_zappalachiosaurus", "cost_multiplier": 35 }, + { "monster": "mon_zorgosaurus", "cost_multiplier": 35 }, + { "monster": "mon_zalbertosaurus", "cost_multiplier": 35 }, + { "monster": "mon_zanuqsaurus", "cost_multiplier": 35 }, + { "monster": "mon_zaspletosaurus", "cost_multiplier": 35 }, + { "monster": "mon_zyrannosaurus", "cost_multiplier": 80 }, + { "monster": "mon_zothronychus", "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_zanzu", "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_zeinonychus", "cost_multiplier": 30, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zutahraptor", "cost_multiplier": 30 } + ] + }, { "type": "monstergroup", "name": "GROUP_DINOSAUR_SAUROPODS_WILDERNESS", "monsters": [ - { "monster": "mon_sarahsaurus", "weight": 10, "cost_multiplier": 10, "pack_size": [ 4, 12 ], "conditions": [ "DAY" ] }, - { "monster": "mon_zarahsaurus", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ], "starts": "3 days" }, - { "monster": "mon_zarahsaurus", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ], "starts": "7 days" }, - { - "monster": "mon_zarahsaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "14 days" - }, - { - "monster": "mon_zarahsaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { "monster": "mon_issi", "weight": 10, "cost_multiplier": 10, "pack_size": [ 4, 12 ], "conditions": [ "DAY" ] }, - { "monster": "mon_zissi", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ], "starts": "3 days" }, - { "monster": "mon_zissi", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ], "starts": "7 days" }, - { "monster": "mon_zissi", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ], "starts": "14 days" }, - { "monster": "mon_zissi", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ], "starts": "28 days" }, - { - "monster": "mon_haplocanthosaurus", - "weight": 10, - "cost_multiplier": 10, - "pack_size": [ 4, 12 ], - "conditions": [ "DAY" ] - }, - { - "monster": "mon_zaplocanthosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "3 days" - }, - { - "monster": "mon_zaplocanthosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "7 days" - }, - { - "monster": "mon_zaplocanthosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "14 days" - }, - { - "monster": "mon_zaplocanthosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_apatosaurus", - "weight": 10, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DAY", "SPRING", "SUMMER", "AUTUMN" ], - "starts": "3 days" - }, - { - "monster": "mon_zapatosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "7 days" - }, - { - "monster": "mon_zapatosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "14 days" - }, - { - "monster": "mon_zapatosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zapatosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "90 days" - }, - { - "monster": "mon_brontosaurus", - "weight": 10, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DAY", "SPRING", "SUMMER", "AUTUMN" ], - "starts": "3 days" - }, - { - "monster": "mon_zrontosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "7 days" - }, - { - "monster": "mon_zrontosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "14 days" - }, - { - "monster": "mon_zrontosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zrontosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "90 days" - }, - { - "monster": "mon_diplodocus", - "weight": 10, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DAY", "SPRING", "SUMMER", "AUTUMN" ], - "starts": "3 days" - }, - { "monster": "mon_ziplodocus", "weight": 2, "cost_multiplier": 25, "pack_size": [ 4, 12 ], "starts": "7 days" }, - { "monster": "mon_ziplodocus", "weight": 2, "cost_multiplier": 25, "pack_size": [ 4, 12 ], "starts": "14 days" }, - { "monster": "mon_ziplodocus", "weight": 2, "cost_multiplier": 25, "pack_size": [ 4, 12 ], "starts": "28 days" }, - { "monster": "mon_ziplodocus", "weight": 2, "cost_multiplier": 25, "pack_size": [ 4, 12 ], "starts": "90 days" }, - { - "monster": "mon_camarasaurus", - "weight": 10, - "cost_multiplier": 25, - "pack_size": [ 4, 12 ], - "conditions": [ "DAY", "SPRING", "SUMMER", "AUTUMN" ], - "starts": "3 days" - }, - { - "monster": "mon_zamarasaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "7 days" - }, - { - "monster": "mon_zamarasaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "14 days" - }, - { - "monster": "mon_zamarasaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zamarasaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "90 days" - }, - { - "monster": "mon_brachiosaurus", - "weight": 10, - "cost_multiplier": 25, - "pack_size": [ 4, 12 ], - "conditions": [ "DAY", "SPRING", "SUMMER", "AUTUMN" ], - "starts": "3 days" - }, - { - "monster": "mon_zrachiosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "7 days" - }, - { - "monster": "mon_zrachiosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "14 days" - }, - { - "monster": "mon_zrachiosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zrachiosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "90 days" - }, - { - "monster": "mon_alamosaurus", - "weight": 10, - "cost_multiplier": 25, - "pack_size": [ 4, 12 ], - "conditions": [ "DAY", "SPRING", "SUMMER", "AUTUMN" ], - "starts": "3 days" - }, - { - "monster": "mon_zalamosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "7 days" - }, - { - "monster": "mon_zalamosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "14 days" - }, - { - "monster": "mon_zalamosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zalamosaurus", - "weight": 2, - "cost_multiplier": 30, - "pack_size": [ 4, 12 ], - "starts": "90 days" - } + { "monster": "mon_sarahsaurus", "weight": 10, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, + { "monster": "mon_anchisaurus", "weight": 10, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, + { "monster": "mon_issi", "weight": 10, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, + { "monster": "mon_haplocanthosaurus", "weight": 10, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, + { "monster": "mon_apatosaurus", "weight": 10, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_brontosaurus", "weight": 10, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_diplodocus", "weight": 10, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_barosaurus", "weight": 10, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_camarasaurus", "weight": 10, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, + { "monster": "mon_brachiosaurus", "weight": 10, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, + { "monster": "mon_alamosaurus", "weight": 10, "cost_multiplier": 25, "pack_size": [ 4, 12 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_ZAUROPODS_WILDERNESS", + "monsters": [ + { "monster": "mon_zarahsaurus", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zanchisaurus", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zissi", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zaplocanthosaurus", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zapatosaurus", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zrontosaurus", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ] }, + { "monster": "mon_ziplodocus", "weight": 2, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zarosaurus", "weight": 2, "cost_multiplier": 25, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zamarasaurus", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zrachiosaurus", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zalamosaurus", "weight": 2, "cost_multiplier": 30, "pack_size": [ 4, 12 ] } ] }, { "type": "monstergroup", "name": "GROUP_DINOSAUR_HADROSAURS_WILDERNESS", "monsters": [ - { - "monster": "mon_dryosaurus", - "weight": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_camptosaurus", - "weight": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_zamptosaurus", - "weight": 5, - "cost_multiplier": 10, - "pack_size": [ 4, 12 ], - "starts": "3 days" - }, - { - "monster": "mon_zamptosaurus", - "weight": 5, - "cost_multiplier": 10, - "pack_size": [ 4, 12 ], - "starts": "7 days" - }, - { - "monster": "mon_zamptosaurus", - "weight": 5, - "cost_multiplier": 10, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zamptosaurus", - "weight": 5, - "cost_multiplier": 10, - "pack_size": [ 4, 12 ], - "starts": "90 days" - }, - { - "monster": "mon_hadrosaurus", - "weight": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { "monster": "mon_zadrosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ], "starts": "3 days" }, - { "monster": "mon_zadrosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ], "starts": "7 days" }, - { - "monster": "mon_zadrosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zadrosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "90 days" - }, - { - "monster": "mon_parasaurolophus", - "weight": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_zarasaurolophus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "3 days" - }, - { - "monster": "mon_zarasaurolophus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "7 days" - }, - { - "monster": "mon_zarasaurolophus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zarasaurolophus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "90 days" - }, - { - "monster": "mon_corythosaurus", - "weight": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_zorythosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "3 days" - }, - { - "monster": "mon_zorythosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "7 days" - }, - { - "monster": "mon_zorythosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zorythosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "90 days" - }, - { - "monster": "mon_maiasaura", - "weight": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { "monster": "mon_zaiasaura", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ], "starts": "3 days" }, - { "monster": "mon_zaiasaura", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ], "starts": "7 days" }, - { "monster": "mon_zaiasaura", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ], "starts": "28 days" }, - { "monster": "mon_zaiasaura", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ], "starts": "90 days" }, - { - "monster": "mon_edmontosaurus", - "weight": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_zedmontosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "3 days" - }, - { - "monster": "mon_zedmontosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "7 days" - }, - { - "monster": "mon_zedmontosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zedmontosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "90 days" - }, - { - "monster": "mon_gryposaurus", - "weight": 20, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { "monster": "mon_zryposaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ], "starts": "3 days" }, - { "monster": "mon_zryposaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ], "starts": "7 days" }, - { - "monster": "mon_zryposaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "28 days" - }, - { - "monster": "mon_zryposaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 12 ], - "starts": "90 days" - }, - { - "monster": "mon_pteranodon", - "weight": 25, - "cost_multiplier": 20, - "pack_size": [ 2, 4 ], - "conditions": [ "DAY" ] - }, - { - "monster": "mon_quetzalcoatlus", - "weight": 4, - "cost_multiplier": 30, - "pack_size": [ 1, 2 ], - "conditions": [ "DAY" ] - }, - { - "monster": "mon_mosasaurus", - "weight": 3, - "cost_multiplier": 60, - "starts": "3 days", - "conditions": [ "DUSK", "DAWN" ] - }, - { "monster": "mon_mosasaurus", "weight": 1, "cost_multiplier": 60, "starts": "3 days" }, - { "monster": "mon_zosasaurus", "cost_multiplier": 100, "starts": "7 days" }, - { "monster": "mon_zosasaurus", "cost_multiplier": 100, "starts": "14 days" }, - { "monster": "mon_zosasaurus", "cost_multiplier": 100, "starts": "28 days" }, - { "monster": "mon_zosasaurus", "cost_multiplier": 100, "starts": "90 days" } + { "monster": "mon_tenontosaurus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_dryosaurus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_camptosaurus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_hadrosaurus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_maiasaura", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_gryposaurus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_prosaurolophus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_saurolophus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_edmontosaurus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_parasaurolophus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_lambeosaurus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_corythosaurus", "weight": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_hypacrosaurus", "weight": 20, "pack_size": [ 4, 12 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DINOSAUR_ZADROSAURS_WILDERNESS", + "monsters": [ + { "monster": "mon_zamptosaurus", "weight": 5, "cost_multiplier": 10, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zadrosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zaiasaura", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zryposaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zrosaurolophus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zaurolophus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zedmontosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zarasaurolophus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zambeosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zorythosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ] }, + { "monster": "mon_zypacrosaurus", "weight": 5, "cost_multiplier": 20, "pack_size": [ 4, 12 ] } ] } ] diff --git a/data/Mainline_mods/Mods/DinoMod/monstergroups/fungi.json b/data/Mainline_mods/Mods/DinoMod/monstergroups/fungi.json index c87a99eb0..27bbd3b01 100644 --- a/data/Mainline_mods/Mods/DinoMod/monstergroups/fungi.json +++ b/data/Mainline_mods/Mods/DinoMod/monstergroups/fungi.json @@ -24,36 +24,52 @@ { "monster": "mon_zeinonychus_fungus", "starts": "3 days" }, { "monster": "mon_zutahraptor_fungus", "starts": "6 days" }, { "monster": "mon_zarahsaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zanchisaurus_fungus", "starts": "3 days" }, { "monster": "mon_zissi_fungus", "starts": "3 days" }, { "monster": "mon_zaplocanthosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zamargasaurus_fungus", "starts": "3 days" }, { "monster": "mon_zapatosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zrontosaurus_fungus", "starts": "3 days" }, { "monster": "mon_ziplodocus_fungus", "starts": "3 days" }, + { "monster": "mon_zarosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zamarasaurus_fungus", "starts": "3 days" }, { "monster": "mon_zrachiosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zalamosaurus_fungus", "starts": "3 days" }, { "monster": "mon_ztegosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zesperosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zastonia_fungus", "starts": "3 days" }, { "monster": "mon_zargoyleosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zauropelta_fungus", "starts": "3 days" }, { "monster": "mon_zodosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zanoplosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zedmontonia_fungus", "starts": "3 days" }, { "monster": "mon_zzuul_fungus", "starts": "3 days" }, { "monster": "mon_zyoplosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zankylosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zuoplocephalus_fungus", "starts": "3 days" }, + { "monster": "mon_zcolosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zenontosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zryosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zamptosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zadrosaurus_fungus", "starts": "3 days" }, - { "monster": "mon_zarasaurolophus_fungus", "starts": "3 days" }, - { "monster": "mon_zarasaurolophus_fungus", "starts": "3 days" }, - { "monster": "mon_zorythosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zaiasaura_fungus", "starts": "3 days" }, - { "monster": "mon_zedmontosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zryposaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zrosaurolophus_fungus", "starts": "3 days" }, + { "monster": "mon_zaurolophus_fungus", "starts": "3 days" }, + { "monster": "mon_zedmontosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zarasaurolophus_fungus", "starts": "3 days" }, + { "monster": "mon_zambeosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zorythosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zypacrosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zachycephalosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zeptoceratops_fungus", "starts": "3 days" }, { "monster": "mon_zzuniceratops_fungus", "starts": "3 days" }, + { "monster": "mon_ztyracosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zentrosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zeiniosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zachelousaurus_fungus", "starts": "3 days" }, { "monster": "mon_zachyrhinosaurus_fungus", "starts": "3 days" }, + { "monster": "mon_zasmosaurus_fungus", "starts": "3 days" }, { "monster": "mon_zentaceratops_fungus", "starts": "3 days" }, { "monster": "mon_zosmoceratops_fungus", "starts": "3 days" }, { "monster": "mon_zorosaurus_fungus", "starts": "3 days" }, diff --git a/data/Mainline_mods/Mods/DinoMod/monstergroups/lab.json b/data/Mainline_mods/Mods/DinoMod/monstergroups/lab.json index a31c7670f..8bc3be0bc 100644 --- a/data/Mainline_mods/Mods/DinoMod/monstergroups/lab.json +++ b/data/Mainline_mods/Mods/DinoMod/monstergroups/lab.json @@ -10,7 +10,7 @@ "monsters": [ { "group": "GROUP_BIO_DINO_HERB", "weight": 300 }, { "group": "GROUP_BIO_DINO_PRED", "weight": 300 }, - { "group": "GROUP_DINOSAUR_PREDATOR_WILDERNESS", "weight": 300 } + { "group": "GROUP_DINOSAUR_PREDATOR_SWAMP", "weight": 300 } ] }, { diff --git a/data/Mainline_mods/Mods/DinoMod/monstergroups/misc.json b/data/Mainline_mods/Mods/DinoMod/monstergroups/misc.json index 9a1520d75..8ed74eaec 100644 --- a/data/Mainline_mods/Mods/DinoMod/monstergroups/misc.json +++ b/data/Mainline_mods/Mods/DinoMod/monstergroups/misc.json @@ -67,82 +67,27 @@ "type": "monstergroup", "name": "GROUP_SEWER_DINO", "monsters": [ - { - "monster": "mon_coelophysis", - "weight": 100, - "cost_multiplier": 5, - "pack_size": [ 4, 8 ], - "conditions": [ "NIGHT", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_coelophysis", - "weight": 100, - "cost_multiplier": 5, - "pack_size": [ 4, 8 ], - "conditions": [ "WINTER" ] - }, - { - "monster": "mon_dilophosaurus", - "weight": 10, - "cost_multiplier": 10, - "pack_size": [ 1, 2 ], - "conditions": [ "NIGHT", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_dilophosaurus", - "weight": 10, - "cost_multiplier": 10, - "pack_size": [ 1, 2 ], - "conditions": [ "WINTER" ] - }, + { "monster": "mon_tawa", "weight": 100, "cost_multiplier": 5, "pack_size": [ 4, 8 ] }, + { "monster": "mon_coelophysis", "weight": 100, "cost_multiplier": 5, "pack_size": [ 4, 8 ] }, + { "monster": "mon_dilophosaurus", "weight": 10, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, { "monster": "mon_zilophosaurus", "weight": 2, "cost_multiplier": 10, "pack_size": [ 1, 2 ], "starts": 72 }, { "monster": "mon_zilophosaurus", "weight": 2, "cost_multiplier": 10, "pack_size": [ 1, 2 ], "starts": 168 }, { "monster": "mon_zilophosaurus", "weight": 2, "cost_multiplier": 10, "pack_size": [ 1, 2 ], "starts": 672 }, { "monster": "mon_zilophosaurus", "weight": 2, "cost_multiplier": 10, "pack_size": [ 1, 2 ], "starts": 2160 }, - { - "monster": "mon_ceratosaurus", - "weight": 10, - "cost_multiplier": 30, - "conditions": [ "NIGHT", "SPRING", "SUMMER", "AUTUMN" ] - }, - { "monster": "mon_ceratosaurus", "weight": 10, "cost_multiplier": 30, "conditions": [ "WINTER" ] }, + { "monster": "mon_ceratosaurus", "weight": 10, "cost_multiplier": 30 }, { "monster": "mon_zeratosaurus", "weight": 2, "cost_multiplier": 35, "starts": 72 }, { "monster": "mon_zeratosaurus", "weight": 2, "cost_multiplier": 35, "starts": 168 }, { "monster": "mon_zeratosaurus", "weight": 2, "cost_multiplier": 35, "starts": 672 }, { "monster": "mon_zeratosaurus", "weight": 2, "cost_multiplier": 35, "starts": 2160 }, { "monster": "mon_compsognathus", "weight": 300, "pack_size": [ 4, 12 ] }, - { - "monster": "mon_deinonychus", - "weight": 100, - "cost_multiplier": 15, - "pack_size": [ 2, 3 ], - "conditions": [ "DAY" ] - }, + { "monster": "mon_deinonychus", "weight": 100, "cost_multiplier": 15, "pack_size": [ 2, 3 ] }, { "monster": "mon_zeinonychus", "weight": 25, "cost_multiplier": 30, "starts": 72, "pack_size": [ 2, 3 ] }, { "monster": "mon_zeinonychus", "weight": 25, "cost_multiplier": 30, "starts": 168, "pack_size": [ 2, 3 ] }, { "monster": "mon_zeinonychus", "weight": 25, "cost_multiplier": 30, "starts": 672, "pack_size": [ 2, 3 ] }, { "monster": "mon_zeinonychus", "weight": 25, "cost_multiplier": 30, "starts": 2160, "pack_size": [ 2, 3 ] }, - { - "monster": "mon_dromaeosaurus", - "weight": 150, - "cost_multiplier": 10, - "pack_size": [ 2, 4 ], - "conditions": [ "NIGHT" ] - }, - { - "monster": "mon_stenonychosaurus", - "weight": 150, - "cost_multiplier": 10, - "pack_size": [ 1, 2 ], - "conditions": [ "DAY" ] - }, - { - "monster": "mon_eoraptor", - "weight": 200, - "pack_size": [ 4, 12 ], - "conditions": [ "DAY", "SPRING", "SUMMER", "AUTUMN" ] - }, - { "monster": "mon_eoraptor", "weight": 200, "pack_size": [ 4, 12 ], "conditions": [ "WINTER" ] }, + { "monster": "mon_dromaeosaurus", "weight": 150, "cost_multiplier": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_stenonychosaurus", "weight": 150, "cost_multiplier": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_eoraptor", "weight": 200, "pack_size": [ 4, 12 ] }, { "monster": "mon_oryctodromeus", "weight": 200, "pack_size": [ 1, 2 ] } ] }, @@ -163,5 +108,65 @@ { "monster": "mon_zeinonychus", "weight": 25, "cost_multiplier": 30, "starts": 672, "pack_size": [ 2, 3 ] }, { "monster": "mon_zeinonychus", "weight": 25, "cost_multiplier": 30, "starts": 2160, "pack_size": [ 2, 3 ] } ] + }, + { + "type": "monstergroup", + "name": "GROUP_CAMP_HUNTING", + "//": "Special group with hardcoded reference in basecamp::hunting_results. Does not actually spawn anywhere, used solely to determine returns from camp hunting mission.", + "//1": "Can be overwritten by mods.", + "//2": "This group always has a chance of being the result, regardless of mission type.", + "monsters": [ + { "monster": "mon_albertonykus", "weight": 10 }, + { "monster": "mon_scutellosaurus", "weight": 5 }, + { "monster": "mon_stegoceras", "weight": 3 }, + { "monster": "mon_aquilops", "weight": 3 }, + { "monster": "mon_leptoceratops", "weight": 3 }, + { "monster": "mon_nanosaurus", "weight": 5 }, + { "monster": "mon_thescelosaurus", "weight": 5 }, + { "monster": "mon_dimorphodon", "weight": 5 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_CAMP_TRAPPING", + "//": "Special group with hardcoded reference in basecamp::hunting_results. Does not actually spawn anywhere, used solely to determine returns from camp hunting mission.", + "//1": "Can be overwritten by mods.", + "//2": "This group can only be picked from when the trapping mission is used, in addition to GROUP_CAMP_HUNTING.", + "monsters": [ + { "monster": "mon_albertonykus", "weight": 10 }, + { "monster": "mon_compsognathus", "weight": 5 }, + { "monster": "mon_scutellosaurus", "weight": 5 }, + { "monster": "mon_stegoceras", "weight": 3 }, + { "monster": "mon_aquilops", "weight": 3 }, + { "monster": "mon_leptoceratops", "weight": 3 }, + { "monster": "mon_nanosaurus", "weight": 5 }, + { "monster": "mon_pteranodon", "weight": 5 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_CAMP_HUNTING_LARGE", + "//": "Special group with hardcoded reference in basecamp::hunting_results. Does not actually spawn anywhere, used solely to determine returns from camp hunting mission.", + "//1": "Can be overwritten by mods.", + "//2": "This group can only be picked from when the hunt large animals mission is used, in addition to GROUP_CAMP_HUNTING.", + "monsters": [ + { "monster": "mon_gallimimus", "weight": 5 }, + { "monster": "mon_struthiomimus", "weight": 5 }, + { "monster": "mon_ornithomimus", "weight": 5 }, + { "monster": "mon_pachycephalosaurus", "weight": 3 }, + { "monster": "mon_tenontosaurus", "weight": 10 }, + { "monster": "mon_dryosaurus", "weight": 10 }, + { "monster": "mon_camptosaurus", "weight": 10 }, + { "monster": "mon_hadrosaurus", "weight": 10 }, + { "monster": "mon_maiasaura", "weight": 10 }, + { "monster": "mon_gryposaurus", "weight": 10 }, + { "monster": "mon_prosaurolophus", "weight": 10 }, + { "monster": "mon_saurolophus", "weight": 10 }, + { "monster": "mon_edmontosaurus", "weight": 10 }, + { "monster": "mon_parasaurolophus", "weight": 10 }, + { "monster": "mon_lambeosaurus", "weight": 10 }, + { "monster": "mon_corythosaurus", "weight": 10 }, + { "monster": "mon_hypacrosaurus", "weight": 10 } + ] } ] diff --git a/data/Mainline_mods/Mods/DinoMod/monstergroups/monstergroups_egg.json b/data/Mainline_mods/Mods/DinoMod/monstergroups/monstergroups_egg.json index 68c75d852..d298216be 100644 --- a/data/Mainline_mods/Mods/DinoMod/monstergroups/monstergroups_egg.json +++ b/data/Mainline_mods/Mods/DinoMod/monstergroups/monstergroups_egg.json @@ -4,25 +4,42 @@ "//": "North American dinos not theropods at least 50 kg and not largest", "type": "monstergroup", "monsters": [ + { "monster": "mon_sarahsaurus_hatchling", "weight": 5 }, + { "monster": "mon_anchisaurus_hatchling", "weight": 5 }, + { "monster": "mon_issi_hatchling", "weight": 5 }, { "monster": "mon_stegosaurus_hatchling", "weight": 5 }, + { "monster": "mon_gastonia_hatchling", "weight": 5 }, { "monster": "mon_gargoyleosaurus_hatchling", "weight": 5 }, { "monster": "mon_sauropelta_hatchling", "weight": 5 }, { "monster": "mon_nodosaurus_hatchling", "weight": 5 }, + { "monster": "mon_panoplosaurus_hatchling", "weight": 5 }, { "monster": "mon_edmontonia_hatchling", "weight": 5 }, { "monster": "mon_zuul_hatchling", "weight": 5 }, { "monster": "mon_dyoplosaurus_hatchling", "weight": 5 }, { "monster": "mon_ankylosaurus_hatchling", "weight": 5 }, + { "monster": "mon_euoplocephalus_hatchling", "weight": 5 }, + { "monster": "mon_scolosaurus_hatchling", "weight": 5 }, + { "monster": "mon_tenontosaurus_hatchling", "weight": 20 }, { "monster": "mon_camptosaurus_hatchling", "weight": 20 }, { "monster": "mon_hadrosaurus_hatchling", "weight": 20 }, - { "monster": "mon_parasaurolophus_hatchling", "weight": 20 }, - { "monster": "mon_corythosaurus_hatchling", "weight": 20 }, { "monster": "mon_maiasaura_hatchling", "weight": 20 }, + { "monster": "mon_gryposaurus_hatchling", "weight": 20 }, + { "monster": "mon_prosaurolophus_hatchling", "weight": 20 }, + { "monster": "mon_saurolophus_hatchling", "weight": 20 }, { "monster": "mon_edmontosaurus_hatchling", "weight": 20 }, + { "monster": "mon_parasaurolophus_hatchling", "weight": 20 }, + { "monster": "mon_lambeosaurus_hatchling", "weight": 20 }, + { "monster": "mon_corythosaurus_hatchling", "weight": 20 }, + { "monster": "mon_hypacrosaurus_hatchling", "weight": 20 }, { "monster": "mon_pachycephalosaurus_hatchling", "weight": 20 }, { "monster": "mon_leptoceratops_hatchling", "weight": 3 }, { "monster": "mon_zuniceratops_hatchling", "weight": 3 }, + { "monster": "mon_styracosaurus_hatchling", "weight": 3 }, { "monster": "mon_centrosaurus_hatchling", "weight": 3 }, + { "monster": "mon_einiosaurus_hatchling", "weight": 3 }, + { "monster": "mon_achelousaurus_hatchling", "weight": 3 }, { "monster": "mon_pachyrhinosaurus_hatchling", "weight": 3 }, + { "monster": "mon_chasmosaurus_hatchling", "weight": 3 }, { "monster": "mon_pentaceratops_hatchling", "weight": 3 }, { "monster": "mon_torosaurus_hatchling", "weight": 3 }, { "monster": "mon_triceratops_hatchling", "weight": 3 }, @@ -50,6 +67,7 @@ { "monster": "mon_apatosaurus_hatchling", "weight": 10 }, { "monster": "mon_brontosaurus_hatchling", "weight": 10 }, { "monster": "mon_diplodocus_hatchling", "weight": 20 }, + { "monster": "mon_barosaurus_hatchling", "weight": 20 }, { "monster": "mon_camarasaurus_hatchling", "weight": 20 }, { "monster": "mon_brachiosaurus_hatchling", "weight": 20 }, { "monster": "mon_alamosaurus_hatchling", "weight": 20 } @@ -99,6 +117,11 @@ "type": "monstergroup", "monsters": [ { "monster": "mon_spinosaurus_hatchling", "weight": 1 }, { "monster": "mon_tyrannosaurus_hatchling", "weight": 8 } ] }, + { + "name": "GROUP_EGG_tawa", + "type": "monstergroup", + "monsters": [ { "monster": "mon_tawa_hatchling" } ] + }, { "name": "GROUP_EGG_coelophysis", "type": "monstergroup", @@ -134,6 +157,11 @@ "type": "monstergroup", "monsters": [ { "monster": "mon_acrocanthosaurus_hatchling" } ] }, + { + "name": "GROUP_EGG_giganotosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_giganotosaurus_hatchling" } ] + }, { "name": "GROUP_EGG_siats", "type": "monstergroup", @@ -204,6 +232,11 @@ "type": "monstergroup", "monsters": [ { "monster": "mon_albertonykus_hatchling" } ] }, + { + "name": "GROUP_EGG_therizinosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_therizinosaurus_hatchling" } ] + }, { "name": "GROUP_EGG_nothronychus", "type": "monstergroup", @@ -217,7 +250,7 @@ { "name": "GROUP_EGG_saurornitholestes", "type": "monstergroup", - "monsters": [ { "monster": "mon_velociraptor_hatchling" } ] + "monsters": [ { "monster": "mon_saurornitholestes_hatchling" } ] }, { "name": "GROUP_EGG_velociraptor", @@ -254,6 +287,11 @@ "type": "monstergroup", "monsters": [ { "monster": "mon_sarahsaurus_hatchling" } ] }, + { + "name": "GROUP_EGG_anchisaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_anchisaurus_hatchling" } ] + }, { "name": "GROUP_EGG_issi", "type": "monstergroup", @@ -284,6 +322,11 @@ "type": "monstergroup", "monsters": [ { "monster": "mon_diplodocus_hatchling" } ] }, + { + "name": "GROUP_EGG_barosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_barosaurus_hatchling" } ] + }, { "name": "GROUP_EGG_camarasaurus", "type": "monstergroup", @@ -314,6 +357,11 @@ "type": "monstergroup", "monsters": [ { "monster": "mon_hesperosaurus_hatchling" } ] }, + { + "name": "GROUP_EGG_gastonia", + "type": "monstergroup", + "monsters": [ { "monster": "mon_gastonia_hatchling" } ] + }, { "name": "GROUP_EGG_gargoyleosaurus", "type": "monstergroup", @@ -329,6 +377,11 @@ "type": "monstergroup", "monsters": [ { "monster": "mon_nodosaurus_hatchling" } ] }, + { + "name": "GROUP_EGG_panoplosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_panoplosaurus_hatchling" } ] + }, { "name": "GROUP_EGG_edmontonia", "type": "monstergroup", @@ -349,6 +402,21 @@ "type": "monstergroup", "monsters": [ { "monster": "mon_ankylosaurus_hatchling" } ] }, + { + "name": "GROUP_EGG_euoplocephalus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_euoplocephalus_hatchling" } ] + }, + { + "name": "GROUP_EGG_scolosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_scolosaurus_hatchling" } ] + }, + { + "name": "GROUP_EGG_tenontosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_tenontosaurus_hatchling" } ] + }, { "name": "GROUP_EGG_dryosaurus", "type": "monstergroup", @@ -365,19 +433,24 @@ "monsters": [ { "monster": "mon_hadrosaurus_hatchling" } ] }, { - "name": "GROUP_EGG_parasaurolophus", + "name": "GROUP_EGG_maiasaura", "type": "monstergroup", - "monsters": [ { "monster": "mon_parasaurolophus_hatchling" } ] + "monsters": [ { "monster": "mon_maiasaura_hatchling" } ] }, { - "name": "GROUP_EGG_corythosaurus", + "name": "GROUP_EGG_gryposaurus", "type": "monstergroup", - "monsters": [ { "monster": "mon_corythosaurus_hatchling" } ] + "monsters": [ { "monster": "mon_gryposaurus_hatchling" } ] }, { - "name": "GROUP_EGG_maiasaura", + "name": "GROUP_EGG_prosaurolophus", "type": "monstergroup", - "monsters": [ { "monster": "mon_maiasaura_hatchling" } ] + "monsters": [ { "monster": "mon_prosaurolophus_hatchling" } ] + }, + { + "name": "GROUP_EGG_saurolophus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_saurolophus_hatchling" } ] }, { "name": "GROUP_EGG_edmontosaurus", @@ -385,9 +458,24 @@ "monsters": [ { "monster": "mon_edmontosaurus_hatchling" } ] }, { - "name": "GROUP_EGG_gryposaurus", + "name": "GROUP_EGG_parasaurolophus", "type": "monstergroup", - "monsters": [ { "monster": "mon_gryposaurus_hatchling" } ] + "monsters": [ { "monster": "mon_parasaurolophus_hatchling" } ] + }, + { + "name": "GROUP_EGG_lambeosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_lambeosaurus_hatchling" } ] + }, + { + "name": "GROUP_EGG_corythosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_corythosaurus_hatchling" } ] + }, + { + "name": "GROUP_EGG_hypacrosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_hypacrosaurus_hatchling" } ] }, { "name": "GROUP_EGG_stegoceras", @@ -414,16 +502,36 @@ "type": "monstergroup", "monsters": [ { "monster": "mon_zuniceratops_hatchling" } ] }, + { + "name": "GROUP_EGG_styracosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_styracosaurus_hatchling" } ] + }, { "name": "GROUP_EGG_centrosaurus", "type": "monstergroup", "monsters": [ { "monster": "mon_centrosaurus_hatchling" } ] }, + { + "name": "GROUP_EGG_einiosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_einiosaurus_hatchling" } ] + }, + { + "name": "GROUP_EGG_achelousaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_achelousaurus_hatchling" } ] + }, { "name": "GROUP_EGG_pachyrhinosaurus", "type": "monstergroup", "monsters": [ { "monster": "mon_pachyrhinosaurus_hatchling" } ] }, + { + "name": "GROUP_EGG_chasmosaurus", + "type": "monstergroup", + "monsters": [ { "monster": "mon_chasmosaurus_hatchling" } ] + }, { "name": "GROUP_EGG_pentaceratops", "type": "monstergroup", diff --git a/data/Mainline_mods/Mods/DinoMod/monstergroups/wilderness.json b/data/Mainline_mods/Mods/DinoMod/monstergroups/wilderness.json index eb403cf96..145e0f24f 100644 --- a/data/Mainline_mods/Mods/DinoMod/monstergroups/wilderness.json +++ b/data/Mainline_mods/Mods/DinoMod/monstergroups/wilderness.json @@ -2,277 +2,158 @@ { "type": "monstergroup", "name": "GROUP_FOREST", - "//": "Current SPRING first DAY count is 207.", "is_animal": true, "monsters": [ - { "monster": "mon_gallimimus", "weight": 5, "pack_size": [ 4, 8 ], "conditions": [ "DUSK", "DAY", "DAWN" ] }, - { "monster": "mon_struthiomimus", "weight": 5, "pack_size": [ 4, 8 ], "conditions": [ "DUSK", "DAY", "DAWN" ] }, - { "monster": "mon_ornithomimus", "weight": 5, "pack_size": [ 4, 8 ], "conditions": [ "DUSK", "DAY", "DAWN" ] }, + { "group": "GROUP_WILDERNESS_FOREST_DINO", "weight": 150 }, + { "group": "GROUP_WILDERNESS_FOREST_SAUROPODS", "weight": 15, "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_WILDERNESS_FOREST_DINO", + "is_animal": true, + "monsters": [ + { "monster": "mon_gallimimus", "weight": 5, "pack_size": [ 4, 8 ] }, + { "monster": "mon_struthiomimus", "weight": 5, "pack_size": [ 4, 8 ] }, + { "monster": "mon_ornithomimus", "weight": 5, "pack_size": [ 4, 8 ] }, { "monster": "mon_albertonykus", "weight": 20, "pack_size": [ 1, 2 ] }, - { "monster": "mon_sarahsaurus", "weight": 1, "pack_size": [ 4, 12 ], "conditions": [ "DUSK", "DAY", "DAWN" ] }, - { "monster": "mon_issi", "weight": 1, "pack_size": [ 4, 12 ], "conditions": [ "DUSK", "DAY", "DAWN" ] }, - { - "monster": "mon_haplocanthosaurus_juvenile", - "weight": 1, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN" ] - }, - { - "monster": "mon_apatosaurus_juvenile", - "weight": 1, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN" ] - }, - { - "monster": "mon_brontosaurus_juvenile", - "weight": 1, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN" ] - }, - { - "monster": "mon_diplodocus_juvenile", - "weight": 1, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN" ] - }, - { - "monster": "mon_camarasaurus_juvenile", - "weight": 1, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN" ] - }, - { - "monster": "mon_brachiosaurus_juvenile", - "weight": 1, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN" ] - }, - { - "monster": "mon_alamosaurus_juvenile", - "weight": 1, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN" ] - }, - { - "monster": "mon_scutellosaurus", - "weight": 10, - "pack_size": [ 2, 4 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_stegosaurus", - "weight": 10, - "pack_size": [ 2, 4 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_hesperosaurus", - "weight": 10, - "pack_size": [ 2, 4 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_gargoyleosaurus", - "weight": 15, - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_sauropelta", - "weight": 15, - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_nodosaurus", - "weight": 15, - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_edmontonia", - "weight": 15, - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { "monster": "mon_zuul", "weight": 15, "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] }, - { - "monster": "mon_dyoplosaurus", - "weight": 15, - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_ankylosaurus", - "weight": 15, - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_dryosaurus", - "weight": 5, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_camptosaurus", - "weight": 5, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_hadrosaurus", - "weight": 5, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_parasaurolophus", - "weight": 5, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_corythosaurus", - "weight": 5, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_maiasaura", - "weight": 5, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_edmontosaurus", - "weight": 5, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_gryposaurus", - "weight": 5, - "pack_size": [ 4, 12 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_stegoceras", - "weight": 3, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_pachycephalosaurus", - "weight": 3, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_aquilops", - "weight": 5, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_leptoceratops", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_zuniceratops", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_centrosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_pachyrhinosaurus", - "weight": 5, - "cost_multiplier": 20, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_pentaceratops", - "weight": 5, - "cost_multiplier": 25, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_kosmoceratops", - "weight": 5, - "cost_multiplier": 25, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_torosaurus", - "weight": 5, - "cost_multiplier": 25, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { - "monster": "mon_triceratops", - "weight": 5, - "cost_multiplier": 30, - "pack_size": [ 4, 8 ], - "conditions": [ "DUSK", "DAY", "DAWN", "SPRING", "SUMMER", "AUTUMN" ] - }, - { "monster": "mon_nanosaurus", "weight": 5, "pack_size": [ 4, 8 ], "conditions": [ "DUSK", "DAY", "DAWN" ] }, - { - "monster": "mon_thescelosaurus", - "weight": 10, - "pack_size": [ 2, 4 ], - "conditions": [ "DUSK", "DAY", "DAWN" ] - } + { "monster": "mon_scutellosaurus", "weight": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_stegosaurus", "weight": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_hesperosaurus", "weight": 10, "pack_size": [ 2, 4 ] }, + { "monster": "mon_gastonia", "weight": 10 }, + { "monster": "mon_gargoyleosaurus", "weight": 10 }, + { "monster": "mon_sauropelta", "weight": 10 }, + { "monster": "mon_nodosaurus", "weight": 10 }, + { "monster": "mon_panoplosaurus", "weight": 10 }, + { "monster": "mon_edmontonia", "weight": 10 }, + { "monster": "mon_zuul", "weight": 10 }, + { "monster": "mon_dyoplosaurus", "weight": 10 }, + { "monster": "mon_ankylosaurus", "weight": 10 }, + { "monster": "mon_euoplocephalus", "weight": 10 }, + { "monster": "mon_scolosaurus", "weight": 10 }, + { "monster": "mon_stegoceras", "weight": 3, "pack_size": [ 4, 8 ] }, + { "monster": "mon_pachycephalosaurus", "weight": 3, "pack_size": [ 4, 8 ] }, + { "monster": "mon_aquilops", "weight": 3, "pack_size": [ 4, 8 ] }, + { "monster": "mon_leptoceratops", "weight": 3, "pack_size": [ 4, 8 ] }, + { "monster": "mon_zuniceratops", "weight": 3, "pack_size": [ 4, 8 ] }, + { "monster": "mon_styracosaurus", "weight": 3, "cost_multiplier": 20, "pack_size": [ 4, 8 ] }, + { "monster": "mon_centrosaurus", "weight": 3, "cost_multiplier": 20, "pack_size": [ 4, 8 ] }, + { "monster": "mon_einiosaurus", "weight": 3, "cost_multiplier": 20, "pack_size": [ 4, 8 ] }, + { "monster": "mon_achelousaurus", "weight": 3, "cost_multiplier": 20, "pack_size": [ 4, 8 ] }, + { "monster": "mon_pachyrhinosaurus", "weight": 3, "cost_multiplier": 20, "pack_size": [ 4, 8 ] }, + { "monster": "mon_chasmosaurus", "weight": 3, "cost_multiplier": 25, "pack_size": [ 4, 8 ] }, + { "monster": "mon_pentaceratops", "weight": 3, "cost_multiplier": 25, "pack_size": [ 4, 8 ] }, + { "monster": "mon_kosmoceratops", "weight": 3, "cost_multiplier": 25, "pack_size": [ 4, 8 ] }, + { "monster": "mon_torosaurus", "weight": 3, "cost_multiplier": 25, "pack_size": [ 4, 8 ] }, + { "monster": "mon_triceratops", "weight": 3, "cost_multiplier": 30, "pack_size": [ 4, 8 ] }, + { "monster": "mon_nanosaurus", "weight": 5, "pack_size": [ 4, 8 ] }, + { "monster": "mon_thescelosaurus", "weight": 10, "pack_size": [ 2, 4 ] } ] }, { "type": "monstergroup", - "name": "GROUP_RIVER", - "//": "Current SPRING first DAY count is 60.", + "name": "GROUP_WILDERNESS_FOREST_SAUROPODS", "is_animal": true, "monsters": [ - { "group": "GROUP_DINOSAUR_PREDATOR_WILDERNESS", "weight": 10 }, - { "group": "GROUP_DINOSAUR_SAUROPODS_WILDERNESS", "weight": 25 }, - { "group": "GROUP_DINOSAUR_HADROSAURS_WILDERNESS", "weight": 25 } + { "monster": "mon_sarahsaurus", "weight": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_anchisaurus", "weight": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_issi", "weight": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_haplocanthosaurus_juvenile", "weight": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_apatosaurus_juvenile", "weight": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_brontosaurus_juvenile", "weight": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_diplodocus_juvenile", "weight": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_barosaurus_juvenile", "weight": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_camarasaurus_juvenile", "weight": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_brachiosaurus_juvenile", "weight": 1, "pack_size": [ 4, 12 ] }, + { "monster": "mon_alamosaurus_juvenile", "weight": 1, "pack_size": [ 4, 12 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_RIVER", + "monsters": [ + { "group": "GROUP_DINOSAUR_PREDATOR_RIVER", "weight": 10, "starts": "3 days" }, + { "group": "GROUP_DINOSAUR_PREDATOR_RIVER", "weight": 20, "starts": "3 days", "ends": "7 days" }, + { "group": "GROUP_DINOSAUR_PREDATOR_RIVER", "weight": 20, "starts": "3 days", "ends": "28 days" }, + { "group": "GROUP_DINOSAUR_PREDATOR_RIVER", "weight": 20, "starts": "3 days", "ends": "90 days" }, + { "group": "GROUP_DINOSAUR_ZREDATOR_RIVER", "weight": 25, "starts": "7 days" }, + { "group": "GROUP_DINOSAUR_ZREDATOR_RIVER", "weight": 25, "starts": "28 days" }, + { "group": "GROUP_DINOSAUR_ZREDATOR_RIVER", "weight": 25, "starts": "90 days" }, + { "group": "GROUP_DINOSAUR_SAUROPODS_WILDERNESS", "weight": 25, "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] }, + { + "group": "GROUP_DINOSAUR_SAUROPODS_WILDERNESS", + "weight": 25, + "conditions": [ "SPRING", "SUMMER", "AUTUMN" ], + "ends": "3 days" + }, + { + "group": "GROUP_DINOSAUR_SAUROPODS_WILDERNESS", + "weight": 25, + "conditions": [ "SPRING", "SUMMER", "AUTUMN" ], + "ends": "7 days" + }, + { + "group": "GROUP_DINOSAUR_SAUROPODS_WILDERNESS", + "weight": 25, + "conditions": [ "SPRING", "SUMMER", "AUTUMN" ], + "ends": "28 days" + }, + { + "group": "GROUP_DINOSAUR_SAUROPODS_WILDERNESS", + "weight": 25, + "conditions": [ "SPRING", "SUMMER", "AUTUMN" ], + "ends": "90 days" + }, + { "group": "GROUP_DINOSAUR_ZAUROPODS_WILDERNESS", "weight": 25, "starts": "3 days" }, + { "group": "GROUP_DINOSAUR_ZAUROPODS_WILDERNESS", "weight": 25, "starts": "7 days" }, + { "group": "GROUP_DINOSAUR_ZAUROPODS_WILDERNESS", "weight": 25, "starts": "28 days" }, + { "group": "GROUP_DINOSAUR_ZAUROPODS_WILDERNESS", "weight": 25, "starts": "90 days" }, + { "monster": "mon_pteranodon", "weight": 25, "cost_multiplier": 20, "pack_size": [ 2, 4 ] }, + { "monster": "mon_quetzalcoatlus", "weight": 4, "cost_multiplier": 30, "pack_size": [ 1, 2 ] }, + { "monster": "mon_mosasaurus", "weight": 1, "cost_multiplier": 60, "starts": "3 days" }, + { "monster": "mon_zosasaurus", "cost_multiplier": 100, "starts": "7 days" }, + { "monster": "mon_zosasaurus", "cost_multiplier": 100, "starts": "14 days" }, + { "monster": "mon_zosasaurus", "cost_multiplier": 100, "starts": "28 days" }, + { "monster": "mon_zosasaurus", "cost_multiplier": 100, "starts": "90 days" } ] }, { "type": "monstergroup", "name": "GROUP_SWAMP", - "//": "Current SPRING first DAY count is 70.", - "is_animal": true, "monsters": [ - { "group": "GROUP_DINOSAUR_PREDATOR_WILDERNESS", "weight": 20 }, - { "group": "GROUP_DINOSAUR_SAUROPODS_WILDERNESS", "weight": 25 }, - { "group": "GROUP_DINOSAUR_HADROSAURS_WILDERNESS", "weight": 25 } + { "group": "GROUP_DINOSAUR_PREDATOR_SWAMP", "weight": 20, "starts": "3 days" }, + { "group": "GROUP_DINOSAUR_PREDATOR_SWAMP", "weight": 20, "starts": "3 days", "ends": "7 days" }, + { "group": "GROUP_DINOSAUR_PREDATOR_SWAMP", "weight": 20, "starts": "3 days", "ends": "28 days" }, + { "group": "GROUP_DINOSAUR_PREDATOR_SWAMP", "weight": 20, "starts": "3 days", "ends": "90 days" }, + { "group": "GROUP_DINOSAUR_ZREDATOR_SWAMP", "weight": 25, "starts": "7 days" }, + { "group": "GROUP_DINOSAUR_ZREDATOR_SWAMP", "weight": 25, "starts": "28 days" }, + { "group": "GROUP_DINOSAUR_ZREDATOR_SWAMP", "weight": 25, "starts": "90 days" }, + { "group": "GROUP_DINOSAUR_HADROSAURS_WILDERNESS", "weight": 25 }, + { "group": "GROUP_DINOSAUR_HADROSAURS_WILDERNESS", "weight": 25, "ends": "3 days" }, + { "group": "GROUP_DINOSAUR_HADROSAURS_WILDERNESS", "weight": 25, "ends": "7 days" }, + { "group": "GROUP_DINOSAUR_HADROSAURS_WILDERNESS", "weight": 25, "ends": "28 days" }, + { "group": "GROUP_DINOSAUR_HADROSAURS_WILDERNESS", "weight": 25, "ends": "90 days" }, + { "group": "GROUP_DINOSAUR_ZADROSAURS_WILDERNESS", "weight": 25, "starts": "3 days" }, + { "group": "GROUP_DINOSAUR_ZADROSAURS_WILDERNESS", "weight": 25, "starts": "7 days" }, + { "group": "GROUP_DINOSAUR_ZADROSAURS_WILDERNESS", "weight": 25, "starts": "28 days" }, + { "group": "GROUP_DINOSAUR_ZADROSAURS_WILDERNESS", "weight": 25, "starts": "90 days" } ] }, { "type": "monstergroup", "name": "GROUP_PARK_ANIMAL", - "//": "Current SPRING first DAY count is 50.", "is_animal": true, "monsters": [ { "monster": "mon_dimorphodon", "weight": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ], "conditions": [ "DAY" ] } ] }, { "type": "monstergroup", "name": "GROUP_POND_BIRD", - "//": "Current count is 50.", "is_animal": true, "monsters": [ { "monster": "mon_dimorphodon", "weight": 50, "cost_multiplier": 0, "pack_size": [ 2, 4 ] } ] }, { "type": "monstergroup", "name": "GROUP_CAVE", - "//": "Current SPRING first DAY count is 1000.", "is_animal": true, "monsters": [ { "monster": "mon_compsognathus", "weight": 400, "pack_size": [ 4, 12 ] }, @@ -291,7 +172,6 @@ { "type": "monstergroup", "name": "GROUP_ROOF_ANIMAL", - "//": "Current SPRING first DAY count is 75.", "is_animal": true, "monsters": [ { "monster": "mon_albertonykus", "weight": 25, "pack_size": [ 1, 2 ], "conditions": [ "DUSK", "DAY", "DAWN" ] }, diff --git a/data/Mainline_mods/Mods/DinoMod/monstergroups/zinosaur.json b/data/Mainline_mods/Mods/DinoMod/monstergroups/zinosaur.json index 2693310ff..86d46255f 100644 --- a/data/Mainline_mods/Mods/DinoMod/monstergroups/zinosaur.json +++ b/data/Mainline_mods/Mods/DinoMod/monstergroups/zinosaur.json @@ -2,6 +2,7 @@ { "type": "monstergroup", "name": "GROUP_DINOSAUR_ZOMBIE", + "//": "Random North American dino zombie list", "monsters": [ { "monster": "mon_zilophosaurus", "weight": 10, "cost_multiplier": 20, "starts": "3 days", "pack_size": [ 1, 2 ] }, { "monster": "mon_zeratosaurus", "weight": 10, "cost_multiplier": 60, "starts": "3 days" }, @@ -14,7 +15,6 @@ { "monster": "mon_zappalachiosaurus", "weight": 40, "cost_multiplier": 70, "starts": "3 days" }, { "monster": "mon_zorgosaurus", "weight": 40, "cost_multiplier": 70, "starts": "3 days" }, { "monster": "mon_zalbertosaurus", "weight": 40, "cost_multiplier": 70, "starts": "3 days" }, - { "monster": "mon_zianzhousaurus", "weight": 4, "cost_multiplier": 70, "starts": "3 days" }, { "monster": "mon_zanuqsaurus", "weight": 4, "cost_multiplier": 70, "starts": "3 days" }, { "monster": "mon_zaspletosaurus", "weight": 4, "cost_multiplier": 70, "starts": "3 days" }, { "monster": "mon_zyrannosaurus", "weight": 80, "cost_multiplier": 80, "starts": "6 days" }, @@ -26,39 +26,52 @@ { "monster": "mon_zeinonychus", "weight": 30, "cost_multiplier": 30, "starts": "3 days", "pack_size": [ 1, 2 ] }, { "monster": "mon_zutahraptor", "weight": 50, "cost_multiplier": 60, "starts": "6 days" }, { "monster": "mon_zarahsaurus", "weight": 5, "cost_multiplier": 30, "starts": "3 days" }, + { "monster": "mon_zanchisaurus", "weight": 5, "cost_multiplier": 30, "starts": "3 days" }, { "monster": "mon_zissi", "weight": 5, "cost_multiplier": 30, "starts": "3 days" }, { "monster": "mon_zaplocanthosaurus", "weight": 5, "cost_multiplier": 30, "starts": "3 days" }, { "monster": "mon_zamargasaurus", "weight": 5, "cost_multiplier": 50, "starts": "3 days" }, { "monster": "mon_zapatosaurus", "weight": 50, "cost_multiplier": 50, "starts": "3 days" }, { "monster": "mon_zrontosaurus", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_ziplodocus", "weight": 100, "cost_multiplier": 40, "starts": "3 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_zarosaurus", "weight": 100, "cost_multiplier": 40, "starts": "3 days", "pack_size": [ 1, 2 ] }, { "monster": "mon_zamarasaurus", "weight": 200, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zrachiosaurus", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zalamosaurus", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_ztegosaurus", "weight": 50, "cost_multiplier": 40, "starts": "3 days", "pack_size": [ 1, 2 ] }, - { - "monster": "mon_zesperosaurus", - "weight": 50, - "cost_multiplier": 40, - "starts": "3 days", - "pack_size": [ 1, 2 ] - }, + { "monster": "mon_zesperosaurus", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zastonia", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zargoyleosaurus", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zauropelta", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zodosaurus", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zanoplosaurus", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zedmontonia", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zzuul", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zyoplosaurus", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zankylosaurus", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zuoplocephalus", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zcolosaurus", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zenontosaurus", "weight": 200, "starts": "3 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_zryosaurus", "weight": 200, "starts": "3 days", "pack_size": [ 1, 2 ] }, { "monster": "mon_zamptosaurus", "weight": 200, "starts": "3 days", "pack_size": [ 1, 2 ] }, { "monster": "mon_zadrosaurus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, - { "monster": "mon_zarasaurolophus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, - { "monster": "mon_zorythosaurus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, { "monster": "mon_zaiasaura", "weight": 200, "cost_multiplier": 20, "starts": "3 days", "pack_size": [ 1, 2 ] }, - { "monster": "mon_zedmontosaurus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, { "monster": "mon_zryposaurus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zrosaurolophus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zaurolophus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zedmontosaurus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zarasaurolophus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zambeosaurus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zorythosaurus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zypacrosaurus", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, { "monster": "mon_zachycephalosaurus", "weight": 200, "starts": "3 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_zeptoceratops", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zzuniceratops", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_ztyracosaurus", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zentrosaurus", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zeiniosaurus", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zachelousaurus", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zachyrhinosaurus", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zasmosaurus", "weight": 10, "cost_multiplier": 50, "starts": "3 days" }, { "monster": "mon_zentaceratops", "weight": 10, "cost_multiplier": 50, "starts": "3 days" }, { "monster": "mon_zosmoceratops", "weight": 3, "cost_multiplier": 70, "starts": "3 days" }, { "monster": "mon_zorosaurus", "weight": 10, "cost_multiplier": 50, "starts": "3 days", "pack_size": [ 1, 2 ] }, @@ -70,6 +83,7 @@ { "type": "monstergroup", "name": "GROUP_DINOSAUR_ZOMBIE_SCORCHED", + "//": "Random North American scorched dino zombie list", "monsters": [ { "monster": "mon_zilophosaurus_scorched", "weight": 10, "cost_multiplier": 20, "starts": "3 days" }, { "monster": "mon_zeratosaurus_scorched", "weight": 10, "cost_multiplier": 60, "starts": "3 days" }, @@ -93,30 +107,42 @@ { "monster": "mon_zeinonychus_scorched", "weight": 30, "cost_multiplier": 30, "starts": "3 days" }, { "monster": "mon_zutahraptor_scorched", "weight": 50, "cost_multiplier": 60, "starts": "6 days" }, { "monster": "mon_zarahsaurus_scorched", "weight": 5, "cost_multiplier": 50, "starts": "3 days" }, + { "monster": "mon_zanchisaurus_scorched", "weight": 5, "cost_multiplier": 50, "starts": "3 days" }, { "monster": "mon_zissi_scorched", "weight": 5, "cost_multiplier": 50, "starts": "3 days" }, { "monster": "mon_zaplocanthosaurus_scorched", "weight": 5, "cost_multiplier": 50, "starts": "3 days" }, { "monster": "mon_zapatosaurus_scorched", "weight": 50, "cost_multiplier": 50, "starts": "3 days" }, { "monster": "mon_zrontosaurus_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_ziplodocus_scorched", "weight": 100, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zarosaurus_scorched", "weight": 100, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zamarasaurus_scorched", "weight": 200, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zrachiosaurus_scorched", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zalamosaurus_scorched", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_ztegosaurus_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zesperosaurus_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zastonia_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zargoyleosaurus_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zauropelta_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zodosaurus_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zanoplosaurus_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zedmontonia_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zzuul_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zyoplosaurus_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zankylosaurus_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zuoplocephalus_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zcolosaurus_scorched", "weight": 50, "cost_multiplier": 40, "starts": "3 days" }, + { "monster": "mon_zenontosaurus_scorched", "weight": 200, "starts": "3 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_zryosaurus_scorched", "weight": 200, "starts": "3 days", "pack_size": [ 1, 2 ] }, { "monster": "mon_zamptosaurus_scorched", "weight": 200, "starts": "3 days", "pack_size": [ 1, 2 ] }, { "monster": "mon_zadrosaurus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, - { "monster": "mon_zarasaurolophus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, - { "monster": "mon_zorythosaurus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, { "monster": "mon_zaiasaura_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, - { "monster": "mon_zedmontosaurus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, { "monster": "mon_zryposaurus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zrosaurolophus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zaurolophus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zedmontosaurus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zarasaurolophus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zambeosaurus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zorythosaurus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, + { "monster": "mon_zypacrosaurus_scorched", "weight": 200, "cost_multiplier": 20, "starts": "3 days" }, { "monster": "mon_zachycephalosaurus_scorched", "weight": 200, "starts": "3 days", "pack_size": [ 1, 2 ] }, { "monster": "mon_zachyrhinosaurus_scorched", "weight": 10, "cost_multiplier": 40, "starts": "3 days" }, { "monster": "mon_zentaceratops_scorched", "weight": 10, "cost_multiplier": 50, "starts": "3 days" }, @@ -183,6 +209,15 @@ { "monster": "mon_zacrocanthosaurus_brute", "weight": 300 } ] }, + { + "type": "monstergroup", + "name": "GROUP_ziganotosaurus_UPGRADE", + "monsters": [ + { "monster": "mon_siganotosaurus", "weight": 400 }, + { "monster": "mon_ziganotosaurus_shady", "weight": 300 }, + { "monster": "mon_ziganotosaurus_brute", "weight": 300 } + ] + }, { "type": "monstergroup", "name": "GROUP_ziats_UPGRADE", @@ -291,6 +326,15 @@ { "monster": "mon_zornithomimus_brute", "weight": 300 } ] }, + { + "type": "monstergroup", + "name": "GROUP_zerizinosaurus_UPGRADE", + "monsters": [ + { "monster": "mon_serizinosaurus", "weight": 400 }, + { "monster": "mon_zerizinosaurus_shady", "weight": 300 }, + { "monster": "mon_zerizinosaurus_brute", "weight": 300 } + ] + }, { "type": "monstergroup", "name": "GROUP_zothronychus_UPGRADE", @@ -332,6 +376,11 @@ "name": "GROUP_zarahsaurus_UPGRADE", "monsters": [ { "monster": "mon_skarahsaurus", "weight": 600 }, { "monster": "mon_zarahsaurus_brute", "weight": 400 } ] }, + { + "type": "monstergroup", + "name": "GROUP_zanchisaurus_UPGRADE", + "monsters": [ { "monster": "mon_sanchisaurus", "weight": 600 }, { "monster": "mon_zanchisaurus_brute", "weight": 400 } ] + }, { "type": "monstergroup", "name": "GROUP_zissi_UPGRADE", @@ -362,6 +411,11 @@ "name": "GROUP_ziplodocus_UPGRADE", "monsters": [ { "monster": "mon_siplodocus", "weight": 600 }, { "monster": "mon_ziplodocus_brute", "weight": 400 } ] }, + { + "type": "monstergroup", + "name": "GROUP_zarosaurus_UPGRADE", + "monsters": [ { "monster": "mon_sarosaurus", "weight": 600 }, { "monster": "mon_zarosaurus_brute", "weight": 400 } ] + }, { "type": "monstergroup", "name": "GROUP_zamarasaurus_UPGRADE", @@ -387,6 +441,11 @@ "name": "GROUP_zesperosaurus_UPGRADE", "monsters": [ { "monster": "mon_sesperosaurus", "weight": 600 }, { "monster": "mon_zesperosaurus_brute", "weight": 400 } ] }, + { + "type": "monstergroup", + "name": "GROUP_zastonia_UPGRADE", + "monsters": [ { "monster": "mon_sastonia", "weight": 600 }, { "monster": "mon_zastonia_brute", "weight": 400 } ] + }, { "type": "monstergroup", "name": "GROUP_zargoyleosaurus_UPGRADE", @@ -402,6 +461,11 @@ "name": "GROUP_zodosaurus_UPGRADE", "monsters": [ { "monster": "mon_sodosaurus", "weight": 600 }, { "monster": "mon_zodosaurus_brute", "weight": 400 } ] }, + { + "type": "monstergroup", + "name": "GROUP_zanoplosaurus_UPGRADE", + "monsters": [ { "monster": "mon_sanoplosaurus", "weight": 600 }, { "monster": "mon_zanoplosaurus_brute", "weight": 400 } ] + }, { "type": "monstergroup", "name": "GROUP_zedmontonia_UPGRADE", @@ -426,6 +490,26 @@ { "monster": "mon_zankylosaurus_brute", "weight": 300 } ] }, + { + "type": "monstergroup", + "name": "GROUP_zuoplocephalus_UPGRADE", + "monsters": [ { "monster": "mon_suoplocephalus", "weight": 600 }, { "monster": "mon_zuoplocephalus_brute", "weight": 400 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_zcolosaurus_UPGRADE", + "monsters": [ { "monster": "mon_skcolosaurus", "weight": 600 }, { "monster": "mon_zcolosaurus_brute", "weight": 400 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_zenontosaurus_UPGRADE", + "monsters": [ { "monster": "mon_senontosaurus", "weight": 600 }, { "monster": "mon_zenontosaurus_brute", "weight": 400 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_zryosaurus_UPGRADE", + "monsters": [ { "monster": "mon_sryosaurus", "weight": 600 }, { "monster": "mon_zryosaurus_brute", "weight": 400 } ] + }, { "type": "monstergroup", "name": "GROUP_zamptosaurus_UPGRADE", @@ -438,18 +522,23 @@ }, { "type": "monstergroup", - "name": "GROUP_zarasaurolophus_UPGRADE", - "monsters": [ { "monster": "mon_sarasaurolophus", "weight": 600 }, { "monster": "mon_zarasaurolophus_brute", "weight": 400 } ] + "name": "GROUP_zaiasaura_UPGRADE", + "monsters": [ { "monster": "mon_saiasaura", "weight": 600 }, { "monster": "mon_zaiasaura_brute", "weight": 400 } ] }, { "type": "monstergroup", - "name": "GROUP_zorythosaurus_UPGRADE", - "monsters": [ { "monster": "mon_sorythosaurus", "weight": 600 }, { "monster": "mon_zorythosaurus_brute", "weight": 400 } ] + "name": "GROUP_zryposaurus_UPGRADE", + "monsters": [ { "monster": "mon_sryposaurus", "weight": 600 }, { "monster": "mon_zryposaurus_brute", "weight": 400 } ] }, { "type": "monstergroup", - "name": "GROUP_zaiasaura_UPGRADE", - "monsters": [ { "monster": "mon_saiasaura", "weight": 600 }, { "monster": "mon_zaiasaura_brute", "weight": 400 } ] + "name": "GROUP_zrosaurolophus_UPGRADE", + "monsters": [ { "monster": "mon_srosaurolophus", "weight": 600 }, { "monster": "mon_zrosaurolophus_brute", "weight": 400 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_zaurolophus_UPGRADE", + "monsters": [ { "monster": "mon_skaurolophus", "weight": 600 }, { "monster": "mon_zaurolophus_brute", "weight": 400 } ] }, { "type": "monstergroup", @@ -458,8 +547,23 @@ }, { "type": "monstergroup", - "name": "GROUP_zryposaurus_UPGRADE", - "monsters": [ { "monster": "mon_sryposaurus", "weight": 600 }, { "monster": "mon_zryposaurus_brute", "weight": 400 } ] + "name": "GROUP_zarasaurolophus_UPGRADE", + "monsters": [ { "monster": "mon_sarasaurolophus", "weight": 600 }, { "monster": "mon_zarasaurolophus_brute", "weight": 400 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_zambeosaurus_UPGRADE", + "monsters": [ { "monster": "mon_sambeosaurus", "weight": 600 }, { "monster": "mon_zambeosaurus_brute", "weight": 400 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_zorythosaurus_UPGRADE", + "monsters": [ { "monster": "mon_sorythosaurus", "weight": 600 }, { "monster": "mon_zorythosaurus_brute", "weight": 400 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_zypacrosaurus_UPGRADE", + "monsters": [ { "monster": "mon_sypacrosaurus", "weight": 600 }, { "monster": "mon_zypacrosaurus_brute", "weight": 400 } ] }, { "type": "monstergroup", @@ -476,16 +580,36 @@ "name": "GROUP_zzuniceratops_UPGRADE", "monsters": [ { "monster": "mon_suniceratops", "weight": 600 }, { "monster": "mon_zzuniceratops_brute", "weight": 400 } ] }, + { + "type": "monstergroup", + "name": "GROUP_ztyracosaurus_UPGRADE", + "monsters": [ { "monster": "mon_sktyracosaurus", "weight": 600 }, { "monster": "mon_ztyracosaurus_brute", "weight": 400 } ] + }, { "type": "monstergroup", "name": "GROUP_zentrosaurus_UPGRADE", "monsters": [ { "monster": "mon_sentrosaurus", "weight": 600 }, { "monster": "mon_zentrosaurus_brute", "weight": 400 } ] }, + { + "type": "monstergroup", + "name": "GROUP_zeiniosaurus_UPGRADE", + "monsters": [ { "monster": "mon_seiniosaurus", "weight": 600 }, { "monster": "mon_zeiniosaurus_brute", "weight": 400 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_zachelousaurus_UPGRADE", + "monsters": [ { "monster": "mon_sachelousaurus", "weight": 600 }, { "monster": "mon_zachelousaurus_brute", "weight": 400 } ] + }, { "type": "monstergroup", "name": "GROUP_zachyrhinosaurus_UPGRADE", "monsters": [ { "monster": "mon_sachyrhinosaurus", "weight": 600 }, { "monster": "mon_zachyrhinosaurus_brute", "weight": 400 } ] }, + { + "type": "monstergroup", + "name": "GROUP_zasmosaurus_UPGRADE", + "monsters": [ { "monster": "mon_sasmosaurus", "weight": 600 }, { "monster": "mon_zasmosaurus_brute", "weight": 400 } ] + }, { "type": "monstergroup", "name": "GROUP_zentaceratops_UPGRADE", @@ -559,8 +683,6 @@ "monsters": [ { "monster": "mon_zilophosaurus", "starts": "3 days" }, { "monster": "mon_zeratosaurus", "starts": "3 days" }, - { "monster": "mon_zryptosaurus", "starts": "3 days" }, - { "monster": "mon_zappalachiosaurus", "starts": "3 days" }, { "monster": "mon_zallimimus", "starts": "3 days" }, { "monster": "mon_ztruthiomimus", "starts": "3 days" }, { "monster": "mon_zornithomimus", "starts": "3 days" }, @@ -568,9 +690,12 @@ { "monster": "mon_zeinonychus", "starts": "3 days" }, { "monster": "mon_zutahraptor", "starts": "6 days" }, { "monster": "mon_zarahsaurus", "starts": "3 days" }, + { "monster": "mon_zanchisaurus", "starts": "3 days" }, { "monster": "mon_zargoyleosaurus", "starts": "3 days" }, { "monster": "mon_zauropelta", "starts": "3 days" }, { "monster": "mon_zzuul", "starts": "3 days" }, + { "monster": "mon_zenontosaurus", "starts": "3 days" }, + { "monster": "mon_zryosaurus", "starts": "3 days" }, { "monster": "mon_zeptoceratops", "starts": "3 days" }, { "monster": "mon_zzuniceratops", "starts": "3 days" }, { "monster": "mon_zescelosaurus", "starts": "3 days" } diff --git a/data/Mainline_mods/Mods/DinoMod/monsters/dinosaur.json b/data/Mainline_mods/Mods/DinoMod/monsters/dinosaur.json index 789601fdd..06d3f7369 100644 --- a/data/Mainline_mods/Mods/DinoMod/monsters/dinosaur.json +++ b/data/Mainline_mods/Mods/DinoMod/monsters/dinosaur.json @@ -7,6 +7,32 @@ "bleeds": "fd_blood", "description": "a dinosaur" }, + { + "type": "MONSTER", + "id": "mon_tawa", + "name": { "str_sp": "tawa" }, + "copy-from": "mon_eoraptor", + "default_faction": "tawa", + "volume": "15 L", + "weight": "15 kg", + "material": [ "flesh" ], + "aggression": 0, + "morale": 40, + "speed": 120, + "melee_skill": 6, + "melee_dice": 1, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], + "dodge": 5, + "hp": 15, + "description": "Smaller, thin predatory bipedal dinosaur with feathers, a long neck and head and sharp teeth and claws.", + "reproduction": { "baby_egg": "egg_tawa", "baby_count": 3, "baby_timer": 24 }, + "extend": { "flags": [ "SWARMS", "GROUP_MORALE" ] }, + "death_drops": { }, + "harvest": "dino_pred_feather_leather", + "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE" ], + "fear_triggers": [ "FRIEND_DIED" ] + }, { "type": "MONSTER", "id": "mon_coelophysis", @@ -25,9 +51,8 @@ "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "dodge": 4, "hp": 20, - "description": "Small, thin predatory bipedal dinosaur with a long head and sharp teeth and long grasping claws.", + "description": "Smaller, thin predatory bipedal dinosaur with a long head and sharp teeth and long grasping claws.", "reproduction": { "baby_egg": "egg_coelophysis", "baby_count": 3, "baby_timer": 24 }, - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 10 } ], "extend": { "flags": [ "SWARMS", "GROUP_MORALE" ] }, "death_drops": { }, "harvest": "dino_pred_feather_leather", @@ -45,6 +70,7 @@ "volume": "400 L", "weight": "400 kg", "material": [ "flesh" ], + "stomach_size": 4, "aggression": 5, "morale": 40, "speed": 90, @@ -53,7 +79,6 @@ "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "dodge": 4, - "armor_bash": 4, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 100, @@ -62,12 +87,14 @@ "reproduction": { "baby_egg": "egg_dilophosaurus", "baby_count": 3, "baby_timer": 18 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 2 }, - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 10 } ], - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "WARM", "SWIMS" ], + "grab_strength": 15, + "special_attacks": [ { "id": "teeth_grab", "cooldown": 10 }, { "id": "teeth_rip", "cooldown": 10 }, [ "EAT_CARRION", 60 ] ], + "flags": [ "SEES", "SMELLS", "HEARS", "EATS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "WARM", "SWIMS" ], "harvest": "dino_med_feather_pred", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE" ], "fear_triggers": [ "FRIEND_DIED" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4 } }, { "type": "MONSTER", @@ -82,6 +109,7 @@ "weight": "540 kg", "material": [ "flesh" ], "bodytype": "ostrich", + "stomach_size": 5, "aggression": 10, "morale": 70, "speed": 80, @@ -90,8 +118,6 @@ "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "dodge": 4, - "armor_bash": 3, - "armor_cut": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 70, @@ -100,13 +126,15 @@ "reproduction": { "baby_egg": "egg_ceratosaurus", "baby_count": 3, "baby_timer": 24 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 2 }, - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 10 } ], - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM", "SWIMS" ], + "grab_strength": 15, + "special_attacks": [ { "id": "teeth_grab", "cooldown": 10 }, { "id": "teeth_rip", "cooldown": 10 }, [ "EAT_CARRION", 60 ] ], + "flags": [ "SEES", "SMELLS", "HEARS", "EATS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM", "SWIMS" ], "harvest": "dino_large_pred", "dissect": "dissect_dino_large_pred", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE" ], "fear_triggers": [ "FRIEND_DIED" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 3, "cut": 2 } }, { "type": "MONSTER", @@ -121,6 +149,7 @@ "//": "When large weights and volumes are fixed this should be 15000 L and 15000 kg", "bodytype": "bear", "material": [ "flesh" ], + "stomach_size": 150, "aggression": 15, "morale": 70, "speed": 90, @@ -128,9 +157,6 @@ "melee_dice": 4, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 4, - "armor_cut": 3, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 425, @@ -139,12 +165,26 @@ "reproduction": { "baby_egg": "egg_spinosaurus", "baby_count": 3, "baby_timer": 24 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 3 }, [ "LUNGE", 5 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "WARM", "SWIMS", "PUSH_MON" ], + "grab_strength": 15, + "special_attacks": [ { "id": "teeth_grab", "cooldown": 10 }, { "id": "teeth_rip", "cooldown": 10 }, [ "LUNGE", 5 ], [ "EAT_CARRION", 60 ] ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "EATS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "BASHES", + "DESTROYS", + "WARM", + "SWIMS", + "PUSH_MON" + ], "harvest": "dino_large_pred", "dissect": "dissect_dino_large_pred", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE", "SOUND" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 3, "bullet": 2 } }, { "type": "MONSTER", @@ -160,6 +200,7 @@ "//": "When large weights and volumes are fixed this should be 5000 L and 5000 kg", "bodytype": "ostrich", "material": [ "flesh" ], + "stomach_size": 50, "aggression": 15, "morale": 70, "speed": 50, @@ -168,9 +209,6 @@ "melee_dice": 4, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], - "armor_bash": 4, - "armor_cut": 3, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 300, @@ -179,12 +217,14 @@ "reproduction": { "baby_egg": "egg_torvosaurus", "baby_count": 3, "baby_timer": 24 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 }, [ "LUNGE", 5 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "WARM", "PUSH_MON" ], + "grab_strength": 15, + "special_attacks": [ { "id": "teeth_grab", "cooldown": 10 }, { "id": "teeth_rip", "cooldown": 10 }, [ "LUNGE", 5 ], [ "EAT_CARRION", 60 ] ], + "flags": [ "SEES", "SMELLS", "HEARS", "EATS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "WARM", "PUSH_MON" ], "harvest": "dino_large_pred", "dissect": "dissect_dino_large_pred", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE", "SOUND" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 3, "bullet": 2 } }, { "type": "MONSTER", @@ -199,6 +239,7 @@ "//": "When large weights and volumes are fixed this should be 1700 L and 1700 kg", "bodytype": "ostrich", "material": [ "flesh" ], + "stomach_size": 17, "aggression": 15, "morale": 80, "speed": 100, @@ -207,7 +248,6 @@ "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "dodge": 4, - "armor_bash": 3, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 170, @@ -216,12 +256,14 @@ "reproduction": { "baby_egg": "egg_allosaurus", "baby_count": 3, "baby_timer": 24 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 10 } ], - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM" ], - "harvest": "dino_large_pred", + "grab_strength": 15, + "special_attacks": [ { "id": "teeth_grab", "cooldown": 10 }, { "id": "teeth_rip", "cooldown": 10 }, [ "EAT_CARRION", 60 ] ], + "flags": [ "SEES", "SMELLS", "HEARS", "EATS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "WARM" ], + "harvest": "allosaurus", "dissect": "dissect_dino_large_pred", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE", "SOUND" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 3 } }, { "type": "MONSTER", @@ -230,16 +272,42 @@ "copy-from": "mon_allosaurus", "default_faction": "acrocanthosaurus", "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", + "stomach_size": 40, "speed": 75, "melee_dice": 4, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 10, "hp": 300, "zombify_into": "mon_zacrocanthosaurus", - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 10 }, [ "LUNGE", 20 ] ], + "special_attacks": [ + { "id": "teeth_grab", "cooldown": 10 }, + { "id": "teeth_rip", "cooldown": 10 }, + [ "LUNGE", 20 ], + [ "EAT_CARRION", 60 ] + ], "description": "Huge predatory bipedal dinosaur with a tall ridge running the length of its back covered with heavy muscles. Its teeth are curved and serrated like sawblades.", - "reproduction": { "baby_egg": "egg_acrocanthosaurus", "baby_count": 3, "baby_timer": 24 } + "reproduction": { "baby_egg": "egg_acrocanthosaurus", "baby_count": 3, "baby_timer": 24 }, + "harvest": "acrocanthosaurus", + "armor": { "bash": 10 } + }, + { + "type": "MONSTER", + "id": "mon_giganotosaurus", + "name": { "str_sp": "giganotosaurus" }, + "copy-from": "mon_acrocanthosaurus", + "default_faction": "giganotosaurus", + "//": "When large weights and volumes are fixed this should be 10000 L and 10000 kg", + "stomach_size": 100, + "speed": 150, + "attack_cost": 150, + "melee_dice": 5, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "hp": 400, + "zombify_into": "mon_ziganotosaurus", + "description": "Gigantic predatory bipedal dinosaur with a wide, flat head and strong chin. Its teeth are curved and serrated like sawblades.", + "reproduction": { "baby_egg": "egg_giganotosaurus", "baby_count": 3, "baby_timer": 24 }, + "harvest": "giganotosaurus" }, { "type": "MONSTER", @@ -248,12 +316,21 @@ "copy-from": "mon_allosaurus", "default_faction": "siats", "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", + "stomach_size": 40, "speed": 75, "hp": 300, "zombify_into": "mon_ziats", - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ], [ "RANGED_PULL", 20 ], [ "GRAB_DRAG", 10 ], { "type": "bite", "cooldown": 10 } ], + "special_attacks": [ + { "id": "bio_op_takedown", "cooldown": 20 }, + { "id": "ranged_pull", "cooldown": 20 }, + { "id": "grab_drag" }, + { "id": "drag_followup" }, + { "id": "teeth_rip", "cooldown": 10 }, + [ "EAT_CARRION", 60 ] + ], "description": "Huge predatory bipedal dinosaur with long claws and strong arms for grappling.", - "reproduction": { "baby_egg": "egg_siats", "baby_count": 3, "baby_timer": 24 } + "reproduction": { "baby_egg": "egg_siats", "baby_count": 3, "baby_timer": 24 }, + "harvest": "dino_large_pred" }, { "type": "MONSTER", @@ -269,10 +346,12 @@ "zombify_into": "mon_zryptosaurus", "description": "Large sharp teeth and a lean frame, with long wicked claws and a feathered mullet and tail.", "reproduction": { "baby_egg": "egg_dryptosaurus", "baby_count": 3, "baby_timer": 24 }, + "grab_strength": 15, "special_attacks": [ - [ "GRAB", 15 ], - { "type": "bite", "cooldown": 15 }, - { "type": "leap", "cooldown": 20, "max_range": 5, "allow_no_target": true } + { "id": "teeth_grab", "cooldown": 15 }, + { "id": "teeth_pull", "cooldown": 15 }, + { "type": "leap", "cooldown": 20, "max_range": 5, "allow_no_target": true }, + [ "EAT_CARRION", 60 ] ] }, { @@ -282,6 +361,7 @@ "copy-from": "mon_gorgosaurus", "default_faction": "appalachiosaurus", "//": "When large weights and volumes are fixed this should be 1500 L and 1500 kg", + "stomach_size": 15, "speed": 130, "attack_cost": 130, "melee_damage": [ { "damage_type": "cut", "amount": 14 } ], @@ -289,7 +369,12 @@ "zombify_into": "mon_zappalachiosaurus", "description": "Enormous teeth, fierce eyes, and a powerful frame to drive it forward, with two small arms and a feathered mullet and tail. The snout is long with six ridges.", "reproduction": { "baby_egg": "egg_appalachiosaurus", "baby_count": 3, "baby_timer": 24 }, - "special_attacks": [ [ "GRAB", 15 ], { "type": "bite", "cooldown": 15 }, [ "LUNGE", 20 ] ] + "special_attacks": [ + { "id": "teeth_grab", "cooldown": 15 }, + { "id": "teeth_pull", "cooldown": 15 }, + [ "LUNGE", 20 ], + [ "EAT_CARRION", 60 ] + ] }, { "type": "MONSTER", @@ -298,6 +383,7 @@ "copy-from": "mon_albertosaurus", "default_faction": "gorgosaurus", "//": "When large weights and volumes are fixed this should be 2500 L and 2500 kg", + "stomach_size": 25, "morale": 80, "speed": 60, "attack_cost": 60, @@ -307,7 +393,12 @@ "zombify_into": "mon_zorgosaurus", "description": "Enormous teeth, fierce eyes, and a powerful frame to drive it forward, with two small arms and a feathered mullet and tail.", "reproduction": { "baby_egg": "egg_gorgosaurus", "baby_count": 3, "baby_timer": 24 }, - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 10 }, [ "LUNGE", 15 ] ] + "special_attacks": [ + { "id": "teeth_grab", "cooldown": 10 }, + { "id": "teeth_rip", "cooldown": 10 }, + [ "LUNGE", 15 ], + [ "EAT_CARRION", 60 ] + ] }, { "type": "MONSTER", @@ -321,6 +412,7 @@ "volume": "1000 L", "weight": "1000 kg", "//": "When large weights and volumes are fixed this should be 2000 L and 2000 kg", + "stomach_size": 20, "bodytype": "ostrich", "material": [ "flesh" ], "aggression": 15, @@ -332,9 +424,6 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 14 } ], "dodge": 5, - "armor_bash": 4, - "armor_cut": 2, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_lg_theropod_body" ], "hp": 200, @@ -343,12 +432,19 @@ "reproduction": { "baby_egg": "egg_albertosaurus", "baby_count": 3, "baby_timer": 24 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "WARM", "PUSH_MON" ], - "special_attacks": [ [ "GRAB", 7 ], { "type": "bite", "cooldown": 5 }, [ "LUNGE", 10 ], [ "LONGSWIPE", 25 ] ], + "flags": [ "SEES", "SMELLS", "HEARS", "EATS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "WARM", "PUSH_MON" ], + "grab_strength": 15, + "special_attacks": [ + { "id": "teeth_puncture", "cooldown": 7 }, + { "id": "teeth_pull", "cooldown": 5 }, + [ "LUNGE", 10 ], + [ "EAT_CARRION", 60 ] + ], "harvest": "dino_large_feather_pred", "dissect": "dissect_tyrant_sample_large", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE", "SOUND" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", @@ -363,6 +459,7 @@ "weight": "767 kg", "bodytype": "ostrich", "material": [ "flesh" ], + "stomach_size": 7, "aggression": 15, "morale": 80, "speed": 70, @@ -372,9 +469,6 @@ "melee_dice": 3, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 13 } ], - "armor_bash": 12, - "armor_cut": 12, - "armor_bullet": 12, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_lg_theropod_body" ], "hp": 100, @@ -384,12 +478,20 @@ "reproduction": { "baby_egg": "egg_qianzhousaurus", "baby_count": 5, "baby_timer": 23 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 2 }, - "special_attacks": [ [ "GRAB", 7 ], { "type": "bite", "cooldown": 5 }, [ "LUNGE", 10 ], [ "BIO_OP_TAKEDOWN", 30 ] ], - "flags": [ "SEES", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "WARM", "PUSH_MON" ], + "grab_strength": 15, + "special_attacks": [ + { "id": "teeth_puncture", "cooldown": 7 }, + { "id": "teeth_pull", "cooldown": 5 }, + [ "LUNGE", 10 ], + { "id": "bio_op_takedown", "cooldown": 30 }, + [ "EAT_CARRION", 60 ] + ], + "flags": [ "SEES", "SMELLS", "HEARS", "EATS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "WARM", "PUSH_MON" ], "harvest": "dino_large_feather_pred", "dissect": "dissect_tyrant_sample_large", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE", "SOUND" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 12, "cut": 12, "bullet": 12 } }, { "type": "MONSTER", @@ -399,13 +501,20 @@ "color": "white", "default_faction": "nanuqsaurus", "//": "When large weights and volumes are fixed this should be 1500 L and 1500 kg", + "stomach_size": 15, "speed": 50, "attack_cost": 50, "hp": 150, "zombify_into": "mon_zanuqsaurus", "description": "Bipedal dinosaur with long sharp teeth in a massive jaw, fierce eyes, and a powerful frame to drive it forward, short arms, with a feathered white mullet and tail.", "reproduction": { "baby_egg": "egg_nanuqsaurus", "baby_count": 3, "baby_timer": 24 }, - "special_attacks": [ [ "GRAB", 20 ], { "type": "bite", "cooldown": 10 }, [ "LUNGE", 10 ], [ "BIO_OP_TAKEDOWN", 20 ] ] + "special_attacks": [ + { "id": "teeth_puncture", "cooldown": 20 }, + { "id": "teeth_pull", "cooldown": 10 }, + [ "LUNGE", 10 ], + { "id": "bio_op_takedown", "cooldown": 20 }, + [ "EAT_CARRION", 60 ] + ] }, { "type": "MONSTER", @@ -414,6 +523,7 @@ "copy-from": "mon_tyrannosaurus", "default_faction": "daspletosaurus", "//": "When large weights and volumes are fixed this should be 2500 L and 2500 kg", + "stomach_size": 25, "melee_dice": 4, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], @@ -421,7 +531,14 @@ "zombify_into": "mon_zaspletosaurus", "description": "Bipedal dinosaur with long sharp teeth in a massive jaw, fierce eyes, and a powerful frame to drive it forward, short arms, with a feathered mullet and tail.", "reproduction": { "baby_egg": "egg_daspletosaurus", "baby_count": 3, "baby_timer": 24 }, - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 10 }, [ "LUNGE", 10 ], [ "BIO_OP_TAKEDOWN", 15 ] ] + "special_attacks": [ + { "id": "teeth_puncture", "cooldown": 10 }, + { "id": "teeth_pull", "cooldown": 10 }, + [ "LUNGE", 10 ], + { "id": "bio_op_takedown", "cooldown": 15 }, + [ "EAT_CARRION", 60 ] + ], + "harvest": "dino_large_feather_pred" }, { "type": "MONSTER", @@ -436,6 +553,7 @@ "//": "When large weights and volumes are fixed this should be 8500 L and 8500 kg", "bodytype": "ostrich", "material": [ "flesh" ], + "stomach_size": 85, "aggression": 15, "morale": 90, "speed": 50, @@ -445,9 +563,6 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 10 } ], "dodge": 5, - "armor_bash": 4, - "armor_cut": 2, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_lg_theropod_body" ], "hp": 400, @@ -456,11 +571,19 @@ "reproduction": { "baby_egg": "egg_tyrannosaurus", "baby_count": 3, "baby_timer": 24 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, - "special_attacks": [ [ "GRAB", 7 ], { "type": "bite", "cooldown": 5 }, [ "LUNGE", 10 ], [ "BIO_OP_TAKEDOWN", 15 ] ], + "grab_strength": 20, + "special_attacks": [ + { "id": "teeth_puncture", "cooldown": 7 }, + { "id": "teeth_pull", "cooldown": 5 }, + [ "LUNGE", 10 ], + { "id": "bio_op_takedown", "cooldown": 15 }, + [ "EAT_CARRION", 60 ] + ], "flags": [ "SEES", "SMELLS", "HEARS", + "EATS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", @@ -469,10 +592,11 @@ "PUSH_MON", "PRIORITIZE_TARGETS" ], - "harvest": "dino_large_feather_pred", + "harvest": "tyrannosaurus", "dissect": "dissect_tyrant_sample_large", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE", "SOUND" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", @@ -514,7 +638,10 @@ "SWIMS", "CANPLAY", "SWARMS", - "GROUP_MORALE" + "GROUP_MORALE", + "CORNERED_FIGHTER", + "CAN_BE_CULLED", + "SMALL_HIDER" ], "harvest": "dino_pred_feather_leather", "anger_triggers": [ "PLAYER_WEAK", "HURT" ], @@ -562,7 +689,8 @@ "PET_MOUNTABLE", "PET_WONT_FOLLOW", "HIT_AND_RUN", - "WARM" + "WARM", + "CAN_BE_CULLED" ], "harvest": "dino_feather_leather", "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "HURT", "FRIEND_DIED" ], @@ -624,14 +752,78 @@ "reproduction": { "baby_egg": "egg_albertonykus", "baby_count": 3, "baby_timer": 9 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 200 }, - "special_attacks": [ { "type": "bite", "cooldown": 10 } ], "petfood": { "food": [ "DINOFOOD_B" ] }, - "flags": [ "SEES", "SMELLS", "HEARS", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CLIMBS", "CANPLAY" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "HIT_AND_RUN", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "WARM", + "CLIMBS", + "CANPLAY", + "CAN_BE_CULLED", + "SMALL_HIDER" + ], "vision_night": 5, "harvest": "bird_small", "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "HURT", "FRIEND_DIED" ], "categories": [ "DINOSAUR", "WILDLIFE" ] }, + { + "type": "MONSTER", + "id": "mon_therizinosaurus", + "name": { "str_sp": "therizinosaurus" }, + "looks_like": "mon_deinonychus", + "species": "DINOSAUR", + "default_faction": "herbivore_dino", + "aggro_character": false, + "symbol": "D", + "color": "light_gray", + "volume": "1000 L", + "weight": "1000 kg", + "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", + "bodytype": "ostrich", + "material": [ "flesh" ], + "aggression": -10, + "morale": 80, + "speed": 150, + "attack_cost": 150, + "melee_skill": 5, + "melee_dice": 3, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], + "families": [ "prof_intro_biology", "prof_wp_dino" ], + "weakpoint_sets": [ "wps_dinosaur_body" ], + "dodge": 4, + "hp": 315, + "zombify_into": "mon_zerizinosaurus", + "description": "A huge feathered bipedal dinosaur with a pot belly, a long neck and a short tail. Long, sharp claws extend from its hands.", + "reproduction": { "baby_egg": "egg_therizinosaurus", "baby_count": 3, "baby_timer": 9 }, + "baby_flags": [ "SPRING", "SUMMER" ], + "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, + "special_attacks": [ [ "EAT_CROP", 20 ], [ "LONGSWIPE", 20 ] ], + "petfood": { "food": [ "DINOFOOD_C" ] }, + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "CORNERED_FIGHTER", + "PATH_AVOID_DANGER_1", + "PET_WONT_FOLLOW", + "PET_HARNESSABLE", + "WARM", + "DESTROYS", + "CAN_BE_CULLED" + ], + "harvest": "dino_feather_leather", + "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], + "fear_triggers": [ "FRIEND_DIED" ], + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 2, "bullet": 2 } + }, { "type": "MONSTER", "id": "mon_nothronychus", @@ -654,25 +846,35 @@ "melee_dice": 3, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 2, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "dodge": 4, "hp": 120, "zombify_into": "mon_zothronychus", - "description": "A large feathered bipedal dinosaur with a pot-bellied stomach and a long neck. Sharp claws extend from its dexterous hands.", + "description": "A large feathered bipedal dinosaur with a pot belly and a long neck. Sharp claws extend from its dexterous hands.", "reproduction": { "baby_egg": "egg_nothronychus", "baby_count": 3, "baby_timer": 9 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, "special_attacks": [ [ "EAT_CROP", 30 ], [ "LONGSWIPE", 25 ] ], "petfood": { "food": [ "DINOFOOD_C" ] }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "PET_WONT_FOLLOW", "WARM" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "CORNERED_FIGHTER", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "PET_WONT_FOLLOW", + "WARM", + "CAN_BE_CULLED" + ], "harvest": "dino_feather_leather", "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "FRIEND_DIED" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", @@ -695,9 +897,6 @@ "melee_dice": 3, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 2, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "dodge": 5, @@ -708,11 +907,24 @@ "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 4 }, "special_attacks": [ [ "EAT_CROP", 30 ], [ "LONGSWIPE", 25 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "PET_WONT_FOLLOW", "WARM" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "CORNERED_FIGHTER", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "PET_WONT_FOLLOW", + "WARM", + "CAN_BE_CULLED" + ], "harvest": "dino_feather_leather", "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "FRIEND_DIED" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", @@ -722,18 +934,21 @@ "default_faction": "saurornitholestes", "volume": "10 L", "weight": "10 kg", + "stomach_size": 1, "speed": 150, "attack_cost": 150, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "hp": 25, "description": "A small bipedal dinosaur covered with feathers. Small, hooked claws emerge from its feet and hands.", "special_attacks": [ - [ "EAT_FOOD", 20 ], - { "type": "leap", "cooldown": 15, "max_range": 5, "allow_no_target": true }, - [ "GRAB", 30 ], - { "type": "bite", "cooldown": 20 } + { "id": "teeth_grab", "cooldown": 30 }, + { "id": "teeth_rip", "cooldown": 20 }, + [ "EAT_FOOD", 60 ], + [ "EAT_CARRION", 60 ], + { "type": "leap", "cooldown": 15, "max_range": 5, "allow_no_target": true } ], - "reproduction": { "baby_egg": "egg_saurornitholestes", "baby_count": 3, "baby_timer": 18 } + "reproduction": { "baby_egg": "egg_saurornitholestes", "baby_count": 3, "baby_timer": 18 }, + "extend": { "flags": [ "EATS" ] } }, { "type": "MONSTER", @@ -747,6 +962,7 @@ "weight": "15 kg", "bodytype": "ostrich", "material": [ "flesh" ], + "stomach_size": 1, "aggression": 0, "morale": 20, "speed": 140, @@ -759,17 +975,31 @@ "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 30, - "vision_night": 5, + "vision_night": 10, + "grab_strength": 10, "special_attacks": [ + { "id": "teeth_grab", "cooldown": 20 }, + { "id": "teeth_rip", "cooldown": 10 }, { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, - [ "GRAB", 20 ], - { "type": "bite", "cooldown": 10 } + [ "EAT_CARRION", 60 ] ], "description": "A small bipedal dinosaur covered with feathers. Small, hooked claws emerge from its feet and hands.", "reproduction": { "baby_egg": "egg_velociraptor", "baby_count": 3, "baby_timer": 18 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 66 }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "WARM", "CLIMBS" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "EATS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "KEENNOSE", + "WARM", + "CLIMBS", + "SMALL_HIDER", + "CORNERED_FIGHTER" + ], "harvest": "dino_pred_feather_leather", "dissect": "dissect_raptor_sample_single", "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_WEAK", "HURT" ], @@ -788,6 +1018,7 @@ "weight": "75 kg", "bodytype": "ostrich", "material": [ "flesh" ], + "stomach_size": 1, "aggression": 1, "morale": 50, "speed": 80, @@ -801,12 +1032,14 @@ "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 40, "zombify_into": "mon_zeinonychus", - "vision_night": 5, "path_settings": { "max_dist": 10, "avoid_traps": true, "avoid_sharp": true }, + "vision_night": 10, + "grab_strength": 15, "special_attacks": [ + { "id": "teeth_grab", "cooldown": 20 }, + { "id": "teeth_rip", "cooldown": 5 }, { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, - [ "GRAB", 20 ], - { "type": "bite", "cooldown": 5 } + [ "EAT_CARRION", 60 ] ], "description": "A medium-sized bipedal dinosaur covered with feathers. At the end of each foot is a large sickle-like claw.", "reproduction": { "baby_egg": "egg_deinonychus", "baby_count": 3, "baby_timer": 18 }, @@ -816,13 +1049,15 @@ "SEES", "SMELLS", "HEARS", + "EATS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "WARM", "CLIMBS", "CAN_OPEN_DOORS", - "PRIORITIZE_TARGETS" + "PRIORITIZE_TARGETS", + "SMALL_HIDER" ], "harvest": "dino_pred_feather_leather", "dissect": "dissect_raptor_sample_single", @@ -842,6 +1077,7 @@ "weight": "500 kg", "bodytype": "ostrich", "material": [ "flesh" ], + "stomach_size": 5, "aggression": 15, "morale": 80, "speed": 80, @@ -851,27 +1087,29 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], "dodge": 6, - "armor_bash": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 125, "zombify_into": "mon_zutahraptor", - "vision_night": 5, + "vision_night": 10, + "grab_strength": 15, "special_attacks": [ + { "id": "teeth_grab", "cooldown": 20 }, + { "id": "teeth_rip", "cooldown": 5 }, { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, - [ "GRAB", 20 ], - { "type": "bite", "cooldown": 5 } + [ "EAT_CARRION", 60 ] ], "description": "A large bipedal dinosaur with feathered arms, a long tail, and scythe-like claws.", "reproduction": { "baby_egg": "egg_utahraptor", "baby_count": 3, "baby_timer": 18 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 2 }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "WARM", "CLIMBS" ], + "flags": [ "SEES", "SMELLS", "HEARS", "EATS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "WARM", "CLIMBS" ], "harvest": "dino_med_feather_pred", "dissect": "dissect_raptor_sample_small", "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_WEAK", "PLAYER_CLOSE", "HURT", "STALK", "SOUND" ], "fear_triggers": [ "FRIEND_DIED" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 2 } }, { "type": "MONSTER", @@ -885,7 +1123,6 @@ "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 5, "hp": 35, - "vision_night": 1, "description": "A small bipedal dinosaur covered with feathers. Small, hooked claws emerge from its feet and hands. The teeth are large and sharp and the jaws look strong.", "reproduction": { "baby_egg": "egg_dromaeosaurus", "baby_count": 3, "baby_timer": 18 } }, @@ -902,6 +1139,7 @@ "weight": "35 kg", "bodytype": "ostrich", "material": [ "flesh" ], + "stomach_size": 1, "aggression": 0, "morale": 50, "speed": 100, @@ -913,11 +1151,12 @@ "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 35, - "vision_night": 5, + "grab_strength": 10, "special_attacks": [ + { "id": "teeth_grab", "cooldown": 20 }, + { "id": "teeth_rip", "cooldown": 10 }, { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, - [ "GRAB", 20 ], - { "type": "bite", "cooldown": 10 } + [ "EAT_CARRION", 60 ] ], "description": "A small bipedal dinosaur covered with feathers. At the end of each foot is a large sickle-like claw. Its eyes suggest intelligence.", "reproduction": { "baby_egg": "egg_stenonychosaurus", "baby_count": 3, "baby_timer": 18 }, @@ -927,13 +1166,16 @@ "SEES", "SMELLS", "HEARS", + "EATS", "ANIMAL", "PATH_AVOID_DANGER_1", "KEENNOSE", "WARM", "CLIMBS", "CAN_OPEN_DOORS", - "PRIORITIZE_TARGETS" + "PRIORITIZE_TARGETS", + "SMALL_HIDER", + "CORNERED_FIGHTER" ], "harvest": "dino_feather_leather", "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_WEAK", "HURT" ], @@ -952,6 +1194,7 @@ "weight": "10 kg", "bodytype": "ostrich", "material": [ "flesh" ], + "stomach_size": 1, "aggression": -60, "morale": -60, "speed": 100, @@ -968,8 +1211,20 @@ "reproduction": { "baby_egg": "egg_eoraptor", "baby_count": 3, "baby_timer": 6 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 100 }, - "special_attacks": [ [ "EAT_FOOD", 20 ], { "type": "bite", "cooldown": 10 } ], - "flags": [ "SEES", "SMELLS", "HEARS", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CLIMBS" ], + "special_attacks": [ [ "EAT_FOOD", 60 ], [ "EAT_CARRION", 60 ] ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "EATS", + "HIT_AND_RUN", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "WARM", + "CLIMBS", + "SMALL_HIDER", + "CORNERED_FIGHTER" + ], "harvest": "mammal_tiny", "vision_night": 5, "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FRIEND_DIED" ], @@ -995,9 +1250,6 @@ "melee_skill": 4, "melee_dice": 2, "melee_dice_sides": 4, - "armor_bash": 6, - "armor_cut": 2, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_sauropod_body" ], "melee_damage": [ { "damage_type": "bash", "amount": 1 } ], @@ -1009,12 +1261,79 @@ "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 5 }, "special_attacks": [ [ "EAT_CROP", 40 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CLIMBS", "PET_MOUNTABLE", "PET_WONT_FOLLOW" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "WARM", + "CLIMBS", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "PET_WONT_FOLLOW", + "CAN_BE_CULLED", + "CORNERED_FIGHTER" + ], "harvest": "mammal_large_leather", "vision_night": 5, "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "FRIEND_DIED" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 6, "cut": 2, "bullet": 2 } + }, + { + "type": "MONSTER", + "id": "mon_anchisaurus", + "name": { "str_sp": "anchisaurus" }, + "looks_like": "mon_apatosaurus", + "species": [ "DINOSAUR" ], + "default_faction": "herbivore_dino", + "aggro_character": false, + "symbol": "D", + "color": "light_gray", + "volume": "30 L", + "weight": "30 kg", + "bodytype": "bear", + "material": [ "flesh" ], + "aggression": -10, + "morale": 30, + "speed": 100, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 4, + "families": [ "prof_intro_biology", "prof_wp_dino" ], + "weakpoint_sets": [ "wps_sauropod_body" ], + "melee_damage": [ { "damage_type": "bash", "amount": 1 } ], + "dodge": 5, + "hp": 50, + "zombify_into": "mon_zanchisaurus", + "description": "A four legged plant eating dinosaur with a long neck, dexterous hands and leathery skin.", + "reproduction": { "baby_egg": "egg_anchisaurus", "baby_count": 3, "baby_timer": 12 }, + "baby_flags": [ "SPRING", "SUMMER" ], + "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 90 }, + "special_attacks": [ [ "EAT_CROP", 50 ] ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "WARM", + "CLIMBS", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "PET_WONT_FOLLOW", + "CAN_BE_CULLED", + "SMALL_HIDER", + "CORNERED_FIGHTER" + ], + "harvest": "mammal_small_leather", + "vision_night": 5, + "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], + "fear_triggers": [ "FRIEND_DIED" ], + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 6, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", @@ -1036,9 +1355,6 @@ "melee_skill": 5, "melee_dice": 4, "melee_dice_sides": 4, - "armor_bash": 6, - "armor_cut": 2, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_sauropod_body" ], "melee_damage": [ { "damage_type": "bash", "amount": 1 } ], @@ -1050,12 +1366,13 @@ "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, "special_attacks": [ [ "EAT_CROP", 10 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CLIMBS" ], + "flags": [ "SEES", "SMELLS", "HEARS", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CLIMBS", "CORNERED_FIGHTER" ], "harvest": "mammal_large_leather", "vision_night": 5, "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "FRIEND_DIED" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 6, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", @@ -1076,11 +1393,11 @@ "copy-from": "mon_apatosaurus", "//": "When large weights and volumes are fixed this should be 2500 L and 2500 kg", "speed": 100, - "armor_cut": 8, "hp": 230, "zombify_into": "mon_zamargasaurus", "description": "Massive, long-necked, four-legged dinosaur with a whip-like tail and two rows of tall spines running down the neck and back.", - "reproduction": { "baby_egg": "egg_amargasaurus", "baby_count": 3, "baby_timer": 24 } + "reproduction": { "baby_egg": "egg_amargasaurus", "baby_count": 3, "baby_timer": 24 }, + "armor": { "bash": 6, "bullet": 2, "cut": 8 } }, { "type": "MONSTER", @@ -1102,9 +1419,6 @@ "melee_skill": 5, "melee_dice": 4, "melee_dice_sides": 4, - "armor_bash": 6, - "armor_cut": 2, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_sauropod_body" ], "vision_day": 70, @@ -1119,11 +1433,23 @@ "reproduction": { "baby_egg": "egg_apatosaurus", "baby_count": 3, "baby_timer": 24 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "WARM", "PUSH_MON" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "BASHES", + "DESTROYS", + "WARM", + "PUSH_MON", + "CORNERED_FIGHTER" + ], "harvest": "dino_sauropod", "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "FRIEND_DIED" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 6, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", @@ -1132,10 +1458,10 @@ "copy-from": "mon_apatosaurus", "//": "When large weights and volumes are fixed this should be 15000 L and 15000 kg", "hp": 450, - "armor_bash": 8, "zombify_into": "mon_zrontosaurus", "description": "Massive, long-necked, four-legged dinosaur with bulky torso and long, whip-like tail.", - "reproduction": { "baby_egg": "egg_brontosaurus", "baby_count": 3, "baby_timer": 24 } + "reproduction": { "baby_egg": "egg_brontosaurus", "baby_count": 3, "baby_timer": 24 }, + "armor": { "cut": 2, "bullet": 2, "bash": 8 } }, { "type": "MONSTER", @@ -1149,6 +1475,23 @@ "description": "Huge, long-necked, four-legged dinosaur with a long, whip-like tail.", "reproduction": { "baby_egg": "egg_diplodocus", "baby_count": 3, "baby_timer": 24 } }, + { + "type": "MONSTER", + "id": "mon_barosaurus", + "name": { "str_sp": "barosaurus" }, + "copy-from": "mon_diplodocus", + "//": "When large weights and volumes are fixed this should be 16000 L and 16000 kg", + "hp": 460, + "speed": 60, + "zombify_into": "mon_zarosaurus", + "description": "Huge, long-necked, four-legged dinosaur with a long, whip-like tail and one large claw on each foreleg.", + "special_attacks": [ + { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "cut", "amount": 14 } ] }, + [ "tailsmash_DinoMod", 40 ], + [ "EAT_CROP", 5 ] + ], + "reproduction": { "baby_egg": "egg_barosaurus", "baby_count": 3, "baby_timer": 24 } + }, { "type": "MONSTER", "id": "mon_camarasaurus", @@ -1157,11 +1500,10 @@ "//": "When large weights and volumes are fixed this should be 47000 L and 47000 kg", "hp": 500, "speed": 60, - "armor_cut": 3, - "armor_bullet": 3, "zombify_into": "mon_zamarasaurus", "description": "Huge four-legged dinosaur with a square head and a shorter neck and tail than similar dinosaurs.", - "reproduction": { "baby_egg": "egg_camarasaurus", "baby_count": 3, "baby_timer": 24 } + "reproduction": { "baby_egg": "egg_camarasaurus", "baby_count": 3, "baby_timer": 24 }, + "armor": { "bash": 6, "cut": 3, "bullet": 3 } }, { "type": "MONSTER", @@ -1171,13 +1513,11 @@ "//": "When large weights and volumes are fixed this should be 40000 L and 40000 kg", "speed": 40, "melee_dice": 6, - "armor_bash": 8, - "armor_cut": 6, - "armor_bullet": 3, "hp": 475, "zombify_into": "mon_zrachiosaurus", "description": "Massive, long-necked, four-legged dinosaur with longer forelegs and a whip-like tail.", - "reproduction": { "baby_egg": "egg_brachiosaurus", "baby_count": 3, "baby_timer": 24 } + "reproduction": { "baby_egg": "egg_brachiosaurus", "baby_count": 3, "baby_timer": 24 }, + "armor": { "bash": 8, "cut": 6, "bullet": 3 } }, { "type": "MONSTER", @@ -1187,13 +1527,11 @@ "//": "When large weights and volumes are fixed this should be 70000 L and 70000 kg", "speed": 40, "melee_dice": 5, - "armor_bash": 15, - "armor_cut": 19, - "armor_bullet": 3, "hp": 500, "zombify_into": "mon_zalamosaurus", "description": "Gigantic four-legged dinosaur with a long neck and spiked tail protected by natural bone armor.", - "reproduction": { "baby_egg": "egg_alamosaurus", "baby_count": 3, "baby_timer": 24 } + "reproduction": { "baby_egg": "egg_alamosaurus", "baby_count": 3, "baby_timer": 24 }, + "armor": { "bash": 15, "cut": 19, "bullet": 3 } }, { "type": "MONSTER", @@ -1212,14 +1550,14 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], "dodge": 6, - "armor_cut": 5, "special_attacks": [ [ "EAT_CROP", 20 ] ], "description": "Small, four-legged dinosaur with five rows of protective plates running down its back.", "reproduction": { "baby_egg": "egg_scutellosaurus", "baby_count": 3, "baby_timer": 24 }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "CANPLAY" ], + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "CANPLAY", "CAN_BE_CULLED", "CORNERED_FIGHTER" ], "fear_triggers": [ "PLAYER_CLOSE", "FRIEND_DIED" ], "harvest": "mammal_small_leather", - "dissect": "dissect_stego_sample_single" + "dissect": "dissect_stego_sample_single", + "armor": { "bash": 3, "cut": 5 } }, { "type": "MONSTER", @@ -1244,8 +1582,6 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "stab", "amount": 10 } ], "dodge": 4, - "armor_bash": 3, - "armor_cut": 10, "families": [ "prof_intro_biology", "prof_wp_dino", "prof_wp_nat_armored" ], "weakpoint_sets": [ "wps_ankylosaurid_body" ], "hp": 275, @@ -1260,21 +1596,30 @@ "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, "petfood": { "food": [ "DINOFOOD_C" ] }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "PET_WONT_FOLLOW" ], - "harvest": "mammal_large_leather", - "dissect": "dissect_stego_sample_large", - "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] - }, - { - "type": "MONSTER", - "id": "mon_hesperosaurus", + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "PET_WONT_FOLLOW", + "CORNERED_FIGHTER" + ], + "harvest": "mammal_large_leather", + "dissect": "dissect_stego_sample_large", + "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 3, "cut": 10 } + }, + { + "type": "MONSTER", + "id": "mon_hesperosaurus", "name": { "str_sp": "hesperosaurus" }, "copy-from": "mon_stegosaurus", "//": "When large weights and volumes are fixed this should be 2900 L and 3500 kg", "hp": 300, - "armor_bash": 5, - "armor_cut": 12, "zombify_into": "mon_zesperosaurus", "special_attacks": [ { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 15 } ] }, @@ -1282,7 +1627,21 @@ [ "EAT_CROP", 20 ] ], "description": "A huge slow quadruped dinosaur with two rows of long plates on its back, and a spiked tail.", - "reproduction": { "baby_egg": "egg_hesperosaurus", "baby_count": 3, "baby_timer": 24 } + "reproduction": { "baby_egg": "egg_hesperosaurus", "baby_count": 3, "baby_timer": 24 }, + "armor": { "bash": 5, "cut": 12 } + }, + { + "type": "MONSTER", + "id": "mon_gastonia", + "name": { "str_sp": "gastonia" }, + "copy-from": "mon_nodosaurus", + "//": "When large weights and volumes are fixed this should be 1575 L and 1900 kg", + "hp": 190, + "zombify_into": "mon_zastonia", + "description": "This heavily armored four legged dinosaur has a long tail, a beak, and large shoulder spikes.", + "reproduction": { "baby_egg": "egg_gastonia", "baby_count": 3, "baby_timer": 24 }, + "petfood": { "food": [ "DINOFOOD_C" ] }, + "armor": { "bash": 10, "cut": 10, "bullet": 5 } }, { "type": "MONSTER", @@ -1295,13 +1654,11 @@ "speed": 50, "attack_cost": 50, "//": "Speed is a guess based on the lighter armor and smaller weight", - "armor_bash": 10, - "armor_cut": 10, - "armor_bullet": 5, "zombify_into": "mon_zargoyleosaurus", "description": "This lightly armored four legged dinosaur has a rigid spiked tail, a beak, and sturdy spikes along the sides.", "reproduction": { "baby_egg": "egg_gargoyleosaurus", "baby_count": 3, "baby_timer": 24 }, - "petfood": { "food": [ "DINOFOOD_C" ] } + "petfood": { "food": [ "DINOFOOD_C" ] }, + "armor": { "bash": 10, "cut": 10, "bullet": 5 } }, { "type": "MONSTER", @@ -1310,11 +1667,11 @@ "copy-from": "mon_nodosaurus", "//": "When large weights and volumes are fixed this should be 1650 L and 2000 kg", "hp": 200, - "armor_cut": 30, "zombify_into": "mon_zauropelta", "description": "This heavily armored four legged dinosaur has a beak, a long tail, and long wicked-looking spikes jutting out of the neck.", "reproduction": { "baby_egg": "egg_sauropelta", "baby_count": 3, "baby_timer": 24 }, - "petfood": { "food": [ "DINOFOOD_C" ] } + "petfood": { "food": [ "DINOFOOD_C" ] }, + "armor": { "bash": 15, "bullet": 10, "cut": 30 } }, { "type": "MONSTER", @@ -1324,11 +1681,22 @@ "//": "When large weights and volumes are fixed this should be 2900 L and 3500 kg", "hp": 270, "zombify_into": "mon_zodosaurus", - "armor_cut": 20, - "armor_bullet": 10, "special_attacks": [ [ "EAT_CROP", 40 ] ], - "description": "This heavily armored dinosaur looks like a giant prehistoric armadillo.", + "description": "This heavily armored four legged dinosaur has a beak and large bony plates covering the back.", "reproduction": { "baby_egg": "egg_nodosaurus", "baby_count": 3, "baby_timer": 24 }, + "petfood": { "food": [ "DINOFOOD_C" ] }, + "armor": { "bash": 15, "cut": 20, "bullet": 10 } + }, + { + "type": "MONSTER", + "id": "mon_panoplosaurus", + "name": { "str_sp": "panoplosaurus" }, + "copy-from": "mon_edmontonia", + "//": "When large weights and volumes are fixed this should be 1330 L and 1600 kg", + "hp": 160, + "zombify_into": "mon_zanoplosaurus", + "description": "This heavily armored four legged dinosaur has a lumpy armored head with a beak and thick plates protecting the cheeks, thick back armor, and small short spikes along the sides.", + "reproduction": { "baby_egg": "egg_panoplosaurus", "baby_count": 3, "baby_timer": 24 }, "petfood": { "food": [ "DINOFOOD_C" ] } }, { @@ -1340,13 +1708,11 @@ "hp": 365, "zombify_into": "mon_zedmontonia", "melee_damage": [ { "damage_type": "stab", "amount": 10 } ], - "armor_bash": 20, - "armor_cut": 20, - "armor_bullet": 10, "special_attacks": [ [ "EAT_CROP", 40 ] ], "description": "This heavily armored dinosaur is covered with small ridged bony plates with long bony spikes.", "reproduction": { "baby_egg": "egg_edmontonia", "baby_count": 3, "baby_timer": 24 }, - "petfood": { "food": [ "DINOFOOD_C" ] } + "petfood": { "food": [ "DINOFOOD_C" ] }, + "armor": { "bash": 20, "cut": 20, "bullet": 10 } }, { "type": "MONSTER", @@ -1373,10 +1739,20 @@ [ "tailsmash_ankyl_DinoMod", 30 ], [ "EAT_CROP", 40 ] ], - "description": "This armored dinosaur looks like a giant prehistoric armadillo. Its tail ends in a spiked club of bone.", + "description": "This heavily armored four legged dinosaur has a beak and a long tail ending in a spiked club of bone.", "reproduction": { "baby_egg": "egg_dyoplosaurus", "baby_count": 3, "baby_timer": 24 }, "petfood": { "food": [ "DINOFOOD_C" ] }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "PET_WONT_FOLLOW" ] + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "PET_WONT_FOLLOW", + "CORNERED_FIGHTER" + ] }, { "type": "MONSTER", @@ -1401,9 +1777,6 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "stab", "amount": 1 } ], "dodge": 4, - "armor_bash": 15, - "armor_cut": 18, - "armor_bullet": 6, "families": [ "prof_intro_biology", "prof_wp_dino", "prof_wp_nat_armored" ], "weakpoint_sets": [ "wps_ankylosaurid_body" ], "hp": 375, @@ -1413,16 +1786,124 @@ [ "tailsmash_ankyl_DinoMod", 30 ], [ "EAT_CROP", 40 ] ], - "description": "This armored dinosaur looks like a giant prehistoric armadillo. Its tail ends in a massive spiked club of bone.", + "description": "This heavily armored four legged dinosaur has a long tail ending in a massive spiked club of bone.", "reproduction": { "baby_egg": "egg_ankylosaurus", "baby_count": 3, "baby_timer": 24 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, "petfood": { "food": [ "DINOFOOD_C" ] }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "PET_MOUNTABLE", "PET_WONT_FOLLOW" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "BASHES", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "PET_WONT_FOLLOW", + "CORNERED_FIGHTER" + ], "harvest": "mammal_large_leather", "dissect": "dissect_stego_sample_large", "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 15, "cut": 18, "bullet": 6 } + }, + { + "type": "MONSTER", + "id": "mon_euoplocephalus", + "name": { "str_sp": "euoplocephalus" }, + "copy-from": "mon_ankylosaurus", + "//": "When large weights and volumes are fixed this should be 1650 L and 2000 kg", + "hp": 200, + "zombify_into": "mon_zuoplocephalus", + "special_attacks": [ + { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 8 } ] }, + [ "tailsmash_ankyl_DinoMod", 30 ], + [ "EAT_CROP", 40 ] + ], + "description": "This heavily armored four legged dinosaur has a horny beak, two bony rings protecting the neck, and a long tail ending in a heavy club of bone.", + "reproduction": { "baby_egg": "egg_euoplocephalus", "baby_count": 3, "baby_timer": 24 }, + "petfood": { "food": [ "DINOFOOD_C" ] }, + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "PET_WONT_FOLLOW", + "CORNERED_FIGHTER" + ] + }, + { + "type": "MONSTER", + "id": "mon_scolosaurus", + "name": { "str_sp": "scolosaurus" }, + "copy-from": "mon_ankylosaurus", + "//": "When large weights and volumes are fixed this should be 1815 L and 2200 kg", + "hp": 210, + "zombify_into": "mon_zcolosaurus", + "special_attacks": [ + { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 8 } ] }, + [ "tailsmash_ankyl_DinoMod", 30 ], + [ "EAT_CROP", 40 ] + ], + "description": "This heavily armored four legged dinosaur has several long spikes along the back and a long spiked tail ending in a club of bone.", + "reproduction": { "baby_egg": "egg_scolosaurus", "baby_count": 3, "baby_timer": 24 }, + "petfood": { "food": [ "DINOFOOD_C" ] }, + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "PET_WONT_FOLLOW", + "CORNERED_FIGHTER" + ] + }, + { + "type": "MONSTER", + "id": "mon_tenontosaurus", + "name": { "str_sp": "tenontosaurus" }, + "looks_like": "mon_parasaurolophus", + "species": "DINOSAUR", + "default_faction": "herbivore_dino", + "aggro_character": false, + "symbol": "D", + "color": "yellow", + "volume": "800 L", + "weight": "800 kg", + "bodytype": "bear", + "material": [ "flesh" ], + "aggression": -10, + "morale": 50, + "speed": 150, + "attack_cost": 150, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "dodge": 5, + "families": [ "prof_intro_biology", "prof_wp_dino" ], + "weakpoint_sets": [ "wps_dinosaur_body" ], + "hp": 120, + "zombify_into": "mon_zenontosaurus", + "description": "A feathered dinosaur with four legs, a beak, and a long broad tail.", + "reproduction": { "baby_egg": "egg_tenontosaurus", "baby_count": 30, "baby_timer": 60 }, + "baby_flags": [ "SPRING", "SUMMER" ], + "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, + "special_attacks": [ [ "EAT_CROP", 40 ], [ "LUNGE", 40 ] ], + "petfood": { "food": [ "DINOFOOD_C" ] }, + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "PET_WONT_FOLLOW", "CAN_BE_CULLED" ], + "harvest": "mammal_large_leather", + "fear_triggers": [ "PLAYER_CLOSE", "HURT", "FRIEND_DIED" ], + "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", @@ -1447,12 +1928,10 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], "dodge": 5, - "armor_bash": 4, - "armor_cut": 2, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 30, + "zombify_into": "mon_zryosaurus", "description": "A small feathered dinosaur standing on two legs with short arms, a long neck, and a horned beak.", "reproduction": { "baby_egg": "egg_dryosaurus", "baby_count": 30, "baby_timer": 60 }, "baby_flags": [ "SPRING", "SUMMER" ], @@ -1467,14 +1946,14 @@ "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "PET_WONT_FOLLOW", - "BASHES", - "DESTROYS", - "PUSH_MON" + "CAN_BE_CULLED", + "SMALL_HIDER" ], - "harvest": "mammal_large_leather", + "harvest": "dino_feather_leather", "fear_triggers": [ "PLAYER_CLOSE", "HURT", "FRIEND_DIED" ], "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", @@ -1493,14 +1972,12 @@ "aggression": -40, "morale": 25, "speed": 75, + "attack_cost": 75, "melee_skill": 4, "melee_dice": 1, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], "dodge": 4, - "armor_bash": 4, - "armor_cut": 2, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 170, @@ -1519,15 +1996,15 @@ "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "PET_WONT_FOLLOW", - "BASHES", - "DESTROYS", - "PUSH_MON", - "SWIMS" + "CAN_BE_CULLED", + "SWIMS", + "CORNERED_FIGHTER" ], "harvest": "mammal_large_leather", "fear_triggers": [ "PLAYER_CLOSE", "HURT", "FRIEND_DIED" ], "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", @@ -1536,24 +2013,87 @@ "copy-from": "mon_camptosaurus", "volume": "1000 L", "weight": "1000 kg", + "default_faction": "hadrosaur", "//": "When large weights and volumes are fixed this should be 3000 L and 3000 kg", "bodytype": "bear", "speed": 80, + "attack_cost": 80, "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 3, "hp": 250, "zombify_into": "mon_zadrosaurus", + "fungalize_into": "mon_hadrosaurus_mutant1", "description": "A bulky, beaked dinosaur with hooved front legs and strong clawed back legs.", "special_attacks": [ { "type": "leap", "cooldown": 10, "max_range": 2, "allow_no_target": true }, { "id": "stomp_DinoMod", "cooldown": 20, "damage_max_instance": [ { "damage_type": "bash", "amount": 8 } ] }, [ "EAT_CROP", 20 ] ], - "reproduction": { "baby_egg": "egg_hadrosaurus", "baby_count": 30, "baby_timer": 60 } + "reproduction": { "baby_egg": "egg_hadrosaurus", "baby_count": 30, "baby_timer": 60 }, + "armor": { "bash": 4, "cut": 4, "bullet": 3 } + }, + { + "type": "MONSTER", + "id": "mon_maiasaura", + "name": { "str_sp": "maiasaura" }, + "copy-from": "mon_hadrosaurus", + "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", + "hp": 315, + "zombify_into": "mon_zaiasaura", + "description": "A huge scaly dinosaur with hooves and long heavy tail. Has a flat beak, thick nose, and small spiky head crest.", + "special_attacks": [ + { "type": "leap", "cooldown": 10, "max_range": 2, "allow_no_target": true }, + { "id": "stomp_DinoMod", "cooldown": 20, "damage_max_instance": [ { "damage_type": "bash", "amount": 8 } ] }, + [ "EAT_CROP", 20 ], + [ "SMASH", 30 ] + ], + "reproduction": { "baby_egg": "egg_maiasaura", "baby_count": 30, "baby_timer": 60 } + }, + { + "type": "MONSTER", + "id": "mon_gryposaurus", + "name": { "str_sp": "gryposaurus" }, + "copy-from": "mon_edmontosaurus", + "//": "When large weights and volumes are fixed this should be 2500 L and 2500 kg", + "hp": 200, + "zombify_into": "mon_zryposaurus", + "description": "A huge scaly dinosaur with hooves and a broad toothless beak with a narrow arching nasal hump.", + "reproduction": { "baby_egg": "egg_gryposaurus", "baby_count": 30, "baby_timer": 60 } + }, + { + "type": "MONSTER", + "id": "mon_prosaurolophus", + "name": { "str_sp": "prosaurolophus" }, + "copy-from": "mon_edmontosaurus", + "//": "When large weights and volumes are fixed this should be 3000 L and 3000 kg", + "hp": 250, + "zombify_into": "mon_zrosaurolophus", + "description": "A huge scaly dinosaur with hooves and a broad beak filled with hundreds of small teeth with a small nasal crest just above and in front of the eyes.", + "reproduction": { "baby_egg": "egg_prosaurolophus", "baby_count": 30, "baby_timer": 60 } + }, + { + "type": "MONSTER", + "id": "mon_saurolophus", + "name": { "str_sp": "saurolophus" }, + "copy-from": "mon_edmontosaurus", + "//": "When large weights and volumes are fixed this should be 3000 L and 3000 kg", + "hp": 250, + "zombify_into": "mon_zaurolophus", + "description": "A huge scaly dinosaur with hooves and a broad beak filled with hundreds of small teeth with a spiky head crest at the top of the skull reaching behind.", + "reproduction": { "baby_egg": "egg_saurolophus", "baby_count": 30, "baby_timer": 60 } + }, + { + "type": "MONSTER", + "id": "mon_edmontosaurus", + "name": { "str_sp": "edmontosaurus" }, + "copy-from": "mon_parasaurolophus", + "//": "When large weights and volumes are fixed this should be 5500 L and 5500 kg", + "hp": 350, + "zombify_into": "mon_zedmontosaurus", + "description": "A huge scaly dinosaur with hooves and a broad toothless beak. There are teeth deeper in the mouth.", + "reproduction": { "baby_egg": "egg_edmontosaurus", "baby_count": 30, "baby_timer": 60 }, + "armor": { "bullet": 3, "bash": 5, "cut": 6 } }, { "type": "MONSTER", @@ -1562,8 +2102,6 @@ "copy-from": "mon_hadrosaurus", "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", "dodge": 3, - "armor_bash": 5, - "armor_cut": 5, "hp": 315, "zombify_into": "mon_zarasaurolophus", "description": "A huge mottled dinosaur with four legs, a narrow beak, and a curved head crest.", @@ -1572,7 +2110,20 @@ { "id": "stomp_DinoMod", "cooldown": 20, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, [ "EAT_CROP", 20 ] ], - "reproduction": { "baby_egg": "egg_parasaurolophus", "baby_count": 30, "baby_timer": 60 } + "reproduction": { "baby_egg": "egg_parasaurolophus", "baby_count": 30, "baby_timer": 60 }, + "armor": { "bullet": 3, "bash": 5, "cut": 5 } + }, + { + "type": "MONSTER", + "id": "mon_lambeosaurus", + "name": { "str_sp": "lambeosaurus" }, + "copy-from": "mon_parasaurolophus", + "//": "When large weights and volumes are fixed this should be 3000 L and 3000 kg", + "hp": 250, + "zombify_into": "mon_zambeosaurus", + "description": "A huge scaly dinosaur with a long stiff tail and hooves. Has a narrow beak and a tall head crest that looks like a mitten with the thumb pointed up.", + "reproduction": { "baby_egg": "egg_lambeosaurus", "baby_count": 30, "baby_timer": 60 }, + "special_attacks": [ [ "SHRIEK", 10 ], [ "EAT_CROP", 30 ] ] }, { "type": "MONSTER", @@ -1580,52 +2131,25 @@ "name": { "str_sp": "corythosaurus" }, "copy-from": "mon_parasaurolophus", "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", - "armor_cut": 6, "hp": 365, "zombify_into": "mon_zorythosaurus", - "description": "A huge scaly dinosaur with a thick neck and tail and hooves. Has a short beak and a tall head crest.", + "description": "A huge scaly dinosaur with a thick neck and tail and hooves. Has a short beak and a tall rounded head crest.", "reproduction": { "baby_egg": "egg_corythosaurus", "baby_count": 30, "baby_timer": 60 }, - "special_attacks": [ [ "SHRIEK", 10 ], [ "EAT_CROP", 30 ] ] + "special_attacks": [ [ "SHRIEK", 10 ], [ "EAT_CROP", 30 ] ], + "armor": { "bullet": 3, "bash": 5, "cut": 6 } }, { "type": "MONSTER", - "id": "mon_maiasaura", - "name": { "str_sp": "maiasaura" }, - "copy-from": "mon_hadrosaurus", - "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", - "hp": 315, - "zombify_into": "mon_zaiasaura", - "description": "A huge scaly dinosaur with hooves and long heavy tail. Has a flat beak, thick nose, and small spiky head crest.", - "special_attacks": [ - { "type": "leap", "cooldown": 10, "max_range": 2, "allow_no_target": true }, - { "id": "stomp_DinoMod", "cooldown": 20, "damage_max_instance": [ { "damage_type": "bash", "amount": 8 } ] }, - [ "EAT_CROP", 20 ], - [ "SMASH", 30 ] - ], - "reproduction": { "baby_egg": "egg_maiasaura", "baby_count": 30, "baby_timer": 60 } - }, - { - "type": "MONSTER", - "id": "mon_edmontosaurus", - "name": { "str_sp": "edmontosaurus" }, + "id": "mon_hypacrosaurus", + "name": { "str_sp": "hypacrosaurus" }, "copy-from": "mon_parasaurolophus", - "//": "When large weights and volumes are fixed this should be 5500 L and 5500 kg", - "hp": 350, - "armor_cut": 6, - "zombify_into": "mon_zedmontosaurus", - "description": "A huge scaly dinosaur with hooves and a broad toothless beak.", - "reproduction": { "baby_egg": "egg_edmontosaurus", "baby_count": 30, "baby_timer": 60 } - }, - { - "type": "MONSTER", - "id": "mon_gryposaurus", - "name": { "str_sp": "gryposaurus" }, - "copy-from": "mon_edmontosaurus", - "//": "When large weights and volumes are fixed this should be 2500 L and 2500 kg", - "hp": 200, - "zombify_into": "mon_zryposaurus", - "description": "A huge scaly dinosaur with hooves and a broad toothless beak with a narrow arching nasal hump.", - "reproduction": { "baby_egg": "egg_gryposaurus", "baby_count": 30, "baby_timer": 60 } + "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", + "hp": 365, + "zombify_into": "mon_zypacrosaurus", + "description": "A huge scaly dinosaur with a tall ridge down the back, a tail and hooves. Has a short beak and a wide, rounded head crest.", + "reproduction": { "baby_egg": "egg_hypacrosaurus", "baby_count": 30, "baby_timer": 60 }, + "special_attacks": [ [ "SHRIEK", 10 ], [ "EAT_CROP", 30 ] ], + "armor": { "bullet": 3, "bash": 5, "cut": 6 } }, { "type": "MONSTER", @@ -1637,6 +2161,7 @@ "melee_skill": 4, "morale": 20, "speed": 150, + "attack_cost": 150, "melee_dice": 1, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 1 } ], @@ -1644,7 +2169,18 @@ "description": "A small feathered bipedal dinosaur about the size of a goat. It looks like a reptilian ostrich with a round hard-looking domed head.", "reproduction": { "baby_egg": "egg_stegoceras", "baby_count": 3, "baby_timer": 12 }, "special_attacks": [ [ "EAT_CROP", 40 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "CANPLAY", "PET_MOUNTABLE", "HIT_AND_RUN" ] + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "CANPLAY", + "PET_MOUNTABLE", + "HIT_AND_RUN", + "CAN_BE_CULLED", + "SMALL_HIDER" + ] }, { "type": "MONSTER", @@ -1668,7 +2204,6 @@ "melee_dice": 2, "melee_dice_sides": 6, "dodge": 6, - "armor_bash": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_lg_ceratopsian_body" ], "hp": 115, @@ -1679,11 +2214,24 @@ "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 2 }, "special_attacks": [ [ "EAT_CROP", 60 ], [ "LUNGE", 10 ] ], "petfood": { "food": [ "DINOFOOD_C" ] }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "PET_WONT_FOLLOW", "HIT_AND_RUN" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "PET_WONT_FOLLOW", + "HIT_AND_RUN", + "CAN_BE_CULLED", + "CORNERED_FIGHTER" + ], "harvest": "dino_feather_leather", "fear_triggers": [ "PLAYER_CLOSE", "FRIEND_DIED" ], "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 2 } }, { "type": "MONSTER", @@ -1707,8 +2255,9 @@ "description": "A small rhino-like dinosaur with a bony crest studded with small horns and a hooked beak.", "reproduction": { "baby_egg": "egg_aquilops", "baby_count": 20, "baby_timer": 40 }, "special_attacks": [ [ "EAT_CROP", 30 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "CANPLAY" ], - "harvest": "mammal_tiny" + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "CANPLAY", "CAN_BE_CULLED", "SMALL_HIDER" ], + "harvest": "mammal_tiny", + "dissect": "dissect_horns_sample_single" }, { "type": "MONSTER", @@ -1749,6 +2298,20 @@ "reproduction": { "baby_egg": "egg_zuniceratops", "baby_count": 20, "baby_timer": 40 }, "special_attacks": [ [ "LUNGE", 10 ], [ "EAT_CROP", 20 ] ] }, + { + "type": "MONSTER", + "id": "mon_styracosaurus", + "name": { "str_sp": "styracosaurus" }, + "copy-from": "mon_centrosaurus", + "//": "When large weights and volumes are fixed this should be 2200 L and 2200 kg", + "melee_skill": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 10 } ], + "zombify_into": "mon_ztyracosaurus", + "description": "A large stocky four-legged dinosaur with a bony crest with several long spikes and one large horn above the beak and a short tail.", + "reproduction": { "baby_egg": "egg_styracosaurus", "baby_count": 20, "baby_timer": 40 }, + "special_attacks": [ [ "SMASH", 60 ], [ "LUNGE", 10 ], [ "EAT_CROP", 30 ], [ "stretch_horn_DinoMod", 40 ] ], + "harvest": "styracosaurus" + }, { "type": "MONSTER", "id": "mon_centrosaurus", @@ -1767,7 +2330,46 @@ { "id": "stomp_DinoMod", "cooldown": 30, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, [ "SMASH", 60 ], [ "LUNGE", 10 ], - [ "EAT_CROP", 20 ] + [ "EAT_CROP", 30 ], + [ "stretch_horn_DinoMod", 40 ] + ], + "harvest": "centrosaurus" + }, + { + "type": "MONSTER", + "id": "mon_einiosaurus", + "name": { "str_sp": "einiosaurus" }, + "copy-from": "mon_pachyrhinosaurus", + "//": "When large weights and volumes are fixed this should be 1300 L and 1300 kg", + "speed": 110, + "attack_cost": 110, + "melee_skill": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 10 } ], + "hp": 150, + "zombify_into": "mon_zeiniosaurus", + "description": "A large stocky rhino-like dinosaur with a tall bony crest and one large horn above the nose curving forward towards the beak.", + "reproduction": { "baby_egg": "egg_einiosaurus", "baby_count": 20, "baby_timer": 40 }, + "special_attacks": [ [ "SMASH", 60 ], [ "LUNGE", 20 ], [ "EAT_CROP", 30 ], [ "stretch_horn_DinoMod", 30 ] ] + }, + { + "type": "MONSTER", + "id": "mon_achelousaurus", + "name": { "str_sp": "achelousaurus" }, + "copy-from": "mon_pachyrhinosaurus", + "//": "When large weights and volumes are fixed this should be 3000 L and 3000 kg", + "speed": 110, + "attack_cost": 110, + "melee_skill": 7, + "melee_damage": [ { "damage_type": "bash", "amount": 10 } ], + "hp": 250, + "zombify_into": "mon_zachelousaurus", + "description": "A large stocky rhino-like dinosaur with a tall bony crest with two long curved spikes and three rough bosses above the eyes and nose as well as a short tail and hooked beak.", + "reproduction": { "baby_egg": "egg_achelousaurus", "baby_count": 20, "baby_timer": 40 }, + "special_attacks": [ + { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, + [ "SMASH", 40 ], + [ "LUNGE", 20 ], + [ "EAT_CROP", 25 ] ] }, { @@ -1778,17 +2380,31 @@ "//": "When large weights and volumes are fixed this should be 3500 L and 3500 kg", "speed": 100, "melee_skill": 7, - "melee_damage": [ { "damage_type": "bash", "amount": 10 } ], - "hp": 250, + "melee_damage": [ { "damage_type": "bash", "amount": 12 } ], + "hp": 270, "zombify_into": "mon_zachyrhinosaurus", - "description": "A massive rhino-like dinosaur with a bony crest from which two curved horns and a broad bony nose emerge.", + "description": "A massive four-legged dinosaur with a bony crest from which two curved horns and a broad bony nose emerge. There is also a curved beak and short tail.", "reproduction": { "baby_egg": "egg_pachyrhinosaurus", "baby_count": 20, "baby_timer": 40 }, "special_attacks": [ { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, [ "SMASH", 30 ], [ "LUNGE", 10 ], [ "EAT_CROP", 20 ] - ] + ], + "harvest": "dino_large_leather" + }, + { + "type": "MONSTER", + "id": "mon_chasmosaurus", + "name": { "str_sp": "chasmosaurus" }, + "copy-from": "mon_pentaceratops", + "//": "When large weights and volumes are fixed this should be 1750 L and 1750 kg", + "melee_damage": [ { "damage_type": "stab", "amount": 10 } ], + "hp": 175, + "zombify_into": "mon_zasmosaurus", + "description": "A massive rhino-like dinosaur with a tall bony crest from which three short horns emerge above the eyes and beak.", + "reproduction": { "baby_egg": "egg_chasmosaurus", "baby_count": 20, "baby_timer": 40 }, + "special_attacks": [ [ "EAT_CROP", 24 ], { "id": "impale" } ] }, { "type": "MONSTER", @@ -1798,11 +2414,13 @@ "//": "When large weights and volumes are fixed this should be 2500 L and 2500 kg", "melee_skill": 7, "melee_damage": [ { "damage_type": "stab", "amount": 10 } ], - "armor_cut": 8, "hp": 230, "zombify_into": "mon_zentaceratops", "description": "A massive rhino-like dinosaur with a tall bony crest from which four long horns and a short nose horn emerge.", - "reproduction": { "baby_egg": "egg_pentaceratops", "baby_count": 20, "baby_timer": 40 } + "reproduction": { "baby_egg": "egg_pentaceratops", "baby_count": 20, "baby_timer": 40 }, + "special_attacks": [ [ "EAT_CROP", 24 ], { "id": "impale" } ], + "harvest": "dino_large_leather", + "armor": { "bash": 6, "bullet": 2, "cut": 8 } }, { "type": "MONSTER", @@ -1812,13 +2430,13 @@ "//": "When large weights and volumes are fixed this should be 1200 L and 1200 kg", "melee_skill": 7, "melee_damage": [ { "damage_type": "stab", "amount": 10 } ], - "armor_cut": 7, - "armor_bash": 8, "hp": 150, "zombify_into": "mon_zosmoceratops", "description": "A massive rhino-like dinosaur with an ornate spiked neck crest and two long horns curving up and to the sides from above its eyes.", "reproduction": { "baby_egg": "egg_kosmoceratops", "baby_count": 20, "baby_timer": 40 }, - "special_attacks": [ [ "EAT_CROP", 24 ], { "id": "impale" }, [ "stretch_horn_DinoMod", 7 ] ] + "special_attacks": [ [ "EAT_CROP", 24 ], { "id": "impale" }, [ "stretch_horns_DinoMod", 20 ] ], + "harvest": "dino_large_leather", + "armor": { "bullet": 2, "bash": 8, "cut": 7 } }, { "type": "MONSTER", @@ -1831,7 +2449,8 @@ "zombify_into": "mon_zorosaurus", "description": "A massive rhino-like dinosaur with a tall bony crest from which two long wicked horns emerge.", "reproduction": { "baby_egg": "egg_torosaurus", "baby_count": 20, "baby_timer": 40 }, - "special_attacks": [ [ "EAT_CROP", 20 ], { "id": "impale" }, [ "stretch_horn_DinoMod", 5 ] ] + "special_attacks": [ [ "EAT_CROP", 20 ], { "id": "impale" }, [ "stretch_horns_DinoMod", 10 ] ], + "harvest": "torosaurus" }, { "type": "MONSTER", @@ -1857,9 +2476,6 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "stab", "amount": 15 } ], "dodge": 4, - "armor_bash": 6, - "armor_cut": 6, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_dino" ], "weakpoint_sets": [ "wps_lg_ceratopsian_body" ], "hp": 400, @@ -1870,11 +2486,23 @@ "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, "special_attacks": [ [ "EAT_CROP", 20 ], { "id": "impale" } ], "petfood": { "food": [ "DINOFOOD_C" ] }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "BASHES" ], - "harvest": "mammal_large_leather", + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "COMBAT_MOUNT", + "BASHES", + "CORNERED_FIGHTER" + ], + "harvest": "triceratops", + "dissect": "dissect_horns_sample_large", "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "FRIEND_DIED" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 6, "cut": 6, "bullet": 2 } }, { "type": "MONSTER", @@ -1906,7 +2534,7 @@ "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 99 }, "petfood": { "food": [ "DINOFOOD_C" ] }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "CANPLAY" ], + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "CANPLAY", "CAN_BE_CULLED", "SMALL_HIDER" ], "harvest": "bird_small", "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "PLAYER_CLOSE", "FRIEND_DIED" ], @@ -1942,7 +2570,17 @@ "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 33 }, "petfood": { "food": [ "DINOFOOD_C" ] }, - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "CANPLAY", "CAN_DIG" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "CANPLAY", + "CAN_DIG", + "CAN_BE_CULLED", + "CORNERED_FIGHTER" + ], "harvest": "dino_feather_leather", "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "PLAYER_CLOSE", "FRIEND_DIED" ], @@ -1980,7 +2618,7 @@ "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 4 }, "petfood": { "food": [ "DINOFOOD_C" ] }, "special_attacks": [ [ "EAT_CROP", 50 ], [ "scratch", 20 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "HIT_AND_RUN", "SWIMS" ], + "flags": [ "SEES", "SMELLS", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "HIT_AND_RUN", "SWIMS", "CAN_BE_CULLED" ], "harvest": "dino_feather_leather", "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "PLAYER_CLOSE", "FRIEND_DIED" ], @@ -2014,7 +2652,18 @@ "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 500 }, "petfood": { "food": [ "DINOFOOD_B" ] }, - "flags": [ "SEES", "SMELLS", "HEARS", "FLIES", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "CANPLAY" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "FLIES", + "HIT_AND_RUN", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "CANPLAY", + "CAN_BE_CULLED", + "CORNERED_FIGHTER" + ], "harvest": "bird_small", "dissect": "dissect_lizard_sample_single", "fear_triggers": [ "PLAYER_CLOSE", "FRIEND_DIED" ], @@ -2028,6 +2677,7 @@ "default_faction": "pteranodon", "volume": "70 L", "weight": "50 kg", + "stomach_size": 1, "hp": 20, "aggression": 9, "morale": 50, @@ -2039,7 +2689,7 @@ "fear_triggers": [ "FRIEND_DIED" ], "harvest": "dino_feather_leather", "dissect": "dissect_lizard_sample_small", - "special_attacks": [ [ "scratch", 10 ] ] + "special_attacks": [ [ "scratch", 10 ], [ "EAT_CARRION", 60 ] ] }, { "type": "MONSTER", @@ -2049,6 +2699,7 @@ "default_faction": "quetzalcoatlus", "volume": "330 L", "weight": "250 kg", + "stomach_size": 2, "hp": 70, "aggression": 9, "morale": 80, @@ -2056,8 +2707,20 @@ "zombify_into": "mon_zuetzalcoatlus", "description": "A huge feathered flying reptile, with a long pointed toothless beak and a long stiff neck.", "reproduction": { "baby_egg": "egg_quetzalcoatlus", "baby_count": 3, "baby_timer": 24 }, - "special_attacks": [ [ "scratch", 10 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "FLIES", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1", "CANPLAY", "PET_MOUNTABLE" ], + "special_attacks": [ [ "scratch", 10 ], [ "EAT_CARRION", 60 ] ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "EATS", + "FLIES", + "HIT_AND_RUN", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "CANPLAY", + "PET_MOUNTABLE", + "COMBAT_MOUNT" + ], "petfood": { "food": [ "DINOFOOD_B" ] }, "anger_triggers": [ "PLAYER_WEAK", "HURT", "FRIEND_ATTACKED", "PLAYER_CLOSE" ], "fear_triggers": [ "FRIEND_DIED" ], @@ -2078,6 +2741,7 @@ "//": "When large weights and volumes are fixed this should be 10000 L and 10000 kg", "bodytype": "fish", "material": [ "flesh" ], + "stomach_size": 100, "aggression": 9, "morale": 90, "speed": 30, @@ -2085,9 +2749,6 @@ "melee_dice": 3, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 16 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 6, "families": [ "prof_intro_biology" ], "weakpoint_sets": [ "wps_mosasaur_body" ], "hp": 400, @@ -2096,11 +2757,26 @@ "reproduction": { "baby_monster": "mon_mosasaurus_hatchling", "baby_count": 1, "baby_timer": 343 }, "baby_flags": [ "SPRING", "SUMMER", "AUTUMN" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, - "special_attacks": [ [ "LUNGE", 10 ], [ "GRAB", 7 ], { "type": "bite", "cooldown": 10 } ], - "flags": [ "SEES", "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "BASHES", "DESTROYS", "WARM", "SWIMS", "AQUATIC", "PUSH_MON" ], + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 }, [ "LUNGE", 10 ], [ "EAT_CARRION", 60 ] ], + "flags": [ + "SEES", + "HEARS", + "EATS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "GRABS", + "BASHES", + "DESTROYS", + "WARM", + "SWIMS", + "AQUATIC", + "PUSH_MON" + ], "harvest": "dino_large_pred", "dissect": "dissect_mosasaurus_large", "anger_triggers": [ "PLAYER_WEAK", "HURT", "FRIEND_ATTACKED", "PLAYER_CLOSE" ], - "categories": [ "DINOSAUR", "WILDLIFE" ] + "categories": [ "DINOSAUR", "WILDLIFE" ], + "armor": { "bash": 4, "cut": 4, "bullet": 6 } } ] diff --git a/data/Mainline_mods/Mods/DinoMod/monsters/dinosaur_CBM.json b/data/Mainline_mods/Mods/DinoMod/monsters/dinosaur_CBM.json index eafb2160e..982889164 100644 --- a/data/Mainline_mods/Mods/DinoMod/monsters/dinosaur_CBM.json +++ b/data/Mainline_mods/Mods/DinoMod/monsters/dinosaur_CBM.json @@ -7,7 +7,7 @@ "diff": 5, "proportional": { "hp": 1.2, "speed": 1.15 }, "aggression": 99, - "relative": { "morale": 50, "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor_bash": 3, "armor_cut": 3, "armor_bullet": 3 }, + "relative": { "morale": 50, "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "flags": [ "ELECTRIC", "NO_BREATHE", @@ -27,7 +27,7 @@ "luminance": 1, "starting_ammo": { "battery": 10 }, "special_attacks": [ - [ "BIO_OP_TAKEDOWN", 20 ], + { "id": "bio_op_takedown", "cooldown": 20 }, { "type": "gun", "cooldown": 7, @@ -38,6 +38,7 @@ "ranges": [ [ 0, 30, "DEFAULT" ] ], "require_targeting_npc": true, "require_targeting_monster": true, + "target_moving_vehicles": true, "laser_lock": false, "targeting_cost": 1, "targeting_timeout_extend": -1, @@ -64,19 +65,17 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, + "grab_strength": 100, "special_attacks": [ - [ "GRAB", 7 ], - { "type": "bite", "cooldown": 5 }, + { "id": "bite_grab", "cooldown": 5 }, [ "LUNGE", 10 ], - [ "BIO_OP_TAKEDOWN", 15 ], + { "id": "bio_op_takedown", "cooldown": 15 }, { "type": "spell", "spell_data": { "id": "CBM_TRex_recording" }, "cooldown": 1600 } ], "zombify_into": "mon_zyrannosaurus_bio_op", @@ -97,15 +96,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "description": "A small fast-moving bipedal dinosaur dotted with crackling bionics. Its sharp claws and teeth glow menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_DINO" @@ -123,15 +120,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "zombify_into": "mon_zallimimus_bio_op", "description": "A fast-moving feathered bipedal dinosaur dotted with crackling bionics. Its curved claws glow menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], @@ -150,15 +145,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "zombify_into": "mon_zallimimus_bio_op", "description": "A fast-moving feathered bipedal dinosaur dotted with crackling bionics and a long tail.", "special_when_hit": [ "ZAPBACK", 75 ], @@ -177,15 +170,16 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ + { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, + { "id": "bio_op_takedown", "cooldown": 20 } + ], "description": "A small feathered bipedal dinosaur dotted with crackling bionics. Its small, hooked claws glow menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_raptor" @@ -203,15 +197,16 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ + { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, + { "id": "bio_op_takedown", "cooldown": 20 } + ], "description": "A small feathered bipedal dinosaur dotted with crackling bionics. Its small, hooked claws glow menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_raptor" @@ -229,15 +224,16 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ + { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, + { "id": "bio_op_takedown", "cooldown": 20 } + ], "zombify_into": "mon_zeinonychus_bio_op", "description": "A bipedal dinosaur covered with feathers and crackling bionics. Each foot has a large glowing sickle-like claw.", "special_when_hit": [ "ZAPBACK", 75 ], @@ -256,15 +252,16 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ + { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, + { "id": "bio_op_takedown", "cooldown": 20 } + ], "description": "A small feathered bipedal dinosaur dotted with crackling bionics. Its small, hooked claws and many sharp teeth glow menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_raptor" @@ -282,15 +279,16 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ + { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, + { "id": "bio_op_takedown", "cooldown": 20 } + ], "description": "A small feathered bipedal dinosaur dotted with crackling bionics. Each foot has a large glowing sickle-like claw.", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_raptor" @@ -308,15 +306,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "description": "A small bipedal dinosaur dotted with crackling bionics with long arms. The sharp teeth glow menacingly", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_DINO" @@ -334,16 +330,14 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, "special_attacks": [ - [ "BIO_OP_TAKEDOWN", 20 ], + { "id": "bio_op_takedown", "cooldown": 20 }, { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, [ "tailsmash_DinoMod", 30 ], [ "EAT_CROP", 5 ] @@ -366,15 +360,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "description": "A long-necked bipedal dinosaur dotted with crackling bionics with long legs and short arms. Its hooked beak glows menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_DINO" @@ -392,15 +384,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "description": "A small feathered bipedal dinosaur dotted with crackling bionics and sporting a round hard-looking domed head. Its curved claws glow menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_DINO" @@ -418,15 +408,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "zombify_into": "mon_zachycephalosaurus_bio_op", "description": "A feathered bipedal dinosaur dotted with crackling bionics and sporting a round hard-looking domed head. Its curved claws glow menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], @@ -445,15 +433,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "zombify_into": "mon_zachycephalosaurus_bio_op", "description": "A small four legged dinosaur dotted with crackling bionics with a glowing beak and small horns", "special_when_hit": [ "ZAPBACK", 75 ], @@ -472,15 +458,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "zombify_into": "mon_zriceratops_bio_op", "description": "A massive three-horned four-legged dinosaur dotted with crackling bionics. The horns glow menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], @@ -499,15 +483,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "description": "A small feathered bipedal dinosaur dotted with crackling bionics. The tiny claws glow menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_DINO" @@ -525,15 +507,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "description": "A small feathered bipedal dinosaur dotted with crackling bionics. The claws glow menacingly.", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_DINO" @@ -551,15 +531,13 @@ "melee_skill": 2, "melee_dice": 1, "dodge": 2, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 3 + "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "description": "A feathered flying reptile with short wings dotted with crackling bionics and a colorful glowing beak.", "special_when_hit": [ "ZAPBACK", 75 ], "dissect": "dissect_CBM_DINO" diff --git a/data/Mainline_mods/Mods/DinoMod/monsters/fungus.json b/data/Mainline_mods/Mods/DinoMod/monsters/fungus.json index 46f8a25c0..e2add7d1b 100644 --- a/data/Mainline_mods/Mods/DinoMod/monsters/fungus.json +++ b/data/Mainline_mods/Mods/DinoMod/monsters/fungus.json @@ -10,7 +10,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -29,7 +29,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -48,7 +48,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -67,7 +67,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -86,7 +86,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -105,13 +105,34 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, - "special_attacks": [ [ "FUNGUS", 200 ], [ "GRAB", 10 ], [ "LUNGE", 20 ] ], + "grab_strength": 100, + "special_attacks": [ { "id": "bite_grab" }, [ "FUNGUS", 200 ], [ "LUNGE", 20 ] ], "upgrades": { }, - "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "BASHES", "NO_BREATHE", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "GRABS", "POISON", "STUMBLES", "BASHES", "NO_BREATHE", "FILTHY", "WARM" ] + }, + { + "id": "mon_ziganotosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal giganotosaurus zombie" }, + "description": "Once a huge predatory bipedal dinosaur showing teeth curved and serrated like sawblades, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh.", + "copy-from": "mon_ziganotosaurus", + "default_faction": "fungus", + "species": [ "FUNGUS" ], + "diff": 2, + "proportional": { "hp": 0.75, "speed": 0.65 }, + "color": "light_gray", + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, + "bleed_rate": 0, + "vision_day": 5, + "vision_night": 5, + "grab_strength": 100, + "special_attacks": [ { "id": "bite_grab" }, [ "FUNGUS", 200 ], [ "LUNGE", 20 ] ], + "upgrades": { }, + "flags": [ "SEES", "SMELLS", "GRABS", "POISON", "STUMBLES", "BASHES", "NO_BREATHE", "FILTHY", "WARM" ] }, { "id": "mon_ziats_fungus", @@ -124,11 +145,17 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, - "special_attacks": [ [ "FUNGUS", 200 ], [ "BIO_OP_TAKEDOWN", 20 ], [ "RANGED_PULL", 20 ], [ "GRAB_DRAG", 10 ] ], + "special_attacks": [ + [ "FUNGUS", 200 ], + [ "BIO_OP_TAKEDOWN", 20 ], + { "id": "ranged_pull", "cooldown": 20 }, + { "id": "grab_drag" }, + { "id": "drag_followup" } + ], "upgrades": { }, "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "BASHES", "NO_BREATHE", "FILTHY", "WARM" ] }, @@ -143,13 +170,14 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, - "special_attacks": [ [ "FUNGUS", 200 ], { "type": "bite", "cooldown": 20 }, [ "GRAB", 20 ], [ "scratch", 20 ], [ "LUNGE", 20 ] ], + "grab_strength": 75, + "special_attacks": [ { "id": "bite_grab", "cooldown": 20 }, [ "FUNGUS", 200 ], [ "scratch", 20 ], [ "LUNGE", 20 ] ], "upgrades": { }, - "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "BASHES", "DESTROYS", "NO_BREATHE", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "GRABS", "POISON", "STUMBLES", "BASHES", "DESTROYS", "NO_BREATHE", "FILTHY", "WARM" ] }, { "id": "mon_zappalachiosaurus_fungus", @@ -162,13 +190,14 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, - "special_attacks": [ [ "FUNGUS", 200 ], { "type": "bite", "cooldown": 20 }, [ "GRAB", 20 ], [ "scratch", 20 ], [ "LUNGE", 20 ] ], + "grab_strength": 75, + "special_attacks": [ { "id": "bite_grab", "cooldown": 20 }, [ "FUNGUS", 200 ], [ "scratch", 20 ], [ "LUNGE", 20 ] ], "upgrades": { }, - "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "BASHES", "DESTROYS", "NO_BREATHE", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "GRABS", "POISON", "STUMBLES", "BASHES", "DESTROYS", "NO_BREATHE", "FILTHY", "WARM" ] }, { "id": "mon_zorgosaurus_fungus", @@ -181,13 +210,14 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, - "special_attacks": [ [ "FUNGUS", 200 ], { "type": "bite", "cooldown": 20 }, [ "GRAB", 20 ], [ "scratch", 20 ], [ "LUNGE", 20 ] ], + "grab_strength": 100, + "special_attacks": [ { "id": "bite_grab", "cooldown": 20 }, [ "FUNGUS", 200 ], [ "scratch", 20 ], [ "LUNGE", 20 ] ], "upgrades": { }, - "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "BASHES", "DESTROYS", "NO_BREATHE", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "GRABS", "POISON", "STUMBLES", "BASHES", "DESTROYS", "NO_BREATHE", "FILTHY", "WARM" ] }, { "id": "mon_zalbertosaurus_fungus", @@ -200,13 +230,14 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, - "special_attacks": [ [ "FUNGUS", 200 ], { "type": "bite", "cooldown": 5 }, [ "GRAB", 7 ], [ "scratch", 20 ], [ "LUNGE", 5 ] ], + "grab_strength": 75, + "special_attacks": [ { "id": "bite_grab", "cooldown": 5 }, [ "FUNGUS", 200 ], [ "scratch", 20 ], [ "LUNGE", 5 ] ], "upgrades": { }, - "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "BASHES", "DESTROYS", "NO_BREATHE", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "GRABS", "POISON", "STUMBLES", "BASHES", "DESTROYS", "NO_BREATHE", "FILTHY", "WARM" ] }, { "id": "mon_zianzhousaurus_fungus", @@ -219,7 +250,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -238,7 +269,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -257,7 +288,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -276,7 +307,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -295,7 +326,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -314,7 +345,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -333,7 +364,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -341,6 +372,25 @@ "upgrades": { }, "flags": [ "SEES", "SMELLS", "HEARS", "PET_MOUNTABLE", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "WARM" ] }, + { + "id": "mon_zerizinosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal therizinosaurus zombie" }, + "description": "Once a huge feathered bipedal plant eating dinosaur with long claws, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered feathers.", + "copy-from": "mon_zerizinosaurus", + "default_faction": "fungus", + "species": [ "FUNGUS" ], + "diff": 2, + "proportional": { "hp": 0.75, "speed": 0.65 }, + "color": "light_gray", + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, + "bleed_rate": 0, + "vision_day": 5, + "vision_night": 5, + "special_attacks": [ [ "FUNGUS", 200 ], [ "LONGSWIPE", 20 ] ], + "upgrades": { }, + "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "WARM", "BASHES", "DESTROYS" ] + }, { "id": "mon_zothronychus_fungus", "type": "MONSTER", @@ -352,7 +402,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -371,7 +421,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -390,7 +440,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -414,7 +464,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -438,7 +488,26 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, + "bleed_rate": 0, + "vision_day": 5, + "vision_night": 5, + "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], + "upgrades": { }, + "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "WARM", "BASHES" ] + }, + { + "id": "mon_zanchisaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal anchisaurus zombie" }, + "description": "This was once a four legged plant eating dinosaur with a long neck and leathery skin. Now fungal tendrils sprout from the mouth, eyes, and other orifices, holding together a large shambling mass of mold-covered flesh.", + "copy-from": "mon_zanchisaurus", + "default_faction": "fungus", + "species": [ "FUNGUS" ], + "diff": 2, + "proportional": { "hp": 0.75, "speed": 0.65 }, + "color": "light_gray", + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -457,7 +526,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -476,7 +545,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -495,7 +564,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -518,7 +587,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -546,6 +615,14 @@ "copy-from": "mon_zapatosaurus_fungus", "upgrades": { } }, + { + "id": "mon_zarosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal barosaurus zombie" }, + "description": "Once a huge, long-necked, four-legged plant eating dinosaur with a long, whip-like tail, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together an enormous shambling mass of mold-covered flesh.", + "copy-from": "mon_zapatosaurus_fungus", + "upgrades": { } + }, { "id": "mon_zamarasaurus_fungus", "type": "MONSTER", @@ -569,7 +646,7 @@ "name": { "str": "fungal alamosaurus zombie" }, "description": "Once a gigantic, long-necked, four-legged plant eating dinosaur with longer forelegs and spiked tail protected by natural bone armor, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together an enormous shambling mass of mold-covered flesh.", "copy-from": "mon_zapatosaurus_fungus", - "proportional": { "hp": 1.5, "speed": 0.8, "armor_bash": 2, "armor_cut": 2 }, + "proportional": { "hp": 1.5, "speed": 0.8, "armor": { "bash": 2, "cut": 2 } }, "upgrades": { } }, { @@ -583,7 +660,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -606,7 +683,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -618,6 +695,15 @@ "upgrades": { }, "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "BASHES" ] }, + { + "id": "mon_zastonia_fungus", + "type": "MONSTER", + "name": { "str": "fungal gastonia zombie" }, + "description": "Once a heavily armored four legged dinosaur with a long tail, a beak, and large shoulder spikes, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "copy-from": "mon_zodosaurus_fungus", + "proportional": { "hp": 0.7 }, + "upgrades": { } + }, { "id": "mon_zargoyleosaurus_fungus", "type": "MONSTER", @@ -632,15 +718,25 @@ "type": "MONSTER", "name": { "str": "fungal sauropelta zombie" }, "description": "Once a heavily armored four legged dinosaur with a beak, a long tail, and long wicked-looking spikes jutting out of the neck, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", - "armor_cut": 30, "copy-from": "mon_zodosaurus_fungus", - "upgrades": { } + "upgrades": { }, + "armor": { "bash": 16, "bullet": 7, "cut": 30 } }, { "id": "mon_zodosaurus_fungus", "type": "MONSTER", "name": { "str": "fungal nodosaurus zombie" }, - "description": "Once something like a gigantic armadillo-dinosaur hybrid, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "description": "Once a heavily armored four legged dinosaur with a beak and large bony plates covering the back, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "copy-from": "mon_zankylosaurus_fungus", + "proportional": { "hp": 0.6 }, + "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], + "upgrades": { } + }, + { + "id": "mon_zanoplosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal panoplosaurus zombie" }, + "description": "Once a heavily armored four legged dinosaur with a lumpy armored head with a beak and thick plates protecting the cheeks, thick back armor, and small short spikes along the sides, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", "copy-from": "mon_zankylosaurus_fungus", "proportional": { "hp": 0.6 }, "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], @@ -670,7 +766,7 @@ "id": "mon_zyoplosaurus_fungus", "type": "MONSTER", "name": { "str": "fungal dyoplosaurus zombie" }, - "description": "Once something like a gigantic armadillo-dinosaur hybrid with a spiked club tail, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "description": "Once a heavily armored four legged dinosaur with a beak and a long tail ending in a spiked club of bone, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", "copy-from": "mon_zankylosaurus_fungus", "proportional": { "hp": 0.35, "speed": 1.2 }, "upgrades": { } @@ -679,14 +775,64 @@ "id": "mon_zankylosaurus_fungus", "type": "MONSTER", "name": { "str": "fungal ankylosaurus zombie" }, - "description": "Once something like a giant armadillo dinosaur hybrid with a spiked tail, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together an enormous shambling mass of mold-covered flesh and bone.", + "description": "Once a heavily armored four legged dinosaur with a long tail ending in a massive spiked club of bone, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together an enormous shambling mass of mold-covered flesh and bone.", "copy-from": "mon_zankylosaurus", "default_faction": "fungus", "species": [ "FUNGUS" ], "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, + "bleed_rate": 0, + "vision_day": 5, + "vision_night": 5, + "special_attacks": [ + [ "FUNGUS", 200 ], + [ "scratch", 10 ], + { "type": "bite", "cooldown": 5 }, + { "id": "slam", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, + [ "SMASH", 30 ] + ], + "upgrades": { }, + "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "BASHES" ] + }, + { + "id": "mon_zuoplocephalus_fungus", + "type": "MONSTER", + "name": { "str": "fungal euoplocephalus zombie" }, + "description": "Once a heavily armored four legged dinosaur with a horny beak, two bony rings protecting the neck, and a long tail ending in a heavy club of bone, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together an enormous shambling mass of mold-covered flesh and bone.", + "copy-from": "mon_zuoplocephalus", + "default_faction": "fungus", + "species": [ "FUNGUS" ], + "diff": 2, + "proportional": { "hp": 0.75, "speed": 0.65 }, + "color": "light_gray", + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, + "bleed_rate": 0, + "vision_day": 5, + "vision_night": 5, + "special_attacks": [ + [ "FUNGUS", 200 ], + [ "scratch", 10 ], + { "type": "bite", "cooldown": 5 }, + { "id": "slam", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, + [ "SMASH", 30 ] + ], + "upgrades": { }, + "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "BASHES" ] + }, + { + "id": "mon_zcolosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal scolosaurus zombie" }, + "description": "Once a heavily armored four legged dinosaur with several long spikes along the back and a long spiked tail ending in a club of bone, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together an enormous shambling mass of mold-covered flesh and bone.", + "copy-from": "mon_zcolosaurus", + "default_faction": "fungus", + "species": [ "FUNGUS" ], + "diff": 2, + "proportional": { "hp": 0.75, "speed": 0.65 }, + "color": "light_gray", + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -700,6 +846,44 @@ "upgrades": { }, "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "BASHES" ] }, + { + "id": "mon_zenontosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal tenontosaurus zombie" }, + "description": "This was once a feathered, four-legged dinosaur with a beak and a broad long tail. Fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together an enormous shambling mass of mold-covered feathers.", + "copy-from": "mon_zenontosaurus", + "default_faction": "fungus", + "species": [ "FUNGUS" ], + "diff": 2, + "proportional": { "hp": 0.75, "speed": 0.65 }, + "color": "light_gray", + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, + "bleed_rate": 0, + "vision_day": 5, + "vision_night": 5, + "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], + "upgrades": { }, + "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "BASHES" ] + }, + { + "id": "mon_zryosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal dryosaurus zombie" }, + "description": "This was once a small feathered dinosaur with short arms, a long neck, and a horned beak. Fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together an enormous shambling mass of mold-covered feathers.", + "copy-from": "mon_zamptosaurus", + "default_faction": "fungus", + "species": [ "FUNGUS" ], + "diff": 2, + "proportional": { "hp": 0.75, "speed": 0.65 }, + "color": "light_gray", + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, + "bleed_rate": 0, + "vision_day": 5, + "vision_night": 5, + "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], + "upgrades": { }, + "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "BASHES" ] + }, { "id": "mon_zamptosaurus_fungus", "type": "MONSTER", @@ -711,7 +895,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -729,31 +913,39 @@ "upgrades": { } }, { - "id": "mon_zarasaurolophus_fungus", + "id": "mon_zaiasaura_fungus", "type": "MONSTER", - "name": { "str": "fungal parasaurolophus zombie" }, - "description": "Once a huge, four-legged dinosaur herbivore with a blunt head crest, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "name": { "str": "fungal maiasaura zombie" }, + "description": "This was once a huge, four-legged dinosaur herbivore with hooves, a heavy tail, and a flat beak. Fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "copy-from": "mon_zamptosaurus_fungus", + "proportional": { "hp": 3 }, + "upgrades": { } + }, + { + "id": "mon_zryposaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal gryposaurus zombie" }, + "description": "Once a huge, four-legged dinosaur herbivore with a toothless beak and a narrow arching nasal hump, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", "copy-from": "mon_zamptosaurus_fungus", "proportional": { "hp": 4 }, "upgrades": { } }, { - "id": "mon_zorythosaurus_fungus", + "id": "mon_zrosaurolophus_fungus", "type": "MONSTER", - "name": { "str": "fungal corythosaurus zombie" }, - "description": "Once a huge, four-legged dinosaur herbivore with a short beak and a tall head crest, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "name": { "str": "fungal prosaurolophus zombie" }, + "description": "Once a huge, four-legged dinosaur herbivore with hooves and a broad beak and a small nasal crest, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", "copy-from": "mon_zamptosaurus_fungus", "proportional": { "hp": 4 }, - "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 }, [ "SHRIEK", 5 ] ], "upgrades": { } }, { - "id": "mon_zaiasaura_fungus", + "id": "mon_zaurolophus_fungus", "type": "MONSTER", - "name": { "str": "fungal maiasaura zombie" }, - "description": "This was once a huge, four-legged dinosaur herbivore with hooves, a heavy tail, and a flat beak. Fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "name": { "str": "fungal saurolophus zombie" }, + "description": "Once a huge, four-legged dinosaur herbivore with hooves and a broad beak and a spiky head crest, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", "copy-from": "mon_zamptosaurus_fungus", - "proportional": { "hp": 3 }, + "proportional": { "hp": 4 }, "upgrades": { } }, { @@ -766,12 +958,42 @@ "upgrades": { } }, { - "id": "mon_zryposaurus_fungus", + "id": "mon_zarasaurolophus_fungus", "type": "MONSTER", - "name": { "str": "fungal gryposaurus zombie" }, - "description": "Once a huge, four-legged dinosaur herbivore with a toothless beak and a narrow arching nasal hump, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "name": { "str": "fungal parasaurolophus zombie" }, + "description": "Once a huge, four-legged dinosaur herbivore with a blunt head crest, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "copy-from": "mon_zamptosaurus_fungus", + "proportional": { "hp": 4 }, + "upgrades": { } + }, + { + "id": "mon_zambeosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal lambeosaurus zombie" }, + "description": "Once a huge, four-legged dinosaur herbivore with a long stiff tail, hooves, a narrow beak and a tall head crest, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "copy-from": "mon_zamptosaurus_fungus", + "proportional": { "hp": 4 }, + "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 }, [ "SHRIEK", 5 ] ], + "upgrades": { } + }, + { + "id": "mon_zorythosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal corythosaurus zombie" }, + "description": "Once a huge, four-legged dinosaur herbivore with a short beak and a tall head crest, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", "copy-from": "mon_zamptosaurus_fungus", "proportional": { "hp": 4 }, + "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 }, [ "SHRIEK", 5 ] ], + "upgrades": { } + }, + { + "id": "mon_zypacrosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal hypacrosaurus zombie" }, + "description": "Once a huge, four-legged dinosaur herbivore with a tall ridge down the back, a tail, hooves, a short beak and a wide, rounded head crest, fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh and bone.", + "copy-from": "mon_zamptosaurus_fungus", + "proportional": { "hp": 4 }, + "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 }, [ "SHRIEK", 5 ] ], "upgrades": { } }, { @@ -785,7 +1007,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -804,7 +1026,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -823,7 +1045,26 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, + "bleed_rate": 0, + "vision_day": 5, + "vision_night": 5, + "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], + "upgrades": { }, + "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "PET_MOUNTABLE" ] + }, + { + "id": "mon_ztyracosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal styracosaurus zombie" }, + "description": "This was once a stocky four-legged dinosaur with a bony crest with several long spikes and one large horn above the beak. Fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh.", + "copy-from": "mon_ztyracosaurus", + "default_faction": "fungus", + "species": [ "FUNGUS" ], + "diff": 2, + "proportional": { "hp": 0.75, "speed": 0.65 }, + "color": "light_gray", + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -842,7 +1083,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -850,6 +1091,39 @@ "upgrades": { }, "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "PET_MOUNTABLE" ] }, + { + "id": "mon_zeiniosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal einiosaurus zombie" }, + "description": "This was once a stocky dinosaur with a tall bony crest and one large horn above the nose curving forward towards the beak. Fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh.", + "copy-from": "mon_zeiniosaurus", + "default_faction": "fungus", + "species": [ "FUNGUS" ], + "diff": 2, + "proportional": { "hp": 0.75, "speed": 0.65 }, + "color": "light_gray", + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, + "bleed_rate": 0, + "vision_day": 5, + "vision_night": 5, + "special_attacks": [ [ "FUNGUS", 200 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], + "upgrades": { }, + "flags": [ "SEES", "SMELLS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "PET_MOUNTABLE" ] + }, + { + "id": "mon_zachelousaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal achelousaurus zombie" }, + "description": "This was once a stocky dinosaur with a tall bony crest with two long curved spikes and three rough bosses above the eyes and nose as well as a short tail and hooked beak. Fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh.", + "copy-from": "mon_zriceratops_fungus", + "proportional": { "hp": 0.55 }, + "special_attacks": [ + [ "FUNGUS", 200 ], + { "id": "slam", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, + [ "SMASH", 30 ] + ], + "upgrades": { } + }, { "id": "mon_zachyrhinosaurus_fungus", "type": "MONSTER", @@ -864,13 +1138,22 @@ ], "upgrades": { } }, + { + "id": "mon_zasmosaurus_fungus", + "type": "MONSTER", + "name": { "str": "fungal chasmosaurus zombie" }, + "description": "This was once a four-legged dinosaur with a tall bony crest from which three short horns emerge above the eyes and beak. Fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh.", + "copy-from": "mon_zriceratops_fungus", + "proportional": { "armor": { "bash": 2 } }, + "upgrades": { } + }, { "id": "mon_zentaceratops_fungus", "type": "MONSTER", "name": { "str": "fungal pentacerops zombie" }, "description": "This was once a massive, four-legged dinosaur herbivore, with a tall bony crest from which four long horns and a short nose horn emerged. Fungal tendrils now sprout from its mouth, eyes, and other orifices, holding together a shambling mass of mold-covered flesh.", "copy-from": "mon_zriceratops_fungus", - "proportional": { "armor_bash": 2 }, + "proportional": { "armor": { "bash": 2 } }, "upgrades": { } }, { @@ -904,7 +1187,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -923,7 +1206,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -942,7 +1225,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, @@ -973,7 +1256,7 @@ "diff": 2, "proportional": { "hp": 0.75, "speed": 0.65 }, "color": "light_gray", - "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor_bash": 3 }, + "relative": { "melee_skill": -1, "melee_dice": -1, "melee_dice_sides": 3, "armor": { "bash": 3 } }, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, diff --git a/data/Mainline_mods/Mods/DinoMod/monsters/hatchling.json b/data/Mainline_mods/Mods/DinoMod/monsters/hatchling.json index 9ef91981f..056b8a1b0 100644 --- a/data/Mainline_mods/Mods/DinoMod/monsters/hatchling.json +++ b/data/Mainline_mods/Mods/DinoMod/monsters/hatchling.json @@ -1,4 +1,12 @@ [ + { + "id": "mon_tawa_hatchling", + "type": "MONSTER", + "copy-from": "mon_compsognathus_hatchling", + "name": "magenta and green hatchling", + "default_faction": "tawa_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_tawa" } + }, { "id": "mon_coelophysis_hatchling", "type": "MONSTER", @@ -60,6 +68,13 @@ "default_faction": "acrocanthosaurus_hatchling", "upgrades": { "age_grow": 30, "into": "mon_acrocanthosaurus_juvenile" } }, + { + "id": "mon_giganotosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_allosaurus_hatchling", + "default_faction": "giganotosaurus_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_giganotosaurus_juvenile" } + }, { "id": "mon_siats_hatchling", "type": "MONSTER", @@ -153,7 +168,18 @@ "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 3 }, "death_function": { "effect": { "id": "death_guilt", "min_level": 3 } }, "petfood": { "food": [ "DINOFOOD_B" ] }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "STUMBLES", "NO_BREED", "CANPLAY" ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "WARM", + "STUMBLES", + "NO_BREED", + "CANPLAY", + "CAN_BE_CULLED" + ], "harvest": "bird_tiny" }, { @@ -166,7 +192,18 @@ "upgrades": { "age_grow": 20, "into": "mon_gallimimus_juvenile" }, "death_function": { "effect": { "id": "death_guilt", "min_level": 3 } }, "petfood": { "food": [ "DINOFOOD_A", "DINOFOOD_B", "DINOFOOD_C" ] }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CANPLAY", "STUMBLES", "NO_BREED" ] + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "WARM", + "CANPLAY", + "STUMBLES", + "NO_BREED", + "CAN_BE_CULLED" + ] }, { "id": "mon_struthiomimus_hatchling", @@ -190,7 +227,25 @@ "upgrades": { "age_grow": 25, "into": "mon_albertonykus" }, "death_function": { "effect": { "id": "death_guilt", "min_level": 3 } }, "petfood": { "food": [ "DINOFOOD_A", "DINOFOOD_B" ] }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CANPLAY", "STUMBLES", "NO_BREED" ] + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "WARM", + "CANPLAY", + "STUMBLES", + "NO_BREED", + "CAN_BE_CULLED" + ] + }, + { + "id": "mon_therizinosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_gallimimus_hatchling", + "name": "green and magenta hatchling", + "upgrades": { "age_grow": 50, "into": "mon_therizinosaurus_juvenile" } }, { "id": "mon_nothronychus_hatchling", @@ -267,17 +322,27 @@ { "id": "mon_sarahsaurus_hatchling", "type": "MONSTER", - "name": "sarahsaurus hatchling", + "name": "brown and magenta hatchling", "copy-from": "mon_gallimimus_hatchling", "weight": "2 kg", "volume": "2 L", "petfood": { "food": [ "DINOFOOD_C" ] }, "upgrades": { "age_grow": 40, "into": "mon_sarahsaurus_juvenile" } }, + { + "id": "mon_anchisaurus_hatchling", + "type": "MONSTER", + "name": "brown and magenta hatchling", + "copy-from": "mon_gallimimus_hatchling", + "weight": "2 kg", + "volume": "2 L", + "petfood": { "food": [ "DINOFOOD_C" ] }, + "upgrades": { "age_grow": 20, "into": "mon_anchisaurus_juvenile" } + }, { "id": "mon_issi_hatchling", "type": "MONSTER", - "name": "issi hatchling", + "name": "brown and magenta hatchling", "copy-from": "mon_gallimimus_hatchling", "weight": "2 kg", "volume": "2 L", @@ -287,7 +352,7 @@ { "id": "mon_haplocanthosaurus_hatchling", "type": "MONSTER", - "name": "haplocanthosaurus hatchling", + "name": "brown and magenta hatchling", "copy-from": "mon_gallimimus_hatchling", "weight": "4 kg", "volume": "4 L", @@ -297,7 +362,7 @@ { "id": "mon_amargasaurus_hatchling", "type": "MONSTER", - "name": "amargasaurus hatchling", + "name": "brown and magenta hatchling", "copy-from": "mon_gallimimus_hatchling", "weight": "4 kg", "volume": "4 L", @@ -308,7 +373,6 @@ "id": "mon_apatosaurus_hatchling", "type": "MONSTER", "copy-from": "mon_amargasaurus_hatchling", - "name": "brown and magenta hatchling", "upgrades": { "age_grow": 50, "into": "mon_apatosaurus_juvenile" } }, { @@ -323,6 +387,12 @@ "copy-from": "mon_apatosaurus_hatchling", "upgrades": { "age_grow": 40, "into": "mon_diplodocus_juvenile" } }, + { + "id": "mon_barosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_apatosaurus_hatchling", + "upgrades": { "age_grow": 40, "into": "mon_barosaurus_juvenile" } + }, { "id": "mon_camarasaurus_hatchling", "type": "MONSTER", @@ -367,49 +437,78 @@ "upgrades": { "age_grow": 30, "into": "mon_hesperosaurus_juvenile" } }, { - "id": "mon_gargoyleosaurus_hatchling", + "id": "mon_gastonia_hatchling", "type": "MONSTER", "copy-from": "mon_stegosaurus_hatchling", "name": "brown and magenta hatchling", + "upgrades": { "age_grow": 30, "into": "mon_gastonia_juvenile" } + }, + { + "id": "mon_gargoyleosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_gastonia_hatchling", "upgrades": { "age_grow": 30, "into": "mon_gargoyleosaurus_juvenile" } }, { "id": "mon_sauropelta_hatchling", "type": "MONSTER", - "copy-from": "mon_stegosaurus_hatchling", - "name": "brown and magenta hatchling", + "copy-from": "mon_gastonia_hatchling", "upgrades": { "age_grow": 30, "into": "mon_sauropelta_juvenile" } }, { - "id": "mon_dyoplosaurus_hatchling", + "id": "mon_nodosaurus_hatchling", "type": "MONSTER", - "copy-from": "mon_stegosaurus_hatchling", - "name": "brown and magenta hatchling", - "upgrades": { "age_grow": 30, "into": "mon_dyoplosaurus_juvenile" } + "copy-from": "mon_gastonia_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_nodosaurus_juvenile" } + }, + { + "id": "mon_panoplosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_gastonia_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_panoplosaurus_juvenile" } }, { "id": "mon_edmontonia_hatchling", "type": "MONSTER", - "copy-from": "mon_dyoplosaurus_hatchling", + "copy-from": "mon_gastonia_hatchling", "upgrades": { "age_grow": 30, "into": "mon_edmontonia_juvenile" } }, { "id": "mon_zuul_hatchling", "type": "MONSTER", - "copy-from": "mon_dyoplosaurus_hatchling", + "copy-from": "mon_gastonia_hatchling", "upgrades": { "age_grow": 30, "into": "mon_zuul_juvenile" } }, + { + "id": "mon_dyoplosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_gastonia_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_dyoplosaurus_juvenile" } + }, { "id": "mon_ankylosaurus_hatchling", "type": "MONSTER", - "copy-from": "mon_dyoplosaurus_hatchling", + "copy-from": "mon_gastonia_hatchling", "upgrades": { "age_grow": 30, "into": "mon_ankylosaurus_juvenile" } }, { - "id": "mon_nodosaurus_hatchling", + "id": "mon_euoplocephalus_hatchling", "type": "MONSTER", - "copy-from": "mon_dyoplosaurus_hatchling", - "upgrades": { "age_grow": 30, "into": "mon_nodosaurus_juvenile" } + "copy-from": "mon_gastonia_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_euoplocephalus_juvenile" } + }, + { + "id": "mon_scolosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_gastonia_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_scolosaurus_juvenile" } + }, + { + "id": "mon_tenontosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_scutellosaurus_hatchling", + "name": "light green and yellow hatchling", + "upgrades": { "age_grow": 30, "into": "mon_tenontosaurus_juvenile" } }, { "id": "mon_dryosaurus_hatchling", @@ -433,22 +532,28 @@ "upgrades": { "age_grow": 30, "into": "mon_hadrosaurus_juvenile" } }, { - "id": "mon_parasaurolophus_hatchling", + "id": "mon_maiasaura_hatchling", "type": "MONSTER", "copy-from": "mon_hadrosaurus_hatchling", - "upgrades": { "age_grow": 30, "into": "mon_parasaurolophus_juvenile" } + "upgrades": { "age_grow": 40, "into": "mon_maiasaura_juvenile" } }, { - "id": "mon_corythosaurus_hatchling", + "id": "mon_gryposaurus_hatchling", "type": "MONSTER", "copy-from": "mon_hadrosaurus_hatchling", - "upgrades": { "age_grow": 40, "into": "mon_corythosaurus_juvenile" } + "upgrades": { "age_grow": 25, "into": "mon_gryposaurus_juvenile" } }, { - "id": "mon_maiasaura_hatchling", + "id": "mon_prosaurolophus_hatchling", "type": "MONSTER", "copy-from": "mon_hadrosaurus_hatchling", - "upgrades": { "age_grow": 30, "into": "mon_maiasaura_juvenile" } + "upgrades": { "age_grow": 30, "into": "mon_prosaurolophus_juvenile" } + }, + { + "id": "mon_saurolophus_hatchling", + "type": "MONSTER", + "copy-from": "mon_hadrosaurus_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_saurolophus_juvenile" } }, { "id": "mon_edmontosaurus_hatchling", @@ -457,10 +562,28 @@ "upgrades": { "age_grow": 50, "into": "mon_edmontosaurus_juvenile" } }, { - "id": "mon_gryposaurus_hatchling", + "id": "mon_parasaurolophus_hatchling", "type": "MONSTER", "copy-from": "mon_hadrosaurus_hatchling", - "upgrades": { "age_grow": 50, "into": "mon_gryposaurus_juvenile" } + "upgrades": { "age_grow": 30, "into": "mon_parasaurolophus_juvenile" } + }, + { + "id": "mon_lambeosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_hadrosaurus_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_lambeosaurus_juvenile" } + }, + { + "id": "mon_corythosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_hadrosaurus_hatchling", + "upgrades": { "age_grow": 40, "into": "mon_corythosaurus_juvenile" } + }, + { + "id": "mon_hypacrosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_hadrosaurus_hatchling", + "upgrades": { "age_grow": 40, "into": "mon_hypacrosaurus_juvenile" } }, { "id": "mon_stegoceras_hatchling", @@ -488,29 +611,51 @@ "type": "MONSTER", "copy-from": "mon_pachycephalosaurus_hatchling", "name": "light green and magenta hatchling", + "dissect": "dissect_horns_sample_single", "upgrades": { "age_grow": 30, "into": "mon_leptoceratops_juvenile" } }, { "id": "mon_zuniceratops_hatchling", "type": "MONSTER", - "copy-from": "mon_pachycephalosaurus_hatchling", - "name": "light green and magenta hatchling", + "copy-from": "mon_leptoceratops_hatchling", "upgrades": { "age_grow": 30, "into": "mon_zuniceratops_juvenile" } }, + { + "id": "mon_styracosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_leptoceratops_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_styracosaurus_juvenile" } + }, { "id": "mon_centrosaurus_hatchling", "type": "MONSTER", - "copy-from": "mon_pachycephalosaurus_hatchling", - "name": "light green and magenta hatchling", + "copy-from": "mon_leptoceratops_hatchling", "upgrades": { "age_grow": 30, "into": "mon_centrosaurus_juvenile" } }, + { + "id": "mon_einiosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_leptoceratops_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_einiosaurus_juvenile" } + }, + { + "id": "mon_achelousaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_leptoceratops_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_achelousaurus_juvenile" } + }, { "id": "mon_pachyrhinosaurus_hatchling", "type": "MONSTER", - "copy-from": "mon_pachycephalosaurus_hatchling", - "name": "light green and magenta hatchling", + "copy-from": "mon_leptoceratops_hatchling", "upgrades": { "age_grow": 30, "into": "mon_pachyrhinosaurus_juvenile" } }, + { + "id": "mon_chasmosaurus_hatchling", + "type": "MONSTER", + "copy-from": "mon_pachyrhinosaurus_hatchling", + "upgrades": { "age_grow": 30, "into": "mon_chasmosaurus_juvenile" } + }, { "id": "mon_pentaceratops_hatchling", "type": "MONSTER", @@ -563,7 +708,18 @@ "upgrades": { "age_grow": 20, "into": "mon_thescelosaurus_juvenile" }, "death_function": { "effect": { "id": "death_guilt", "min_level": 3 } }, "petfood": { "food": [ "DINOFOOD_A", "DINOFOOD_B", "DINOFOOD_C" ] }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CANPLAY", "STUMBLES", "NO_BREED" ] + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "WARM", + "CANPLAY", + "STUMBLES", + "NO_BREED", + "CAN_BE_CULLED" + ] }, { "id": "mon_dimorphodon_hatchling", diff --git a/data/Mainline_mods/Mods/DinoMod/monsters/juvenile.json b/data/Mainline_mods/Mods/DinoMod/monsters/juvenile.json index 5aae87b0b..9c4347cf2 100644 --- a/data/Mainline_mods/Mods/DinoMod/monsters/juvenile.json +++ b/data/Mainline_mods/Mods/DinoMod/monsters/juvenile.json @@ -6,10 +6,13 @@ "description": "A small bipedal dinosaur juvenile with large eyes and sharp teeth.", "default_faction": "dilophosaurus_juvenile", "copy-from": "mon_dilophosaurus", + "melee_dice": 1, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "proportional": { "hp": 0.5, "speed": 1.25 }, "upgrades": { "age_grow": 65, "into": "mon_dilophosaurus" }, "petfood": { "food": [ "DINOFOOD_B" ] }, - "extend": { "flags": [ "CANPLAY", "NO_BREED" ] } + "extend": { "flags": [ "CANPLAY", "NO_BREED", "CAN_BE_CULLED" ] } }, { "id": "mon_ceratosaurus_juvenile", @@ -26,6 +29,9 @@ "description": "A huge dinosaur juvenile with sharp teeth and a large fan on its back.", "default_faction": "spinosaurus_juvenile", "copy-from": "mon_spinosaurus", + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "proportional": { "hp": 0.5, "speed": 1.25 }, "upgrades": { "age_grow": 365, "into": "mon_spinosaurus" }, "petfood": { "food": [ "DINOFOOD_B" ] }, @@ -38,6 +44,9 @@ "description": "A large bipedal dinosaur juvenile with sharp teeth.", "default_faction": "torvosaurus_juvenile", "copy-from": "mon_torvosaurus", + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "proportional": { "hp": 0.5, "speed": 1.25 }, "upgrades": { "age_grow": 365, "into": "mon_torvosaurus" }, "petfood": { "food": [ "DINOFOOD_B" ] }, @@ -50,6 +59,9 @@ "description": "A large bipedal meat-eating dinosaur juvenile.", "default_faction": "allosaurus_juvenile", "copy-from": "mon_allosaurus", + "melee_dice": 1, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -64,6 +76,9 @@ "description": "Large predatory bipedal dinosaur juvenile with a tall ridge running the length of its back covered with heavy muscles.", "default_faction": "acrocanthosaurus_juvenile", "copy-from": "mon_acrocanthosaurus", + "melee_dice": 1, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -71,6 +86,23 @@ "petfood": { "food": [ "DINOFOOD_B" ] }, "extend": { "flags": [ "CANPLAY", "NO_BREED" ] } }, + { + "id": "mon_giganotosaurus_juvenile", + "type": "MONSTER", + "name": "giganotosaurus juvenile", + "description": "Large predatory bipedal dinosaur juvenile with a wide, flat head.", + "default_faction": "giganotosaurus_juvenile", + "copy-from": "mon_giganotosaurus", + "melee_dice": 1, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], + "volume": "750 L", + "weight": "750 kg", + "proportional": { "hp": 0.5, "speed": 1.25 }, + "upgrades": { "age_grow": 365, "into": "mon_giganotosaurus" }, + "petfood": { "food": [ "DINOFOOD_B" ] }, + "extend": { "flags": [ "CANPLAY", "NO_BREED" ] } + }, { "id": "mon_siats_juvenile", "type": "MONSTER", @@ -78,6 +110,9 @@ "description": "Large predatory bipedal dinosaur juvenile with long claws and strong arms for grappling.", "default_faction": "siats_juvenile", "copy-from": "mon_siats", + "melee_dice": 1, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -92,6 +127,9 @@ "description": "Large teeth, fierce eyes, and a powerful frame to drive this juvenile forward, with claws and a feathered mullet and tail.", "default_faction": "dryptosaurus_juvenile", "copy-from": "mon_dryptosaurus", + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -107,6 +145,9 @@ "description": "Large teeth, fierce eyes, and a powerful frame to drive this juvenile forward, with two small arms and a feathered mullet and tail.", "default_faction": "appalachiosaurus_juvenile", "copy-from": "mon_appalachiosaurus", + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -122,6 +163,9 @@ "description": "Enormous teeth, fierce eyes, and a powerful frame to drive this juvenile forward, with two small arms and a feathered mullet and tail.", "default_faction": "gorgosaurus_juvenile", "copy-from": "mon_gorgosaurus", + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -137,6 +181,9 @@ "description": "Enormous teeth, fierce eyes, and a powerful frame to drive this juvenile forward, with short strong arms and a feathered mullet and tail.", "default_faction": "albertosaurus_juvenile", "copy-from": "mon_albertosaurus", + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -152,6 +199,9 @@ "description": "This large, bipedal, feather-covered dinosaur juvenile has a long, gator-like mouth with sharp teeth.", "default_faction": "qianzhousaurus_juvenile", "copy-from": "mon_qianzhousaurus", + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -167,6 +217,9 @@ "description": "This large, bipedal dinosaur juvenile has long, sharp teeth and fluffy white feathers.", "default_faction": "nanuqsaurus_juvenile", "copy-from": "mon_nanuqsaurus", + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -182,6 +235,9 @@ "description": "This large, bipedal dinosaur juvenile has long, sharp teeth.", "default_faction": "daspletosaurus_juvenile", "copy-from": "mon_daspletosaurus", + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -197,6 +253,9 @@ "description": "A large predatory dinosaur juvenile with large sharp teeth.", "default_faction": "tyrannosaurus_juvenile", "copy-from": "mon_tyrannosaurus", + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "volume": "750 L", "weight": "750 kg", "proportional": { "hp": 0.5, "speed": 1.25 }, @@ -231,7 +290,7 @@ "upgrades": { "age_grow": 70, "into": "mon_gallimimus" }, "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 3 }, "petfood": { "food": [ "DINOFOOD_A", "DINOFOOD_B", "DINOFOOD_C" ] }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "NO_BREED", "CANPLAY" ], + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "NO_BREED", "CANPLAY", "CAN_BE_CULLED" ], "harvest": "bird_small" }, { @@ -246,6 +305,14 @@ "copy-from": "mon_gallimimus_juvenile", "upgrades": { "age_grow": 365, "into": "mon_ornithomimus" } }, + { + "id": "mon_therizinosaurus_juvenile", + "type": "MONSTER", + "name": "green and magenta two-legged juvenile", + "description": "A large bipedal plant-eating dinosaur juvenile, it could be from a number of different species.", + "copy-from": "mon_gallimimus_juvenile", + "upgrades": { "age_grow": 365, "into": "mon_therizinosaurus" } + }, { "id": "mon_nothronychus_juvenile", "type": "MONSTER", @@ -275,7 +342,18 @@ "upgrades": { "age_grow": 14, "into": "mon_deinonychus" }, "petfood": { "food": [ "DINOFOOD_B" ] }, "dissect": "dissect_raptor_sample_single", - "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CANPLAY", "NO_BREED", "CANPLAY" ] + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "KEENNOSE", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "WARM", + "CANPLAY", + "NO_BREED", + "CAN_BE_CULLED" + ] }, { "id": "mon_utahraptor_juvenile", @@ -306,6 +384,19 @@ [ "EAT_CROP", 10 ] ] }, + { + "id": "mon_anchisaurus_juvenile", + "type": "MONSTER", + "copy-from": "mon_issi_juvenile", + "description": "A four-legged, plant-eating juvenile sauropod with a long neck.", + "zombify_into": "mon_zanchisaurus", + "upgrades": { "age_grow": 5, "into": "mon_anchisaurus" }, + "volume": "15 L", + "weight": "15 kg", + "bodytype": "bear", + "hp": 25, + "special_attacks": [ [ "EAT_CROP", 50 ] ] + }, { "id": "mon_issi_juvenile", "type": "MONSTER", @@ -358,6 +449,8 @@ [ "EAT_CROP", 5 ] ], "harvest": "dino_sauropod", + "anger_triggers": [ "HURT", "FRIEND_ATTACKED" ], + "fear_triggers": [ "FRIEND_DIED" ], "upgrades": { "age_grow": 365, "into": "mon_amargasaurus" }, "petfood": { "food": [ "DINOFOOD_C" ] }, "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "NO_BREED", "CANPLAY", "GROUP_MORALE" ] @@ -383,6 +476,13 @@ "zombify_into": "mon_ziplodocus_juvenile", "upgrades": { "age_grow": 365, "into": "mon_diplodocus" } }, + { + "id": "mon_barosaurus_juvenile", + "type": "MONSTER", + "copy-from": "mon_amargasaurus_juvenile", + "zombify_into": "mon_zarosaurus_juvenile", + "upgrades": { "age_grow": 365, "into": "mon_barosaurus" } + }, { "id": "mon_camarasaurus_juvenile", "type": "MONSTER", @@ -402,9 +502,8 @@ "type": "MONSTER", "copy-from": "mon_amargasaurus_juvenile", "zombify_into": "mon_zalamosaurus_juvenile", - "armor_bash": 7, - "armor_cut": 9, - "upgrades": { "age_grow": 365, "into": "mon_alamosaurus" } + "upgrades": { "age_grow": 365, "into": "mon_alamosaurus" }, + "armor": { "bash": 7, "cut": 9 } }, { "id": "mon_stegosaurus_juvenile", @@ -425,6 +524,12 @@ "copy-from": "mon_stegosaurus_juvenile", "upgrades": { "age_grow": 365, "into": "mon_hesperosaurus" } }, + { + "id": "mon_gastonia_juvenile", + "type": "MONSTER", + "copy-from": "mon_dyoplosaurus_juvenile", + "upgrades": { "age_grow": 316, "into": "mon_gastonia" } + }, { "id": "mon_gargoyleosaurus_juvenile", "type": "MONSTER", @@ -443,6 +548,12 @@ "copy-from": "mon_dyoplosaurus_juvenile", "upgrades": { "age_grow": 365, "into": "mon_nodosaurus" } }, + { + "id": "mon_panoplosaurus_juvenile", + "type": "MONSTER", + "copy-from": "mon_dyoplosaurus_juvenile", + "upgrades": { "age_grow": 266, "into": "mon_panoplosaurus" } + }, { "id": "mon_edmontonia_juvenile", "type": "MONSTER", @@ -467,6 +578,27 @@ "copy-from": "mon_dyoplosaurus_juvenile", "upgrades": { "age_grow": 365, "into": "mon_ankylosaurus" } }, + { + "id": "mon_euoplocephalus_juvenile", + "type": "MONSTER", + "copy-from": "mon_dyoplosaurus_juvenile", + "upgrades": { "age_grow": 333, "into": "mon_euoplocephalus" } + }, + { + "id": "mon_scolosaurus_juvenile", + "type": "MONSTER", + "copy-from": "mon_dyoplosaurus_juvenile", + "upgrades": { "age_grow": 365, "into": "mon_scolosaurus" } + }, + { + "id": "mon_tenontosaurus_juvenile", + "type": "MONSTER", + "name": "green and yellow four-legged juvenile", + "copy-from": "mon_stegosaurus_juvenile", + "color": "yellow", + "upgrades": { "age_grow": 133, "into": "mon_tenontosaurus" }, + "extend": { "flags": [ "SWIMS", "CAN_BE_CULLED" ] } + }, { "id": "mon_camptosaurus_juvenile", "type": "MONSTER", @@ -474,7 +606,7 @@ "copy-from": "mon_stegosaurus_juvenile", "color": "yellow", "upgrades": { "age_grow": 140, "into": "mon_camptosaurus" }, - "extend": { "flags": [ "SWIMS" ] } + "extend": { "flags": [ "SWIMS", "CAN_BE_CULLED" ] } }, { "id": "mon_hadrosaurus_juvenile", @@ -487,22 +619,28 @@ "upgrades": { "age_grow": 365, "into": "mon_hadrosaurus" } }, { - "id": "mon_parasaurolophus_juvenile", + "id": "mon_maiasaura_juvenile", "type": "MONSTER", "copy-from": "mon_hadrosaurus_juvenile", - "upgrades": { "age_grow": 365, "into": "mon_parasaurolophus" } + "upgrades": { "age_grow": 365, "into": "mon_maiasaura" } }, { - "id": "mon_corythosaurus_juvenile", + "id": "mon_gryposaurus_juvenile", "type": "MONSTER", "copy-from": "mon_hadrosaurus_juvenile", - "upgrades": { "age_grow": 365, "into": "mon_corythosaurus" } + "upgrades": { "age_grow": 365, "into": "mon_gryposaurus" } }, { - "id": "mon_maiasaura_juvenile", + "id": "mon_prosaurolophus_juvenile", "type": "MONSTER", "copy-from": "mon_hadrosaurus_juvenile", - "upgrades": { "age_grow": 365, "into": "mon_maiasaura" } + "upgrades": { "age_grow": 365, "into": "mon_prosaurolophus" } + }, + { + "id": "mon_saurolophus_juvenile", + "type": "MONSTER", + "copy-from": "mon_hadrosaurus_juvenile", + "upgrades": { "age_grow": 365, "into": "mon_saurolophus" } }, { "id": "mon_edmontosaurus_juvenile", @@ -511,10 +649,28 @@ "upgrades": { "age_grow": 365, "into": "mon_edmontosaurus" } }, { - "id": "mon_gryposaurus_juvenile", + "id": "mon_parasaurolophus_juvenile", "type": "MONSTER", "copy-from": "mon_hadrosaurus_juvenile", - "upgrades": { "age_grow": 365, "into": "mon_gryposaurus" } + "upgrades": { "age_grow": 365, "into": "mon_parasaurolophus" } + }, + { + "id": "mon_lambeosaurus_juvenile", + "type": "MONSTER", + "copy-from": "mon_hadrosaurus_juvenile", + "upgrades": { "age_grow": 365, "into": "mon_lambeosaurus" } + }, + { + "id": "mon_corythosaurus_juvenile", + "type": "MONSTER", + "copy-from": "mon_hadrosaurus_juvenile", + "upgrades": { "age_grow": 365, "into": "mon_corythosaurus" } + }, + { + "id": "mon_hypacrosaurus_juvenile", + "type": "MONSTER", + "copy-from": "mon_hadrosaurus_juvenile", + "upgrades": { "age_grow": 365, "into": "mon_hypacrosaurus" } }, { "id": "mon_pachycephalosaurus_juvenile", @@ -533,7 +689,7 @@ "bodytype": "bear", "hp": 30, "upgrades": { "age_grow": 17, "into": "mon_leptoceratops" }, - "extend": { "flags": [ "CANPLAY", "NO_BREED" ] } + "extend": { "flags": [ "CANPLAY", "NO_BREED", "CAN_BE_CULLED" ] } }, { "id": "mon_zuniceratops_juvenile", @@ -545,6 +701,16 @@ "weight": "90 kg", "hp": 55, "upgrades": { "age_grow": 29, "into": "mon_pachyrhinosaurus" }, + "extend": { "flags": [ "CANPLAY", "NO_BREED", "CAN_BE_CULLED" ] } + }, + { + "id": "mon_styracosaurus_juvenile", + "type": "MONSTER", + "name": "styracosaurus juvenile", + "description": "A huge four-legged plant-eating dinosaur juvenile with a beak, a bony crest with spikes, and a horn above the nose.", + "copy-from": "mon_styracosaurus", + "hp": 90, + "upgrades": { "age_grow": 365, "into": "mon_styracosaurus" }, "extend": { "flags": [ "CANPLAY", "NO_BREED" ] } }, { @@ -557,6 +723,28 @@ "upgrades": { "age_grow": 365, "into": "mon_centrosaurus" }, "extend": { "flags": [ "CANPLAY", "NO_BREED" ] } }, + { + "id": "mon_einiosaurus_juvenile", + "type": "MONSTER", + "name": "einiosaurus juvenile", + "description": "A four-legged plant-eating dinosaur juvenile with a beak and a horn curved forward above the nose.", + "copy-from": "mon_einiosaurus", + "volume": "650 L", + "weight": "650 kg", + "hp": 75, + "upgrades": { "age_grow": 220, "into": "mon_einiosaurus" }, + "extend": { "flags": [ "CANPLAY", "NO_BREED" ] } + }, + { + "id": "mon_achelousaurus_juvenile", + "type": "MONSTER", + "name": "achelousaurus juvenile", + "description": "A four-legged plant-eating dinosaur juvenile with a tall bony crest with two curved spikes and three rough bosses above the eyes and nose as well as a short tail and hooked beak.", + "copy-from": "mon_achelousaurus", + "hp": 125, + "upgrades": { "age_grow": 365, "into": "mon_achelousaurus" }, + "extend": { "flags": [ "CANPLAY", "NO_BREED" ] } + }, { "id": "mon_pachyrhinosaurus_juvenile", "type": "MONSTER", @@ -567,17 +755,28 @@ "upgrades": { "age_grow": 365, "into": "mon_pachyrhinosaurus" }, "extend": { "flags": [ "CANPLAY", "NO_BREED" ] } }, + { + "id": "mon_chasmosaurus_juvenile", + "type": "MONSTER", + "copy-from": "mon_triceratops_juvenile", + "hp": 90, + "upgrades": { "age_grow": 365, "into": "mon_chasmosaurus" } + }, { "id": "mon_pentaceratops_juvenile", "type": "MONSTER", "copy-from": "mon_triceratops_juvenile", + "hp": 115, "upgrades": { "age_grow": 365, "into": "mon_pentaceratops" } }, { "id": "mon_kosmoceratops_juvenile", "type": "MONSTER", "copy-from": "mon_triceratops_juvenile", - "upgrades": { "age_grow": 365, "into": "mon_kosmoceratops" } + "volume": "600 L", + "weight": "600 kg", + "hp": 75, + "upgrades": { "age_grow": 200, "into": "mon_kosmoceratops" } }, { "id": "mon_torosaurus_juvenile", @@ -603,7 +802,7 @@ "copy-from": "mon_thescelosaurus", "hp": 70, "upgrades": { "age_grow": 60, "into": "mon_thescelosaurus" }, - "extend": { "flags": [ "CANPLAY", "NO_BREED" ] } + "extend": { "flags": [ "CANPLAY", "NO_BREED", "CAN_BE_CULLED" ] } }, { "id": "mon_pteranodon_juvenile", @@ -615,7 +814,19 @@ "color": "light_gray_yellow", "upgrades": { "age_grow": 14, "into": "mon_pteranodon" }, "petfood": { "food": [ "DINOFOOD_B" ] }, - "flags": [ "SEES", "HEARS", "SMELLS", "FLIES", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "CANPLAY", "NO_BREED", "HIT_AND_RUN" ] + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "FLIES", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "WARM", + "CANPLAY", + "NO_BREED", + "HIT_AND_RUN", + "CAN_BE_CULLED" + ] }, { "id": "mon_quetzalcoatlus_juvenile", diff --git a/data/Mainline_mods/Mods/DinoMod/monsters/mutant_dino.json b/data/Mainline_mods/Mods/DinoMod/monsters/mutant_dino.json new file mode 100644 index 000000000..327e68105 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/monsters/mutant_dino.json @@ -0,0 +1,76 @@ +[ + { + "type": "MONSTER", + "id": "mon_hadrosaurus_mutant1", + "name": { "str_sp": "fungal dusted hadrosaur" }, + "looks_like": "mon_parasaurolophus", + "species": "DINOSAUR", + "default_faction": "hadrosaur", + "aggro_character": false, + "symbol": "D", + "color": "yellow", + "bodytype": "bear", + "material": [ "flesh" ], + "aggression": -10, + "morale": 25, + "melee_skill": 4, + "dodge": 4, + "families": [ "prof_intro_biology", "prof_wp_dino" ], + "weakpoint_sets": [ "wps_dinosaur_body" ], + "baby_flags": [ "SPRING", "SUMMER" ], + "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "PET_MOUNTABLE", + "PET_WONT_FOLLOW", + "BASHES", + "DESTROYS", + "PUSH_MON", + "SWIMS", + "NO_FUNG_DMG" + ], + "harvest": "mammal_large_leather", + "fear_triggers": [ "FRIEND_DIED" ], + "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], + "categories": [ "DINOSAUR", "WILDLIFE" ], + "volume": "1000 L", + "weight": "1000 kg", + "//": "When large weights and volumes are fixed this should be 3000 L and 3000 kg", + "speed": 80, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "hp": 250, + "description": "A bulky, beaked dinosaur with hooved front legs. The head has been dusted with fungal spores and an angry red rash is forming around them.", + "special_attacks": [ + { "type": "leap", "cooldown": 10, "max_range": 2, "allow_no_target": true }, + { "id": "stomp_DinoMod", "cooldown": 20, "damage_max_instance": [ { "damage_type": "bash", "amount": 8 } ] } + ], + "upgrades": { "age_grow": 120, "into": "mon_hadrosaurus_mutant2" }, + "armor": { "bash": 4, "cut": 4, "bullet": 3 } + }, + { + "type": "MONSTER", + "id": "mon_hadrosaurus_mutant2", + "name": { "str_sp": "ravenous hadrosaur" }, + "looks_like": "mon_parasaurolophus", + "species": "DINOSAUR", + "default_faction": "hadrosaur", + "aggro_character": false, + "symbol": "D", + "color": "yellow", + "bodytype": "bear", + "copy-from": "mon_hadrosaurus_mutant1", + "aggression": 10, + "speed": 100, + "hp": 200, + "melee_dice": 4, + "description": "A bulky, beaked dinosaur with hooved front legs and two heads. The four eyes are wide and rolling.", + "upgrades": { }, + "harvest": "mutant_bird_flightless" + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/monsters/zed-dinosaur.json b/data/Mainline_mods/Mods/DinoMod/monsters/zed-dinosaur.json index 2ccf9e0fe..d06a3b21e 100644 --- a/data/Mainline_mods/Mods/DinoMod/monsters/zed-dinosaur.json +++ b/data/Mainline_mods/Mods/DinoMod/monsters/zed-dinosaur.json @@ -14,16 +14,14 @@ "melee_dice": 2, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 120, "description": "The shuffling corpse of a medium-sized dinosaur with sharp teeth and two prominent bony crests on its head, with ragged strips of ripped flesh hanging down like a frill.", "burn_into": "mon_zilophosaurus_scorched", "fungalize_into": "mon_zilophosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zilophosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zilophosaurus_UPGRADE" }, + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -39,9 +37,6 @@ "melee_dice": 2, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 5, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 135, @@ -49,7 +44,8 @@ "burn_into": "mon_zeratosaurus_scorched", "fungalize_into": "mon_zeratosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zeratosaurus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM", "SWIMS" ] + "flags": [ "SEES", "SMELLS", "HEARS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM", "SWIMS" ], + "armor": { "bash": 4, "cut": 5, "bullet": 2 } }, { "type": "MONSTER", @@ -72,13 +68,12 @@ "melee_dice": 4, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 6, - "armor_cut": 8, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 430, "description": "Enormous putrid dinosaur corpse with a ferocious crocodile-like head, oozing black eyes, and a tattered sail on its back.", - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], + "grab_strength": 100, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "id": "teeth_zino_max", "cooldown": 25 } ], "burn_into": "mon_zpinosaurus_scorched", "fungalize_into": "mon_zpinosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zpinosaurus_UPGRADE" }, @@ -86,6 +81,7 @@ "SEES", "SMELLS", "HEARS", + "GRABS", "POISON", "STUMBLES", "BASHES", @@ -99,7 +95,8 @@ "vision_night": 3, "harvest": "zed_dino_leather", "dissect": "dissect_dino_large_pred", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 6, "cut": 8 } }, { "type": "MONSTER", @@ -123,22 +120,34 @@ "melee_dice": 4, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], - "armor_bash": 4, - "armor_cut": 3, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 310, "description": "Putrid dinosaur corpse with a large head, long sharp teeth, oozing black eyes, and a long tail.", - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], + "grab_strength": 100, + "special_attacks": [ { "id": "bite_grab" }, { "id": "teeth_zino_mid", "cooldown": 10 } ], "burn_into": "mon_zorvosaurus_scorched", "fungalize_into": "mon_zorvosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zorvosaurus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "BASHES", "DESTROYS", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "flags": [ + "SEES", + "SMELLS", + "GRABS", + "HEARS", + "POISON", + "STUMBLES", + "BASHES", + "DESTROYS", + "NO_BREATHE", + "REVIVES", + "FILTHY", + "WARM" + ], "vision_night": 3, "harvest": "zed_dino_leather", "dissect": "dissect_dino_large_pred", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 4, "cut": 3, "bullet": 2 } }, { "type": "MONSTER", @@ -154,18 +163,17 @@ "melee_dice": 2, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 180, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], + "grab_strength": 10750, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "id": "teeth_zino_mid", "cooldown": 10 } ], "description": "The shambling corpse of a large predatory bipedal dinosaur with a mouth full of sharp serrated teeth.", "burn_into": "mon_zallosaurus_scorched", "fungalize_into": "mon_zallosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zallosaurus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "BASHES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "GRABS", "STUMBLES", "BASHES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -181,18 +189,41 @@ "melee_dice": 4, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 11, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 300, - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 10 }, [ "LUNGE", 20 ] ], + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab" }, { "id": "teeth_zino_mid", "cooldown": 10 }, [ "LUNGE", 20 ] ], "description": "The shambling corpse of a huge, bipedal dinosaur predator, with a tall ridge running down the length of its back covered with heavy muscles. Its teeth are curved and serrated like sawblades.", "burn_into": "mon_zacrocanthosaurus_scorched", "fungalize_into": "mon_zacrocanthosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zacrocanthosaurus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "BASHES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "GRABS", "HEARS", "POISON", "STUMBLES", "BASHES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "armor": { "bash": 11, "cut": 4, "bullet": 2 } + }, + { + "type": "MONSTER", + "id": "mon_ziganotosaurus", + "name": { "str": "giganotosaurus zombie" }, + "copy-from": "mon_zyrannosaurus", + "looks_like": "mon_allosaurus", + "volume": "1000 L", + "weight": "1000 kg", + "//": "When large weights and volumes are fixed this should be 10000 L and 10000 kg", + "speed": 100, + "melee_dice": 5, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "weakpoint_sets": [ "wps_dinosaur_body" ], + "hp": 400, + "special_attacks": [ { "id": "bite_grab" }, { "id": "teeth_zino_mid", "cooldown": 10 }, [ "LUNGE", 20 ] ], + "description": "The shambling corpse of a huge, bipedal dinosaur predator with a wide, flat head and strong chin. Its teeth are curved and serrated like sawblades.", + "burn_into": "mon_ziganotosaurus_scorched", + "fungalize_into": "mon_ziganotosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_ziganotosaurus_UPGRADE" }, + "flags": [ "SEES", "SMELLS", "GRABS", "HEARS", "POISON", "STUMBLES", "BASHES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -208,18 +239,17 @@ "melee_dice": 2, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 300, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ], [ "RANGED_PULL", 20 ], [ "GRAB_DRAG", 10 ] ], + "grab_strength": 100, + "special_attacks": [ { "id": "ranged_pull", "cooldown": 20 }, [ "BIO_OP_TAKEDOWN", 20 ], { "id": "grab_drag" }, { "id": "drag_followup" } ], "description": "The shambling corpse of a huge, bipedal dinosaur predator with long claws and strong arms for grappling.", "burn_into": "mon_ziats_scorched", "fungalize_into": "mon_ziats_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_ziats_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "BASHES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "BASHES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -229,9 +259,10 @@ "//": "When large weights and volumes are fixed this should be 1500 L and 1500 kg", "hp": 180, "description": "Large jaws drooling black liquid lifted over a shuffling dinosaur corpse.", + "grab_strength": 50, "special_attacks": [ - { "type": "bite", "cooldown": 15 }, - [ "GRAB", 15 ], + { "id": "bite_grab", "cooldown": 15 }, + { "id": "teeth_zino_mid", "cooldown": 15 }, { "type": "leap", "cooldown": 20, "max_range": 5, "allow_no_target": true } ], "burn_into": "mon_zryptosaurus_scorched", @@ -248,7 +279,13 @@ "melee_damage": [ { "damage_type": "cut", "amount": 14 } ], "hp": 170, "description": "Massive jaws drooling black liquid lifted over a huge shuffling dinosaur corpse.", - "special_attacks": [ { "type": "bite", "cooldown": 15 }, [ "GRAB", 15 ], [ "scratch", 20 ], [ "LUNGE", 20 ] ], + "grab_strength": 75, + "special_attacks": [ + { "id": "bite_grab", "cooldown": 15 }, + { "id": "teeth_zino_mid", "cooldown": 15 }, + [ "scratch", 20 ], + [ "LUNGE", 20 ] + ], "burn_into": "mon_zappalachiosaurus_scorched", "fungalize_into": "mon_zappalachiosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zappalachiosaurus_UPGRADE" } @@ -264,7 +301,13 @@ "melee_damage": [ { "damage_type": "cut", "amount": 13 } ], "hp": 250, "description": "Massive jaws drooling black liquid lifted over a huge shuffling dinosaur corpse.", - "special_attacks": [ { "type": "bite", "cooldown": 10 }, [ "GRAB", 15 ], [ "scratch", 20 ], [ "LUNGE", 15 ] ], + "grab_strength": 75, + "special_attacks": [ + { "id": "bite_grab", "cooldown": 15 }, + { "id": "teeth_zino_mid", "cooldown": 10 }, + [ "scratch", 20 ], + [ "LUNGE", 15 ] + ], "burn_into": "mon_zorgosaurus_scorched", "fungalize_into": "mon_zorgosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zorgosaurus_UPGRADE" } @@ -278,15 +321,20 @@ "melee_dice": 3, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 14 } ], - "armor_bash": 5, - "armor_cut": 5, - "armor_bullet": 3, "hp": 230, - "special_attacks": [ { "type": "bite", "cooldown": 5 }, [ "GRAB", 7 ], [ "scratch", 20 ], [ "LUNGE", 5 ], [ "LONGSWIPE", 25 ] ], + "grab_strength": 75, + "special_attacks": [ + { "id": "bite_grab", "cooldown": 7 }, + { "id": "teeth_zino_mid", "cooldown": 5 }, + [ "scratch", 20 ], + [ "LUNGE", 5 ], + [ "LONGSWIPE", 25 ] + ], "description": "Massive jaws drooling black liquid, lifted over grasping claws by a huge shuffling dinosaur corpse.", "burn_into": "mon_zalbertosaurus_scorched", "fungalize_into": "mon_zalbertosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zalbertosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zalbertosaurus_UPGRADE" }, + "armor": { "bash": 5, "cut": 5, "bullet": 3 } }, { "type": "MONSTER", @@ -301,15 +349,15 @@ "melee_dice": 3, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 13 } ], - "armor_bash": 5, - "armor_cut": 5, - "armor_bullet": 3, "hp": 120, "description": "Massive, long jaws drooling black liquid, lifted by a huge but shuffling dinosaur corpse.", + "grab_strength": 100, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 }, [ "scratch", 10 ], { "id": "teeth_zino_mid", "cooldown": 5 } ], "burn_into": "mon_zianzhousaurus_scorched", "fungalize_into": "mon_zianzhousaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zianzhousaurus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "HEARS", "GRABS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "armor": { "bash": 5, "cut": 5, "bullet": 3 } }, { "type": "MONSTER", @@ -321,6 +369,8 @@ "color": "white", "hp": 170, "description": "Huge jaws with long sharp teeth drooling black liquid over white feathers, lifted by a huge but shuffling dinosaur corpse.", + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 }, [ "scratch", 10 ], { "id": "teeth_zino_mid", "cooldown": 10 } ], "burn_into": "mon_zanuqsaurus_scorched", "fungalize_into": "mon_zanuqsaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zanuqsaurus_UPGRADE" } @@ -340,7 +390,7 @@ "burn_into": "mon_zaspletosaurus_scorched", "fungalize_into": "mon_zaspletosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zaspletosaurus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "HEARS", "GRABS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ] }, { "type": "MONSTER", @@ -363,13 +413,12 @@ "melee_dice": 5, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 10 } ], - "armor_bash": 6, - "armor_cut": 8, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_lg_theropod_body" ], "hp": 400, "description": "Massive piles of ragged, stinking flesh lifting enormous sharp teeth.", - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 7 ], { "type": "bite", "cooldown": 5 } ], + "grab_strength": 100, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 }, [ "scratch", 10 ], { "id": "teeth_zino_max", "cooldown": 5 } ], "burn_into": "mon_zyrannosaurus_scorched", "fungalize_into": "mon_zyrannosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zyrannosaurus_UPGRADE" }, @@ -380,6 +429,7 @@ "PET_MOUNTABLE", "POISON", "STUMBLES", + "GRABS", "BASHES", "DESTROYS", "NO_BREATHE", @@ -390,7 +440,8 @@ "vision_night": 3, "harvest": "zed_dino_feather", "dissect": "dissect_dino_large_pred", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 6, "cut": 8 } }, { "type": "MONSTER", @@ -424,21 +475,20 @@ "melee_dice": 1, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 2, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 120, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], + "grab_strength": 35, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 10 } ], "description": "The shuffling corpse of a medium-sized bipedal dinosaur, covered with tattered feathers and black, putrid liquid.", "burn_into": "mon_zallimimus_scorched", "fungalize_into": "mon_zallimimus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zallimimus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "PET_MOUNTABLE", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "flags": [ "SEES", "SMELLS", "HEARS", "GRABS", "PET_MOUNTABLE", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], "vision_night": 3, "harvest": "zed_dino_feather", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 2, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -469,6 +519,34 @@ "upgrades": { "half_life": 30, "into_group": "GROUP_zornithomimus_UPGRADE" }, "extend": { "flags": [ "CLIMBS" ] } }, + { + "type": "MONSTER", + "id": "mon_zerizinosaurus", + "name": { "str": "therizinosaurus zombie" }, + "copy-from": "mon_zeinonychus", + "looks_like": "mon_therizinosaurus", + "volume": "1000 L", + "weight": "1000 kg", + "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", + "speed": 120, + "attack_cost": 120, + "melee_skill": 3, + "melee_dice": 3, + "melee_dice_sides": 6, + "hp": 320, + "grab_strength": 100, + "special_attacks": [ + { "id": "grab" }, + { "id": "scratch_humanoid", "cooldown": 10 }, + { "type": "bite", "cooldown": 10 }, + [ "LONGSWIPE", 20 ] + ], + "description": "The shuffling corpse of a huge bipedal dinosaur covered with tattered feathers and black putrid liquid. Long claws protrude from its hands.", + "burn_into": "mon_zerizinosaurus_scorched", + "fungalize_into": "mon_zerizinosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zerizinosaurus_UPGRADE" }, + "armor": { "bash": 4, "cut": 4, "bullet": 2 } + }, { "type": "MONSTER", "id": "mon_zothronychus", @@ -482,15 +560,19 @@ "melee_skill": 3, "melee_dice": 4, "melee_dice_sides": 4, - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 2, "hp": 140, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 }, [ "LONGSWIPE", 30 ] ], + "grab_strength": 50, + "special_attacks": [ + { "id": "grab" }, + { "id": "scratch_humanoid", "cooldown": 10 }, + { "type": "bite", "cooldown": 10 }, + [ "LONGSWIPE", 30 ] + ], "description": "The shuffling corpse of a large-sized bipedal dinosaur covered with tattered feathers and black putrid liquid. Sharp curved claws protrude from its hands.", "burn_into": "mon_zothronychus_scorched", "fungalize_into": "mon_zothronychus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zothronychus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zothronychus_UPGRADE" }, + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -504,15 +586,19 @@ "melee_skill": 3, "melee_dice": 4, "melee_dice_sides": 4, - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 2, "hp": 120, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 }, [ "LONGSWIPE", 30 ] ], + "grab_strength": 35, + "special_attacks": [ + { "id": "grab" }, + { "id": "scratch_humanoid", "cooldown": 10 }, + { "type": "bite", "cooldown": 20 }, + [ "LONGSWIPE", 30 ] + ], "description": "The shuffling corpse of a large bipedal dinosaur covered with tattered feathers and black putrid liquid. Long claws protrude from its hands.", "burn_into": "mon_zanzu_scorched", "fungalize_into": "mon_zanzu_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zanzu_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zanzu_UPGRADE" }, + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -535,27 +621,26 @@ "melee_dice": 1, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 2, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 45, + "grab_strength": 20, "special_attacks": [ + { "id": "bite_grab" }, { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "scratch", 10 ], - [ "GRAB", 10 ], - { "type": "bite", "cooldown": 5 } + { "id": "teeth_zino_mid", "cooldown": 5 } ], "description": "The shuffling corpse of a medium-sized bipedal dinosaur covered with tattered feathers and black putrid liquid. Both feet brandish a large sickle-like claw.", "burn_into": "mon_zeinonychus_scorched", "fungalize_into": "mon_zeinonychus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zeinonychus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "KEENNOSE", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "flags": [ "SEES", "SMELLS", "HEARS", "GRABS", "KEENNOSE", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], "vision_day": 30, "vision_night": 10, "harvest": "zed_dino_feather", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 2, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -571,14 +656,12 @@ "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], - "armor_bash": 3, - "armor_cut": 4, - "armor_bullet": 2, "hp": 130, "description": "The swaying, hopping corpse of a large bipedal dinosaur with feathered arms, a long tail, and long, sharp scythe-like claws.", "burn_into": "mon_zutahraptor_scorched", "fungalize_into": "mon_zutahraptor_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zutahraptor_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zutahraptor_UPGRADE" }, + "armor": { "bash": 3, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -592,6 +675,21 @@ "fungalize_into": "mon_zarahsaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zarahsaurus_UPGRADE" } }, + { + "type": "MONSTER", + "id": "mon_zanchisaurus", + "name": { "str_sp": "anchisaurus zombie" }, + "copy-from": "mon_zissi", + "volume": "30 L", + "weight": "30 kg", + "hp": 60, + "description": "Long-necked, four-legged dinosaur corpse. The neck is bent at a disturbing angle and leaking black ichor.", + "burn_into": "mon_zanchisaurus_scorched", + "fungalize_into": "mon_zanchisaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zanchisaurus_UPGRADE" }, + "grab_strength": 20, + "special_attacks": [ { "id": "bite_grab", "cooldown": 20 }, [ "scratch", 10 ], { "type": "bite", "cooldown": 10 } ] + }, { "type": "MONSTER", "id": "mon_zissi", @@ -603,21 +701,19 @@ "melee_dice": 4, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "bash", "amount": 4 } ], - "armor_bash": 8, - "armor_cut": 8, - "armor_bullet": 6, "hp": 175, "description": "Large, long-necked, two-legged dinosaur corpse with a long tail.", "burn_into": "mon_zissi_scorched", "fungalize_into": "mon_zissi_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zissi_UPGRADE" }, + "grab_strength": 20, "special_attacks": [ + { "id": "bite_grab", "cooldown": 20 }, [ "scratch", 10 ], - [ "GRAB", 20 ], - { "type": "bite", "cooldown": 10 }, { "id": "stomp_DinoMod", "cooldown": 20, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] } ], - "flags": [ "SEES", "SMELLS", "HEARS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "GRABS", "HEARS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "armor": { "bash": 8, "cut": 8, "bullet": 6 } }, { "type": "MONSTER", @@ -649,15 +745,13 @@ "melee_dice": 4, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "bash", "amount": 4 } ], - "armor_bash": 8, - "armor_cut": 8, - "armor_bullet": 6, "hp": 250, "description": "Huge, long-necked, four-legged dinosaur corpse with two parallel rows of tall spines down its neck and back and a whip-like tail.", "burn_into": "mon_zamargasaurus_scorched", "fungalize_into": "mon_zamargasaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zamargasaurus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ] + "flags": [ "SEES", "SMELLS", "HEARS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM" ], + "armor": { "bash": 8, "cut": 8, "bullet": 6 } }, { "type": "MONSTER", @@ -673,9 +767,6 @@ "attack_cost": 65, "melee_dice": 4, "melee_dice_sides": 4, - "armor_bash": 6, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_sauropod_body" ], "hp": 480, @@ -686,7 +777,8 @@ "description": "A massive, long-necked, four-legged dinosaur corpse with a long, whip-like tail. The head is still upright and the neck looks like it would still make a good, strong club.", "burn_into": "mon_zapatosaurus_scorched", "fungalize_into": "mon_zapatosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zapatosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zapatosaurus_UPGRADE" }, + "armor": { "bash": 6, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -716,9 +808,6 @@ "attack_cost": 50, "melee_dice": 4, "melee_dice_sides": 4, - "armor_bash": 5, - "armor_cut": 4, - "armor_bullet": 2, "special_attacks": [ { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, [ "tailsmash_DinoMod", 30 ] @@ -726,7 +815,24 @@ "description": "Huge, long-necked, four-legged dinosaur with a long, whip-like tail and a tiny head with vacant white eyes. Sways and staggers.", "burn_into": "mon_ziplodocus_scorched", "fungalize_into": "mon_ziplodocus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_ziplodocus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_ziplodocus_UPGRADE" }, + "armor": { "bash": 5, "cut": 4, "bullet": 2 } + }, + { + "type": "MONSTER", + "id": "mon_zarosaurus", + "name": { "str": "barosaurus zombie" }, + "copy-from": "mon_ziplodocus", + "looks_like": "mon_apatosaurus", + "//": "When large weights and volumes are fixed this should be 16000 L and 16000 kg", + "special_attacks": [ + { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "cut", "amount": 14 } ] }, + [ "tailsmash_DinoMod", 50 ] + ], + "description": "Huge, long-necked, four-legged dinosaur corpse with a long, whip-like tail. There is a large claw on each foreleg.", + "burn_into": "mon_zamarasaurus_scorched", + "fungalize_into": "mon_zamarasaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zamarasaurus_UPGRADE" } }, { "type": "MONSTER", @@ -753,14 +859,12 @@ "speed": 40, "attack_cost": 40, "melee_dice": 6, - "armor_bash": 8, - "armor_cut": 8, - "armor_bullet": 3, "hp": 485, "description": "Gigantic, long-necked, four-legged dinosaur corpse with longer forelegs and a whip-like tail.", "burn_into": "mon_zrachiosaurus_scorched", "fungalize_into": "mon_zrachiosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zrachiosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zrachiosaurus_UPGRADE" }, + "armor": { "bash": 8, "cut": 8, "bullet": 3 } }, { "type": "MONSTER", @@ -770,14 +874,12 @@ "looks_like": "mon_apatosaurus", "//": "When large weights and volumes are fixed this should be 70000 L and 70000 kg", "melee_dice": 5, - "armor_bash": 15, - "armor_cut": 19, - "armor_bullet": 3, "hp": 500, "description": "Gigantic, long-necked, four-legged dinosaur corpse, protected by natural bone armor and a spiked tail.", "burn_into": "mon_zalamosaurus_scorched", "fungalize_into": "mon_zalamosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zalamosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zalamosaurus_UPGRADE" }, + "armor": { "bash": 15, "cut": 19, "bullet": 3 } }, { "type": "MONSTER", @@ -795,23 +897,22 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "stab", "amount": 1 } ], - "armor_bash": 4, - "armor_cut": 13, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored" ], "weakpoint_sets": [ "wps_ankylosaurid_body" ], "hp": 275, + "grab_strength": 50, "special_attacks": [ + { "id": "bite_grab" }, { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 10 } ] }, [ "scratch", 10 ], - [ "GRAB", 10 ], - { "type": "bite", "cooldown": 5 }, + { "type": "bite", "cooldown": 20 }, [ "tailsmash_ankyl_DinoMod", 30 ] ], "description": "A large, shambling quadruped dinosaur corpse, dragging with the weight of the plates on its back - waving a much livelier-looking spiked tail.", "burn_into": "mon_ztegosaurus_scorched", "fungalize_into": "mon_ztegosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_ztegosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_ztegosaurus_UPGRADE" }, + "armor": { "bash": 4, "cut": 13, "bullet": 2 } }, { "type": "MONSTER", @@ -821,11 +922,23 @@ "looks_like": "mon_ztegosaurus", "//": "When large weights and volumes are fixed this should be 2900 L and 3500 kg", "hp": 450, - "armor_bash": 5, - "armor_cut": 15, "burn_into": "mon_zesperosaurus_scorched", "fungalize_into": "mon_zesperosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zesperosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zesperosaurus_UPGRADE" }, + "armor": { "bash": 5, "cut": 15, "bullet": 2 } + }, + { + "type": "MONSTER", + "id": "mon_zastonia", + "name": { "str": "gastonia zombie" }, + "copy-from": "mon_zodosaurus", + "looks_like": "mon_nodosaurus", + "//": "When large weights and volumes are fixed this should be 1575 L and 1900 kg", + "hp": 230, + "description": "This heavily armored four legged dinosaur corpse has a long tail, a beak, and large shoulder spikes. Its eyes ooze black, putrid tears.", + "burn_into": "mon_zastonia_scorched", + "fungalize_into": "mon_zastonia_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zastonia_UPGRADE" } }, { "type": "MONSTER", @@ -838,13 +951,11 @@ "hp": 135, "speed": 40, "attack_cost": 40, - "armor_bash": 11, - "armor_cut": 13, - "armor_bullet": 6, - "description": "This heavily-armored dinosaur corpse looks like a giant prehistoric armadillo.", + "description": "This lightly armored four legged dinosaur corpse has a rigid spiked tail, a beak, and sturdy spikes along the sides. Its eyes ooze black, putrid tears.", "burn_into": "mon_zargoyleosaurus_scorched", "fungalize_into": "mon_zargoyleosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zargoyleosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zargoyleosaurus_UPGRADE" }, + "armor": { "bash": 11, "cut": 13, "bullet": 6 } }, { "type": "MONSTER", @@ -864,17 +975,32 @@ "id": "mon_zodosaurus", "name": { "str": "nodosaurus zombie" }, "copy-from": "mon_zankylosaurus", - "looks_like": "mon_ankylosaurus", + "looks_like": "mon_nodosaurus", "//": "When large weights and volumes are fixed this should be 2900 L and 3500 kg", "hp": 270, - "armor_bash": 21, - "armor_cut": 23, - "armor_bullet": 11, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], - "description": "This heavily-armored dinosaur corpse looks like a giant prehistoric armadillo.", + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 20 } ], + "description": "This heavily armored four legged dinosaur corpse has a beak and large bony plates covering the back. Its eyes ooze black, putrid tears.", "burn_into": "mon_zodosaurus_scorched", "fungalize_into": "mon_zodosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zodosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zodosaurus_UPGRADE" }, + "armor": { "bash": 21, "cut": 23, "bullet": 11 } + }, + { + "type": "MONSTER", + "id": "mon_zanoplosaurus", + "name": { "str": "panoplosaurus zombie" }, + "copy-from": "mon_zodosaurus", + "looks_like": "mon_nodosaurus", + "//": "When large weights and volumes are fixed this should be 1330 L and 1600 kg", + "hp": 200, + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 20 } ], + "description": "This heavily armored four legged dinosaur corpse has a lumpy armored head with a beak and thick plates protecting the cheeks, thick back armor, and small short spikes along the sides. Its eyes ooze black, putrid tears.", + "burn_into": "mon_zanoplosaurus_scorched", + "fungalize_into": "mon_zanoplosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zanoplosaurus_UPGRADE" }, + "armor": { "bash": 21, "cut": 23, "bullet": 11 } }, { "type": "MONSTER", @@ -885,14 +1011,13 @@ "//": "When large weights and volumes are fixed this should be 2500 L and 3000 kg", "hp": 275, "melee_damage": [ { "damage_type": "stab", "amount": 10 } ], - "armor_bash": 21, - "armor_cut": 23, - "armor_bullet": 11, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], - "description": "This heavily-armored dinosaur corpse is covered with small ridged bony plates with long, bony spikes.", + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 20 } ], + "description": "This heavily-armored dinosaur corpse is covered with small ridged bony plates with long, bony spikes. Its eyes ooze black, putrid tears.", "burn_into": "mon_zedmontonia_scorched", "fungalize_into": "mon_zedmontonia_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zedmontonia_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zedmontonia_UPGRADE" }, + "armor": { "bash": 21, "cut": 23, "bullet": 11 } }, { "type": "MONSTER", @@ -902,7 +1027,7 @@ "looks_like": "mon_zyoplosaurus", "//": "When large weights and volumes are fixed this should be 2000 L and 2500 kg", "hp": 250, - "description": "This four-legged armored dinosaur corpse has horns on the head and large spikes in rows along the back and side.", + "description": "This four-legged armored dinosaur corpse has horns on the head and large spikes in rows along the back and side. Its eyes ooze black, putrid tears.", "burn_into": "mon_zzuul_scorched", "fungalize_into": "mon_zzuul_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zzuul_UPGRADE" } @@ -915,8 +1040,9 @@ "looks_like": "mon_ankylosaurus", "//": "When large weights and volumes are fixed this should be 1650 L and 2000 kg", "hp": 190, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 }, [ "tailsmash_ankyl_DinoMod", 30 ] ], - "description": "This armored dinosaur corpse looks like a giant prehistoric armadillo. Its tail ends in a spiked club of bone.", + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 20 }, [ "tailsmash_ankyl_DinoMod", 30 ] ], + "description": "This armored dinosaur corpse looks like a giant prehistoric armadillo. Its tail ends in a spiked club of bone. Its eyes ooze black, putrid tears.", "burn_into": "mon_zyoplosaurus_scorched", "fungalize_into": "mon_zyoplosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zyoplosaurus_UPGRADE" } @@ -943,21 +1069,122 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "stab", "amount": 1 } ], - "armor_bash": 16, - "armor_cut": 21, - "armor_bullet": 7, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored" ], "weakpoint_sets": [ "wps_ankylosaurid_body" ], "hp": 375, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 }, [ "tailsmash_ankyl_DinoMod", 30 ] ], - "description": "The shuffling corpse of what looks like a giant armadillo with peeling armored plates and black, glistening eyes. Its tail ends in a massive spiked club of bone.", + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 5 }, [ "tailsmash_ankyl_DinoMod", 30 ] ], + "description": "The shuffling corpse of a four legged dinosaur with peeling armored plates, a beak, and black, glistening eyes. Its tail ends in a massive spiked club of bone.", "burn_into": "mon_zankylosaurus_scorched", "fungalize_into": "mon_zankylosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zankylosaurus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "BASHES" ], + "flags": [ "SEES", "SMELLS", "HEARS", "GRABS", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "BASHES" ], "vision_night": 3, "harvest": "zed_dino_leather", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 16, "cut": 21, "bullet": 7 } + }, + { + "type": "MONSTER", + "id": "mon_zuoplocephalus", + "name": { "str": "euoplocephalus zombie" }, + "copy-from": "mon_zankylosaurus", + "looks_like": "mon_ankylosaurus", + "//": "When large weights and volumes are fixed this should be 1650 L and 2000 kg", + "hp": 240, + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 5 }, [ "tailsmash_ankyl_DinoMod", 30 ] ], + "description": "This heavily armored four legged dinosaur corpse has a horny beak, two bony rings protecting the neck, and a long tail ending in a heavy club of bone. Its eyes ooze black, putrid tears.", + "burn_into": "mon_zuoplocephalus_scorched", + "fungalize_into": "mon_zuoplocephalus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zuoplocephalus_UPGRADE" } + }, + { + "type": "MONSTER", + "id": "mon_zcolosaurus", + "name": { "str": "scolosaurus zombie" }, + "copy-from": "mon_zankylosaurus", + "looks_like": "mon_ankylosaurus", + "//": "When large weights and volumes are fixed this should be 1650 L and 2000 kg", + "hp": 250, + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 5 }, [ "tailsmash_ankyl_DinoMod", 30 ] ], + "description": "This heavily armored four legged dinosaur corpse has several long spikes along the back and a long spiked tail ending in a club of bone. Its eyes ooze black, putrid tears.", + "burn_into": "mon_zcolosaurus_scorched", + "fungalize_into": "mon_zcolosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zcolosaurus_UPGRADE" } + }, + { + "type": "MONSTER", + "id": "mon_zenontosaurus", + "name": { "str": "tenontosaurus zombie" }, + "looks_like": "mon_parasaurolophus", + "species": [ "ZOMBIE" ], + "default_faction": "zombie", + "symbol": "Z", + "color": "green", + "volume": "800 L", + "weight": "800 kg", + "bodytype": "bear", + "material": [ "flesh" ], + "aggression": 100, + "morale": 100, + "speed": 120, + "attack_cost": 120, + "melee_skill": 3, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "weakpoint_sets": [ "wps_dinosaur_body" ], + "hp": 140, + "grab_strength": 35, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], + "description": "The shuffling corpse of a feathered dinosaur with a long broad tail and a beak. Its tattered feathers are stained with black, sticky liquid.", + "burn_into": "mon_zenontosaurus_scorched", + "fungalize_into": "mon_zenontosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zenontosaurus_UPGRADE" }, + "flags": [ "SEES", "SMELLS", "HEARS", "GRABS", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "BASHES" ], + "vision_night": 3, + "harvest": "zed_dino_feather", + "categories": [ "DINOSAUR" ], + "armor": { "bash": 5, "cut": 4, "bullet": 2 } + }, + { + "type": "MONSTER", + "id": "mon_zryosaurus", + "name": { "str": "dryosaurus zombie" }, + "looks_like": "mon_parasaurolophus", + "species": [ "ZOMBIE" ], + "default_faction": "zombie", + "symbol": "Z", + "color": "green", + "volume": "45 L", + "weight": "45 kg", + "bodytype": "ostrich", + "material": [ "flesh" ], + "aggression": 100, + "morale": 100, + "speed": 120, + "attack_cost": 120, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "weakpoint_sets": [ "wps_dinosaur_body" ], + "hp": 40, + "grab_strength": 20, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], + "description": "The shuffling corpse of a large, feathered, bipedal dinosaur with strong legs, broad shoulders, and a pointed beak. Its tattered feathers are stained with black, sticky liquid.", + "burn_into": "mon_zryosaurus_scorched", + "fungalize_into": "mon_zryosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zryosaurus_UPGRADE" }, + "flags": [ "SEES", "SMELLS", "HEARS", "GRABS", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "BASHES" ], + "vision_night": 3, + "harvest": "zed_dino_feather", + "categories": [ "DINOSAUR" ], + "armor": { "bash": 5, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -980,21 +1207,20 @@ "melee_dice": 1, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 5, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 170, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], "description": "The shuffling corpse of a large, feathered, bipedal dinosaur with strong legs, broad shoulders, and a pointed beak. Its tattered feathers are stained with black, sticky liquid.", "burn_into": "mon_zamptosaurus_scorched", "fungalize_into": "mon_zamptosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zamptosaurus_UPGRADE" }, - "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "BASHES" ], + "flags": [ "SEES", "SMELLS", "HEARS", "GRABS", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "BASHES" ], "vision_night": 3, "harvest": "zed_dino_leather", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 5, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -1010,21 +1236,90 @@ "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_cut": 7, - "armor_bullet": 4, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], - "hp": 220, + "hp": 300, + "grab_strength": 50, "special_attacks": [ + { "id": "bite_grab" }, [ "scratch", 10 ], - [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 }, { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] } ], "description": "A bulky, beaked dinosaur, dead but walking, eyes vacant and swollen.", "burn_into": "mon_zadrosaurus_scorched", "fungalize_into": "mon_zadrosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zadrosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zadrosaurus_UPGRADE" }, + "armor": { "bash": 5, "cut": 7, "bullet": 4 } + }, + { + "type": "MONSTER", + "id": "mon_zaiasaura", + "name": { "str": "maiasaura zombie" }, + "copy-from": "mon_zarasaurolophus", + "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", + "hp": 320, + "description": "A huge, mottled dinosaur with hooves and a heavy tail, dead but walking, eyes vacant and swollen. Has a flat beak, thick nose, and a small but spiky head crest.", + "burn_into": "mon_zaiasaura_scorched", + "fungalize_into": "mon_zaiasaura_fungus", + "upgrades": { "half_life": 14, "into_group": "GROUP_zaiasaura_UPGRADE" } + }, + { + "type": "MONSTER", + "id": "mon_zryposaurus", + "name": { "str": "gryposaurus zombie" }, + "copy-from": "mon_zedmontosaurus", + "//": "When large weights and volumes are fixed this should be 2500 L and 2500 kg", + "hp": 250, + "description": "A huge, mottled dinosaur with hooves and a heavy tail, dead but walking, eyes vacant and swollen. Has a flat beak and a nose with a prominent nasal arch.", + "burn_into": "mon_zryposaurus_scorched", + "fungalize_into": "mon_zryposaurus_fungus", + "upgrades": { "half_life": 14, "into_group": "GROUP_zryposaurus_UPGRADE" } + }, + { + "type": "MONSTER", + "id": "mon_zrosaurolophus", + "name": { "str": "prosaurulophus zombie" }, + "copy-from": "mon_zedmontosaurus", + "//": "When large weights and volumes are fixed this should be 3000 L and 3000 kg", + "hp": 300, + "description": "A huge, mottled dinosaur with hooves, a short beak and a tall head crest, dead but walking, eyes vacant and swollen.", + "burn_into": "mon_zrosaurolophus_scorched", + "fungalize_into": "mon_zrosaurolophus_fungus", + "upgrades": { "half_life": 14, "into_group": "GROUP_zrosaurolophus_UPGRADE" } + }, + { + "type": "MONSTER", + "id": "mon_zaurolophus", + "name": { "str": "saurulophus zombie" }, + "copy-from": "mon_zedmontosaurus", + "//": "When large weights and volumes are fixed this should be 3000 L and 3000 kg", + "hp": 300, + "description": "A huge, mottled dinosaur with hooves, a broad beak and a spiky head crest, dead but walking, eyes vacant and swollen.", + "burn_into": "mon_zaurolophus_scorched", + "fungalize_into": "mon_zaurolophus_fungus", + "upgrades": { "half_life": 14, "into_group": "GROUP_zaurolophus_UPGRADE" } + }, + { + "type": "MONSTER", + "id": "mon_zedmontosaurus", + "name": { "str": "edmontosaurus zombie" }, + "copy-from": "mon_zamptosaurus", + "looks_like": "mon_parasaurolophus", + "volume": "1000 L", + "weight": "1000 kg", + "//": "When large weights and volumes are fixed this should be 5500 L and 5500 kg", + "speed": 65, + "attack_cost": 65, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "hp": 365, + "description": "A huge, scaly dinosaur with a broad, toothless beak, dead but walking, eyes vacant and swollen.", + "burn_into": "mon_zedmontosaurus_scorched", + "fungalize_into": "mon_zedmontosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zedmontosaurus_UPGRADE" }, + "armor": { "bash": 5, "cut": 6, "bullet": 4 } }, { "type": "MONSTER", @@ -1040,28 +1335,50 @@ "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_cut": 7, - "armor_bullet": 4, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 320, + "grab_strength": 75, "special_attacks": [ + { "id": "bite_grab" }, [ "scratch", 10 ], - [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 }, { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] } ], "description": "A huge, mottled dinosaur with a blunt head crest, dead but walking, eyes vacant and swollen.", "burn_into": "mon_zarasaurolophus_scorched", "fungalize_into": "mon_zarasaurolophus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zarasaurolophus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zarasaurolophus_UPGRADE" }, + "armor": { "bash": 5, "cut": 7, "bullet": 4 } + }, + { + "type": "MONSTER", + "id": "mon_zambeosaurus", + "name": { "str": "lambeosaurus zombie" }, + "copy-from": "mon_zamptosaurus", + "looks_like": "mon_corythosaurus", + "volume": "1000 L", + "weight": "1000 kg", + "//": "When large weights and volumes are fixed this should be 3000 L and 3000 kg", + "speed": 65, + "attack_cost": 65, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "hp": 300, + "description": "A huge, scaly dinosaur with a long stiff tail, hooves, a narrow beak and a tall head crest, dead but walking, eyes vacant and swollen.", + "burn_into": "mon_zambeosaurus_scorched", + "fungalize_into": "mon_zambeosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zambeosaurus_UPGRADE" }, + "special_attacks": [ [ "SHRIEK", 10 ] ], + "armor": { "bash": 5, "cut": 6, "bullet": 4 } }, { "type": "MONSTER", "id": "mon_zorythosaurus", "name": { "str": "corythosaurus zombie" }, "copy-from": "mon_zamptosaurus", - "looks_like": "mon_parasaurolophus", + "looks_like": "mon_corythosaurus", "volume": "1000 L", "weight": "1000 kg", "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", @@ -1070,60 +1387,35 @@ "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_cut": 6, - "armor_bullet": 4, "hp": 365, "description": "A huge, scaly dinosaur with a short beak and a tall head crest, dead but walking, eyes vacant and swollen.", "burn_into": "mon_zorythosaurus_scorched", "fungalize_into": "mon_zorythosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zorythosaurus_UPGRADE" }, - "special_attacks": [ [ "SHRIEK", 5 ] ] + "special_attacks": [ [ "SHRIEK", 5 ] ], + "armor": { "bash": 5, "cut": 6, "bullet": 4 } }, { "type": "MONSTER", - "id": "mon_zaiasaura", - "name": { "str": "maiasaura zombie" }, - "copy-from": "mon_zarasaurolophus", - "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", - "hp": 320, - "description": "A huge, mottled dinosaur with hooves and a heavy tail, dead but walking, eyes vacant and swollen. Has a flat beak, thick nose, and a small but spiky head crest.", - "burn_into": "mon_zaiasaura_scorched", - "fungalize_into": "mon_zaiasaura_fungus", - "upgrades": { "half_life": 14, "into_group": "GROUP_zaiasaura_UPGRADE" } - }, - { - "type": "MONSTER", - "id": "mon_zedmontosaurus", - "name": { "str": "edmontosaurus zombie" }, + "id": "mon_zypacrosaurus", + "name": { "str": "hypacrosaurus zombie" }, "copy-from": "mon_zamptosaurus", - "looks_like": "mon_parasaurolophus", + "looks_like": "mon_corythosaurus", "volume": "1000 L", "weight": "1000 kg", - "//": "When large weights and volumes are fixed this should be 5500 L and 5500 kg", + "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", "speed": 65, "attack_cost": 65, "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_cut": 6, - "armor_bullet": 4, "hp": 365, - "description": "A huge, scaly dinosaur with a broad, toothless beak, dead but walking, eyes vacant and swollen.", - "burn_into": "mon_zedmontosaurus_scorched", - "fungalize_into": "mon_zedmontosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zedmontosaurus_UPGRADE" } - }, - { - "type": "MONSTER", - "id": "mon_zryposaurus", - "name": { "str": "maiasaura zombie" }, - "copy-from": "mon_zedmontosaurus", - "//": "When large weights and volumes are fixed this should be 2500 L and 2500 kg", - "hp": 250, - "description": "A huge, mottled dinosaur with hooves and a heavy tail, dead but walking, eyes vacant and swollen. Has a flat beak and a nose with a prominent nasal arch.", - "burn_into": "mon_zryposaurus_scorched", - "fungalize_into": "mon_zryposaurus_fungus", - "upgrades": { "half_life": 14, "into_group": "GROUP_zryposaurus_UPGRADE" } + "description": "A huge, scaly dinosaur with a tall ridge down the back, a tail, hooves, a short beak and a wide, rounded head crest, dead but walking, eyes vacant and swollen.", + "burn_into": "mon_zypacrosaurus_scorched", + "fungalize_into": "mon_zypacrosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zypacrosaurus_UPGRADE" }, + "special_attacks": [ [ "SHRIEK", 10 ] ], + "armor": { "bash": 5, "cut": 6, "bullet": 4 } }, { "type": "MONSTER", @@ -1145,12 +1437,11 @@ "melee_skill": 4, "melee_dice": 1, "melee_dice_sides": 4, - "armor_bash": 3, - "armor_cut": 4, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 125, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], + "grab_strength": 35, + "special_attacks": [ { "id": "bite_grab" }, [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], "description": "The shuffling corpse of a medium-sized bipedal dinosaur covered with tattered feathers and black, putrid liquid. It resembles a reptilian ostrich with a hard-looking domed head.", "burn_into": "mon_zachycephalosaurus_scorched", "fungalize_into": "mon_zachycephalosaurus_fungus", @@ -1158,7 +1449,8 @@ "flags": [ "SEES", "SMELLS", "HEARS", "PET_MOUNTABLE", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY" ], "vision_night": 3, "harvest": "zed_dino_feather", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 3, "cut": 4 } }, { "type": "MONSTER", @@ -1213,11 +1505,22 @@ "upgrades": { "half_life": 30, "into_group": "GROUP_zzuniceratops_UPGRADE" }, "special_attacks": [ [ "LUNGE", 10 ], [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ] }, + { + "type": "MONSTER", + "id": "mon_ztyracosaurus", + "name": { "str": "styracosaurus zombie" }, + "copy-from": "mon_zentrosaurus", + "//": "When large weights and volumes are fixed this should be 2200 L and 2200 kg", + "description": "A massive, shambling, four-legged dinosaur corpse with a bony crest with several long spikes and one large horn above the beak and a short tail. Its eyes ooze black, putrid tears.", + "burn_into": "mon_ztyracosaurus_scorched", + "fungalize_into": "mon_ztyracosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_ztyracosaurus_UPGRADE" } + }, { "type": "MONSTER", "id": "mon_zentrosaurus", "name": { "str": "centrosaurus zombie" }, - "copy-from": "mon_zriceratops", + "copy-from": "mon_zachyrhinosaurus", "//": "When large weights and volumes are fixed this should be 2200 L and 2200 kg", "hp": 210, "description": "A massive, shambling, rhino-like dinosaur corpse with a beak and long horn above the nose. Its eyes ooze black, putrid tears.", @@ -1225,13 +1528,37 @@ "fungalize_into": "mon_zentrosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zentrosaurus_UPGRADE" } }, + { + "type": "MONSTER", + "id": "mon_zeiniosaurus", + "name": { "str": "einiosaurus zombie" }, + "copy-from": "mon_zachyrhinosaurus", + "//": "When large weights and volumes are fixed this should be 1300 L and 1300 kg", + "hp": 180, + "description": "A massive, shambling, four-legged dinosaur corpse with a tall bony crest and one large horn above the nose curving forward towards the beak. Its eyes ooze black, putrid tears.", + "burn_into": "mon_zeiniosaurus_scorched", + "fungalize_into": "mon_zeiniosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zeiniosaurus_UPGRADE" } + }, + { + "type": "MONSTER", + "id": "mon_zachelousaurus", + "name": { "str": "achelousaurus zombie" }, + "copy-from": "mon_zachyrhinosaurus", + "//": "When large weights and volumes are fixed this should be 3000 L and 3000 kg", + "hp": 290, + "description": "A massive, shambling, rhino-like dinosaur corpse with a tall bony crest with two long curved spikes and three rough bosses above the eyes and nose as well as a short tail and hooked beak. Its eyes ooze black, putrid tears.", + "burn_into": "mon_zachelousaurus_scorched", + "fungalize_into": "mon_zachelousaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zachelousaurus_UPGRADE" } + }, { "type": "MONSTER", "id": "mon_zachyrhinosaurus", "name": { "str": "pachyrhinosaurus zombie" }, "copy-from": "mon_zriceratops", "//": "When large weights and volumes are fixed this should be 3500 L and 3500 kg", - "hp": 260, + "hp": 300, "description": "A massive, shambling, rhino-like dinosaur corpse with two massive bony bosses on its brow and nose. Its eyes ooze black, putrid tears.", "burn_into": "mon_zachyrhinosaurus_scorched", "fungalize_into": "mon_zachyrhinosaurus_fungus", @@ -1241,19 +1568,31 @@ [ "SMASH", 30 ] ] }, + { + "type": "MONSTER", + "id": "mon_zasmosaurus", + "name": { "str": "chasmosaurus zombie" }, + "copy-from": "mon_zriceratops", + "//": "When large weights and volumes are fixed this should be 1750 L and 1750 kg", + "hp": 210, + "description": "A massive, shambling, rhino-like dinosaur corpse with a tall bony crest from which three short horns emerge above the eyes and beak. Its eyes ooze black, putrid tears.", + "burn_into": "mon_zasmosaurus_scorched", + "fungalize_into": "mon_zasmosaurus_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_zasmosaurus_UPGRADE" }, + "armor": { "bash": 8, "cut": 9, "bullet": 3 } + }, { "type": "MONSTER", "id": "mon_zentaceratops", "name": { "str": "pentaceratops zombie" }, "copy-from": "mon_zriceratops", "//": "When large weights and volumes are fixed this should be 2500 L and 2500 kg", - "armor_cut": 9, - "armor_bash": 8, "hp": 250, "description": "A massive, shambling, rhino-like dinosaur corpse with a tall, bony crest from which four long horns and a short nose horn emerge. Its eyes ooze black, putrid tears.", "burn_into": "mon_zentaceratops_scorched", "fungalize_into": "mon_zentaceratops_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zentaceratops_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zentaceratops_UPGRADE" }, + "armor": { "bash": 8, "cut": 9, "bullet": 3 } }, { "type": "MONSTER", @@ -1267,16 +1606,14 @@ "melee_dice": 5, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "bash", "amount": 10 } ], - "armor_bash": 6, - "armor_cut": 7, - "armor_bullet": 4, "hp": 170, "description": "A massive, shambling, rhino-like dinosaur corpse with a bony crest and two wavy side horns. Its eyes ooze black, putrid tears.", "burn_into": "mon_zosmoceratops_scorched", "fungalize_into": "mon_zosmoceratops_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zosmoceratops_UPGRADE" }, "special_attacks": [ { "id": "impale" }, [ "stretch_horn_DinoMod", 7 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY" ] + "flags": [ "SEES", "SMELLS", "HEARS", "BASHES", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY" ], + "armor": { "bash": 6, "cut": 7, "bullet": 4 } }, { "type": "MONSTER", @@ -1285,13 +1622,12 @@ "copy-from": "mon_zriceratops", "//": "When large weights and volumes are fixed this should be 5000 L and 5000 kg", "hp": 360, - "armor_cut": 9, - "armor_bash": 8, "description": "A massive, shambling, rhino-like dinosaur corpse with a tall, bony crest from which two wicked-looking horns emerge. Its eyes ooze black, putrid tears.", "burn_into": "mon_zorosaurus_scorched", "fungalize_into": "mon_zorosaurus_fungus", "upgrades": { "half_life": 30, "into_group": "GROUP_zorosaurus_UPGRADE" }, - "special_attacks": [ { "id": "impale" }, [ "stretch_horn_DinoMod", 5 ] ] + "special_attacks": [ { "id": "impale" }, [ "stretch_horn_DinoMod", 5 ] ], + "armor": { "bash": 8, "cut": 9, "bullet": 3 } }, { "type": "MONSTER", @@ -1309,9 +1645,6 @@ "melee_dice": 2, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "stab", "amount": 15 } ], - "armor_bash": 5, - "armor_cut": 7, - "armor_bullet": 3, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_lg_ceratopsian_body" ], "hp": 400, @@ -1322,7 +1655,8 @@ "special_attacks": [ { "id": "impale" }, { "id": "stomp_DinoMod", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] } - ] + ], + "armor": { "bash": 5, "cut": 7, "bullet": 3 } }, { "type": "MONSTER", @@ -1339,16 +1673,14 @@ "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "stab", "amount": 1 } ], - "armor_bash": 5, - "armor_cut": 7, - "armor_bullet": 3, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 135, "description": "A shambling, two-legged dinosaur corpse with strong arms and a toothy beak. Its eyes ooze black, putrid tears.", "burn_into": "mon_zescelosaurus_scorched", "fungalize_into": "mon_zescelosaurus_fungus", - "upgrades": { "half_life": 30, "into_group": "GROUP_zescelosaurus_UPGRADE" } + "upgrades": { "half_life": 30, "into_group": "GROUP_zescelosaurus_UPGRADE" }, + "armor": { "bash": 5, "cut": 7, "bullet": 3 } }, { "type": "MONSTER", @@ -1371,8 +1703,6 @@ "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 4, - "armor_cut": 4, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_flying" ], "weakpoint_sets": [ "wps_pterosaur_body" ], "hp": 30, @@ -1397,7 +1727,8 @@ ], "vision_night": 3, "harvest": "zed_dino_feather", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 4, "cut": 4 } }, { "type": "MONSTER", @@ -1430,9 +1761,6 @@ "melee_dice": 3, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 16 } ], - "armor_bash": 5, - "armor_cut": 7, - "armor_bullet": 7, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_mosasaur_body" ], "hp": 410, @@ -1453,7 +1781,8 @@ "REVIVES", "FILTHY", "HIT_AND_RUN" - ] + ], + "armor": { "bash": 5, "cut": 7, "bullet": 7 } }, { "type": "MONSTER", @@ -1527,9 +1856,6 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 6, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_sauropod_body" ], "hp": 200, @@ -1544,7 +1870,8 @@ "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "WARM", "BASHES" ], "vision_night": 3, "harvest": "zed_dino_leather", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 6, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -1566,6 +1893,16 @@ "fungalize_into": "mon_ziplodocus_fungus", "upgrades": { "half_life": 30, "into": "mon_ziplodocus" } }, + { + "type": "MONSTER", + "id": "mon_zarosaurus_juvenile", + "name": { "str": "juvenile sauropod zombie" }, + "copy-from": "mon_zapatosaurus_juvenile", + "looks_like": "mon_apatosaurus", + "burn_into": "mon_zarosaurus_scorched", + "fungalize_into": "mon_zarosaurus_fungus", + "upgrades": { "half_life": 30, "into": "mon_zarosaurus" } + }, { "type": "MONSTER", "id": "mon_zamarasaurus_juvenile", @@ -1584,12 +1921,10 @@ "looks_like": "mon_apatosaurus", "speed": 40, "melee_dice": 5, - "armor_bash": 8, - "armor_cut": 8, - "armor_bullet": 3, "burn_into": "mon_zrachiosaurus_scorched", "fungalize_into": "mon_zrachiosaurus_fungus", - "upgrades": { "half_life": 30, "into": "mon_zrachiosaurus" } + "upgrades": { "half_life": 30, "into": "mon_zrachiosaurus" }, + "armor": { "bash": 8, "cut": 8, "bullet": 3 } }, { "type": "MONSTER", @@ -1597,11 +1932,10 @@ "name": { "str": "juvenile sauropod zombie" }, "copy-from": "mon_zapatosaurus_juvenile", "looks_like": "mon_apatosaurus", - "armor_bash": 7, - "armor_cut": 9, "description": "The corpse of a small, four-legged, herbivorous dinosaur juvenile, with cracked bone armor plates.", "burn_into": "mon_zalamosaurus_scorched", "fungalize_into": "mon_zalamosaurus_fungus", - "upgrades": { "half_life": 30, "into": "mon_zalamosaurus" } + "upgrades": { "half_life": 30, "into": "mon_zalamosaurus" }, + "armor": { "bash": 7, "cut": 9, "bullet": 2 } } ] diff --git a/data/Mainline_mods/Mods/DinoMod/monsters/zed-dinosaur_CBM.json b/data/Mainline_mods/Mods/DinoMod/monsters/zed-dinosaur_CBM.json index eed8afbe3..a2230ddf6 100644 --- a/data/Mainline_mods/Mods/DinoMod/monsters/zed-dinosaur_CBM.json +++ b/data/Mainline_mods/Mods/DinoMod/monsters/zed-dinosaur_CBM.json @@ -6,7 +6,7 @@ "copy-from": "mon_zpinosaurus", "diff": 5, "proportional": { "hp": 1.2, "speed": 1.15 }, - "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor_bash": 3, "armor_cut": 3, "armor_bullet": 3 }, + "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "flags": [ "NO_BREATHE", "ELECTRIC", @@ -30,7 +30,7 @@ "luminance": 1, "starting_ammo": { "battery": 10 }, "special_attacks": [ - [ "BIO_OP_TAKEDOWN", 20 ], + { "id": "bio_op_takedown", "cooldown": 20 }, { "type": "gun", "cooldown": 20, @@ -41,6 +41,7 @@ "ranges": [ [ 0, 30, "DEFAULT" ] ], "require_targeting_npc": true, "require_targeting_monster": true, + "target_moving_vehicles": true, "laser_lock": false, "targeting_cost": 1, "targeting_timeout_extend": -1, @@ -61,16 +62,17 @@ "copy-from": "mon_zyrannosaurus", "diff": 5, "proportional": { "hp": 1.2, "speed": 1.15 }, - "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor_bash": 3, "armor_cut": 3, "armor_bullet": 3 }, + "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 50, "luminance": 4, + "grab_strength": 100, "special_attacks": [ + { "id": "bite_grab", "cooldown": 7 }, [ "scratch", 10 ], - [ "GRAB", 7 ], - { "type": "bite", "cooldown": 5 }, - [ "BIO_OP_TAKEDOWN", 20 ], + { "id": "teeth_zino_max", "cooldown": 5 }, + { "id": "bio_op_takedown", "cooldown": 20 }, { "type": "spell", "spell_data": { "id": "CBM_TRex_recording" }, "cooldown": 1600 } ], "description": "The shuffling corpse of a bipedal dinosaur dotted with crackling bionics, tattered feathers, and black putrid liquid with glowing curved claws.", @@ -85,12 +87,12 @@ "copy-from": "mon_zallimimus", "diff": 5, "proportional": { "hp": 1.2, "speed": 1.15 }, - "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor_bash": 3, "armor_cut": 3, "armor_bullet": 3 }, + "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 50, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "description": "The shuffling corpse of a bipedal dinosaur dotted with crackling bionics, tattered feathers, and black putrid liquid with glowing curved claws.", "special_when_hit": [ "ZAPBACK", 75 ], "upgrades": { }, @@ -103,12 +105,15 @@ "copy-from": "mon_zeinonychus", "diff": 5, "proportional": { "hp": 1.2, "speed": 1.15 }, - "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor_bash": 3, "armor_cut": 3, "armor_bullet": 3 }, + "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 50, "luminance": 4, - "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ + { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, + { "id": "bio_op_takedown", "cooldown": 20 } + ], "description": "A bipedal dinosaur covered with tattered feathers, black goo, and crackling bionics. Each foot has a large glowing sickle-like claw.", "special_when_hit": [ "ZAPBACK", 75 ], "upgrades": { }, @@ -121,13 +126,13 @@ "copy-from": "mon_zamargasaurus", "diff": 5, "proportional": { "hp": 1.2, "speed": 1.15 }, - "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor_bash": 3, "armor_cut": 3, "armor_bullet": 3 }, + "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 50, "luminance": 4, "special_attacks": [ - [ "BIO_OP_TAKEDOWN", 20 ], + { "id": "bio_op_takedown", "cooldown": 20 }, { "id": "slam", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, [ "tailsmash_DinoMod", 30 ] ], @@ -143,12 +148,12 @@ "copy-from": "mon_zachycephalosaurus", "diff": 5, "proportional": { "hp": 1.2, "speed": 1.15 }, - "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor_bash": 3, "armor_cut": 3, "armor_bullet": 3 }, + "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 50, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "description": "The shuffling corpse of a bipedal dinosaur with a round hard-looking domed head. The body is dotted with crackling bionics, tattered feathers, and black putrid liquid and carries glowing, curved claws.", "special_when_hit": [ "ZAPBACK", 75 ], "upgrades": { }, @@ -161,12 +166,12 @@ "copy-from": "mon_zriceratops", "diff": 5, "proportional": { "hp": 1.2, "speed": 1.15 }, - "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor_bash": 3, "armor_cut": 3, "armor_bullet": 3 }, + "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 50, "luminance": 4, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], "description": "A massive shambling rhino-like dinosaur corpse dotted with crackling bionics with a bony crest and three wicked looking glowing horns. Its black eyes ooze like tears.", "special_when_hit": [ "ZAPBACK", 75 ], "upgrades": { }, diff --git a/data/Mainline_mods/Mods/DinoMod/monsters/zinosaur_burned.json b/data/Mainline_mods/Mods/DinoMod/monsters/zinosaur_burned.json index 450cd7e3f..16f67eb6d 100644 --- a/data/Mainline_mods/Mods/DinoMod/monsters/zinosaur_burned.json +++ b/data/Mainline_mods/Mods/DinoMod/monsters/zinosaur_burned.json @@ -14,21 +14,18 @@ "melee_dice": 1, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 6, - "armor_cut": 13, - "armor_bullet": 9, - "armor_acid": 3, - "armor_fire": 15, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 60, "fungalize_into": "mon_zilophosaurus_fungus", "bleed_rate": 0, "vision_day": 10, - "special_attacks": [ [ "GRAB", 7 ] ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explodes!" }, + "grab_strength": 35, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, "harvest": "zed_dino_leather", - "flags": [ "SEES", "HEARS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ] + "flags": [ "SEES", "HEARS", "STUMBLES", "POISON", "GRABS", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ], + "armor": { "bash": 6, "cut": 13, "acid": 3, "heat": 15, "bullet": 9 } }, { "type": "MONSTER", @@ -40,10 +37,10 @@ "weight": "540 kg", "speed": 55, "attack_cost": 55, - "armor_cut": 14, "hp": 70, "fungalize_into": "mon_zeratosaurus_fungus", - "description": "Heavily-burned zombie dinosaur predator that still reeks of charred meat. Its flesh has mended into a leathery shell studded with bony spikes." + "description": "Heavily-burned zombie dinosaur predator that still reeks of charred meat. Its flesh has mended into a leathery shell studded with bony spikes.", + "armor": { "bash": 6, "acid": 3, "heat": 15, "bullet": 9, "cut": 14 } }, { "type": "MONSTER", @@ -66,11 +63,6 @@ "melee_dice": 4, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 8, - "armor_cut": 17, - "armor_bullet": 7, - "armor_acid": 3, - "armor_fire": 15, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 215, @@ -82,9 +74,11 @@ "color": "i_brown", "bleed_rate": 0, "vision_day": 10, - "special_attacks": [ [ "GRAB", 7 ] ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explodes!" }, - "flags": [ "SEES", "HEARS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ] + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, + "flags": [ "SEES", "HEARS", "STUMBLES", "GRABS", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ], + "armor": { "bash": 8, "cut": 17, "acid": 3, "heat": 15, "bullet": 7 } }, { "type": "MONSTER", @@ -96,12 +90,10 @@ "bodytype": "ostrich", "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], - "armor_bash": 6, - "armor_cut": 12, - "armor_bullet": 9, "hp": 130, "fungalize_into": "mon_zorvosaurus_fungus", - "color": "i_brown" + "color": "i_brown", + "armor": { "acid": 3, "heat": 15, "bash": 6, "cut": 12, "bullet": 9 } }, { "type": "MONSTER", @@ -115,11 +107,9 @@ "melee_dice": 2, "melee_dice_sides": 1, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 6, - "armor_cut": 13, - "armor_bullet": 9, "hp": 95, - "fungalize_into": "mon_zallosaurus_fungus" + "fungalize_into": "mon_zallosaurus_fungus", + "armor": { "acid": 3, "heat": 15, "bash": 6, "cut": 13, "bullet": 9 } }, { "type": "MONSTER", @@ -132,10 +122,26 @@ "melee_dice": 4, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 13, "hp": 135, "fungalize_into": "mon_zacrocanthosaurus_fungus", - "description": "Heavily-burned zombie dinosaur predator that still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "Heavily-burned zombie dinosaur predator that still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "cut": 13, "bullet": 9, "bash": 13 } + }, + { + "type": "MONSTER", + "id": "mon_ziganotosaurus_scorched", + "name": { "str": "scorched acrocanthosaurus zombie" }, + "copy-from": "mon_zallosaurus_scorched", + "looks_like": "mon_ziganotosaurus", + "speed": 90, + "attack_cost": 90, + "melee_dice": 4, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "hp": 350, + "fungalize_into": "mon_ziganotosaurus_fungus", + "description": "Heavily-burned zombie dinosaur predator that still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "cut": 13, "bullet": 9, "bash": 6 } }, { "type": "MONSTER", @@ -146,10 +152,10 @@ "melee_dice": 2, "melee_dice_sides": 1, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 6, "hp": 180, "fungalize_into": "mon_ziats_fungus", - "description": "Heavily-burned zombie dinosaur predator with long claws that still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "Heavily-burned zombie dinosaur predator with long claws that still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "cut": 13, "bullet": 9, "bash": 6 } }, { "type": "MONSTER", @@ -196,12 +202,10 @@ "melee_dice": 3, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 14 } ], - "armor_bash": 7, - "armor_cut": 12, - "armor_bullet": 10, "hp": 135, "fungalize_into": "mon_zalbertosaurus_fungus", - "description": "Heavily-burned zombie dinosaur predator that still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "Heavily-burned zombie dinosaur predator that still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 7, "cut": 12, "bullet": 10 } }, { "type": "MONSTER", @@ -216,12 +220,10 @@ "melee_dice": 3, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 13 } ], - "armor_bash": 7, - "armor_cut": 14, - "armor_bullet": 10, "hp": 80, "fungalize_into": "mon_zianzhousaurus_fungus", - "description": "Heavily-burned zombie dinosaur predator that still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "Heavily-burned zombie dinosaur predator that still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 7, "cut": 14, "bullet": 10 } }, { "type": "MONSTER", @@ -267,11 +269,6 @@ "melee_dice": 5, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "cut", "amount": 10 } ], - "armor_bash": 8, - "armor_cut": 17, - "armor_bullet": 7, - "armor_acid": 3, - "armor_fire": 15, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_lg_theropod_body" ], "hp": 200, @@ -283,12 +280,14 @@ "color": "i_brown", "bleed_rate": 0, "vision_day": 10, - "special_attacks": [ [ "GRAB", 7 ] ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explodes!" }, + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, "harvest": "zed_dino_leather", "flags": [ "SEES", "HEARS", + "GRABS", "STUMBLES", "POISON", "NO_BREATHE", @@ -297,7 +296,8 @@ "NO_NECRO", "FILTHY", "PET_MOUNTABLE" - ] + ], + "armor": { "bash": 8, "cut": 17, "acid": 3, "heat": 15, "bullet": 7 } }, { "type": "MONSTER", @@ -319,11 +319,6 @@ "melee_dice": 1, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 13, - "armor_bullet": 9, - "armor_acid": 3, - "armor_fire": 15, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 60, @@ -334,12 +329,14 @@ "color": "i_brown", "bleed_rate": 0, "vision_day": 10, - "special_attacks": [ [ "GRAB", 7 ] ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explodes!" }, + "grab_strength": 35, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, "harvest": "zed_dino_leather", "flags": [ "SEES", "HEARS", + "GRABS", "STUMBLES", "POISON", "NO_BREATHE", @@ -348,7 +345,8 @@ "NO_NECRO", "FILTHY", "PET_MOUNTABLE" - ] + ], + "armor": { "bash": 4, "cut": 13, "acid": 3, "heat": 15, "bullet": 9 } }, { "type": "MONSTER", @@ -371,6 +369,24 @@ "attack_cost": 115, "extend": { "flags": [ "CLIMBS" ] } }, + { + "type": "MONSTER", + "id": "mon_zerizinosaurus_scorched", + "name": { "str": "scorched therizinosaurus zombie" }, + "copy-from": "mon_zeinonychus_scorched", + "looks_like": "mon_zerizinosaurus", + "volume": "1000 L", + "weight": "1000 kg", + "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", + "speed": 100, + "melee_skill": 3, + "melee_dice": 4, + "melee_dice_sides": 5, + "hp": 280, + "fungalize_into": "mon_zerizinosaurus_fungus", + "description": "A heavily-burned zombie dinosaur with long blackened claws; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "bash": 6, "cut": 13, "bullet": 9 } + }, { "type": "MONSTER", "id": "mon_zothronychus_scorched", @@ -384,12 +400,10 @@ "melee_skill": 3, "melee_dice": 4, "melee_dice_sides": 3, - "armor_bash": 6, - "armor_cut": 13, - "armor_bullet": 9, "hp": 80, "fungalize_into": "mon_zothronychus_fungus", - "description": "A heavily-burned zombie dinosaur with sharp, curved claws; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A heavily-burned zombie dinosaur with sharp, curved claws; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 6, "cut": 13, "bullet": 9 } }, { "type": "MONSTER", @@ -404,12 +418,10 @@ "melee_skill": 3, "melee_dice": 4, "melee_dice_sides": 3, - "armor_bash": 6, - "armor_cut": 13, - "armor_bullet": 9, "hp": 60, "fungalize_into": "mon_zanzu_fungus", - "description": "A heavily-burned zombie dinosaur with long claws; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A heavily-burned zombie dinosaur with long claws; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 6, "cut": 13, "bullet": 9 } }, { "type": "MONSTER", @@ -431,11 +443,6 @@ "melee_dice": 1, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 4, - "armor_cut": 13, - "armor_bullet": 9, - "armor_acid": 3, - "armor_fire": 15, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 20, @@ -446,10 +453,12 @@ "color": "i_brown", "bleed_rate": 0, "vision_day": 10, - "special_attacks": [ [ "GRAB", 7 ] ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explodes!" }, + "grab_strength": 20, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, "harvest": "zed_dino_leather", - "flags": [ "SEES", "HEARS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ] + "flags": [ "SEES", "HEARS", "GRABS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ], + "armor": { "bash": 4, "cut": 13, "acid": 3, "heat": 15, "bullet": 9 } }, { "type": "MONSTER", @@ -462,9 +471,9 @@ "melee_dice": 2, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], - "armor_bash": 5, "hp": 65, - "fungalize_into": "mon_zutahraptor_fungus" + "fungalize_into": "mon_zutahraptor_fungus", + "armor": { "cut": 13, "acid": 3, "heat": 15, "bullet": 9, "bash": 5 } }, { "type": "MONSTER", @@ -482,6 +491,21 @@ "fungalize_into": "mon_zarahsaurus_fungus", "description": "Heavily-burned two-legged zombie dinosaur sauropod that still reeks of charred meat. Its flesh has mended into a leathery shell." }, + { + "type": "MONSTER", + "id": "mon_zanchisaurus_scorched", + "name": { "str": "scorched anchisaurus zombie" }, + "copy-from": "mon_zapatosaurus_scorched", + "looks_like": "mon_zissi", + "speed": 45, + "attack_cost": 45, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "bash", "amount": 1 } ], + "hp": 30, + "fungalize_into": "mon_zanchisaurus_fungus", + "description": "Heavily-burned four-legged zombie dinosaur sauropod that still reeks of charred meat. Its flesh has mended into a leathery shell.", + "color": "white" + }, { "type": "MONSTER", "id": "mon_zissi_scorched", @@ -516,12 +540,10 @@ "attack_cost": 45, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "bash", "amount": 4 } ], - "armor_bash": 10, - "armor_cut": 17, - "armor_bullet": 13, "hp": 165, "fungalize_into": "mon_zamargasaurus_fungus", - "description": "Heavily-burned zombie dinosaur sauropod that still reeks of charred meat. Its flesh has mended into a leathery shell studded with two rows of tall spines." + "description": "Heavily-burned zombie dinosaur sauropod that still reeks of charred meat. Its flesh has mended into a leathery shell studded with two rows of tall spines.", + "armor": { "acid": 3, "heat": 15, "bash": 10, "cut": 17, "bullet": 13 } }, { "type": "MONSTER", @@ -536,13 +558,11 @@ "attack_cost": 55, "melee_dice": 4, "melee_dice_sides": 3, - "armor_bash": 8, - "armor_cut": 13, - "armor_bullet": 9, "weakpoint_sets": [ "wps_sauropod_body" ], "hp": 250, "fungalize_into": "mon_zapatosaurus_fungus", - "description": "Heavily-burned zombie dinosaur sauropod with a long neck that still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "Heavily-burned zombie dinosaur sauropod with a long neck that still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 8, "cut": 13, "bullet": 9 } }, { "type": "MONSTER", @@ -560,9 +580,21 @@ "looks_like": "mon_ziplodocus", "speed": 40, "attack_cost": 40, - "armor_bash": 7, "hp": 245, - "fungalize_into": "mon_ziplodocus_fungus" + "fungalize_into": "mon_ziplodocus_fungus", + "armor": { "acid": 3, "heat": 15, "cut": 13, "bullet": 9, "bash": 7 } + }, + { + "type": "MONSTER", + "id": "mon_zarosaurus_scorched", + "name": { "str": "scorched barosaurus zombie" }, + "copy-from": "mon_zapatosaurus_scorched", + "looks_like": "mon_zarosaurus", + "speed": 40, + "attack_cost": 40, + "hp": 250, + "fungalize_into": "mon_zarosaurus_fungus", + "armor": { "acid": 3, "heat": 15, "cut": 13, "bullet": 9, "bash": 7 } }, { "type": "MONSTER", @@ -584,11 +616,9 @@ "speed": 35, "attack_cost": 35, "melee_dice": 6, - "armor_bash": 10, - "armor_cut": 17, - "armor_bullet": 10, "hp": 285, - "fungalize_into": "mon_zrachiosaurus_fungus" + "fungalize_into": "mon_zrachiosaurus_fungus", + "armor": { "acid": 3, "heat": 15, "bash": 10, "cut": 17, "bullet": 10 } }, { "type": "MONSTER", @@ -597,11 +627,9 @@ "copy-from": "mon_zapatosaurus_scorched", "looks_like": "mon_zalamosaurus", "melee_dice": 5, - "armor_bash": 17, - "armor_cut": 28, - "armor_bullet": 10, "hp": 250, - "fungalize_into": "mon_zalamosaurus_fungus" + "fungalize_into": "mon_zalamosaurus_fungus", + "armor": { "acid": 3, "heat": 15, "bash": 17, "cut": 28, "bullet": 10 } }, { "type": "MONSTER", @@ -618,14 +646,12 @@ "melee_dice": 2, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "stab", "amount": 1 } ], - "armor_bash": 6, - "armor_cut": 13, - "armor_bullet": 9, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored" ], "weakpoint_sets": [ "wps_ankylosaurid_body" ], "hp": 140, "fungalize_into": "mon_ztegosaurus_fungus", - "description": "A heavily-burned zombie dinosaur with prominent bony back plates; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A heavily-burned zombie dinosaur with prominent bony back plates; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 6, "cut": 13, "bullet": 9 } }, { "type": "MONSTER", @@ -634,10 +660,19 @@ "copy-from": "mon_ztegosaurus_scorched", "looks_like": "mon_zesperosaurus", "hp": 200, - "armor_bash": 7, - "armor_cut": 15, "fungalize_into": "mon_zesperosaurus_fungus", - "description": "A heavily-burned, armored zombie dinosaur that still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A heavily-burned, armored zombie dinosaur that still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bullet": 9, "bash": 7, "cut": 15 } + }, + { + "type": "MONSTER", + "id": "mon_zastonia_scorched", + "name": { "str": "scorched gastonia zombie" }, + "copy-from": "mon_zankylosaurus_scorched", + "looks_like": "mon_zastonia", + "hp": 150, + "fungalize_into": "mon_zastonia_fungus", + "description": "A heavily-burned, armored four legged zombie dinosaur that still reeks of charred meat. What little flesh is exposed has mended into a leathery shell." }, { "type": "MONSTER", @@ -645,14 +680,14 @@ "name": { "str": "scorched gargoyleosaurus zombie" }, "copy-from": "mon_zankylosaurus_scorched", "looks_like": "mon_zargoyleosaurus", + "volume": "415 L", + "weight": "500 kg", "hp": 120, "speed": 30, "attack_cost": 30, - "armor_bash": 13, - "armor_cut": 22, - "armor_bullet": 13, "fungalize_into": "mon_zargoyleosaurus_fungus", - "description": "A heavily-burned, armored zombie dinosaur that still reeks of charred meat. What little flesh is exposed has mended into a leathery shell." + "description": "A heavily-burned, armored zombie dinosaur that still reeks of charred meat. What little flesh is exposed has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 13, "cut": 22, "bullet": 13 } }, { "type": "MONSTER", @@ -671,11 +706,20 @@ "copy-from": "mon_zankylosaurus_scorched", "looks_like": "mon_zodosaurus", "hp": 135, - "armor_bash": 23, - "armor_cut": 32, - "armor_bullet": 18, "fungalize_into": "mon_zodosaurus_fungus", - "description": "A heavily-burned, armored zombie dinosaur that still reeks of charred meat. What little flesh is exposed has mended into a leathery shell." + "description": "A heavily-burned, armored zombie dinosaur that still reeks of charred meat. What little flesh is exposed has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 23, "cut": 32, "bullet": 18 } + }, + { + "type": "MONSTER", + "id": "mon_zanoplosaurus_scorched", + "name": { "str": "scorched panoplosaurus zombie" }, + "copy-from": "mon_zankylosaurus_scorched", + "looks_like": "mon_zanoplosaurus", + "hp": 135, + "fungalize_into": "mon_zanoplosaurus_fungus", + "description": "A heavily-burned, four legged armored zombie dinosaur that still reeks of charred meat. What little flesh is exposed has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 23, "cut": 32, "bullet": 18 } }, { "type": "MONSTER", @@ -685,11 +729,9 @@ "looks_like": "mon_zedmontonia", "hp": 140, "melee_damage": [ { "damage_type": "stab", "amount": 10 } ], - "armor_bash": 23, - "armor_cut": 32, - "armor_bullet": 18, "fungalize_into": "mon_zedmontonia_fungus", - "description": "A heavily-burned, armored zombie dinosaur that still reeks of charred meat. What little flesh is exposed has mended into a leathery shell." + "description": "A heavily-burned, armored zombie dinosaur that still reeks of charred meat. What little flesh is exposed has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 23, "cut": 32, "bullet": 18 } }, { "type": "MONSTER", @@ -731,11 +773,6 @@ "melee_dice": 2, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "stab", "amount": 1 } ], - "armor_bash": 18, - "armor_cut": 30, - "armor_bullet": 14, - "armor_acid": 3, - "armor_fire": 15, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored" ], "weakpoint_sets": [ "wps_ankylosaurid_body" ], "hp": 190, @@ -746,10 +783,106 @@ "color": "i_brown", "bleed_rate": 0, "vision_day": 10, - "special_attacks": [ [ "GRAB", 7 ] ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explodes!" }, + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, + "harvest": "zed_dino_leather", + "flags": [ "SEES", "HEARS", "STUMBLES", "GRABS", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ], + "armor": { "bash": 18, "cut": 30, "acid": 3, "heat": 15, "bullet": 14 } + }, + { + "type": "MONSTER", + "id": "mon_zuoplocephalus_scorched", + "name": { "str": "scorched euoplocephalus zombie" }, + "copy-from": "mon_zankylosaurus_scorched", + "looks_like": "mon_zuoplocephalus", + "hp": 200, + "fungalize_into": "mon_zuoplocephalus_fungus", + "description": "A heavily-burned, armored zombie dinosaur that still reeks of charred meat. What little flesh is exposed has mended into a leathery shell." + }, + { + "type": "MONSTER", + "id": "mon_zcolosaurus_scorched", + "name": { "str": "scorched scolosaurus zombie" }, + "copy-from": "mon_zankylosaurus_scorched", + "looks_like": "mon_zcolosaurus", + "hp": 200, + "fungalize_into": "mon_zcolosaurus_fungus", + "description": "A heavily-burned, armored zombie dinosaur that still reeks of charred meat. What little flesh is exposed has mended into a leathery shell." + }, + { + "type": "MONSTER", + "id": "mon_zenontosaurus_scorched", + "name": { "str": "scorched tenontosaurus zombie" }, + "looks_like": "mon_zenontosaurus", + "species": [ "ZOMBIE" ], + "default_faction": "zombie", + "symbol": "Z", + "volume": "800 L", + "weight": "800 kg", + "bodytype": "bear", + "material": [ "flesh" ], + "aggression": 100, + "morale": 100, + "speed": 100, + "attack_cost": 100, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "weakpoint_sets": [ "wps_dinosaur_body" ], + "hp": 80, + "fungalize_into": "mon_zamptosaurus_fungus", + "vision_night": 3, + "categories": [ "DINOSAUR" ], + "description": "A heavily-burned zombie dinosaur with a pointed beak; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "color": "i_brown", + "bleed_rate": 0, + "vision_day": 10, + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, + "harvest": "zed_dino_leather", + "flags": [ "SEES", "HEARS", "GRABS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ], + "armor": { "bash": 7, "cut": 13, "acid": 3, "heat": 15, "bullet": 9 } + }, + { + "type": "MONSTER", + "id": "mon_zryosaurus_scorched", + "name": { "str": "scorched dryosaurus zombie" }, + "looks_like": "mon_zryosaurus", + "species": [ "ZOMBIE" ], + "default_faction": "zombie", + "symbol": "Z", + "volume": "45 L", + "weight": "45 kg", + "bodytype": "ostrich", + "material": [ "flesh" ], + "aggression": 100, + "morale": 100, + "speed": 100, + "attack_cost": 100, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "weakpoint_sets": [ "wps_dinosaur_body" ], + "hp": 30, + "fungalize_into": "mon_zryosaurus_fungus", + "vision_night": 3, + "categories": [ "DINOSAUR" ], + "description": "A heavily-burned zombie dinosaur with a pointed beak; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "color": "i_brown", + "bleed_rate": 0, + "vision_day": 10, + "grab_strength": 10, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, "harvest": "zed_dino_leather", - "flags": [ "SEES", "HEARS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ] + "flags": [ "SEES", "HEARS", "GRABS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ], + "armor": { "bash": 7, "cut": 13, "acid": 3, "heat": 15, "bullet": 9 } }, { "type": "MONSTER", @@ -771,11 +904,6 @@ "melee_dice": 1, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 7, - "armor_cut": 13, - "armor_bullet": 9, - "armor_acid": 3, - "armor_fire": 15, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 85, @@ -786,10 +914,12 @@ "color": "i_brown", "bleed_rate": 0, "vision_day": 10, - "special_attacks": [ [ "GRAB", 7 ] ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explodes!" }, + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, "harvest": "zed_dino_leather", - "flags": [ "SEES", "HEARS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ] + "flags": [ "SEES", "HEARS", "GRABS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ], + "armor": { "bash": 7, "cut": 13, "acid": 3, "heat": 15, "bullet": 9 } }, { "type": "MONSTER", @@ -804,11 +934,66 @@ "melee_dice": 2, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_cut": 16, - "armor_bullet": 11, "hp": 110, "fungalize_into": "mon_zadrosaurus_fungus", - "description": "A heavily-burned bulky zombie dinosaur with a beak; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A heavily-burned bulky zombie dinosaur with a beak; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "bash": 7, "acid": 3, "heat": 15, "cut": 16, "bullet": 11 } + }, + { + "type": "MONSTER", + "id": "mon_zaiasaura_scorched", + "name": { "str": "scorched maiasaura zombie" }, + "copy-from": "mon_zarasaurolophus_scorched", + "looks_like": "mon_zaiasaura", + "hp": 100, + "fungalize_into": "mon_zaiasaura_fungus", + "description": "A heavily-burned zombie dinosaur with a pointed beak; it still reeks of charred meat. Its flesh has mended into a leathery shell." + }, + { + "type": "MONSTER", + "id": "mon_zryposaurus_scorched", + "name": { "str": "scorched gryposaurus zombie" }, + "copy-from": "mon_zedmontosaurus_scorched", + "looks_like": "mon_zryposaurus", + "hp": 250, + "fungalize_into": "mon_zryposaurus_fungus", + "description": "A heavily-burned zombie dinosaur with a pointed beak; it still reeks of charred meat. Its flesh has mended into a leathery shell." + }, + { + "type": "MONSTER", + "id": "mon_zrosaurolophus_scorched", + "name": { "str": "scorched prosaurolophus zombie" }, + "copy-from": "mon_zedmontosaurus_scorched", + "looks_like": "mon_zrosaurolophus", + "hp": 250, + "fungalize_into": "mon_zrosaurolophus_fungus", + "description": "A heavily-burned zombie dinosaur with a short beak and tall head crest; it still reeks of charred meat. Its flesh has mended into a leathery shell." + }, + { + "type": "MONSTER", + "id": "mon_zaurolophus_scorched", + "name": { "str": "scorched saurolophus zombie" }, + "copy-from": "mon_zedmontosaurus_scorched", + "looks_like": "mon_zaurolophus", + "hp": 250, + "fungalize_into": "mon_zaurolophus_fungus", + "description": "A heavily-burned zombie dinosaur with a broad beak and spiky head crest; it still reeks of charred meat. Its flesh has mended into a leathery shell." + }, + { + "type": "MONSTER", + "id": "mon_zedmontosaurus_scorched", + "name": { "str": "scorched edmontosaurus zombie" }, + "copy-from": "mon_zarasaurolophus_scorched", + "looks_like": "mon_zedmontosaurus", + "speed": 55, + "attack_cost": 55, + "melee_dice": 2, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "hp": 180, + "fungalize_into": "mon_zedmontosaurus_fungus", + "description": "A heavily-burned zombie dinosaur with a pointed beak; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "bash": 7, "acid": 3, "heat": 15, "cut": 15, "bullet": 11 } }, { "type": "MONSTER", @@ -822,55 +1007,45 @@ }, { "type": "MONSTER", - "id": "mon_zorythosaurus_scorched", - "name": { "str": "scorched corythosaurus zombie" }, + "id": "mon_zambeosaurus_scorched", + "name": { "str": "scorched lambeosaurus zombie" }, "copy-from": "mon_zarasaurolophus_scorched", - "looks_like": "mon_zorythosaurus", + "looks_like": "mon_zambeosaurus", "melee_dice": 2, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_cut": 15, - "armor_bullet": 11, "hp": 180, - "fungalize_into": "mon_zorythosaurus_fungus", - "description": "A heavily-burned zombie dinosaur with a pointed beak and tall head crest; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "fungalize_into": "mon_zambeosaurus_fungus", + "description": "A heavily-burned zombie dinosaur with a long stiff tail, hooves, a narrow beak and a tall head crest; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "bash": 7, "acid": 3, "heat": 15, "cut": 15, "bullet": 11 } }, { "type": "MONSTER", - "id": "mon_zaiasaura_scorched", - "name": { "str": "scorched maiasaura zombie" }, + "id": "mon_zorythosaurus_scorched", + "name": { "str": "scorched corythosaurus zombie" }, "copy-from": "mon_zarasaurolophus_scorched", - "looks_like": "mon_zaiasaura", - "hp": 100, - "fungalize_into": "mon_zaiasaura_fungus", - "description": "A heavily-burned zombie dinosaur with a pointed beak; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "looks_like": "mon_zorythosaurus", + "melee_dice": 2, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "hp": 180, + "fungalize_into": "mon_zorythosaurus_fungus", + "description": "A heavily-burned zombie dinosaur with a pointed beak and tall head crest; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "bash": 7, "acid": 3, "heat": 15, "cut": 15, "bullet": 11 } }, { "type": "MONSTER", - "id": "mon_zedmontosaurus_scorched", - "name": { "str": "scorched edmontosaurus zombie" }, + "id": "mon_zypacrosaurus_scorched", + "name": { "str": "scorched hypacrosaurus zombie" }, "copy-from": "mon_zarasaurolophus_scorched", - "looks_like": "mon_zedmontosaurus", - "speed": 55, - "attack_cost": 55, + "looks_like": "mon_zypacrosaurus", "melee_dice": 2, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_cut": 15, - "armor_bullet": 11, "hp": 180, - "fungalize_into": "mon_zedmontosaurus_fungus", - "description": "A heavily-burned zombie dinosaur with a pointed beak; it still reeks of charred meat. Its flesh has mended into a leathery shell." - }, - { - "type": "MONSTER", - "id": "mon_zryposaurus_scorched", - "name": { "str": "scorched gryposaurus zombie" }, - "copy-from": "mon_zedmontosaurus_scorched", - "looks_like": "mon_zryposaurus", - "hp": 250, - "fungalize_into": "mon_zaiasaura_fungus", - "description": "A heavily-burned zombie dinosaur with a pointed beak; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "fungalize_into": "mon_zypacrosaurus_fungus", + "description": "A heavily-burned zombie dinosaur with a tall ridge down the back, a tail, hooves, a short beak and a wide, rounded head crest; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "bash": 7, "acid": 3, "heat": 15, "cut": 15, "bullet": 11 } }, { "type": "MONSTER", @@ -891,11 +1066,6 @@ "melee_skill": 3, "melee_dice": 1, "melee_dice_sides": 3, - "armor_bash": 5, - "armor_cut": 13, - "armor_bullet": 7, - "armor_acid": 3, - "armor_fire": 15, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 60, @@ -906,10 +1076,12 @@ "color": "i_brown", "bleed_rate": 0, "vision_day": 10, - "special_attacks": [ [ "GRAB", 7 ] ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explodes!" }, + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, "harvest": "zed_dino_leather", - "flags": [ "SEES", "HEARS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ] + "flags": [ "SEES", "HEARS", "GRABS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ], + "armor": { "bash": 5, "cut": 13, "acid": 3, "heat": 15, "bullet": 7 } }, { "type": "MONSTER", @@ -928,7 +1100,8 @@ "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "dodge": 5, "hp": 50, - "special_attacks": [ [ "GRAB", 7 ] ], + "grab_strength": 20, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], "fungalize_into": "mon_zeptoceratops_fungus", "description": "A heavily-burned, four-legged zombie dinosaur corpse with a bony crest and sharp beak; it still reeks of charred meat. Its flesh has mended into a leathery shell." }, @@ -951,13 +1124,13 @@ }, { "type": "MONSTER", - "id": "mon_zachyrhinosaurus_scorched", - "name": { "str": "scorched pachyrhinosaurus zombie" }, + "id": "mon_ztyracosaurus_scorched", + "name": { "str": "scorched styracosaurus zombie" }, "copy-from": "mon_zriceratops_scorched", - "looks_like": "mon_zachyrhinosaurus", + "looks_like": "mon_ztyracosaurus", "hp": 100, - "fungalize_into": "mon_zachyrhinosaurus_fungus", - "description": "A heavily-burned, four-legged zombie dinosaur with a broad bony nose; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A massive, shambling, rhino-like dinosaur corpse with a bony crest with several long spikes and one large horn above the beak and a short tail. Its flesh has mended into a leathery shell.", + "fungalize_into": "mon_zentrosaurus_fungus" }, { "type": "MONSTER", @@ -966,20 +1139,60 @@ "copy-from": "mon_zriceratops_scorched", "looks_like": "mon_zentrosaurus", "hp": 100, - "description": "A massive, shambling, rhino-like dinosaur corpse with a beak and long horn above the nose. Its eyes ooze black, putrid tears.", + "description": "A massive, shambling, rhino-like dinosaur corpse with a beak and long horn above the nose. Its flesh has mended into a leathery shell.", "fungalize_into": "mon_zentrosaurus_fungus" }, + { + "type": "MONSTER", + "id": "mon_zeiniosaurus_scorched", + "name": { "str": "scorched einiosaurus zombie" }, + "copy-from": "mon_zriceratops_scorched", + "looks_like": "mon_zeiniosaurus", + "hp": 90, + "description": "A massive, shambling, four-legged dinosaur corpse with a tall bony crest and one large horn above the nose curving forward towards the beak. Its flesh has mended into a leathery shell.", + "fungalize_into": "mon_zeiniosaurus_fungus" + }, + { + "type": "MONSTER", + "id": "mon_zachelousaurus_scorched", + "name": { "str": "scorched achelousaurus zombie" }, + "copy-from": "mon_zriceratops_scorched", + "looks_like": "mon_zachelousaurus", + "hp": 100, + "fungalize_into": "mon_zachelousaurus_fungus", + "description": "A heavily-burned, four-legged dinosaur corpse with a tall bony crest with two long curved spikes and three rough bosses above the eyes and nose as well as a hooked beak. Its flesh has mended into a leathery shell." + }, + { + "type": "MONSTER", + "id": "mon_zachyrhinosaurus_scorched", + "name": { "str": "scorched pachyrhinosaurus zombie" }, + "copy-from": "mon_zriceratops_scorched", + "looks_like": "mon_zachyrhinosaurus", + "hp": 120, + "fungalize_into": "mon_zachyrhinosaurus_fungus", + "description": "A heavily-burned, four-legged dinosaur corpse with a broad bony nose; it still reeks of charred meat. Its flesh has mended into a leathery shell." + }, + { + "type": "MONSTER", + "id": "mon_zasmosaurus_scorched", + "name": { "str": "scorched chasmosaurus zombie" }, + "copy-from": "mon_zriceratops_scorched", + "looks_like": "mon_zasmosaurus", + "hp": 150, + "fungalize_into": "mon_zasmosaurus_fungus", + "description": "A heavily-burned, four-legged zombie dinosaur with a tall bony crest from which three short horns emerge above the eyes and beak; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bullet": 10, "bash": 10, "cut": 18 } + }, { "type": "MONSTER", "id": "mon_zentaceratops_scorched", "name": { "str": "scorched pentaceratops zombie" }, "copy-from": "mon_zriceratops_scorched", "looks_like": "mon_zentaceratops", - "armor_cut": 18, - "armor_bash": 10, "hp": 190, "fungalize_into": "mon_zentaceratops_fungus", - "description": "A heavily-burned, four-legged zombie dinosaur with four long horns and a short nose horn; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A heavily-burned, four-legged zombie dinosaur with four long horns and a short nose horn; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bullet": 10, "bash": 10, "cut": 18 } }, { "type": "MONSTER", @@ -992,12 +1205,10 @@ "melee_dice": 5, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "bash", "amount": 10 } ], - "armor_bash": 8, - "armor_cut": 16, - "armor_bullet": 11, "hp": 125, "fungalize_into": "mon_zosmoceratops_fungus", - "description": "A heavily-burned, four-legged zombie dinosaur with a bony crest and two wavy side horns; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A heavily-burned, four-legged zombie dinosaur with a bony crest and two wavy side horns; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 8, "cut": 16, "bullet": 11 } }, { "type": "MONSTER", @@ -1005,10 +1216,9 @@ "name": { "str": "scorched torosaurus zombie" }, "copy-from": "mon_zriceratops_scorched", "looks_like": "mon_zorosaurus", - "armor_cut": 18, - "armor_bash": 10, "fungalize_into": "mon_zorosaurus_fungus", - "description": "A heavily-burned, four-legged zombie dinosaur with a bony crest and two wicked-looking horns; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A heavily-burned, four-legged zombie dinosaur with a bony crest and two wicked-looking horns; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bullet": 10, "bash": 10, "cut": 18 } }, { "type": "MONSTER", @@ -1025,13 +1235,11 @@ "melee_dice": 2, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "stab", "amount": 15 } ], - "armor_bash": 7, - "armor_cut": 16, - "armor_bullet": 10, "weakpoint_sets": [ "wps_lg_ceratopsian_body" ], "hp": 200, "fungalize_into": "mon_zriceratops_fungus", - "description": "A heavily-burned, four-legged zombie dinosaur with a bony crest and three wicked-looking horns; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A heavily-burned, four-legged zombie dinosaur with a bony crest and three wicked-looking horns; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 7, "cut": 16, "bullet": 10 } }, { "type": "MONSTER", @@ -1047,12 +1255,10 @@ "melee_dice": 1, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "stab", "amount": 1 } ], - "armor_bash": 7, - "armor_cut": 16, - "armor_bullet": 10, "hp": 100, "fungalize_into": "mon_zescelosaurus_fungus", - "description": "A heavily-burned, two-legged zombie dinosaur with strong arms and a long toothy beak; it still reeks of charred meat. Its flesh has mended into a leathery shell." + "description": "A heavily-burned, two-legged zombie dinosaur with strong arms and a long toothy beak; it still reeks of charred meat. Its flesh has mended into a leathery shell.", + "armor": { "acid": 3, "heat": 15, "bash": 7, "cut": 16, "bullet": 10 } }, { "type": "MONSTER", @@ -1073,11 +1279,6 @@ "melee_dice": 2, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 6, - "armor_cut": 13, - "armor_bullet": 7, - "armor_acid": 3, - "armor_fire": 15, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_flying" ], "weakpoint_sets": [ "wps_pterosaur_body" ], "hp": 15, @@ -1088,10 +1289,12 @@ "color": "i_brown", "bleed_rate": 0, "vision_day": 10, - "special_attacks": [ [ "GRAB", 7 ] ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explodes!" }, + "grab_strength": 10, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, "harvest": "zed_dino_leather", - "flags": [ "SEES", "HEARS", "STUMBLES", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ] + "flags": [ "SEES", "HEARS", "STUMBLES", "GRABS", "POISON", "NO_BREATHE", "REVIVES", "REVIVES_HEALTHY", "NO_NECRO", "FILTHY" ], + "armor": { "bash": 6, "cut": 13, "acid": 3, "heat": 15, "bullet": 7 } }, { "type": "MONSTER", @@ -1117,11 +1320,6 @@ "melee_dice": 3, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "cut", "amount": 16 } ], - "armor_bash": 7, - "armor_cut": 16, - "armor_bullet": 14, - "armor_acid": 3, - "armor_fire": 15, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_mosasaur_body" ], "hp": 165, @@ -1130,13 +1328,15 @@ "color": "i_brown", "bleed_rate": 0, "vision_day": 10, - "special_attacks": [ [ "GRAB", 7 ] ], - "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "A %s explodes!" }, + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 } ], + "death_function": { "effect": { "id": "death_smokeburst", "hit_self": true }, "message": "The %s explodes!" }, "harvest": "zed_dino_leather", "flags": [ "SEES", "HEARS", "STUMBLES", + "GRABS", "POISON", "NO_BREATHE", "REVIVES", @@ -1145,6 +1345,7 @@ "FILTHY", "SWIMS", "AQUATIC" - ] + ], + "armor": { "bash": 7, "cut": 16, "acid": 3, "heat": 15, "bullet": 14 } } ] diff --git a/data/Mainline_mods/Mods/DinoMod/monsters/zinosaur_upgrade.json b/data/Mainline_mods/Mods/DinoMod/monsters/zinosaur_upgrade.json index cdb8bfade..c4d670d5b 100644 --- a/data/Mainline_mods/Mods/DinoMod/monsters/zinosaur_upgrade.json +++ b/data/Mainline_mods/Mods/DinoMod/monsters/zinosaur_upgrade.json @@ -12,10 +12,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -37,10 +35,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -61,10 +57,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -85,10 +79,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -109,10 +101,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zallosaurus_BRUTE" }, @@ -133,10 +123,30 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zallosaurus_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_ziganotosaurus_brute", + "name": { "str": "Giganotosaurus Avenger" }, + "copy-from": "mon_ziganotosaurus", + "description": "The shambling corpse of a huge predatory bipedal dinosaur with a strong chin. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zallosaurus_BRUTE" }, @@ -157,10 +167,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zallosaurus_BRUTE" }, @@ -182,14 +190,12 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zyrannosaurus_BRUTE" }, - "special_attacks": [ [ "SMASH", 30 ], [ "GRAB", 7 ] ], + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 }, [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, @@ -207,14 +213,12 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zyrannosaurus_BRUTE" }, - "special_attacks": [ [ "SMASH", 30 ], [ "GRAB", 7 ] ], + "special_attacks": [ { "id": "bite_grab", "cooldown": 7 }, [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, @@ -232,14 +236,12 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zyrannosaurus_BRUTE" }, - "special_attacks": [ [ "SMASH", 30 ], [ "GRAB", 7 ] ], + "special_attacks": [ [ "SMASH", 30 ], { "id": "bite_grab", "cooldown": 7 } ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, @@ -257,14 +259,12 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zyrannosaurus_BRUTE" }, - "special_attacks": [ [ "SMASH", 30 ], [ "GRAB", 7 ] ], + "special_attacks": [ [ "SMASH", 30 ], { "id": "bite_grab", "cooldown": 7 } ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, @@ -282,14 +282,12 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zyrannosaurus_BRUTE" }, - "special_attacks": [ [ "SMASH", 30 ], [ "GRAB", 7 ] ], + "special_attacks": [ [ "SMASH", 30 ], { "id": "bite_grab", "cooldown": 7 } ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, @@ -305,14 +303,12 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zyrannosaurus_BRUTE" }, - "special_attacks": [ [ "SMASH", 30 ], [ "GRAB", 7 ] ], + "special_attacks": [ [ "SMASH", 30 ], { "id": "bite_grab", "cooldown": 7 } ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, @@ -330,14 +326,12 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zyrannosaurus_BRUTE" }, - "special_attacks": [ [ "SMASH", 30 ], [ "GRAB", 7 ] ], + "special_attacks": [ [ "SMASH", 30 ], { "id": "bite_grab", "cooldown": 7 } ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, @@ -355,10 +349,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zyrannosaurus_BRUTE" }, @@ -380,10 +372,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -418,6 +408,28 @@ "fungalize_into": "mon_zornithomimus_fungus", "extend": { "flags": [ "CLIMBS" ] } }, + { + "type": "MONSTER", + "id": "mon_zerizinosaurus_brute", + "name": { "str_sp": "Thundering Therizinosaurus" }, + "copy-from": "mon_zerizinosaurus", + "description": "The shuffling corpse of a huge bipedal dinosaur covered with tattered feathers and black, putrid liquid. Long claws protrude from its hands. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, { "type": "MONSTER", "id": "mon_zothronychus_brute", @@ -431,10 +443,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -455,10 +465,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -479,10 +487,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -504,10 +510,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -528,10 +532,30 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zanchisaurus_brute", + "name": { "str": "American Ammo" }, + "copy-from": "mon_zanchisaurus", + "description": "Long-necked, four-legged dinosaur corpse. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -552,10 +576,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -576,10 +598,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -600,10 +620,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -624,10 +642,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -648,10 +664,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zapatosaurus_BRUTE" }, @@ -672,10 +686,30 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zapatosaurus_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zarosaurus_brute", + "name": { "str": "Barosaurus Brute" }, + "copy-from": "mon_zarosaurus", + "description": "Huge, long-necked, four-legged dinosaur corpse with a long, whip-like tail. There is a large claw on each foreleg. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zapatosaurus_BRUTE" }, @@ -696,10 +730,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zapatosaurus_BRUTE" }, @@ -720,10 +752,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zapatosaurus_BRUTE" }, @@ -744,10 +774,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zapatosaurus_BRUTE" }, @@ -768,10 +796,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -792,10 +818,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -803,6 +827,28 @@ "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, + { + "type": "MONSTER", + "id": "mon_zastonia_brute", + "name": { "str": "Spiked Gauntlet" }, + "copy-from": "mon_zastonia", + "description": "Heavily armored four legged dinosaur corpse with a long tail, a beak, and large shoulder spikes. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, { "type": "MONSTER", "id": "mon_zargoyleosaurus_brute", @@ -816,10 +862,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, @@ -840,10 +884,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, @@ -864,10 +906,30 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zanoplosaurus_brute", + "name": { "str": "Panoply of Pain" }, + "copy-from": "mon_zanoplosaurus", + "description": "This heavily armored four legged dinosaur corpse has a lumpy armored head with a beak and thick plates protecting the cheeks and small short spikes along the sides. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, @@ -888,10 +950,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, @@ -912,10 +972,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, @@ -936,10 +994,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, @@ -952,7 +1008,7 @@ "id": "mon_zankylosaurus_brute", "name": { "str": "Dino Tank" }, "copy-from": "mon_zankylosaurus", - "description": "Heavily-armored zombie dinosaur with a massive spiked tail of bone. Its entire body bulges with distended muscles and swollen, festering wounds.", + "description": "Heavily-armored four legged zombie dinosaur with a beak and a massive spiked tail of bone. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -960,10 +1016,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, @@ -973,34 +1027,54 @@ }, { "type": "MONSTER", - "id": "mon_zamptosaurus_brute", - "name": { "str": "Crusher Camp" }, - "copy-from": "mon_zamptosaurus", - "description": "The shuffling corpse of a large, feathered, bipedal dinosaur with grossly-bulging legs, massive hulking shoulders, and a vicious pointed beak. Its tattered feathers are stained with black, sticky liquid.", + "id": "mon_zuoplocephalus_brute", + "name": { "str": "Horned Horror" }, + "copy-from": "mon_zuoplocephalus", + "description": "This heavily armored four legged dinosaur corpse has a horny beak, two bony rings protecting the neck, a horn studded and bone plated back, and a long tail ending in a heavy club of bone. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, "relative": { "melee_dice": 1, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, - "upgrades": { }, + "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, "special_attacks": [ [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zadrosaurus_brute", - "name": { "str": "Hulking Hadrosaur" }, - "copy-from": "mon_zadrosaurus", - "description": "A bulky, four-legged dinosaur with a beak, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zcolosaurus_brute", + "name": { "str": "Cutler Crusher" }, + "copy-from": "mon_zcolosaurus", + "description": "This heavily armored four legged dinosaur corpse has several long spikes along the back and a long spiked tail ending in a club of bone. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zankylosaurus_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zenontosaurus_brute", + "name": { "str": "Sinewy Striker" }, + "copy-from": "mon_zenontosaurus", + "description": "The shuffling corpse of a feathered dinosaur with grossly-bulging legs, massive hulking shoulders, a vicious pointed beak and long powerful tail. Its tattered feathers are stained with black, sticky liquid.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1008,10 +1082,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -1021,10 +1093,10 @@ }, { "type": "MONSTER", - "id": "mon_zarasaurolophus_brute", - "name": { "str": "Parasaur Punch", "str_pl": "Parasaur Punches" }, - "copy-from": "mon_zarasaurolophus", - "description": "A huge, mottled dinosaur with a blunt head crest, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zryosaurus_brute", + "name": { "str": "Dry Destroyer" }, + "copy-from": "mon_zryosaurus", + "description": "The shuffling corpse of a feathered, bipedal dinosaur with grossly-bulging legs, long thick neck, and a vicious pointed beak. Its tattered feathers are stained with black, sticky liquid.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1032,10 +1104,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -1045,10 +1115,10 @@ }, { "type": "MONSTER", - "id": "mon_zorythosaurus_brute", - "name": { "str": "Cory Crusher" }, - "copy-from": "mon_zorythosaurus", - "description": "A huge, scaly dinosaur with a short beak and a tall head crest, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zamptosaurus_brute", + "name": { "str": "Crusher Camp" }, + "copy-from": "mon_zamptosaurus", + "description": "The shuffling corpse of a large, feathered, bipedal dinosaur with grossly-bulging legs, massive hulking shoulders, and a vicious pointed beak. Its tattered feathers are stained with black, sticky liquid.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1056,10 +1126,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -1069,10 +1137,10 @@ }, { "type": "MONSTER", - "id": "mon_zaiasaura_brute", - "name": { "str": "Mother Crusher" }, - "copy-from": "mon_zaiasaura", - "description": "A huge, mottled dinosaur with hooves and a heavy tail, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zadrosaurus_brute", + "name": { "str": "Hulking Hadrosaur" }, + "copy-from": "mon_zadrosaurus", + "description": "A bulky, four-legged dinosaur with a beak, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1080,10 +1148,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -1093,10 +1159,10 @@ }, { "type": "MONSTER", - "id": "mon_zedmontosaurus_brute", - "name": { "str": "Edmonton Everest" }, - "copy-from": "mon_zedmontosaurus", - "description": "A huge, scaly dinosaur with a broad, toothless beak, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zaiasaura_brute", + "name": { "str": "Mother Crusher" }, + "copy-from": "mon_zaiasaura", + "description": "A huge, mottled dinosaur with hooves and a heavy tail, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1104,10 +1170,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -1118,7 +1182,7 @@ { "type": "MONSTER", "id": "mon_zryposaurus_brute", - "name": { "str": "Agrypo the Destroyer" }, + "name": { "str": "Roman Wrecker" }, "copy-from": "mon_zryposaurus", "description": "A huge, scaly dinosaur with a toothless beak and large nasal arch, dead but walking, eyes vacant and white. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, @@ -1128,10 +1192,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -1141,10 +1203,10 @@ }, { "type": "MONSTER", - "id": "mon_zachycephalosaurus_brute", - "name": { "str": "Skull Breaker" }, - "copy-from": "mon_zachycephalosaurus", - "description": "The shuffling corpse of a medium-sized bipedal dinosaur, covered with tattered feathers and black, putrid liquid. Its hard-looking domed head sits on a body bulging with distended muscles and swollen, festering wounds.", + "id": "mon_zrosaurolophus_brute", + "name": { "str": "Pro Punishment" }, + "copy-from": "mon_zrosaurolophus", + "description": "A huge, scaly dinosaur with hooves, a short beak and a tall head crest, dead but walking, eyes vacant and white. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1152,10 +1214,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { }, @@ -1165,10 +1225,10 @@ }, { "type": "MONSTER", - "id": "mon_zeptoceratops_brute", - "name": { "str_sp": "Leaping Leptoceratops" }, - "copy-from": "mon_zeptoceratops", - "description": "A shambling, four-legged dinosaur corpse with a bony crest and beak. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zaurolophus_brute", + "name": { "str": "Spiked Smasher" }, + "copy-from": "mon_zaurolophus", + "description": "A huge, scaly dinosaur with hooves, a broad beak and a spiky head crest, dead but walking, eyes vacant and white. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1176,23 +1236,21 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, - "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, - "special_attacks": [ [ "SMASH", 30 ], { "type": "leap", "cooldown": 20, "max_range": 5, "allow_no_target": true } ], + "upgrades": { }, + "special_attacks": [ [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zzuniceratops_brute", - "name": { "str": "Zuni Flood" }, - "copy-from": "mon_zzuniceratops", - "description": "A shambling, four-legged dinosaur with a tall thin bony head crest, two long brow horns, and a beak. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zedmontosaurus_brute", + "name": { "str": "Edmonton Everest" }, + "copy-from": "mon_zedmontosaurus", + "description": "A huge, scaly dinosaur with a broad, toothless beak, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1200,23 +1258,21 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, - "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "upgrades": { }, "special_attacks": [ [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zentrosaurus_brute", - "name": { "str": "Pain Central" }, - "copy-from": "mon_zentrosaurus", - "description": "A massive, shambling, rhino-like dinosaur corpse with a beak and long horn above the nose. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zarasaurolophus_brute", + "name": { "str": "Parasaur Punch", "str_pl": "Parasaur Punches" }, + "copy-from": "mon_zarasaurolophus", + "description": "A huge, mottled dinosaur with a blunt head crest, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1224,23 +1280,21 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, - "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "upgrades": { }, "special_attacks": [ [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zachyrhinosaurus_brute", - "name": { "str": "Dino Rhino" }, - "copy-from": "mon_zachyrhinosaurus", - "description": "A massive, shambling, rhino-like dinosaur corpse with two massive bony bosses on its brow and nose. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zambeosaurus_brute", + "name": { "str": "Hatchet Horror" }, + "copy-from": "mon_zambeosaurus", + "description": "A huge, scaly dinosaur with a short beak and a head crest shaped like a hatchet, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1248,47 +1302,43 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, - "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "upgrades": { }, "special_attacks": [ [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zentaceratops_brute", - "name": { "str": "Five Horn Death Punch", "str_pl": "Five Horn Death Punches" }, - "copy-from": "mon_zentaceratops", - "description": "A massive, shambling, rhino-like dinosaur corpse with a tall bony crest from which four long horns and a short nose horn emerge. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zorythosaurus_brute", + "name": { "str": "Cory Crusher" }, + "copy-from": "mon_zorythosaurus", + "description": "A huge, scaly dinosaur with a short beak and a tall head crest, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, "relative": { "melee_dice": 1, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, - "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "upgrades": { }, "special_attacks": [ [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zosmoceratops_brute", - "name": { "str": "Kosmic Horror" }, - "copy-from": "mon_zosmoceratops", - "description": "A massive, shambling, rhino-like dinosaur corpse with a bony crest and two wavy side horns. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zypacrosaurus_brute", + "name": { "str": "Ridgeback Ripper" }, + "copy-from": "mon_zypacrosaurus", + "description": "A huge, scaly dinosaur with a tall ridge down the back, a short beak and a wide, rounded head crest, dead but walking, eyes vacant and swollen. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, @@ -1296,139 +1346,369 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, - "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "upgrades": { }, "special_attacks": [ [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zorosaurus_brute", - "name": { "str": "Bull Dino" }, - "copy-from": "mon_zorosaurus", - "description": "A massive, shambling, rhino-like dinosaur corpse with a bony crest from which two wicked-looking horns emerge. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zachycephalosaurus_brute", + "name": { "str": "Skull Breaker" }, + "copy-from": "mon_zachycephalosaurus", + "description": "The shuffling corpse of a medium-sized bipedal dinosaur, covered with tattered feathers and black, putrid liquid. Its hard-looking domed head sits on a body bulging with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, "relative": { "melee_dice": 1, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, - "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "upgrades": { }, "special_attacks": [ [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zriceratops_brute", - "name": { "str": "Triceratruck" }, - "copy-from": "mon_zriceratops", - "description": "A massive, shambling, rhino-like dinosaur corpse with a bony crest from which three wicked-looking horns emerge. Its eyes ooze black, putrid tears. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zeptoceratops_brute", + "name": { "str_sp": "Leaping Leptoceratops" }, + "copy-from": "mon_zeptoceratops", + "description": "A shambling, four-legged dinosaur corpse with a bony crest and beak. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, "relative": { "melee_dice": 1, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, - "special_attacks": [ [ "SMASH", 30 ] ], + "special_attacks": [ [ "SMASH", 30 ], { "type": "leap", "cooldown": 20, "max_range": 5, "allow_no_target": true } ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zescelosaurus_brute", - "name": { "str_sp": "Godlike Goliath" }, - "copy-from": "mon_zescelosaurus", - "description": "The shuffling corpse of a beaked bipedal dinosaur covered with tattered feathers and black, putrid liquid. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_zzuniceratops_brute", + "name": { "str": "Zuni Flood" }, + "copy-from": "mon_zzuniceratops", + "description": "A four-legged dinosaur with a tall thin bony head crest, two long brow horns, and a beak. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, - "attack_cost": 180, "relative": { "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, - "upgrades": { }, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, "special_attacks": [ [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zteranodon_brute", - "name": { "str": "Winged Horror" }, - "copy-from": "mon_zteranodon", - "description": "The ragged but flying corpse of a large feathered reptile with a long, pointed, toothless beak and a long, pointy head crest. Its entire body bulges with distended muscles and swollen, festering wounds.", + "id": "mon_ztyracosaurus_brute", + "name": { "str": "Spear Lizard" }, + "copy-from": "mon_ztyracosaurus", + "description": "A massive, four-legged dinosaur corpse with a spiked frill, a hooked beak, and a long horn above the nose. Its entire body bulges with distended muscles and swollen, festering wounds.", "diff": 2, "color": "red", "proportional": { "hp": 1.5, "speed": 1.5 }, "relative": { "melee_dice": 1, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, - "upgrades": { }, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, "special_attacks": [ [ "SMASH", 30 ] ], "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, "categories": [ "DINOSAUR" ] }, { "type": "MONSTER", - "id": "mon_zilophosaurus_shady", - "name": { "str": "shady dilophosaurus zombie" }, - "description": "An uncanny shadow envelops this creature. You can make out the outline of a bipedal dinosaur with sharp teeth and bulges on the head.", - "upgrades": { "half_life": 15, "into": "mon_zilophosaurus_nightstalker" }, - "copy-from": "mon_zallimimus_shady", - "looks_like": "mon_dilophosaurus", - "volume": "400 L", - "weight": "400 kg", + "id": "mon_zentrosaurus_brute", + "name": { "str": "Pain Central" }, + "copy-from": "mon_zentrosaurus", + "description": "A massive, rhino-like dinosaur corpse with a beak and long horn above the nose. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zeiniosaurus_brute", + "name": { "str": "Horn Hook" }, + "copy-from": "mon_zeiniosaurus", + "description": "A massive, four-legged dinosaur corpse with a hooked beak, long frill, and long horn curving forward towards the nose. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zachelousaurus_brute", + "name": { "str": "Achelousaurus Anvil" }, + "copy-from": "mon_zachelousaurus", + "description": "A massive, four-legged dinosaur corpse with a tall bony crest with two long curved spikes and three rough bosses above the eyes and nose as well as a short tail and hooked beak. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zachyrhinosaurus_brute", + "name": { "str": "Dino Rhino" }, + "copy-from": "mon_zachyrhinosaurus", + "description": "A massive, shambling, rhino-like dinosaur corpse with two massive bony bosses on its brow and nose. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zasmosaurus_brute", + "name": { "str": "Crashing Chasm", "str_pl": "Five Horn Death Punches" }, + "copy-from": "mon_zasmosaurus", + "description": "A massive, four-legged dinosaur corpse with a tall bony crest from which three short horns emerge above the eyes and beak. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zentaceratops_brute", + "name": { "str": "Five Horn Death Punch", "str_pl": "Five Horn Death Punches" }, + "copy-from": "mon_zentaceratops", + "description": "A massive, shambling, rhino-like dinosaur corpse with a tall bony crest from which four long horns and a short nose horn emerge. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zosmoceratops_brute", + "name": { "str": "Kosmic Horror" }, + "copy-from": "mon_zosmoceratops", + "description": "A massive, shambling, rhino-like dinosaur corpse with a bony crest and two wavy side horns. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zorosaurus_brute", + "name": { "str": "Bull Dino" }, + "copy-from": "mon_zorosaurus", + "description": "A massive, shambling, rhino-like dinosaur corpse with a bony crest from which two wicked-looking horns emerge. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zriceratops_brute", + "name": { "str": "Triceratruck" }, + "copy-from": "mon_zriceratops", + "description": "A massive, shambling, rhino-like dinosaur corpse with a bony crest from which three wicked-looking horns emerge. Its eyes ooze black, putrid tears. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { "half_life": 42, "into_group": "GROUP_zriceratops_BRUTE" }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zescelosaurus_brute", + "name": { "str_sp": "Godlike Goliath" }, + "copy-from": "mon_zescelosaurus", + "description": "The shuffling corpse of a beaked bipedal dinosaur covered with tattered feathers and black, putrid liquid. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "attack_cost": 180, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zteranodon_brute", + "name": { "str": "Winged Horror" }, + "copy-from": "mon_zteranodon", + "description": "The ragged but flying corpse of a large feathered reptile with a long, pointed, toothless beak and a long, pointy head crest. Its entire body bulges with distended muscles and swollen, festering wounds.", + "diff": 2, + "color": "red", + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "upgrades": { }, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zilophosaurus_shady", + "name": { "str": "shady dilophosaurus zombie" }, + "description": "An uncanny shadow envelops this creature. You can make out the outline of a bipedal dinosaur with sharp teeth and bulges on the head.", + "upgrades": { "half_life": 15, "into": "mon_zilophosaurus_nightstalker" }, + "copy-from": "mon_zallimimus_shady", + "looks_like": "mon_dilophosaurus", + "volume": "400 L", + "weight": "400 kg", "speed": 75, "attack_cost": 75, "melee_skill": 4, "melee_dice": 2, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 120, "burn_into": "mon_zilophosaurus_scorched", "fungalize_into": "mon_zilophosaurus_fungus", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -1442,10 +1722,10 @@ "speed": 65, "attack_cost": 65, "melee_dice_sides": 2, - "armor_cut": 5, "hp": 135, "burn_into": "mon_zeratosaurus_scorched", - "fungalize_into": "mon_zeratosaurus_fungus" + "fungalize_into": "mon_zeratosaurus_fungus", + "armor": { "bash": 2, "bullet": 2, "cut": 5 } }, { "type": "MONSTER", @@ -1472,12 +1752,10 @@ "melee_dice": 4, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 6, - "armor_cut": 8, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 430, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab", "cooldown": 7 }, { "id": "teeth_zino_max", "cooldown": 5 } ], "burn_into": "mon_zpinosaurus_scorched", "fungalize_into": "mon_zpinosaurus_fungus", "flags": [ @@ -1497,7 +1775,8 @@ ], "harvest": "zed_dino_leather", "dissect": "dissect_dino_large_pred", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 6, "cut": 8 } }, { "type": "MONSTER", @@ -1524,13 +1803,10 @@ "melee_dice": 4, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], - "armor_bash": 4, - "armor_cut": 3, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 260, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab", "cooldown": 7 }, { "id": "teeth_zino_mid", "cooldown": 5 } ], "burn_into": "mon_zorvosaurus_scorched", "fungalize_into": "mon_zorvosaurus_fungus", "flags": [ @@ -1549,7 +1825,8 @@ ], "harvest": "zed_dino_leather", "dissect": "dissect_dino_large_pred", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 4, "cut": 3, "bullet": 2 } }, { "type": "MONSTER", @@ -1564,13 +1841,10 @@ "melee_dice": 2, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 190, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "id": "teeth_zino_mid", "cooldown": 5 } ], "burn_into": "mon_zallosaurus_scorched", "fungalize_into": "mon_zallosaurus_fungus", "flags": [ @@ -1585,7 +1859,8 @@ "FILTHY", "WARM", "NIGHT_INVISIBILITY" - ] + ], + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -1599,11 +1874,29 @@ "melee_dice": 4, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 11, "hp": 270, - "special_attacks": [ [ "GRAB", 10 ], { "type": "bite", "cooldown": 10 }, [ "LUNGE", 20 ] ], + "special_attacks": [ { "id": "bite_grab" }, { "id": "teeth_zino_mid", "cooldown": 10 }, [ "LUNGE", 20 ] ], "burn_into": "mon_zacrocanthosaurus_scorched", - "fungalize_into": "mon_zacrocanthosaurus_fungus" + "fungalize_into": "mon_zacrocanthosaurus_fungus", + "armor": { "cut": 4, "bullet": 2, "bash": 11 } + }, + { + "type": "MONSTER", + "id": "mon_ziganotosaurus_shady", + "name": { "str": "shady giganotosaurus zombie" }, + "copy-from": "mon_zallosaurus_shady", + "description": "An uncanny shadow envelops this creature. You can make out the outline of a huge, bipedal dinosaur with big, sharp teeth.", + "upgrades": { "half_life": 15, "into": "mon_ziganotosaurus_nightstalker" }, + "speed": 90, + "attack_cost": 90, + "melee_dice": 4, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "hp": 400, + "special_attacks": [ { "id": "bite_grab" }, { "id": "teeth_zino_mid", "cooldown": 10 }, [ "LUNGE", 20 ] ], + "burn_into": "mon_ziganotosaurus_scorched", + "fungalize_into": "mon_ziganotosaurus_fungus", + "armor": { "cut": 4, "bullet": 2, "bash": 4 } }, { "type": "MONSTER", @@ -1615,7 +1908,12 @@ "speed": 60, "attack_cost": 60, "hp": 365, - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ], [ "RANGED_PULL", 20 ], [ "GRAB_DRAG", 10 ] ], + "special_attacks": [ + { "id": "bio_op_takedown", "cooldown": 20 }, + { "id": "ranged_pull", "cooldown": 20 }, + { "id": "grab_drag" }, + { "id": "drag_followup" } + ], "burn_into": "mon_ziats_scorched", "fungalize_into": "mon_ziats_fungus", "categories": [ "DINOSAUR" ] @@ -1629,8 +1927,8 @@ "upgrades": { "half_life": 15, "into": "mon_zryptosaurus_nightstalker" }, "hp": 200, "special_attacks": [ - { "type": "bite", "cooldown": 15 }, - [ "GRAB", 15 ], + { "id": "teeth_zino_mid", "cooldown": 15 }, + { "id": "bite_grab", "cooldown": 15 }, { "type": "leap", "cooldown": 20, "max_range": 5, "allow_no_target": true } ], "burn_into": "mon_zryptosaurus_scorched", @@ -1647,7 +1945,12 @@ "speed": 100, "melee_damage": [ { "damage_type": "cut", "amount": 14 } ], "hp": 220, - "special_attacks": [ { "type": "bite", "cooldown": 15 }, [ "GRAB", 15 ], [ "scratch", 20 ], [ "LUNGE", 20 ] ], + "special_attacks": [ + { "id": "teeth_zino_mid", "cooldown": 15 }, + { "id": "bite_grab", "cooldown": 15 }, + [ "scratch", 20 ], + [ "LUNGE", 20 ] + ], "burn_into": "mon_zappalachiosaurus_scorched", "fungalize_into": "mon_zappalachiosaurus_fungus", "categories": [ "DINOSAUR" ] @@ -1663,7 +1966,12 @@ "attack_cost": 50, "melee_damage": [ { "damage_type": "cut", "amount": 13 } ], "hp": 250, - "special_attacks": [ { "type": "bite", "cooldown": 10 }, [ "GRAB", 15 ], [ "scratch", 20 ], [ "LUNGE", 15 ] ], + "special_attacks": [ + { "id": "teeth_zino_mid", "cooldown": 10 }, + { "id": "bite_grab", "cooldown": 15 }, + [ "scratch", 20 ], + [ "LUNGE", 15 ] + ], "burn_into": "mon_zorgosaurus_scorched", "fungalize_into": "mon_zorgosaurus_fungus", "categories": [ "DINOSAUR" ] @@ -1678,14 +1986,18 @@ "melee_dice": 3, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 14 } ], - "armor_bash": 5, - "armor_cut": 5, - "armor_bullet": 3, "hp": 270, - "special_attacks": [ { "type": "bite", "cooldown": 5 }, [ "GRAB", 7 ], [ "scratch", 20 ], [ "LUNGE", 5 ], [ "LONGSWIPE", 25 ] ], + "special_attacks": [ + { "id": "teeth_zino_mid", "cooldown": 5 }, + { "id": "bite_grab", "cooldown": 7 }, + [ "scratch", 20 ], + [ "LUNGE", 5 ], + [ "LONGSWIPE", 25 ] + ], "burn_into": "mon_zalbertosaurus_scorched", "fungalize_into": "mon_zalbertosaurus_fungus", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 5, "cut": 5, "bullet": 3 } }, { "type": "MONSTER", @@ -1693,6 +2005,7 @@ "name": { "str": "shady qianzhousaurus zombie" }, "copy-from": "mon_zyrannosaurus_shady", "description": "An uncanny shadow envelops this creature. You can make out the outline of a huge, bipedal dinosaur with feathery edges and a large head.", + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab", "cooldown": 7 }, { "id": "teeth_zino_mid", "cooldown": 5 } ], "upgrades": { "half_life": 15, "into": "mon_zianzhousaurus_nightstalker" }, "volume": "550 L", "weight": "770 kg", @@ -1701,19 +2014,18 @@ "melee_dice": 3, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 13 } ], - "armor_bash": 5, - "armor_cut": 5, - "armor_bullet": 3, "hp": 160, "burn_into": "mon_zianzhousaurus_scorched", "fungalize_into": "mon_zianzhousaurus_fungus", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 5, "cut": 5, "bullet": 3 } }, { "type": "MONSTER", "id": "mon_zanuqsaurus_shady", "name": { "str_sp": "shady nanuqsaurus zombie" }, "copy-from": "mon_zyrannosaurus_shady", + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab", "cooldown": 7 }, { "id": "teeth_zino_mid", "cooldown": 5 } ], "upgrades": { "half_life": 15, "into": "mon_zanuqsaurus_nightstalker" }, "melee_dice": 4, "melee_dice_sides": 5, @@ -1763,12 +2075,10 @@ "melee_dice": 5, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 10 } ], - "armor_bash": 6, - "armor_cut": 8, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_lg_theropod_body" ], "hp": 400, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 7 ], { "type": "bite", "cooldown": 5 } ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab", "cooldown": 7 }, { "id": "teeth_zino_max", "cooldown": 5 } ], "burn_into": "mon_zyrannosaurus_scorched", "fungalize_into": "mon_zyrannosaurus_fungus", "flags": [ @@ -1777,6 +2087,7 @@ "HEARS", "PET_MOUNTABLE", "POISON", + "GRABS", "STUMBLES", "BASHES", "DESTROYS", @@ -1788,7 +2099,8 @@ ], "harvest": "zed_dino_feather", "dissect": "dissect_dino_large_pred", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 6, "cut": 8 } }, { "type": "MONSTER", @@ -1815,19 +2127,17 @@ "melee_dice": 1, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 2, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 120, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 } ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 5 } ], "burn_into": "mon_zallimimus_scorched", "fungalize_into": "mon_zallimimus_fungus", "flags": [ "SEES", "SMELLS", "HEARS", + "GRABS", "PET_MOUNTABLE", "POISON", "STUMBLES", @@ -1838,7 +2148,8 @@ "NIGHT_INVISIBILITY" ], "harvest": "zed_dino_feather", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 2, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -1873,26 +2184,45 @@ }, { "type": "MONSTER", - "id": "mon_zothronychus_shady", - "name": { "str": "shady nothronychus zombie" }, + "id": "mon_zerizinosaurus_shady", + "name": { "str": "shady therizinosaurus zombie" }, "copy-from": "mon_zeinonychus_shady", - "description": "An uncanny shadow envelops this creature. You can make out the outline of a bipedal dinosaur with feathery edges. Long curved claws protrude from its hands.", - "upgrades": { "half_life": 15, "into": "mon_zothronychus_nightstalker" }, - "volume": "800 L", + "description": "An uncanny shadow envelops this creature. You can make out the outline of a bipedal dinosaur with feathery edges. Long claws protrude from its hands.", + "upgrades": { "half_life": 15, "into": "mon_zerizinosaurus_nightstalker" }, + "volume": "1000 L", + "weight": "1000 kg", + "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", + "speed": 120, + "attack_cost": 120, + "melee_skill": 3, + "melee_dice": 3, + "melee_dice_sides": 6, + "hp": 320, + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 10 }, [ "LONGSWIPE", 20 ] ], + "burn_into": "mon_zerizinosaurus_scorched", + "fungalize_into": "mon_zerizinosaurus_fungus", + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zothronychus_shady", + "name": { "str": "shady nothronychus zombie" }, + "copy-from": "mon_zeinonychus_shady", + "description": "An uncanny shadow envelops this creature. You can make out the outline of a bipedal dinosaur with feathery edges. Long curved claws protrude from its hands.", + "upgrades": { "half_life": 15, "into": "mon_zothronychus_nightstalker" }, + "volume": "800 L", "weight": "800 kg", "speed": 50, "attack_cost": 50, "melee_skill": 3, "melee_dice": 4, "melee_dice_sides": 4, - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 2, "hp": 160, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 }, [ "LONGSWIPE", 30 ] ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 5 }, [ "LONGSWIPE", 30 ] ], "burn_into": "mon_zothronychus_scorched", "fungalize_into": "mon_zothronychus_fungus", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -1907,14 +2237,12 @@ "melee_skill": 3, "melee_dice": 4, "melee_dice_sides": 4, - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 2, "hp": 120, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 }, [ "LONGSWIPE", 30 ] ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 5 }, [ "LONGSWIPE", 30 ] ], "burn_into": "mon_zanzu_scorched", "fungalize_into": "mon_zanzu_fungus", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -1940,17 +2268,14 @@ "melee_dice": 1, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 2, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 45, "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "scratch", 10 ], - [ "GRAB", 10 ], - { "type": "bite", "cooldown": 5 } + { "id": "bite_grab" }, + { "id": "teeth_zino_mid", "cooldown": 5 } ], "burn_into": "mon_zeinonychus_scorched", "fungalize_into": "mon_zeinonychus_fungus", @@ -1968,7 +2293,8 @@ "NIGHT_INVISIBILITY" ], "harvest": "zed_dino_feather", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -1985,13 +2311,11 @@ "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], - "armor_bash": 3, - "armor_cut": 4, - "armor_bullet": 2, "hp": 130, "burn_into": "mon_zutahraptor_scorched", "fungalize_into": "mon_zutahraptor_fungus", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 3, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -2016,18 +2340,28 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "stab", "amount": 1 } ], - "armor_bash": 16, - "armor_cut": 21, - "armor_bullet": 7, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored" ], "weakpoint_sets": [ "wps_ankylosaurid_body" ], "hp": 375, - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 10 ], { "type": "bite", "cooldown": 5 }, [ "tailsmash_DinoMod", 30 ] ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 5 }, [ "tailsmash_DinoMod", 30 ] ], "burn_into": "mon_zankylosaurus_scorched", "fungalize_into": "mon_zankylosaurus_fungus", - "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "NO_BREATHE", "REVIVES", "FILTHY", "BASHES", "NIGHT_INVISIBILITY" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "GRABS", + "POISON", + "STUMBLES", + "NO_BREATHE", + "REVIVES", + "FILTHY", + "BASHES", + "NIGHT_INVISIBILITY" + ], "harvest": "zed_dino_leather", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 16, "cut": 21, "bullet": 7 } }, { "type": "MONSTER", @@ -2043,15 +2377,13 @@ "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "stab", "amount": 1 } ], - "armor_bash": 5, - "armor_cut": 7, - "armor_bullet": 3, "families": [ "prof_intro_biology", "prof_wp_zombie" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 135, "burn_into": "mon_zescelosaurus_scorched", "fungalize_into": "mon_zescelosaurus_fungus", - "upgrades": { "half_life": 15, "into": "mon_zescelosaurus_nightstalker" } + "upgrades": { "half_life": 15, "into": "mon_zescelosaurus_nightstalker" }, + "armor": { "bash": 5, "cut": 7, "bullet": 3 } }, { "type": "MONSTER", @@ -2065,10 +2397,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2089,10 +2419,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2113,10 +2441,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2137,10 +2463,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2161,10 +2485,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2185,10 +2507,30 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "upgrades": { }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_ziganotosaurus_nightstalker", + "name": { "str_sp": "giganotosaurus nightstalker" }, + "copy-from": "mon_ziganotosaurus_shady", + "looks_like": "mon_ziganotosaurus_shady", + "description": "An uncanny shadow envelops this creature. You can make out the outline of a huge, bipedal dinosaur with big, sharp teeth.", + "diff": 2, + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2209,10 +2551,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2233,10 +2573,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2257,10 +2595,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2281,10 +2617,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2305,10 +2639,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2329,10 +2661,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2353,10 +2683,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2377,10 +2705,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2401,10 +2727,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2425,10 +2749,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2449,10 +2771,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2473,10 +2793,30 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } + }, + "bleed_rate": 50, + "special_attacks": [ [ "SMASH", 30 ] ], + "extend": { "flags": [ "GROUP_BASH", "PUSH_MON", "PUSH_VEH" ] }, + "upgrades": { }, + "categories": [ "DINOSAUR" ] + }, + { + "type": "MONSTER", + "id": "mon_zerizinosaurus_nightstalker", + "name": { "str_sp": "therizinosaurus nightstalker" }, + "copy-from": "mon_zerizinosaurus_shady", + "looks_like": "mon_zerizinosaurus_shady", + "description": "An uncanny shadow envelops this creature. You can make out the outline of a bulky bipedal dinosaur with feathery edges. Long claws protrude from its hands.", + "diff": 2, + "proportional": { "hp": 1.5, "speed": 1.5 }, + "relative": { + "melee_dice": 1, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2497,10 +2837,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2521,10 +2859,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2545,10 +2881,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2569,10 +2903,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2593,10 +2925,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2617,10 +2947,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 50, "special_attacks": [ [ "SMASH", 30 ] ], @@ -2651,21 +2979,17 @@ "melee_dice": 3, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 0, - "armor_cut": 19, - "armor_bullet": 26, - "armor_acid": 3, - "armor_elec": 2, "bleed_rate": 50, "vision_day": 30, "vision_night": 3, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { "half_life": 15, "into": "mon_silophosaurus_brute" }, - "special_attacks": [ [ "scratch", 10 ], { "type": "bite", "cooldown": 5 } ], + "special_attacks": [ [ "scratch", 10 ], { "id": "teeth_zino_mid", "cooldown": 10 } ], "flags": [ "SEES", "HEARS", "PET_MOUNTABLE", "POISON", "NO_BREATHE", "REVIVES", "FILTHY", "HARDTOSHOOT" ], "harvest": "mr_bones", "weakpoint_sets": [ "wps_dinosaur_body" ], - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "bash": 0, "cut": 19, "acid": 3, "bullet": 26, "electric": 2 } }, { "type": "MONSTER", @@ -2740,6 +3064,19 @@ "melee_dice_sides": 8, "upgrades": { "half_life": 15, "into": "mon_sallosaurus_brute" } }, + { + "type": "MONSTER", + "id": "mon_siganotosaurus", + "name": { "str_sp": "skeletal giganotosaurus" }, + "copy-from": "mon_sallosaurus", + "description": "Monstrous columns of dense bone lifting sharp, curved teeth dripping with black goo.", + "speed": 90, + "attack_cost": 90, + "hp": 350, + "melee_dice": 5, + "melee_dice_sides": 8, + "upgrades": { "half_life": 15, "into": "mon_sallosaurus_brute" } + }, { "type": "MONSTER", "id": "mon_skiats", @@ -2750,7 +3087,12 @@ "melee_dice": 3, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ], [ "RANGED_PULL", 20 ], [ "GRAB_DRAG", 10 ] ], + "special_attacks": [ + { "id": "bio_op_takedown", "cooldown": 20 }, + { "id": "ranged_pull", "cooldown": 20 }, + { "id": "grab_drag" }, + { "id": "drag_followup" } + ], "upgrades": { "half_life": 15, "into": "mon_sallosaurus_brute" } }, { @@ -2765,8 +3107,8 @@ "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "cut", "amount": 18 } ], "special_attacks": [ - { "type": "bite", "cooldown": 15 }, - [ "GRAB", 15 ], + { "id": "teeth_zino_mid", "cooldown": 15 }, + { "id": "bite_grab", "cooldown": 15 }, { "type": "leap", "cooldown": 20, "max_range": 5, "allow_no_target": true } ], "upgrades": { "half_life": 15, "into": "mon_syrannosaurus_brute" } @@ -2778,7 +3120,12 @@ "copy-from": "mon_sryptosaurus", "description": "Monstrous columns of dense bone lifting sharp, pointed teeth dripping with black goo.", "hp": 88, - "special_attacks": [ { "type": "bite", "cooldown": 15 }, [ "GRAB", 15 ], [ "scratch", 20 ], [ "LUNGE", 20 ] ] + "special_attacks": [ + { "id": "teeth_zino_mid", "cooldown": 15 }, + { "id": "bite_grab", "cooldown": 15 }, + [ "scratch", 20 ], + [ "LUNGE", 20 ] + ] }, { "type": "MONSTER", @@ -2802,7 +3149,13 @@ "melee_dice": 4, "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "cut", "amount": 18 } ], - "special_attacks": [ { "type": "bite", "cooldown": 5 }, [ "GRAB", 7 ], [ "scratch", 20 ], [ "LUNGE", 5 ], [ "LONGSWIPE", 25 ] ] + "special_attacks": [ + { "id": "teeth_zino_mid", "cooldown": 10 }, + { "id": "bite_grab", "cooldown": 7 }, + [ "scratch", 20 ], + [ "LUNGE", 5 ], + [ "LONGSWIPE", 25 ] + ] }, { "type": "MONSTER", @@ -2836,6 +3189,7 @@ "melee_dice": 5, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 19 } ], + "special_attacks": [ { "id": "teeth_zino_max", "cooldown": 10 }, { "id": "bite_grab", "cooldown": 7 }, [ "scratch", 20 ], [ "LUNGE", 5 ] ], "hp": 120, "weakpoint_sets": [ "wps_lg_theropod_body" ] }, @@ -2851,7 +3205,7 @@ "melee_dice": 5, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 25 } ], - "special_attacks": [ [ "scratch", 10 ], [ "GRAB", 7 ], { "type": "bite", "cooldown": 5 } ] + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab", "cooldown": 7 }, { "id": "teeth_zino_max", "cooldown": 5 } ] }, { "type": "MONSTER", @@ -2893,6 +3247,22 @@ "attack_cost": 109, "extend": { "flags": [ "CLIMBS" ] } }, + { + "type": "MONSTER", + "id": "mon_serizinosaurus", + "name": { "str_sp": "skeletal therizinosaurus" }, + "copy-from": "mon_sallimimus", + "description": "Monstrous columns of dense bone lifting a twisted bony beak dripping with black goo. Long, sharp claws extend from its hands", + "volume": "1000 L", + "weight": "1000 kg", + "//": "When large weights and volumes are fixed this should be 4000 L and 4000 kg", + "speed": 100, + "melee_skill": 3, + "melee_dice": 3, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], + "upgrades": { "half_life": 15, "into": "mon_serizinosaurus_brute" } + }, { "type": "MONSTER", "id": "mon_sothronychus", @@ -2938,8 +3308,8 @@ "special_attacks": [ { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, [ "scratch", 10 ], - [ "GRAB", 10 ], - { "type": "bite", "cooldown": 5 } + { "id": "bite_grab" }, + { "id": "teeth_zino_mid", "cooldown": 5 } ], "vision_day": 20, "vision_night": 10 @@ -2965,25 +3335,46 @@ "copy-from": "mon_zarahsaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, "description": "This zombified sauropod has grown dense bone armor, completely covering the large, two-legged body and long neck.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 8, "bullet": 6, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_sanchisaurus", + "name": { "str_sp": "armored anchisaurus" }, + "copy-from": "mon_zanchisaurus", + "color": "white", + "material": [ "bone" ], + "description": "This zombified sauropod has grown dense bone armor, completely covering the large, four-legged body and long neck.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 8, "bullet": 6, "bash": 0 } }, { "type": "MONSTER", @@ -2992,25 +3383,22 @@ "copy-from": "mon_zissi", "color": "white", "material": [ "bone" ], - "armor_bash": 0, "description": "This zombified sauropod has grown dense bone armor, completely covering the large, two-legged body and long neck.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 8, "bullet": 6, "bash": 0 } }, { "type": "MONSTER", @@ -3019,25 +3407,22 @@ "copy-from": "mon_zaplocanthosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, "description": "This zombified sauropod has grown dense bone armor, completely covering the huge, four-legged body and long neck and tail.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 4, "bullet": 2, "bash": 0 } }, { "type": "MONSTER", @@ -3046,25 +3431,22 @@ "copy-from": "mon_zamargasaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, "description": "Already heavily protected, this zombified amargasaurus has grown even more spikes and denser bone armor, completely covering the massive, four-legged body.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 8, "bullet": 6, "bash": 0 } }, { "type": "MONSTER", @@ -3073,25 +3455,22 @@ "copy-from": "mon_zapatosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, "description": "This zombified apatosaurus has grown dense bone armor, completely covering the massive, four-legged body.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 4, "bullet": 2, "bash": 0 } }, { "type": "MONSTER", @@ -3108,25 +3487,46 @@ "copy-from": "mon_ziplodocus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This zombified diplodocus has grown dense bone armor, completely covering the massive, four-legged body and tiny head.", + "description": "This zombified diplodocus has grown dense bone armor, completely covering the massive, four-legged body and small head.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 4, "bullet": 2, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_sarosaurus", + "name": { "str_sp": "boneplate barosaurus" }, + "copy-from": "mon_zarosaurus", + "color": "white", + "material": [ "bone" ], + "description": "This zombified sauropod has grown dense bone armor, completely covering the massive, four-legged body and small head.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 4, "bullet": 2, "bash": 0 } }, { "type": "MONSTER", @@ -3146,598 +3546,868 @@ }, { "type": "MONSTER", - "id": "mon_salamosaurus", - "name": { "str_sp": "armored alamosaurus" }, - "copy-from": "mon_zalamosaurus", + "id": "mon_salamosaurus", + "name": { "str_sp": "armored alamosaurus" }, + "copy-from": "mon_zalamosaurus", + "color": "white", + "material": [ "bone" ], + "description": "This zombified alamosaurus has grown denser bone armor, completely covering the gigantic, four-legged body and spiked tail.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 19, "bullet": 3, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_sktegosaurus", + "name": { "str_sp": "skeletal stegosaurus" }, + "copy-from": "mon_ztegosaurus", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified stegosaurus has grown thick bone armor below its back plates as well as a larger and spikier bony tail.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 13, "bullet": 2, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_sesperosaurus", + "name": { "str_sp": "skeletal hesperosaurus" }, + "copy-from": "mon_zesperosaurus", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified hesperosaurus has grown thick bone armor below its back plates as well as a larger and spikier bony tail.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 15, "bullet": 2, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_sastonia", + "name": { "str_sp": "armored gastonia" }, + "copy-from": "mon_zastonia", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser bone armor and spikes.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 23, "bullet": 11, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_sargoyleosaurus", + "name": { "str_sp": "armored gargoyleosaurus" }, + "copy-from": "mon_zargoyleosaurus", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser bone armor and spikes.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 13, "bullet": 6, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_skauropelta", + "name": { "str_sp": "armored sauropelta" }, + "copy-from": "mon_zauropelta", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser bone armor and spikes; it must also be even slower, which is hard to imagine.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 23, "bullet": 11, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_sodosaurus", + "name": { "str_sp": "armored nodosaurus" }, + "copy-from": "mon_zodosaurus", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser bone armor; it must also be even slower, which is hard to imagine.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 23, "bullet": 11, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_sanoplosaurus", + "name": { "str_sp": "protected panoplosaurus" }, + "copy-from": "mon_zanoplosaurus", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser bone armor, while keeping the long, bony spikes.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 23, "bullet": 11, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_sedmontonia", + "name": { "str_sp": "armored edmontonia" }, + "copy-from": "mon_zedmontonia", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser bone armor, while keeping the long, bony spikes.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 23, "bullet": 11, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_suul", + "name": { "str_sp": "skeletal zuul" }, + "copy-from": "mon_zzuul", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser spiked bone armor as well as a larger and spikier bony tail. It must be even slower, which is difficult to imagine.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 21, "bullet": 7, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_syoplosaurus", + "name": { "str_sp": "skeletal dyoplosaurus" }, + "copy-from": "mon_zyoplosaurus", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser bone armor as well as a larger and spikier bony tail. It must be even slower, which is difficult to imagine.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 21, "bullet": 7, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_sankylosaurus", + "name": { "str_sp": "armored ankylosaurus" }, + "copy-from": "mon_zankylosaurus", + "looks_like": "mon_ankylosaurus", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser bone armor as well as a larger and spikier bony tail. It must be even slower, which is difficult to imagine.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 23, "bullet": 11, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_suoplocephalus", + "name": { "str_sp": "armored euoplocephalus" }, + "copy-from": "mon_zuoplocephalus", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser bone armor as well as a larger and spikier bony tail. It must be even slower, which is difficult to imagine.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 21, "bullet": 7, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_skcolosaurus", + "name": { "str_sp": "boneplate scolosaurus" }, + "copy-from": "mon_zcolosaurus", + "color": "white", + "material": [ "bone" ], + "description": "Already heavily protected, this zombified four legged dinosaur with a beak and tail has grown even denser bone armor as well as a larger and spikier bony tail. It must be even slower, which is difficult to imagine.", + "proportional": { "hp": 0.4, "speed": 0.875 }, + "relative": { + "melee_dice": 9, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } + }, + "bleed_rate": 50, + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "upgrades": { }, + "extend": { "flags": [ "HARDTOSHOOT" ] }, + "harvest": "mr_bones", + "categories": [ "DINOSAUR" ], + "armor": { "cut": 21, "bullet": 7, "bash": 0 } + }, + { + "type": "MONSTER", + "id": "mon_samptosaurus", + "name": { "str_sp": "armored camptosaurus" }, + "copy-from": "mon_zamptosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This zombified alamosaurus has grown denser bone armor, completely covering the gigantic, four-legged body and spiked tail.", + "description": "This large, four-legged dinosaur corpse with strong legs, broad shoulders, and a pointed beak has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 4, "bullet": 2, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sktegosaurus", - "name": { "str_sp": "skeletal stegosaurus" }, - "copy-from": "mon_ztegosaurus", + "id": "mon_senontosaurus", + "name": { "str_sp": "armored tenontosaurus" }, + "copy-from": "mon_zenontosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "Already heavily protected, this zombified stegosaurus has grown thick bone armor below its back plates as well as a larger and spikier bony tail.", + "description": "This four-legged dinosaur corpse with a beak and large long tail has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, - "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 4, "bullet": 2, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sesperosaurus", - "name": { "str_sp": "skeletal hesperosaurus" }, - "copy-from": "mon_zesperosaurus", + "id": "mon_sryosaurus", + "name": { "str_sp": "armored dryosaurus" }, + "copy-from": "mon_zryosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "Already heavily protected, this zombified hesperosaurus has grown thick bone armor below its back plates as well as a larger and spikier bony tail.", + "description": "This two-legged dinosaur corpse with a long neck and beak has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, - "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 4, "bullet": 2, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sargoyleosaurus", - "name": { "str_sp": "armored gargoyleosaurus" }, - "copy-from": "mon_zargoyleosaurus", + "id": "mon_sadrosaurus", + "name": { "str_sp": "armored hadrosaurus" }, + "copy-from": "mon_zadrosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "Already heavily protected, this zombified gargoyleosaurus has grown even denser bone armor and spikes.", + "description": "This bulky, four-legged dinosaur corpse with a beak has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, - "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_skauropelta", - "name": { "str_sp": "armored sauropelta" }, - "copy-from": "mon_zauropelta", + "id": "mon_saiasaura", + "name": { "str_sp": "armored maiasaura" }, + "copy-from": "mon_zaiasaura", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "Already heavily protected, this zombified nodosaurus has grown even denser bone armor and spikes; it must also be even slower, which is hard to imagine.", + "description": "This large, four-legged dinosaur corpse with a flat beak, thick nose, and small, spiky head crest has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, - "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sodosaurus", - "name": { "str_sp": "armored nodosaurus" }, - "copy-from": "mon_zodosaurus", + "id": "mon_sryposaurus", + "name": { "str_sp": "armored gryposaurus" }, + "copy-from": "mon_zryposaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "Already heavily protected, this zombified nodosaurus has grown even denser bone armor; it must also be even slower, which is hard to imagine.", + "description": "This large, four-legged dinosaur corpse with a toothless beak and powerful nasal arch has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, - "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 6, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sedmontonia", - "name": { "str_sp": "armored edmontonia" }, - "copy-from": "mon_zedmontonia", + "id": "mon_srosaurolophus", + "name": { "str_sp": "protected prosaurolophus" }, + "copy-from": "mon_zrosaurolophus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "Already heavily protected, this zombified edmontonia has grown even denser bone armor, while keeping the long, bony spikes.", + "description": "This large, four-legged dinosaur corpse with hooves, a short beak and a tall head crest has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, - "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 6, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_suul", - "name": { "str_sp": "skeletal zuul" }, - "copy-from": "mon_zzuul", + "id": "mon_skaurolophus", + "name": { "str_sp": "boneplate saurolophus" }, + "copy-from": "mon_zaurolophus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "Already heavily protected, this zombified zuul has grown even denser spiked bone armor as well as a larger and spikier bony tail. It must be even slower, which is difficult to imagine.", + "description": "This large, four-legged dinosaur corpse with hooves, a broad beak and a spiky head crest has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, - "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 6, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_syoplosaurus", - "name": { "str_sp": "skeletal dyoplosaurus" }, - "copy-from": "mon_zyoplosaurus", + "id": "mon_sedmontosaurus", + "name": { "str_sp": "armored edmontosaurus" }, + "copy-from": "mon_zedmontosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "Already heavily protected, this zombified dyoplosaurus has grown even denser bone armor as well as a larger and spikier bony tail. It must be even slower, which is difficult to imagine.", + "description": "This large, four-legged dinosaur corpse with a broad, toothless beak has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, - "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 6, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sankylosaurus", - "name": { "str_sp": "Bone Fortress" }, - "copy-from": "mon_zankylosaurus", - "looks_like": "mon_ankylosaurus", + "id": "mon_sarasaurolophus", + "name": { "str_sp": "armored parasaurolophus" }, + "copy-from": "mon_zarasaurolophus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "Already heavily protected, this zombified ankylosaurus has grown even denser bone armor as well as a larger and spikier bony tail. It must be even slower, which is difficult to imagine.", + "description": "This large, four-legged dinosaur corpse with a blunt head crest has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, - "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_nat_armored", "prof_wp_skeleton" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_samptosaurus", - "name": { "str_sp": "armored camptosaurus" }, - "copy-from": "mon_zamptosaurus", + "id": "mon_sambeosaurus", + "name": { "str_sp": "boneplate lambeosaurus" }, + "copy-from": "mon_zambeosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This large, four-legged dinosaur corpse with strong legs, broad shoulders, and a pointed beak has grown dense bone armor.", + "description": "This large, four-legged dinosaur corpse with a long stiff tail, hooves, a narrow beak and a tall head crest has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 6, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sadrosaurus", - "name": { "str_sp": "armored hadrosaurus" }, - "copy-from": "mon_zadrosaurus", + "id": "mon_sorythosaurus", + "name": { "str_sp": "armored corythosaurus" }, + "copy-from": "mon_zorythosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This bulky, four-legged dinosaur corpse with a beak has grown dense bone armor.", + "description": "This large, four-legged dinosaur corpse with a short beak and a tall head crest has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 6, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sarasaurolophus", - "name": { "str_sp": "armored parasaurolophus" }, - "copy-from": "mon_zarasaurolophus", + "id": "mon_sypacrosaurus", + "name": { "str_sp": "armored hypacrosaurus" }, + "copy-from": "mon_zypacrosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This large, four-legged dinosaur corpse with a blunt head crest has grown dense bone armor.", + "description": "This large, four-legged dinosaur corpse with a tall ridge down the back, a tail, hooves, a short beak and a wide, rounded head crest has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 6, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sorythosaurus", - "name": { "str_sp": "armored corythosaurus" }, - "copy-from": "mon_zorythosaurus", + "id": "mon_sachycephalosaurus", + "name": { "str_sp": "protected pachycephalosaurus" }, + "copy-from": "mon_zachycephalosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This large, four-legged dinosaur corpse with a short beak and a tall head crest has grown dense bone armor.", + "description": "This bipedal dinosaur corpse with a hard-looking, domed head has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 4, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_saiasaura", - "name": { "str_sp": "armored maiasaura" }, - "copy-from": "mon_zaiasaura", + "id": "mon_septoceratops", + "name": { "str_sp": "boneplate leptoceratops" }, + "copy-from": "mon_zeptoceratops", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This large, four-legged dinosaur corpse with a flat beak, thick nose, and small, spiky head crest has grown dense bone armor.", + "description": "This dinosaur corpse with a bony crest and sharp beak has grown dense bone armor over the rest of its body.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sedmontosaurus", - "name": { "str_sp": "armored edmontosaurus" }, - "copy-from": "mon_zedmontosaurus", + "id": "mon_suniceratops", + "name": { "str_sp": "boneplate zuniceratops" }, + "copy-from": "mon_zzuniceratops", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This large, four-legged dinosaur corpse with a broad, toothless beak has grown dense bone armor.", + "description": "This four-legged dinosaur with a tall thin bony head crest, two long brow horns, and a beak has grown dense bone armor over the rest of its body.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sryposaurus", - "name": { "str_sp": "armored gryposaurus" }, - "copy-from": "mon_zryposaurus", + "id": "mon_sktyracosaurus", + "name": { "str_sp": "shielded styracosaurus" }, + "copy-from": "mon_ztyracosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This large, four-legged dinosaur corpse with a toothless beak and powerful nasal arch has grown dense bone armor.", + "description": "This large, four-legged dinosaur corpse with a spiked frill, a hooked beak and long horn above the nose has grown dense bone armor over the rest of its body.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sachycephalosaurus", - "name": { "str_sp": "protected pachycephalosaurus" }, - "copy-from": "mon_zachycephalosaurus", + "id": "mon_sentrosaurus", + "name": { "str_sp": "armored centrosaurus" }, + "copy-from": "mon_zentrosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This bipedal dinosaur corpse with a hard-looking, domed head has grown dense bone armor.", + "description": "This large, four-legged dinosaur corpse with a hooked beak and long horn above the nose has grown dense bone armor over the rest of its body.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_septoceratops", - "name": { "str_sp": "boneplate leptoceratops" }, - "copy-from": "mon_zeptoceratops", + "id": "mon_seiniosaurus", + "name": { "str_sp": "armored einiosaurus" }, + "copy-from": "mon_zeiniosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This dinosaur corpse with a bony crest and sharp beak has grown dense bone armor over the rest of its body.", + "description": "This large, four-legged dinosaur corpse with a tall bony crest and one large horn curving forward towards the beak has grown dense bone armor over the rest of its body.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_suniceratops", - "name": { "str_sp": "boneplate zuniceratops" }, - "copy-from": "mon_zzuniceratops", + "id": "mon_sachelousaurus", + "name": { "str_sp": "armored achelousaurus" }, + "copy-from": "mon_zachelousaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This four-legged dinosaur with a tall thin bony head crest, two long brow horns, and a beak has grown dense bone armor over the rest of its body.", + "description": "This large, four-legged dinosaur corpse with a tall bony crest with two long curved spikes and three rough bosses above the eyes and nose has grown dense bone armor over the rest of its body.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sentrosaurus", - "name": { "str_sp": "armored centrosaurus" }, - "copy-from": "mon_zentrosaurus", + "id": "mon_sachyrhinosaurus", + "name": { "str_sp": "protected pachyrhinosaurus" }, + "copy-from": "mon_zachyrhinosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This large, four-legged dinosaur corpse with a beak and long horn above the nose has grown dense bone armor over the rest of its body.", + "description": "This large, four-legged dinosaur corpse with massive bony bosses on its nose and brow has grown dense bone armor over the rest of its body.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", - "id": "mon_sachyrhinosaurus", - "name": { "str_sp": "protected pachyrhinosaurus" }, - "copy-from": "mon_zachyrhinosaurus", + "id": "mon_sasmosaurus", + "name": { "str_sp": "boneplate chasmosaurus" }, + "copy-from": "mon_zasmosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, - "description": "This large, four-legged dinosaur corpse with massive bony bosses on its nose and brow has grown dense bone armor over the rest of its body.", + "description": "This large, four-legged dinosaur corpse with a tall bony crest from which three short horns emerge above the eyes and beak has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, - "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 9, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", @@ -3746,25 +4416,22 @@ "copy-from": "mon_zentaceratops", "color": "white", "material": [ "bone" ], - "armor_bash": 0, "description": "This large, four-legged dinosaur corpse with a tall bony crest, four long horns, and a short nose horn has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 9, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", @@ -3773,25 +4440,22 @@ "copy-from": "mon_zosmoceratops", "color": "white", "material": [ "bone" ], - "armor_bash": 0, "description": "This large, four-legged dinosaur corpse with a bony crest and two wavy side horns has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "bash", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 4, "bash": 0 } }, { "type": "MONSTER", @@ -3800,25 +4464,22 @@ "copy-from": "mon_zorosaurus", "color": "white", "material": [ "bone" ], - "armor_bash": 0, "description": "This large, four-legged dinosaur corpse with a tall bony crest and two wicked-looking horns has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 9, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", @@ -3827,25 +4488,22 @@ "copy-from": "mon_zriceratops", "color": "white", "material": [ "bone" ], - "armor_bash": 0, "description": "This massive, four-legged dinosaur corpse with a tall bony crest and three wicked-looking horns has grown dense bone armor.", "proportional": { "hp": 0.4, "speed": 0.875 }, "relative": { "melee_dice": 9, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "stab", "amount": 7 } ], - "armor_cut": 22, - "armor_bullet": 30, - "armor_stab": 30, - "armor_acid": 3, - "vision_day": -20 + "vision_day": -20, + "armor": { "cut": 22, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_skeleton" ], "upgrades": { }, "extend": { "flags": [ "HARDTOSHOOT" ] }, "harvest": "mr_bones", - "categories": [ "DINOSAUR" ] + "categories": [ "DINOSAUR" ], + "armor": { "cut": 7, "bullet": 3, "bash": 0 } }, { "type": "MONSTER", @@ -3875,10 +4533,10 @@ "color": "dark_gray_red", "luminance": 20, "proportional": { "hp": 1.5, "speed": 0.8 }, - "relative": { "armor_bash": 30, "armor_cut": 37 }, + "relative": { "armor": { "bash": 30, "cut": 37 } }, "bleed_rate": 50, "extend": { "flags": [ "DRIPS_GASOLINE", "LOUDMOVES" ] }, - "special_attacks": [ [ "GRAB", 30 ], [ "FLAMETHROWER", 30 ] ], + "special_attacks": [ { "id": "bite_grab", "cooldown": 30 }, [ "FLAMETHROWER", 30 ] ], "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_syn_armored" ], "upgrades": { }, "death_drops": [ @@ -3901,10 +4559,10 @@ "color": "dark_gray_red", "luminance": 20, "proportional": { "hp": 1.5, "speed": 0.8 }, - "relative": { "armor_bash": 30, "armor_cut": 37 }, + "relative": { "armor": { "bash": 30, "cut": 37 } }, "bleed_rate": 50, "extend": { "flags": [ "DRIPS_GASOLINE", "LOUDMOVES" ] }, - "special_attacks": [ [ "GRAB", 30 ], [ "FLAMETHROWER", 30 ] ], + "special_attacks": [ { "id": "bite_grab", "cooldown": 30 }, [ "FLAMETHROWER", 30 ] ], "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_syn_armored" ], "upgrades": { }, "death_drops": [ @@ -3927,7 +4585,7 @@ "color": "dark_gray_red", "luminance": 20, "proportional": { "hp": 1.5, "speed": 0.8 }, - "relative": { "armor_bash": 30, "armor_cut": 37, "armor_bullet": 30, "armor_stab": 30, "armor_acid": 3 }, + "relative": { "armor": { "bash": 30, "cut": 37, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "extend": { "flags": [ "DRIPS_GASOLINE", "LOUDMOVES" ] }, "starting_ammo": { "50bmg": 400 }, @@ -3957,8 +4615,7 @@ "upgrades": { }, "death_drops": [ { "item": "mil_plate", "count": 4 }, - { "group": "helicopter", "count": 10 }, - { "group": "mil_hw", "count": 10 }, + { "group": "helicopter", "count": 20 }, { "group": "supplies_metal", "count": 10 } ], "death_function": { "effect": { "id": "death_fireball", "hit_self": true } }, @@ -3975,7 +4632,7 @@ "color": "dark_gray_red", "luminance": 20, "proportional": { "hp": 1.5, "speed": 0.8 }, - "relative": { "armor_bash": 30, "armor_cut": 37, "armor_bullet": 30, "armor_stab": 30, "armor_acid": 3 }, + "relative": { "armor": { "bash": 30, "cut": 37, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "extend": { "flags": [ "DRIPS_GASOLINE", "LOUDMOVES" ] }, "starting_ammo": { "50bmg": 400 }, @@ -4005,8 +4662,7 @@ "upgrades": { }, "death_drops": [ { "item": "mil_plate", "count": 4 }, - { "group": "helicopter", "count": 10 }, - { "group": "mil_hw", "count": 10 }, + { "group": "helicopter", "count": 20 }, { "group": "supplies_metal", "count": 10 } ], "death_function": { "effect": { "id": "death_fireball", "hit_self": true } }, @@ -4023,7 +4679,7 @@ "color": "dark_gray_red", "luminance": 20, "proportional": { "hp": 1.5, "speed": 0.8 }, - "relative": { "armor_bash": 30, "armor_cut": 37, "armor_bullet": 30, "armor_stab": 30, "armor_acid": 3 }, + "relative": { "armor": { "bash": 30, "cut": 37, "stab": 30, "acid": 3, "bullet": 30 } }, "bleed_rate": 50, "extend": { "flags": [ "DRIPS_GASOLINE", "LOUDMOVES" ] }, "starting_ammo": { "50bmg": 400 }, @@ -4053,8 +4709,7 @@ "upgrades": { }, "death_drops": [ { "item": "mil_plate", "count": 4 }, - { "group": "helicopter", "count": 10 }, - { "group": "mil_hw", "count": 10 }, + { "group": "helicopter", "count": 20 }, { "group": "supplies_metal", "count": 10 } ], "death_function": { "effect": { "id": "death_fireball", "hit_self": true } }, @@ -4070,7 +4725,7 @@ "diff": 5, "color": "white_magenta", "proportional": { "hp": 4, "speed": 1.25 }, - "relative": { "melee_dice": 1, "melee_damage": -4, "armor_bash": 4, "armor_cut": 6, "armor_bullet": 5 }, + "relative": { "melee_dice": 1, "melee_damage": -4, "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 0, "special_attacks": [ [ "SMASH", 20 ] ], "upgrades": { } @@ -4085,7 +4740,7 @@ "diff": 5, "color": "white_magenta", "proportional": { "hp": 4, "speed": 1.25 }, - "relative": { "melee_dice": 1, "melee_damage": -4, "armor_bash": 4, "armor_cut": 6, "armor_bullet": 5 }, + "relative": { "melee_dice": 1, "melee_damage": -4, "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 0, "special_attacks": [ [ "SMASH", 20 ] ], "upgrades": { } @@ -4100,7 +4755,7 @@ "diff": 5, "color": "white_magenta", "proportional": { "hp": 4, "speed": 1.25 }, - "relative": { "melee_dice": 1, "melee_damage": -4, "armor_bash": 4, "armor_cut": 6, "armor_bullet": 5 }, + "relative": { "melee_dice": 1, "melee_damage": -4, "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 0, "special_attacks": [ [ "SMASH", 20 ] ], "upgrades": { } @@ -4115,7 +4770,7 @@ "diff": 5, "color": "white_magenta", "proportional": { "hp": 4, "speed": 1.25 }, - "relative": { "melee_dice": 1, "melee_damage": -4, "armor_bash": 4, "armor_cut": 6, "armor_bullet": 5 }, + "relative": { "melee_dice": 1, "melee_damage": -4, "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 0, "special_attacks": [ [ "SMASH", 20 ] ], "upgrades": { } @@ -4130,7 +4785,7 @@ "diff": 5, "color": "white_magenta", "proportional": { "hp": 4, "speed": 1.25 }, - "relative": { "melee_dice": 1, "melee_damage": -4, "armor_bash": 4, "armor_cut": 6, "armor_bullet": 5 }, + "relative": { "melee_dice": 1, "melee_damage": -4, "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "bleed_rate": 0, "special_attacks": [ [ "SMASH", 20 ] ], "upgrades": { } @@ -4146,11 +4801,9 @@ "melee_dice": -1, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 15, - "armor_bullet": 6, "vision_day": 35, - "vision_night": 3 + "vision_night": 3, + "armor": { "bash": 12, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "upgrades": { "half_life": 12, "into": "mon_silophosaurus_hulk" }, @@ -4170,9 +4823,7 @@ "relative": { "melee_dice": 1, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], - "armor_bash": 8, - "armor_cut": 15, - "armor_bullet": 6 + "armor": { "bash": 8, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "special_attacks": [ @@ -4196,11 +4847,9 @@ "melee_dice": -1, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 15, - "armor_bullet": 6, "vision_day": 35, - "vision_night": 3 + "vision_night": 3, + "armor": { "bash": 12, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "upgrades": { "half_life": 12, "into": "mon_skinosaurus_hulk" }, @@ -4220,9 +4869,7 @@ "relative": { "melee_dice": 1, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], - "armor_bash": 8, - "armor_cut": 15, - "armor_bullet": 6 + "armor": { "bash": 8, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "special_attacks": [ @@ -4244,11 +4891,9 @@ "melee_dice": -1, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 15, - "armor_bullet": 6, "vision_day": 35, - "vision_night": 3 + "vision_night": 3, + "armor": { "bash": 12, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "upgrades": { "half_life": 12, "into": "mon_sorvosaurus_hulk" }, @@ -4268,9 +4913,7 @@ "relative": { "melee_dice": 1, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], - "armor_bash": 8, - "armor_cut": 15, - "armor_bullet": 6 + "armor": { "bash": 8, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "special_attacks": [ @@ -4292,11 +4935,9 @@ "melee_dice": -1, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 15, - "armor_bullet": 6, "vision_day": 35, - "vision_night": 3 + "vision_night": 3, + "armor": { "bash": 12, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "upgrades": { "half_life": 12, "into": "mon_sallosaurus_hulk" }, @@ -4316,9 +4957,7 @@ "relative": { "melee_dice": 1, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], - "armor_bash": 8, - "armor_cut": 15, - "armor_bullet": 6 + "armor": { "bash": 8, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "special_attacks": [ @@ -4339,7 +4978,7 @@ "melee_dice": 4, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 30 } ], - "relative": { "armor_bash": 12, "armor_cut": 15, "armor_bullet": 6, "vision_day": 35, "vision_night": 3 }, + "relative": { "vision_day": 35, "vision_night": 3, "armor": { "bash": 12, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "upgrades": { "half_life": 12, "into": "mon_syrannosaurus_hulk" }, "special_attacks": [ @@ -4358,7 +4997,7 @@ "melee_dice": 5, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 35 } ], - "relative": { "armor_bash": 8, "armor_cut": 15, "armor_bullet": 6 }, + "relative": { "armor": { "bash": 8, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "special_attacks": [ { "id": "smash", "throw_strength": 54 }, @@ -4379,11 +5018,9 @@ "melee_dice": -1, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "bash", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 15, - "armor_bullet": 6, "vision_day": 35, - "vision_night": 3 + "vision_night": 3, + "armor": { "bash": 12, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "upgrades": { "half_life": 12, "into": "mon_sallimimus_hulk" }, @@ -4403,9 +5040,53 @@ "relative": { "melee_dice": 1, "melee_damage": [ { "damage_type": "stab", "amount": 5 } ], - "armor_bash": 8, - "armor_cut": 15, - "armor_bullet": 6 + "armor": { "bash": 8, "cut": 15, "bullet": 6 } + }, + "bleed_rate": 0, + "special_attacks": [ + { "id": "smash", "throw_strength": 54 }, + { "id": "stretch_attack" }, + { "id": "longswipe" }, + { "id": "cut_throat" }, + { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 23, "armor_multiplier": 0.8 } ] } + ], + "volume": "1000 L", + "weight": "1000 kg" + }, + { + "type": "MONSTER", + "id": "mon_serizinosaurus_brute", + "name": { "str": "skeletal therizinosaurus brute" }, + "copy-from": "mon_serizinosaurus", + "description": "Distorted outgrowths of calcified bone plates cover this dinosaur's rotting flesh, long neck and claws. Joints and cracks around its body ooze with black goo.", + "proportional": { "hp": 5 }, + "relative": { + "melee_dice": -1, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "vision_day": 35, + "vision_night": 3, + "armor": { "bash": 12, "cut": 15, "bullet": 6 } + }, + "bleed_rate": 0, + "upgrades": { "half_life": 12, "into": "mon_serizinosaurus_hulk" }, + "special_attacks": [ + { "id": "smash", "throw_strength": 56, "cooldown": 45 }, + { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 15, "armor_multiplier": 0.6 } ] } + ] + }, + { + "type": "MONSTER", + "id": "mon_serizinosaurus_hulk", + "name": { "str_sp": "skeletal theropod juggernaut" }, + "copy-from": "mon_serizinosaurus_brute", + "description": "This hideous colossus of plated bones and misshapen flesh drags its heavy, pointed limbs behind it. Already strong and dangerous, bones grew around its form to protect it - only, they kept growing. The shape and twisting clawed arms suggest some kind of two legged dinosaur.", + "diff": 5, + "proportional": { "hp": 2.5 }, + "relative": { + "melee_dice": 1, + "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], + "armor": { "bash": 8, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "special_attacks": [ @@ -4429,11 +5110,9 @@ "melee_dice": -1, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 15, - "armor_bullet": 6, "vision_day": 35, - "vision_night": 3 + "vision_night": 3, + "armor": { "bash": 12, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "upgrades": { "half_life": 12, "into": "mon_sothronychus_hulk" }, @@ -4453,9 +5132,7 @@ "relative": { "melee_dice": 1, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], - "armor_bash": 8, - "armor_cut": 15, - "armor_bullet": 6 + "armor": { "bash": 8, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "special_attacks": [ @@ -4479,11 +5156,9 @@ "melee_dice": -1, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 15, - "armor_bullet": 6, "vision_day": 35, - "vision_night": 3 + "vision_night": 3, + "armor": { "bash": 12, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "upgrades": { "half_life": 12, "into": "mon_sanzu_hulk" }, @@ -4503,9 +5178,7 @@ "relative": { "melee_dice": 1, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], - "armor_bash": 8, - "armor_cut": 15, - "armor_bullet": 6 + "armor": { "bash": 8, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "special_attacks": [ @@ -4529,11 +5202,9 @@ "melee_dice": -1, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 15, - "armor_bullet": 6, "vision_day": 35, - "vision_night": 3 + "vision_night": 3, + "armor": { "bash": 12, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "upgrades": { "half_life": 12, "into": "mon_sutahraptor_hulk" }, @@ -4553,9 +5224,7 @@ "relative": { "melee_dice": 1, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], - "armor_bash": 8, - "armor_cut": 15, - "armor_bullet": 6 + "armor": { "bash": 8, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "special_attacks": [ @@ -4579,11 +5248,9 @@ "melee_dice": -1, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "bash", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 15, - "armor_bullet": 6, "vision_day": 35, - "vision_night": 3 + "vision_night": 3, + "armor": { "bash": 12, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "upgrades": { "half_life": 12, "into": "mon_sescelosaurus_hulk" }, @@ -4603,9 +5270,7 @@ "relative": { "melee_dice": 1, "melee_damage": [ { "damage_type": "stab", "amount": 5 } ], - "armor_bash": 8, - "armor_cut": 15, - "armor_bullet": 6 + "armor": { "bash": 8, "cut": 15, "bullet": 6 } }, "bleed_rate": 0, "special_attacks": [ @@ -4633,7 +5298,7 @@ "morale": 100, "special_attacks": [ [ "ACID_BARF", 10 ] ], "vision_night": 3, - "harvest": "zed_dino_feather", + "harvest": "zed_dino_feather_acid", "categories": [ "DINOSAUR" ], "looks_like": "mon_dilophosaurus", "volume": "400 L", @@ -4644,9 +5309,6 @@ "melee_dice": 2, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_biochemistry" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "hp": 100, @@ -4670,7 +5332,8 @@ "PUSH_MON", "WARM", "RANGED_ATTACKER" - ] + ], + "armor": { "bash": 4, "cut": 4, "bullet": 2 } }, { "type": "MONSTER", @@ -4687,7 +5350,7 @@ "morale": 100, "special_attacks": [ [ "ACID_BARF", 10 ] ], "vision_night": 3, - "harvest": "zed_dino_feather", + "harvest": "zed_dino_feather_acid", "dissect": "dissect_dino_large_pred", "categories": [ "DINOSAUR" ], "looks_like": "mon_zyrannosaurus", @@ -4700,9 +5363,6 @@ "melee_dice": 2, "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 5, - "armor_bullet": 2, "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_biochemistry" ], "weakpoint_sets": [ "wps_dinosaur_body" ], "description": "This zombie is enormous, scaly, and studded with bony spikes. Sticky yellow fluid oozes out from sores in the scales.", @@ -4726,6 +5386,7 @@ "WARM", "SWIMS", "RANGED_ATTACKER" - ] + ], + "armor": { "bash": 4, "cut": 5, "bullet": 2 } } ] diff --git a/data/Mainline_mods/Mods/DinoMod/mutations/dreams.json b/data/Mainline_mods/Mods/DinoMod/mutations/dreams.json index b855404d6..71cb34840 100644 --- a/data/Mainline_mods/Mods/DinoMod/mutations/dreams.json +++ b/data/Mainline_mods/Mods/DinoMod/mutations/dreams.json @@ -64,5 +64,41 @@ ], "category": "STEGO", "strength": 4 + }, + { + "type": "dream", + "messages": [ + "The warm sun upon your skin after escaping from a hard shell.", + "You dream of eating the largest fern you've ever seen." + ], + "category": "HORNS", + "strength": 1 + }, + { + "type": "dream", + "messages": [ + "Large, you are becoming larger every day. Majestic horns, to protect you from the world and show your power. These are the gifts you are receiving.", + "You dream of before the Cataclysm, but you are different somehow. The other humans all seem so flat and weak to you." + ], + "category": "HORNS", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "Wandering peacefully through the woods with your family, easily knocking down anything in your path, fearing nothing.", + "Why is this world so cold compared to the one in your dreams?" + ], + "category": "HORNS", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "Giant teeth come down on you, finding horns. The screaming and blood is not yours.", + "While you are not the most feared, your majestic horns and powerful herd command respect." + ], + "category": "HORNS", + "strength": 4 } ] diff --git a/data/Mainline_mods/Mods/DinoMod/mutations/mutations.json b/data/Mainline_mods/Mods/DinoMod/mutations/mutations.json index 506d78aee..419cd6599 100644 --- a/data/Mainline_mods/Mods/DinoMod/mutations/mutations.json +++ b/data/Mainline_mods/Mods/DinoMod/mutations/mutations.json @@ -55,23 +55,45 @@ "ignored_by": [ "BIRD" ], "threshold": true }, + { + "type": "mutation_category", + "id": "HORNS", + "name": "Horns", + "threshold_mut": "THRESH_HORNS", + "mutagen_message": "You feel your face, scalp, and neck stretch and change into something greater.", + "memorial_message": "Got the horns.", + "vitamin": "mutagen_horns" + }, + { + "type": "mutation", + "id": "THRESH_HORNS", + "name": { "str": "Horns" }, + "points": 1, + "description": "Big, strong, fierce, brave, and a loyal friend, always leading with horns.", + "valid": false, + "profession": true, + "purifiable": false, + "anger_relations": [ [ "DINOSAUR", -20 ], [ "REPTILE", -20 ], [ "PLANT", 20 ], [ "MAMMAL", -20 ] ], + "ignored_by": [ "BIRD" ], + "threshold": true + }, { "type": "mutation", "id": "HERBIVORE", "copy-from": "HERBIVORE", - "extend": { "category": [ "STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ] } }, { "type": "mutation", "id": "RUMINANT", "copy-from": "RUMINANT", - "extend": { "category": [ "STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ] } }, { "type": "mutation", "id": "GRAZER", "copy-from": "GRAZER", - "extend": { "category": [ "STEGO" ], "threshreq": [ "THRESH_STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ], "threshreq": [ "THRESH_STEGO", "THRESH_HORNS" ] } }, { "type": "mutation", @@ -83,52 +105,47 @@ "type": "mutation", "id": "PAINRESIST", "copy-from": "PAINRESIST", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "TOUGH_FEET", "copy-from": "TOUGH_FEET", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "TOUGH", "copy-from": "TOUGH", "valid": true, - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "TOUGH2", "copy-from": "TOUGH2", "valid": true, - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "TOUGH3", "copy-from": "TOUGH3", "valid": true, - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "THICKSKIN2", "name": { "str": "Tough-Skinned" }, "points": 3, - "description": "Your skin is getting tougher. Cutting and bash damage are more reduced for you. Makes you less dextrous though.", + "description": "Your skin is getting tougher. Greatly improves protection against all sorts of damage. Makes you less dextrous though.", "prereqs": "THICKSKIN", "cancels": "THINSKIN", - "category": [ "STEGO", "TYRANT" ], - "armor": [ - { - "parts": [ "torso", "head", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth" ], - "cut": 4, - "bash": 4, - "bullet": 1 - } - ], + "category": [ "STEGO", "TYRANT", "HORNS" ], + "changes_to": [ "THICKSKIN3" ], + "armor": [ { "part_types": [ "tail" ], "cut": 14, "bash": 10 } ], + "integrated_armor": [ "integrated_reptilescales" ], "passive_mods": { "dex_mod": -1 } }, { @@ -136,19 +153,13 @@ "id": "THICKSKIN3", "name": { "str": "Diamond-Skinned" }, "points": 4, - "description": "Your skin is developing Kevlar-like qualities. Makes you slower though.", + "description": "Your skin is developing Kevlar-like qualities. Makes you slower though, and is rather cumbersome.", "prereqs": "THICKSKIN2", "cancels": "THINSKIN", "threshreq": "THRESH_STEGO", "category": [ "STEGO" ], - "armor": [ - { - "parts": [ "torso", "head", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth" ], - "cut": 6, - "bash": 6, - "bullet": 6 - } - ], + "armor": [ { "part_types": [ "tail" ], "cut": 24, "bash": 20 } ], + "integrated_armor": [ "integrated_stegoskin" ], "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "SPEED", "multiply": -0.05 } ] } ] }, { @@ -160,13 +171,13 @@ "prereqs": "STRONGBACK", "cancels": [ "BADBACK" ], "weight_capacity_modifier": 1.7, - "category": [ "STEGO", "TYRANT" ] + "category": [ "STEGO", "TYRANT", "HORNS" ] }, { "type": "mutation", "id": "DEFT", "copy-from": "DEFT", - "extend": { "category": [ "TYRANT" ] } + "extend": { "category": [ "TYRANT", "HORNS" ] } }, { "type": "mutation", @@ -178,7 +189,7 @@ "type": "mutation", "id": "ANIMALEMPATH", "copy-from": "ANIMALEMPATH", - "extend": { "category": [ "STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ] } }, { "type": "mutation", @@ -196,13 +207,13 @@ "type": "mutation", "id": "SLOWLEARNER", "copy-from": "SLOWLEARNER", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "VEGETARIAN", "copy-from": "VEGETARIAN", - "extend": { "category": [ "STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ] } }, { "type": "mutation", @@ -220,7 +231,7 @@ "type": "mutation", "id": "ANTIJUNK", "copy-from": "ANTIJUNK", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", @@ -230,9 +241,9 @@ }, { "type": "mutation", - "id": "SKIN_ROUGH", - "copy-from": "SKIN_ROUGH", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "id": "SKIN_PEELING", + "copy-from": "SKIN_PEELING", + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", @@ -246,17 +257,23 @@ "copy-from": "LIZ_IR", "extend": { "category": [ "STEGO", "TYRANT" ] } }, + { + "type": "mutation", + "id": "SPARSE_SCALES", + "copy-from": "SPARSE_SCALES", + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } + }, { "type": "mutation", "id": "SCALES", "copy-from": "SCALES", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "NAILS", "copy-from": "NAILS", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", @@ -287,8 +304,8 @@ "destroys_gear": true, "social_modifiers": { "intimidate": 20 }, "attacks": { - "attack_text_u": "You tear into %s with your serrated teeth", - "attack_text_npc": "%1$s tears into %2$s with their serrated teeth", + "attack_text_u": "You tear into %s with your serrated teeth!", + "attack_text_npc": "%1$s tears into %2$s with their serrated teeth!", "body_part": "mouth", "chance": 20, "base_damage": { "damage_type": "stab", "amount": 30 }, @@ -299,19 +316,46 @@ "type": "mutation", "id": "HEADBUMPS", "copy-from": "HEADBUMPS", - "extend": { "category": [ "STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ] } }, { "type": "mutation", "id": "HORNS", "copy-from": "HORNS", - "extend": { "category": [ "STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ] } + }, + { + "type": "mutation", + "id": "HORNS_POINTED", + "copy-from": "HORNS_POINTED", + "extend": { "category": [ "HORNS" ] } + }, + { + "type": "mutation", + "id": "HORNS_CURLED", + "copy-from": "HORNS_CURLED", + "extend": { "category": [ "HORNS" ] } + }, + { + "type": "mutation", + "id": "HORNS_TRI", + "name": { "str": "Triceratops Horns" }, + "description": "You have three long, pointed horns, like those of a triceratops. They allow you to make a strong piercing headbutt attack, but prevent wearing headwear that is not made of fabric.", + "prereqs": [ "HORNS_POINTED", "HORNS_CURLED" ], + "attacks": { + "attack_text_u": "You stab %s with your three pointed horns!", + "attack_text_npc": "%1$s stabs %2$s with their three pointed horns!", + "chance": 33, + "base_damage": { "damage_type": "stab", "amount": 36 } + }, + "copy-from": "HORNS_POINTED", + "extend": { "category": [ "HORNS" ], "threshreq": [ "THRESH_HORNS" ] } }, { "type": "mutation", "id": "TAIL_STUB", "copy-from": "TAIL_STUB", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", @@ -323,7 +367,7 @@ "type": "mutation", "id": "TAIL_THICK", "copy-from": "TAIL_THICK", - "extend": { "category": [ "STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ] } }, { "type": "mutation", @@ -340,8 +384,8 @@ "restricts_gear": [ "leg_l", "leg_r" ], "allow_soft_gear": true, "attacks": { - "attack_text_u": "You smash %s with your tail", - "attack_text_npc": "%1$s smashes %2$s with their tail", + "attack_text_u": "You smash %s with your tail!", + "attack_text_npc": "%1$s smashes %2$s with their tail!", "chance": 20, "base_damage": { "damage_type": "bash", "amount": 24 }, "strength_damage": { "damage_type": "stab", "amount": 2 } @@ -352,7 +396,7 @@ "type": "mutation", "id": "MUT_TOUGH", "copy-from": "MUT_TOUGH", - "extend": { "category": [ "STEGO", "TYRANT" ], "threshreq": [ "THRESH_STEGO", "THRESH_TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ], "threshreq": [ "THRESH_STEGO", "THRESH_TYRANT", "THRESH_HORNS" ] } }, { "type": "mutation", @@ -400,31 +444,37 @@ "type": "mutation", "id": "LARGE", "copy-from": "LARGE", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } + }, + { + "type": "mutation", + "id": "DENSE_BONES", + "copy-from": "DENSE_BONES", + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "LARGE_OK", "copy-from": "LARGE_OK", - "extend": { "category": [ "STEGO", "TYRANT" ], "threshreq": [ "THRESH_STEGO", "THRESH_TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ], "threshreq": [ "THRESH_STEGO", "THRESH_TYRANT", "THRESH_HORNS" ] } }, { "type": "mutation", "id": "HUGE", "copy-from": "HUGE", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "HUGE_OK", "copy-from": "HUGE_OK", - "extend": { "category": [ "STEGO", "TYRANT" ], "threshreq": [ "THRESH_STEGO", "THRESH_TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ], "threshreq": [ "THRESH_STEGO", "THRESH_TYRANT", "THRESH_HORNS" ] } }, { "type": "mutation", "id": "SLIT_NOSTRILS", "copy-from": "SLIT_NOSTRILS", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", @@ -448,19 +498,19 @@ "type": "mutation", "id": "THIRST", "copy-from": "THIRST", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "THIRST2", "copy-from": "THIRST2", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "THIRST3", "copy-from": "THIRST3", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", @@ -478,61 +528,61 @@ "type": "mutation", "id": "COLDBLOOD", "copy-from": "COLDBLOOD", - "extend": { "category": [ "STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ] } }, { "type": "mutation", "id": "COLDBLOOD2", "copy-from": "COLDBLOOD2", - "extend": { "category": [ "STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ] } }, { "type": "mutation", "id": "COLDBLOOD3", "copy-from": "COLDBLOOD3", - "extend": { "category": [ "STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ] } }, { "type": "mutation", "id": "COLDBLOOD4", "copy-from": "COLDBLOOD4", - "extend": { "category": [ "STEGO" ], "threshreq": [ "THRESH_STEGO" ] } + "extend": { "category": [ "STEGO", "HORNS" ], "threshreq": [ "THRESH_STEGO", "THRESH_HORNS" ] } }, { "type": "mutation", "id": "STR_UP", "copy-from": "STR_UP", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "STR_UP_2", "copy-from": "STR_UP_2", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "STR_UP_3", "copy-from": "STR_UP_3", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ], "threshreq": [ "THRESH_STEGO", "THRESH_TYRANT", "THRESH_HORNS" ] } }, { "type": "mutation", "id": "STR_UP_4", "copy-from": "STR_UP_4", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ], "threshreq": [ "THRESH_STEGO", "THRESH_TYRANT", "THRESH_HORNS" ] } }, { "type": "mutation", "id": "THICKSKIN", "copy-from": "THICKSKIN", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", "id": "STRONGBACK", "copy-from": "STRONGBACK", - "extend": { "category": [ "STEGO", "TYRANT" ] } + "extend": { "category": [ "STEGO", "TYRANT", "HORNS" ] } }, { "type": "mutation", @@ -545,5 +595,54 @@ "id": "TAIL_CLUB", "copy-from": "TAIL_CLUB", "extend": { "category": [ "STEGO" ] } + }, + { + "type": "mutation", + "id": "FLEET", + "copy-from": "FLEET", + "extend": { "category": [ "HORNS" ] } + }, + { + "type": "mutation", + "id": "SNOUT", + "copy-from": "SNOUT", + "extend": { "category": [ "HORNS", "STEGO" ] } + }, + { + "type": "mutation", + "id": "BEAK", + "copy-from": "BEAK", + "extend": { "category": [ "HORNS", "STEGO" ] } + }, + { + "type": "mutation", + "id": "LIGHTEATER", + "copy-from": "LIGHTEATER", + "extend": { "category": [ "HORNS", "STEGO" ] } + }, + { + "type": "mutation", + "id": "GIZZARD", + "copy-from": "GIZZARD", + "extend": { "category": [ "HORNS", "STEGO" ] } + }, + { + "type": "mutation", + "id": "HOOVES", + "copy-from": "HOOVES", + "extend": { "category": [ "HORNS" ] } + }, + { + "type": "mutation", + "id": "PACK_LEADER", + "name": { "str": "Pack Leader" }, + "points": 4, + "description": "Puny as they may seem, a leader needs a pack, and some of those hairless bipeds may yet prove some worth. You gain combat skills at an elevated rate, and maintain a level of critical thinking that supports cooperation.", + "social_modifiers": { "intimidate": 4 }, + "purifiable": false, + "prereqs": [ "GRAZER" ], + "prereqs2": [ "HORNS" ], + "threshreq": [ "THRESH_HORNS" ], + "category": [ "HORNS" ] } ] diff --git a/data/Mainline_mods/Mods/DinoMod/obsolete/monsters.json b/data/Mainline_mods/Mods/DinoMod/obsolete/monsters.json index 2dd9c0936..ddcfb3390 100644 --- a/data/Mainline_mods/Mods/DinoMod/obsolete/monsters.json +++ b/data/Mainline_mods/Mods/DinoMod/obsolete/monsters.json @@ -13,12 +13,10 @@ "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 1, "hp": 50, "description": "The raggedly flying corpse of a feathered reptile over three feet long, with short wings and a big colorful beak.", - "upgrades": { } + "upgrades": { }, + "armor": { "bash": 4, "cut": 4, "bullet": 1 } }, { "type": "MONSTER", @@ -33,10 +31,8 @@ "melee_dice": 1, "melee_dice_sides": 5, "melee_damage": 2, - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, - "vision_night": 1 + "vision_night": 1, + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, "upgrades": { }, "special_attacks": [ [ "SMASH", 30 ] ], @@ -50,7 +46,7 @@ "copy-from": "mon_zimorphodon", "diff": 5, "proportional": { "hp": 1.2, "speed": 1.15 }, - "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor_bash": 3, "armor_cut": 3, "armor_bullet": 3 }, + "relative": { "melee_skill": 2, "melee_dice": 1, "dodge": 2, "armor": { "bash": 3, "cut": 3, "bullet": 3 } }, "extend": { "flags": [ "ACIDPROOF", "ELECTRIC" ] }, "melee_damage": [ { "damage_type": "electric", "amount": 4 } ], "vision_day": 100, diff --git a/data/Mainline_mods/Mods/DinoMod/overmap/map_extras.json b/data/Mainline_mods/Mods/DinoMod/overmap/map_extras.json index b82e10f3a..cb7ac0fb1 100644 --- a/data/Mainline_mods/Mods/DinoMod/overmap/map_extras.json +++ b/data/Mainline_mods/Mods/DinoMod/overmap/map_extras.json @@ -11,6 +11,17 @@ "autonote": true, "flags": [ "MAN_MADE" ] }, + { + "id": "mx_nest_achelousaurus", + "type": "map_extra", + "name": { "str": "achelousaurus nest" }, + "description": "An achelousaurus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_achelousaurus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_acrocanthosaurus", "type": "map_extra", @@ -44,6 +55,17 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_anchisaurus", + "type": "map_extra", + "name": { "str": "anchisaurus nest" }, + "description": "An anchisaurus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_anchisaurus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_ankylosaurus", "type": "map_extra", @@ -110,6 +132,17 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_chasmosaurus", + "type": "map_extra", + "name": { "str": "chasmosaurus nest" }, + "description": "A chasmosaurus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_chasmosaurus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_coelophysis", "type": "map_extra", @@ -231,6 +264,28 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_einiosaurus", + "type": "map_extra", + "name": { "str": "einiosaurus nest" }, + "description": "An einiosaurus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_einiosaurus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, + { + "id": "mx_nest_euoplocephalus", + "type": "map_extra", + "name": { "str": "euoplocephalus nest" }, + "description": "An euoplocephalus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_euoplocephalus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_gallimimus", "type": "map_extra", @@ -253,6 +308,17 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_gastonia", + "type": "map_extra", + "name": { "str": "gastonia nest" }, + "description": "A gastonia nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_gastonia" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_gorgosaurus", "type": "map_extra", @@ -297,6 +363,17 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_hypacrosaurus", + "type": "map_extra", + "name": { "str": "hypacrosaurus nest" }, + "description": "A hypacrosaurus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_hypacrosaurus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_issi", "type": "map_extra", @@ -319,6 +396,17 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_lambeosaurus", + "type": "map_extra", + "name": { "str": "lambeosaurus nest" }, + "description": "A lambeosaurus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_lambeosaurus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_maiasaura", "type": "map_extra", @@ -396,6 +484,17 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_panoplosaurus", + "type": "map_extra", + "name": { "str": "panoplosaurus nest" }, + "description": "A panoplosaurus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_panoplosaurus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_parasaurolophus", "type": "map_extra", @@ -418,6 +517,17 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_prosaurolophus", + "type": "map_extra", + "name": { "str": "prosaurolophus nest" }, + "description": "A prosaurolophus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_prosaurolophus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_sarahsaurus", "type": "map_extra", @@ -429,6 +539,17 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_saurolophus", + "type": "map_extra", + "name": { "str": "saurolophus nest" }, + "description": "A saurolophus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_saurolophus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_sauropelta", "type": "map_extra", @@ -451,6 +572,17 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_scolosaurus", + "type": "map_extra", + "name": { "str": "scolosaurus nest" }, + "description": "A scolosaurus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_scolosaurus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_scutellosaurus", "type": "map_extra", @@ -517,6 +649,39 @@ "autonote": true, "flags": [ "CLASSIC" ] }, + { + "id": "mx_nest_styracosaurus", + "type": "map_extra", + "name": { "str": "styracosaurus nest" }, + "description": "A styracosaurus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_styracosaurus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, + { + "id": "mx_nest_tawa", + "type": "map_extra", + "name": { "str": "tawa nest" }, + "description": "A tawa nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_tawa" }, + "sym": "D", + "color": "yellow", + "autonote": true, + "flags": [ "CLASSIC" ] + }, + { + "id": "mx_nest_tenontosaurus", + "type": "map_extra", + "name": { "str": "tenontosaurus nest" }, + "description": "A tenontosaurus nest.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nest_tenontosaurus" }, + "sym": "D", + "color": "light_green", + "autonote": true, + "flags": [ "CLASSIC" ] + }, { "id": "mx_nest_thescelosaurus", "type": "map_extra", diff --git a/data/Mainline_mods/Mods/DinoMod/overmap/overmap_specials.json b/data/Mainline_mods/Mods/DinoMod/overmap/overmap_specials.json index 3aa394465..31c3b8c82 100644 --- a/data/Mainline_mods/Mods/DinoMod/overmap/overmap_specials.json +++ b/data/Mainline_mods/Mods/DinoMod/overmap/overmap_specials.json @@ -11,7 +11,7 @@ "city_distance": [ 10, -1 ], "city_sizes": [ 0, 20 ], "occurrences": [ 0, 2 ], - "flags": [ "WILDERNESS" ], + "flags": [ "WILDERNESS", "MAN_MADE" ], "rotate": false }, { diff --git a/data/Mainline_mods/Mods/DinoMod/recipes/food_egg.json b/data/Mainline_mods/Mods/DinoMod/recipes/food_egg.json index 13b3b40bc..827f23ddd 100644 --- a/data/Mainline_mods/Mods/DinoMod/recipes/food_egg.json +++ b/data/Mainline_mods/Mods/DinoMod/recipes/food_egg.json @@ -11,10 +11,10 @@ "time": "28 m", "autolearn": true, "batch_time_factors": [ 80, 2 ], - "result_mult": 20, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ] ], - "components": [ [ [ "eggs_dino", 1, "LIST" ] ] ] + "components": [ [ [ "eggs_dino", 1, "LIST" ] ] ], + "charges": 40 }, { "type": "recipe", @@ -28,10 +28,10 @@ "time": "52 m", "autolearn": true, "batch_time_factors": [ 80, 2 ], - "result_mult": 40, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 80, "LIST" ] ] ], - "components": [ [ [ "eggs_dino_large", 1, "LIST" ] ] ] + "components": [ [ [ "eggs_dino_large", 1, "LIST" ] ] ], + "charges": 80 }, { "type": "recipe", @@ -45,10 +45,10 @@ "time": "21 m", "autolearn": true, "batch_time_factors": [ 80, 2 ], - "result_mult": 20, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ] ], - "components": [ [ [ "eggs_dino", 1, "LIST" ] ], [ [ "any_butter_or_oil", 40, "LIST" ] ] ] + "components": [ [ [ "eggs_dino", 1, "LIST" ] ], [ [ "any_butter_or_oil", 40, "LIST" ] ] ], + "charges": 20 }, { "type": "recipe", @@ -62,10 +62,10 @@ "time": "37 m", "autolearn": true, "batch_time_factors": [ 80, 2 ], - "result_mult": 40, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 80, "LIST" ] ] ], - "components": [ [ [ "eggs_dino_large", 1, "LIST" ] ], [ [ "any_butter_or_oil", 80, "LIST" ] ] ] + "components": [ [ [ "eggs_dino_large", 1, "LIST" ] ], [ [ "any_butter_or_oil", 80, "LIST" ] ] ], + "charges": 40 }, { "type": "recipe", @@ -79,7 +79,6 @@ "time": "28 m", "autolearn": true, "batch_time_factors": [ 80, 2 ], - "result_mult": 20, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ] ], "components": [ @@ -87,7 +86,8 @@ [ [ "any_butter_or_oil", 40, "LIST" ] ], [ [ "bread_sandwich", 40, "LIST" ] ], [ [ "condiment", 40, "LIST" ] ] - ] + ], + "charges": 20 }, { "type": "recipe", @@ -101,7 +101,6 @@ "time": "28 m", "autolearn": true, "batch_time_factors": [ 80, 2 ], - "result_mult": 20, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ] ], "components": [ @@ -109,7 +108,8 @@ [ [ "any_butter_or_oil", 40, "LIST" ] ], [ [ "bread_sandwich_wheat_free", 40, "LIST" ] ], [ [ "condiment", 40, "LIST" ] ] - ] + ], + "charges": 20 }, { "type": "recipe", @@ -123,7 +123,6 @@ "time": "38 m", "autolearn": true, "batch_time_factors": [ 80, 2 ], - "result_mult": 20, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ] ], "components": [ @@ -134,7 +133,8 @@ [ [ "salt", 40 ], [ "soysauce", 40 ], [ "seasoning_salt", 40 ], [ "pepper", 80 ] ], [ [ "condiment", 40, "LIST" ] ], [ [ "bread_sandwich", 40, "LIST" ] ] - ] + ], + "charges": 20 }, { "type": "recipe", @@ -148,7 +148,6 @@ "time": "38 m", "autolearn": true, "batch_time_factors": [ 80, 2 ], - "result_mult": 20, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ] ], "components": [ @@ -159,7 +158,8 @@ [ [ "salt", 40 ], [ "soysauce", 40 ], [ "seasoning_salt", 40 ], [ "pepper", 80 ] ], [ [ "condiment", 40, "LIST" ] ], [ [ "bread_sandwich_wheat_free", 40, "LIST" ] ] - ] + ], + "charges": 20 }, { "type": "recipe", @@ -216,11 +216,11 @@ "skill_used": "cooking", "difficulty": 1, "time": "60 m", - "result_mult": 20, "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 40, "LIST" ] ] ], - "components": [ [ [ "eggs_dino", 1, "LIST" ] ], [ [ "meat_cooked", 20, "LIST" ] ] ] + "components": [ [ [ "eggs_dino", 1, "LIST" ] ], [ [ "meat_cooked", 20, "LIST" ] ] ], + "charges": 60 }, { "type": "recipe", @@ -232,7 +232,6 @@ "skill_used": "cooking", "difficulty": 3, "time": "240 m", - "result_mult": 40, "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 320, "LIST" ] ] ], @@ -243,7 +242,8 @@ [ [ "syrup", 40 ] ], [ [ "any_butter_or_oil", 40, "LIST" ] ], [ [ "water", 40 ], [ "water_clean", 40 ] ] - ] + ], + "charges": 160 }, { "type": "recipe", @@ -255,7 +255,6 @@ "skill_used": "cooking", "difficulty": 3, "time": "240 m", - "result_mult": 40, "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 320, "LIST" ] ] ], @@ -267,7 +266,8 @@ [ [ "any_butter_or_oil", 40, "LIST" ] ], [ [ "water", 40 ], [ "water_clean", 40 ] ], [ [ "sweet_fruit_like", 40, "LIST" ], [ "jam_fruit", 40 ] ] - ] + ], + "charges": 40 }, { "type": "recipe", @@ -279,7 +279,6 @@ "skill_used": "cooking", "difficulty": 3, "time": "240 m", - "result_mult": 40, "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 320, "LIST" ] ] ], @@ -291,7 +290,8 @@ [ [ "any_butter_or_oil", 40, "LIST" ] ], [ [ "water", 40 ], [ "water_clean", 40 ] ], [ [ "chocolate", 40 ], [ "choc_drink", 80 ] ] - ] + ], + "charges": 40 }, { "type": "recipe", @@ -303,8 +303,7 @@ "skill_used": "cooking", "difficulty": 3, "time": "240 m", - "result_mult": 40, - "charges": 3, + "charges": 120, "autolearn": true, "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 320, "LIST" ] ] ], @@ -325,7 +324,6 @@ "skill_used": "cooking", "difficulty": 3, "time": "240 m", - "result_mult": 40, "autolearn": true, "tools": [ [ [ "surface_heat", 320, "LIST" ] ], [ [ "waffleiron", -1 ] ] ], "components": [ @@ -336,7 +334,8 @@ [ [ "sugar", 80 ], [ "artificial_sweetener", 80 ] ], [ [ "any_butter_or_oil", 40, "LIST" ] ], [ [ "water", 40 ], [ "water_clean", 40 ] ] - ] + ], + "charges": 40 }, { "type": "recipe", @@ -348,7 +347,6 @@ "skill_used": "cooking", "difficulty": 3, "time": "240 m", - "result_mult": 40, "autolearn": true, "tools": [ [ [ "surface_heat", 320, "LIST" ] ], [ [ "waffleiron", -1 ] ] ], "components": [ @@ -360,7 +358,8 @@ [ [ "any_butter_or_oil", 40, "LIST" ] ], [ [ "water", 40 ], [ "water_clean", 40 ] ], [ [ "sweet_fruit_like", 40, "LIST" ], [ "jam_fruit", 40 ] ] - ] + ], + "charges": 40 }, { "type": "recipe", @@ -372,7 +371,6 @@ "skill_used": "cooking", "difficulty": 3, "time": "240 m", - "result_mult": 40, "autolearn": true, "tools": [ [ [ "surface_heat", 320, "LIST" ] ], [ [ "waffleiron", -1 ] ] ], "components": [ @@ -384,7 +382,8 @@ [ [ "any_butter_or_oil", 40, "LIST" ] ], [ [ "water", 40 ], [ "water_clean", 40 ] ], [ [ "chocolate", 40 ], [ "choc_drink", 80 ] ] - ] + ], + "charges": 40 }, { "type": "recipe", @@ -395,9 +394,8 @@ "subcategory": "CSC_FOOD_DRY", "skill_used": "cooking", "difficulty": 2, - "charges": 30, + "charges": 90, "time": "30 m", - "result_mult": 3, "autolearn": true, "batch_time_factors": [ 67, 5 ], "tools": [ [ [ "dehydrator", 60 ], [ "char_smoker", 60 ] ] ], @@ -412,9 +410,8 @@ "subcategory": "CSC_FOOD_DRY", "skill_used": "cooking", "difficulty": 2, - "charges": 30, + "charges": 90, "time": "34 m", - "result_mult": 3, "autolearn": true, "batch_time_factors": [ 67, 5 ], "tools": [ [ [ "dehydrator", 60 ], [ "char_smoker", 60 ] ], [ [ "surface_heat", 15, "LIST" ] ] ], @@ -429,9 +426,8 @@ "subcategory": "CSC_FOOD_DRY", "skill_used": "cooking", "difficulty": 2, - "charges": 70, + "charges": 490, "time": "40 m", - "result_mult": 7, "autolearn": true, "batch_time_factors": [ 67, 5 ], "tools": [ [ [ "dehydrator", 140 ], [ "char_smoker", 140 ] ] ], @@ -446,9 +442,8 @@ "subcategory": "CSC_FOOD_DRY", "skill_used": "cooking", "difficulty": 2, - "charges": 70, + "charges": 490, "time": "60 m", - "result_mult": 7, "autolearn": true, "batch_time_factors": [ 67, 5 ], "tools": [ [ [ "dehydrator", 140 ], [ "char_smoker", 140 ] ], [ [ "surface_heat", 35, "LIST" ] ] ], diff --git a/data/Mainline_mods/Mods/DinoMod/recipes/head.json b/data/Mainline_mods/Mods/DinoMod/recipes/head.json new file mode 100644 index 000000000..62f1a171f --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/recipes/head.json @@ -0,0 +1,198 @@ +[ + { + "result": "helmet_dino", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "tailor", + "difficulty": 4, + "time": "4 h", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "skull_dino_small", 1 ], [ "skull_dino_med", 1 ], [ "skull_dino_large", 1 ] ] ], + "using": [ [ "tailoring_leather_patchwork", 2 ] ], + "byproducts": [ [ "leather", 3 ], [ "scrap_leather", 1 ], [ "meal_bone", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_carving" } + ] + }, + { + "result": "helmet_ceratopsian", + "type": "recipe", + "id_suffix": "triceratops", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "tailor", + "difficulty": 4, + "time": "4 h", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "skull_triceratops", 1 ] ] ], + "using": [ [ "tailoring_leather_patchwork", 2 ] ], + "byproducts": [ [ "leather", 3 ], [ "scrap_leather", 1 ], [ "meal_bone", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_carving" } + ] + }, + { + "result": "helmet_ceratopsian", + "type": "recipe", + "id_suffix": "centrosaurus", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "tailor", + "difficulty": 4, + "time": "4 h", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "skull_centrosaurus", 1 ] ] ], + "using": [ [ "tailoring_leather_patchwork", 2 ] ], + "byproducts": [ [ "leather", 3 ], [ "scrap_leather", 1 ], [ "meal_bone", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_carving" } + ] + }, + { + "result": "helmet_ceratopsian", + "type": "recipe", + "id_suffix": "torosaurus", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "tailor", + "difficulty": 4, + "time": "4 h", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "skull_torosaurus", 1 ] ] ], + "using": [ [ "tailoring_leather_patchwork", 2 ] ], + "byproducts": [ [ "leather", 3 ], [ "scrap_leather", 1 ], [ "meal_bone", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_carving" } + ] + }, + { + "result": "helmet_ceratopsian", + "type": "recipe", + "id_suffix": "styracosaurus", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "tailor", + "difficulty": 4, + "time": "4 h", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "skull_styracosaurus", 1 ] ] ], + "using": [ [ "tailoring_leather_patchwork", 2 ] ], + "byproducts": [ [ "leather", 3 ], [ "scrap_leather", 1 ], [ "meal_bone", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_carving" } + ] + }, + { + "result": "helmet_dino_pred", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "tailor", + "difficulty": 4, + "time": "4 h", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "skull_dino_pred_small", 1 ], [ "skull_dino_pred_med", 1 ], [ "skull_dino_pred_large", 1 ] ] ], + "using": [ [ "tailoring_leather_patchwork", 2 ] ], + "byproducts": [ [ "leather", 3 ], [ "scrap_leather", 1 ], [ "meal_bone", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_carving" } + ] + }, + { + "result": "helmet_dino_pred", + "type": "recipe", + "id_suffix": "tyrannosaurus", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "tailor", + "difficulty": 4, + "time": "4 h", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "skull_tyrannosaurus", 1 ] ] ], + "using": [ [ "tailoring_leather_patchwork", 2 ] ], + "byproducts": [ [ "leather", 3 ], [ "scrap_leather", 1 ], [ "meal_bone", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_carving" } + ] + }, + { + "result": "helmet_dino_pred", + "type": "recipe", + "id_suffix": "allosaurus", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "tailor", + "difficulty": 4, + "time": "4 h", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "skull_allosaurus", 1 ] ] ], + "using": [ [ "tailoring_leather_patchwork", 2 ] ], + "byproducts": [ [ "leather", 3 ], [ "scrap_leather", 1 ], [ "meal_bone", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_carving" } + ] + }, + { + "result": "helmet_dino_pred", + "type": "recipe", + "id_suffix": "acrocanthosaurus", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "tailor", + "difficulty": 4, + "time": "4 h", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "skull_acrocanthosaurus", 1 ] ] ], + "using": [ [ "tailoring_leather_patchwork", 2 ] ], + "byproducts": [ [ "leather", 3 ], [ "scrap_leather", 1 ], [ "meal_bone", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_carving" } + ] + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/recipes/medsandchemicals.json b/data/Mainline_mods/Mods/DinoMod/recipes/medsandchemicals.json index f9492937b..60205f003 100644 --- a/data/Mainline_mods/Mods/DinoMod/recipes/medsandchemicals.json +++ b/data/Mainline_mods/Mods/DinoMod/recipes/medsandchemicals.json @@ -45,17 +45,56 @@ [ [ "mutagen", 1 ] ], [ [ "stego_sample", 1 ] ], [ - [ "egg_edmontonia", 1 ], + [ "egg_scutellosaurus", 1 ], + [ "egg_stegosaurus", 1 ], + [ "egg_hesperosaurus", 1 ], + [ "egg_gargoyleosaurus", 1 ], + [ "egg_sauropelta", 1 ], [ "egg_nodosaurus", 1 ], - [ "egg_ankylosaurus", 1 ], + [ "egg_edmontonia", 1 ], + [ "egg_zuul", 1 ], [ "egg_dyoplosaurus", 1 ], - [ "egg_stegosaurus", 1 ], - [ "egg_scutellosaurus", 1 ], + [ "egg_ankylosaurus", 1 ], [ "stego_sample", 1 ] ], [ [ "bone", 1 ], [ "stego_sample", 1 ] ] ] }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mutagen_horns", + "category": "CC_CHEM", + "subcategory": "CSC_CHEM_MUTAGEN", + "skill_used": "chemistry", + "skills_required": [ "firstaid", 1 ], + "difficulty": 8, + "time": "45 m", + "book_learn": [ [ "kiernans_notes", 8 ] ], + "qualities": [ { "id": "CHEM", "level": 3 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], + "components": [ + [ [ "mutagen", 1 ] ], + [ [ "horns_sample", 1 ] ], + [ + [ "egg_aquilops", 1 ], + [ "egg_leptoceratops", 1 ], + [ "egg_zuniceratops", 1 ], + [ "egg_styracosaurus", 1 ], + [ "egg_centrosaurus", 1 ], + [ "egg_einiosaurus", 1 ], + [ "egg_achelousaurus", 1 ], + [ "egg_pachyrhinosaurus", 1 ], + [ "egg_chasmosaurus", 1 ], + [ "egg_pentaceratops", 1 ], + [ "egg_kosmoceratops", 1 ], + [ "egg_torosaurus", 1 ], + [ "egg_triceratops", 1 ], + [ "horns_sample", 1 ] + ], + [ [ "bone", 1 ], [ "horns_sample", 1 ] ] + ] + }, { "type": "recipe", "activity_level": "LIGHT_EXERCISE", @@ -118,6 +157,22 @@ "components": [ [ [ "mutagen_stego", 2 ] ], [ [ "stego_sample", 1 ] ] ], "flags": [ "SECRET" ] }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "iv_mutagen_horns", + "category": "CC_CHEM", + "subcategory": "CSC_CHEM_MUTAGEN", + "skill_used": "chemistry", + "skills_required": [ "firstaid", 3 ], + "difficulty": 7, + "time": "2 h", + "batch_time_factors": [ 20, 5 ], + "book_learn": [ [ "kiernans_notes", 9 ] ], + "using": [ [ "serum_production_standard", 37 ] ], + "components": [ [ [ "mutagen_horns", 2 ] ], [ [ "horns_sample", 1 ] ] ], + "flags": [ "SECRET" ] + }, { "type": "recipe", "activity_level": "LIGHT_EXERCISE", diff --git a/data/Mainline_mods/Mods/DinoMod/recipes/offal_dishes.json b/data/Mainline_mods/Mods/DinoMod/recipes/offal_dishes.json index b063a559e..4de479f55 100644 --- a/data/Mainline_mods/Mods/DinoMod/recipes/offal_dishes.json +++ b/data/Mainline_mods/Mods/DinoMod/recipes/offal_dishes.json @@ -10,9 +10,8 @@ "skill_used": "cooking", "skills_required": [ "survival", 2 ], "time": "220 m", - "charges": 8, + "charges": 32, "book_learn": [ [ "cookbook", 1 ], [ "scots_cookbook", 2 ] ], - "result_mult": 4, "difficulty": 3, "qualities": [ { "id": "CUT", "level": 2 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 100, "LIST" ] ] ], @@ -52,10 +51,9 @@ "difficulty": 5, "time": "180 m", "batch_time_factors": [ 83, 5 ], - "charges": 240, + "charges": 960, "byproducts": [ [ "ruined_chunks", 8 ] ], "book_learn": [ [ "offalcooking", 3 ] ], - "result_mult": 4, "qualities": [ { "id": "COOK", "level": 2 }, { "id": "CUT_FINE", "level": 1 } ], "components": [ [ [ "stomach_sauropod", 1 ] ], [ [ "salt", 80 ] ], [ [ "water", 8 ], [ "water_clean", 8 ] ] ] } diff --git a/data/Mainline_mods/Mods/DinoMod/recipes/pets_bear.json b/data/Mainline_mods/Mods/DinoMod/recipes/pets_bear.json new file mode 100644 index 000000000..3bfdc4836 --- /dev/null +++ b/data/Mainline_mods/Mods/DinoMod/recipes/pets_bear.json @@ -0,0 +1,305 @@ +[ + { + "result": "acidchitin_armor_bear", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "copy-from": "armor_acidchitin", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skills_required": [ [ "survival", 4 ], [ "firstaid", 2 ], [ "fabrication", 4 ] ], + "time": "8 h 30 m", + "using": [ [ "cordage", 7 ] ], + "components": [ [ [ "acidchitin_piece", 84 ] ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_chitinworking" }, + { "proficiency": "prof_closures" } + ] + }, + { + "result": "chitin_armor_bear", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "copy-from": "armor_chitin", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "time": "8 h 30 m", + "book_learn": [ [ "textbook_tailor", 5 ], [ "tailor_portfolio", 5 ] ], + "skills_required": [ [ "fabrication", 4 ] ], + "using": [ [ "cordage", 7 ] ], + "components": [ [ [ "chitin_piece", 84 ] ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_chitinworking" }, + { "proficiency": "prof_closures" } + ] + }, + { + "result": "chainmail_armor_bear", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "copy-from": "lc_chainmail_vest", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "time": "6 h 30 m", + "reversible": true, + "using": [ [ "chainmail_standard", 7 ], [ "clasps", 4 ] ], + "components": [ + [ [ "lc_link_sheet", 35 ] ], + [ [ "lc_chain_link", 917 ] ], + [ [ "lc_wire", 7 ] ], + [ [ "fur", 42 ], [ "tanned_pelt", 7 ], [ "leather", 42 ], [ "tanned_hide", 7 ] ] + ], + "proficiencies": [ + { "proficiency": "prof_chain_armour" }, + { "proficiency": "prof_closures" }, + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 2, "skill_penalty": 0.2 } + ] + }, + { + "result": "kevlar_armor_bear", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skill_used": "tailor", + "difficulty": 6, + "time": "12 h 30 m", + "reversible": true, + "autolearn": true, + "using": [ [ "sewing_standard", 190 ], [ "clasps", 4 ] ], + "components": [ [ [ "sheet_kevlar_layered", 56 ] ], [ [ "cotton_patchwork", 42 ] ], [ [ "leather", 24 ], [ "tanned_hide", 4 ] ] ], + "proficiencies": [ { "proficiency": "prof_polymerworking" }, { "proficiency": "prof_closures" } ] + }, + { + "result": "leather_armor_bear", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skill_used": "tailor", + "difficulty": 3, + "time": "4 h 30 m", + "byproducts": [ [ "leather", 21 ] ], + "using": [ [ "sewing_standard", 30 ], [ "clasps", 4 ] ], + "components": [ [ [ "armor_blarmor", 3 ] ], [ [ "cotton_patchwork", 18 ] ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_closures" }, + { "proficiency": "prof_leatherworking" } + ] + }, + { + "result": "leather_armor_bear", + "type": "recipe", + "copy-from": "armor_blarmor", + "id_suffix": "from_scratch", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "activity_level": "LIGHT_EXERCISE", + "skills_required": [ "tailor", 6 ], + "time": "10 h 30 m", + "autolearn": true, + "reversible": true, + "using": [ [ "sewing_standard", 190 ], [ "surface_heat", 60 ], [ "clasps", 4 ] ], + "components": [ + [ [ "water", 30 ], [ "water_clean", 30 ] ], + [ + [ "wax", 6 ], + [ "tallow", 24 ], + [ "mutant_tallow", 24 ], + [ "human_tallow", 24 ], + [ "demihuman_tallow", 24 ], + [ "tallow_tainted", 24 ], + [ "vinegar", 30 ], + [ "pine_bough", 60 ] + ], + [ [ "salt", 150 ] ], + [ [ "leather", 105 ], [ "tanned_hide", 17 ] ], + [ [ "cotton_patchwork", 18 ] ] + ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_closures" }, + { "proficiency": "prof_leatherworking" } + ] + }, + { + "result": "leatherbone_armor_bear", + "type": "recipe", + "copy-from": "leather_armor_bear", + "activity_level": "LIGHT_EXERCISE", + "difficulty": 4, + "time": "6 h 30 m", + "using": [ [ "sewing_standard", 75 ], [ "clasps", 4 ] ], + "components": [ [ [ "bone", 39 ], [ "bone_human", 39 ], [ "bone_demihuman", 39 ] ], [ [ "armor_blarmor", 3 ] ] ], + "extend": { "proficiencies": [ { "proficiency": "prof_closures" }, { "proficiency": "prof_carving" } ] } + }, + { + "result": "leatherbone_armor_bear", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "id_suffix": "from_leatherarmor", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skill_used": "tailor", + "difficulty": 4, + "time": "6 h 30 m", + "autolearn": true, + "byproducts": [ [ "cotton_patchwork", 6 ] ], + "using": [ [ "sewing_standard", 35 ], [ "clasps", 4 ] ], + "components": [ [ [ "bone_sturdy", 39, "LIST" ] ], [ [ "leather_armor_bear", 1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_closures" }, + { "proficiency": "prof_carving" } + ] + }, + { + "result": "leatherbone_armor_bear", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "id_suffix": "from_scratch", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skill_used": "chemistry", + "difficulty": 4, + "skills_required": [ "tailor", 6 ], + "time": "12 h 30 m", + "reversible": true, + "book_learn": [ + [ "textbook_tailor", 4 ], + [ "tailor_portfolio", 5 ], + [ "textbook_survival", 3 ], + [ "trappers_companion", 3 ], + [ "survival_book", 3 ], + [ "textbook_armwest", 6 ], + [ "textbook_armschina", 6 ] + ], + "using": [ [ "sewing_standard", 225 ], [ "clasps", 4 ] ], + "tools": [ [ [ "surface_heat", 60, "LIST" ] ] ], + "components": [ + [ [ "water", 30 ], [ "water_clean", 30 ] ], + [ [ "wax", 6 ], [ "any_tallow", 24, "LIST" ], [ "vinegar", 30 ], [ "pine_bough", 60 ] ], + [ [ "salt", 150 ] ], + [ [ "bone_sturdy", 39, "LIST" ] ], + [ [ "leather", 105 ], [ "tanned_hide", 17 ] ] + ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_closures" }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_carving" } + ] + }, + { + "result": "rubber_armor_bear", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skill_used": "tailor", + "difficulty": 4, + "skills_required": [ "fabrication", 3 ], + "time": "2 h", + "autolearn": true, + "using": [ [ "clasps", 4 ] ], + "qualities": [ { "id": "SEW", "level": 1 }, { "id": "CUT", "level": 2 } ], + "components": [ [ [ "duct_tape", 175 ] ], [ [ "coat_rain", 7 ] ] ], + "proficiencies": [ { "proficiency": "prof_closures_waterproofing" }, { "proficiency": "prof_closures" } ] + }, + { + "result": "rubber_armor_bear", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "id_suffix": "from_scratch", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skill_used": "tailor", + "difficulty": 5, + "skills_required": [ "fabrication", 3 ], + "time": "3 h", + "autolearn": true, + "using": [ [ "clasps", 4 ] ], + "qualities": [ { "id": "SEW", "level": 1 }, { "id": "CUT", "level": 2 } ], + "components": [ [ [ "duct_tape", 350 ] ], [ [ "bag_plastic", 70 ] ], [ [ "cotton_patchwork", 70 ] ] ], + "proficiencies": [ { "proficiency": "prof_closures_waterproofing" }, { "proficiency": "prof_closures" } ] + }, + { + "result": "sweater_armor_bear", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skill_used": "tailor", + "difficulty": 3, + "time": "50 h", + "autolearn": true, + "reversible": true, + "proficiencies": [ { "proficiency": "prof_knitting" }, { "proficiency": "prof_knitting_speed" } ], + "using": [ [ "tailoring_wool_knitting", 5000 ] ] + }, + { + "result": "iron_armor_bear", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "copy-from": "armor_plarmor", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skills_required": [ "tailor", 3 ], + "time": "24 h", + "book_learn": [ [ "textbook_tailor", 5 ], [ "tailor_portfolio", 5 ], [ "textbook_armwest", 4 ], [ "textbook_armschina", 4 ] ], + "using": [ [ "sewing_standard", 260 ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 1.1, "skill_penalty": 0.15 }, + { "proficiency": "prof_closures", "time_multiplier": 1.1 }, + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_articulation" } + ], + "components": [ [ [ "steel_chunk", 60 ], [ "scrap", 180 ] ], [ [ "leather_armor_bear", 1 ] ] ] + }, + { + "result": "bronze_armor_bear", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "copy-from": "cuirass_bronze", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skills_required": [ "fabrication", 5 ], + "time": "24 h", + "book_learn": [ [ "textbook_armwest", 4 ], [ "recipe_melee", 4 ] ], + "using": [ [ "forging_standard", 120 ], [ "bronzesmithing_tools", 10 ] ], + "components": [ [ [ "scrap_bronze", 60 ] ], [ [ "leather_armor_bear", 1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 1.1, "skill_penalty": 0.15 }, + { "proficiency": "prof_closures", "time_multiplier": 1.1 }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_redsmithing" }, + { "proficiency": "prof_articulation" } + ] + }, + { + "result": "steel_armor_bear", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "copy-from": "armor_lightplate", + "category": "CC_ANIMALS", + "subcategory": "CSC_ANIMALS_BEAR ARMOR", + "skills_required": [ "fabrication", 8 ], + "time": "96 h", + "book_learn": [ [ "textbook_armwest", 7 ] ], + "using": [ [ "blacksmithing_standard", 800 ], [ "steel_standard", 200 ], [ "fabric_leather_fur_hide", 30 ] ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 1.1, "skill_penalty": 0.15 }, + { "proficiency": "prof_closures", "time_multiplier": 1.1 }, + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_armorsmithing" }, + { "proficiency": "prof_articulation" } + ], + "tools": [ [ [ "swage", -1 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/DinoMod/recipes/pets_elephant.json b/data/Mainline_mods/Mods/DinoMod/recipes/pets_elephant.json index 8e978092f..98df6a6c0 100644 --- a/data/Mainline_mods/Mods/DinoMod/recipes/pets_elephant.json +++ b/data/Mainline_mods/Mods/DinoMod/recipes/pets_elephant.json @@ -53,7 +53,7 @@ "proficiencies": [ { "proficiency": "prof_chain_armour" }, { "proficiency": "prof_closures" }, - { "proficiency": "prof_leatherworking_basic", "time_multiplier": 2, "fail_multiplier": 1.2 } + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 2, "skill_penalty": 0.2 } ] }, { @@ -251,7 +251,7 @@ "book_learn": [ [ "textbook_tailor", 5 ], [ "tailor_portfolio", 5 ], [ "textbook_armwest", 4 ], [ "textbook_armschina", 4 ] ], "using": [ [ "sewing_standard", 260 ] ], "proficiencies": [ - { "proficiency": "prof_leatherworking_basic", "fail_multiplier": 1.15, "time_multiplier": 1.1 }, + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 1.1, "skill_penalty": 0.15 }, { "proficiency": "prof_closures", "time_multiplier": 1.1 }, { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, @@ -273,7 +273,7 @@ "using": [ [ "forging_standard", 120 ], [ "bronzesmithing_tools", 10 ] ], "components": [ [ [ "scrap_bronze", 60 ] ], [ [ "leather_armor_elephant", 1 ] ] ], "proficiencies": [ - { "proficiency": "prof_leatherworking_basic", "fail_multiplier": 1.15, "time_multiplier": 1.1 }, + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 1.1, "skill_penalty": 0.15 }, { "proficiency": "prof_closures", "time_multiplier": 1.1 }, { "proficiency": "prof_armorsmithing" }, { "proficiency": "prof_redsmithing" }, @@ -293,7 +293,7 @@ "using": [ [ "blacksmithing_standard", 800 ], [ "steel_standard", 200 ], [ "fabric_leather_fur_hide", 30 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "proficiencies": [ - { "proficiency": "prof_leatherworking_basic", "fail_multiplier": 1.15, "time_multiplier": 1.1 }, + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 1.1, "skill_penalty": 0.15 }, { "proficiency": "prof_closures", "time_multiplier": 1.1 }, { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, diff --git a/data/Mainline_mods/Mods/DinoMod/recipes/pets_ostrich.json b/data/Mainline_mods/Mods/DinoMod/recipes/pets_ostrich.json index f71caba7d..ebb5ae55c 100644 --- a/data/Mainline_mods/Mods/DinoMod/recipes/pets_ostrich.json +++ b/data/Mainline_mods/Mods/DinoMod/recipes/pets_ostrich.json @@ -53,7 +53,7 @@ "proficiencies": [ { "proficiency": "prof_chain_armour" }, { "proficiency": "prof_closures" }, - { "proficiency": "prof_leatherworking_basic", "time_multiplier": 2, "fail_multiplier": 1.2 } + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 2, "skill_penalty": 0.2 } ] }, { @@ -251,7 +251,7 @@ "book_learn": [ [ "textbook_tailor", 5 ], [ "tailor_portfolio", 5 ], [ "textbook_armwest", 4 ], [ "textbook_armschina", 4 ] ], "using": [ [ "sewing_standard", 260 ] ], "proficiencies": [ - { "proficiency": "prof_leatherworking_basic", "fail_multiplier": 1.15, "time_multiplier": 1.1 }, + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 1.1, "skill_penalty": 0.15 }, { "proficiency": "prof_closures", "time_multiplier": 1.1 }, { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, @@ -273,7 +273,7 @@ "using": [ [ "forging_standard", 120 ], [ "bronzesmithing_tools", 10 ] ], "components": [ [ [ "scrap_bronze", 60 ] ], [ [ "leather_armor_ostrich", 1 ] ] ], "proficiencies": [ - { "proficiency": "prof_leatherworking_basic", "fail_multiplier": 1.15, "time_multiplier": 1.1 }, + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 1.1, "skill_penalty": 0.15 }, { "proficiency": "prof_closures", "time_multiplier": 1.1 }, { "proficiency": "prof_armorsmithing" }, { "proficiency": "prof_redsmithing" }, @@ -293,7 +293,7 @@ "using": [ [ "blacksmithing_standard", 800 ], [ "steel_standard", 200 ], [ "fabric_leather_fur_hide", 30 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], "proficiencies": [ - { "proficiency": "prof_leatherworking_basic", "fail_multiplier": 1.15, "time_multiplier": 1.1 }, + { "proficiency": "prof_leatherworking_basic", "time_multiplier": 1.1, "skill_penalty": 0.15 }, { "proficiency": "prof_closures", "time_multiplier": 1.1 }, { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, diff --git a/data/Mainline_mods/Mods/DinoMod/recipes/recipe_food.json b/data/Mainline_mods/Mods/DinoMod/recipes/recipe_food.json index a9419ddfd..531e1149b 100644 --- a/data/Mainline_mods/Mods/DinoMod/recipes/recipe_food.json +++ b/data/Mainline_mods/Mods/DinoMod/recipes/recipe_food.json @@ -26,7 +26,6 @@ "skills_required": [ "tailor", 1 ], "time": "110 m", "book_learn": [ [ "survival_book", 6 ], [ "scots_cookbook", 3 ] ], - "result_mult": 4, "batch_time_factors": [ 50, 4 ], "using": [ [ "sewing_standard", 4 ] ], "qualities": [ { "id": "BOIL", "level": 1 }, { "id": "COOK", "level": 3 }, { "id": "CUT", "level": 2 } ], @@ -36,6 +35,7 @@ [ [ "stomach_sauropod", 1 ] ], [ [ "meat_offal", 4, "LIST" ] ], [ [ "oatmeal", 16 ], [ "buckwheat", 4 ] ] - ] + ], + "charges": 4 } ] diff --git a/data/Mainline_mods/Mods/DinoMod/recipes/recipes.json b/data/Mainline_mods/Mods/DinoMod/recipes/recipes.json index 6ed830259..adb864283 100644 --- a/data/Mainline_mods/Mods/DinoMod/recipes/recipes.json +++ b/data/Mainline_mods/Mods/DinoMod/recipes/recipes.json @@ -4,10 +4,12 @@ "id": "CC_ANIMALS", "recipe_subcategories": [ "CSC_ALL", + "CSC_ANIMALS_BOVINE ARMOR", "CSC_ANIMALS_CANINE ARMOR", "CSC_ANIMALS_EQUINE ARMOR", "CSC_ANIMALS_ELEPHANT ARMOR", "CSC_ANIMALS_OSTRICH ARMOR", + "CSC_ANIMALS_BEAR ARMOR", "CSC_ANIMALS_EQUINE STORAGE" ] } diff --git a/data/Mainline_mods/Mods/DinoMod/regional_overlay.json b/data/Mainline_mods/Mods/DinoMod/regional_overlay.json index 008f75e25..0ae29a57f 100644 --- a/data/Mainline_mods/Mods/DinoMod/regional_overlay.json +++ b/data/Mainline_mods/Mods/DinoMod/regional_overlay.json @@ -23,6 +23,7 @@ "mx_nest_saurornitholestes": 30, "mx_nest_siats": 30, "mx_nest_stenonychosaurus": 30, + "mx_nest_tawa": 30, "mx_nest_torvosaurus": 30, "mx_nest_tyrannosaurus": 30, "mx_nest_utahraptor": 30, @@ -39,33 +40,47 @@ "mx_nest_gallimimus": 30, "mx_nest_struthiomimus": 30, "mx_nest_ornithomimus": 30, + "mx_nest_achelousaurus": 30, + "mx_nest_anchisaurus": 30, "mx_nest_ankylosaurus": 30, "mx_nest_camptosaurus": 30, "mx_nest_centrosaurus": 30, + "mx_nest_chasmosaurus": 30, "mx_nest_corythosaurus": 30, "mx_nest_dryosaurus": 30, "mx_nest_dyoplosaurus": 30, "mx_nest_edmontonia": 30, "mx_nest_edmontosaurus": 30, + "mx_nest_einiosaurus": 30, + "mx_nest_euoplocephalus": 30, "mx_nest_gargoyleosaurus": 30, + "mx_nest_gastonia": 30, "mx_nest_gryposaurus": 30, "mx_nest_hadrosaurus": 30, "mx_nest_hesperosaurus": 30, + "mx_nest_hypacrosaurus": 30, "mx_nest_issi": 30, "mx_nest_kosmoceratops": 30, + "mx_nest_lambeosaurus": 30, "mx_nest_maiasaura": 30, "mx_nest_nanosaurus": 30, "mx_nest_nodosaurus": 30, + "mx_nest_panoplosaurus": 30, + "mx_nest_scolosaurus": 30, "mx_nest_stegoceras": 30, "mx_nest_pachycephalosaurus": 30, + "mx_nest_prosaurolophus": 30, "mx_nest_aquilops": 30, "mx_nest_pachyrhinosaurus": 30, "mx_nest_parasaurolophus": 30, "mx_nest_pentaceratops": 30, "mx_nest_sarahsaurus": 30, + "mx_nest_saurolophus": 30, "mx_nest_sauropelta": 30, "mx_nest_scutellosaurus": 30, "mx_nest_stegosaurus": 30, + "mx_nest_styracosaurus": 30, + "mx_nest_tenontosaurus": 30, "mx_nest_thescelosaurus": 30, "mx_nest_torosaurus": 30, "mx_nest_triceratops": 30, diff --git a/data/Mainline_mods/Mods/DinoMod/requirements/cooking_components.json b/data/Mainline_mods/Mods/DinoMod/requirements/cooking_components.json index 35169cd76..8a1fe6471 100644 --- a/data/Mainline_mods/Mods/DinoMod/requirements/cooking_components.json +++ b/data/Mainline_mods/Mods/DinoMod/requirements/cooking_components.json @@ -27,33 +27,48 @@ [ "egg_gallimimus", 1 ], [ "egg_struthiomimus", 1 ], [ "egg_ornithomimus", 1 ], + [ "egg_therizinosaurus", 1 ], [ "egg_nothronychus", 1 ], [ "egg_anzu", 1 ], [ "egg_deinonychus", 1 ], [ "egg_utahraptor", 1 ], [ "egg_sarahsaurus", 1 ], + [ "egg_anchisaurus", 1 ], [ "egg_issi", 1 ], [ "egg_stegosaurus", 1 ], [ "egg_hesperosaurus", 1 ], + [ "egg_gastonia", 1 ], [ "egg_gargoyleosaurus", 1 ], [ "egg_sauropelta", 1 ], [ "egg_nodosaurus", 1 ], + [ "egg_panoplosaurus", 1 ], [ "egg_edmontonia", 1 ], [ "egg_zuul", 1 ], [ "egg_dyoplosaurus", 1 ], [ "egg_ankylosaurus", 1 ], + [ "egg_euoplocephalus", 1 ], + [ "egg_scolosaurus", 1 ], + [ "egg_tenontosaurus", 1 ], [ "egg_camptosaurus", 1 ], [ "egg_hadrosaurus", 1 ], - [ "egg_parasaurolophus", 1 ], - [ "egg_corythosaurus", 1 ], [ "egg_maiasaura", 1 ], - [ "egg_edmontosaurus", 1 ], [ "egg_gryposaurus", 1 ], + [ "egg_prosaurolophus", 1 ], + [ "egg_saurolophus", 1 ], + [ "egg_edmontosaurus", 1 ], + [ "egg_parasaurolophus", 1 ], + [ "egg_lambeosaurus", 1 ], + [ "egg_corythosaurus", 1 ], + [ "egg_hypacrosaurus", 1 ], [ "egg_pachycephalosaurus", 1 ], [ "egg_leptoceratops", 1 ], [ "egg_zuniceratops", 1 ], + [ "egg_styracosaurus", 1 ], [ "egg_centrosaurus", 1 ], + [ "egg_einiosaurus", 1 ], + [ "egg_achelousaurus", 1 ], [ "egg_pachyrhinosaurus", 1 ], + [ "egg_chasmosaurus", 1 ], [ "egg_pentaceratops", 1 ], [ "egg_kosmoceratops", 1 ], [ "egg_torosaurus", 1 ], @@ -71,6 +86,7 @@ [ [ "egg_dino_small", 1 ], [ "egg_dino_theropod_small", 1 ], + [ "egg_tawa", 1 ], [ "egg_coelophysis", 1 ], [ "egg_compsognathus", 1 ], [ "egg_albertonykus", 1 ], @@ -103,6 +119,7 @@ [ "egg_apatosaurus", 1 ], [ "egg_brontosaurus", 1 ], [ "egg_diplodocus", 1 ], + [ "egg_barosaurus", 1 ], [ "egg_camarasaurus", 1 ], [ "egg_brachiosaurus", 1 ], [ "egg_alamosaurus", 1 ] diff --git a/data/Mainline_mods/Mods/DinoMod/vitamin.json b/data/Mainline_mods/Mods/DinoMod/vitamin.json index 95f528e26..55c6f2372 100644 --- a/data/Mainline_mods/Mods/DinoMod/vitamin.json +++ b/data/Mainline_mods/Mods/DinoMod/vitamin.json @@ -10,6 +10,17 @@ "rate": "1 h", "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] }, + { + "id": "mutagen_horns", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Horns Mutagen" }, + "excess": "mutagen_horns", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, { "id": "mutagen_tyrant", "type": "vitamin", diff --git a/data/Mainline_mods/Mods/Generic_Guns/ammo/gg_ammo_migration.json b/data/Mainline_mods/Mods/Generic_Guns/ammo/gg_ammo_migration.json index c41b2879d..559cc0146 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/ammo/gg_ammo_migration.json +++ b/data/Mainline_mods/Mods/Generic_Guns/ammo/gg_ammo_migration.json @@ -14,6 +14,11 @@ "type": "MIGRATION", "replace": "bp_tiny_pistol_ball" }, + { + "id": [ "matchhead_22_fmj", "matchhead_22_lr", "matchhead_32_acp" ], + "type": "MIGRATION", + "replace": "matchhead_tiny_pistol_ball" + }, { "id": [ "22_cb", "22_lr", "22_ratshot" ], "type": "MIGRATION", @@ -99,6 +104,23 @@ "type": "MIGRATION", "replace": "bp_pistol_ball" }, + { + "id": [ + "matchhead_10mm_fmj", + "matchhead_357sig_fmj", + "matchhead_38_fmj", + "matchhead_380_FMJ", + "matchhead_40ball", + "matchhead_40fmj", + "matchhead_45_acp", + "matchhead_9mmfmj", + "matchhead_9x18mmfmj", + "matchhead_357mag_fmj", + "matchhead_30carbine" + ], + "type": "MIGRATION", + "replace": "matchhead_pistol_ball" + }, { "id": [ "357sig_jhp", @@ -149,6 +171,22 @@ "type": "MIGRATION", "replace": "bp_pistol_jhp" }, + { + "id": [ + "matchhead_357sig_jhp", + "matchhead_38_special", + "matchhead_380_JHP", + "matchhead_40sw", + "matchhead_45_jhp", + "matchhead_45colt_jhp", + "matchhead_762_25", + "matchhead_9mm", + "matchhead_9x18mm", + "matchhead_357mag_jhp" + ], + "type": "MIGRATION", + "replace": "matchhead_pistol_jhp" + }, { "id": [ "357mag_fmj", "44fmj", "460_fmj" ], "type": "MIGRATION", @@ -185,8 +223,13 @@ "270win_jsp", "300_winmag", "3006", + "50beowulf_xtp", + "450_ftx", + "338lapua_hpbt", "300blk", "300blk_ss", + "303_bthp", + "303_sp", "308", "4570_low", "4570_sp", @@ -206,18 +249,33 @@ "type": "MIGRATION", "replace": "rifle_ball_foreign" }, + { + "id": [ "reloaded_123ln" ], + "type": "MIGRATION", + "replace": "reloaded_rifle_ball_foreign" + }, + { + "id": [ "bp_123ln" ], + "type": "MIGRATION", + "replace": "bp_rifle_ball_foreign" + }, { "id": [ "reloaded_223", "reloaded_270win_jsp", "reloaded_300_winmag", "reloaded_3006", + "reloaded_50beowulf_xtp", + "reloaded_450_ftx", + "reloaded_338lapua_hpbt", "reloaded_300blk", "reloaded_308", "reloaded_4570_bp", "reloaded_4570_low", "reloaded_4570_sp", "reloaded_545", + "reloaded_303", + "reloaded_303sp", "reloaded_762_54R", "reloaded_762_m87", "reloaded_30carbine" @@ -231,9 +289,14 @@ "bp_270win_jsp", "bp_300_winmag", "bp_3006", + "bp_50beowulf_xtp", + "bp_450_ftx", + "bp_338lapua_hpbt", "bp_300blk", "bp_308", "bp_545", + "bp_303", + "bp_303sp", "bp_762_54R", "bp_762_m87", "bp_30carbine" @@ -245,6 +308,11 @@ "id": [ "3006_incendiary", "3006fmj", + "50beowulf_penetrator", + "450_penetrator", + "338lapua_fmjbt", + "338lapua_api", + "303_fmjbt", "4570_pen", "545_ap", "556", @@ -267,6 +335,11 @@ "id": [ "reloaded_3006_incendiary", "reloaded_3006fmj", + "reloaded_50beowulf_penetrator", + "reloaded_450_penetrator", + "reloaded_338lapua_fmjbt", + "reloaded_338lapua_api", + "reloaded_303fmj", "reloaded_4570_pen", "reloaded_545_ap", "reloaded_556", @@ -282,6 +355,11 @@ "id": [ "bp_3006_incendiary", "bp_3006fmj", + "bp_50beowulf_penetrator", + "bp_450_penetrator", + "bp_338lapua_fmjbt", + "bp_338lapua_api", + "bp_303fmj", "bp_545_ap", "bp_556", "bp_556_incendiary", @@ -494,6 +572,16 @@ "type": "MIGRATION", "replace": "rocket_hedp" }, + { + "id": [ "airgun_pellet_target" ], + "type": "MIGRATION", + "replace": "rifle_pellet_target" + }, + { + "id": [ "airgun_pellet_hunting" ], + "type": "MIGRATION", + "replace": "rifle_pellet_hunting" + }, { "id": [ "84x246mm_smoke" ], "type": "MIGRATION", diff --git a/data/Mainline_mods/Mods/Generic_Guns/ammo/gg_casings_migration.json b/data/Mainline_mods/Mods/Generic_Guns/ammo/gg_casings_migration.json index 0172e33de..9c791bc5b 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/ammo/gg_casings_migration.json +++ b/data/Mainline_mods/Mods/Generic_Guns/ammo/gg_casings_migration.json @@ -5,7 +5,7 @@ "replace": "grenade_casing" }, { - "id": [ "3006_casing", "357mag_casing", "44_casing", "454_casing", "460_casing", "46mm_casing", "500_casing" ], + "id": [ "357mag_casing", "44_casing", "454_casing", "460_casing", "46mm_casing", "500_casing" ], "type": "MIGRATION", "replace": "pistol_magnum_casing" }, @@ -42,15 +42,21 @@ "id": [ "223_casing", "270win_casing", + "303_casing", "300blk_casing", + "3006_casing", "308_casing", "4570_casing", + "50beowulf_casing", + "450_casing", + "338lapua_casing", "545_casing", "762_51_casing", "762_casing", "762R_casing", "300_casing", - "30carbine_casing" + "30carbine_casing", + "123ln_casing" ], "type": "MIGRATION", "replace": "rifle_casing" diff --git a/data/Mainline_mods/Mods/Generic_Guns/ammo/grenade.json b/data/Mainline_mods/Mods/Generic_Guns/ammo/grenade.json index 91c4b493a..118c6c1c0 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/ammo/grenade.json +++ b/data/Mainline_mods/Mods/Generic_Guns/ammo/grenade.json @@ -13,7 +13,7 @@ "type": "AMMO", "name": { "str": "HEDP grenade cartridge" }, "description": "A grenade cartridge with a high explosive dual purpose load, capable of producing good penetration and a high number of damaging fragments. Good for armored or soft targets.", - "extend": { "effects": [ "FRAG", "EXPLOSIVE" ] } + "extend": { "effects": [ "FRAG_20x66", "EXPLOSIVE", "SPECIAL_COOKOFF" ] } }, { "id": "grenade_ammo_beanbag", diff --git a/data/Mainline_mods/Mods/Generic_Guns/ammo/pistol.json b/data/Mainline_mods/Mods/Generic_Guns/ammo/pistol.json index a53027829..3a827d9ed 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/ammo/pistol.json +++ b/data/Mainline_mods/Mods/Generic_Guns/ammo/pistol.json @@ -59,5 +59,21 @@ }, "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] }, "delete": { "effects": [ "NEVER_MISFIRES" ] } + }, + { + "id": "matchhead_pistol_ball", + "copy-from": "bp_pistol_ball", + "type": "AMMO", + "name": { "str_sp": "pistol ammo, ball (matchhead powder)" }, + "proportional": { "price": 0.5, "damage": { "damage_type": "bullet", "amount": 0.85 }, "dispersion": 1.1 }, + "extend": { "effects": [ "MATCHHEAD" ] } + }, + { + "id": "matchhead_pistol_jhp", + "copy-from": "bp_pistol_jhp", + "type": "AMMO", + "name": { "str_sp": "pistol ammo, JHP (matchhead powder)" }, + "proportional": { "price": 0.5, "damage": { "damage_type": "bullet", "amount": 0.85 }, "dispersion": 1.1 }, + "extend": { "effects": [ "MATCHHEAD" ] } } ] diff --git a/data/Mainline_mods/Mods/Generic_Guns/ammo/pistol_tiny.json b/data/Mainline_mods/Mods/Generic_Guns/ammo/pistol_tiny.json index f9cde8e74..a8bdfa99c 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/ammo/pistol_tiny.json +++ b/data/Mainline_mods/Mods/Generic_Guns/ammo/pistol_tiny.json @@ -66,5 +66,21 @@ "type": "AMMO", "copy-from": "22_blank", "name": { "str_sp": "pistol blank" } + }, + { + "id": "matchhead_tiny_pistol_ball", + "copy-from": "bp_tiny_pistol_ball", + "type": "AMMO", + "name": { "str_sp": "tiny pistol ammo, ball (matchhead powder)" }, + "proportional": { "price": 0.5, "damage": { "damage_type": "bullet", "amount": 0.85 }, "dispersion": 1.1 }, + "extend": { "effects": [ "MATCHHEAD" ] } + }, + { + "id": "matchhead_tiny_pistol_jhp", + "copy-from": "bp_tiny_pistol_jhp", + "type": "AMMO", + "name": { "str_sp": "tiny pistol ammo, JHP (matchhead powder)" }, + "proportional": { "price": 0.5, "damage": { "damage_type": "bullet", "amount": 0.85 }, "dispersion": 1.1 }, + "extend": { "effects": [ "MATCHHEAD" ] } } ] diff --git a/data/Mainline_mods/Mods/Generic_Guns/ammo/rifle.json b/data/Mainline_mods/Mods/Generic_Guns/ammo/rifle.json index 2c7fbb1e9..e314b17ed 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/ammo/rifle.json +++ b/data/Mainline_mods/Mods/Generic_Guns/ammo/rifle.json @@ -68,6 +68,28 @@ "description": "Foreign rifle ammo brought by the Exodii, and very common amongst them.", "ammo_type": "ammo_rifle_foreign" }, + { + "id": "reloaded_rifle_ball_foreign", + "type": "AMMO", + "copy-from": "rifle_ball_foreign", + "name": { "str_sp": "foreign rifle ammo, ball (reloaded)" }, + "proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] } + }, + { + "id": "bp_rifle_ball_foreign", + "copy-from": "rifle_ball_foreign", + "type": "AMMO", + "name": { "str_sp": "foreign rifle ammo, ball (black powder)" }, + "proportional": { + "price": 0.3, + "damage": { "damage_type": "bullet", "amount": 0.57, "armor_penetration": 0.5 }, + "recoil": 0.57, + "dispersion": 1.2 + }, + "extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] }, + "delete": { "effects": [ "NEVER_MISFIRES" ] } + }, { "id": "rifle_rail_ammo", "copy-from": "12mm", diff --git a/data/Mainline_mods/Mods/Generic_Guns/ammo/rifle_pellet.json b/data/Mainline_mods/Mods/Generic_Guns/ammo/rifle_pellet.json new file mode 100644 index 000000000..61cdb1cb3 --- /dev/null +++ b/data/Mainline_mods/Mods/Generic_Guns/ammo/rifle_pellet.json @@ -0,0 +1,16 @@ +[ + { + "type": "AMMO", + "id": "rifle_pellet_target", + "copy-from": "airgun_pellet_target", + "name": { "str": "air rifle target pellet" }, + "description": "A tin of small cone-shaped pellets meant to be used in an air rifle. Suitable for plinking." + }, + { + "type": "AMMO", + "id": "rifle_pellet_hunting", + "copy-from": "airgun_pellet_hunting", + "name": { "str": "air rifle hunting pellet" }, + "description": "A tin of small cone-shaped pellets meant to be used in an air rifle. Suitable for hunting small game." + } +] diff --git a/data/Mainline_mods/Mods/Generic_Guns/firearms/gg_firearms_migration.json b/data/Mainline_mods/Mods/Generic_Guns/firearms/gg_firearms_migration.json index 4fd9734b3..81cdc99dc 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/firearms/gg_firearms_migration.json +++ b/data/Mainline_mods/Mods/Generic_Guns/firearms/gg_firearms_migration.json @@ -71,7 +71,7 @@ "replace": "pistol_magnum_pipe" }, { - "id": [ "rm228", "sw_619", "ruger_redhawk", "sw629", "bfr", "sw_500", "raging_bull", "raging_judge" ], + "id": [ "sw_619", "mr73", "ruger_redhawk", "sw629", "bfr", "sw_500", "raging_bull", "raging_judge" ], "type": "MIGRATION", "replace": "pistol_magnum_revolver" }, @@ -106,6 +106,7 @@ "af2011a1_38super", "m1911a1_38super", "glock_22", + "civilian_cop_glock22", "hi_power_40", "walther_ppq_40", "tommygun", @@ -125,7 +126,6 @@ "glock_29", "glock_20", "glock_21", - "glock_40", "m1911_10", "witness_10", "p220_10", @@ -139,7 +139,7 @@ "replace": "pistol_medium" }, { - "id": [ "cx4", "hk_mp5_semi_pistol", "ksub2000", "calico", "hk_mp5_10_semi", "TDI_10", "mp40semi" ], + "id": [ "cx4", "hk_mp5_semi_pistol", "ksub2000", "calico", "hk_mp5_10_semi", "TDI_10", "mp40semi", "hpt3895" ], "type": "MIGRATION", "replace": "pistol_pcc" }, @@ -147,6 +147,7 @@ "id": [ "2_shot_special", "rifle_38", + "rifle_380", "rifle_40", "smg_40", "surv_six_shooter", @@ -154,7 +155,9 @@ "smg_45", "surv_hand_cannon", "rifle_9mm", - "smg_9mm" + "smg_9mm", + "rifle_32", + "rifle_9x18" ], "type": "MIGRATION", "replace": "pistol_pipe_smg" @@ -175,12 +178,12 @@ "fn_p90", "fn_ps90", "needlegun", - "rm2000_smg", "sten", "bt_apc9k", "colt_ro635", "mp40", - "mp18" + "mp18", + "greasegun" ], "type": "MIGRATION", "replace": "pistol_smg" @@ -205,15 +208,22 @@ "m1918", "acr_300blk", "hk417_13", + "modular_m16a4", "m16a4", "nato_assault_rifle", + "modular_m4_carbine", "m4_carbine", + "m4_cqbr", + "modular_m27_assault_rifle", "m27_assault_rifle", + "modular_m16_auto_rifle", "m16_auto_rifle", "m231pfw", "scar_h", + "scar_l", "sig_mcx_rattler_sbr", "rm51_assault_rifle", + "rm2000_smg", "an94", "vz58_p", "vz58_v", @@ -251,7 +261,18 @@ "boreal_mosin", "rm11b_sniper_rifle", "remington700_270", + "ruger_m77", + "ruger_arr", + "ruger_pr", + "cz600", + "cz600_762", + "axmc", + "axmc_300", + "axmc_308", "m2010", + "savage112", + "mrad_smr", + "tac338", "weatherby_5", "win70", "browning_blr", @@ -270,34 +291,62 @@ "m1903", "hk_g3", "m14ebr", + "smle_mk3", + "number4_mki", "ar10", "1895sbl", "ak74", "vz58ts", + "ruger_m77", + "ruger_pr", "kord", "ak47", + "mdrx", + "mdrx_223", + "mdrx_223short", + "mdrx_300", + "mdrx_308", + "mdrx_308medium", "arx160", "l_bak_223", "mosin91_30", "m249_semi", "m60_semi", + "modular_ar15", "ar15", "oa93", + "ar15_223long", + "ar15_223medium", + "ar15_223short", + "ar15_300", + "ar15_300medium", + "ar15_300short", + "ar15_50", + "ar15_50medium", + "ar15_50short", + "ar15_450", + "ar15_450medium", + "ar15_450short", + "ar15_762", "ar_pistol", "rifle_223", "ruger_mini", "sig_assault_rifle", "steyr_aug", "iwi_tavor_x95_300blk", - "ar15_retool_300blk", "fn_fal", "m1a", "sks", "mosin44", "famas", "aksemi", + "bren2_762", + "805_bren", + "bren2_556", "fs2000", "robofac_gun", + "psl", + "xedra_gun", "obrez", "mk47", "hk_usc45", @@ -308,7 +357,10 @@ "ak308", "zpapm90", "zpap85", - "papm77" + "papm77", + "rfb_308", + "rdb_223", + "plr16" ], "type": "MIGRATION", "replace": "rifle_sporter" @@ -344,12 +396,24 @@ "replace": "shot_double" }, { - "id": [ "pipe_double_shotgun", "revolver_shotgun", "ashot" ], + "id": [ "pipe_double_shotgun", "revolver_shotgun", "afs_drotik_shotpistol", "ashot" ], "type": "MIGRATION", "replace": "shot_pipe_double" }, { - "id": [ "saiga_410", "rm120c", "rm20", "bigun", "saiga_12", "tavor_12", "aa_12", "bigun", "USAS_12" ], + "id": [ + "saiga_410", + "rm120c", + "rm228", + "rm20", + "bigun", + "saiga_12", + "afs_raketa_shotgun", + "tavor_12", + "aa_12", + "bigun", + "USAS_12" + ], "type": "MIGRATION", "replace": "shot_tactical" }, @@ -373,9 +437,29 @@ "type": "MIGRATION", "replace": "shot_short_pump" }, + { + "id": [ "varmint_airgun" ], + "type": "MIGRATION", + "replace": "pellet_airgun" + }, { "id": [ "m26_mass_standalone" ], "type": "MIGRATION", "replace": "small_shotgun" + }, + { + "id": [ "feral_militia_gun" ], + "type": "MIGRATION", + "replace": "feral_rifle" + }, + { + "id": [ "feral_jackboot_gun" ], + "type": "MIGRATION", + "replace": "feral_shotgun" + }, + { + "id": [ "feral_m9" ], + "type": "MIGRATION", + "replace": "feral_pistol" } ] diff --git a/data/Mainline_mods/Mods/Generic_Guns/firearms/pistol.json b/data/Mainline_mods/Mods/Generic_Guns/firearms/pistol.json index f7eb3ab1f..8355af762 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/firearms/pistol.json +++ b/data/Mainline_mods/Mods/Generic_Guns/firearms/pistol.json @@ -110,5 +110,23 @@ "rigid": true } ] + }, + { + "id": "feral_pistol", + "copy-from": "feral_m9", + "type": "GUN", + "name": { "str_sp": "Beretta M9A1" }, + "description": "A poorly maintained and inaccurate version of the M9 for feral security guards, feral preppers, etc.", + "ammo": [ "ammo_pistol" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "holster": true, + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "item_restriction": [ "pistol_mag", "pistol_smg_mag" ], + "rigid": true + } + ] } ] diff --git a/data/Mainline_mods/Mods/Generic_Guns/firearms/pistol_magnum.json b/data/Mainline_mods/Mods/Generic_Guns/firearms/pistol_magnum.json index 7397b23da..1894d252a 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/firearms/pistol_magnum.json +++ b/data/Mainline_mods/Mods/Generic_Guns/firearms/pistol_magnum.json @@ -38,7 +38,6 @@ "weight": "2114 g", "volume": "2 L", "price": 10000, - "bashing": 10, "color": "brown", "ranged_damage": { "damage_type": "bullet", "amount": 0 }, "dispersion": 550, @@ -47,7 +46,6 @@ "loudness": 25, "barrel_volume": "250 ml", "valid_mod_locations": [ - [ "accessories", 2 ], [ "muzzle", 1 ], [ "sling", 1 ], [ "stock", 1 ], @@ -65,7 +63,8 @@ "item_restriction": [ "pistol_mag", "pistol_magnum_mag" ], "rigid": true } - ] + ], + "melee_damage": { "bash": 10 } }, { "id": "pistol_magnum_pipe", diff --git a/data/Mainline_mods/Mods/Generic_Guns/firearms/pneumatic.json b/data/Mainline_mods/Mods/Generic_Guns/firearms/pneumatic.json new file mode 100644 index 000000000..7268a2874 --- /dev/null +++ b/data/Mainline_mods/Mods/Generic_Guns/firearms/pneumatic.json @@ -0,0 +1,21 @@ +[ + { + "id": "pellet_airgun", + "copy-from": "varmint_airgun", + "type": "GUN", + "name": { "str": "varmint air rifle" }, + "description": "A cheap varmint air rifle chambered in .177, suitable for hunting small game.", + "ammo": [ "airgun_pellet" ], + "reload": 300, + "valid_mod_locations": [ + [ "accessories", 4 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "grip mount", 1 ], + [ "rail mount", 1 ], + [ "underbarrel mount", 1 ] + ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "airgun_pellet": 1 } } ] + } +] diff --git a/data/Mainline_mods/Mods/Generic_Guns/firearms/rifle.json b/data/Mainline_mods/Mods/Generic_Guns/firearms/rifle.json index 80ef35b8a..d1cbecdcb 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/firearms/rifle.json +++ b/data/Mainline_mods/Mods/Generic_Guns/firearms/rifle.json @@ -131,5 +131,14 @@ "description": "A break action firearm comprised of a rifle barrel over two smooth bore shotgun barrels. Historically used by egomaniac hunters in Africa, now used by their egomaniac descendants in New England.", "built_in_mods": [ "rifle_shotgun_combination_shotgun" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "ammo_rifle": 1 } } ] + }, + { + "id": "feral_rifle", + "copy-from": "feral_militia_gun", + "type": "GUN", + "name": { "str": "mad militias' rifle" }, + "description": "A fake semi-auto rifle for feral militiamen (because monster aiming is too lethal).", + "ammo": [ "ammo_rifle" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "ammo_rifle": 1 } } ] } ] diff --git a/data/Mainline_mods/Mods/Generic_Guns/firearms/shot.json b/data/Mainline_mods/Mods/Generic_Guns/firearms/shot.json index 5a3aeb1d6..f1223bbb4 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/firearms/shot.json +++ b/data/Mainline_mods/Mods/Generic_Guns/firearms/shot.json @@ -84,5 +84,14 @@ "name": { "str": "compact shotgun" }, "description": "Small shotgun, assembled from underbarrel shotgun modification and a pistol grip. Not the best weapon, but has a really small size and weight.", "ammo": [ "ammo_shot" ] + }, + { + "id": "feral_shotgun", + "copy-from": "feral_jackboot_gun", + "type": "GUN", + "name": { "str": "feral bikers' shotgun" }, + "description": "A fake shotgun for feral bikers (because monster aiming is too lethal).", + "ammo": [ "ammo_shot" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "ammo_shot": 1 }, "rigid": true } ] } ] diff --git a/data/Mainline_mods/Mods/Generic_Guns/gg_ammunition_types.json b/data/Mainline_mods/Mods/Generic_Guns/gg_ammunition_types.json index 9739f66c0..477bc8909 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/gg_ammunition_types.json +++ b/data/Mainline_mods/Mods/Generic_Guns/gg_ammunition_types.json @@ -68,6 +68,13 @@ "name": "rocket ammo", "default": "rocket_hedp" }, + { + "type": "ammunition_type", + "id": "ammo_rifle_pellet", + "//": "small airgun pellets for hunting", + "name": "air rifle pellet", + "default": "rifle_pellet_target" + }, { "type": "ammunition_type", "id": "ammo_shot", diff --git a/data/Mainline_mods/Mods/Generic_Guns/gunmods/gg_gunmods_blacklist.json b/data/Mainline_mods/Mods/Generic_Guns/gunmods/gg_gunmods_blacklist.json index d2de487d9..89f23ac5b 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/gunmods/gg_gunmods_blacklist.json +++ b/data/Mainline_mods/Mods/Generic_Guns/gunmods/gg_gunmods_blacklist.json @@ -22,6 +22,8 @@ "robofac_gun_smg", "robofac_gun_46", "robofac_gun_57", + "xedra_gun_ar", + "xedra_gun_shotgun", "robofac_laser_sight", "robofac_handguard" ] diff --git a/data/Mainline_mods/Mods/Generic_Guns/magazines/gg_magazines_migration.json b/data/Mainline_mods/Mods/Generic_Guns/magazines/gg_magazines_migration.json index a74ba960e..0bfab77a5 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/magazines/gg_magazines_migration.json +++ b/data/Mainline_mods/Mods/Generic_Guns/magazines/gg_magazines_migration.json @@ -6,15 +6,11 @@ }, { "id": [ - "20x66_10_mag", - "20x66_20_mag", "af2011a1mag", "ppkmag", "sigp230mag", "p226mag_12rd_357sig", - "p226mag_15rd_357sig", "p320mag_13rd_357sig", - "p320mag_14rd_357sig", "kp3atmag", "fn1910mag", "rugerlcpmag", @@ -98,7 +94,8 @@ "p226mag_15rd_9mm", "sp2022mag_10rd_9mm", "sp2022mag_12rd_9mm", - "sp2022mag_15rd_9mm" + "sp2022mag_15rd_9mm", + "hpt3895mag_10rd" ], "type": "MIGRATION", "replace": "pistol_mag" @@ -110,7 +107,6 @@ }, { "id": [ - "20x66_40_mag", "skorpion61mag", "mac11mag", "glock40bigmag", @@ -171,7 +167,9 @@ "skorpion82mag", "mp5_10_mag", "tdi_10mm_mag", - "robofac60" + "robofac60", + "greasegun30mag", + "greasegun32mag" ], "type": "MIGRATION", "replace": "pistol_smg_mag" @@ -248,6 +246,19 @@ "stanag100", "stanag100drum", "stanag150", + "stanag20_beowulf", + "stanag20ranger_beowulf", + "stanag30_beowulf", + "stanag30ranger_beowulf", + "50beowulf_ar15mag", + "450_ar15mag", + "762_ar15mag_5rd", + "762_ar15mag_10rd", + "762_ar15mag_20rd", + "762_ar15mag_30rd", + "ruger_arr_mag", + "bren2_762mag30", + "bren2_762mag10", "g36mag_30rd", "g36mag_100rd", "blrmag", @@ -267,6 +278,9 @@ "scarhmag", "hk417mag_20rd", "ar10mag_20rd", + "ar10mag_10rd", + "ar10mag_25rd", + "ar10mag_50rd", "ak74mag", "rpk74mag", "casket74mag", @@ -284,6 +298,7 @@ "8x40_50_mag", "famasmag", "robofac40", + "xedra40", "robofac100", "robofac50", "usc10mag", @@ -311,6 +326,8 @@ "ruger_makeshiftmag", "3006_clip", "garandclip", + "enfield_303mag", + "clip303_5rd", "fal_makeshiftmag", "g3_makeshiftmag", "m14smallmag", @@ -320,7 +337,14 @@ "hk417_makeshiftmag", "ar10_makeshiftmag", "762x39_clip", + "pslmag5", + "pslmag10", "762R_clip", + "ai_338mag", + "ai_338mag_10", + "ai_308mag_10", + "mrad_338lapua_mag", + "ruger_pr_mag", "borealmosin_clip", "robofac20" ], @@ -328,7 +352,7 @@ "replace": "rifle_sniper_mag" }, { - "id": [ "exodiiBRmag" ], + "id": [ "exodiiBRmag", "robofac60_123ln" ], "type": "MIGRATION", "replace": "rifle_mag_foreign" }, @@ -353,10 +377,16 @@ "saiga410mag_30rd", "saiga10mag", "saiga30mag", + "afs_raketa30mag", + "afs_shot_speedloader8", "USAS10mag", "USAS20mag", "shotbelt_20", + "20x66_10_mag", + "20x66_20_mag", + "20x66_40_mag", "robofac10", + "xedra10", "robofac30", "aa12_box_mag", "aa12_drum_mag", diff --git a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipe_obsolete.json b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipe_obsolete.json index 3146c0a01..f918f7b37 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipe_obsolete.json +++ b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipe_obsolete.json @@ -159,6 +159,11 @@ "result": "rifle_flintlock", "obsolete": true }, + { + "type": "recipe", + "result": "longrifle_flintlock", + "obsolete": true + }, { "type": "recipe", "result": "carbine_flintlock", @@ -264,16 +269,6 @@ "result": "rifle_9mm", "obsolete": true }, - { - "type": "recipe", - "result": "rifle_308", - "obsolete": true - }, - { - "type": "recipe", - "result": "rifle_3006", - "obsolete": true - }, { "type": "recipe", "result": "rifle_40", @@ -301,22 +296,22 @@ }, { "type": "recipe", - "result": "rifle_308", + "result": "rifle_380", "obsolete": true }, { "type": "recipe", - "result": "rifle_223", + "result": "rifle_32", "obsolete": true }, { "type": "recipe", - "result": "surv_carbine_223", + "result": "rifle_9x18", "obsolete": true }, { "type": "recipe", - "result": "rifle_3006", + "result": "rifle_223", "obsolete": true }, { @@ -834,11 +829,6 @@ "result": "reloaded_4570_bp", "obsolete": true }, - { - "type": "recipe", - "result": "reloaded_5x50dart", - "obsolete": true - }, { "type": "recipe", "result": "reloaded_50bmg", @@ -1524,11 +1514,6 @@ "result": "reloaded_4570_bp", "obsolete": true }, - { - "type": "recipe", - "result": "reloaded_5x50dart", - "obsolete": true - }, { "type": "recipe", "result": "reloaded_50bmg", diff --git a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_deconstruction.json b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_deconstruction.json index c93fe6ef3..a8db52c36 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_deconstruction.json +++ b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_deconstruction.json @@ -2,7 +2,7 @@ { "result": "broken_secubot", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "skill_used": "electronics", "difficulty": 6, "time": "2 h", @@ -26,7 +26,7 @@ { "result": "broken_talon_m202a1", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "skill_used": "electronics", "difficulty": 6, "time": "2 h", @@ -50,7 +50,7 @@ { "result": "broken_skitterbot", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "skill_used": "electronics", "difficulty": 3, "time": "1 h", @@ -72,7 +72,7 @@ { "result": "broken_turret", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "skill_used": "electronics", "difficulty": 3, "time": "1 h", @@ -94,7 +94,7 @@ { "result": "broken_turret_rifle", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "skill_used": "electronics", "difficulty": 3, "time": "1 h", @@ -116,7 +116,7 @@ { "result": "broken_turret_artisans", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "skill_used": "electronics", "difficulty": 3, "time": "1 h", @@ -138,7 +138,7 @@ { "result": "broken_crows_m240", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "skill_used": "electronics", "difficulty": 3, "time": "1 h", @@ -160,7 +160,7 @@ { "result": "broken_turret_bmg", "type": "uncraft", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "skill_used": "electronics", "difficulty": 3, "time": "1 h", diff --git a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_firearms_repeater.json b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_firearms_repeater.json index cfd07c925..70501c5ed 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_firearms_repeater.json +++ b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_firearms_repeater.json @@ -2,7 +2,7 @@ { "result": "pistol_pipe_smg", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", "skill_used": "mechanics", @@ -29,7 +29,7 @@ { "result": "pistol_magnum_pipe_levergun", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", "skill_used": "mechanics", @@ -62,7 +62,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "black_powder_revolver", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", diff --git a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_firearms_single.json b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_firearms_single.json index 4ab9d5459..c93824215 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_firearms_single.json +++ b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_firearms_single.json @@ -4,7 +4,7 @@ "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "skill_used": "mechanics", "difficulty": 2, "time": "12 m", @@ -28,7 +28,7 @@ { "result": "pistol_magnum_pipe", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", "skill_used": "mechanics", @@ -62,7 +62,7 @@ { "result": "shot_pipe_double", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", "skill_used": "mechanics", @@ -100,7 +100,7 @@ { "result": "black_powder_pistol", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", "difficulty": 4, @@ -115,7 +115,7 @@ { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_gunsmithing_basic" }, { "proficiency": "prof_gunsmithing_antique" }, - { "proficiency": "prof_carving", "time_multiplier": 1.5, "fail_multiplier": 1.15 } + { "proficiency": "prof_carving", "time_multiplier": 1.5, "skill_penalty": 0.15 } ], "using": [ [ "blacksmithing_standard", 1 ], [ "steel_standard", 3 ] ], "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], @@ -124,7 +124,7 @@ { "result": "black_powder_rifle", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", "difficulty": 5, @@ -139,7 +139,7 @@ { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_gunsmithing_basic" }, { "proficiency": "prof_gunsmithing_antique" }, - { "proficiency": "prof_carving", "time_multiplier": 1.5, "fail_multiplier": 1.15 } + { "proficiency": "prof_carving", "time_multiplier": 1.5, "skill_penalty": 0.15 } ], "using": [ [ "blacksmithing_standard", 2 ], [ "steel_standard", 1 ] ], "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], diff --git a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_grenade_propelled.json b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_grenade_propelled.json index 34d1f27fe..bc67d7a0f 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_grenade_propelled.json +++ b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_grenade_propelled.json @@ -2,7 +2,7 @@ { "result": "grenade_ammo_shot", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_GRENADES", "skill_used": "fabrication", @@ -26,7 +26,7 @@ { "result": "grenade_ammo_slug", "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_GRENADES", "skill_used": "fabrication", diff --git a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_pistol.json b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_pistol.json index ba751161e..9479270e4 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_pistol.json +++ b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_pistol.json @@ -2,7 +2,7 @@ { "result": "reloaded_tiny_pistol_jhp", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_PISTOL", "skill_used": "fabrication", @@ -20,14 +20,21 @@ { "result": "bp_tiny_pistol_jhp", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_tiny_pistol_jhp", "components": [ [ [ "chem_black_powder", 2 ] ] ] }, + { + "result": "matchhead_tiny_pistol_jhp", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "copy-from": "reloaded_tiny_pistol_jhp", + "components": [ [ [ "red_phosphorous", 2 ] ] ] + }, { "result": "reloaded_tiny_pistol_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_tiny_pistol_jhp", "using": [ [ "req_pistol_tiny", 1 ], [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ], "proficiencies": [ { "proficiency": "prof_handloading" } ], @@ -36,14 +43,21 @@ { "result": "bp_tiny_pistol_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_tiny_pistol_ball", "components": [ [ [ "chem_black_powder", 2 ] ], [ [ "copper", 1 ] ] ] }, + { + "result": "matchhead_tiny_pistol_ball", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "copy-from": "reloaded_tiny_pistol_ball", + "components": [ [ [ "red_phosphorous", 2 ] ], [ [ "copper", 1 ] ] ] + }, { "result": "reloaded_pistol_jhp", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_PISTOL", "skill_used": "fabrication", @@ -61,14 +75,21 @@ { "result": "bp_pistol_jhp", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_pistol_jhp", "components": [ [ [ "chem_black_powder", 4 ] ] ] }, + { + "result": "matchhead_pistol_jhp", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "copy-from": "reloaded_pistol_jhp", + "components": [ [ [ "red_phosphorous", 4 ] ] ] + }, { "result": "reloaded_pistol_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_pistol_jhp", "using": [ [ "req_pistol", 1 ], [ "bullet_forming", 2 ], [ "ammo_bullet", 2 ] ], "proficiencies": [ { "proficiency": "prof_handloading" } ], @@ -80,14 +101,21 @@ { "result": "bp_pistol_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_pistol_ball", "components": [ [ [ "chem_black_powder", 4 ] ], [ [ "copper", 1 ], [ "pistol_tiny_casing", 1 ] ] ] }, + { + "result": "matchhead_pistol_ball", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "copy-from": "reloaded_pistol_ball", + "components": [ [ [ "red_phosphorous", 4 ] ], [ [ "copper", 1 ], [ "pistol_tiny_casing", 1 ] ] ] + }, { "result": "reloaded_pistol_magnum_jhp", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_PISTOL", "skill_used": "fabrication", @@ -105,14 +133,14 @@ { "result": "bp_pistol_magnum_jhp", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_pistol_magnum_jhp", "components": [ [ [ "chem_black_powder", 6 ] ] ] }, { "result": "reloaded_pistol_magnum_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_pistol_magnum_jhp", "using": [ [ "req_pistol_magnum", 1 ], [ "bullet_forming", 5 ], [ "ammo_bullet", 4 ] ], "proficiencies": [ { "proficiency": "prof_handloading" } ], @@ -124,7 +152,7 @@ { "result": "bp_pistol_magnum_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_pistol_magnum_ball", "components": [ [ [ "chem_black_powder", 6 ] ], [ [ "copper", 2 ], [ "pistol_magnum_casing", 1 ] ] ] } diff --git a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_rifle.json b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_rifle.json index d6b11e1c7..989807dec 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_rifle.json +++ b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_rifle.json @@ -2,7 +2,7 @@ { "result": "black_powder_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_RIFLE", "skill_used": "fabrication", @@ -21,7 +21,7 @@ { "result": "black_powder_shot", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_RIFLE", "skill_used": "fabrication", @@ -40,7 +40,7 @@ { "result": "reloaded_rifle_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_RIFLE", "skill_used": "fabrication", @@ -57,17 +57,44 @@ [ [ "gunpowder", 12 ], [ "gunpowder_magnum_pistol", 12 ], [ "gunpowder_rifle", 12 ], [ "gunpowder_large_rifle", 12 ] ] ] }, + { + "result": "reloaded_rifle_ball_foreign", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_AMMO", + "subcategory": "CSC_AMMO_RIFLE", + "skill_used": "fabrication", + "difficulty": 3, + "skills_required": [ "gun", 1 ], + "time": "2 m", + "batch_time_factors": [ 60, 5 ], + "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ], + "charges": 1, + "reversible": true, + "using": [ [ "req_rifle", 1 ], [ "bullet_forming", 9 ], [ "ammo_bullet", 6 ] ], + "proficiencies": [ { "proficiency": "prof_handloading" } ], + "components": [ + [ [ "gunpowder", 12 ], [ "gunpowder_magnum_pistol", 12 ], [ "gunpowder_rifle", 12 ], [ "gunpowder_large_rifle", 12 ] ] + ] + }, + { + "result": "bp_rifle_ball_foreign", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "copy-from": "reloaded_rifle_ball", + "components": [ [ [ "chem_black_powder", 12 ] ] ] + }, { "result": "bp_rifle_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_rifle_ball", "components": [ [ [ "chem_black_powder", 12 ] ] ] }, { "result": "reloaded_rifle_AP", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_rifle_ball", "using": [ [ "req_rifle", 1 ], [ "req_penetrator", 1 ], [ "bullet_forming", 9 ], [ "ammo_bullet", 6 ] ], "components": [ @@ -78,14 +105,14 @@ { "result": "bp_rifle_AP", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_rifle_AP", "components": [ [ [ "chem_black_powder", 12 ] ], [ [ "copper", 3 ] ] ] }, { "result": "reloaded_rifle_huge_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_RIFLE", "skill_used": "fabrication", @@ -103,14 +130,14 @@ { "result": "bp_rifle_huge_ball", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_rifle_huge_ball", "components": [ [ [ "chem_black_powder", 30 ] ] ] }, { "result": "reloaded_rifle_huge_AP", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_rifle_huge_ball", "using": [ [ "req_rifle_huge", 1 ], [ "req_penetrator", 1 ], [ "bullet_forming", 21 ], [ "ammo_bullet", 12 ] ], "components": [ [ [ "gunpowder", 30 ], [ "gunpowder_large_rifle", 30 ] ], [ [ "copper", 6 ], [ "rifle_casing", 1 ] ] ] @@ -118,7 +145,7 @@ { "result": "bp_rifle_huge_AP", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "copy-from": "reloaded_rifle_huge_ball", "using": [ [ "req_rifle_huge", 1 ], [ "req_penetrator", 1 ], [ "bullet_forming", 21 ], [ "ammo_bullet", 12 ] ], "components": [ [ [ "gunpowder", 30 ], [ "gunpowder_large_rifle", 30 ] ], [ [ "copper", 6 ], [ "rifle_casing", 1 ] ] ] diff --git a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_shot.json b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_shot.json index f5c472421..632a62880 100644 --- a/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_shot.json +++ b/data/Mainline_mods/Mods/Generic_Guns/recipes/recipes_shot.json @@ -2,7 +2,7 @@ { "result": "reloaded_shot_buck", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -21,7 +21,7 @@ { "result": "bp_shot_buck", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -41,7 +41,7 @@ "result": "bp_shot_buck", "id_suffix": "with_dowel", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -59,7 +59,7 @@ { "result": "reloaded_shot_fowl", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -78,7 +78,7 @@ { "result": "bp_shot_fowl", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -96,7 +96,7 @@ "result": "bp_shot_fowl", "id_suffix": "with_dowel", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -114,7 +114,7 @@ { "result": "reloaded_shot_pyro", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -133,7 +133,7 @@ { "result": "bp_shot_pyro", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -153,7 +153,7 @@ "result": "bp_shot_pyro", "id_suffix": "with_dowel", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -171,7 +171,7 @@ { "result": "reloaded_shot_foster", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -190,7 +190,7 @@ { "result": "bp_shot_foster", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -210,7 +210,7 @@ "result": "bp_shot_foster", "id_suffix": "with_dowel", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -228,7 +228,7 @@ { "result": "reloaded_shot_dart", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -247,7 +247,7 @@ { "result": "bp_shot_dart", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -267,7 +267,7 @@ "result": "bp_shot_dart", "id_suffix": "with_dowel", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -285,7 +285,7 @@ { "result": "reloaded_shot_junk", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -318,7 +318,7 @@ { "result": "bp_shot_junk", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", @@ -352,7 +352,7 @@ "result": "bp_shot_junk", "id_suffix": "with_dowel", "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "category": "CC_AMMO", "subcategory": "CSC_AMMO_SHOT", "skill_used": "fabrication", diff --git a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain.json b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain.json index e29c16e27..f9eed12f8 100644 --- a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain.json +++ b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain.json @@ -532,74 +532,6 @@ "copy-from": "hunter_shack_roof_1", "sym": "\u00E0" }, - { - "type": "overmap_terrain", - "id": "campground_1a", - "copy-from": "campground_1a", - "sym": "\u00C5", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "campground_1b", - "copy-from": "campground_1b", - "sym": "\u00C5", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "campground_2a", - "copy-from": "campground_2a", - "sym": "\u00C5", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "campground_2b", - "copy-from": "campground_2b", - "sym": "\u00C5", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "campground_roof", - "copy-from": "campground_roof", - "sym": "\u00C5", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "campground_1a_npc", - "copy-from": "campground_1a_npc", - "sym": "\u00C5", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "campground_1b_npc", - "copy-from": "campground_1b_npc", - "sym": "\u00C5", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "campground_2a_npc", - "copy-from": "campground_2a_npc", - "sym": "\u00C5", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "campground_2b_npc", - "copy-from": "campground_2b_npc", - "sym": "\u00C5", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "campground_roof_npc", - "copy-from": "campground_1a_npc" - }, { "type": "overmap_terrain", "id": "desolatebarn", diff --git a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_commercial.json b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_commercial.json index 144db8f98..0247bb039 100644 --- a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_commercial.json +++ b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_commercial.json @@ -576,13 +576,6 @@ "id": "s_bookstore_roof_2", "copy-from": "s_bookstore_roof" }, - { - "type": "overmap_terrain", - "id": "s_restaurant_foodplace", - "copy-from": "s_restaurant_foodplace", - "sym": "\u00E7", - "color": "light_red" - }, { "type": "overmap_terrain", "id": "s_restaurant_foodplace_roof", diff --git a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_industrial.json b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_industrial.json index f2542d52e..d19a0f18c 100644 --- a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_industrial.json +++ b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_industrial.json @@ -105,11 +105,6 @@ "copy-from": "warehouse", "sym": "\u00D6" }, - { - "type": "overmap_terrain", - "id": "warehouse_roof", - "copy-from": "warehouse" - }, { "type": "overmap_terrain", "id": "small_storage_units", diff --git a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_mansion.json b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_mansion.json index a1bef7d21..6bc3ef481 100644 --- a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_mansion.json +++ b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_mansion.json @@ -1,266 +1,266 @@ [ { "type": "overmap_terrain", - "abstract": "generic_mansion_no_sidewalk", - "copy-from": "generic_mansion_no_sidewalk", + "abstract": "generic_mansion", + "copy-from": "generic_mansion", "sym": "\u00D0", "color": "white" }, { "type": "overmap_terrain", - "abstract": "generic_mansion", - "copy-from": "generic_mansion", + "abstract": "generic_mansion_entrance", + "copy-from": "generic_mansion_entrance", "sym": "\u00D0", "color": "white" }, { "id": "mansion_c1", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c2", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c3", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c4", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c5", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c1u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c2u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c3u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c4u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c5u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c1d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c2d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c3d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c4d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c5d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+1", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+2", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+3", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+4", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+1u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+2u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+3u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+4u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+1d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+2d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+4d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t1", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t2", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t4", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t5", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t6", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t7", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t1u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t2u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t4u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t5u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t6u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t7u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t1d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t2d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t4d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t5d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t6d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t7d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_e1", "type": "overmap_terrain", - "copy-from": "generic_mansion" + "copy-from": "generic_mansion_entrance" }, { "id": "mansion_e2", "type": "overmap_terrain", - "copy-from": "generic_mansion" + "copy-from": "generic_mansion_entrance" }, { "id": "mansion_e1u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_e2u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_e1d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_e2d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" } ] diff --git a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_residential.json b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_residential.json index 59f1875a2..7e773ba4e 100644 --- a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_residential.json +++ b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_residential.json @@ -431,48 +431,6 @@ "sym": "\u00C5", "color": "brown" }, - { - "type": "overmap_terrain", - "id": "trailerparksmall0", - "copy-from": "trailerparksmall0", - "sym": "\u00F9", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "trailerparksmall0_roof", - "copy-from": "trailerparksmall0_roof", - "sym": "\u00F9", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "trailerparksmall1", - "copy-from": "trailerparksmall1", - "sym": "\u00F9", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "trailerparksmall1_roof", - "copy-from": "trailerparksmall1_roof", - "sym": "\u00F9", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "trailerparksmall2", - "copy-from": "trailerparksmall2", - "sym": "\u00F9", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "trailerparksmall2_roof", - "copy-from": "trailerparksmall2_roof", - "sym": "\u00F9", - "color": "white" - }, { "type": "overmap_terrain", "id": "house_01", diff --git a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_transportation.json b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_transportation.json index 7581e7887..5e64cc1b7 100644 --- a/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_transportation.json +++ b/data/Mainline_mods/Mods/Graphical_Overmap/go_overmap_terrain_transportation.json @@ -1,16 +1,4 @@ [ - { - "type": "overmap_terrain", - "id": "hiway_ns", - "copy-from": "hiway_ns", - "sym": "\u00BD" - }, - { - "type": "overmap_terrain", - "id": "hiway_ew", - "copy-from": "hiway_ew", - "sym": "\u00BE" - }, { "type": "overmap_terrain", "id": "road_nesw_manhole", diff --git a/data/Mainline_mods/Mods/Graphical_Overmap/modinfo.json b/data/Mainline_mods/Mods/Graphical_Overmap/modinfo.json index 81c3b24ec..ad3b66e14 100644 --- a/data/Mainline_mods/Mods/Graphical_Overmap/modinfo.json +++ b/data/Mainline_mods/Mods/Graphical_Overmap/modinfo.json @@ -7,7 +7,7 @@ "maintainers": [ "Larwick" ], "description": "Gives the overmap a graphical overhaul. Please refer to readme for installation.", "category": "graphical", - "obsolete": false, + "obsolete": true, "dependencies": [ "dda" ] } ] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/EOC/danger_clock_eoc.json b/data/Mainline_mods/Mods/Isolation-Protocol/EOC/danger_clock_eoc.json new file mode 100644 index 000000000..4b90bee46 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/EOC/danger_clock_eoc.json @@ -0,0 +1,63 @@ +[ + { + "type": "effect_on_condition", + "id": "ISO_DANGER_CLOCK", + "recurrence": "3 minutes", + "global": true, + "condition": { "not": { "or": [ { "u_at_om_location": "iso_hallway_safe" }, { "u_at_om_location": "iso_elevator_safe" } ] } }, + "effect": [ { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", "++" ] }, { "math": [ "u_ISO_DANGER", "++" ] } ] + }, + { + "type": "effect_on_condition", + "id": "ISO_DANGER_LEVEL_SPAWNER", + "recurrence": "5 minutes", + "global": true, + "condition": { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", ">=", "20" ] }, + "effect": [ + { + "u_spawn_monster": "mon_hound_tindalos", + "real_count": 2, + "min_radius": 20, + "max_radius": 40, + "spawn_message": "Hungry shadows peer at you from the darkness.", + "spawn_message_plural": "Hungry shadows peer at you from the darkness." + } + ], + "false_effect": { + "run_eocs": [ + { + "id": "ISO_CURRENT_LEVEL_DANGER_medium", + "condition": { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", ">=", "15" ] }, + "effect": [ + { + "u_spawn_monster": "mon_darkman", + "real_count": 3, + "min_radius": 20, + "max_radius": 40, + "spawn_message": "The room's shadows merge into menacing shapes.", + "spawn_message_plural": "The room's shadows merge into menacing shapes." + } + ], + "false_effect": { + "run_eocs": [ + { + "id": "ISO_CURRENT_LEVEL_DANGER_low", + "condition": { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", ">=", "10" ] }, + "effect": [ + { + "u_spawn_monster": "mon_shadow", + "real_count": 10, + "min_radius": 20, + "max_radius": 40, + "spawn_message": "The lab grows unnaturally dark.", + "spawn_message_plural": "The lab grows unnaturally dark." + } + ] + } + ] + } + } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/EOC/elevator_eoc.json b/data/Mainline_mods/Mods/Isolation-Protocol/EOC/elevator_eoc.json new file mode 100644 index 000000000..5f238e0ed --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/EOC/elevator_eoc.json @@ -0,0 +1,53 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_ISO_ADD_TRAIT", + "eoc_type": "EVENT", + "required_event": "game_begin", + "condition": { "and": [ { "not": { "u_has_trait": "iso_trait" } } ] }, + "effect": [ { "u_add_trait": "iso_trait" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ISO_ELEVATOR", + "effect": [ + { "math": [ "ISO_CURRENT_LEVEL", "++" ] }, + { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", "=", "0" ] }, + { "u_message": "The elevator starts moving before you can touch the panel.", "popup": true }, + { "run_eocs": [ "EOC_ISO_DECIDE_LEVEL" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ISO_DECIDE_LEVEL", + "condition": { "math": [ "ISO_CURRENT_LEVEL % SAFEPOINT_INTERVAL", "==", "0" ] }, + "effect": [ { "run_eocs": [ "EOC_ISO_MICROLAB_SAFE_TP" ] } ], + "false_effect": [ { "run_eocs": [ "EOC_ISO_MICROLAB_TP" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ISO_MICROLAB_TP", + "effect": [ + { + "u_location_variable": { "global_val": "new_map" }, + "target_params": { "om_terrain": "iso_elevator", "z": -1, "random": true, "cant_see": true, "search_range": 180 }, + "terrain": "t_elevator", + "target_max_radius": 30 + }, + { "u_teleport": { "global_val": "new_map" }, "force": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ISO_MICROLAB_SAFE_TP", + "effect": [ + { + "u_location_variable": { "global_val": "new_map" }, + "target_params": { "om_terrain": "iso_elevator_safe", "z": -1, "random": true, "cant_see": true, "search_range": 180 }, + "terrain": "t_elevator", + "target_max_radius": 30 + }, + { "u_teleport": { "global_val": "new_map" }, "force": true } + ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/EOC/scenario_init.json b/data/Mainline_mods/Mods/Isolation-Protocol/EOC/scenario_init.json new file mode 100644 index 000000000..758a18c1e --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/EOC/scenario_init.json @@ -0,0 +1,8 @@ +[ + { + "type": "effect_on_condition", + "id": "scenario_fractal_facility", + "eoc_type": "SCENARIO_SPECIFIC", + "effect": [ { "math": [ "SAFEPOINT_INTERVAL", "=", "5" ] }, { "math": [ "ISO_CURRENT_LEVEL", "=", "1" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Map/levels/entrance_level.json b/data/Mainline_mods/Mods/Isolation-Protocol/Map/levels/entrance_level.json new file mode 100644 index 000000000..2014b584a --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Map/levels/entrance_level.json @@ -0,0 +1,16 @@ +[ + { + "type": "overmap_special", + "id": "iso_start_map", + "overmaps": [ + { "point": [ 0, 0, -1 ], "overmap": "iso_first_elevator_north" }, + { "point": [ 0, -1, -1 ], "overmap": "iso_hallway_isolated_north" }, + { "point": [ 0, -2, -1 ], "overmap": "iso_next_level_elevator_south" } + ], + "locations": [ "iso_nether" ], + "flags": [ "ISO_MAP", "GLOBALLY_UNIQUE" ], + "city_distance": [ 0, 30 ], + "city_sizes": [ 0, 16 ], + "occurrences": [ 4, 4 ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Map/levels/microlab_small_level.json b/data/Mainline_mods/Mods/Isolation-Protocol/Map/levels/microlab_small_level.json new file mode 100644 index 000000000..30a5b008a --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Map/levels/microlab_small_level.json @@ -0,0 +1,132 @@ +[ + { + "type": "overmap_special", + "id": "iso_msl", + "subtype": "mutable", + "locations": [ "iso_nether" ], + "city_distance": [ 0, -1 ], + "city_sizes": [ 0, -1 ], + "occurrences": [ 4, 4 ], + "flags": [ "ISO_MAP" ], + "check_for_locations": [ + [ [ 0, 0, 0 ], [ "iso_nether" ] ], + [ [ 0, 0, -1 ], [ "iso_nether" ] ], + [ [ 4, 0, -1 ], [ "iso_nether" ] ], + [ [ 3, 0, -1 ], [ "iso_nether" ] ], + [ [ 2, 0, -1 ], [ "iso_nether" ] ], + [ [ 1, 0, -1 ], [ "iso_nether" ] ], + [ [ -4, 0, -1 ], [ "iso_nether" ] ], + [ [ -3, 0, -1 ], [ "iso_nether" ] ], + [ [ -2, 0, -1 ], [ "iso_nether" ] ], + [ [ -1, 0, -1 ], [ "iso_nether" ] ], + [ [ 0, -4, -1 ], [ "iso_nether" ] ], + [ [ 0, -3, -1 ], [ "iso_nether" ] ], + [ [ 0, -2, -1 ], [ "iso_nether" ] ], + [ [ 0, -1, -1 ], [ "iso_nether" ] ], + [ [ 0, 4, -1 ], [ "iso_nether" ] ], + [ [ 0, 3, -1 ], [ "iso_nether" ] ], + [ [ 0, 2, -1 ], [ "iso_nether" ] ], + [ [ 0, 1, -1 ], [ "iso_nether" ] ] + ], + "joins": [ + "hallway_to_hallway", + "duct_to_surface", + { "id": "hallway_to_microlab", "opposite": "microlab_to_hallway" }, + { "id": "microlab_to_hallway", "opposite": "hallway_to_microlab" }, + "microlab_to_microlab" + ], + "overmaps": { + "surface": { "overmap": "nether_glass_impassable_north", "below": "duct_to_surface", "locations": [ "iso_nether" ] }, + "iso_elevator": { "overmap": "iso_elevator_north", "above": "duct_to_surface", "north": "hallway_to_hallway" }, + "iso_next_level_elevator": { "overmap": "iso_next_level_elevator_north", "north": { "id": "hallway_to_hallway" } }, + "microlab_rock_border": { "overmap": "microlab_rock_border" }, + "nether_glass_impassable": { "overmap": "nether_glass_impassable_north" }, + "microlab": { + "overmap": "microlab_generic", + "north": { "id": "microlab_to_microlab", "alternatives": [ "microlab_to_hallway" ] }, + "east": { "id": "microlab_to_microlab", "alternatives": [ "microlab_to_hallway" ] }, + "south": { "id": "microlab_to_microlab", "alternatives": [ "microlab_to_hallway" ] }, + "west": { "id": "microlab_to_microlab", "alternatives": [ "microlab_to_hallway" ] } + }, + "microlab_edge": { + "overmap": "microlab_generic_edge", + "north": { "id": "microlab_to_microlab", "type": "available", "alternatives": [ "microlab_to_hallway" ] }, + "east": { "id": "microlab_to_microlab", "type": "available", "alternatives": [ "microlab_to_hallway" ] }, + "south": { "id": "microlab_to_microlab", "type": "available", "alternatives": [ "microlab_to_hallway" ] }, + "west": { "id": "microlab_to_microlab", "type": "available", "alternatives": [ "microlab_to_hallway" ] } + }, + "firebreak": { "overmap": "microlab_generic_firebreak_north", "north": "hallway_to_hallway", "south": "hallway_to_hallway" }, + "hallway_cross": { + "overmap": "microlab_generic_hallway_nesw", + "north": "hallway_to_hallway", + "east": "hallway_to_hallway", + "south": "hallway_to_hallway", + "west": "hallway_to_hallway" + }, + "hallway_straight": { + "overmap": "microlab_generic_hallway_ns", + "north": "hallway_to_hallway", + "east": "hallway_to_microlab", + "south": "hallway_to_hallway", + "west": "hallway_to_microlab" + }, + "hallway_curve": { + "overmap": "microlab_generic_hallway_ne", + "north": "hallway_to_hallway", + "east": "hallway_to_hallway", + "south": "hallway_to_microlab", + "west": "hallway_to_microlab" + }, + "hallway_end": { + "overmap": "microlab_generic_hallway_end_south", + "north": "hallway_to_hallway", + "east": { "id": "microlab_to_microlab", "type": "available", "alternatives": [ "hallway_to_microlab" ] }, + "west": { "id": "microlab_to_microlab", "type": "available", "alternatives": [ "hallway_to_microlab" ] }, + "south": { "id": "microlab_to_microlab", "type": "available", "alternatives": [ "hallway_to_microlab" ] } + }, + "hallway_blind_end": { "overmap": "microlab_generic_hallway_blind_end_north", "north": { "id": "hallway_to_hallway" } }, + "rock_divisor": { + "overmap": "microlab_rock_border", + "north": "microlab_to_microlab", + "south": "microlab_to_microlab", + "east": { "id": "microlab_to_microlab", "type": "available" }, + "west": { "id": "microlab_to_microlab", "type": "available" } + } + }, + "root": "surface", + "phases": [ + [ { "overmap": "iso_elevator", "max": 1 } ], + [ { "overmap": "hallway_straight", "max": 4 } ], + [ { "overmap": "hallway_curve", "max": { "poisson": 0.5, "bounds": [ 0, 1 ] } } ], + [ { "overmap": "hallway_straight", "max": { "poisson": 0.7, "bounds": [ 1, 3 ] } } ], + [ { "overmap": "hallway_cross", "max": { "poisson": 0.5, "bounds": [ 0, 1 ] } } ], + [ + { + "name": "subway_chunk_at_-2", + "chunk": [ + { "overmap": "firebreak", "pos": [ 0, 0, 0 ], "rot": "east" }, + { "overmap": "hallway_straight", "pos": [ 1, 0, 0 ], "rot": "east" }, + { "overmap": "hallway_straight", "pos": [ -1, 0, 0 ], "rot": "east" }, + { "overmap": "microlab_rock_border", "pos": [ 0, 1, 0 ] }, + { "overmap": "microlab_rock_border", "pos": [ 0, 2, 0 ] }, + { "overmap": "microlab_rock_border", "pos": [ 0, 3, 0 ] }, + { "overmap": "microlab_rock_border", "pos": [ 0, 4, 0 ] }, + { "overmap": "microlab_rock_border", "pos": [ 0, 5, 0 ] }, + { "overmap": "microlab_rock_border", "pos": [ 0, -1, 0 ] }, + { "overmap": "microlab_rock_border", "pos": [ 0, -2, 0 ] }, + { "overmap": "microlab_rock_border", "pos": [ 0, -3, 0 ] }, + { "overmap": "microlab_rock_border", "pos": [ 0, -4, 0 ] }, + { "overmap": "microlab_rock_border", "pos": [ 0, -5, 0 ] } + ], + "max": { "poisson": 0.5, "bounds": [ 0, 1 ] } + } + ], + [ { "overmap": "hallway_straight", "max": { "poisson": 3 } } ], + [ { "overmap": "iso_next_level_elevator", "max": 1 } ], + [ { "overmap": "hallway_end", "weight": 1 } ], + [ { "overmap": "microlab", "max": 20 } ], + [ { "overmap": "microlab_edge", "weight": 1 } ], + [ { "overmap": "rock_divisor", "weight": 1 } ] + ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Map/levels/safe_level.json b/data/Mainline_mods/Mods/Isolation-Protocol/Map/levels/safe_level.json new file mode 100644 index 000000000..7ef91ede3 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Map/levels/safe_level.json @@ -0,0 +1,16 @@ +[ + { + "type": "overmap_special", + "id": "iso_safe_map", + "overmaps": [ + { "point": [ 0, 0, -1 ], "overmap": "iso_elevator_safe_north" }, + { "point": [ 0, -1, -1 ], "overmap": "iso_hallway_safe_north" }, + { "point": [ 0, -2, -1 ], "overmap": "iso_next_level_elevator_south" } + ], + "locations": [ "iso_nether" ], + "flags": [ "ISO_MAP" ], + "city_distance": [ 0, 30 ], + "city_sizes": [ 0, 16 ], + "occurrences": [ 4, 4 ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Map/mapgen/elevator.json b/data/Mainline_mods/Mods/Isolation-Protocol/Map/mapgen/elevator.json new file mode 100644 index 000000000..d4f4a7c64 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Map/mapgen/elevator.json @@ -0,0 +1,102 @@ +[ + { + "type": "mapgen", + "om_terrain": "iso_first_elevator", + "method": "json", + "object": { + "fill_ter": "t_strconc_floor", + "place_nested": [ { "chunks": [ "iso_elevator" ], "x": 0, "y": 0 } ], + "place_zones": [ { "type": "ZONE_START_POINT", "faction": "your_followers", "x": 9, "y": 14 } ] + } + }, + { + "type": "mapgen", + "om_terrain": "iso_elevator", + "method": "json", + "object": { "fill_ter": "t_strconc_floor", "place_nested": [ { "chunks": [ "iso_elevator" ], "x": 0, "y": 0 } ] } + }, + { + "type": "mapgen", + "om_terrain": "iso_elevator_safe", + "method": "json", + "object": { "fill_ter": "t_strconc_floor", "place_nested": [ { "chunks": [ "iso_elevator" ], "x": 0, "y": 0 } ] } + }, + { + "type": "mapgen", + "om_terrain": "iso_next_level_elevator", + "method": "json", + "object": { "fill_ter": "t_strconc_floor", "place_nested": [ { "chunks": [ "iso_elevator_next" ], "x": 0, "y": 0 } ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "iso_elevator", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "#####| |#####", + "#####|==== ====|#####", + "#####|XXX= =XXX|#####", + "#####||||||22||||||#####", + "#####|XXX| |XXX|#####", + "##||||===| |===||||##", + "##|XX= YYPPPPYY =XX|##", + "##|XX= PPPP =XX|##", + "##|XX= PPPP =XX|##", + "##||||^ YYPPPPYY ^||||##", + "####|N N|####", + "####|||| |||| ||||####", + "#####|--22-##-22--|#####", + "#####|-Eee-##-eeE-|#####", + "#####|-eee-##-eee-|#####", + "#####|-----##-----|#####", + "#####||||||||||||||#####", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################" + ], + "palettes": [ "microlab" ], + "terrain": { "`": "t_open_air", "X": "t_region_shrub_decorative", "P": "t_carpet_concrete_red", "E": "t_elevator_control_off" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "iso_elevator_next", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "#####| |#####", + "#####|==== ====|#####", + "#####|XXX= =XXX|#####", + "#####||||||22||||||#####", + "#####|XXX| |XXX|#####", + "##||||===| |===||||##", + "##|XX= YYPPPPYY =XX|##", + "##|XX= PPPP =XX|##", + "##|XX= PPPP =XX|##", + "##||||^ YYPPPPYY ^||||##", + "####|N N|####", + "####|||| |||| ||||####", + "#####|--22-##-22--|#####", + "#####|-Eee-##-eeE-|#####", + "#####|-eee-##-eee-|#####", + "#####|-----##-----|#####", + "#####||||||||||||||#####", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################", + "########################" + ], + "palettes": [ "microlab" ], + "terrain": { "`": "t_open_air", "X": "t_region_shrub_decorative", "P": "t_carpet_concrete_red", "E": "t_elevator_control_iso" } + } + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Map/mapgen/hallway.json b/data/Mainline_mods/Mods/Isolation-Protocol/Map/mapgen/hallway.json new file mode 100644 index 000000000..6af191048 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Map/mapgen/hallway.json @@ -0,0 +1,72 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": "iso_hallway_isolated", + "object": { + "fill_ter": "t_strconc_floor", + "place_nested": [ + { "chunks": [ "microlab_generic_hallway_straight_isolated_tile" ], "x": 0, "y": 0 }, + { "else_chunks": [ "concrete_corner" ], "x": 0, "y": 0, "neighbors": { "north_west": "microlab" } }, + { "else_chunks": [ "concrete_corner" ], "x": 23, "y": 0, "neighbors": { "north_east": "microlab" } }, + { "else_chunks": [ "concrete_corner" ], "x": 23, "y": 23, "neighbors": { "south_east": "microlab" } }, + { "else_chunks": [ "concrete_corner" ], "x": 0, "y": 23, "neighbors": { "south_west": "microlab" } } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "iso_hallway_safe", + "object": { + "fill_ter": "t_strconc_floor", + "place_nested": [ + { "chunks": [ "microlab_generic_hallway_safe_tile" ], "x": 0, "y": 0 }, + { "else_chunks": [ "concrete_corner" ], "x": 0, "y": 0, "neighbors": { "north_west": "microlab" } }, + { "else_chunks": [ "concrete_corner" ], "x": 23, "y": 0, "neighbors": { "north_east": "microlab" } }, + { "else_chunks": [ "concrete_corner" ], "x": 23, "y": 23, "neighbors": { "south_east": "microlab" } }, + { "else_chunks": [ "concrete_corner" ], "x": 0, "y": 23, "neighbors": { "south_west": "microlab" } } + ] + } + }, + { + "type": "mapgen", + "nested_mapgen_id": "microlab_generic_hallway_safe_tile", + "method": "json", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "|####| YY A YY |####|", + "|####||55||SS||55||####|", + "|####|YPPY||||YPPY|####|", + "|#|||||55||||||55|||||#|", + "|#|b@@| b bb b |@@b|#|", + "|#|b 5YYb bb bYY5 b|#|", + "|#|b@@| ms A |@@b|#|", + "|#||||| |||||#|", + "|#|iY PPPPPPPPPPPP Yi|#|", + "|#|iY PPPPPPPPPPPP Yi|#|", + "|#||| PP ====== PP |||#|", + "|#|Y2 PPY=XXXX=YPP |;|#|", + "|#|;| PPY=XXXX=YPP 2Y|#|", + "|#||| PP ====== PP |||#|", + "|#|úY PPPPPPPPPPPP Yú|#|", + "|#|úY PPPPPPPPPPPP Yú|#|", + "|#||||| A s |||||#|", + "|#|b@@| m A|@@b|#|", + "|#|b 5YYb bb bYY5 b|#|", + "|#|b@@| b bb b |@@b|#|", + "|#|||||55||||||55|||||#|", + "|####|Y Y||||Y Y|####|", + "|####||55||SS||55||####|", + "|||||| YY YY ||||||" + ], + "palettes": [ "microlab" ], + "terrain": { "X": "t_region_shrub_decorative", "P": "t_carpet_concrete_red", "5": "t_door_metal_c" }, + "furniture": { "A": "f_xedra_antenna" }, + "item": { "m": { "item": "xedra_microphone", "chance": 90 }, "s": { "item": "xedra_seismograph", "chance": 90 } }, + "items": { "ú": { "item": "SUS_evac_shelter_locker_used", "chance": 95 } }, + "signs": { "S": { "signage": "\nNRE-SAFEPOINT\nStatus: ACTIVE" } } + } + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Map/overmap.json b/data/Mainline_mods/Mods/Isolation-Protocol/Map/overmap.json new file mode 100644 index 000000000..17cab8c7a --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Map/overmap.json @@ -0,0 +1,28 @@ +[ + { + "type": "overmap_terrain", + "id": [ "iso_first_elevator", "iso_elevator", "iso_elevator_safe", "iso_next_level_elevator" ], + "name": "lab elevator", + "color": "light_red", + "sym": "L", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "iso_hallway_isolated" ], + "name": "lab entrance hallway", + "sym": "L", + "color": "light_red", + "see_cost": 5, + "flags": [ "RISK_HIGH" ] + }, + { + "type": "overmap_terrain", + "id": [ "iso_hallway_safe" ], + "name": "lab safepoint", + "sym": "L", + "color": "light_red", + "see_cost": 5, + "flags": [ "SOURCE_SAFETY" ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Map/overmap_location.json b/data/Mainline_mods/Mods/Isolation-Protocol/Map/overmap_location.json new file mode 100644 index 000000000..6c4de4fc7 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Map/overmap_location.json @@ -0,0 +1,13 @@ +[ + { + "type": "overmap_location", + "id": "iso_nether", + "terrains": [ "nether_glass_impassable" ] + }, + { + "type": "start_location", + "id": "iso_entry_setpiece", + "name": "Entrance Lobby", + "terrain": [ "iso_first_elevator" ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/enchantments.json b/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/enchantments.json new file mode 100644 index 000000000..9611dd5bf --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/enchantments.json @@ -0,0 +1,32 @@ +[ + { + "type": "enchantment", + "id": "iso_ranged_adjust", + "condition": "ALWAYS", + "values": [ { "value": "RANGED_DAMAGE", "multiply": -0.25 } ] + }, + { + "type": "enchantment", + "id": "iso_ench_deliverator", + "condition": "ALWAYS", + "name": { "str": "The Deliverator" }, + "description": "Always on the clock.", + "values": [ { "value": "SPEED", "add": { "math": [ "u_ISO_CURRENT_LEVEL_DANGER" ] } } ] + }, + { + "type": "enchantment", + "id": "iso_ench_backup", + "name": { "str": "The Backup" }, + "description": "We have a situation here.", + "condition": { "u_has_effect": "iso_eff_backup" }, + "values": [ { "value": "MOVE_COST", "add": -50 } ] + }, + { + "type": "enchantment", + "id": "iso_ench_hypo_o", + "name": { "str": "Hypocrite's Oath" }, + "description": "OH you aren't getting away with that.", + "condition": { "u_has_effect": "iso_eff_hypo_o" }, + "values": [ { "value": "RANGED_DAMAGE", "multiply": 50 }, { "value": "RANGED_DAMAGE", "multiply": 50 } ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perk_effect.json b/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perk_effect.json new file mode 100644 index 000000000..d7560023f --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perk_effect.json @@ -0,0 +1,27 @@ +[ + { + "type": "effect_type", + "id": "iso_eff_backup", + "rating": "good", + "int_dur_factor": "1 s", + "max_duration": "1 s", + "show_in_info": false + }, + { + "type": "effect_type", + "id": "iso_eff_hypo_o", + "rating": "good", + "int_dur_factor": "1 s", + "max_duration": "6 s", + "show_in_info": false + }, + { + "type": "effect_type", + "id": "iso_heal", + "rating": "good", + "int_dur_factor": "1 s", + "name": [ "Rapid Healing" ], + "max_duration": "6 s", + "base_mods": { "hurt_amount": [ -10 ] } + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perk_eoc.json b/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perk_eoc.json new file mode 100644 index 000000000..130687336 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perk_eoc.json @@ -0,0 +1,39 @@ +[ + { + "type": "effect_on_condition", + "id": "iso_robolove", + "recurrence": "20 seconds", + "condition": { "and": [ { "u_has_trait": "iso_robolove" }, { "one_in_chance": 6 } ] }, + "deactivate_condition": { "not": { "u_has_trait": "iso_robolove" } }, + "effect": [ { "u_cast_spell": { "id": "iso_robolove_charm_1", "hit_self": true } } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ISO_HYPO_O", + "eoc_type": "EVENT", + "required_event": "character_gains_effect", + "condition": { + "and": [ + { "u_has_trait": "iso_hypo_o" }, + { + "or": [ + { "compare_string": [ "bandaged", { "context_val": "effect" } ] }, + { "compare_string": [ "disinfected", { "context_val": "effect" } ] } + ] + } + ] + }, + "effect": [ + { "set_string_var": { "context_val": "bodypart" }, "target_var": { "u_val": "heal_part" } }, + { "u_add_effect": "iso_heal", "duration": 1, "target_part": { "u_val": "heal_part" } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ISO_HYPO_DAM", + "eoc_type": "EVENT", + "required_event": "character_takes_damage", + "condition": { "u_has_trait": "iso_hypo_o" }, + "effect": [ { "u_add_effect": "iso_eff_hypo_o", "duration": "2 seconds" } ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perk_spells.json b/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perk_spells.json new file mode 100644 index 000000000..0adaea512 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perk_spells.json @@ -0,0 +1,36 @@ +[ + { + "id": "iso_robolove_charm_1", + "type": "SPELL", + "name": "Its a teapot!", + "description": "Makes a robot friendly for a very long time.", + "valid_targets": [ "self" ], + "flags": [ "NO_EXPLOSION_SFX", "SILENT" ], + "effect": "attack", + "damage_type": "pure", + "shape": "blast", + "min_aoe": 15, + "max_aoe": 15, + "min_range": 10, + "max_range": 10, + "extra_effects": [ { "id": "iso_robolove_charm_2" } ] + }, + { + "id": "iso_robolove_charm_2", + "type": "SPELL", + "name": "robot charm", + "description": "!", + "valid_targets": [ "hostile" ], + "flags": [ "NO_LEGS", "SILENT", "RANDOM_TARGET", "NO_PROJECTILE" ], + "targeted_monster_species": [ "ROBOT", "CYBORG" ], + "min_duration": 1080000, + "max_duration": 1080000, + "effect": "charm_monster", + "min_damage": 360000, + "max_damage": 360000, + "min_range": 10, + "max_range": 10, + "difficulty": 1, + "shape": "blast" + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perks.json b/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perks.json new file mode 100644 index 000000000..b18cb8ff6 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Player/Perks/perks.json @@ -0,0 +1,53 @@ +[ + { + "type": "mutation_type", + "id": "iso_perk" + }, + { + "type": "mutation_type", + "id": "iso_start_perk" + }, + { + "type": "mutation", + "id": "iso_deliverator", + "name": { "str": "The Deliverator" }, + "points": 0, + "description": "Every night you brave the highway, life-bound to a single promise: \"Your pie in thirty minutes or you can have it free.\" People can respect that. You are a role model. A hero to the hungry.\n\nYou gain +1 quickness for each level of normality distortion.", + "category": [ "iso_start_perk" ], + "enchantments": [ "iso_ench_deliverator" ], + "purifiable": false, + "valid": false + }, + { + "type": "mutation", + "id": "iso_hypo_o", + "name": { "str": "Hypocrite's Oath" }, + "points": 0, + "description": "I swear by Apollo the Healer, by Asclepius, by Hygieia, by Panacea, and by all the gods and goddesses, making them my witnesses, that I shall deliver, according to my ability and judgment, death.\n\nYou temporarily deal 50% more damage after being hurt. The first time you bandage or disinfect a limb, it instantly heals by 10hp in addition to normal effects.", + "category": [ "iso_start_perk" ], + "enchantments": [ "iso_ench_hypo_o" ], + "purifiable": false, + "valid": false + }, + { + "type": "mutation", + "id": "iso_backup", + "name": { "str": "Backup" }, + "points": 0, + "description": "We call this a tactical retreat.\n\nYou gain +50 movement speed for few moments after successfully dealing ballistic damage.", + "category": [ "iso_start_perk" ], + "enchantments": [ "iso_ench_backup" ], + "purifiable": false, + "valid": false + }, + { + "type": "mutation", + "id": "iso_robolove", + "name": { "str": "Machine Whisperer" }, + "points": 0, + "description": "Error. 418 //I am a teapot.\n\nEvery 20 seconds, theres a small chance for nearby robots to become permanently friendly.", + "category": [ "iso_start_perk" ], + "purifiable": false, + "valid": false + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Player/profession.json b/data/Mainline_mods/Mods/Isolation-Protocol/Player/profession.json new file mode 100644 index 000000000..d49f4c6db --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Player/profession.json @@ -0,0 +1,119 @@ +[ + { + "type": "profession", + "id": "iso_deliveryboy", + "name": { "male": "Pizza Delivery Boy", "female": "Pizza Delivery Girl" }, + "description": "A late night delivery to a lonely building, a cry for help from under the elevator, and a terrible conspiracy. You are not drunk enough for this.", + "points": 1, + "traits": [ "iso_trait", "iso_deliverator" ], + "skills": [ + { "level": 3, "name": "driving" }, + { "level": 1, "name": "speech" }, + { "level": 2, "name": "melee" }, + { "level": 2, "name": "bashing" }, + { "level": 2, "name": "dodge" }, + { "level": 1, "name": "swimming" } + ], + "items": { + "both": { + "items": [ "hat_ball", "jeans", "jacket_light", "socks", "sneakers", "pizza_meat", "money_strap_one", "wristwatch", "mbag" ], + "entries": [ + { "group": "charged_smart_phone" }, + { "item": "tshirt", "variant": "generic_tshirt" }, + { "item": "bat", "custom-flags": [ "auto_wield" ] } + ] + }, + "male": [ "briefs" ], + "female": [ "bra", "boy_shorts" ] + } + }, + { + "type": "profession", + "copy-from": "cop", + "id": "iso_cop", + "name": "Police Officer", + "requirement": "achievement_reach_police_station", + "description": "A small-town deputy who got the call and was ready to come to the rescue. If only you'd known what you were getting into…", + "points": 4, + "traits": [ "PROF_POLICE", "iso_trait", "iso_backup" ], + "items": { + "both": { + "items": [ "pants_army", "socks", "badge_deputy", "police_belt", "boots", "whistle", "wristwatch", "baton" ], + "entries": [ + { "group": "charged_smart_phone" }, + { "group": "charged_two_way_radio" }, + { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, + { "item": "usp_45", "ammo-item": "45_acp", "charges": 12, "container-item": "holster" }, + { "item": "legpouch_large", "contents-group": "army_mags_usp45" }, + { "item": "sheriffshirt", "variant": "sheriff" } + ] + }, + "male": [ "boxer_shorts" ], + "female": [ "bra", "boy_shorts" ] + } + }, + { + "type": "profession", + "id": "iso_hacker", + "name": "Hacktivist", + "description": "An activist pursuing a government conspiracy. In the end you were proven right, but does it even matter now?", + "points": 2, + "skills": [ { "level": 6, "name": "computer" }, { "level": 5, "name": "electronics" } ], + "traits": [ "iso_robolove", "iso_trait" ], + "proficiencies": [ "prof_elec_soldering", "prof_appliance_repair" ], + "items": { + "both": { + "items": [ "pants", "tshirt_text", "hoodie", "socks", "sneakers", "mbag", "caffeine", "caff_gum", "memory_card", "usb_drive" ], + "entries": [ + { "item": "light_plus_battery_cell", "ammo-item": "battery", "charges": 150, "container-item": "electrohack" }, + { + "item": "light_plus_battery_cell", + "ammo-item": "battery", + "charges": 150, + "container-item": "noise_emitter" + }, + { "item": "light_plus_battery_cell", "ammo-item": "battery", "charges": 150, "container-item": "camera" }, + { "group": "charged_smart_phone" }, + { "group": "charged_laptop" } + ] + }, + "male": [ "briefs" ], + "female": [ "sports_bra", "panties" ] + } + }, + { + "type": "profession", + "id": "iso_paramedic", + "copy-from": "paramedic", + "name": "Paramedic", + "description": "A paramedic, trained to save lives in the field.", + "points": 3, + "traits": [ "PROF_MED", "iso_trait", "iso_hypo_o" ], + "items": { + "both": { + "items": [ + "technician_shirt_gray", + "socks", + "gloves_medical", + "wristwatch", + "boots", + "mbag", + { "item": "bandages", "count": 3 }, + "stethoscope", + "scissors", + "syringe", + "morphine", + "adrenaline_injector" + ], + "entries": [ + { "group": "charged_smart_phone" }, + { "group": "full_1st_aid" }, + { "item": "pants", "variant": "pants_blue" }, + { "item": "mask_dust", "variant": "white_mask_dust" } + ] + }, + "male": [ "boxer_shorts" ], + "female": [ "bra", "panties" ] + } + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/Player/traits.json b/data/Mainline_mods/Mods/Isolation-Protocol/Player/traits.json new file mode 100644 index 000000000..d496e9e0b --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/Player/traits.json @@ -0,0 +1,14 @@ +[ + { + "type": "mutation", + "id": "iso_trait", + "name": "Lab Diver", + "points": 0, + "description": "Secret anchor point trait for gameplay enchantments. Mod will break if you purify this trait.", + "enchantments": [ "iso_ranged_adjust" ], + "starting_trait": false, + "player_display": false, + "purifiable": false, + "valid": false + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/damage.json b/data/Mainline_mods/Mods/Isolation-Protocol/damage.json new file mode 100644 index 000000000..f31b7f3be --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/damage.json @@ -0,0 +1,28 @@ +[ + { + "id": "bullet", + "type": "damage_type", + "physical": true, + "magic_color": "light_red", + "name": "ballistic", + "material_required": true, + "immune_flags": { "character": [ "BULLET_IMMUNE" ] }, + "ondamage_eocs": [ "ISO_BAL_DAMAGE_EFFECTS" ] + }, + { + "type": "effect_on_condition", + "id": "ISO_BAL_DAMAGE_EFFECTS", + "eoc_type": "ACTIVATION", + "effect": [ + { + "run_eocs": [ + { + "id": "iso_backup_perk", + "condition": { "u_has_trait": "iso_backup" }, + "effect": [ { "u_add_effect": "iso_eff_backup", "duration": "2 seconds" } ] + } + ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/furniture.json b/data/Mainline_mods/Mods/Isolation-Protocol/furniture.json new file mode 100644 index 000000000..43de14821 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/furniture.json @@ -0,0 +1,15 @@ +[ + { + "type": "terrain", + "id": "t_elevator_control_iso", + "name": "elevator controls", + "description": "This is the control face for an elevator. You could press the appropriate button to take you to your choice of floor.", + "symbol": "6", + "color": "light_blue", + "move_cost": 0, + "coverage": 50, + "roof": "t_flat_roof", + "flags": [ "NOITEM", "INDOORS" ], + "examine_action": { "type": "effect_on_condition", "effect_on_conditions": [ "EOC_ISO_ELEVATOR" ] } + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/game_balance.json b/data/Mainline_mods/Mods/Isolation-Protocol/game_balance.json new file mode 100644 index 000000000..f30112101 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/game_balance.json @@ -0,0 +1,23 @@ +[ + { + "type": "EXTERNAL_OPTION", + "name": "GENERIC_PROFESSION_ID", + "info": "The profession selected by default in the character creator menu.", + "stype": "string_input", + "value": "iso_deliveryboy" + }, + { + "type": "EXTERNAL_OPTION", + "name": "GENERIC_SCENARIO_ID", + "info": "The scenario selected by default in the character creator menu.", + "stype": "string_input", + "value": "fractal_facility" + }, + { + "type": "EXTERNAL_OPTION", + "name": "WEARY_RECOVERY_MULT", + "info": "What percentage of calorie intake and expenditure is reduced during each reduction tick.", + "stype": "float", + "value": 2 + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/modinfo.json b/data/Mainline_mods/Mods/Isolation-Protocol/modinfo.json new file mode 100644 index 000000000..5a7fae830 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/modinfo.json @@ -0,0 +1,12 @@ +[ + { + "type": "MOD_INFO", + "id": "Isolation_Protocol", + "name": "Isolation Protocol", + "authors": [ "Candlebury" ], + "maintainers": [ "Candlebury" ], + "description": "A total conversion mod inspired by traditional dungeon crawler roguelikes. Reach the bottom of an altered lab and prevent the cataclysm from spreading to the surface!", + "category": "total_conversion", + "dependencies": [ "dda" ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/region_settings.json b/data/Mainline_mods/Mods/Isolation-Protocol/region_settings.json new file mode 100644 index 000000000..968c40886 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/region_settings.json @@ -0,0 +1,56 @@ +[ + { + "type": "region_overlay", + "regions": [ "all" ], + "default_oter": [ + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north", + "nether_glass_impassable_north" + ], + "overmap_feature_flag_settings": { + "clear_blacklist": false, + "blacklist": [ "BLOB", "BEE", "ANT", "FUNGAL", "SLIME", "TRIFFID", "MI-GO", "LAB", "CLASSIC" ], + "clear_whitelist": false, + "whitelist": [ "ISO_MAP" ] + }, + "river_scale": 0, + "overmap_lake_settings": { + "noise_threshold_lake": 10.0, + "lake_size_min": 20, + "lake_depth": -5, + "shore_extendable_overmap_terrain": [ "forest", "forest_thick", "forest_water", "field" ], + "shore_extendable_overmap_terrain_aliases": [ + { "om_terrain": "island_forest", "om_terrain_match_type": "TYPE", "alias": "forest" }, + { "om_terrain": "island_forest_thick", "om_terrain_match_type": "TYPE", "alias": "forest_thick" }, + { "om_terrain": "island_forest_water", "om_terrain_match_type": "TYPE", "alias": "forest_water" }, + { "om_terrain": "island_field", "om_terrain_match_type": "TYPE", "alias": "field" } + ] + }, + "overmap_forest_settings": { + "noise_threshold_forest": 150.0, + "noise_threshold_forest_thick": 150.0, + "noise_threshold_swamp_adjacent_water": 0.3, + "noise_threshold_swamp_isolated": 0.6, + "river_floodplain_buffer_distance_min": 3, + "river_floodplain_buffer_distance_max": 15 + } + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/scenarios.json b/data/Mainline_mods/Mods/Isolation-Protocol/scenarios.json new file mode 100644 index 000000000..89d8ee497 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/scenarios.json @@ -0,0 +1,15 @@ +[ + { + "type": "scenario", + "id": "fractal_facility", + "name": "Fractal facility", + "points": 0, + "description": "Room by room and level by level the facility drills into depths beyond the logical. An endless mode where the only goal is to reach the lowest level possible.", + "allowed_locs": [ "iso_entry_setpiece" ], + "professions": [ "iso_deliveryboy", "iso_cop", "iso_paramedic", "iso_hacker" ], + "flags": [ "LONE_START" ], + "start_name": "Facility Lobby", + "forbidden_traits": [ "ROBUST", "XS", "XXXL", "CHAOTIC_BAD", "QUICK", "NOMAD", "WAYFARER", "NYCTOPHOBIA" ], + "eoc": [ "scenario_fractal_facility" ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/setting_blacklists/scenario_blacklist.json b/data/Mainline_mods/Mods/Isolation-Protocol/setting_blacklists/scenario_blacklist.json new file mode 100644 index 000000000..23cdf909b --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/setting_blacklists/scenario_blacklist.json @@ -0,0 +1,7 @@ +[ + { + "type": "SCENARIO_BLACKLIST", + "subtype": "whitelist", + "scenarios": [ "fractal_facility" ] + } +] diff --git a/data/Mainline_mods/Mods/Isolation-Protocol/ui.json b/data/Mainline_mods/Mods/Isolation-Protocol/ui.json new file mode 100644 index 000000000..adbf6dfd0 --- /dev/null +++ b/data/Mainline_mods/Mods/Isolation-Protocol/ui.json @@ -0,0 +1,87 @@ +[ + { + "//": "Extend with the danger widget", + "copy-from": "legacy_classic_sidebar", + "type": "widget", + "id": "legacy_classic_sidebar", + "extend": { "widgets": [ "iso_danger" ] } + }, + { + "//": "Extend with the danger widget", + "copy-from": "legacy_compact_sidebar", + "type": "widget", + "id": "legacy_compact_sidebar", + "extend": { "widgets": [ "iso_danger" ] } + }, + { + "//": "Extend with the danger widget", + "copy-from": "legacy_labels_narrow_sidebar", + "type": "widget", + "id": "legacy_labels_narrow_sidebar", + "extend": { "widgets": [ "iso_danger" ] } + }, + { + "//": "Extend with the danger widget", + "copy-from": "legacy_labels_sidebar", + "type": "widget", + "id": "legacy_labels_sidebar", + "extend": { "widgets": [ "iso_danger" ] } + }, + { + "//": "Extend with the danger widget", + "copy-from": "structured_sidebar", + "type": "widget", + "id": "structured_sidebar", + "extend": { "widgets": [ "iso_danger" ] } + }, + { + "id": "iso_danger", + "type": "widget", + "label": "Location normality", + "style": "text", + "clauses": [ + { + "id": "safe", + "text": "Stable", + "color": "light_green", + "condition": { "or": [ { "u_at_om_location": "iso_hallway_safe" }, { "u_at_om_location": "iso_elevator_safe" } ] } + }, + { + "id": "ok", + "text": "Deteriorating", + "color": "light_gray", + "condition": { + "and": [ + { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", ">=", "0" ] }, + { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", "<", "10" ] }, + { + "not": { "or": [ { "u_at_om_location": "iso_hallway_safe" }, { "u_at_om_location": "iso_elevator_safe" } ] } + } + ] + } + }, + { + "id": "wrong", + "text": "Distorted", + "color": "dark_gray", + "condition": { + "and": [ { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", ">=", "10" ] }, { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", "<", "15" ] } ] + } + }, + { + "id": "bad", + "text": "Unstable", + "color": "magenta", + "condition": { + "and": [ { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", ">=", "15" ] }, { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", "<", "20" ] } ] + } + }, + { + "id": "vbad", + "text": "Unraveling", + "color": "pink", + "condition": { "and": [ { "math": [ "u_ISO_CURRENT_LEVEL_DANGER", ">=", "20" ] } ] } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MA/README.md b/data/Mainline_mods/Mods/MA/README.md index 4f1898a46..80ededb5d 100644 --- a/data/Mainline_mods/Mods/MA/README.md +++ b/data/Mainline_mods/Mods/MA/README.md @@ -1,15 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [MA](#ma) -- [Implemented Features](#implemented-features) -- [Plannned Features](#plannned-features) -- [Notes](#notes) -- [Additonal files](#additonal-files) - - - # MA Overmap overhaul mod for Cataclysm: DDA that uses some features of Massachusetts state when generating overmaps. @@ -34,7 +22,7 @@ Overmap terrain might be unpolished at times on some of the overmaps (e.g. field * OVERMAP_PLACE_SWAMPS - Allows to place procgen swamps during overmap generation. * OVERMAP_PLACE_RAVINES - Allows to place procgen ravines during overmap generation. -# Additonal files +# Additional files * MA_overmap_index.png - visual index of overmap coordinates. * MA_overmap_cities.xlsx - visual index of city coordinates, original data and json generator. diff --git a/data/Mainline_mods/Mods/MMA/exemplar_weapons.json b/data/Mainline_mods/Mods/MMA/exemplar_weapons.json index bc4fde921..3b166a8bd 100644 --- a/data/Mainline_mods/Mods/MMA/exemplar_weapons.json +++ b/data/Mainline_mods/Mods/MMA/exemplar_weapons.json @@ -3,7 +3,7 @@ "id": "scimitar", "copy-from": "scimitar", "type": "TOOL", - "name": { "str": "scimitar" }, + "name": { "str": "shamshir" }, "extend": { "weapon_category": [ "EXEMPLAR_WEAPON_DESERT_WIND" ] } }, { diff --git a/data/Mainline_mods/Mods/MMA/martial.json b/data/Mainline_mods/Mods/MMA/martial.json index 2e883b243..e407940a1 100644 --- a/data/Mainline_mods/Mods/MMA/martial.json +++ b/data/Mainline_mods/Mods/MMA/martial.json @@ -50,7 +50,7 @@ "looks_like": "manual_karate", "type": "BOOK", "name": { "str": "Pocket Monster Encyclopedia", "str_pl": "copies of Pocket Monster Encyclopedia" }, - "description": "This encyclopedia contains a detailed listing of the strengths and techniques of various fictional monsters and how to apply them the in a real fight.", + "description": "This encyclopedia contains a detailed listing of the strengths and techniques of various fictional monsters and how to apply them in a real fight.", "martial_art": "style_mma_pokken" }, { @@ -108,9 +108,14 @@ "name": { "str": "dragon hand scroll" }, "description": "Focus your ki into magical attacks.", "price_postapoc": 12000, - "use_action": { "type": "countdown", "name": "Unroll", "message": "You unroll the dragon scroll…" }, - "countdown_interval": 1, - "countdown_destroy": true, + "use_action": { + "target": "ki_strike_scroll", + "msg": "You unroll the dragon scroll…", + "target_timer": "1 seconds", + "active": true, + "menu_text": "Unroll", + "type": "transform" + }, "countdown_action": { "type": "cast_spell", "spell_id": "learn_ki_strike", "no_fail": true, "level": 0 } } ] diff --git a/data/Mainline_mods/Mods/MMA/martialarts.json b/data/Mainline_mods/Mods/MMA/martialarts.json index 028115f2e..55c7dddf2 100644 --- a/data/Mainline_mods/Mods/MMA/martialarts.json +++ b/data/Mainline_mods/Mods/MMA/martialarts.json @@ -342,7 +342,7 @@ { "id": "mma_buff_setting_sun_onblock", "name": "Fool's Strike", - "description": "You moved in such a deceptived that you have turned your opponent's attack against them.\n\n+20% damage.\nLasts 2 turns.", + "description": "You moved in such a deceptive way that you have turned your opponent's attack against them.\n\n+20% damage.\nLasts 2 turns.", "skill_requirements": [ { "name": "unarmed", "level": 1 } ], "melee_allowed": true, "unarmed_allowed": true, diff --git a/data/Mainline_mods/Mods/MMA/mutations.json b/data/Mainline_mods/Mods/MMA/mutations.json index 145fe5edc..ff4ca36a5 100644 --- a/data/Mainline_mods/Mods/MMA/mutations.json +++ b/data/Mainline_mods/Mods/MMA/mutations.json @@ -44,7 +44,7 @@ "id": "KI_STRIKE", "name": { "str": "Ki Strike" }, "points": 2, - "description": "Who needs weapons? You deal more melee damage while unarmed. This damage improves as your unarmed skill increases.", + "description": "Who needs weapons? You deal more melee damage while fighting barehanded and without gloves. This damage improves as your unarmed skill increases.", "starting_trait": true, "valid": false }, @@ -69,7 +69,7 @@ "id": "MMA_MARTIAL_ARTS_POKKEN", "name": { "str": "Pokken Master" }, "points": 2, - "description": "You are well versed in the monsterous Pocket Fist martial art. Train well, because it is your destiny to be a master.", + "description": "You are well versed in the monstrous Pocket Fist martial art. Train well, because it is your destiny to be a master.", "starting_trait": true, "initial_ma_styles": [ "style_mma_pokken" ], "valid": false diff --git a/data/Mainline_mods/Mods/MMA/techniques.json b/data/Mainline_mods/Mods/MMA/techniques.json index ffa6e201f..a1da05ecb 100644 --- a/data/Mainline_mods/Mods/MMA/techniques.json +++ b/data/Mainline_mods/Mods/MMA/techniques.json @@ -3,7 +3,7 @@ "type": "technique", "id": "mma_tec_desert_wind_strike", "name": "Burning Blade", - "messages": [ "You unleash a fiery attack against %s", " unleash a fiery attack against %s" ], + "messages": [ "You unleash a fiery attack against %s!", " unleash a fiery attack against %s!" ], "melee_allowed": true, "flat_bonuses": [ { "stat": "damage", "type": "heat", "scale": 3.0 } ], "attack_vectors": [ "WEAPON" ] @@ -12,7 +12,7 @@ "type": "technique", "id": "mma_tec_desert_wind_crit", "name": "Inferno Blade", - "messages": [ "You strike %s with powerful inferno", " strikes %s with powerful inferno" ], + "messages": [ "You strike %s with powerful inferno!", " strikes %s with powerful inferno!" ], "skill_requirements": [ { "name": "melee", "level": 1 } ], "melee_allowed": true, "crit_tec": true, @@ -23,7 +23,7 @@ "type": "technique", "id": "mma_tec_desert_wind_impale", "name": "Firesnake", - "messages": [ "You strike through %s with a snaking flame", " strikes through %s with a snaking flame" ], + "messages": [ "You strike through %s with a snaking flame!", " strikes through %s with a snaking flame!" ], "skill_requirements": [ { "name": "melee", "level": 4 } ], "melee_allowed": true, "crit_ok": true, @@ -36,8 +36,8 @@ "id": "mma_tec_desert_wind_spin", "name": "Ring of Fire", "messages": [ - "You become a flaming blur as you strike %s and those around you", - " becomes a flaming blur as they strike %s and those around them" + "You become a flaming blur as you strike %s and those around you!", + " becomes a flaming blur as they strike %s and those around them!" ], "skill_requirements": [ { "name": "melee", "level": 5 } ], "melee_allowed": true, @@ -50,7 +50,7 @@ "type": "technique", "id": "mma_tec_desert_wind_wide", "name": "Flashing Sun", - "messages": [ "You carve an arc through %s and those nearby", " carve an arc through %s and those nearby" ], + "messages": [ "You carve an arc through %s and those nearby!", " carve an arc through %s and those nearby!" ], "skill_requirements": [ { "name": "melee", "level": 2 } ], "melee_allowed": true, "aoe": "wide", @@ -60,7 +60,7 @@ "type": "technique", "id": "mma_tec_diamond_mind_strike", "name": "Insightful Strike", - "messages": [ "You spot %s's weakpoint and strike", " spot %s's weakpoint and strike" ], + "messages": [ "You spot %s's weakpoint and strike!", " spot %s's weakpoint and strike!" ], "skill_requirements": [ { "name": "melee", "level": 1 } ], "melee_allowed": true, "flat_bonuses": [ { "stat": "damage", "type": "stab", "scaling-stat": "int", "scale": 0.5 } ], @@ -70,7 +70,7 @@ "type": "technique", "id": "mma_tec_diamond_mind_crit", "name": "Greater Insightful Strike", - "messages": [ "You spot %s's weakpoint and strike", " spot %s's weakpoint and strike" ], + "messages": [ "You spot %s's weakpoint and strike!", " spot %s's weakpoint and strike!" ], "skill_requirements": [ { "name": "melee", "level": 4 } ], "melee_allowed": true, "crit_tec": true, @@ -82,8 +82,8 @@ "id": "mma_tec_hylian_spin", "name": "Spin Attack", "messages": [ - "You unleash a spin attack against %s and those nearby", - " unleashes a spin attack against %s and those nearby" + "You unleash a spin attack against %s and those nearby!", + " unleashes a spin attack against %s and those nearby!" ], "skill_requirements": [ { "name": "melee", "level": 4 } ], "melee_allowed": true, @@ -97,8 +97,8 @@ "id": "mma_tec_hylian_wide", "name": "Spin Attack", "messages": [ - "You unleash a spin attack against %s and those nearby", - " unleashes a spin attack against %s and those nearby" + "You unleash a spin attack against %s and those nearby!", + " unleashes a spin attack against %s and those nearby!" ], "skill_requirements": [ { "name": "melee", "level": 4 } ], "melee_allowed": true, @@ -111,7 +111,7 @@ "type": "technique", "id": "mma_tec_iron_heart_disarm", "name": "Disarming Strike", - "messages": [ "You skillfully disarm %s", " skillfully disarms %s" ], + "messages": [ "You skillfully disarm %s!", " skillfully disarms %s!" ], "unarmed_allowed": true, "disarms": true, "attack_vectors": [ "WEAPON" ] @@ -120,7 +120,7 @@ "type": "technique", "id": "mma_tec_iron_heart_feint", "name": "Lightning Recovery", - "messages": [ "You miss %s but recover in the blink of an eye", " misses %s but recovers in the blink of an eye" ], + "messages": [ "You miss %s but recover in the blink of an eye!", " misses %s but recovers in the blink of an eye!" ], "skill_requirements": [ { "name": "melee", "level": 1 } ], "melee_allowed": true, "defensive": true, @@ -131,10 +131,35 @@ "type": "technique", "id": "mma_tec_iron_heart_execute", "name": "Finishing Move", - "messages": [ "You finish off %s with a powerful slash", " finishes off %s with a powerful slash" ], + "messages": [ "You finish off %s with a powerful slash!", " finishes off %s with a powerful slash!" ], "skill_requirements": [ { "name": "melee", "level": 5 } ], "melee_allowed": true, "crit_tec": true, + "condition": { + "and": [ + { "math": [ "u_val('size') + 1", ">=", "n_val('size')" ] }, + { "not": { "npc_has_effect": "stunned" } }, + { + "and": [ + { "not": { "npc_has_species": "ZOMBIE" } }, + { "not": { "npc_has_species": "NETHER" } }, + { "not": { "npc_has_species": "NETHER_EMENATION" } }, + { "not": { "npc_has_species": "LEECH_PLANT" } }, + { "not": { "npc_has_species": "MIGO" } }, + { "not": { "npc_has_species": "SLIME" } }, + { "not": { "npc_has_species": "FUNGUS" } }, + { "not": { "npc_has_species": "PLANT" } }, + { "not": { "npc_has_species": "ROBOT" } }, + { "not": { "npc_has_species": "CYBORG" } }, + { "not": { "npc_has_species": "HALLUCINATION" } }, + { "not": { "npc_has_species": "HORROR" } }, + { "not": { "npc_has_species": "ABERRATION" } }, + { "not": { "npc_has_species": "KRAKEN" } } + ] + } + ] + }, + "condition_desc": "* Only works on a non-stunned mundane target of similar or smaller size", "stun_dur": 1, "mult_bonuses": [ { "stat": "damage", "type": "bash", "scale": 1.25 }, @@ -147,10 +172,35 @@ "type": "technique", "id": "mma_tec_iron_heart_stun", "name": "Dazing Strike", - "messages": [ "You harshly stun %s", " harshly stuns %s" ], + "messages": [ "You harshly stun %s!", " harshly stuns %s!" ], "skill_requirements": [ { "name": "melee", "level": 2 } ], "melee_allowed": true, "crit_tec": true, + "condition": { + "and": [ + { "math": [ "u_val('size') + 1", ">=", "n_val('size')" ] }, + { "not": { "npc_has_effect": "stunned" } }, + { + "and": [ + { "not": { "npc_has_species": "ZOMBIE" } }, + { "not": { "npc_has_species": "NETHER" } }, + { "not": { "npc_has_species": "NETHER_EMENATION" } }, + { "not": { "npc_has_species": "LEECH_PLANT" } }, + { "not": { "npc_has_species": "MIGO" } }, + { "not": { "npc_has_species": "SLIME" } }, + { "not": { "npc_has_species": "FUNGUS" } }, + { "not": { "npc_has_species": "PLANT" } }, + { "not": { "npc_has_species": "ROBOT" } }, + { "not": { "npc_has_species": "CYBORG" } }, + { "not": { "npc_has_species": "HALLUCINATION" } }, + { "not": { "npc_has_species": "HORROR" } }, + { "not": { "npc_has_species": "ABERRATION" } }, + { "not": { "npc_has_species": "KRAKEN" } } + ] + } + ] + }, + "condition_desc": "* Only works on a non-stunned mundane target of similar or smaller size", "stun_dur": 1, "mult_bonuses": [ { "stat": "damage", "type": "bash", "scale": 1.4 }, @@ -164,8 +214,8 @@ "id": "mma_tec_iron_heart_wide", "name": "Steel Wind", "messages": [ - "You cleave through %s and those nearby like a steel wind", - " cleaves through %s and those nearby like a steel wind" + "You cleave through %s and those nearby like a steel wind!", + " cleaves through %s and those nearby like a steel wind!" ], "skill_requirements": [ { "name": "melee", "level": 3 } ], "melee_allowed": true, @@ -176,7 +226,7 @@ "type": "technique", "id": "mma_tec_iron_heart_wide_crit", "name": "Scything Blade", - "messages": [ "You cleanly reap through %s and those nearby", " cleanly reap through %s and those nearby" ], + "messages": [ "You cleanly reap through %s and those nearby!", " cleanly reap through %s and those nearby!" ], "skill_requirements": [ { "name": "melee", "level": 4 } ], "melee_allowed": true, "crit_tec": true, @@ -193,7 +243,7 @@ "id": "mma_tec_panzer_somersault", "name": "Kumai Sharinraku", "//": "No translation on wiki. It's a Somersault Kick.", - "messages": [ "You jump and somersault kick %s", " jump and somersault kick %s" ], + "messages": [ "You jump and somersault kick %s!", " jump and somersault kick %s!" ], "melee_allowed": true, "unarmed_allowed": true, "mult_bonuses": [ @@ -201,18 +251,43 @@ { "stat": "damage", "type": "cut", "scale": 1.2 }, { "stat": "damage", "type": "stab", "scale": 1.2 } ], - "attack_vectors": [ "WEAPON" ] + "attack_vectors": [ "WEAPON", "FOOT" ] }, { "type": "technique", "id": "mma_tec_panzer_precise", "name": "Herzschlag", "//": "Heart Strike. Alita's signature attack.", - "messages": [ "You hit %s with a powerful vibro-punch", " hits %s with a powerful vibro-punch" ], + "messages": [ "You hit %s with a powerful vibro-punch!", " hits %s with a powerful vibro-punch!" ], "skill_requirements": [ { "name": "unarmed", "level": 5 } ], "melee_allowed": true, "unarmed_allowed": true, "crit_tec": true, + "condition": { + "and": [ + { "math": [ "u_val('size') + 1", ">=", "n_val('size')" ] }, + { "not": { "npc_has_effect": "stunned" } }, + { + "and": [ + { "not": { "npc_has_species": "ZOMBIE" } }, + { "not": { "npc_has_species": "NETHER" } }, + { "not": { "npc_has_species": "NETHER_EMENATION" } }, + { "not": { "npc_has_species": "LEECH_PLANT" } }, + { "not": { "npc_has_species": "MIGO" } }, + { "not": { "npc_has_species": "SLIME" } }, + { "not": { "npc_has_species": "FUNGUS" } }, + { "not": { "npc_has_species": "PLANT" } }, + { "not": { "npc_has_species": "ROBOT" } }, + { "not": { "npc_has_species": "CYBORG" } }, + { "not": { "npc_has_species": "HALLUCINATION" } }, + { "not": { "npc_has_species": "HORROR" } }, + { "not": { "npc_has_species": "ABERRATION" } }, + { "not": { "npc_has_species": "KRAKEN" } } + ] + } + ] + }, + "condition_desc": "* Only works on a non-stunned mundane target of similar or smaller size", "stun_dur": 1, "flat_bonuses": [ { "stat": "arpen", "type": "bash", "scaling-stat": "per", "scale": 1.0 }, @@ -232,7 +307,7 @@ "id": "mma_tec_panzer_rapid", "name": "Geschoss Schlag", "//": "Missile Blow.", - "messages": [ "You launch a supersonic punch at %s", " launches a supersonic punch at %s" ], + "messages": [ "You launch a supersonic punch at %s!", " launches a supersonic punch at %s!" ], "skill_requirements": [ { "name": "unarmed", "level": 2 } ], "melee_allowed": true, "unarmed_allowed": true, @@ -248,7 +323,7 @@ "type": "technique", "id": "mma_tec_pokken_kick", "name": "Mega Kick", - "messages": [ "You use Mega Kick on %s", " uses Mega Kick on %s" ], + "messages": [ "You use Mega Kick on %s!", " uses Mega Kick on %s!" ], "skill_requirements": [ { "name": "unarmed", "level": 3 } ], "unarmed_allowed": true, "crit_ok": true, @@ -263,7 +338,7 @@ "type": "technique", "id": "mma_tec_pokken_lariat", "name": "Darkest Lariat", - "messages": [ "You use Darkest Lariat on %s", " uses Darkest Lariat on %s" ], + "messages": [ "You use Darkest Lariat on %s!", " uses Darkest Lariat on %s!" ], "skill_requirements": [ { "name": "unarmed", "level": 3 } ], "unarmed_allowed": true, "crit_ok": true, @@ -278,7 +353,7 @@ "type": "technique", "id": "mma_tec_pokken_strike", "name": "Smart Strike", - "messages": [ "You use Smart Strike on %s", " uses Smart Strike on %s" ], + "messages": [ "You use Smart Strike on %s!", " uses Smart Strike on %s!" ], "skill_requirements": [ { "name": "unarmed", "level": 3 } ], "unarmed_allowed": true, "crit_ok": true, @@ -289,10 +364,19 @@ "type": "technique", "id": "mma_tec_pokken_sweep", "name": "Low Sweep", - "messages": [ "You use Low Sweep on %s", " uses Low Sweep on %s" ], + "messages": [ "You use Low Sweep on %s!", " uses Low Sweep on %s!" ], "skill_requirements": [ { "name": "unarmed", "level": 3 } ], "unarmed_allowed": true, "crit_ok": true, + "condition": { + "and": [ + { "math": [ "u_val('size') + 1", ">=", "n_val('size')" ] }, + { "not": { "npc_has_effect": "downed" } }, + { "or": [ { "npc_bodytype": "human" }, { "npc_bodytype": "angel" } ] }, + { "or": [ { "not": { "npc_has_flag": "FLIES" } }, { "npc_has_flag": "DISABLE_FLIGHT" } ] } + ] + }, + "condition_desc": "* Only works on a non-downed humanoid target of similar or smaller size incapable of flight", "down_dur": 1, "attack_vectors_random": [ "FOOT", "LOWER_LEG" ] }, @@ -300,11 +384,36 @@ "type": "technique", "id": "mma_tec_setting_sun_stun", "name": "Hydra Slaying Strike", - "messages": [ "You interrupt %s with a perfectly aimed strike", " interrupt %s with a perfectly aimed strike" ], + "messages": [ "You interrupt %s with a perfectly aimed strike!", " interrupt %s with a perfectly aimed strike!" ], "skill_requirements": [ { "name": "unarmed", "level": 4 } ], "melee_allowed": true, "unarmed_allowed": true, "crit_tec": true, + "condition": { + "and": [ + { "math": [ "u_val('size') + 1", ">=", "n_val('size')" ] }, + { "not": { "npc_has_effect": "stunned" } }, + { + "and": [ + { "not": { "npc_has_species": "ZOMBIE" } }, + { "not": { "npc_has_species": "NETHER" } }, + { "not": { "npc_has_species": "NETHER_EMENATION" } }, + { "not": { "npc_has_species": "LEECH_PLANT" } }, + { "not": { "npc_has_species": "MIGO" } }, + { "not": { "npc_has_species": "SLIME" } }, + { "not": { "npc_has_species": "FUNGUS" } }, + { "not": { "npc_has_species": "PLANT" } }, + { "not": { "npc_has_species": "ROBOT" } }, + { "not": { "npc_has_species": "CYBORG" } }, + { "not": { "npc_has_species": "HALLUCINATION" } }, + { "not": { "npc_has_species": "HORROR" } }, + { "not": { "npc_has_species": "ABERRATION" } }, + { "not": { "npc_has_species": "KRAKEN" } } + ] + } + ] + }, + "condition_desc": "* Only works on a non-stunned mundane target of similar or smaller size", "stun_dur": 1, "attack_vectors": [ "WEAPON", "HAND" ] }, @@ -312,11 +421,34 @@ "type": "technique", "id": "mma_tec_setting_sun_throw", "name": "Mighty Throw", - "messages": [ "You toss %s aside with a Mighty Throw", " tosses %s with a Mighty Throw" ], + "messages": [ "You toss %s aside with a Mighty Throw!", " tosses %s with a Mighty Throw!" ], "skill_requirements": [ { "name": "unarmed", "level": 3 } ], "melee_allowed": true, "unarmed_allowed": true, "required_buffs_all": [ "mma_buff_setting_sun_onpause" ], + "condition": { + "and": [ + { "math": [ "u_val('size') + 1", ">=", "n_val('size')" ] }, + { "not": { "npc_has_effect": "downed" } }, + { + "or": [ + { + "and": [ + { "npc_has_flag": "GRAB_FILTER" }, + { "u_has_flag": "GRAB" }, + { + "roll_contested": { "math": [ "u_val('strength')" ] }, + "die_size": 20, + "difficulty": { "math": [ "n_val('grab_strength')" ] } + } + ] + }, + { "not": { "and": [ { "npc_has_flag": "GRAB_FILTER" }, { "u_has_flag": "GRAB" } ] } } + ] + } + ] + }, + "condition_desc": "* Only works on a non-downed target of similar or smaller size, may fail on enemies grabbing you", "down_dur": 2, "knockback_dist": 2, "mult_bonuses": [ @@ -330,15 +462,37 @@ "type": "technique", "id": "mma_tec_setting_sun_throw_crit", "name": "Ballista Throw", - "messages": [ "You spin and hurl %s away with a Ballista Throw", " spins and hurls %s away with a Ballista Throw" ], + "messages": [ "You spin and hurl %s away with a Ballista Throw!", " spins and hurls %s away with a Ballista Throw!" ], "skill_requirements": [ { "name": "unarmed", "level": 5 } ], "melee_allowed": true, "unarmed_allowed": true, "required_buffs_all": [ "mma_buff_setting_sun_onpause" ], "crit_tec": true, + "condition": { + "and": [ + { "math": [ "u_val('size') + 1", ">=", "n_val('size')" ] }, + { "not": { "npc_has_effect": "downed" } }, + { + "or": [ + { + "and": [ + { "npc_has_flag": "GRAB_FILTER" }, + { "u_has_flag": "GRAB" }, + { + "roll_contested": { "math": [ "u_val('strength')" ] }, + "die_size": 20, + "difficulty": { "math": [ "n_val('grab_strength')" ] } + } + ] + }, + { "not": { "and": [ { "npc_has_flag": "GRAB_FILTER" }, { "u_has_flag": "GRAB" } ] } } + ] + } + ] + }, + "condition_desc": "* Only works on a non-downed target of similar or smaller size, may fail on enemies grabbing you", "down_dur": 2, "knockback_dist": 4, - "powerful_knockback": true, "weighting": 2, "mult_bonuses": [ { "stat": "damage", "type": "bash", "scale": 1.5 }, @@ -351,7 +505,7 @@ "type": "technique", "id": "mma_tec_shii_cho_disarm", "name": "Disarming Slash", - "messages": [ "You disarm %s with a quick flick of your weapon", " disarms %s with a quick flick of their weapon" ], + "messages": [ "You disarm %s with a quick flick of your weapon!", " disarms %s with a quick flick of their weapon!" ], "skill_requirements": [ { "name": "melee", "level": 2 } ], "melee_allowed": true, "crit_ok": true, @@ -362,7 +516,7 @@ "type": "technique", "id": "mma_tec_shii_cho_wide", "name": "Sarlacc Sweep", - "messages": [ "You quickly sweep through %s and those nearby", " quickly sweeps through %s and those nearby" ], + "messages": [ "You quickly sweep through %s and those nearby!", " quickly sweeps through %s and those nearby!" ], "skill_requirements": [ { "name": "melee", "level": 5 } ], "melee_allowed": true, "crit_ok": true, @@ -374,8 +528,8 @@ "id": "mma_tec_stone_dragon_hammer", "name": "Mountain Hammer", "messages": [ - "You crush %s with the weight of your Mountain Hammer", - " crushes %s with the weight of their Mountain Hammer" + "You crush %s with the weight of your Mountain Hammer!", + " crushes %s with the weight of their Mountain Hammer!" ], "skill_requirements": [ { "name": "melee", "level": 3 } ], "melee_allowed": true, @@ -391,11 +545,36 @@ "type": "technique", "id": "mma_tec_stone_dragon_strike", "name": "Irrestistible Mountain Strike", - "messages": [ "You smash down on %s with a Mountain Strike", " smashes down on %s with a Mountain Strike" ], + "messages": [ "You smash down on %s with a Mountain Strike!", " smashes down on %s with a Mountain Strike!" ], "skill_requirements": [ { "name": "melee", "level": 3 } ], "melee_allowed": true, "unarmed_allowed": true, "crit_tec": true, + "condition": { + "and": [ + { "math": [ "u_val('size') + 1", ">=", "n_val('size')" ] }, + { "not": { "npc_has_effect": "stunned" } }, + { + "and": [ + { "not": { "npc_has_species": "ZOMBIE" } }, + { "not": { "npc_has_species": "NETHER" } }, + { "not": { "npc_has_species": "NETHER_EMENATION" } }, + { "not": { "npc_has_species": "LEECH_PLANT" } }, + { "not": { "npc_has_species": "MIGO" } }, + { "not": { "npc_has_species": "SLIME" } }, + { "not": { "npc_has_species": "FUNGUS" } }, + { "not": { "npc_has_species": "PLANT" } }, + { "not": { "npc_has_species": "ROBOT" } }, + { "not": { "npc_has_species": "CYBORG" } }, + { "not": { "npc_has_species": "HALLUCINATION" } }, + { "not": { "npc_has_species": "HORROR" } }, + { "not": { "npc_has_species": "ABERRATION" } }, + { "not": { "npc_has_species": "KRAKEN" } } + ] + } + ] + }, + "condition_desc": "* Only works on a non-stunned mundane target of similar or smaller size", "stun_dur": 1, "attack_vectors": [ "WEAPON", "HAND" ] }, @@ -403,11 +582,13 @@ "type": "technique", "id": "mma_tec_stone_dragon_colossus", "name": "Colossus Strike", - "messages": [ "You completely shatter %s with a Colossus Strike", " completely shatters %s with a Colossus Strike" ], + "messages": [ "You completely shatter %s with a Colossus Strike!", " completely shatters %s with a Colossus Strike!" ], "skill_requirements": [ { "name": "melee", "level": 5 } ], "melee_allowed": true, "unarmed_allowed": true, "crit_ok": true, + "condition": { "not": { "npc_has_effect": "downed" } }, + "condition_desc": "* Only works on a non-downed target", "down_dur": 1, "knockback_dist": 2, "mult_bonuses": [ diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/alien_mages.json b/data/Mainline_mods/Mods/Magiclysm/Spells/alien_mages.json new file mode 100644 index 000000000..444ce7a06 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/alien_mages.json @@ -0,0 +1,236 @@ +[ + { + "id": "monster_heal_spell", + "type": "SPELL", + "name": "Heal Self Monster ", + "description": "A spell for a monster to heal themselves. How DARE they!", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "RANDOM_DAMAGE" ], + "effect": "attack", + "shape": "blast", + "max_level": 50, + "min_damage": -1, + "max_damage": -50, + "damage_increment": -1 + }, + { + "id": "migo_fleshwarper_blood_poison_spell", + "type": "SPELL", + "name": "Blood Poison Monster", + "description": "Projects a spray of acrid blood and gore all around the monster while also doing damage.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "RANDOM_DAMAGE", "RANDOM_DURATION", "RANDOM_AOE" ], + "effect": "attack", + "effect_str": "badpoison", + "shape": "blast", + "max_level": 20, + "min_damage": 1, + "max_damage": 10, + "damage_type": "biological", + "min_aoe": 2, + "max_aoe": 6, + "min_range": 1, + "max_range": 1, + "min_duration": 200, + "max_duration": 3000, + "field_id": "fd_blood", + "field_chance": 2, + "min_field_intensity": 1, + "max_field_intensity": 3, + "field_intensity_increment": 0.1 + }, + { + "id": "migo_fleshwarper_mutate", + "type": "SPELL", + "name": "Fleshwarp Target ", + "description": "A spell for the mi-go fleshwarper to cause a random mutation.", + "valid_targets": [ "hostile" ], + "//": "Random 25% to 75% chance to cause a mutation", + "flags": [ "SILENT", "RANDOM_DAMAGE" ], + "shape": "blast", + "effect": "mutate", + "min_damage": 2500, + "max_damage": 7500, + "min_range": 1, + "max_range": 1 + }, + { + "id": "migo_nethermancer_summon_nether", + "type": "SPELL", + "name": "Summon Nether Being", + "description": "A spell for the mi-go nethermancer to summon a nether being. It's a bug if you have this.", + "valid_targets": [ "ground" ], + "flags": [ "HOSTILE_SUMMON", "LOUD", "NO_PROJECTILE", "SPAWN_GROUP" ], + "shape": "blast", + "effect": "summon", + "effect_str": "GROUP_NETHERMANCER_SUMMON", + "min_damage": 1, + "max_damage": 1, + "min_aoe": 3, + "max_aoe": 5, + "min_range": 10, + "max_range": 10, + "min_duration": 30000, + "max_duration": 30000, + "sound_description": "a high-pitched whine" + }, + { + "id": "sorcerer_hand_monster", + "type": "SPELL", + "name": "Sorcerer's Hand Monster", + "description": "Pull a target or set of items to you.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_LEGS" ], + "effect": "pull_target", + "shape": "blast", + "difficulty": 1, + "max_level": 20, + "min_range": 2, + "max_range": 20, + "range_increment": 1.5 + }, + { + "id": "teleport_anchor_monster", + "type": "SPELL", + "name": "Teleport Anchor Monster", + "description": "Prevent the target from being able to teleport.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "effect_str": "effect_teleport_anchor", + "shape": "blast", + "difficulty": 1, + "max_level": 20, + "min_range": 2, + "max_range": 20, + "range_increment": 1.5, + "min_duration": 3000, + "max_duration": 30000, + "duration_increment": 1350 + }, + { + "id": "triffid_brambles_arc", + "type": "SPELL", + "name": "Triffid Summon Brambles", + "description": "Call up brambles to trap a pathetic mammal. This is the triffid version with no math.", + "valid_targets": [ "ground", "hostile" ], + "effect": "ter_transform", + "effect_str": "druid_summoned_brambles", + "shape": "cone", + "flags": [ "SILENT", "NO_PROJECTILE" ], + "max_level": 15, + "min_range": 1, + "max_range": 15, + "range_increment": 1, + "min_aoe": 30, + "max_aoe": 60, + "aoe_increment": 2 + }, + { + "id": "triffid_summon_tanglevine", + "type": "SPELL", + "name": "Summon Tanglevine", + "description": "This spell causes an animated vine to burst from the ground and attempt to seize a nearby target and hold it fast.", + "valid_targets": [ "ground" ], + "flags": [ "RANDOM_AOE", "RANDOM_DURATION", "HOSTILE_SUMMON" ], + "effect": "summon", + "effect_str": "mon_tanglevine", + "shape": "blast", + "max_level": 15, + "min_damage": 1, + "max_damage": 1, + "min_range": 5, + "max_range": 15, + "range_increment": 0.8, + "min_aoe": 2, + "max_aoe": 3, + "min_duration": 12000, + "max_duration": 42000 + }, + { + "id": "triffid_pollen_cone", + "type": "SPELL", + "name": { "str": "Pollen Spray" }, + "description": "Spews pollen in a cone.", + "valid_targets": [ "hostile", "ground" ], + "max_level": 5, + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "cone", + "min_aoe": 45, + "max_aoe": 45, + "min_range": 4, + "max_range": 8, + "range_increment": 1, + "field_id": "fd_pollen_triffid", + "field_chance": 1, + "min_field_intensity": 1, + "max_field_intensity": 2 + }, + { + "id": "triffid_pollen_heal", + "type": "SPELL", + "name": { "str": "Pollen Heal" }, + "description": "Heals other triffids.", + "valid_targets": [ "ally" ], + "max_level": 5, + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DAMAGE" ], + "effect": "attack", + "extra_effects": [ { "id": "triffid_pollen_emit" } ], + "shape": "blast", + "min_damage": -10, + "max_damage": -50, + "min_range": 4, + "max_range": 15, + "range_increment": 2 + }, + { + "id": "triffid_pollen_speed", + "type": "SPELL", + "name": { "str": "Pollen enhancement" }, + "description": "Increases the speed of other triffids.", + "valid_targets": [ "ally" ], + "max_level": 8, + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "extra_effects": [ { "id": "triffid_pollen_emit" } ], + "effect": "attack", + "effect_str": "flask_speed_eff", + "shape": "blast", + "min_range": 4, + "max_range": 12, + "range_increment": 1, + "min_duration": 500, + "max_duration": 3000 + }, + { + "id": "triffid_pollen_blind", + "type": "SPELL", + "name": { "str": "Pollen blinding" }, + "description": "Blind target and emit pollen.", + "valid_targets": [ "hostile" ], + "max_level": 8, + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "extra_effects": [ { "id": "triffid_pollen_emit" } ], + "effect": "attack", + "effect_str": "blind", + "shape": "blast", + "min_range": 4, + "max_range": 12, + "range_increment": 1, + "min_duration": 200, + "max_duration": 800 + }, + { + "id": "triffid_pollen_emit", + "type": "SPELL", + "name": { "str": "Pollen Emit Spell" }, + "description": "Causes a pollen emit when the triffid seedshaper uses other spells.", + "valid_targets": [ "ally", "hostile", "ground" ], + "max_level": 1, + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "emit", + "effect_str": "emit_pollen_stream", + "shape": "blast", + "min_range": 30 + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/animist.json b/data/Mainline_mods/Mods/Magiclysm/Spells/animist.json index 1cf8472ac..edaf259a3 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/animist.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/animist.json @@ -7,25 +7,29 @@ "valid_targets": [ "hostile" ], "min_damage": 10, "max_damage": 200, - "damage_increment": 15.0, + "damage_increment": 15, "min_range": 1, "max_range": 1, "effect": "attack", "shape": "blast", - "base_casting_time": 85, - "base_energy_cost": 250, + "base_casting_time": 160, + "final_casting_time": 40, + "casting_time_increment": -8, + "base_energy_cost": 400, + "final_energy_cost": 200, + "energy_increment": -14, "spell_class": "ANIMIST", "difficulty": 8, "max_level": 15, "damage_type": "pure", - "flags": [ "VERBAL", "SOMATIC", "LOUD" ], + "flags": [ "VERBAL", "LOUD", "NO_HANDS" ], "energy_source": "MANA" }, { "id": "recover_mana", "type": "SPELL", "name": "Life Conversion", - "description": "You channel your life force itself into your spiritual energy. You spend hp to regain mana.", + "description": "You channel lifeforce itself into your spiritual energy. You spend runes to regain mana.", "valid_targets": [ "self" ], "min_damage": 75, "damage_increment": 15.0, @@ -35,11 +39,9 @@ "effect_str": "MANA", "shape": "blast", "spell_class": "ANIMIST", - "energy_source": "HP", + "energy_source": "MANA", + "components": "spell_components_rune_animist", "base_casting_time": 500, - "base_energy_cost": 5, - "energy_increment": 1.0, - "final_energy_cost": 40, "flags": [ "SOMATIC", "VERBAL", "SILENT", "NO_LEGS" ], "difficulty": 3 }, @@ -65,163 +67,331 @@ "final_energy_cost": 10000 }, { - "id": "summon_zombie", + "id": "summon_undead", "type": "SPELL", - "name": "Summon Zombie", - "description": "An ethereal-looking zombie rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", - "valid_targets": [ "ground" ], + "name": "Summon Undead", + "description": "An ethereal-looking undead rises from the depths of the earth to fight for you. You may be able to summon the stronger ones with a higher level in this spell.", + "valid_targets": [ "self" ], "min_damage": 1, - "max_damage": 3, - "//": "level 20 will max out your number of summons", - "damage_increment": 0.1, - "max_level": 30, - "difficulty": 2, + "max_damage": 1, + "max_level": 35, + "difficulty": 3, "spell_class": "ANIMIST", - "effect": "summon", - "effect_str": "mon_zombie", + "effect": "effect_on_condition", + "effect_str": "EOC_SUMMON_ZOMBIE", + "components": "spell_components_rune_animist", "shape": "blast", - "energy_source": "HP", - "base_energy_cost": 6, - "//2": "half a minute", + "energy_source": "MANA", + "base_energy_cost": 400, "base_casting_time": 3000, - "min_range": 3, - "max_range": 3, - "min_aoe": 2, - "max_aoe": 2, "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], "min_duration": 36000, "max_duration": 1080000, - "duration_increment": 36000, - "learn_spells": { "summon_tough_zombie": 20 } + "duration_increment": 36000 }, { - "id": "summon_tough_zombie", + "type": "effect_on_condition", + "id": "EOC_SUMMON_ZOMBIE", + "effect": { + "switch": { "u_val": "spell_level", "spell": "summon_undead" }, + "cases": [ + { "case": 0, "effect": { "u_cast_spell": { "id": "summon_zombie" } } }, + { "case": 7, "effect": { "u_cast_spell": { "id": "summon_tough_zombie" } } }, + { "case": 14, "effect": { "u_cast_spell": { "id": "summon_zombie_brute" } } }, + { "case": 21, "effect": { "u_cast_spell": { "id": "summon_skeleton" } } }, + { "case": 28, "effect": { "u_cast_spell": { "id": "summon_skeleton_brute" } } }, + { "case": 35, "effect": { "u_cast_spell": { "id": "summon_skeleton_hulk" } } } + ] + } + }, + { + "abstract": "summon_abstract_zombie", "type": "SPELL", - "name": "Summon Tough Zombie", - "description": "An ethereal-looking tough zombie rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", + "name": "Abstract Summon Zombie", + "description": "Abstract of Summon Undead spell.", "valid_targets": [ "ground" ], "min_damage": 1, - "max_damage": 3, - "//": "level 20 will max out your number of summons", - "damage_increment": 0.1, - "max_level": 30, - "difficulty": 8, - "spell_class": "ANIMIST", + "max_damage": 1, + "max_level": 35, "effect": "summon", - "effect_str": "mon_zombie_tough", "shape": "blast", - "energy_source": "HP", - "base_energy_cost": 12, - "//2": "half a minute", - "base_casting_time": 3000, "min_range": 3, "max_range": 3, "min_aoe": 2, "max_aoe": 2, - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], "min_duration": 36000, "max_duration": 1080000, "duration_increment": 36000 }, + { + "id": "summon_zombie", + "copy-from": "summon_abstract_zombie", + "type": "SPELL", + "name": "Summon Zombie", + "description": "Summon a zombie. Part of Summon Undead spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_zombie", + "max_level": 35, + "min_duration": 216000, + "max_duration": 216000, + "duration_increment": 36000 + }, + { + "id": "summon_tough_zombie", + "copy-from": "summon_abstract_zombie", + "type": "SPELL", + "name": "Summon Tough Zombie", + "description": "Summon a tough zombie. Part of Summon Undead spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_zombie_tough", + "max_level": 35, + "min_duration": 468000, + "max_duration": 468000, + "duration_increment": 36000 + }, + { + "id": "summon_zombie_brute", + "copy-from": "summon_abstract_zombie", + "type": "SPELL", + "name": "Summon Zombie Brute", + "description": "Summon a zombie brute. Part of Summon Undead spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_zombie_brute", + "max_level": 35, + "min_duration": 720000, + "max_duration": 720000, + "duration_increment": 36000 + }, { "id": "summon_skeleton", + "copy-from": "summon_abstract_zombie", "type": "SPELL", - "name": "Summon Skeleton", - "description": "A ghostly skeleton rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", + "name": "Summon Skeleton Zombie", + "description": "Summon a skeleton zombie. Part of Summon Undead spell.", "valid_targets": [ "ground" ], - "min_damage": 1, - "max_damage": 3, - "//": "level 20 will max out your number of summons", - "damage_increment": 0.1, - "max_level": 30, - "difficulty": 5, - "spell_class": "ANIMIST", "effect": "summon", "effect_str": "mon_skeleton", + "max_level": 35, + "min_duration": 972000, + "max_duration": 972000, + "duration_increment": 36000 + }, + { + "id": "summon_skeleton_brute", + "copy-from": "summon_abstract_zombie", + "type": "SPELL", + "name": "Summon Skeletal Brute", + "description": "Summon a skeletal brute. Part of Summon Undead spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_skeleton_brute", + "max_level": 35, + "min_duration": 1260000, + "max_duration": 1260000, + "duration_increment": 36000 + }, + { + "id": "summon_skeleton_hulk", + "copy-from": "summon_abstract_zombie", + "type": "SPELL", + "name": "Summon Skeletal Juggernaut", + "description": "Summon a skeletal juggernaut. Part of Summon Undead spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_skeleton_hulk", + "max_level": 35, + "min_duration": 1260000, + "max_duration": 1260000, + "duration_increment": 36000 + }, + { + "id": "summon_undead_swarm", + "type": "SPELL", + "name": "Summon Undead Swarm", + "description": "A group of undead animals rises from the depths of the earth to fight for you. You may be able to summon the stronger ones with a higher level in this spell.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "max_level": 35, + "difficulty": 3, + "spell_class": "ANIMIST", + "effect": "effect_on_condition", + "effect_str": "EOC_SUMMON_ZOMBIE_SWARM", + "components": "spell_components_rune_animist_3", "shape": "blast", - "energy_source": "HP", - "base_energy_cost": 14, - "//2": "half a minute", + "energy_source": "MANA", + "base_energy_cost": 600, "base_casting_time": 3000, - "min_range": 3, - "max_range": 3, - "min_aoe": 2, - "max_aoe": 2, "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], "min_duration": 36000, "max_duration": 1080000, "duration_increment": 36000 }, { - "id": "summon_decayed_pouncer", + "type": "effect_on_condition", + "id": "EOC_SUMMON_ZOMBIE_SWARM", + "effect": { + "switch": { "u_val": "spell_level", "spell": "summon_undead" }, + "cases": [ + { "case": 0, "effect": { "u_cast_spell": { "id": "summon_zombie_dog" } } }, + { "case": 5, "effect": { "u_cast_spell": { "id": "summon_dog_skeleton" } } }, + { "case": 10, "effect": { "u_cast_spell": { "id": "summon_zougar" } } }, + { "case": 15, "effect": { "u_cast_spell": { "id": "summon_wolf_skeleton" } } }, + { "case": 20, "effect": { "u_cast_spell": { "id": "summon_dog_zombie_brute" } } }, + { "case": 25, "effect": { "u_cast_spell": { "id": "summon_dog_skeleton_brute" } } }, + { "case": 30, "effect": { "u_cast_spell": { "id": "summon_dog_zombie_hulk" } } }, + { "case": 35, "effect": { "u_cast_spell": { "id": "summon_zougar_hunter" } } } + ] + } + }, + { + "abstract": "summon_abstract_swarm", "type": "SPELL", - "name": "Summon Decayed Pouncer", - "description": "A decrepit looking large cat rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", + "name": "Abstract Summon Swarm", + "description": "Abstract of Summon Undead Swarm spell.", "valid_targets": [ "ground" ], - "min_damage": 1, + "min_damage": 3, "max_damage": 3, - "//": "level 20 will max out your number of summons", - "damage_increment": 0.1, - "max_level": 30, - "difficulty": 10, - "spell_class": "ANIMIST", + "max_level": 35, "effect": "summon", - "effect_str": "mon_zougar", "shape": "blast", - "energy_source": "HP", - "base_energy_cost": 30, - "//2": "half a minute", - "base_casting_time": 3000, "min_range": 3, "max_range": 3, "min_aoe": 2, "max_aoe": 2, - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], "min_duration": 36000, "max_duration": 1080000, - "duration_increment": 36000, - "learn_spells": { "summon_zougar_hunter": 20 } + "duration_increment": 36000 + }, + { + "id": "summon_zombie_dog", + "copy-from": "summon_abstract_swarm", + "type": "SPELL", + "name": "Summon Zombie Dog", + "description": "Summon a zombie dog. Part of Summon Undead Swarm spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_zombie_dog", + "max_level": 35, + "min_duration": 144000, + "max_duration": 144000, + "duration_increment": 36000 + }, + { + "id": "summon_dog_skeleton", + "copy-from": "summon_abstract_swarm", + "type": "SPELL", + "name": "Summon Skeletal Dog", + "description": "Summon a skeletal dog. Part of Summon Undead Swarm spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_dog_skeleton", + "max_level": 35, + "min_duration": 324000, + "max_duration": 324000, + "duration_increment": 36000 + }, + { + "id": "summon_zougar", + "copy-from": "summon_abstract_swarm", + "type": "SPELL", + "name": "Summon Decayed Pouncer", + "description": "Summon a decayed pouncer. Part of Summon Undead Swarm spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_zougar", + "max_level": 35, + "min_duration": 504000, + "max_duration": 504000, + "duration_increment": 36000 + }, + { + "id": "summon_wolf_skeleton", + "copy-from": "summon_abstract_swarm", + "type": "SPELL", + "name": "Summon Skeletal Wolf", + "description": "Summon a skeletal wolf. Part of Summon Undead Swarm spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_wolf_skeleton", + "max_level": 35, + "min_duration": 684000, + "max_duration": 684000, + "duration_increment": 36000 + }, + { + "id": "summon_dog_zombie_brute", + "copy-from": "summon_abstract_swarm", + "type": "SPELL", + "name": "Summon Barghest", + "description": "Summon a barghest. Part of Summon Undead Swarm spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_dog_zombie_brute", + "max_level": 35, + "min_duration": 864000, + "max_duration": 864000, + "duration_increment": 36000 + }, + { + "id": "summon_dog_skeleton_brute", + "copy-from": "summon_abstract_swarm", + "type": "SPELL", + "name": "Summon Boneplate Wolf", + "description": "Summon a boneplate wolf. Part of Summon Undead Swarm spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_dog_skeleton_brute", + "max_level": 35, + "min_duration": 1044000, + "max_duration": 1044000, + "duration_increment": 36000 + }, + { + "id": "summon_dog_zombie_hulk", + "copy-from": "summon_abstract_swarm", + "type": "SPELL", + "name": "Summon Hulking Horror", + "description": "Summon a Hulking Horror. Part of Summon Undead Swarm spell.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_dog_zombie_hulk", + "max_level": 35, + "min_duration": 1260000, + "max_duration": 1260000, + "duration_increment": 36000 }, { "id": "summon_zougar_hunter", + "copy-from": "summon_abstract_swarm", "type": "SPELL", "name": "Summon Spearcat Hunter", - "description": "A primal looking large cat rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", + "description": "Summon a spearcat hunter. Part of Summon Undead Swarm spell.", "valid_targets": [ "ground" ], - "min_damage": 1, - "max_damage": 3, - "//": "level 20 will max out your number of summons", - "damage_increment": 0.1, - "max_level": 30, - "difficulty": 14, - "spell_class": "ANIMIST", "effect": "summon", "effect_str": "mon_zougar_hunter", - "shape": "blast", - "energy_source": "HP", - "base_energy_cost": 45, - "//2": "half a minute", - "base_casting_time": 3000, - "min_range": 3, - "max_range": 3, - "min_aoe": 2, - "max_aoe": 2, - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], - "min_duration": 36000, - "max_duration": 1080000, + "max_level": 35, + "min_duration": 1260000, + "max_duration": 1260000, "duration_increment": 36000 }, { "id": "necrotic_gaze", "type": "SPELL", "name": "Necrotic Gaze", - "description": "You use the power of your own blood to imbue necrotic energy into your gaze, damaging the target you look at.", + "description": "You use the power of your own blood, concentrated in rune, to imbue necrotic energy into your gaze, damaging the target you look at.", "valid_targets": [ "hostile" ], "effect": "attack", - "shape": "blast", + "shape": "line", "spell_class": "ANIMIST", - "energy_source": "HP", - "flags": [ "NO_LEGS", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE" ], + "energy_source": "MANA", + "flags": [ "NO_LEGS", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "NO_HANDS" ], + "components": "spell_components_rune_animist", "min_damage": 10, "max_damage": 160, "damage_increment": 6.0, @@ -231,14 +401,16 @@ "max_level": 25, "difficulty": 3, "base_casting_time": 100, - "base_energy_cost": 2, + "min_aoe": 1, + "max_aoe": 3, + "aoe_increment": 0.1, "damage_type": "biological" }, { "id": "create_rune_animist", "type": "SPELL", "name": { "str": "Animist Rune" }, - "description": "This ritual creates a small pebble attuned to Animists. You can use the rune as a catalyst for recipes.", + "description": "This ritual creates a small pebble attuned to Animists. You can use the rune to summon creatures, or as a catalyst for recipes.", "valid_targets": [ "self" ], "min_damage": 1, "max_damage": 1, @@ -253,16 +425,121 @@ "difficulty": 0, "max_level": 0, "spell_class": "ANIMIST", - "energy_source": "MANA", + "energy_source": "HP", "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ] }, + { + "id": "dominate", + "type": "SPELL", + "name": "Domination", + "description": "Force the undead creature you pick to obey your command, making it ally for a short time. It's an expensive spell, so use it wisely.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "SOMATIC", "SILENT" ], + "effect": "charm_monster", + "targeted_monster_species": [ "ZOMBIE" ], + "components": "spell_components_rune_animist_3", + "shape": "blast", + "message": "", + "min_damage": 80, + "max_damage": 280, + "damage_increment": 10, + "min_range": 4, + "max_range": 26, + "range_increment": 1.1, + "base_energy_cost": 400, + "spell_class": "ANIMIST", + "difficulty": 6, + "max_level": 20, + "min_aoe": 0, + "max_aoe": 1, + "aoe_increment": 0.1, + "min_duration": 36000, + "max_duration": 1080000, + "duration_increment": 36000, + "base_casting_time": 300, + "final_casting_time": 30, + "casting_time_increment": -14, + "energy_source": "MANA" + }, + { + "id": "life_detonation", + "type": "SPELL", + "name": "Life Detonation", + "description": "Explode a living energy inside your undead and release a tremendous force around it.", + "valid_targets": [ "ally" ], + "targeted_monster_species": [ "ZOMBIE" ], + "effect": "attack", + "shape": "blast", + "spell_class": "ANIMIST", + "flags": [ "NO_LEGS", "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "NO_HANDS", "PERCENTAGE_DAMAGE" ], + "min_damage": 100, + "max_damage": 100, + "min_range": 10, + "max_range": 50, + "range_increment": 1.6, + "max_level": 25, + "difficulty": 5, + "base_casting_time": 150, + "final_casting_time": 30, + "casting_time_increment": -5, + "base_energy_cost": 300, + "energy_source": "MANA", + "damage_type": "biological", + "extra_effects": [ { "id": "life_detonation_explosion" } ] + }, + { + "id": "life_detonation_explosion", + "type": "SPELL", + "name": "Life Detonation Explosion", + "description": "Detonation for life detonation spell.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "CONCENTRATE", "SOMATIC", "SILENT" ], + "effect": "attack", + "shape": "blast", + "message": "", + "damage_type": "biological", + "//": "would be cool to make it deal damage the same as hp of the monster, but not possible sadly", + "min_damage": 20, + "max_damage": 180, + "damage_increment": 6.4, + "spell_class": "ANIMIST", + "difficulty": 5, + "max_level": 25, + "min_aoe": 2, + "max_aoe": 11, + "aoe_increment": 0.4 + }, + { + "id": "convert", + "type": "SPELL", + "name": "Convert", + "description": "Kill an allied creature, converting its life energy into a compact rune that you can use afterwards.", + "valid_targets": [ "ally" ], + "flags": [ "CONCENTRATE", "SOMATIC", "SILENT", "PERCENTAGE_DAMAGE" ], + "effect": "attack", + "shape": "blast", + "message": "", + "min_damage": 100, + "max_damage": 100, + "min_range": 10, + "max_range": 10, + "base_energy_cost": 250, + "spell_class": "ANIMIST", + "difficulty": 4, + "max_level": 10, + "base_casting_time": 30000, + "final_casting_time": 1000, + "casting_time_increment": -200, + "energy_source": "MANA", + "extra_effects": [ { "id": "create_rune_animist", "hit_self": true } ] + }, { "id": "soulrend", "type": "SPELL", "name": "Soulrend", - "description": "Violently tears the spirit from the body, and bounds the resulting shade to your will.", + "description": "Violently tears the spirit from the body and binds the resulting shade to your will.", "valid_targets": [ "hostile", "ally" ], - "flags": [ "NO_LEGS", "LOUD", "SOMATIC", "POLYMORPH_GROUP", "FRIENDLY_POLY" ], + "flags": [ "NO_LEGS", "LOUD", "SOMATIC", "POLYMORPH_GROUP", "FRIENDLY_POLY", "NO_HANDS" ], "effect": "targeted_polymorph", "effect_str": "GROUP_POLYMORPH_SHADOW", "shape": "blast", @@ -336,7 +613,7 @@ "id": "spirit_walk", "type": "SPELL", "name": "Spirit Walk", - "description": "Momentarily plunge into the underworld, and swap positions with any spirit you command.", + "description": "Momentarily plunge into the underworld and swap positions with any spirit you command.", "valid_targets": [ "ally" ], "targeted_monster_ids": [ "mon_wisp", "mon_shadow", "mon_magi_shadow", "mon_darkman", "mon_shadow_snake" ], "flags": [ "NO_LEGS", "LOUD", "SOMATIC", "SWAP_POS", "NO_PROJECTILE" ], @@ -360,9 +637,9 @@ "id": "banishment_lesser", "type": "SPELL", "name": "Lesser Banishment", - "description": "Banish a monster to the lesser-known nether dimension. If a monster is more powerful than you can handle, the spell drains your life force to make up the difference.", + "description": "Banish a monster to a lesser-known nether dimension. If a monster is more powerful than you can handle, the spell drains your life force to make up the difference.", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "VERBAL" ], + "flags": [ "SOMATIC", "VERBAL", "NO_HANDS" ], "effect": "banishment", "shape": "blast", "min_damage": 40, @@ -381,7 +658,7 @@ "id": "summon_wisps", "type": "SPELL", "name": "Ignus Fatuus", - "description": "Summons ghostly foxfire worked from living marsh vapor, to lead your enemies astray. With more experience, this spell can conjure multiple ghost lights.", + "description": "Summons ghostly foxfire worked from living marsh vapor to lead your enemies astray. With more experience, this spell can conjure multiple ghost lights.", "valid_targets": [ "ground" ], "effect": "summon", "effect_str": "mon_wisp", @@ -413,7 +690,7 @@ "valid_targets": [ "hostile" ], "effect": "attack", "shape": "blast", - "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], + "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE", "NO_HANDS" ], "energy_source": "MANA", "spell_class": "ANIMIST", "difficulty": 2, @@ -438,7 +715,7 @@ "id": "animist_summon_decaying_boneclub", "type": "SPELL", "name": { "str": "Decaying Boneclub" }, - "description": "This spell links your live blood to the dead blood & bones, creating a club hungry for the flesh of the living.", + "description": "This spell links your living blood to dead blood and bones, creating a club hungry for the flesh of the living.", "effect": "spawn_item", "effect_str": "decaying_boneclub", "shape": "blast", @@ -462,7 +739,7 @@ "id": "animist_summon_decaying_boneclub_plus", "type": "SPELL", "name": { "str": "Improved Decaying Boneclub" }, - "description": "This spell links your live blood to the dead blood & bones, creating a club hungry for the flesh of the living. Now you know this spell like the back of your hand, and start to design your own version.", + "description": "This spell links your living blood to dead blood and bones, creating a club hungry for the flesh of the living. Now you know this spell like the back of your hand, and have started to design your own version.", "effect": "spawn_item", "effect_str": "decaying_boneclub", "shape": "blast", @@ -489,11 +766,11 @@ "id": "rupture", "type": "SPELL", "name": "Rupture", - "description": "You pour mana into an unwilling and unprepared vessel, causing cellular break-down, internal hemorrhaging, ley lines becoming muddled, and electronics overcharging. Immensely gruesome, crude, and was once illegal world-wide, not that it matters now.", + "description": "You pour mana into an unwilling and unprepared vessel, causing cellular break-down, internal hemorrhaging, muddling ley lines, and overcharging electronics. Immensely gruesome and crude, it was once illegal world-wide, not that it matters now.", "effect": "attack", "shape": "blast", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "NO_PROJECTILE", "LOUD" ], + "flags": [ "SOMATIC", "NO_PROJECTILE", "LOUD", "NO_HANDS" ], "max_level": 25, "min_range": 1, "range_increment": 0.1, @@ -514,5 +791,101 @@ "energy_source": "MANA", "difficulty": 3, "damage_type": "pure" + }, + { + "id": "devour", + "type": "SPELL", + "name": "Devour", + "description": "Kill a summoned creature, consuming its life energy to regain some health.", + "valid_targets": [ "ally" ], + "flags": [ "CONCENTRATE", "SOMATIC" ], + "//": "added this min/max damage for player, so it will be visible how much hp would be healed. ", + "effect": "attack", + "shape": "blast", + "message": "", + "min_damage": -1, + "max_damage": -10, + "damage_increment": -0.4, + "min_range": 10, + "max_range": 10, + "base_energy_cost": 250, + "spell_class": "ANIMIST", + "difficulty": 10, + "max_level": 25, + "base_casting_time": 100, + "energy_source": "MANA", + "extra_effects": [ { "id": "devour_damage" }, { "id": "devour_healing", "hit_self": true } ] + }, + { + "id": "devour_damage", + "type": "SPELL", + "name": "Devour Damage", + "description": "Deal deadly damage to ally. You can see it only in debug mode.", + "valid_targets": [ "ally" ], + "flags": [ "SILENT", "PERCENTAGE_DAMAGE" ], + "effect": "attack", + "shape": "blast", + "damage_type": "pure", + "min_damage": 100, + "max_damage": 100 + }, + { + "id": "devour_healing", + "type": "SPELL", + "name": "Devour Healing", + "description": "Heal the player. You can see it only in debug mode.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "SOMATIC", "SILENT", "NO_PROJECTILE" ], + "effect": "attack", + "shape": "blast", + "min_damage": -1, + "max_damage": -10, + "damage_increment": -0.4, + "max_level": 25 + }, + { + "id": "animist_sense_outsiders", + "type": "SPELL", + "name": "Sense Outsiders", + "description": "You can sense the presence of nearby beings from the Nether.", + "valid_targets": [ "self" ], + "spell_class": "ANIMIST", + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_sense_outsiders", + "shape": "blast", + "energy_source": "MANA", + "difficulty": 5, + "max_level": 15, + "base_energy_cost": 500, + "min_duration": 90000, + "max_duration": 900000, + "duration_increment": 60000, + "base_casting_time": 1500 + }, + { + "id": "animist_summon_watcher", + "type": "SPELL", + "name": { "str": "Summon Watcher Spirit" }, + "description": "Summon a watcher spirit, whose senses overlap with your own and through whose eyes you can see. Although they are spirits, they are fragile and dissipate easily in the face of any assault.", + "flags": [ "SOMATIC", "CONCENTRATE", "VERBAL", "NO_PROJECTILE" ], + "spell_class": "ANIMIST", + "effect": "summon", + "effect_str": "mon_watcher_spirit", + "shape": "blast", + "valid_targets": [ "ground" ], + "difficulty": 3, + "max_level": 15, + "min_damage": 1, + "max_damage": 1, + "min_range": 3, + "max_range": 20, + "range_increment": 1.1, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, + "energy_source": "MANA", + "base_casting_time": 500, + "base_energy_cost": 150 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Artificer.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Artificer.json index a8d4f3dcc..c16c1bf17 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Artificer.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Artificer.json @@ -43,8 +43,6 @@ "price": 450, "price_postapoc": 50, "to_hit": -1, - "bashing": 2, - "cutting": 6, "symbol": ";", "color": "yellow", "qualities": [ @@ -82,7 +80,8 @@ [ "WRENCH", 3 ], [ "WRENCH_FINE", 4 ] ], - "flags": [ "SPEAR", "BELT_CLIP", "TRADER_AVOID" ] + "flags": [ "SPEAR", "BELT_CLIP", "TRADER_AVOID" ], + "melee_damage": { "bash": 2, "stab": 6 } }, { "id": "artificer_toolkit", @@ -96,16 +95,16 @@ "effect_str": "artificer_toolkit", "min_damage": 1, "max_damage": 1, - "min_duration": 0, - "max_duration": 3240000, - "duration_increment": 92572, + "min_duration": 1680000, + "max_duration": 60480000, + "duration_increment": 1680000, "spell_class": "ARTIFICER", - "difficulty": 1, + "difficulty": 3, "max_level": 35, "base_casting_time": 1500, "final_casting_time": 500, "casting_time_increment": -30, "base_energy_cost": 100, - "energy_source": "BIONIC" + "energy_source": "MANA" } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Blood_Mage.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Blood_Mage.json index e075473ef..d200c37b3 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Blood_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Blood_Mage.json @@ -5,7 +5,7 @@ "name": "Greater Banishment", "description": "A more advanced version of Banishment, which is a ritual spell that attempts to banish a monster. Being closely related to blood magic, the Blood Mage is much more specialized to use a spell like this.", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "VERBAL", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "SOMATIC", "VERBAL", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "effect": "banishment", "shape": "blast", "min_damage": 120, diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Boreal_Mage.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Boreal_Mage.json index 3470238ae..e397dc21b 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Boreal_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Boreal_Mage.json @@ -5,7 +5,7 @@ "name": "Auroral Wave", "description": "A rippling wave of luminous energy spreads from your hands, a beautiful torrent of magnetic force and chill wind.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "effect": "attack", "shape": "cone", "extra_effects": [ { "id": "auroral_wave_cold" } ], diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Cleansing_Flame.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Cleansing_Flame.json index cf18de579..4ca899d3c 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Cleansing_Flame.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Cleansing_Flame.json @@ -35,7 +35,7 @@ "name": "Immolate", "description": "A purifying blast of raw elemental heat wipes the slate clean, searing the Earth back to her most original state: a barren ball of burning rock.", "valid_targets": [ "ally", "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "LOUD", "CONCENTRATE", "IGNITE_FLAMMABLE", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "LOUD", "CONCENTRATE", "IGNITE_FLAMMABLE", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "effect": "attack", "shape": "blast", "extra_effects": [ { "id": "immolate_transform" }, { "id": "immolate_push" } ], diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Crusader.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Crusader.json index 9733c4649..6b0b3ce96 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Crusader.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Crusader.json @@ -10,8 +10,7 @@ "price": 0, "price_postapoc": 0, "to_hit": 3, - "bashing": 14, - "material": [ "steel" ], + "material": [ "concentrated_mana" ], "symbol": "[", "color": "light_gray", "sided": true, @@ -20,6 +19,7 @@ { "covers": [ "hand_l", "hand_r" ], "coverage": 100, "encumbrance": [ 12, 12 ] } ], "material_thickness": 6, + "techniques": [ "WBLOCK_3" ], "flags": [ "OVERSIZE", "BELTED", @@ -45,28 +45,231 @@ ] } ] - } + }, + "melee_damage": { "bash": 14 } }, { "id": "holy_shield", "type": "SPELL", "name": "Holy Shield", "description": "Crusaders have the ability to summon a magically enhanced shield to their arm to protect them in armed combat.", - "valid_targets": [ "none" ], + "valid_targets": [ "self" ], "flags": [ "CONCENTRATE", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "effect": "spawn_item", "shape": "blast", "effect_str": "holy_shield", "min_damage": 1, "max_damage": 1, - "min_duration": 0, - "max_duration": 3240000, - "duration_increment": 92572, + "min_duration": 360000, + "max_duration": 12960000, + "duration_increment": 360000, "spell_class": "CRUSADER", - "difficulty": 1, + "difficulty": 4, "max_level": 35, "base_casting_time": 1500, "base_energy_cost": 500, "energy_source": "MANA" + }, + { + "id": "judgement_sword", + "type": "SPELL", + "name": "Sword of Judgement", + "description": "This blade of light will cut through any evil it makes contact with! You can change its shape into a dagger, great sword, spear or mace.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "longsword_judgement", + "shape": "blast", + "base_casting_time": 1500, + "base_energy_cost": 500, + "min_duration": 360000, + "max_duration": 12960000, + "duration_increment": 360000, + "difficulty": 4, + "max_level": 35, + "spell_class": "CRUSADER", + "energy_source": "MANA" + }, + { + "type": "technique", + "id": "RSTRIKE", + "name": "Radiant Strike", + "melee_allowed": true, + "crit_tec": true, + "messages": [ + "Your sword bursts with radiant light, hitting everyone nearby.", + "'s sword bursts with radiant light, hitting everyone nearby." + ], + "aoe": "spin", + "description": "Attack adjacent enemies, crit only" + }, + { + "id": "longsword_judgement", + "type": "GENERIC", + "name": { "str": "sword of judgement", "str_pl": "swords of judgement" }, + "looks_like": "longsword", + "symbol": "/", + "color": "light_gray", + "price": 0, + "price_postapoc": 0, + "description": "A large sword made of glowing, radiant fire. It explodes with radiance when striking enemies.", + "material": [ "concentrated_mana" ], + "weapon_category": [ "MEDIEVAL_SWORDS", "LONG_SWORDS", "GREAT_SWORDS" ], + "techniques": [ "RSTRIKE", "WBLOCK_2", "BRUTAL", "RAPID" ], + "flags": [ "UNBREAKABLE_MELEE", "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS", "TRADER_AVOID", "SHEATH_SWORD" ], + "weight": "1067 g", + "volume": "2750 ml", + "longest_side": "120cm", + "relic_data": { + "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_PURE", "add": 10 } ] } ] + }, + "use_action": [ + { + "target": "dagger_judgement", + "msg": "Concentrating, you change your sword into a much smaller, quicker blade.", + "menu_text": "Transform to dagger.", + "type": "transform", + "need_wielding": true + } + ], + "melee_damage": { "bash": 13, "cut": 45 } + }, + { + "id": "dagger_judgement", + "type": "GENERIC", + "name": { "str": "dagger of judgement", "str_pl": "daggers of judgement" }, + "symbol": "/", + "color": "light_gray", + "looks_like": "kris", + "description": "A short blade made of glowing, radiant fire. It explodes with radiance when striking enemies.", + "flags": [ "UNBREAKABLE_MELEE", "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS", "TRADER_AVOID", "SHEATH_KNIFE" ], + "weight": "328 g", + "volume": "750 ml", + "longest_side": "50 cm", + "material": "concentrated_mana", + "techniques": [ "RSTRIKE", "WBLOCK_1", "RAPID" ], + "weapon_category": [ "KNIVES" ], + "relic_data": { + "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_PURE", "add": 5 } ] } ] + }, + "use_action": [ + { + "target": "zwei_judgement", + "msg": "Concentrating, you change your dagger into a much larger, more intimidating form.", + "menu_text": "Transform to great sword.", + "type": "transform", + "need_wielding": true + } + ], + "melee_damage": { "bash": 10, "stab": 28 } + }, + { + "id": "zwei_judgement", + "type": "GENERIC", + "name": { "str": "great sword of judgement", "str_pl": "great swords of judgement" }, + "symbol": "/", + "color": "light_gray", + "looks_like": "zweihander", + "description": "A very large sword glowing with radiant fire. It explodes with radiance when striking enemies.", + "flags": [ + "ALWAYS_TWOHAND", + "REACH_ATTACK", + "UNBREAKABLE_MELEE", + "NONCONDUCTIVE", + "NO_REPAIR", + "NO_SALVAGE", + "MAGIC_FOCUS", + "TRADER_AVOID", + "SHEATH_SWORD" + ], + "weight": "1868 g", + "volume": "3250 ml", + "longest_side": "180 cm", + "material": "concentrated_mana", + "techniques": [ "RSTRIKE", "WBLOCK_1", "WIDE", "BRUTAL", "SWEEP" ], + "weapon_category": [ "MEDIEVAL_SWORDS", "GREAT_SWORDS" ], + "relic_data": { + "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_PURE", "add": 15 } ] } ] + }, + "use_action": [ + { + "target": "qiang_judgement", + "msg": "Concentrating, you change your dagger into a longer, much more precise piercing form.", + "menu_text": "Transform into spear.", + "type": "transform", + "need_wielding": true + } + ], + "melee_damage": { "bash": 18, "cut": 51 } + }, + { + "id": "qiang_judgement", + "type": "GENERIC", + "name": { "str": "spear of judgement", "str_pl": "spears of judgement" }, + "symbol": "/", + "color": "light_gray", + "looks_like": "qiang", + "description": "A very thin, nimble spear glowing with radiant fire. It explodes with radiance when striking enemies.", + "flags": [ + "SPEAR", + "REACH_ATTACK", + "UNBREAKABLE_MELEE", + "NONCONDUCTIVE", + "NO_REPAIR", + "NO_SALVAGE", + "MAGIC_FOCUS", + "TRADER_AVOID", + "SHEATH_SPEAR" + ], + "weight": "822 g", + "volume": "2500 ml", + "longest_side": "180 cm", + "material": "concentrated_mana", + "techniques": [ "RSTRIKE", "WBLOCK_1", "IMPALE" ], + "weapon_category": [ "POLEARMS", "SPEARS" ], + "relic_data": { + "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_PURE", "add": 11 } ] } ] + }, + "use_action": [ + { + "target": "mace_judgement", + "msg": "Concentrating, you change your spear into a shorter, more hefty form.", + "menu_text": "Transform to mace.", + "type": "transform", + "need_wielding": true + } + ], + "melee_damage": { "bash": 7, "stab": 34 } + }, + { + "id": "mace_judgement", + "type": "GENERIC", + "name": { "str": "mace of judgement", "str_pl": "maces of judgement" }, + "symbol": "/", + "color": "light_gray", + "looks_like": "mace", + "description": "A short and hefty mace glowing with radiant fire. It explodes with radiance when striking enemies.", + "flags": [ "UNBREAKABLE_MELEE", "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS", "TRADER_AVOID", "BELT_CLIP" ], + "weight": "882 g", + "volume": "1250 ml", + "longest_side": "80 cm", + "material": "concentrated_mana", + "techniques": [ "RSTRIKE", "WBLOCK_1", "SWEEP" ], + "weapon_category": [ "MACES" ], + "relic_data": { + "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_PURE", "add": 13 } ] } ] + }, + "use_action": [ + { + "target": "longsword_judgement", + "msg": "Concentrating, you change your spear into a shorter, more robust blade.", + "menu_text": "Transform to longsword.", + "type": "transform", + "need_wielding": true + } + ], + "melee_damage": { "bash": 45 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Earth_Elemental.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Earth_Elemental.json index 21848fc03..36d4691bc 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Earth_Elemental.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Earth_Elemental.json @@ -10,7 +10,7 @@ "name": "Quake", "description": "Cause a localized earthquake, knocking down enemies and overturning the earth.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "LOUD", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "LOUD", "NO_HANDS", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN", "IGNORE_WALLS" ], "effect": "attack", "shape": "blast", "effect_str": "downed", @@ -26,11 +26,13 @@ "difficulty": 4, "max_level": 35, "base_casting_time": 150, + "final_casting_time": 0, + "casting_time_increment": -5, "sound_description": "a deep rumbling", "sound_id": "earth_spell", "sound_variant": "strong", "energy_source": "MANA", - "extra_effects": [ { "id": "quake_transform" } ] + "extra_effects": [ { "id": "quake_transform" }, { "id": "quake_shake" } ] }, { "id": "quake_transform", @@ -38,12 +40,30 @@ "name": "Quake Transform", "description": "Causes rubble to be spawned occasionally.", "valid_targets": [ "hostile", "ground" ], - "flags": [ "SILENT", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "IGNORE_WALLS" ], "effect": "ter_transform", "effect_str": "quake_transform", "shape": "blast", - "min_damage": 12, - "max_damage": 12, + "min_damage": 30, + "max_damage": 200, + "damage_increment": 5, + "min_aoe": 0, + "max_aoe": 35, + "aoe_increment": 1, + "max_level": 35 + }, + { + "id": "quake_shake", + "type": "SPELL", + "name": "Quake Earthquake", + "description": "Destroy furniture and terrain nearby.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "IGNORE_WALLS" ], + "effect": "bash", + "shape": "blast", + "min_damage": 30, + "max_damage": 200, + "damage_increment": 5, "min_aoe": 0, "max_aoe": 35, "aoe_increment": 1, @@ -55,7 +75,7 @@ "name": "Rock Blast", "description": "Fire three large rocks at an enemy, causing blunt damage and knocking it back.", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "effect": "attack", "shape": "blast", "max_level": 35, @@ -72,12 +92,15 @@ "damage_type": "bash", "base_energy_cost": 5000, "base_casting_time": 200, + "final_casting_time": 50, + "casting_time_increment": -5, "extra_effects": [ { "id": "single_rock_blast" }, { "id": "single_rock_blast" }, { "id": "rock_blast_push" } ] }, { "id": "single_rock_blast", "name": "Single Rock Blast", "type": "SPELL", + "flags": [ "NO_EXPLOSION_SFX" ], "description": "A single portion of the rock blast spell.", "valid_targets": [ "hostile" ], "effect": "attack", @@ -96,6 +119,7 @@ "type": "SPELL", "description": "The push portion of the rock blast spell.", "valid_targets": [ "hostile" ], + "flags": [ "NO_EXPLOSION_SFX" ], "effect": "directed_push", "shape": "blast", "max_level": 35, diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Fire_Elemental.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Fire_Elemental.json index 9ac181df3..dd69ed908 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Fire_Elemental.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Fire_Elemental.json @@ -5,7 +5,7 @@ "name": "Flareup", "description": "You channel heat through your hands to severely burn a target you touch.", "valid_targets": [ "hostile" ], - "flags": [ "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "CONCENTRATE", "SOMATIC", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "effect": "attack", "shape": "blast", "damage_type": "heat", diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Force_Mage.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Force_Mage.json index 3b3fb36cc..0ad7ea54e 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Force_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Force_Mage.json @@ -50,7 +50,16 @@ } ] }, - "flags": [ "WATERPROOF", "TRADER_AVOID", "SEMITANGIBLE", "ONLY_ONE", "OVERSIZE", "AURA" ], + "flags": [ + "WATERPROOF", + "TRADER_AVOID", + "SEMITANGIBLE", + "ONLY_ONE", + "OVERSIZE", + "AURA", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], "armor": [ { "encumbrance": 0, diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Gaias_Chosen.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Gaias_Chosen.json index 12e5aea55..57fb92721 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Gaias_Chosen.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Gaias_Chosen.json @@ -12,12 +12,97 @@ "base_casting_time": 60000, "base_energy_cost": 800, "energy_source": "MANA", - "components": "spell_components_samsara", "difficulty": 8, "min_damage": -20, "max_damage": -200, "damage_increment": -4.5, "max_level": 40, "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "LOUD" ] + }, + { + "id": "dust_reborn", + "type": "SPELL", + "name": "Dust Reborn", + "description": "Create a cast of your own body and soul, hidden inside the earth's lines. When times come, and your body will be close to destruction, you can abandon it, transferring your consciousness into undamaged one. But it has the huge price, and for body immortality you pay with temporary body weakness.", + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "EOC_DUST_REBORN_INITIAL", + "shape": "blast", + "base_casting_time": 2160000, + "base_energy_cost": 1000, + "energy_source": "MANA", + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "MUST_HAVE_CLASS_TO_LEARN" ], + "spell_class": "GAIAS_CHOSEN", + "difficulty": 0, + "max_level": 0 + }, + { + "id": "terra_armor", + "type": "SPELL", + "name": "Terra Armor", + "description": "Cover yourself in dense, invisible energy of Earth. Higher level increase your defence abilities.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "effect_terra_armor", + "shape": "blast", + "base_casting_time": 550, + "base_energy_cost": 750, + "min_duration": 50000, + "max_duration": 1800000, + "duration_increment": 50000, + "difficulty": 7, + "max_level": 35, + "flags": [ "SOMATIC" ], + "spell_class": "GAIAS_CHOSEN", + "energy_source": "MANA" + }, + { + "id": "effect_terra_armor", + "type": "effect_type", + "name": [ "Terra Armor" ], + "desc": [ "Your body is covered in dense, ethereal shell, that protect you." ], + "remove_message": "Your lost your terra shell.", + "enchantments": [ + { + "values": [ + { + "value": "ARMOR_ACID", + "add": { "arithmetic": [ { "u_val": "spell_level", "spell": "terra_armor" }, "*", { "const": -3 } ] } + }, + { + "value": "ARMOR_BASH", + "add": { "arithmetic": [ { "u_val": "spell_level", "spell": "terra_armor" }, "*", { "const": -3 } ] } + }, + { + "value": "ARMOR_BIO", + "add": { "arithmetic": [ { "u_val": "spell_level", "spell": "terra_armor" }, "*", { "const": -3 } ] } + }, + { + "value": "ARMOR_BULLET", + "add": { "arithmetic": [ { "u_val": "spell_level", "spell": "terra_armor" }, "*", { "const": -3 } ] } + }, + { + "value": "ARMOR_COLD", + "add": { "arithmetic": [ { "u_val": "spell_level", "spell": "terra_armor" }, "*", { "const": -3 } ] } + }, + { + "value": "ARMOR_CUT", + "add": { "arithmetic": [ { "u_val": "spell_level", "spell": "terra_armor" }, "*", { "const": -3 } ] } + }, + { + "value": "ARMOR_ELEC", + "add": { "arithmetic": [ { "u_val": "spell_level", "spell": "terra_armor" }, "*", { "const": -3 } ] } + }, + { + "value": "ARMOR_HEAT", + "add": { "arithmetic": [ { "u_val": "spell_level", "spell": "terra_armor" }, "*", { "const": -3 } ] } + }, + { + "value": "ARMOR_STAB", + "add": { "arithmetic": [ { "u_val": "spell_level", "spell": "terra_armor" }, "*", { "const": -3 } ] } + } + ] + } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Glacier_Mage.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Glacier_Mage.json index c03efc77d..a03f27eaf 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Glacier_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Glacier_Mage.json @@ -8,7 +8,7 @@ "shape": "cone", "valid_targets": [ "hostile", "ground" ], "extra_effects": [ { "id": "ice_clave_blunt" } ], - "flags": [ "LOUD", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "LOUD", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "min_damage": 30, "max_damage": 100, "damage_increment": 2.0, diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Golemancer.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Golemancer.json index 90b99e78b..30810192e 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Golemancer.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Golemancer.json @@ -59,7 +59,7 @@ "effect": "directed_push", "shape": "blast", "valid_targets": [ "hostile" ], - "flags": [ "LOUD", "VERBAL", "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "LOUD", "VERBAL", "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "spell_class": "GOLEMANCER", "min_damage": 5, "max_damage": 16, diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Gravity_Mage.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Gravity_Mage.json index 13cd6fca3..b52b22fc1 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Gravity_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Gravity_Mage.json @@ -45,7 +45,7 @@ "max_range": 17, "range_increment": 0.5, "extra_effects": [ { "id": "gravitymage_graviton_damage" }, { "id": "gravitymage_graviton_centerdamage" } ], - "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "NO_PROJECTILE", "IGNORE_WALLS", "LOUD" ], + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "NO_PROJECTILE", "IGNORE_WALLS", "LOUD", "MUST_HAVE_CLASS_TO_LEARN" ], "sound_description": "a crack" }, { @@ -68,5 +68,71 @@ "max_range": 17, "range_increment": 0.5, "flags": [ "LOUD" ] + }, + { + "type": "SPELL", + "id": "gravity_mage_leap", + "name": "Gravity Leap", + "description": "Decrease your mass at the minimum, and use mana flow to jump out of your enemies on really huge distance.", + "valid_targets": [ "ground" ], + "flags": [ "SILENT", "NO_LEGS", "NO_HANDS", "MUST_HAVE_CLASS_TO_LEARN" ], + "effect": "dash", + "shape": "cone", + "damage_type": "bash", + "min_range": 4, + "max_range": 21, + "range_increment": 0.5, + "spell_class": "GRAVITY_MAGE", + "difficulty": 5, + "base_casting_time": 400, + "final_casting_time": 50, + "casting_time_increment": -10, + "base_energy_cost": 200, + "final_energy_cost": 50, + "energy_increment": -4.5, + "max_level": 35, + "energy_source": "MANA" + }, + { + "id": "gravity_mage_melee", + "type": "SPELL", + "name": "Tactile Telekinesis", + "description": "It's way easier to manipulate with object's gravity, when you take a contact with target. Control the gravity around yourself to increase your own inertia to make heavy, devastating attacks.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "gravity_mage_melee", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX", "MUST_HAVE_CLASS_TO_LEARN" ], + "spell_class": "GRAVITY_MAGE", + "energy_source": "MANA", + "difficulty": 7, + "base_casting_time": 500, + "final_casting_time": 150, + "casting_time_increment": -10, + "base_energy_cost": 500, + "final_energy_cost": 150, + "energy_increment": -10, + "max_level": 35, + "min_duration": 20000, + "max_duration": 720000, + "duration_increment": 20000 + }, + { + "id": "gravity_mage_melee", + "type": "effect_type", + "name": [ "Gravity Control" ], + "desc": [ "Decreases mass of weapon on swing, increases the gravity on attack." ], + "remove_message": "You cease your control over gravity.", + "rating": "good", + "show_intensity": false, + "enchantments": [ + { + "values": [ + { "value": "ATTACK_SPEED", "add": 30 }, + { "value": "BONUS_BLOCK", "add": 2 }, + { "value": "MELEE_DAMAGE", "multiply": 1 } + ] + } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Illusionist.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Illusionist.json index 515794ddc..9c3b7d544 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Illusionist.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Illusionist.json @@ -3,9 +3,9 @@ "id": "spear_of_light", "type": "SPELL", "name": "Spear of Light", - "description": "Shoot directed light from your fingertips that is so bright you can see through the skin of the targets for an instant.", - "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "VERBAL", "SILENT", "MUST_HAVE_CLASS_TO_LEARN" ], + "description": "Shoot directed light from your fingertips that is so bright you can see through the skin of the target for an instant.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SOMATIC", "VERBAL", "SILENT", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "effect": "attack", "effect_str": "blind", "shape": "line", @@ -24,5 +24,60 @@ "max_level": 35, "base_casting_time": 180, "energy_source": "MANA" + }, + { + "id": "illusionist_hologram", + "type": "SPELL", + "name": "Battle Holograms", + "description": "Created to disrupt your enemies, they look exactly like you, and act like a real person.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_battle_hologram", + "shape": "blast", + "flags": [ "SILENT", "RANDOM_TARGET", "NO_EXPLOSION_SFX", "MUST_HAVE_CLASS_TO_LEARN" ], + "spell_class": "ILLUSIONIST", + "energy_source": "MANA", + "min_range": 1, + "max_range": 1, + "min_damage": 5, + "max_damage": 55, + "damage_increment": 2, + "min_aoe": 9, + "max_aoe": 34, + "aoe_increment": 1, + "difficulty": 7, + "base_casting_time": 400, + "final_casting_time": 100, + "casting_time_increment": -10, + "base_energy_cost": 400, + "final_energy_cost": 200, + "energy_increment": -6, + "max_level": 35, + "min_duration": 3500, + "max_duration": 126000, + "duration_increment": 3500 + }, + { + "id": "illusionist_transposition", + "type": "SPELL", + "name": "Illusion Transposition", + "description": "Fool reality, and swap your position with any other creature in your line of sight", + "valid_targets": [ "hostile", "ally" ], + "flags": [ "NO_LEGS", "NO_HANDS", "SWAP_POS", "MUST_HAVE_CLASS_TO_LEARN" ], + "effect": "attack", + "shape": "blast", + "spell_class": "ILLUSIONIST", + "energy_source": "MANA", + "difficulty": 8, + "max_level": 35, + "base_casting_time": 150, + "casting_time_increment": -5, + "final_casting_time": 0, + "base_energy_cost": 250, + "energy_increment": -5, + "final_energy_cost": 100, + "min_range": 25, + "max_range": 60, + "range_increment": 1 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Magnetism_Mage.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Magnetism_Mage.json index cd913396d..e7a3e17ab 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Magnetism_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Magnetism_Mage.json @@ -4,9 +4,6 @@ "type": "requirement", "components": [ [ - [ "5x50dart", 1 ], - [ "5x50heavy", 1 ], - [ "reloaded_5x50dart", 1 ], [ "8mm_bootleg", 1 ], [ "8mm_caseless", 1 ], [ "8mm_civilian", 1 ], @@ -274,46 +271,7 @@ "name": "Surge mod moves", "description": "Substract some moves from targeted_monster_ids monsters. Subspell; you aren't allowed to see it except in debug mode.", "valid_targets": [ "hostile" ], - "//": "the list of IDs is way too big, so I made this as secondary spell instead", - "targeted_monster_ids": [ - "mon_broken_cyborg", - "mon_prototype_cyborg", - "mon_exodii_worker", - "mon_exodii_quad", - "mon_zomborg", - "mon_EMP_hack", - "mon_c4_hack", - "mon_flashbang_hack", - "mon_gasbomb_hack", - "mon_grenade_hack", - "mon_manhack", - "mon_mininuke_hack", - "mon_tazer_hack", - "mon_lab_security_drone_GM", - "mon_lab_security_drone_YM", - "mon_lab_security_drone_BM", - "mon_lab_security_drone_BM2", - "mon_lab_security_drone_GR", - "mon_lab_security_drone_BS", - "mon_robofac_laserturret_mk1", - "mon_robofac_camspy", - "mon_turret", - "mon_turret_searchlight", - "mon_turret_bmg", - "mon_turret_rifle", - "mon_crows_m240", - "mon_turret_riot", - "mon_turret_speaker", - "mon_exodii_turret", - "mon_eyebot", - "mon_grocerybot", - "mon_grocerybot_busted", - "mon_hazmatbot", - "mon_molebot", - "mon_nursebot", - "mon_nursebot_defective", - "mon_yrax_trifacet" - ], + "targeted_monster_species": [ "ROBOT", "CYBORG" ], "effect": "mod_moves", "shape": "blast", "max_level": 35, @@ -328,9 +286,10 @@ "id": "robot_disabler_explosion", "type": "SPELL", "name": "Surge", - "description": "Send a wave of high-frequency alternating pulse. It can't hurt really much, but it works great against circuits, shutting them down for a small time. Probably it will work against drones or robots. No, it's not EMP.", + "description": "Send a wave of high-frequency alternating pulse. It can't hurt living creatures, but is extremely good destroying and stunning robots. No, it's not EMP.", "flags": [ "NO_LEGS", "LOUD", "SOMATIC" ], "valid_targets": [ "hostile", "ground" ], + "targeted_monster_species": [ "ROBOT", "CYBORG" ], "spell_class": "MAGNETISM_MAGE", "energy_source": "MANA", "base_energy_cost": 450, @@ -344,9 +303,9 @@ "effect": "attack", "shape": "blast", "damage_type": "electric", - "min_damage": 0, - "max_damage": 70, - "damage_increment": 2, + "min_damage": 20, + "max_damage": 320, + "damage_increment": 10, "min_range": 10, "max_range": 55, "range_increment": 1.3, diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Overclocker.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Overclocker.json index 8229f53d2..657c22cd0 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Overclocker.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Overclocker.json @@ -7,8 +7,8 @@ "effect": "attack", "effect_str": "neuro_boost", "shape": "blast", - "valid_targets": [ "ally", "hostile", "self" ], - "flags": [ "SOMATIC", "CONCENTRATE", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN" ], + "valid_targets": [ "hostile" ], + "flags": [ "SOMATIC", "CONCENTRATE", "NO_PROJECTILE", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "max_level": 35, "min_damage": 0, "max_damage": 35, @@ -23,10 +23,12 @@ "max_range": 12, "range_increment": 0.2, "spell_class": "OVERCLOCKER", - "base_casting_time": 150, + "base_casting_time": 160, + "final_casting_time": 40, + "casting_time_increment": -5, "base_energy_cost": 400, "energy_source": "MANA", - "difficulty": 8, + "difficulty": 6, "damage_type": "heat" }, { diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Permafrost_Mage.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Permafrost_Mage.json index 0cdb31774..3f423dc03 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Permafrost_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Permafrost_Mage.json @@ -5,7 +5,7 @@ "name": { "str": "Ice Fog" }, "description": "Using your mana, you began to accelerate ice particles inside a cold mist, eroding everything inside.", "valid_targets": [ "self" ], - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ], + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], "effect": "spawn_item", "effect_str": "aura_cold_energy", "shape": "blast", @@ -36,7 +36,53 @@ "symbol": "o", "color": "blue", "material": [ "magical_material" ], - "flags": [ "AURA", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE", "OVERSIZE" ], + "flags": [ + "AURA", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "OVERSIZE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "emitter": "emit_cold_energy_strong" } ] } + }, + { + "id": "permafrost_mage_ice_age", + "type": "SPELL", + "name": "Ice Age", + "description": "Cool down every creature in range till their flesh will crack, bones will shatter, and armor will fracture.", + "effect": "attack", + "effect_str": "cold", + "shape": "blast", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "max_level": 35, + "min_damage": 0, + "max_damage": 100, + "damage_increment": 3, + "min_dot": 0, + "max_dot": 45, + "dot_increment": 1.3, + "min_aoe": 3, + "max_aoe": 9, + "aoe_increment": 0.2, + "min_range": 5, + "max_range": 40, + "range_increment": 1, + "spell_class": "PERMAFROST_MAGE", + "base_casting_time": 500, + "casting_time_increment": -15, + "final_casting_time": 100, + "base_energy_cost": 700, + "energy_increment": -15, + "final_energy_cost": 300, + "min_duration": 500, + "max_duration": 18000, + "duration_increment": 500, + "energy_source": "MANA", + "difficulty": 7, + "damage_type": "cold" } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Radiation_Mage.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Radiation_Mage.json index 9b59ca6d6..1df6d2d02 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Radiation_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Radiation_Mage.json @@ -5,7 +5,7 @@ "name": "Shortwave", "description": "Cook nearby monsters (and yourself to an extent).", "valid_targets": [ "hostile", "ground", "self" ], - "flags": [ "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN" ], + "flags": [ "SOMATIC", "MUST_HAVE_CLASS_TO_LEARN", "NO_HANDS" ], "effect": "attack", "shape": "blast", "damage_type": "pure", diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Shapeshifter.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Shapeshifter.json index 6bde8d30e..4b0b067e7 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Shapeshifter.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Shapeshifter.json @@ -40,8 +40,6 @@ "message": "", "valid_targets": [ "self" ], "flags": [ "SILENT", "NO_LEGS", "NO_HANDS" ], - "min_damage": 1, - "max_damage": 1, "effect": "attack", "effect_str": "biomechanic", "shape": "blast", diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Soulfire.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Soulfire.json index 24581d88b..4d65a73c7 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Soulfire.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Soulfire.json @@ -35,16 +35,27 @@ "type": "SPELL", "name": "Soul Burn", "description": "This is a description for a spell the player will never see.", - "effect": "spawn_item", - "effect_str": "soul_burn_item", + "effect": "attack", + "effect_str": "soul_burn", "shape": "blast", - "min_damage": 1, - "max_damage": 1, - "valid_targets": [ "none" ], + "min_damage": 0, + "max_damage": 0, + "valid_targets": [ "self" ], "max_level": 35, - "min_duration": 2880000, - "max_duration": 1440000, - "duration_increment": -41143 + "min_duration": 1080000, + "max_duration": 540000, + "duration_increment": -30000 + }, + { + "id": "soul_burn", + "type": "effect_type", + "name": [ "Soul Burn" ], + "desc": [ + "A little of your soul has been burned away, leaving you in a weakened state. The soul heals quickly, but your body regenerates more slowly while the soul is weak." + ], + "rating": "bad", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "REGEN_HP", "multiply": -0.7 } ] } ] }, { "id": "soul_afterburner", @@ -55,15 +66,12 @@ "flags": [ "VERBAL", "SILENT", "MUST_HAVE_CLASS_TO_LEARN" ], "effect": "mod_moves", "shape": "blast", - "min_damage": 750, - "damage_increment": 50, - "max_damage": 2500, + "min_damage": 1500, + "damage_increment": 200, + "max_damage": 7500, "max_level": 35, "difficulty": 6, - "base_casting_time": 5, "spell_class": "SOULFIRE", - "energy_source": "HP", - "base_energy_cost": 30, "extra_effects": [ { "id": "soul_afterburner_effect_1", "hit_self": true } ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Storm_Elemental.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Storm_Elemental.json index afc728797..e0e8145d7 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Storm_Elemental.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Storm_Elemental.json @@ -99,5 +99,40 @@ "sound_description": "a crackle", "valid_targets": [ "hostile", "ground" ], "flags": [ "LOUD", "RANDOM_TARGET", "RANDOM_CRITTER" ] + }, + { + "id": "storm_elemental_electric_melee", + "type": "SPELL", + "name": "Galvanic", + "description": "Fill your hands with high-voltage electricity, and deal additional electric damage in melee.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "eff_storm_elemental_electric_melee", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "spell_class": "STORM_ELEMENTAL", + "difficulty": 4, + "min_duration": 20000, + "max_duration": 720000, + "duration_increment": 20000, + "base_casting_time": 500, + "final_casting_time": 150, + "casting_time_increment": -10, + "base_energy_cost": 325, + "final_energy_cost": 150, + "energy_increment": -5, + "max_level": 35, + "energy_source": "MANA" + }, + { + "id": "eff_storm_elemental_electric_melee", + "type": "effect_type", + "name": [ "Galvanic" ], + "desc": [ "You deal additional electric damage in melee." ], + "apply_message": "Electric energy is concentrated in your hands, and it's ready to go.", + "remove_message": "Your hands turn back to normal condition.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "ITEM_DAMAGE_ELEC", "add": 35 }, { "value": "MELEE_DAMAGE", "multiply": 0.4 } ] } ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Stormcaller.json b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Stormcaller.json new file mode 100644 index 000000000..065f542db --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/attunements/Stormcaller.json @@ -0,0 +1,65 @@ +[ + { + "id": "electric_demon", + "type": "SPELL", + "name": { "str": "Electric Demon" }, + "description": "Summon a small electric imp - fast as lightning, and just as deadly.", + "valid_targets": [ "ground" ], + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "RANDOM_TARGET" ], + "effect": "summon", + "effect_str": "mon_electric_demon", + "shape": "blast", + "spell_class": "STORMCALLER", + "energy_source": "MANA", + "difficulty": 8, + "max_level": 35, + "base_casting_time": 250, + "final_casting_time": 150, + "casting_time_increment": -3, + "base_energy_cost": 400, + "final_energy_cost": 50, + "energy_increment": -10, + "min_damage": 1, + "max_damage": 1, + "min_range": 1, + "max_range": 5, + "range_increment": 0.25, + "min_aoe": 3, + "max_aoe": 3, + "min_duration": 10000, + "max_duration": 360000, + "duration_increment": 10000 + }, + { + "id": "electric_turret", + "type": "SPELL", + "name": { "str": "Thunder Pillar" }, + "description": "Summon immovable pillars, that will attack your enemies with devastating lightning bolts.", + "valid_targets": [ "ground" ], + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "RANDOM_TARGET" ], + "effect": "summon", + "effect_str": "mon_electric_turret", + "shape": "blast", + "spell_class": "STORMCALLER", + "energy_source": "MANA", + "difficulty": 6, + "max_level": 35, + "base_casting_time": 400, + "casting_time_increment": -10, + "final_casting_time": 50, + "base_energy_cost": 400, + "energy_increment": -17.5, + "final_energy_cost": 225, + "//": "it is intended to have min_damage 0 - the attunement is given on lvl 5, which round the amount of monsters to 1 and make smooth progression afterwards", + "min_damage": 0, + "max_damage": 4, + "damage_increment": 0.1, + "min_range": 1, + "max_range": 1, + "min_aoe": 1, + "max_aoe": 1, + "min_duration": 10000, + "max_duration": 360000, + "duration_increment": 10000 + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/biomancer.json b/data/Mainline_mods/Mods/Magiclysm/Spells/biomancer.json index 81f78af43..04b1c9640 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/biomancer.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/biomancer.json @@ -95,8 +95,12 @@ "effect": "attack", "effect_str": "bio_boost", "shape": "blast", - "base_casting_time": 200, - "base_energy_cost": 150, + "base_casting_time": 100, + "casting_time_increment": -2.5, + "final_casting_time": 50, + "base_energy_cost": 250, + "energy_increment": -5.0, + "final_energy_cost": 150, "energy_source": "MANA", "spell_class": "BIOMANCER", "difficulty": 6, @@ -104,8 +108,8 @@ "flags": [ "SOMATIC", "LOUD" ], "//": "duration is in moves", "min_duration": 6000, - "max_duration": 12000, - "duration_increment": 300 + "max_duration": 60000, + "duration_increment": 2700 }, { "id": "bio_acidicspray", @@ -258,7 +262,7 @@ "id": "biomancer_visceral_projection", "type": "SPELL", "name": "Visceral Projection", - "description": "Projects a spray of acrid blood and gore all around you, growing to ensnare your prey in in a field of twitching poisonous tendrils.", + "description": "Projects a spray of acrid blood and gore all around you, growing to ensnare your prey in a field of twitching poisonous tendrils.", "valid_targets": [ "ally", "hostile", "ground" ], "effect": "attack", "effect_str": "badpoison", @@ -332,13 +336,13 @@ "flags": [ "SOMATIC", "VERBAL" ], "energy_source": "MANA", "spell_class": "BIOMANCER", - "difficulty": 5, - "base_casting_time": 400, - "base_energy_cost": 150, + "difficulty": 4, + "base_casting_time": 200, + "base_energy_cost": 100, "max_level": 20, "min_duration": 6000, - "max_duration": 12000, - "duration_increment": 300 + "max_duration": 90000, + "duration_increment": 4200 }, { "id": "corrosive_aura_spell", @@ -415,5 +419,175 @@ "min_duration": 360000, "max_duration": 2160000, "duration_increment": 72000 + }, + { + "id": "biomancer_swim_frog", + "type": "SPELL", + "name": "Limbs of the Frog", + "description": "Grow webbing on your hands and feet, making quick swimming a breeze.", + "valid_targets": [ "self" ], + "spell_class": "BIOMANCER", + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "attack", + "effect_str": "effect_biomancer_swim_speed", + "shape": "blast", + "difficulty": 4, + "max_level": 10, + "min_duration": 120000, + "max_duration": 360000, + "duration_increment": 24000, + "energy_source": "MANA", + "base_energy_cost": 300, + "base_casting_time": 1000 + }, + { + "id": "biomancer_giant_growth", + "type": "SPELL", + "name": "Giant Growth", + "description": "Grow to enormous size. Your clothing and equipment will not grow with you.", + "valid_targets": [ "self" ], + "spell_class": "BIOMANCER", + "flags": [ "VERBAL", "SOMATIC" ], + "effect": "effect_on_condition", + "effect_str": "EOC_GIANT_GROWTH_MUTATION", + "shape": "blast", + "difficulty": 6, + "max_level": 15, + "min_duration": 30000, + "max_duration": 90000, + "duration_increment": 4000, + "energy_source": "MANA", + "base_energy_cost": 550, + "base_casting_time": 100 + }, + { + "type": "effect_on_condition", + "id": "EOC_GIANT_GROWTH_MUTATION", + "condition": { "and": [ { "not": { "u_has_trait": "HUGE" } }, { "not": { "u_has_trait": "HUGE_OK" } } ] }, + "effect": [ + { "u_message": "Your body swells and warps as your size increases!", "type": "good" }, + { "u_add_trait": "BIO_GIANT_GROWTH" }, + { "math": [ "u_val('stored_kcal')", "+=", "100000" ] }, + { + "queue_eocs": "EOC_GIANT_GROWTH_MUTATION_REMOVE", + "time_in_future": { "math": [ "(( u_val('spell_level', 'spell: biomancer_giant_growth') * 40 ) + 300 )" ] } + } + ], + "false_effect": [ { "u_message": "You are already enormous--the spell cannot make you any larger!" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GIANT_GROWTH_MUTATION_REMOVE", + "effect": [ + { "u_message": "Your body shrinks and warps as your size decreases!", "type": "bad" }, + { "u_lose_trait": "BIO_GIANT_GROWTH" }, + { "math": [ "u_val('stored_kcal')", "-=", "100000" ] } + ] + }, + { + "id": "biomancer_remove_instability", + "type": "SPELL", + "name": "Restore Genetic Stability", + "description": "The scroll said that this spell is for \"Curing the aftereffects of XE037 overexposure\", whatever that means. According the scroll, the spell should be allowed to run its course before reapplication.", + "valid_targets": [ "self", "ally" ], + "spell_class": "BIOMANCER", + "components": "spell_components_remove_instability", + "flags": [ "VERBAL", "SOMATIC" ], + "effect": "attack", + "effect_str": "effect_biomancer_remove_instability", + "shape": "blast", + "difficulty": 10, + "max_level": 15, + "energy_source": "MANA", + "min_range": 1, + "base_energy_cost": 1500, + "base_casting_time": 180000, + "min_duration": 4500000, + "max_duration": 45000000, + "duration_increment": 2700000 + }, + { + "id": "biomancer_carrion_feast", + "type": "SPELL", + "name": "Carrion Feast", + "description": "Alter your digestive system to consume rotten food with no ill effects. This is either a truly ancient spell or otherwise must have been the product of some university thaumaturgical research department.", + "valid_targets": [ "self" ], + "spell_class": "BIOMANCER", + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "attack", + "effect_str": "effect_biomancer_carrion_feast", + "shape": "blast", + "difficulty": 3, + "energy_source": "MANA", + "max_level": 10, + "min_duration": 6000, + "max_duration": 36000, + "duration_increment": 2800, + "base_energy_cost": 250, + "base_casting_time": 1500 + }, + { + "id": "biomancer_lashing_tentacles", + "type": "SPELL", + "name": "Lashing Tentacles", + "description": "Grow a pair of lashing tentacles from your shoulders. While not as long as the Vicious Tentacle, they will strike anyone in melee with you. You cannot wear rigid torso armor with them.", + "valid_targets": [ "self" ], + "spell_class": "BIOMANCER", + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "effect_on_condition", + "effect_str": "EOC_LASHING_TENTACLES_MUTATION", + "shape": "blast", + "difficulty": 6, + "max_level": 15, + "min_duration": 7000, + "max_duration": 30000, + "duration_increment": 1533, + "energy_source": "MANA", + "base_energy_cost": 400, + "base_casting_time": 500 + }, + { + "type": "effect_on_condition", + "id": "EOC_LASHING_TENTACLES_MUTATION", + "effect": [ + { "u_message": "Your shoulders itch before two barbed tentacles erupt from them!", "type": "good" }, + { "u_add_trait": "BIO_LASHING_TENTACLES" }, + { + "queue_eocs": "EOC_LASHING_TENTACLES_MUTATION_REMOVE", + "time_in_future": { "math": [ "(( u_val('spell_level', 'spell: biomancer_lashing_tentacles') * 15 ) + 70 )" ] } + } + ], + "false_effect": [ { "u_message": "You are already enormous--the spell cannot make you any larger!" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LASHING_TENTACLES_MUTATION_REMOVE", + "effect": [ + { "u_message": "The tentacles recede back into your body.", "type": "bad" }, + { "u_lose_trait": "BIO_LASHING_TENTACLES" } + ] + }, + { + "id": "biomancer_cure_disease_minor", + "type": "SPELL", + "name": "Cure Disease, Minor", + "description": "Cure any flu or common cold you might be suffering from. This is one of the few biomantic cure spells that is castable on other people.", + "valid_targets": [ "self", "ally" ], + "spell_class": "BIOMANCER", + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "attack", + "effect_str": "effect_biomancer_cure_disease_minor", + "shape": "blast", + "difficulty": 4, + "max_level": 10, + "min_duration": 100, + "max_duration": 100, + "min_range": 1, + "max_range": 1, + "energy_source": "MANA", + "base_energy_cost": 350, + "base_casting_time": 90000, + "final_casting_time": 30000, + "casting_time_increment": -6000 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/black_dragon.json b/data/Mainline_mods/Mods/Magiclysm/Spells/black_dragon.json index 905f629ec..683cd186d 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/black_dragon.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/black_dragon.json @@ -196,7 +196,7 @@ "id": "dragon_spit_acid", "type": "SPELL", "name": "Dragon Acid Spit", - "description": "You conjur up acidic spittle that you can shoot long distances as you close on your terrified prey.", + "description": "You conjure up acidic spittle that you can shoot long distances as you close in on your terrified prey.", "valid_targets": [ "hostile" ], "flags": [ "LOUD", "VERBAL", "NO_HANDS", "NO_LEGS" ], "effect": "attack", diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/classless.json b/data/Mainline_mods/Mods/Magiclysm/Spells/classless.json index 7deb7d714..eb7333f61 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/classless.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/classless.json @@ -103,7 +103,7 @@ "max_level": 20, "min_duration": 100000, "max_duration": 1000000, - "duration_increment": 2000 + "duration_increment": 45000 }, { "id": "megablast", @@ -222,8 +222,8 @@ "name": "Obfuscated Body", "description": "A magical aura distorts light around your body, increasing the amount of attacks you might dodge in a given turn.", "valid_targets": [ "self" ], - "effect": "spawn_item", - "effect_str": "obfuscating_aura", + "effect": "attack", + "effect_str": "effect_obfuscating_aura", "shape": "blast", "energy_source": "MANA", "flags": [ "CONCENTRATE", "NO_LEGS" ], @@ -242,8 +242,8 @@ "name": "Improved Obfuscated Body", "description": "A magical aura distorts light around your body, increasing the amount of attacks you might dodge in a given turn.", "valid_targets": [ "self" ], - "effect": "spawn_item", - "effect_str": "obfuscating_aura", + "effect": "attack", + "effect_str": "effect_obfuscating_aura", "shape": "blast", "energy_source": "MANA", "flags": [ "NO_LEGS" ], @@ -326,11 +326,9 @@ "type": "SPELL", "name": { "str": "Acid Resistance" }, "description": "Protects the user from acid.", - "valid_targets": [ "none" ], - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "acid_res_aura", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "effect_acid_res_aura", "shape": "blast", "energy_source": "MANA", "spell_class": "NONE", @@ -350,10 +348,8 @@ "name": "Greater Acid Resistance", "description": "Protects the user from acid.", "valid_targets": [ "none" ], - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "acid_res_aura_greater", + "effect": "attack", + "effect_str": "effect_acid_res_aura_greater", "shape": "blast", "energy_source": "MANA", "spell_class": "NONE", @@ -363,5 +359,145 @@ "base_casting_time": 200, "base_energy_cost": 250, "min_duration": 180000 + }, + { + "id": "thought_shield", + "type": "SPELL", + "name": "Thought Shield", + "description": "Two small shimmering spots appear on your temples, protecting your mind from outside influences.", + "valid_targets": [ "self" ], + "effect": "spawn_item", + "effect_str": "thought_shield_item", + "shape": "blast", + "energy_source": "MANA", + "flags": [ "CONCENTRATE", "NO_LEGS" ], + "difficulty": 6, + "min_damage": 1, + "max_damage": 1, + "max_level": 15, + "base_casting_time": 1500, + "base_energy_cost": 800, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, + "learn_spells": { "thought_shield_plus": 15 } + }, + { + "id": "thought_shield_plus", + "type": "SPELL", + "name": "Thought Suit", + "description": "Why protect just your mind from outside influences? More shields all over your body should also prevent you from being teleported forcefully", + "valid_targets": [ "self" ], + "effect": "spawn_item", + "effect_str": "thought_shield_plus_item", + "shape": "blast", + "energy_source": "MANA", + "flags": [ "NO_LEGS" ], + "min_damage": 1, + "max_damage": 1, + "difficulty": 7, + "max_level": 25, + "base_casting_time": 1500, + "final_casting_time": 100, + "casting_time_increment": -56, + "base_energy_cost": 800, + "final_energy_cost": 200, + "energy_increment": -24, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000 + }, + { + "id": "sound_bomb", + "type": "SPELL", + "name": "Sound Bomb", + "description": "Behind the cool name hides a common joke spell to spook your friends and restrain dogs. It can be useful in some special cases.", + "valid_targets": [ "self", "ally", "hostile", "ground" ], + "flags": [ "CONCENTRATE", "SOMATIC", "LOUD", "NO_PROJECTILE" ], + "effect": "noise", + "shape": "blast", + "sound_description": "a loud, high pitched sound", + "min_damage": 12, + "max_damage": 120, + "damage_increment": 5, + "min_range": 5, + "max_range": 55, + "range_increment": 2, + "base_energy_cost": 125, + "spell_class": "NONE", + "difficulty": 3, + "max_level": 25, + "base_casting_time": 300, + "final_casting_time": 100, + "casting_time_increment": -8, + "field_id": "fd_direction", + "min_field_intensity": 1, + "max_field_intensity": 1, + "field_chance": 1, + "energy_source": "MANA" + }, + { + "id": "classless_watch_spell", + "type": "SPELL", + "name": "Knowing the Day and the Hour", + "description": "Probably the single greatest example of technology rendering magic obsolete, this spell allows you know exactly what time it is.", + "valid_targets": [ "self" ], + "flags": [ "VERBAL", "SOMATIC" ], + "effect": "attack", + "effect_str": "effect_classless_watch", + "shape": "blast", + "difficulty": 1, + "max_level": 12, + "min_duration": 720000, + "max_duration": 8640000, + "duration_increment": 720000, + "energy_source": "MANA", + "base_energy_cost": 150, + "base_casting_time": 6000 + }, + { + "id": "classless_dispel_magic", + "type": "SPELL", + "name": "Dispel Magic", + "description": "Remove magical effects from your target. It fails when faced with powerful enchantments or the unique bonuses provided by attunements.", + "//": "Should only target spells of Difficulty 6 and that aren't granted by an attunement", + "valid_targets": [ "self", "ally", "hostile" ], + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL" ], + "effect": "attack", + "effect_str": "effect_dispel_magic", + "shape": "blast", + "difficulty": 6, + "max_level": 15, + "min_duration": 200, + "max_duration": 200, + "min_range": 3, + "max_range": 20, + "range_increment": 1.2, + "energy_source": "MANA", + "base_energy_cost": 350, + "base_casting_time": 100 + }, + { + "id": "classless_disjunction", + "type": "SPELL", + "name": "Disjunction", + "description": "The ultimate anti-magic spell, Disjunction will strip even attunement-related or powerful enchantments from the target.", + "valid_targets": [ "self", "ally", "hostile" ], + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL" ], + "effect": "attack", + "effect_str": "effect_disjunction", + "shape": "blast", + "difficulty": 10, + "max_level": 15, + "min_duration": 200, + "max_duration": 200, + "min_range": 3, + "max_range": 20, + "range_increment": 1.2, + "energy_source": "MANA", + "base_energy_cost": 1250, + "final_energy_cost": 750, + "energy_increment": 33.33, + "base_casting_time": 100 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/consumables.json b/data/Mainline_mods/Mods/Magiclysm/Spells/consumables.json index 471738dc3..c8df60f1e 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/consumables.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/consumables.json @@ -64,5 +64,17 @@ "shape": "blast", "min_damage": 20, "max_damage": 20 + }, + { + "id": "pfruit_regeneration_spell", + "type": "SPELL", + "name": "Apple Potion Healing Effect", + "description": "Heals the target.", + "valid_targets": [ "self" ], + "min_damage": -1, + "max_damage": -1, + "effect": "attack", + "shape": "blast", + "flags": [ "SILENT" ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/dragonbreath.json b/data/Mainline_mods/Mods/Magiclysm/Spells/dragonbreath.json index cc4a90eab..71b69613f 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/dragonbreath.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/dragonbreath.json @@ -1,4 +1,39 @@ [ + { + "type": "SPELL", + "id": "dragon_deep_breath", + "name": { "str": "Take a Deep Breath" }, + "description": "Preps for using dragon breath.", + "flags": [ "VERBAL", "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "valid_targets": [ "hostile" ], + "max_level": 40, + "effect": "attack", + "extra_effects": [ { "id": "dragon_deep_breath_self", "hit_self": true, "max_level": 1 } ], + "shape": "blast", + "min_range": 8, + "max_range": 12, + "range_increment": 0.1 + }, + { + "type": "SPELL", + "id": "dragon_deep_breath_self", + "name": { "str": "Took a Deep Breath" }, + "description": "Grants the effect for a dragon to use deep breath.", + "flags": [ "VERBAL", "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN" ], + "valid_targets": [ "self" ], + "max_level": 1, + "effect": "attack", + "effect_str": "effect_dragon_deep_breath", + "shape": "blast", + "min_duration": 100, + "max_duration": 100 + }, + { + "type": "effect_type", + "id": "effect_dragon_deep_breath", + "name": [ "Deep Breath" ], + "desc": [ "You are ready to use your breath weapon." ] + }, { "type": "SPELL", "id": "dragon_breath_black", diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/druid.json b/data/Mainline_mods/Mods/Magiclysm/Spells/druid.json index b1810e03b..8e25624cd 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/druid.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/druid.json @@ -101,9 +101,10 @@ "id": "druid_naturebow1", "type": "SPELL", "name": "Nature's Bow", - "description": "This spell conjures a magical wooden recurve bow that fires endless arrows for as long as it lasts.", + "description": "This spell conjures a magical wooden recurve bow, as well as a quiver and a set of arrows to go with it.", "valid_targets": [ "none" ], "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS" ], + "extra_effects": [ { "id": "druid_naturequiver1" }, { "id": "druid_naturearrows1" } ], "min_damage": 1, "max_damage": 1, "effect": "spawn_item", @@ -114,19 +115,50 @@ "min_duration": 24000, "max_duration": 360000, "duration_increment": 24000, - "difficulty": 6, + "difficulty": 5, "max_level": 15, "spell_class": "DRUID", "energy_source": "MANA", "learn_spells": { "druid_naturebow1_plus": 15 } }, + { + "id": "druid_naturequiver1", + "type": "SPELL", + "name": "Nature's Quiver", + "description": "This spell conjures a magical quiver as part of the nature's bow spell. It's a bug if you have it directly.", + "valid_targets": [ "none" ], + "flags": [ "SILENT" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "druid_quiver", + "shape": "blast", + "min_duration": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1') * 24000) + 24000)" ] }, + "max_duration": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1') * 24000) + 24000)" ] } + }, + { + "id": "druid_naturearrows1", + "type": "SPELL", + "name": "Nature's Arrows", + "description": "This spell conjures magical arrows as part of the nature's bow spell. It's a bug if you have it directly.", + "valid_targets": [ "none" ], + "flags": [ "SILENT" ], + "min_damage": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1') * 3) + 15)" ] }, + "max_damage": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1') * 3) + 15)" ] }, + "effect": "spawn_item", + "effect_str": "druid_naturearrows1", + "shape": "blast", + "min_duration": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1') * 24000) + 24000)" ] }, + "max_duration": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1') * 24000) + 24000)" ] } + }, { "id": "druid_naturebow1_plus", "type": "SPELL", "name": "Improved Nature's Bow", - "description": "This spell conjures a magical wooden recurve bow that fires endless arrows for as long as it lasts. Now you know this spell like the back of your hand, and start to design your own version.", + "description": "This spell conjures a magical wooden recurve bow, as well as a quiver and a set of arrows to go with it. Now you know this spell like the back of your hand, and have started to design your own version.", "valid_targets": [ "none" ], "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ], + "extra_effects": [ { "id": "druid_naturequiver1_plus" }, { "id": "druid_naturearrows1_plus" } ], "min_damage": 1, "max_damage": 1, "effect": "spawn_item", @@ -141,11 +173,41 @@ "min_duration": 360000, "max_duration": 2160000, "duration_increment": 72000, - "difficulty": 8, + "difficulty": 7, "max_level": 25, "spell_class": "DRUID", "energy_source": "MANA" }, + { + "id": "druid_naturequiver1_plus", + "type": "SPELL", + "name": "Nature's Quiver", + "description": "This spell conjures a magical quiver as part of the nature's bow spell. It's a bug if you have it directly.", + "valid_targets": [ "none" ], + "flags": [ "SILENT" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "druid_quiver_plus", + "shape": "blast", + "min_duration": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1_plus') * 72000) + 360000)" ] }, + "max_duration": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1_plus') * 72000) + 360000)" ] } + }, + { + "id": "druid_naturearrows1_plus", + "type": "SPELL", + "name": "Nature's Arrows", + "description": "This spell conjures magical arrows as part of the nature's bow spell. It's a bug if you have it directly.", + "valid_targets": [ "none" ], + "flags": [ "SILENT" ], + "min_damage": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1_plus') * 4) + 30)" ] }, + "max_damage": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1_plus') * 4) + 30)" ] }, + "effect": "spawn_item", + "effect_str": "druid_naturearrows1", + "shape": "blast", + "min_duration": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1_plus') * 72000) + 360000)" ] }, + "max_duration": { "math": [ "( (u_val('spell_level', 'spell: druid_naturebow1_plus') * 72000) + 360000)" ] } + }, { "id": "recover_fatigue", "type": "SPELL", @@ -315,7 +377,7 @@ "id": "druidic_healing", "type": "SPELL", "name": "Sacrificial Healing", - "description": "Channels some of the user's own life force into healing energy, for the sake of ones allies.", + "description": "Channels some of the user's own life force into healing energy, for the sake of one's allies.", "valid_targets": [ "ally" ], "effect": "attack", "shape": "blast", @@ -402,11 +464,11 @@ { "id": "druid_feralform_plus", "type": "SPELL", - "name": "Feral Form", + "name": "Enhanced Feral Form", "description": "This spell unleashes your inner beast, growing claws & fangs to rend your foes limb from limb. Now you know this spell like the back of your hand, and start to design your own version.", "valid_targets": [ "self" ], "effect": "spawn_item", - "effect_str": "aura_feral", + "effect_str": "aura_feral_plus", "shape": "blast", "flags": [ "SOMATIC" ], "components": "spell_components_feralform", @@ -458,10 +520,10 @@ "id": "druid_natures_commune", "type": "SPELL", "name": "Nature's Commune", - "description": "You concentrate on the nature around you and commune with it, improving your health and calming the nearby wildlife.", + "description": "You concentrate on the nature around you and commune with it, improving your health and calming nearby wildlife. This spell may only be cast outdoors.", "valid_targets": [ "self" ], - "effect": "attack", - "effect_str": "natures_commune", + "effect": "effect_on_condition", + "effect_str": "EOC_NATURE_COMMUNE", "shape": "blast", "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], "energy_source": "MANA", @@ -472,9 +534,43 @@ "final_energy_cost": 400, "energy_increment": 10, "max_level": 20, - "min_duration": 10000, - "max_duration": 40000, - "duration_increment": 2000 + "min_duration": 30000, + "max_duration": 360000, + "duration_increment": 16500 + }, + { + "type": "effect_on_condition", + "id": "EOC_NATURE_COMMUNE", + "condition": { + "and": [ + "u_is_outside", + { "not": { "u_near_om_location": "road_curved", "range": 1 } }, + { "not": { "u_near_om_location": "road_four_way", "range": 1 } }, + { "not": { "u_near_om_location": "road_tee", "range": 1 } }, + { "not": { "u_near_om_location": "road_straight", "range": 1 } }, + { "not": { "u_near_om_location": "road_end", "range": 1 } }, + { "not": { "u_near_om_location": "road_sw", "range": 1 } }, + { "not": { "u_near_om_location": "road_ne", "range": 1 } }, + { "not": { "u_near_om_location": "road_ew", "range": 1 } }, + { "not": { "u_near_om_location": "road_ns", "range": 1 } }, + { "not": { "u_near_om_location": "road_nesw", "range": 1 } }, + { "not": { "u_near_om_location": "road", "range": 1 } } + ] + }, + "effect": [ + { + "u_add_effect": "natures_commune", + "duration": { "math": [ "( 300 + (u_val('spell_level', 'spell: druid_natures_commune') * 165)) " ] } + }, + { + "u_add_morale": "morale_forest_unity", + "bonus": 10, + "max_bonus": 15, + "duration": { "math": [ "( 300 + (u_val('spell_level', 'spell: druid_natures_commune') * 165) )" ] }, + "decay_start": { "math": [ "(( 300 + (u_val('spell_level', 'spell: druid_natures_commune') * 165) ) / 2)" ] } + } + ], + "false_effect": [ { "u_message": "You must be surrounded by nature to commune with nature", "type": "bad" } ] }, { "id": "druid_growth", @@ -535,7 +631,7 @@ "id": "druid_healing", "type": "SPELL", "name": "Restoration", - "description": "Magic energy, that slowly heal your body from wounds.", + "description": "Directed magical energy that slowly heals your body from wounds.", "valid_targets": [ "self" ], "effect": "attack", "effect_str": "flask_regeneration", @@ -568,14 +664,304 @@ "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS" ], "energy_source": "MANA", "spell_class": "DRUID", - "min_damage": 5, - "max_damage": 20, - "damage_increment": 1, + "min_damage": -5, + "max_damage": -20, + "damage_increment": -1, "difficulty": 5, "base_casting_time": 800, "base_energy_cost": 400, "final_energy_cost": 150, "energy_increment": -16.7, "max_level": 15 + }, + { + "id": "druid_bandage_heal", + "type": "SPELL", + "name": "Vegetative Poultice", + "description": "This spell turns a mixture of bark and leaves into a powerful salve capable of stopping even grievous wounds from bleeding.", + "valid_targets": [ "none" ], + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "druid_bandages", + "components": "spell_components_druid_bandage", + "shape": "blast", + "base_casting_time": 400, + "base_energy_cost": 450, + "min_duration": 48000, + "max_duration": 720000, + "duration_increment": 44800, + "difficulty": 5, + "max_level": 15, + "spell_class": "DRUID", + "energy_source": "MANA" + }, + { + "id": "druid_whisper_leaves", + "type": "SPELL", + "name": "Whisper of the Leaves", + "description": "This spell allows you to hear the trees' wisdom in the rustle of the leaves and the creaking of their roots, discerning the layout of the forest.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "effect_on_condition", + "effect_str": "EOC_GAIN_WHISPER_LEAVES", + "shape": "blast", + "energy_source": "MANA", + "spell_class": "DRUID", + "difficulty": 6, + "max_level": 15, + "base_casting_time": 6000, + "final_casting_time": 1000, + "casting_time_increment": -350, + "base_energy_cost": 800, + "final_energy_cost": 500, + "energy_increment": -40, + "min_duration": 6000, + "max_duration": 6000 + }, + { + "type": "effect_on_condition", + "id": "EOC_GAIN_WHISPER_LEAVES", + "condition": { "not": { "u_has_trait": "TREE_COMMUNION" } }, + "effect": [ + { "u_message": "You are in tune with the wood and the wilds. [Check mutations to activate]", "type": "good" }, + { "u_add_trait": "TREE_COMMUNION" }, + { "queue_eocs": "EOC_LOSE_WHISPER_LEAVES", "time_in_future": [ "60 seconds", "60 seconds" ] } + ], + "false_effect": [ + { + "u_message": "You are already in tune with the rhythms of the forest. Further magic cannot deepen your bond.", + "type": "good" + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LOSE_WHISPER_LEAVES", + "effect": [ { "u_lose_trait": "TREE_COMMUNION" } ] + }, + { + "id": "druid_harvest_hunter", + "type": "SPELL", + "name": "Harvest of the Hunter", + "description": "This spell creates a grouping of odd-looking but functional arrows out of forest detritus.", + "valid_targets": [ "none" ], + "flags": [ "CONCENTRATE", "NO_HANDS", "VERBAL", "NO_LEGS" ], + "spell_class": "DRUID", + "difficulty": 4, + "max_level": 15, + "effect": "spawn_item", + "effect_str": "arrow_druid", + "components": "spell_components_druid_arrow", + "shape": "blast", + "min_damage": 5, + "max_damage": 40, + "damage_increment": 2.5, + "base_casting_time": 6000, + "final_casting_time": 600, + "casting_time_increment": -360, + "energy_source": "MANA", + "base_energy_cost": 250, + "min_duration": 180000, + "max_duration": 1440000, + "duration_increment": 84000 + }, + { + "id": "druid_summon_tanglevine", + "type": "SPELL", + "name": "Summon Tanglevine", + "description": "This spell causes an animated vine to burst from the ground and attempt to seize a nearby target and hold it fast.", + "valid_targets": [ "ground" ], + "flags": [ "VERBAL", "SOMATIC" ], + "effect": "summon", + "effect_str": "mon_tanglevine", + "shape": "blast", + "spell_class": "DRUID", + "difficulty": 6, + "max_level": 15, + "min_damage": 1, + "max_damage": 1, + "min_range": 5, + "max_range": 15, + "range_increment": 0.8, + "base_casting_time": 250, + "energy_source": "MANA", + "min_duration": 12000, + "max_duration": 42000, + "duration_increment": 2000, + "base_energy_cost": 650, + "final_energy_cost": 400, + "energy_increment": -16.666 + }, + { + "id": "druid_beguile_savage_beast", + "type": "SPELL", + "name": "Beguiling the Savage Beast", + "description": "Using your connection to nature, you can sway an animal to your service. This spell even works on mutated animals.", + "valid_targets": [ "hostile" ], + "flags": [ "VERBAL", "SOMATIC", "SILENT" ], + "effect": "charm_monster", + "shape": "blast", + "spell_class": "DRUID", + "difficulty": 9, + "max_level": 15, + "min_damage": 30, + "max_damage": 400, + "damage_increment": 25, + "min_range": 5, + "max_range": 30, + "range_increment": 1.67, + "base_casting_time": 150, + "energy_source": "MANA", + "base_energy_cost": 900, + "final_energy_cost": 600, + "energy_increment": -20, + "min_duration": 30000, + "max_duration": 90000, + "duration_increment": 4000, + "targeted_monster_species": [ "MAMMAL", "BIRD" ] + }, + { + "id": "druid_bramble_spear", + "type": "SPELL", + "name": "Spear of Brambles", + "description": "This spell turns a stick into a vicious spear that drips with sticky sap.", + "valid_targets": [ "none" ], + "flags": [ "CONCENTRATE", "VERBAL", "NO_HANDS" ], + "//": "NO_HANDS so you can hold on to the stick and cast the spell and then be holding the spear", + "effect": "spawn_item", + "effect_str": "druid_bramble_spear_item", + "components": "spell_components_druid_bramble_spear", + "shape": "blast", + "energy_source": "MANA", + "spell_class": "DRUID", + "difficulty": 4, + "min_damage": 1, + "max_damage": 1, + "max_level": 15, + "base_casting_time": 1000, + "base_energy_cost": 350, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, + "learn_spells": { "druid_bramble_spear_enhanced": 15 } + }, + { + "id": "druid_bramble_spear_enhanced", + "type": "SPELL", + "name": "Enhanced Spear of Brambles", + "description": "This spell turns a bit of bark or a twig into a vicious spear that drips with sticky sap. You now know this spell like the back of your hand, and no longer need such massive spell components as you did previously.", + "valid_targets": [ "none" ], + "flags": [ "CONCENTRATE", "VERBAL", "NO_HANDS" ], + "effect": "spawn_item", + "effect_str": "druid_bramble_spear_item", + "shape": "blast", + "energy_source": "MANA", + "spell_class": "DRUID", + "difficulty": 5, + "min_damage": 1, + "max_damage": 1, + "max_level": 15, + "base_casting_time": 1000, + "base_energy_cost": 250, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000 + }, + { + "id": "druid_summon_brambles", + "type": "SPELL", + "name": "Stranglethorns", + "description": "Call up thick brambles, either in a line to form a wall or an arc to trap an enemy. They will grow to full size in moments.", + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "EOC_DRUID_BRAMBLES_SELECTOR", + "shape": "blast", + "flags": [ "SOMATIC", "VERBAL" ], + "spell_class": "DRUID", + "energy_source": "MANA", + "difficulty": 5, + "base_casting_time": 150, + "base_energy_cost": 550, + "max_level": 15 + }, + { + "type": "effect_on_condition", + "id": "EOC_DRUID_BRAMBLES_SELECTOR", + "effect": [ + { + "run_eoc_selector": [ "EOC_DRUID_BRAMBLES_SELECTOR_ARC", "EOC_DRUID_BRAMBLES_SELECTOR_LINE" ], + "names": [ "Thorny Arc", "Wall of Brambles" ], + "keys": [ "1", "2" ], + "descriptions": [ "Summon a spray of brambles to entrap an enemy.", "Summon a wall of thorns to fortify a location." ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DRUID_BRAMBLES_SELECTOR_ARC", + "effect": [ { "u_cast_spell": { "id": "druid_summon_brambles_arc" }, "targeted": true } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DRUID_BRAMBLES_SELECTOR_LINE", + "effect": [ { "u_cast_spell": { "id": "druid_summon_brambles_line" }, "targeted": true } ] + }, + { + "id": "druid_summon_brambles_arc", + "type": "SPELL", + "name": "Summon Brambles Arc", + "description": "Call up brambles, either in a line to form a wall or an arc to trap an enemy. They will grow to full size in moments.", + "valid_targets": [ "ground", "hostile" ], + "effect": "ter_transform", + "effect_str": "druid_summoned_brambles", + "shape": "cone", + "flags": [ "SILENT", "NO_PROJECTILE" ], + "spell_class": "DRUID", + "energy_source": "MANA", + "max_level": 15, + "min_range": { "math": [ "( (u_val('spell_level', 'spell: druid_summon_brambles') * 0.6) + 1)" ] }, + "max_range": { "math": [ "( (u_val('spell_level', 'spell: druid_summon_brambles') * 0.6) + 1)" ] }, + "min_aoe": { "math": [ "( (u_val('spell_level', 'spell: druid_summon_brambles') * 1.9) + 30)" ] }, + "max_aoe": { "math": [ "( (u_val('spell_level', 'spell: druid_summon_brambles') * 1.9) + 30)" ] } + }, + { + "id": "druid_summon_brambles_line", + "type": "SPELL", + "name": "Summon Brambles Line", + "description": "Call up brambles, either in a line to form a wall or an arc to trap an enemy. They will grow to full size in moments.", + "valid_targets": [ "ground", "hostile" ], + "effect": "ter_transform", + "effect_str": "druid_summoned_brambles", + "shape": "line", + "flags": [ "SILENT", "NO_PROJECTILE" ], + "spell_class": "DRUID", + "energy_source": "MANA", + "max_level": 15, + "min_range": { "math": [ "( (u_val('spell_level', 'spell: druid_summon_brambles') * 1) + 1)" ] }, + "max_range": { "math": [ "( (u_val('spell_level', 'spell: druid_summon_brambles') * 1) + 1)" ] } + }, + { + "id": "druid_thorn_skin", + "type": "SPELL", + "name": "Thornskin", + "description": "This spell transforms the druid's skin into a bark-like material covered in large thorns. It provides excellent protection but slightly slows you and makes you vulnerable to fire.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "spawn_item", + "effect_str": "druid_thorn_skin_item", + "shape": "blast", + "energy_source": "MANA", + "spell_class": "DRUID", + "difficulty": 8, + "min_damage": 1, + "max_damage": 1, + "max_level": 15, + "base_casting_time": 600, + "base_energy_cost": 500, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/earthshaper.json b/data/Mainline_mods/Mods/Magiclysm/Spells/earthshaper.json index b2278e040..091680927 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/earthshaper.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/earthshaper.json @@ -19,7 +19,8 @@ "base_energy_cost": 100, "min_duration": 24000, "max_duration": 360000, - "duration_increment": 24000 + "duration_increment": 24000, + "learn_spells": { "stonefist_plus": 15 } }, { "id": "stonefist_plus", @@ -104,7 +105,7 @@ "name": "Shardspray", "description": "This spell projects a wide spray of sharp metal shards, cutting into your foes and friends alike.", "valid_targets": [ "hostile", "ground", "ally" ], - "flags": [ "SOMATIC", "LOUD" ], + "flags": [ "SOMATIC", "LOUD", "NO_HANDS" ], "components": "spell_components_shardspray", "effect": "attack", "shape": "cone", @@ -356,5 +357,625 @@ "min_aoe": 6, "max_aoe": 1, "aoe_increment": -0.5 + }, + { + "id": "pertifying_touch", + "type": "SPELL", + "name": "Petrifying Touch", + "description": "Your hands tries to transform the body of your enemy into a pure stone. The effect is temporary, but it can deal significant damage.", + "valid_targets": [ "hostile" ], + "flags": [ "NO_PROJECTILE", "SILENT", "NO_HANDS" ], + "effect": "attack", + "shape": "blast", + "damage_type": "stab", + "min_damage": 10, + "damage_increment": 2, + "max_damage": 45, + "min_range": 1, + "max_range": 1, + "base_energy_cost": 175, + "final_energy_cost": 75, + "energy_increment": -5, + "spell_class": "EARTHSHAPER", + "difficulty": 7, + "max_level": 20, + "base_casting_time": 160, + "final_casting_time": 40, + "casting_time_increment": -6, + "extra_effects": [ { "id": "pertifying_touch_moves" } ], + "energy_source": "MANA" + }, + { + "id": "pertifying_touch_moves", + "type": "SPELL", + "name": "Petrifying Touch Moves Removing", + "description": "Delete some amount of moves from monster, and inflict DoT. You can see it only in debug mode.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "effect": "mod_moves", + "shape": "blast", + "min_damage": -1000, + "max_damage": -1, + "damage_increment": 50, + "min_dot": 0, + "max_dot": 10, + "dot_increment": 0.5, + "max_level": 20 + }, + { + "id": "reactive_armor", + "type": "SPELL", + "name": "Reactive Armour", + "description": "Explode your stone skin, to deal massive damage to all enemies around.", + "effect": "attack", + "effect_str": "downed", + "shape": "blast", + "components": "spell_components_reactive_armor", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SOMATIC", "LOUD", "NO_HANDS", "RANDOM_DURATION" ], + "max_level": 20, + "min_damage": 20, + "max_damage": 200, + "damage_increment": 9, + "min_aoe": 2, + "max_aoe": 12, + "aoe_increment": 0.5, + "min_duration": 100, + "max_duration": 600, + "spell_class": "EARTHSHAPER", + "base_casting_time": 160, + "final_casting_time": 40, + "casting_time_increment": -6, + "base_energy_cost": 350, + "final_energy_cost": 250, + "energy_increment": -5, + "energy_source": "MANA", + "difficulty": 5, + "damage_type": "stab" + }, + { + "id": "eshaper_impalement", + "type": "SPELL", + "name": "Impalement", + "description": "Summon a stone spikes underground, that penetrate your enemies, and nail them for a while.", + "//": "Would be great to replace the extra effect with some custom field, that do not allow enemies to pass it by, and stops the one who is inside, dealing some damage", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SOMATIC", "VERBAL", "NO_PROJECTILE", "NO_LEGS" ], + "max_level": 20, + "min_damage": 16, + "max_damage": 106, + "damage_increment": 5, + "min_aoe": 1, + "max_aoe": 7, + "aoe_increment": 0.3, + "min_range": 6, + "max_range": 20, + "range_increment": 1.0, + "spell_class": "EARTHSHAPER", + "base_casting_time": 200, + "base_energy_cost": 300, + "energy_source": "MANA", + "difficulty": 5, + "damage_type": "stab", + "extra_effects": [ { "id": "eshaper_impalement_moves" } ] + }, + { + "id": "eshaper_impalement_moves", + "type": "SPELL", + "name": "Impalement Moves Removing", + "description": "Delete some random amount of moves from monster. You can see it only in debug mode.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "RANDOM_DAMAGE", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], + "effect": "mod_moves", + "shape": "blast", + "max_level": 20, + "min_aoe": 1, + "max_aoe": 7, + "aoe_increment": 0.3, + "min_damage": -1000, + "max_damage": -1 + }, + { + "id": "eshaper_spawn_tools", + "type": "SPELL", + "name": "Utility Molding", + "description": "Shape the basic working tools, using your own magic abilities and earth nearby. Activate to change the shape of a tool.", + "valid_targets": [ "self" ], + "flags": [ "SOMATIC", "LOUD" ], + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_EARTHSHAPER_UTILITY_MOLDING", + "shape": "blast", + "spell_class": "EARTHSHAPER", + "energy_source": "MANA", + "difficulty": 2, + "max_level": 14, + "base_casting_time": 360000, + "final_casting_time": 90000, + "casting_time_increment": -18000, + "base_energy_cost": 600, + "final_energy_cost": 200, + "energy_increment": -30, + "min_duration": 576000, + "max_duration": 8640000, + "duration_increment": 576000 + }, + { + "type": "effect_on_condition", + "id": "EOC_EARTHSHAPER_UTILITY_MOLDING", + "effect": [ + { + "run_eoc_selector": [ + "EOC_EARTHSHAPER_UTILITY_MOLDING_HAMMER", + "EOC_EARTHSHAPER_UTILITY_MOLDING_PICKAXE", + "EOC_EARTHSHAPER_UTILITY_MOLDING_AXE", + "EOC_EARTHSHAPER_UTILITY_MOLDING_KNIFE", + "EOC_EARTHSHAPER_UTILITY_MOLDING_SHOVEL" + ], + "names": [ "Summon Hammer", "Summon Pickaxe", "Summon Axe", "Summon Knife", "Summon Shovel" ], + "keys": [ "1", "2", "3", "4", "5" ], + "descriptions": [ + "Transform the living earth into a hammer.", + "Transform the living earth into a pickaxe.", + "Transform the living earth into an axe.", + "Transform the living earth into a knife.", + "Transform the living earth into a shovel." + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_EARTHSHAPER_UTILITY_MOLDING_HAMMER", + "effect": [ { "u_cast_spell": { "id": "eshaper_spawn_hammer" } } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_EARTHSHAPER_UTILITY_MOLDING_PICKAXE", + "effect": [ { "u_cast_spell": { "id": "eshaper_spawn_pickaxe" } } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_EARTHSHAPER_UTILITY_MOLDING_AXE", + "effect": [ { "u_cast_spell": { "id": "eshaper_spawn_axe" } } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_EARTHSHAPER_UTILITY_MOLDING_KNIFE", + "effect": [ { "u_cast_spell": { "id": "eshaper_spawn_knife" } } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_EARTHSHAPER_UTILITY_MOLDING_SHOVEL", + "effect": [ { "u_cast_spell": { "id": "eshaper_spawn_shovel" } } ] + }, + { + "id": "eshaper_spawn_hammer", + "type": "SPELL", + "name": "Utility Molding (Hammer)", + "description": "Spawn the Utility molding hammer. It's a bug if you have this spell directly.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "eshaper_hammer", + "shape": "blast", + "min_duration": { "math": [ "( (u_val('spell_level', 'spell: eshaper_spawn_tools') * 576000) + 576000)" ] }, + "max_duration": { "math": [ "( (u_val('spell_level', 'spell: eshaper_spawn_tools') * 576000) + 576000)" ] } + }, + { + "id": "eshaper_spawn_pickaxe", + "type": "SPELL", + "name": "Utility Molding (Pickaxe)", + "description": "Spawn the Utility molding pickaxe. It's a bug if you have this spell directly.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "eshaper_pickaxe", + "shape": "blast", + "min_duration": { "math": [ "( (u_val('spell_level', 'spell: eshaper_spawn_tools') * 576000) + 576000)" ] }, + "max_duration": { "math": [ "( (u_val('spell_level', 'spell: eshaper_spawn_tools') * 576000) + 576000)" ] } + }, + { + "id": "eshaper_spawn_axe", + "type": "SPELL", + "name": "Utility Molding (Axe)", + "description": "Spawn the Utility molding axe. It's a bug if you have this spell directly.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "eshaper_ax", + "shape": "blast", + "min_duration": { "math": [ "( (u_val('spell_level', 'spell: eshaper_spawn_tools') * 576000) + 576000)" ] }, + "max_duration": { "math": [ "( (u_val('spell_level', 'spell: eshaper_spawn_tools') * 576000) + 576000)" ] } + }, + { + "id": "eshaper_spawn_knife", + "type": "SPELL", + "name": "Utility Molding (Knife)", + "description": "Spawn the Utility molding knife. It's a bug if you have this spell directly.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "eshaper_knife", + "shape": "blast", + "min_duration": { "math": [ "( (u_val('spell_level', 'spell: eshaper_spawn_tools') * 576000) + 576000)" ] }, + "max_duration": { "math": [ "( (u_val('spell_level', 'spell: eshaper_spawn_tools') * 576000) + 576000)" ] } + }, + { + "id": "eshaper_spawn_shovel", + "type": "SPELL", + "name": "Utility Molding (Shovel)", + "description": "Spawn the Utility molding shovel. It's a bug if you have this spell directly.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "eshaper_shovel", + "shape": "blast", + "min_duration": { "math": [ "( (u_val('spell_level', 'spell: eshaper_spawn_tools') * 576000) + 576000)" ] }, + "max_duration": { "math": [ "( (u_val('spell_level', 'spell: eshaper_spawn_tools') * 576000) + 576000)" ] } + }, + { + "id": "eshaper_melee_damage", + "type": "SPELL", + "name": "Weighting", + "description": "Fill yourself with the power of Earth, and make each your attacks as devastating as an earthquake.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "eshaper_melee_damage", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], + "spell_class": "EARTHSHAPER", + "energy_source": "MANA", + "difficulty": 6, + "base_casting_time": 1500, + "final_casting_time": 500, + "casting_time_increment": -40, + "base_energy_cost": 500, + "final_energy_cost": 200, + "energy_increment": -12, + "max_level": 25, + "min_duration": 14400, + "max_duration": 360000, + "duration_increment": 14400 + }, + { + "id": "eshaper_crystal_wrap", + "type": "SPELL", + "name": "Crystal Wrapping", + "description": "You cover your body with a layer of small, razor-sharp crystals. It makes monsters that attack you take some damage in return, and gives you some additional cut damage in melee.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "eshaper_crystal_wrap", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], + "spell_class": "EARTHSHAPER", + "energy_source": "MANA", + "difficulty": 6, + "base_casting_time": 1500, + "final_casting_time": 500, + "casting_time_increment": -40, + "base_energy_cost": 500, + "final_energy_cost": 200, + "energy_increment": -12, + "max_level": 25, + "min_duration": 14400, + "max_duration": 360000, + "duration_increment": 14400 + }, + { + "type": "SPELL", + "id": "eshaper_crystal_wrap_damage", + "name": "Crystal Wrapping Damage", + "description": "Return some damage to attacker. You can see it only in debug mode.", + "effect": "attack", + "shape": "blast", + "flags": [ "SILENT", "RANDOM_DAMAGE", "NO_EXPLOSION_SFX" ], + "min_damage": 13, + "max_damage": 6, + "valid_targets": [ "hostile" ], + "damage_type": "cut", + "min_range": 1, + "max_range": 1 + }, + { + "id": "shape_of_dust", + "type": "SPELL", + "name": "Shape of Dust", + "description": "Hide yourself within sand-filled winds. It's harder to hit you, and monsters can't spot you.", + "//": "Fuck its broken. I thought you can make monster hard to see you, so you will be able to hide from them beyond the sand, but of course invis make monsters even more dumb, and they start to stoically ignore your existence.", + "valid_targets": [ "self" ], + "flags": [ "SOMATIC", "LOUD" ], + "effect": "attack", + "effect_str": "effect_shape_of_dust", + "shape": "blast", + "spell_class": "EARTHSHAPER", + "energy_source": "MANA", + "difficulty": 7, + "max_level": 25, + "base_casting_time": 500, + "base_energy_cost": 350, + "min_duration": 2400, + "max_duration": 60000, + "duration_increment": 2400 + }, + { + "id": "summon_eshaper_golem", + "type": "SPELL", + "name": "Summon Earthshaper's Golem", + "description": "Shape a strong golem out of stone. It may help for a while, but you haven't enough energy to support it forever.", + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 1, + "max_level": 30, + "difficulty": 6, + "spell_class": "EARTHSHAPER", + "effect": "summon", + "effect_str": "mon_eshaper_golem", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 750, + "final_energy_cost": 400, + "energy_increment": -12, + "base_casting_time": 360000, + "final_casting_time": 180000, + "casting_time_increment": -6000, + "min_aoe": 1, + "max_aoe": 1, + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "min_duration": 12000, + "max_duration": 360000, + "duration_increment": 12000 + }, + { + "id": "earthshaper_boulder", + "type": "SPELL", + "name": "Summon Boulder", + "description": "Pull the smooth rock underground, using your forces of earth shaping. You can use it as a table, or as a primitive anvil.", + "valid_targets": [ "ground" ], + "effect": "ter_transform", + "effect_str": "earthshaper_boulder", + "shape": "blast", + "flags": [ "SOMATIC", "NO_PROJECTILE" ], + "spell_class": "EARTHSHAPER", + "energy_source": "MANA", + "difficulty": 3, + "base_casting_time": 360000, + "final_casting_time": 120000, + "casting_time_increment": -24000, + "base_energy_cost": 500, + "max_level": 10, + "min_range": 1, + "max_range": 1 + }, + { + "id": "earthshaper_reveal_world_map", + "type": "SPELL", + "name": "Reading the Earthbones", + "description": "You extend your senses into the ground, becoming aware of every hill and valley within a large area. It will only work when in contact with the earth.", + "valid_targets": [ "self" ], + "flags": [ "NO_HANDS", "CONCENTRATE", "VERBAL" ], + "effect": "effect_on_condition", + "effect_str": "EOC_EARTHSHAPER_MAP", + "shape": "blast", + "max_level": 15, + "spell_class": "EARTHSHAPER", + "base_casting_time": 6000, + "energy_source": "MANA", + "base_energy_cost": 1000, + "difficulty": 8 + }, + { + "type": "effect_on_condition", + "id": "EOC_EARTHSHAPER_MAP", + "condition": { "compare_int": [ { "u_val": "pos_z" }, "<=", { "const": 0 } ] }, + "effect": [ { "u_cast_spell": { "id": "earthshaper_map_real" } } ], + "false_effect": [ { "u_message": "Without a direct connection to the living earth, the spell fails." } ] + }, + { + "id": "earthshaper_map_real", + "type": "SPELL", + "name": "Reading the Earthbones Real Spell", + "description": "This is the spell that actually fires when you cast Reading the Earthbones. It's a bug if you have it.", + "valid_targets": [ "none" ], + "message": "The secrets of the living earth are revealed to you.", + "flags": [ "NO_HANDS", "SILENT" ], + "effect": "map", + "shape": "blast", + "max_level": 1, + "min_aoe": { "math": [ "( 7 + (u_val('spell_level', 'spell: earthshaper_reveal_world_map') * 2.2) )" ] } + }, + { + "id": "earthshaper_danger_sense", + "type": "SPELL", + "name": "Tremorsense", + "description": "By sensing their movements upon the earth, you can detect nearby sources of danger. You must maintain a connection to the earth for the spell to function.", + "valid_targets": [ "self" ], + "spell_class": "EARTHSHAPER", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_EARTHSHAPER_DANGERSENSE", + "shape": "blast", + "energy_source": "MANA", + "difficulty": 3, + "max_level": 10, + "base_casting_time": 400, + "base_energy_cost": 350, + "min_duration": 30000, + "max_duration": 300000, + "duration_increment": 30000 + }, + { + "type": "effect_on_condition", + "id": "EOC_EARTHSHAPER_DANGERSENSE", + "condition": { "math": [ "u_val('pos_z')", "<=", "0" ] }, + "effect": [ + { + "u_add_effect": "effect_tremorsense", + "duration": { "math": [ "(u_val('spell_level', 'spell: earthshaper_danger_sense') * 30000)" ] } + } + ], + "false_effect": [ { "u_message": "Without a direct connection to the living earth, the spell fails.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_EARTHSHAPER_DANGERSENSE_CHECKER", + "recurrence": 1, + "condition": { "and": [ { "math": [ "u_val('pos_z')", ">=", "1" ] }, { "u_has_effect": "effect_tremorsense" } ] }, + "effect": [ + { "u_lose_effect": "effect_tremorsense" }, + { + "u_message": "As you break your connection to the living earth, your magical senses fade away.", + "type": "bad" + } + ] + }, + { + "id": "earthshaper_fortitude_of_stone", + "type": "SPELL", + "name": "Stones' Fortitude", + "description": "Draw on the eternal endurance of the stones, slowing your metabolism and staving off hunger and thirst. However, while the enchantment is in effect, you will not heal.", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL" ], + "valid_targets": [ "self" ], + "spell_class": "EARTHSHAPER", + "energy_source": "MANA", + "effect": "attack", + "effect_str": "earthshaper_fortitude_of_stone", + "shape": "blast", + "difficulty": 4, + "base_casting_time": 500, + "base_energy_cost": 650, + "max_level": 20, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 100000 + }, + { + "id": "earthshaper_turning_of_earth", + "type": "SPELL", + "name": "The Turning of the Earth", + "description": "Ask the earth spirits to prepare the earth for growth and planting.", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "LOUD" ], + "valid_targets": [ "ground" ], + "max_level": 12, + "spell_class": "EARTHSHAPER", + "energy_source": "MANA", + "shape": "line", + "difficulty": 2, + "effect": "ter_transform", + "effect_str": "earthshaper_turning_earth", + "base_casting_time": 1500, + "base_energy_cost": 800, + "final_energy_cost": 350, + "energy_increment": -37.5, + "min_range": 3, + "max_range": 20, + "range_increment": 1.2 + }, + { + "id": "earthshaper_granite_aegis", + "type": "SPELL", + "name": "Granite Aegis", + "description": "In an extremity of danger, summon a hollow shell of rock around yourself. It lasts only a few moments, but sometimes that's all you need. You must be standing on the living earth to invoke it.", + "flags": [ "SOMATIC", "VERBAL" ], + "valid_targets": [ "self" ], + "max_level": 10, + "spell_class": "EARTHSHAPER", + "energy_source": "MANA", + "shape": "blast", + "difficulty": 9, + "effect": "effect_on_condition", + "effect_str": "EOC_EARTHSHAPER_GRANITE_AEGIS", + "base_casting_time": 150, + "final_casting_time": 100, + "casting_time_increment": -5, + "base_energy_cost": 750 + }, + { + "type": "effect_on_condition", + "id": "EOC_EARTHSHAPER_GRANITE_AEGIS", + "condition": { + "and": [ + { + "or": [ + { "u_is_on_terrain": "t_rock_floor_no_roof" }, + { "u_is_on_terrain": "t_rock_floor" }, + { "u_is_on_terrain": "t_dirtfloor_no_roof" }, + { "u_is_on_terrain": "t_clay" }, + { "u_is_on_terrain": "t_claymound" }, + { "u_is_on_terrain": "t_claymound_underground" }, + { "u_is_on_terrain": "t_sandmound" }, + { "u_is_on_terrain": "t_dirtmoundfloor" }, + { "u_is_on_terrain": "t_dirt" }, + { "u_is_on_terrain": "t_dirt_underground" }, + { "u_is_on_terrain": "t_forestfloor" }, + { "u_is_on_terrain": "t_grass" }, + { "u_is_on_terrain": "t_grass_tall" }, + { "u_is_on_terrain": "t_grass_dead" }, + { "u_is_on_terrain": "t_grass_white" }, + { "u_is_on_terrain": "t_forestfloor" }, + { "u_is_on_terrain": "t_moss" }, + { "u_is_on_terrain": "t_soil" }, + { "u_is_on_terrain": "t_dirtmound" }, + { "u_is_on_terrain": "t_region_soil" }, + { "u_is_on_terrain": "t_pit_shallow" }, + { "u_is_on_terrain": "t_pit" }, + { "u_is_on_terrain": "t_puddle_underground" }, + { "u_is_on_terrain": "t_mud" }, + { "u_is_on_terrain": "t_mud_underground" }, + { "u_is_on_terrain": "t_concrete_y" }, + { "u_is_on_terrain": "t_concrete" }, + { "u_is_on_terrain": "t_thconc_y_olight" }, + { "u_is_on_terrain": "t_thconc_warning" }, + { "u_is_on_terrain": "t_thconc_y" }, + { "u_is_on_terrain": "t_thconc_r" }, + { "u_is_on_terrain": "t_thconc_floor" }, + { "u_is_on_terrain": "t_strconc_floor" }, + { "u_is_on_terrain": "t_strconc_floor_olight" }, + { "u_is_on_terrain": "t_strconc_floor_no_roof" }, + { "u_is_on_terrain": "t_railroad_rubble" } + ] + }, + { "math": [ "u_val('pos_z')", "<=", "0" ] } + ] + }, + "effect": [ + { + "u_location_variable": { "global_val": "earthshaper_granite_aegis_location" }, + "min_radius": 0, + "max_radius": 0, + "outdoor_only": false + }, + { + "u_transform_radius": 1, + "ter_furn_transform": "earthshaper_granite_aegis_to_stone", + "target_var": { "global_val": "earthshaper_granite_aegis_location" } + }, + { + "u_transform_radius": 0, + "ter_furn_transform": "earthshaper_granite_aegis_to_stone_safe", + "target_var": { "global_val": "earthshaper_granite_aegis_location" }, + "time_in_future": [ "0 seconds", "0 seconds" ] + }, + { + "u_transform_radius": 1, + "ter_furn_transform": "earthshaper_granite_aegis_from_stone", + "target_var": { "global_val": "earthshaper_granite_aegis_location" }, + "time_in_future": [ "5 seconds", "20 seconds" ] + } + ], + "false_effect": { "u_message": "Without a connection to the living earth or a flat surface of solid rock, the spell fails." } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/feral_wizards.json b/data/Mainline_mods/Mods/Magiclysm/Spells/feral_wizards.json new file mode 100644 index 000000000..cf7eac5ee --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/feral_wizards.json @@ -0,0 +1,201 @@ +[ + { + "id": "mirror_image_rad_mage", + "type": "SPELL", + "name": "Mirror Image Radiation Mage", + "description": "This spell summons duplicates of the radiation mage. It's a bug if you have it.", + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_mirror_image_rad_mage", + "shape": "blast", + "max_level": 2, + "min_damage": 3, + "max_damage": 5, + "damage_increment": 1, + "min_range": 4, + "max_range": 8, + "range_increment": 2, + "min_aoe": 3, + "max_aoe": 3, + "min_duration": 2000 + }, + { + "id": "feral_rad_mage_rad_spell", + "type": "SPELL", + "name": "Create Rads Radiation Mage", + "description": "This spell creates radiation gas around a target. It's a bug if you have it.", + "valid_targets": [ "hostile" ], + "effect": "emit", + "effect_str": "emit_rad_cloud", + "shape": "blast", + "max_level": 10, + "min_range": 5, + "max_range": 15, + "range_increment": 1 + }, + { + "id": "feral_rad_mage_summon_spell", + "type": "SPELL", + "name": "Summon Zombie ", + "description": "A spell for the feral rad mage to summon a zombie. It's a bug if you have this.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "WONDER", "NO_PROJECTILE" ], + "max_level": 1, + "min_damage": 1, + "max_damage": 1, + "min_range": 10, + "max_range": 10, + "message": "", + "shape": "blast", + "effect": "attack", + "extra_effects": [ + { "id": "feral_animist_summon_zombie" }, + { "id": "feral_animist_summon_zombie" }, + { "id": "feral_animist_summon_zombie" }, + { "id": "feral_animist_summon_zombie" }, + { "id": "feral_animist_summon_zombie" }, + { "id": "feral_animist_summon_tough_zombie" }, + { "id": "feral_animist_summon_tough_zombie" }, + { "id": "feral_animist_summon_tough_zombie" }, + { "id": "feral_animist_summon_tough_zombie" }, + { "id": "feral_animist_summon_tough_zombie" }, + { "id": "feral_animist_summon_tough_zombie" }, + { "id": "feral_animist_summon_tough_zombie" }, + { "id": "feral_animist_summon_zombie_brute" }, + { "id": "feral_animist_summon_zombie_brute" }, + { "id": "feral_animist_summon_zombie_brute" }, + { "id": "feral_animist_summon_zombie_brute" }, + { "id": "feral_animist_summon_zombie_brute" }, + { "id": "feral_animist_summon_zombie_brute" }, + { "id": "feral_animist_summon_zombie_brute" }, + { "id": "feral_animist_summon_zombie_brute" }, + { "id": "feral_animist_summon_zombie_brute" }, + { "id": "feral_animist_summon_zombie_hulk" } + ] + }, + { + "id": "feral_animist_summon_zombie", + "type": "SPELL", + "name": "Summon Zombie ", + "description": "A spell for the feral rad mage to summon a normal zombie. It's a bug if you have this.", + "valid_targets": [ "ground" ], + "flags": [ "HOSTILE_SUMMON", "LOUD", "NO_PROJECTILE" ], + "min_damage": 1, + "max_damage": 1, + "min_aoe": 3, + "max_aoe": 5, + "min_range": 10, + "max_range": 10, + "min_duration": 30000, + "max_duration": 30000, + "shape": "blast", + "effect": "summon", + "effect_str": "mon_zombie", + "sound_description": "a roar" + }, + { + "id": "feral_animist_summon_tough_zombie", + "type": "SPELL", + "name": "Summon Tough Zombie", + "description": "A spell for the feral rad mage to summon a tough zombie brute. It's a bug if you have this.", + "valid_targets": [ "ground" ], + "flags": [ "HOSTILE_SUMMON", "LOUD", "NO_PROJECTILE" ], + "min_damage": 1, + "max_damage": 1, + "min_aoe": 3, + "max_aoe": 5, + "min_range": 10, + "max_range": 10, + "min_duration": 30000, + "max_duration": 30000, + "shape": "blast", + "effect": "summon", + "effect_str": "mon_zombie_tough", + "sound_description": "a roar" + }, + { + "id": "feral_animist_summon_zombie_brute", + "type": "SPELL", + "name": "Summon Zombie Brute", + "description": "A spell for the feral rad mage to summon a zombie brute. It's a bug if you have this.", + "valid_targets": [ "ground" ], + "flags": [ "HOSTILE_SUMMON", "LOUD", "NO_PROJECTILE" ], + "min_damage": 1, + "max_damage": 1, + "min_aoe": 3, + "max_aoe": 5, + "min_range": 10, + "max_range": 10, + "min_duration": 30000, + "max_duration": 30000, + "shape": "blast", + "effect": "summon", + "effect_str": "mon_zombie_brute", + "sound_description": "a roar" + }, + { + "id": "feral_animist_summon_zombie_hulk", + "type": "SPELL", + "name": "Radiation Mage Summon Zombie", + "description": "A spell for the feral rad mage to summon a zombie hulk. They probably won't cast this--but good luck if they do.", + "valid_targets": [ "ground" ], + "flags": [ "HOSTILE_SUMMON", "LOUD", "NO_PROJECTILE" ], + "min_damage": 1, + "max_damage": 1, + "min_aoe": 3, + "max_aoe": 5, + "min_range": 10, + "max_range": 10, + "min_duration": 30000, + "max_duration": 30000, + "shape": "blast", + "effect": "summon", + "effect_str": "mon_zombie_hulk", + "sound_description": "a roar" + }, + { + "id": "feral_rad_mage_swap_spell", + "type": "SPELL", + "name": "Change Places with mirror image", + "description": "The spell for the feral radiation mage swapping places with a mirror image. It's a bug if you have it.", + "valid_targets": [ "ally" ], + "targeted_monster_ids": [ "mon_mirror_image_rad_mage" ], + "flags": [ "NO_LEGS", "LOUD", "SOMATIC", "SWAP_POS", "NO_PROJECTILE" ], + "effect": "attack", + "shape": "blast", + "max_level": 20, + "min_range": 5, + "max_range": 15, + "range_increment": 1.0 + }, + { + "id": "dispel_magic_monster", + "type": "SPELL", + "name": "Dispel Magic Monster", + "description": "Dispel magic for monsters so they'll only dispel their enemies", + "valid_targets": [ "hostile" ], + "effect": "attack", + "effect_str": "effect_dispel_magic", + "shape": "blast", + "min_duration": 200, + "max_duration": 200, + "min_range": 3, + "max_range": 20, + "range_increment": 1.2 + }, + { + "id": "disjunction_monster", + "type": "SPELL", + "name": "Disjunction Monster", + "description": "Disjunction for monsters so they'll only dispel their enemies", + "valid_targets": [ "hostile" ], + "effect": "attack", + "effect_str": "effect_disjunction", + "shape": "blast", + "min_duration": 200, + "max_duration": 200, + "min_range": 3, + "max_range": 20, + "range_increment": 1.2 + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/item_only.json b/data/Mainline_mods/Mods/Magiclysm/Spells/item_only.json index a17737ce8..be05f7102 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/item_only.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/item_only.json @@ -71,7 +71,6 @@ { "id": "conj_mag_throw_blade_group", "type": "SPELL", - "//": "In future summoned knives should give temp buff to throwing skill", "name": "Conjure Random Magical Throwing Blade", "description": "Conjures a magical throwing knife, one of the spells specified in extra effects.", "valid_targets": [ "self" ], @@ -102,7 +101,6 @@ { "id": "conj_mag_throw_blade_1", "type": "SPELL", - "//": "In future summoned knives will give temp buff to throwing skill", "name": "Conjure Magical Throwing Blade I", "description": "Conjures 1 magical throwing knife.", "valid_targets": [ "self" ], @@ -110,7 +108,6 @@ "effect_str": "magical_throwing_knife", "shape": "blast", "message": "You activate your bag and a throwing knife appears, ready to throw!", - "spell_class": "NONE", "min_damage": 1, "max_damage": 1, "min_duration": 700, @@ -119,7 +116,6 @@ { "id": "conj_mag_throw_blade_fire", "type": "SPELL", - "//": "In future summoned knives will give temp buff to throwing skill", "name": "Conjure Magical Throwing Blade Fire", "description": "Conjures 1 magical throwing knife.", "valid_targets": [ "self" ], @@ -127,8 +123,6 @@ "effect_str": "magical_throwing_knife_fire", "shape": "blast", "message": "You activate your bag and a throwing knife wrapped in ethereal flames appears, ready to throw!", - "spell_class": "NONE", - "max_level": 1, "min_damage": 1, "max_damage": 1, "min_duration": 700, @@ -137,7 +131,6 @@ { "id": "conj_mag_throw_blade_cold", "type": "SPELL", - "//": "In future summoned knives will give temp buff to throwing skill", "name": "Conjure Magical Throwing Blade Cold", "description": "Conjures 1 magical throwing knife.", "valid_targets": [ "self" ], @@ -145,8 +138,6 @@ "effect_str": "magical_throwing_knife_cold", "shape": "blast", "message": "You activate your bag and a throwing knife emanating cold appears, ready to throw!", - "spell_class": "NONE", - "max_level": 1, "min_damage": 1, "max_damage": 1, "min_duration": 700, @@ -155,7 +146,6 @@ { "id": "conj_mag_throw_blade_cut", "type": "SPELL", - "//": "In future summoned knives will give temp buff to throwing skill", "name": "Conjure Magical Throwing Blade Cut", "description": "Conjures 1 magical throwing knife.", "valid_targets": [ "self" ], @@ -163,8 +153,6 @@ "effect_str": "magical_throwing_knife_cut", "shape": "blast", "message": "You activate your bag and a throwing knife with unnaturally sharp edges appears, ready to throw!", - "spell_class": "NONE", - "max_level": 1, "min_damage": 1, "max_damage": 1, "min_duration": 700, @@ -173,7 +161,6 @@ { "id": "conj_mag_throw_blade_biological", "type": "SPELL", - "//": "In future summoned knives will give temp buff to throwing skill", "name": "Conjure Magical Throwing Blade Biological", "description": "Conjures 1 magical throwing knife.", "valid_targets": [ "self" ], @@ -181,8 +168,6 @@ "effect_str": "magical_throwing_knife_biological", "shape": "blast", "message": "You activate your bag and a throwing knife covered in dark ooze appears, ready to throw!", - "spell_class": "NONE", - "max_level": 1, "min_damage": 1, "max_damage": 1, "min_duration": 700, @@ -191,7 +176,6 @@ { "id": "magical_throwing_knife_pure_special", "type": "SPELL", - "//": "In future summoned knives will give temp buff to throwing skill", "name": "Conjure Magical Throwing Blade Pure", "description": "Conjures 1 magical throwing knife.", "valid_targets": [ "self" ], @@ -199,8 +183,6 @@ "effect_str": "magical_throwing_knife_pure_special", "shape": "blast", "message": "You activate your bag and with a flash magical energies coalescence in your hand into a shape of knife. It seems vastly more powerful than other knives that appear from the bag!", - "spell_class": "NONE", - "max_level": 1, "min_damage": 1, "max_damage": 1, "min_duration": 900000, @@ -360,6 +342,331 @@ "min_damage": 2400, "max_damage": 2400 }, + { + "id": "flask_clairvoyance", + "type": "SPELL", + "name": "Omniscientia", + "description": "Connect the user to a few ethereal sensory organs, that allow the user to \"feel\" the territory nearby.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "IGNORE_WALLS", "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "shape": "blast", + "min_aoe": 30, + "max_aoe": 30, + "field_id": "fd_clairvoyant", + "min_field_intensity": 1, + "max_field_intensity": 1 + }, + { + "id": "flask_spear", + "type": "SPELL", + "name": "Lancea", + "description": "Release the long, spear-like line of liquid, that puncture things on the path.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "NO_LEGS", "SILENT", "RANDOM_DAMAGE" ], + "min_aoe": 5, + "max_aoe": 5, + "effect": "attack", + "shape": "cone", + "min_damage": 150, + "max_damage": 250, + "damage_type": "pure", + "min_range": 15, + "max_range": 15 + }, + { + "id": "flask_confusion", + "type": "SPELL", + "name": "Turbatio", + "description": "Mental sledgehammer strike.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "NO_PROJECTILE", "IGNORE_WALLS" ], + "effect": "attack", + "shape": "cone", + "effect_str": "stunned", + "min_range": 6, + "max_range": 6, + "min_aoe": 120, + "max_aoe": 120, + "min_duration": 1500, + "max_duration": 1500 + }, + { + "id": "flask_teleport_rand", + "type": "SPELL", + "name": "Effugium", + "description": "Teleport the caster to a random point nearby.", + "effect": "short_range_teleport", + "shape": "blast", + "valid_targets": [ "ground" ], + "flags": [ "IGNORE_WALLS", "NO_LEGS", "SILENT", "RANDOM_TARGET" ], + "min_aoe": 3, + "max_aoe": 3, + "min_range": 15, + "max_range": 15 + }, + { + "id": "flask_teleport", + "type": "SPELL", + "name": "Ecfugium", + "description": "Teleport the caster to a selected point nearby.", + "effect": "short_range_teleport", + "shape": "blast", + "valid_targets": [ "ground" ], + "flags": [ "IGNORE_WALLS", "NO_LEGS", "SILENT", "TARGET_TELEPORT" ], + "min_aoe": 3, + "max_aoe": 3, + "min_range": 10, + "max_range": 10 + }, + { + "id": "flask_shadow_field", + "type": "SPELL", + "name": "Umbra", + "description": "Projects a lot of darkness around the user's body.", + "effect": "attack", + "field_id": "fd_darkness", + "min_field_intensity": 1, + "max_field_intensity": 1, + "shape": "blast", + "valid_targets": [ "self", "ground" ], + "min_duration": 36000, + "max_duration": 36000, + "min_range": 10, + "max_range": 10, + "min_aoe": 3, + "max_aoe": 3, + "flags": [ "NO_LEGS", "SOMATIC", "CONCENTRATE" ] + }, + { + "id": "flask_fireball", + "type": "SPELL", + "name": "Flamma", + "description": "Magic molotov's equivalent.", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "self", "ally", "hostile", "ground" ], + "flags": [ "NO_LEGS", "SILENT", "RANDOM_DAMAGE", "IGNITE_FLAMMABLE" ], + "min_damage": 68, + "max_damage": 88, + "min_aoe": 7, + "max_aoe": 7, + "min_range": 15, + "max_range": 15, + "field_id": "fd_fire", + "field_chance": 5, + "min_field_intensity": 1, + "max_field_intensity": 2, + "field_intensity_variance": 1, + "damage_type": "heat" + }, + { + "id": "flask_invisibility", + "type": "SPELL", + "name": "Caecitas", + "description": "You are invisible now, and no one can see you. They still can hear or smell though.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "invisibility", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 36000, + "max_duration": 36000 + }, + { + "id": "flask_feather", + "type": "SPELL", + "name": "Pluma", + "description": "Allow you to decrease your inertia, which allows you to jump from the skyscraper's roof on your bare feet.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "feather_fall", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 36000, + "max_duration": 36000 + }, + { + "id": "flask_night_vision", + "type": "SPELL", + "name": "Visio", + "description": "Grants you the ability to see in the dark.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "dark_sight", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 36000, + "max_duration": 36000 + }, + { + "id": "flask_charm", + "type": "SPELL", + "name": "Venuste", + "description": "Make a creature ignore his own thoughts and make it more friendly to a user.", + "valid_targets": [ "hostile" ], + "flags": [ "NO_LEGS" ], + "effect": "charm_monster", + "shape": "blast", + "min_range": 9, + "max_range": 9, + "min_damage": 500, + "max_damage": 500, + "//": "now its 500 cause skeletal juggernaut has 480, but not sure isn't it too big?", + "min_duration": 15000, + "max_duration": 15000 + }, + { + "id": "flask_sludge_field", + "type": "SPELL", + "name": "Lutum", + "description": "Cover the ground with a thick sticky mass.", + "effect": "attack", + "field_id": "fd_sludge", + "min_field_intensity": 1, + "max_field_intensity": 3, + "field_intensity_variance": 2, + "field_chance": 1, + "shape": "blast", + "valid_targets": [ "self", "ally", "hostile", "ground" ], + "min_duration": 180000, + "max_duration": 180000, + "min_range": 10, + "max_range": 10, + "min_aoe": 6, + "max_aoe": 6, + "flags": [ "NO_LEGS", "SOMATIC", "CONCENTRATE" ] + }, + { + "id": "flask_speed", + "type": "SPELL", + "name": "Velocitas", + "description": "Makes you faster and allows you to be in this state for a while.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "flask_speed_eff", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 360000, + "max_duration": 360000 + }, + { + "id": "flask_healing", + "type": "SPELL", + "name": "Sanatio", + "description": "Improve your organism's ability to heal himself.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "flask_healing_eff", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 8640000, + "max_duration": 8640000 + }, + { + "id": "flask_stamina", + "type": "SPELL", + "name": "Constantia", + "description": "You can't get tired.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "flask_stamina_eff", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 1080000, + "max_duration": 1080000 + }, + { + "id": "flask_rebreather", + "type": "SPELL", + "name": "Spiritus", + "description": "Allow you to breathe underwater.", + "valid_targets": [ "self" ], + "effect": "spawn_item", + "effect_str": "flask_ethereal_rebreather", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 360000, + "max_duration": 360000 + }, + { + "id": "flask_excitement", + "type": "SPELL", + "name": "Motus", + "description": "Improve your reaction abilities, which makes you a better fighter.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "flask_excitement", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 360000, + "max_duration": 360000 + }, + { + "id": "flask_resistance", + "type": "SPELL", + "name": "Resistentia", + "description": "A thin layer of energy covers your body, and allows you to take more physical damage than before.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "flask_resistance", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 1080000, + "max_duration": 1080000 + }, + { + "id": "flask_illumination", + "type": "SPELL", + "name": "Illuminatio", + "description": "Emit a bright light from your body.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "flask_illumination", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 4320000, + "max_duration": 4320000 + }, + { + "id": "flask_mana_regen", + "type": "SPELL", + "name": "Recuperatio", + "description": "Increase the amount of ley-lines your body can process at once, making you restore your mana pool faster.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "flask_mana_regen", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 4320000, + "max_duration": 4320000 + }, + { + "id": "flask_max_mana", + "type": "SPELL", + "name": "Augere", + "description": " Your own ability to hold the energy is moved apart.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "flask_max_mana", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 4320000, + "max_duration": 4320000 + }, + { + "id": "flask_regeneration", + "type": "SPELL", + "name": "Renovamen", + "description": "Slowly regenerate your damaged body.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "flask_regeneration", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT" ], + "min_duration": 60000, + "max_duration": 60000 + }, { "id": "flask_regeneration_effect", "type": "SPELL", @@ -368,9 +675,125 @@ "valid_targets": [ "self" ], "min_damage": -1, "max_damage": -1, - "message": "", "effect": "attack", "shape": "blast", - "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] + "flags": [ "SILENT" ] + }, + { + "id": "flask_mood", + "type": "SPELL", + "name": "Iocus", + "description": "Makes you fun.", + "effect": "morale", + "effect_str": "morale_iocus", + "shape": "blast", + "valid_targets": [ "self" ], + "flags": [ "NO_LEGS", "SILENT", "RANDOM_DAMAGE", "RANDOM_DURATION" ], + "min_damage": 50, + "max_damage": 80, + "min_duration": 8640000, + "max_duration": 25920000 + }, + { + "id": "flask_toxin", + "type": "SPELL", + "name": "Toxicum", + "description": "Poison everybody on the range.", + "valid_targets": [ "self", "ally", "hostile", "ground" ], + "flags": [ "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "shape": "blast", + "min_dot": 1, + "max_dot": 1, + "min_aoe": 8, + "max_aoe": 8, + "field_id": "fd_toxic_gas", + "field_chance": 1, + "min_field_intensity": 1, + "max_field_intensity": 1, + "damage_type": "biological", + "min_duration": 2500, + "max_duration": 7500, + "min_range": 15, + "max_range": 15 + }, + { + "id": "flask_venom", + "type": "SPELL", + "name": "Venenum", + "description": "Poison the picked enemy.", + "min_dot": 5, + "max_dot": 5, + "effect": "attack", + "shape": "blast", + "valid_targets": [ "hostile" ], + "flags": [ "NO_LEGS", "SILENT" ], + "min_range": 15, + "max_range": 15, + "min_duration": 90000, + "max_duration": 90000, + "damage_type": "biological" + }, + { + "id": "alchemist_mine_pull", + "type": "SPELL", + "name": "Mana explosion", + "description": "Pull all creatures nearby, except the Alchemist.", + "valid_targets": [ "ally", "hostile", "ground", "item", "field" ], + "effect": "area_pull", + "shape": "blast", + "max_level": 35, + "min_damage": 30, + "max_damage": 30, + "min_aoe": 11, + "max_aoe": 11, + "extra_effects": [ { "id": "alchemist_mine_explosion" } ], + "flags": [ "LOUD" ], + "sound_description": "whoosh" + }, + { + "id": "alchemist_mine_explosion", + "type": "SPELL", + "name": "Mana explosion damage", + "description": "Deal some damage to creatures, except the Alchemist.", + "valid_targets": [ "ally", "hostile", "ground" ], + "effect": "attack", + "shape": "blast", + "min_damage": 110, + "max_damage": 220, + "damage_type": "pure", + "min_aoe": 4, + "max_aoe": 4, + "flags": [ "LOUD", "RANDOM_DAMAGE", "NO_EXPLOSION_SFX" ], + "message": "" + }, + { + "id": "bramble_spear_slow", + "type": "SPELL", + "name": "Bramble spear slow", + "description": "Sticky sap coats your enemies.", + "valid_targets": [ "hostile" ], + "flags": [ "RANDOM_DAMAGE" ], + "shape": "blast", + "effect": "mod_moves", + "min_damage": -25, + "max_damage": -75, + "min_range": 2, + "max_range": 2 + }, + { + "id": "druid_thorn_skin_attacked", + "type": "SPELL", + "name": "Thorn skin aura", + "description": "Do a small amount of damage to a monster that attacked you.", + "valid_targets": [ "hostile" ], + "flags": [ "RANDOM_DAMAGE" ], + "shape": "blast", + "effect": "attack", + "damage_type": "stab", + "min_damage": 2, + "max_damage": 6, + "min_range": 1, + "max_range": 1 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/kelvinist.json b/data/Mainline_mods/Mods/Magiclysm/Spells/kelvinist.json index b8411b8fb..7794607ce 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/kelvinist.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/kelvinist.json @@ -157,7 +157,7 @@ "effect": "attack", "shape": "cone", "valid_targets": [ "ally", "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL", "IGNITE_FLAMMABLE" ], + "flags": [ "SOMATIC", "VERBAL", "IGNITE_FLAMMABLE", "NO_HANDS" ], "max_level": 20, "min_damage": 8, "max_damage": 65, @@ -185,7 +185,7 @@ "shape": "cone", "affected_body_parts": [ "torso" ], "valid_targets": [ "ally", "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL" ], + "flags": [ "SOMATIC", "VERBAL", "NO_HANDS" ], "max_level": 20, "min_damage": 8, "max_damage": 65, @@ -253,7 +253,7 @@ { "id": "glide_ice_plus", "type": "SPELL", - "name": "Glide on Ice", + "name": "Enhanced Glide on Ice", "description": "Encases your feet in a magical coating of ice, allowing you to glide along smooth surfaces faster.", "valid_targets": [ "none" ], "flags": [ "VERBAL", "NO_HANDS", "NO_LEGS" ], @@ -357,7 +357,7 @@ "id": "frost_armor", "type": "SPELL", "name": "Frost Armor", - "description": "Covers you in a thin layer of magical ice to protect you from harm.", + "description": "Covers you in a thin layer of magical ice to attack the enemies nearby.", "valid_targets": [ "self" ], "flags": [ "NO_LEGS", "CONCENTRATE", "VERBAL", "SOMATIC" ], "effect": "spawn_item", @@ -379,7 +379,7 @@ "id": "frost_armor_plus", "type": "SPELL", "name": "Enhanced Frost Armor", - "description": "Covers you in a thin layer of magical ice to protect you from harm.", + "description": "Covers you in a thin layer of magical ice to attack the enemies nearby.", "valid_targets": [ "self" ], "flags": [ "NO_LEGS", "VERBAL", "SOMATIC" ], "effect": "spawn_item", @@ -506,45 +506,73 @@ "difficulty": 5, "damage_type": "heat" }, - { - "id": "freezing_touch_slow_effect", - "type": "SPELL", - "name": "Freezing Touch", - "description": "This is a sub-spell of Freezing touch.", - "shape": "blast", - "effect": "attack", - "effect_str": "slow_freeze_effect", - "valid_targets": [ "hostile" ], - "flags": [ "SILENT" ], - "min_duration": 1000, - "max_duration": 1000, - "min_range": 1, - "max_range": 1 - }, { "id": "freezing_touch", "type": "SPELL", "name": "Freezing Touch", "description": "Your hands freeze anything they touch at temperatures so cold it slows down your foes.", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "NO_PROJECTILE" ], - "components": "spell_components_freezing_touch", + "flags": [ "NO_PROJECTILE", "SILENT", "NO_HANDS", "NO_HANDS" ], "effect": "attack", - "effect_str": "cold", + "effect_str": "slow_freeze_effect", "shape": "blast", - "affected_body_parts": [ "torso" ], "damage_type": "cold", "min_damage": 38, - "damage_increment": 5.0, + "damage_increment": 5, "max_damage": 128, "min_range": 1, "max_range": 1, - "base_energy_cost": 85, + "base_energy_cost": 175, + "final_energy_cost": 75, + "energy_increment": -5, "spell_class": "KELVINIST", + "min_duration": 1000, + "max_duration": 1000, "difficulty": 7, - "max_level": 18, - "base_casting_time": 100, + "max_level": 20, + "base_casting_time": 160, + "final_casting_time": 40, + "casting_time_increment": -6, + "energy_source": "MANA" + }, + { + "id": "kelvinist_anti_cold", + "type": "SPELL", + "name": "Cloak of Warmth", + "description": "Heat the nearby air, keeping you warm and providing some protection against ice and cold.", + "valid_targets": [ "self" ], + "spell_class": "KELVINIST", + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "attack", + "effect_str": "effect_kelvinist_anti_cold", + "shape": "blast", + "difficulty": 4, + "max_level": 20, + "min_duration": 180000, + "max_duration": 2160000, + "duration_increment": 99000, + "energy_source": "MANA", + "base_energy_cost": 450, + "base_casting_time": 1500 + }, + { + "id": "kelvinist_anti_heat", + "type": "SPELL", + "name": "Cloak of Chill", + "description": "Cool the nearby air, keeping you cool and providing some protection against heat and flame.", + "valid_targets": [ "self" ], + "spell_class": "KELVINIST", + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "attack", + "effect_str": "effect_kelvinist_anti_heat", + "shape": "blast", + "difficulty": 4, + "max_level": 20, + "min_duration": 180000, + "max_duration": 2160000, + "duration_increment": 99000, "energy_source": "MANA", - "extra_effects": [ { "id": "freezing_touch_slow_effect" } ] + "base_energy_cost": 450, + "base_casting_time": 1500 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/lizardfolk_shaman.json b/data/Mainline_mods/Mods/Magiclysm/Spells/lizardfolk_shaman.json index 0bd020a3f..a648464f7 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/lizardfolk_shaman.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/lizardfolk_shaman.json @@ -3,14 +3,15 @@ "type": "SPELL", "id": "spell_summon_crocodile", "name": "Summon Crocodile", - "description": "Summons a permanent crocodile.", - "flags": [ "HOSTILE_SUMMON", "PERMANENT", "NO_PROJECTILE" ], + "description": "Summons a crocodile.", + "flags": [ "HOSTILE_SUMMON", "NO_PROJECTILE" ], "valid_targets": [ "ground" ], "base_casting_time": 200, "min_damage": 1, "max_damage": 1, "min_aoe": 2, "max_aoe": 2, + "min_duration": 40000, "message": "The shaman summons a crocodile!", "shape": "blast", "effect": "summon", @@ -28,6 +29,8 @@ "flags": [ "WONDER", "NO_PROJECTILE" ], "min_damage": 1, "max_damage": 1, + "min_range": 10, + "max_range": 10, "message": "", "extra_effects": [ { "id": "druid_veggrasp" }, diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/magus.json b/data/Mainline_mods/Mods/Magiclysm/Spells/magus.json index d3f49b6d8..70f05bc94 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/magus.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/magus.json @@ -183,9 +183,11 @@ "shape": "blast", "spell_class": "MAGUS", "energy_source": "MANA", - "difficulty": 4, - "base_casting_time": 200, - "base_energy_cost": 300, + "difficulty": 9, + "base_casting_time": 400, + "casting_time_increment": -10, + "final_casting_time": 200, + "base_energy_cost": 450, "max_level": 20, "min_duration": 600, "max_duration": 12000, @@ -292,14 +294,16 @@ "valid_targets": [ "self" ], "min_duration": 6000, "max_duration": 360000, - "duration_increment": 11800, - "max_level": 30, + "duration_increment": 17700, + "max_level": 20, "spell_class": "MAGUS", "energy_source": "MANA", - "base_energy_cost": 500, - "base_casting_time": 1000, + "base_energy_cost": 400, + "energy_increment": -5.0, + "final_energy_cost": 300, + "base_casting_time": 250, "difficulty": 5, - "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "CONCENTRATE", "NO_PROJECTILE" ], + "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], "shape": "blast", "effect": "attack", "effect_str": "cats_grace" @@ -312,14 +316,16 @@ "valid_targets": [ "self" ], "min_duration": 6000, "max_duration": 360000, - "duration_increment": 11800, - "max_level": 30, + "duration_increment": 17700, + "max_level": 20, "spell_class": "MAGUS", "energy_source": "MANA", - "base_energy_cost": 500, - "base_casting_time": 1000, + "base_energy_cost": 400, + "energy_increment": -5.0, + "final_energy_cost": 300, + "base_casting_time": 250, "difficulty": 5, - "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "CONCENTRATE", "NO_PROJECTILE" ], + "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], "shape": "blast", "effect": "attack", "effect_str": "eagles_sight" @@ -332,14 +338,16 @@ "valid_targets": [ "self" ], "min_duration": 6000, "max_duration": 360000, - "duration_increment": 11800, - "max_level": 30, + "duration_increment": 17700, + "max_level": 20, "spell_class": "MAGUS", "energy_source": "MANA", - "base_energy_cost": 500, - "base_casting_time": 1000, + "base_energy_cost": 400, + "energy_increment": -5.0, + "final_energy_cost": 300, + "base_casting_time": 250, "difficulty": 5, - "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "CONCENTRATE", "NO_PROJECTILE" ], + "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], "shape": "blast", "effect": "attack", "effect_str": "ogres_strength" @@ -352,14 +360,16 @@ "valid_targets": [ "self" ], "min_duration": 6000, "max_duration": 360000, - "duration_increment": 11800, - "max_level": 30, + "duration_increment": 17700, + "max_level": 20, "spell_class": "MAGUS", "energy_source": "MANA", - "base_energy_cost": 500, - "base_casting_time": 1000, + "base_energy_cost": 400, + "energy_increment": -5.0, + "final_energy_cost": 300, + "base_casting_time": 250, "difficulty": 5, - "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "CONCENTRATE", "NO_PROJECTILE" ], + "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], "shape": "blast", "effect": "attack", "effect_str": "foxs_cunning" @@ -462,5 +472,100 @@ "base_energy_cost": 400, "energy_source": "MANA", "difficulty": 8 + }, + { + "id": "magus_slowfall", + "type": "SPELL", + "name": "Slowfall", + "description": "Reduce the velocity of your falls by a great amount, or to zero if at high mastery.", + "valid_targets": [ "self" ], + "spell_class": "MAGUS", + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "attack", + "effect_str": "effect_magus_slowfall", + "shape": "blast", + "difficulty": 2, + "max_level": 10, + "min_duration": 6000, + "max_duration": 30000, + "duration_increment": 2400, + "energy_source": "MANA", + "base_energy_cost": 150, + "base_casting_time": 150 + }, + { + "id": "magus_spiderclimb", + "type": "SPELL", + "name": "Spider Climb", + "description": "Ascend even the most sheer wall with ease as you cling to surfaces using the power of magic.", + "valid_targets": [ "self" ], + "spell_class": "MAGUS", + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "attack", + "effect_str": "effect_magus_spiderclimb", + "shape": "blast", + "difficulty": 3, + "max_level": 15, + "min_duration": 30000, + "max_duration": 120000, + "duration_increment": 6000, + "energy_source": "MANA", + "base_energy_cost": 250, + "base_casting_time": 250 + }, + { + "id": "magus_teleport_mark", + "type": "SPELL", + "name": "Magus's Mark", + "description": "Mark a particular patch of ground to allow you to return to it later.", + "valid_targets": [ "self" ], + "spell_class": "MAGUS", + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "effect_on_condition", + "effect_str": "EOC_MAGUS_MARK", + "components": "spell_components_magus_mark", + "shape": "blast", + "difficulty": 5, + "max_level": 10, + "energy_source": "MANA", + "base_energy_cost": 2000, + "base_casting_time": 90000 + }, + { + "type": "effect_on_condition", + "id": "EOC_MAGUS_MARK", + "effect": [ + { "u_location_variable": { "u_val": "magus_teleport_mark" }, "min_radius": 0, "max_radius": 0 }, + { + "u_message": "As you make the gestures and recite the incantation, a brief glow fills your surroundings.", + "type": "good" + } + ] + }, + { + "id": "magus_word_of_recall", + "type": "SPELL", + "name": "Word of Recall", + "description": "Immediately return to the place you marked with Magus's Mark, no matter how far away it is.", + "valid_targets": [ "self" ], + "spell_class": "MAGUS", + "flags": [ "VERBAL", "SOMATIC" ], + "effect": "effect_on_condition", + "effect_str": "EOC_MAGUS_RECALL", + "components": "spell_components_word_of_recall", + "shape": "blast", + "difficulty": 8, + "max_level": 15, + "energy_source": "MANA", + "base_energy_cost": 400, + "base_casting_time": 100 + }, + { + "id": "EOC_MAGUS_RECALL", + "type": "effect_on_condition", + "effect": [ + { "u_message": "You shout out the word of recall and suddenly you are somewhere else.", "type": "good" }, + { "u_teleport": { "u_val": "magus_teleport_mark" } } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/monsterspells.json b/data/Mainline_mods/Mods/Magiclysm/Spells/monsterspells.json index 35836da7f..81b4ad704 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/monsterspells.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/monsterspells.json @@ -222,5 +222,39 @@ "min_aoe": 90, "max_aoe": 270, "damage_type": "bash" + }, + { + "type": "SPELL", + "id": "spell_feral_wizard_base", + "name": "Wild Magic Monster Sorcery", + "description": "Causes one of the spells to be cast, used for the feral wizard.", + "valid_targets": [ "hostile" ], + "effect": "none", + "shape": "blast", + "base_casting_time": 100, + "flags": [ "WONDER", "NO_PROJECTILE" ], + "min_damage": 1, + "max_damage": 1, + "min_range": 10, + "max_range": 10, + "message": "", + "extra_effects": [ { "id": "blinding_flash" }, { "id": "ethereal_grasp" }, { "id": "point_flare" }, { "id": "dispel_magic_monster" } ] + }, + { + "id": "monster_downed_stomp", + "type": "SPELL", + "name": "Monster Downed Stomp", + "description": "The monster stomps on the ground and knocks anyone nearby off their feet.", + "valid_targets": [ "hostile", "ground" ], + "effect": "attack", + "effect_str": "downed", + "shape": "blast", + "max_level": 5, + "min_aoe": 1, + "max_aoe": 6, + "aoe_increment": 1, + "min_duration": 100, + "max_duration": 300, + "duration_increment": 40 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/stormshaper.json b/data/Mainline_mods/Mods/Magiclysm/Spells/stormshaper.json index a48d4396f..3a2d33357 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/stormshaper.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/stormshaper.json @@ -7,7 +7,7 @@ "effect": "attack", "shape": "cone", "valid_targets": [ "ally", "hostile", "ground" ], - "flags": [ "LOUD", "SOMATIC" ], + "flags": [ "LOUD", "SOMATIC", "NO_HANDS" ], "max_level": 20, "min_damage": 8, "max_damage": 65, @@ -75,11 +75,11 @@ "id": "lightning_bolt", "type": "SPELL", "name": "Lightning Bolt", - "description": "The goto spell for many Stormshapers, this iconic spell does just what you expect: you shoot lightning from your fingertips. However, this lightning is more directed than most lightning, and travels in a line through most non-solid targets.", + "description": "The go-to spell for many Stormshapers, this iconic spell does just what you expect: you shoot lightning from your fingertips. However, this lightning is more directed than most lightning, and travels in a line through most non-solid targets.", "effect": "attack", "shape": "line", "valid_targets": [ "ally", "hostile", "ground" ], - "flags": [ "LOUD", "SOMATIC", "NO_LEGS" ], + "flags": [ "LOUD", "SOMATIC", "NO_LEGS", "NO_HANDS" ], "max_level": 35, "min_damage": 8, "max_damage": 200, @@ -107,20 +107,20 @@ "id": "windstrike", "type": "SPELL", "name": "Windstrike", - "description": "A powerful blast of wind slams into anything in front of your outstretched hand.", + "description": "A powerful blast of wind slams into anything in front of your body.", "effect": "attack", "effect_str": "downed", "shape": "cone", "affected_body_parts": [ "leg_l", "leg_r" ], "valid_targets": [ "ally", "hostile", "ground" ], - "flags": [ "SOMATIC", "NO_LEGS" ], - "max_level": 20, + "flags": [ "SOMATIC", "NO_LEGS", "NO_HANDS" ], + "max_level": 15, "min_damage": 24, "max_damage": 68, - "damage_increment": 2.2, + "damage_increment": 3, "min_aoe": 30, "max_aoe": 60, - "aoe_increment": 1.4, + "aoe_increment": 2, "min_range": 6, "max_range": 20, "range_increment": 1, @@ -133,6 +133,7 @@ "energy_source": "MANA", "difficulty": 3, "sound_description": "a whoosh", + "learn_spells": { "storm_shipwrecker": 15 }, "damage_type": "bash" }, { @@ -140,11 +141,15 @@ "type": "SPELL", "name": "Windrunning", "description": "A magical wind pushes you forward as you move, easing your movements and increasing speed.", - "base_casting_time": 125, + "base_casting_time": 100, + "casting_time_increment": -5, + "final_casting_time": 50, "base_energy_cost": 100, + "energy_increment": -5, + "final_energy_cost": 50, "energy_source": "MANA", "spell_class": "STORMSHAPER", - "difficulty": 2, + "difficulty": 1, "effect": "attack", "effect_str": "enchant_windrun", "shape": "blast", @@ -152,11 +157,11 @@ "valid_targets": [ "ally", "self" ], "flags": [ "CONCENTRATE", "SILENT", "VERBAL", "NO_HANDS", "NO_PROJECTILE" ], "max_level": 10, - "min_duration": 2000, - "max_duration": 10000, - "duration_increment": 1000, + "min_duration": 6000, + "max_duration": 30000, + "duration_increment": 2400, "min_range": 1, - "max_range": 20, + "max_range": 10, "range_increment": 1 }, { @@ -180,7 +185,7 @@ "min_duration": 24000, "max_duration": 360000, "duration_increment": 24000, - "learn_spells": { "summon_zougar_hunter": 15 } + "learn_spells": { "storm_hammer_plus": 15 } }, { "id": "storm_hammer_plus", @@ -343,7 +348,7 @@ "effect": "attack", "effect_str": "downed", "shape": "line", - "flags": [ "SOMATIC", "NO_LEGS" ], + "flags": [ "SOMATIC", "NO_LEGS", "NO_HANDS" ], "energy_source": "MANA", "spell_class": "STORMSHAPER", "difficulty": 2, @@ -388,8 +393,8 @@ "name": "Repelling Arc", "description": "Manifests an aura of crackling electricity around you to strike attackers with baleful lightning.", "valid_targets": [ "self" ], - "effect": "spawn_item", - "effect_str": "thorns_electric", + "effect": "attack", + "effect_str": "effect_thorns_electric", "shape": "blast", "flags": [ "SOMATIC", "NO_LEGS", "CONCENTRATE" ], "energy_source": "MANA", @@ -398,8 +403,6 @@ "base_casting_time": 250, "base_energy_cost": 550, "max_level": 15, - "min_range": 1, - "max_range": 1, "min_duration": 24000, "max_duration": 360000, "duration_increment": 24000, @@ -408,11 +411,11 @@ { "id": "stormshaper_repelling_arc_plus", "type": "SPELL", - "name": "Repelling Arc", + "name": "Enhanced Repelling Arc", "description": "Manifests an aura of crackling electricity around you to strike attackers with baleful lightning. Now you know this spell like the back of your hand, and start to design your own version.", "valid_targets": [ "self" ], - "effect": "spawn_item", - "effect_str": "thorns_electric", + "effect": "attack", + "effect_str": "effect_thorns_electric", "shape": "blast", "flags": [ "SOMATIC", "NO_LEGS" ], "energy_source": "MANA", @@ -425,10 +428,740 @@ "final_energy_cost": 100, "energy_increment": -18, "max_level": 25, - "min_range": 1, - "max_range": 1, "min_duration": 360000, "max_duration": 2160000, "duration_increment": 72000 + }, + { + "id": "stormfist", + "type": "SPELL", + "name": "Stormfist", + "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat.", + "flags": [ "LOUD", "VERBAL", "NO_LEGS" ], + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "spell_class": "STORMSHAPER", + "effect": "spawn_item", + "effect_str": "stormglove", + "shape": "blast", + "energy_source": "MANA", + "difficulty": 5, + "max_level": 15, + "base_casting_time": 500, + "base_energy_cost": 400, + "min_duration": 24000, + "max_duration": 360000, + "duration_increment": 24000, + "learn_spells": { "stormfist_plus": 15 } + }, + { + "id": "stormfist_plus", + "type": "SPELL", + "name": "Enhanced Stormfist", + "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat. Now you know this spell like the back of your hand, and start to design your own version.", + "valid_targets": [ "self" ], + "flags": [ "LOUD", "NO_LEGS" ], + "min_damage": 1, + "max_damage": 1, + "spell_class": "STORMSHAPER", + "effect": "spawn_item", + "effect_str": "stormglove", + "shape": "blast", + "energy_source": "MANA", + "difficulty": 7, + "max_level": 25, + "base_casting_time": 500, + "final_casting_time": 200, + "casting_time_increment": -12, + "base_energy_cost": 400, + "final_energy_cost": 150, + "energy_increment": -10, + "min_duration": 360000, + "max_duration": 2160000, + "duration_increment": 72000 + }, + { + "id": "stormshaper_stormglove_zap", + "type": "SPELL", + "name": "Stormglove Zap", + "description": "This casts when you hit people with the stormglove.", + "valid_targets": [ "hostile" ], + "effect": "attack", + "shape": "blast", + "damage_type": "electric", + "min_damage": 1, + "max_damage": { + "math": [ "(5 + (1 * u_val('spell_level', 'spell: stormfist')) + (1 * u_val('spell_level', 'spell: stormfist_plus')))" ] + }, + "flags": [ "RANDOM_DAMAGE", "NO_PROJECTILE" ], + "sound_type": "combat", + "sound_description": "arcing electricity!", + "min_range": 1, + "max_range": 1 + }, + { + "id": "create_electric_lighter", + "type": "SPELL", + "name": "Fire Spark", + "description": "Summons a small electric spark, that doesn't harm anything. You can use it to ignite something flammable.", + "valid_targets": [ "none" ], + "flags": [ "NO_LEGS" ], + "effect": "spawn_item", + "effect_str": "electric_lighter", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": 6000, + "max_duration": 60000, + "duration_increment": 5400, + "max_level": 10, + "spell_class": "STORMSHAPER", + "energy_source": "MANA", + "base_casting_time": 250, + "final_casting_time": 50, + "casting_time_increment": -20.0, + "base_energy_cost": 65, + "difficulty": 0 + }, + { + "id": "storm_shipwrecker", + "type": "SPELL", + "name": { "str": "Shipwrecker" }, + "description": "The spell moves out of your mouth, creating a giant shockwave that shatters everything in its path.", + "//": "fus ro dah!", + "valid_targets": [ "ally", "hostile", "ground" ], + "effect": "attack", + "effect_str": "downed", + "shape": "cone", + "base_casting_time": 300, + "final_casting_time": 50, + "casting_time_increment": -10, + "base_energy_cost": 450, + "final_energy_cost": 150, + "energy_increment": -12, + "energy_source": "MANA", + "spell_class": "STORMSHAPER", + "difficulty": 6, + "max_level": 25, + "min_damage": 30, + "max_damage": 150, + "damage_increment": 5, + "damage_type": "bash", + "min_range": 2, + "max_range": 9, + "range_increment": 0.3, + "flags": [ "VERBAL", "LOUD", "NO_HANDS", "RANDOM_DURATION" ], + "min_duration": 200, + "max_duration": 900, + "min_aoe": 30, + "max_aoe": 150, + "aoe_increment": 5, + "extra_effects": [ { "id": "shipwrecker_push" }, { "id": "shipwrecker_push" } ] + }, + { + "id": "shipwrecker_push", + "type": "SPELL", + "name": "Shipwrecker Push", + "description": "Push monsters around the player. You can see it only in debug mode.", + "effect": "area_push", + "shape": "cone", + "valid_targets": [ "ally", "hostile", "item", "ground" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "max_level": 25, + "min_aoe": 60, + "max_aoe": 180, + "aoe_increment": 5, + "min_range": 5, + "max_range": 12, + "range_increment": 0.3 + }, + { + "id": "explosive_decompression", + "type": "SPELL", + "name": "Explosive Decompression", + "description": "Create a high-pressure zone originating from the selected point. Shortly after, a massive pressure wave will crush everything inside, inflicting barotrarumatic injuries on everyone affected.", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "self", "ally", "hostile", "ground" ], + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ], + "max_level": 15, + "min_damage": 24, + "max_damage": 84, + "damage_increment": 4, + "min_aoe": 0, + "max_aoe": 6, + "aoe_increment": 0.4, + "min_range": 6, + "max_range": 21, + "range_increment": 1, + "spell_class": "STORMSHAPER", + "base_casting_time": 250, + "final_casting_time": 50, + "casting_time_increment": -14, + "base_energy_cost": 400, + "final_energy_cost": 125, + "energy_increment": -20, + "energy_source": "MANA", + "difficulty": 4, + "damage_type": "bash", + "learn_spells": { "vacuum_decompression": 15 } + }, + { + "id": "vacuum_decompression", + "type": "SPELL", + "name": "Vacuum Decompression", + "description": "Create a high-pressure zone originating from the selected point. Shortly after, a massive pressure wave will crush everything inside, inflicting barotrarumatic injuries on everyone affected. The pressure differential will also pull unprepared creatures inside the zone before collapsing.", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "self", "ally", "hostile", "ground" ], + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "EXTRA_EFFECTS_FIRST" ], + "max_level": 25, + "min_damage": 38, + "max_damage": 158, + "damage_increment": 5, + "min_aoe": 2, + "max_aoe": 9, + "aoe_increment": 0.3, + "min_range": 5, + "max_range": 30, + "range_increment": 1, + "spell_class": "STORMSHAPER", + "base_casting_time": 450, + "final_casting_time": 100, + "casting_time_increment": -14, + "base_energy_cost": 400, + "final_energy_cost": 250, + "energy_increment": -6, + "energy_source": "MANA", + "difficulty": 7, + "damage_type": "bash", + "extra_effects": [ + { "id": "vacuum_decompression_pull" }, + { "id": "vacuum_decompression_pull" }, + { "id": "vacuum_decompression_pull" }, + { "id": "vacuum_decompression_pull" }, + { "id": "vacuum_decompression_pull" }, + { "id": "vacuum_decompression_pull" }, + { "id": "vacuum_decompression_pull" } + ] + }, + { + "id": "vacuum_decompression_pull", + "type": "SPELL", + "name": "Vacuum Decompression Pull", + "description": "Pull monsters around the target. You can see it only in debug mode.", + "effect": "area_pull", + "shape": "blast", + "valid_targets": [ "hostile", "item", "ground" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "max_level": 25, + "min_aoe": 5, + "max_aoe": 16, + "aoe_increment": 0.5 + }, + { + "id": "air_bubble", + "type": "SPELL", + "name": "Air Bubble", + "description": "Cover your head with an air bubble, allowing you to breathe underwater or prevent breathing of toxic gases.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "LOUD", "VERBAL", "NO_LEGS" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "flask_ethereal_rebreather", + "shape": "blast", + "energy_source": "MANA", + "spell_class": "STORMSHAPER", + "difficulty": 3, + "max_level": 10, + "base_casting_time": 1000, + "base_energy_cost": 200, + "min_duration": 18000, + "max_duration": 180000, + "duration_increment": 18000 + }, + { + "id": "storm_superconductor", + "type": "SPELL", + "name": { "str": "Superconductor" }, + "description": "Create arcs of devastating electric charge in an area around you, roasting everything within.", + "valid_targets": [ "ally", "hostile", "ground" ], + "effect": "attack", + "effect_str": "zapped", + "shape": "blast", + "base_casting_time": 250, + "final_casting_time": 50, + "casting_time_increment": -8, + "base_energy_cost": 400, + "final_energy_cost": 150, + "energy_increment": -10, + "energy_source": "MANA", + "spell_class": "STORMSHAPER", + "difficulty": 6, + "max_level": 25, + "min_damage": 30, + "max_damage": 170, + "damage_increment": 6, + "damage_type": "electric", + "range_increment": 0.3, + "flags": [ "VERBAL", "LOUD", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "min_duration": 100, + "max_duration": 500, + "min_aoe": 1, + "max_aoe": 4, + "aoe_increment": 0.1, + "field_id": "fd_electricity", + "field_chance": 1, + "min_field_intensity": 1, + "max_field_intensity": 10, + "field_intensity_increment": 0.4, + "field_intensity_variance": 3 + }, + { + "type": "SPELL", + "id": "shocking_dash", + "name": "Shocking Dash", + "description": "Fill your legs with energy and quickly dash to a target destination.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "NO_HANDS", "LOUD" ], + "effect": "dash", + "shape": "cone", + "min_damage": 0, + "max_damage": 0, + "min_range": 2, + "max_range": 10, + "range_increment": 0.35, + "field_id": "fd_electricity", + "min_field_intensity": 2, + "max_field_intensity": 2, + "spell_class": "STORMSHAPER", + "base_casting_time": 200, + "final_casting_time": 50, + "casting_time_increment": -6, + "base_energy_cost": 350, + "final_energy_cost": 200, + "energy_increment": -6, + "max_level": 25, + "energy_source": "MANA", + "learn_spells": { "shocking_teleport": 15 } + }, + { + "type": "SPELL", + "id": "shocking_teleport", + "name": "Shocking Teleport", + "description": "Briefly become lightning to teleport to a chosen spot, ignoring all obstacles in-between.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "NO_HANDS", "LOUD", "TARGET_TELEPORT" ], + "effect": "short_range_teleport", + "shape": "blast", + "min_range": 4, + "max_range": 20, + "range_increment": 0.7, + "spell_class": "STORMSHAPER", + "base_casting_time": 500, + "final_casting_time": 100, + "casting_time_increment": -16, + "base_energy_cost": 550, + "final_energy_cost": 300, + "energy_increment": -10, + "max_level": 25, + "energy_source": "MANA" + }, + { + "id": "shocking_teleport_damage", + "type": "SPELL", + "name": { "str": "Shocking Teleport damage" }, + "description": "Deal some damage around the teleportation. You can see it only in debug mode.", + "//": "extra_effects for shocking_teleport, currently doesn't work, because of various issues in dash/teleport and extra_effects incompabilies.", + "valid_targets": [ "ally", "hostile", "ground" ], + "effect": "attack", + "effect_str": "zapped", + "shape": "blast", + "max_level": 25, + "min_damage": 10, + "max_damage": 85, + "damage_increment": 3, + "damage_type": "electric", + "flags": [ "LOUD" ], + "min_duration": 100, + "max_duration": 500, + "min_aoe": 1, + "max_aoe": 7, + "aoe_increment": 0.25, + "field_id": "fd_electricity", + "field_chance": 1, + "min_field_intensity": 1, + "max_field_intensity": 10, + "field_intensity_increment": 0.4, + "field_intensity_variance": 3 + }, + { + "id": "toxtricity", + "type": "SPELL", + "name": "Toxtricity", + "description": "Inject a corrosive electric energy into targets within the affected area, weakening them and dealing huge damage over time.", + "effect": "attack", + "effect_str": "zapped", + "shape": "blast", + "valid_targets": [ "self", "ally", "hostile", "ground" ], + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ], + "max_level": 25, + "min_damage": 0, + "max_damage": 13, + "damage_increment": 0.5, + "min_aoe": 1, + "max_aoe": 11, + "aoe_increment": 0.4, + "min_range": 6, + "max_range": 21, + "range_increment": 0.6, + "min_duration": 0, + "max_duration": 1500, + "duration_increment": 60, + "base_casting_time": 350, + "final_casting_time": 150, + "casting_time_increment": -8, + "base_energy_cost": 400, + "final_energy_cost": 125, + "energy_increment": -11, + "energy_source": "MANA", + "difficulty": 5, + "spell_class": "STORMSHAPER", + "min_dot": 0, + "max_dot": 15, + "dot_increment": 0.6, + "damage_type": "electric" + }, + { + "id": "electric_eye", + "type": "SPELL", + "name": "Electric Eye", + "description": "Enhance your sight with your powers. It allows you to see creatures of the same energy around you. Enhanced perception speed enables you to see attacks coming, allowing for an additional block or dodge attempt.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "electric_eye", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], + "spell_class": "STORMSHAPER", + "energy_source": "MANA", + "difficulty": 4, + "base_casting_time": 3000, + "final_casting_time": 1000, + "casting_time_increment": -80, + "base_energy_cost": 400, + "final_energy_cost": 200, + "energy_increment": -8, + "max_level": 25, + "min_duration": 57600, + "max_duration": 1440000, + "duration_increment": 57600 + }, + { + "id": "electric_waves", + "type": "SPELL", + "name": "Electric Waves", + "description": "Your hands start to emit a huge amount of energy, that you release with each attack. The damage is increased the more you master the spell.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "electric_waves", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], + "spell_class": "STORMSHAPER", + "energy_source": "MANA", + "difficulty": 5, + "base_casting_time": 3000, + "final_casting_time": 1000, + "casting_time_increment": -80, + "base_energy_cost": 400, + "final_energy_cost": 200, + "energy_increment": -8, + "max_level": 25, + "min_duration": 14400, + "max_duration": 360000, + "duration_increment": 14400 + }, + { + "id": "electric_waves_damage", + "type": "SPELL", + "name": { "str": "Electric Waves Damage" }, + "description": "Blasts, generated by Electric Waves.", + "valid_targets": [ "ally", "hostile", "ground" ], + "effect": "attack", + "shape": "blast", + "min_damage": 10, + "max_damage": 35, + "min_range": 1, + "damage_type": "electric", + "flags": [ "LOUD", "RANDOM_DURATION", "RANDOM_AOE", "RANDOM_DAMAGE" ], + "min_duration": 50, + "max_duration": 200, + "min_aoe": 1, + "max_aoe": 2, + "field_id": "fd_electricity", + "field_chance": 2, + "min_field_intensity": 1, + "max_field_intensity": 4, + "field_intensity_variance": 10 + }, + { + "id": "electric_arts", + "type": "SPELL", + "name": "Electric Arts", + "description": "A spell designed for scholars having just started to learn stormshaping, allowing them to reduce the damage to themselves their often capricious new abilities may cause.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "electric_arts", + "shape": "blast", + "flags": [ "NO_EXPLOSION_SFX" ], + "spell_class": "STORMSHAPER", + "energy_source": "MANA", + "difficulty": 1, + "base_casting_time": 48000, + "base_energy_cost": 400, + "final_energy_cost": 200, + "energy_increment": -8, + "max_level": 25, + "min_duration": 230400, + "max_duration": 5760000, + "duration_increment": 230400 + }, + { + "id": "summon_teravolt", + "type": "SPELL", + "name": "Summon Teravolt", + "description": "Summon a Teravolt, a small, semi-intelligent spirit that homes onto hostile creatures before exploding into a huge spark cloud.", + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 1, + "max_level": 25, + "difficulty": 6, + "spell_class": "STORMSHAPER", + "effect": "summon", + "effect_str": "mon_teravolt", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 400, + "final_energy_cost": 200, + "energy_increment": -4, + "base_casting_time": 600, + "final_casting_time": 100, + "casting_time_increment": -20, + "min_aoe": 4, + "max_aoe": 4, + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "PERMANENT", "NO_EXPLOSION_SFX" ], + "min_duration": 4800, + "max_duration": 120000, + "duration_increment": 4800 + }, + { + "id": "stormshaper_cloak_of_fog", + "type": "SPELL", + "name": "Cloak of Fog", + "description": "Call out to the sky spirits for aid and ask them to conceal you from your enemies. The fog will hide your passage, but you do not have any special ability to see through it yourself.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "extra_effects": [ + { "id": "stormshaper_cloak_fog_emitter", "hit_self": true, "max_level": 20 }, + { "id": "stormshaper_cloak_fog_wonder", "hit_self": true } + ], + "shape": "blast", + "energy_source": "MANA", + "spell_class": "STORMSHAPER", + "difficulty": 4, + "max_level": 20, + "min_aoe": 4, + "max_aoe": 20, + "aoe_increment": 0.65, + "field_id": "fd_obscuring_fog", + "min_field_intensity": 2, + "max_field_intensity": 3, + "field_chance": 1, + "base_energy_cost": 250, + "base_casting_time": 300, + "final_casting_time": 100, + "casting_time_increment": -7.5 + }, + { + "id": "stormshaper_cloak_fog_emitter", + "type": "SPELL", + "name": "Cloak of Fog Real", + "description": "The spell that puts the effect of Cloak of Fog on you. It's a bug if you can see it.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "effect_cloak_of_fog", + "shape": "blast", + "min_duration": 3000, + "max_duration": 30000, + "duration_increment": 575 + }, + { + "id": "stormshaper_cloak_fog_wonder", + "type": "SPELL", + "name": "Cloak of Fog Wonder", + "description": "Places other fog locations nearby. The number depends on your cloak of fog level.", + "flags": [ "WONDER", "NO_EXPLOSION_SFX" ], + "valid_targets": [ "self" ], + "effect": "attack", + "extra_effects": [ { "id": "stormshaper_cloak_fog_random", "max_level": 20 } ], + "shape": "blast", + "min_damage": { "math": [ "( (u_val('spell_level', 'spell: stormshaper_cloak_of_fog') * 0.5) + 2)" ] }, + "max_damage": { "math": [ "( (u_val('spell_level', 'spell: stormshaper_cloak_of_fog') * 0.5) + 2)" ] } + }, + { + "id": "stormshaper_cloak_fog_random", + "type": "SPELL", + "name": "Cloak of Fog Random", + "description": "The spell that puts the effect of Cloak of Fog on you. It's a bug if you can see it.", + "flags": [ "RANDOM_TARGET", "NO_EXPLOSION_SFX" ], + "valid_targets": [ "ground" ], + "message": "", + "effect": "attack", + "effect_str": "effect_cloak_of_fog", + "shape": "blast", + "min_range": 5, + "max_range": 25, + "range_increment": 1, + "min_aoe": 4, + "max_aoe": 20, + "aoe_increment": 0.65, + "field_id": "fd_obscuring_fog", + "min_field_intensity": 2, + "max_field_intensity": 3, + "field_chance": 2 + }, + { + "id": "stormshaper_heart_of_hurricane", + "type": "SPELL", + "name": "Heart of the Hurricane", + "description": "Compress the fury of the hurricane winds into a thin shell of raging air around yourself. It will make it harder for you to lose your footing or be knocked down and occasionally throw attackers away from you, but the whirling winds are loud.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_heart_of_hurricane", + "shape": "blast", + "spell_class": "STORMSHAPER", + "difficulty": 7, + "max_level": 20, + "min_duration": 15000, + "max_duration": 90000, + "duration_increment": 3750, + "energy_source": "MANA", + "base_energy_cost": 650, + "base_casting_time": 1500 + }, + { + "id": "stormshaper_heart_of_hurricane_throw", + "type": "SPELL", + "name": "Heart of the Hurricane Throw", + "description": "This is the spell that throws your target back. It's a bug if you have it directly.", + "message": "The winds lash out and hurl away!", + "valid_targets": [ "ally", "hostile", "item", "ground" ], + "spell_class": "STORMSHAPER", + "flags": [ "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "directed_push", + "shape": "blast", + "min_damage": 1, + "max_damage": { "math": [ "( (u_val('spell_level', 'spell: stormshaper_heart_of_hurricane') / 2) + 1)" ] }, + "min_range": 1 + }, + { + "id": "stormshaper_cloak_of_frog", + "type": "SPELL", + "name": "Cloak of Frog", + "description": "Someone's personal notes were added to this spell. You're positive that they changed both the name and the function.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "extra_effects": [ + { "id": "stormshaper_cloak_frog_transform", "hit_self": true }, + { "id": "stormshaper_cloak_frog_summon_wonder", "hit_self": false } + ], + "shape": "blast", + "spell_class": "STORMSHAPER", + "difficulty": 4, + "max_level": 20, + "min_duration": 15000, + "max_duration": 90000, + "duration_increment": 3750, + "energy_source": "MANA", + "base_energy_cost": 350, + "base_casting_time": 150 + }, + { + "id": "stormshaper_cloak_frog_transform", + "type": "SPELL", + "name": "Cloak of Frog Transform", + "description": "Grants the caster some post-threshold Batrachian mutations if they aren't already a frog mutant.", + "flags": [ "NO_EXPLOSION_SFX" ], + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "EOC_GAIN_CLOAK_OF_FROG_MUTATIONS", + "shape": "blast" + }, + { + "type": "effect_on_condition", + "id": "EOC_GAIN_CLOAK_OF_FROG_MUTATIONS", + "//": "mutations chosen to have minimal conflicts with other mutations", + "condition": { "not": { "u_has_trait": "THRESH_BATRACHIAN" } }, + "effect": [ + { "u_add_trait": "FRESHWATEROSMOSIS" }, + { "u_add_trait": "PHEROMONE_AMPHIBIAN" }, + { "u_add_trait": "AMPHIBIAN" }, + { + "queue_eocs": "EOC_LOSE_CLOAK_OF_FROG_MUTATIONS", + "time_in_future": [ + { "math": [ "( (u_val('spell_level', 'spell: stormshaper_cloak_of_frog') * 3750) + 15000)" ] }, + { "math": [ "( (u_val('spell_level', 'spell: stormshaper_cloak_of_frog') * 3750) + 15000)" ] } + ] + } + ], + "false_effect": [ ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LOSE_CLOAK_OF_FROG_MUTATIONS", + "effect": [ + { "u_message": "It wasn't easy being green.", "type": "mixed" }, + { "u_lose_trait": "FRESHWATEROSMOSIS" }, + { "u_lose_trait": "PHEROMONE_AMPHIBIAN" }, + { "u_lose_trait": "AMPHIBIAN" } + ] + }, + { + "id": "stormshaper_cloak_frog_summon_wonder", + "type": "SPELL", + "name": "Cloak of Frog Wonder", + "description": "Places other frog locations nearby. The number depends on your cloak of frog level.", + "flags": [ "WONDER", "NO_EXPLOSION_SFX" ], + "valid_targets": [ "self" ], + "effect": "attack", + "extra_effects": [ { "id": "stormshaper_cloak_frog_summon", "max_level": 20 } ], + "shape": "blast", + "min_damage": { "math": [ "( (u_val('spell_level', 'spell: stormshaper_cloak_of_frog') * 1) + 1)" ] }, + "max_damage": { "math": [ "( (u_val('spell_level', 'spell: stormshaper_cloak_of_frog') * 1) + 1)" ] } + }, + { + "id": "stormshaper_cloak_frog_summon", + "type": "SPELL", + "name": "Cloak of Frog Summon", + "description": "The spell that creates the frogs. It's a bug if you have it.", + "flags": [ "RANDOM_TARGET", "NO_EXPLOSION_SFX", "SPAWN_GROUP" ], + "valid_targets": [ "ground", "hostile" ], + "message": "", + "effect": "summon", + "effect_str": "GROUP_FROGS_CLOAK", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_range": 5, + "max_range": 25, + "range_increment": 1, + "min_aoe": 4, + "max_aoe": 20, + "aoe_increment": 0.65, + "min_duration": { "math": [ "( (u_val('spell_level', 'spell: stormshaper_cloak_of_frog') * 3750) + 15000)" ] } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/Spells/technomancer.json b/data/Mainline_mods/Mods/Magiclysm/Spells/technomancer.json index b09743dd2..2074309e3 100644 --- a/data/Mainline_mods/Mods/Magiclysm/Spells/technomancer.json +++ b/data/Mainline_mods/Mods/Magiclysm/Spells/technomancer.json @@ -14,7 +14,7 @@ "base_energy_cost": 100, "energy_source": "MANA", "spell_class": "TECHNOMANCER", - "difficulty": 1, + "difficulty": 5, "max_level": 20, "min_aoe": 0, "max_aoe": 5, @@ -24,8 +24,8 @@ "range_increment": 1.0, "//": "duration is in moves", "min_duration": 6000, - "max_duration": 10000, - "duration_increment": 400 + "max_duration": 30000, + "duration_increment": 1200 }, { "id": "invisibility", @@ -51,7 +51,7 @@ { "id": "holy_blade", "type": "SPELL", - "name": "Holy Blade", + "name": "Mage Blade", "description": "This blade of light will cut through any evil it makes contact with!", "valid_targets": [ "self" ], "flags": [ "VERBAL", "NO_LEGS", "CONCENTRATE" ], @@ -76,7 +76,7 @@ { "id": "holy_blade_plus", "type": "SPELL", - "name": "Holy Blade", + "name": "Enhanced Mage Blade", "description": "This blade of light will cut through any evil it makes contact with! Now you know this spell like the back of your hand, and start to design your own version.", "valid_targets": [ "self" ], "flags": [ "VERBAL", "NO_LEGS" ], @@ -100,7 +100,7 @@ { "id": "spirit_armor", "type": "SPELL", - "name": "Spiritual Armor", + "name": "Mage Armor", "description": "Evil will not make it through your defenses if your faith is strong enough!", "valid_targets": [ "self" ], "flags": [ "VERBAL", "NO_LEGS", "CONCENTRATE", "SOMATIC" ], @@ -125,7 +125,7 @@ { "id": "spirit_armor_plus", "type": "SPELL", - "name": "Spiritual Armor", + "name": "Enhanced Mage Armor", "description": "Evil will not make it through your defenses if your faith is strong enough! Now you know this spell like the back of your hand, and start to design your own version.", "valid_targets": [ "self" ], "flags": [ "VERBAL", "NO_LEGS", "SOMATIC" ], @@ -224,7 +224,7 @@ "name": "Taze", "description": "This spell creates a very short range bolt of electricity to shock your foes.", "valid_targets": [ "hostile", "ground", "ally" ], - "flags": [ "NO_LEGS", "LOUD", "SOMATIC" ], + "flags": [ "NO_LEGS", "LOUD", "SOMATIC", "NO_HANDS" ], "effect": "attack", "shape": "blast", "spell_class": "TECHNOMANCER", @@ -286,17 +286,17 @@ "shape": "blast", "spell_class": "TECHNOMANCER", "energy_source": "MANA", - "difficulty": 5, + "difficulty": 7, "max_level": 20, "base_casting_time": 500, "casting_time_increment": -2.5, "final_casting_time": 450, "base_energy_cost": 500, - "energy_increment": -5.0, - "final_energy_cost": 400, - "min_duration": 180000, - "max_duration": 360000, - "duration_increment": 10000 + "energy_increment": -7.5, + "final_energy_cost": 350, + "min_duration": 6000, + "max_duration": 180000, + "duration_increment": 8700 }, { "id": "laze", @@ -513,7 +513,7 @@ "type": "SPELL", "name": "X-ray Vision", "id": "x-ray", - "description": "You fire a cone of X-rays that magically allow you to see that area for a short time.", + "description": "You fire a cone of X-rays that magically allows you to see that area for a short time.", "valid_targets": [ "hostile", "ground", "ally" ], "flags": [ "CONCENTRATE", "IGNORE_WALLS" ], "effect": "attack", @@ -586,7 +586,7 @@ "name": "Knifeshot", "description": "This spell generates a magnetic field around a knife, before launching it at high speed.", "valid_targets": [ "hostile", "ally" ], - "flags": [ "CONCENTRATE", "SILENT", "SOMATIC" ], + "flags": [ "CONCENTRATE", "SILENT", "SOMATIC", "NO_HANDS" ], "components": "spell_components_knifeshot", "effect": "attack", "shape": "blast", @@ -616,7 +616,7 @@ "name": "Hypervelocity Knifeshot", "description": "This spell goes even further beyond, launching a knife so fast it can pierce through targets.", "valid_targets": [ "hostile", "ally" ], - "flags": [ "CONCENTRATE", "LOUD", "SOMATIC" ], + "flags": [ "CONCENTRATE", "LOUD", "SOMATIC", "NO_HANDS" ], "components": "spell_components_knifeshot", "effect": "attack", "shape": "line", @@ -633,5 +633,92 @@ "max_range": 7, "min_pierce": 15, "max_pierce": 15 + }, + { + "id": "technomancer_robot_shutdown", + "type": "SPELL", + "name": "Shutdown", + "description": "Overload the target, stunning it briefly. Originally developed during the Roman Empire to target out-of-control golems, this spell became significantly more popular in modern times when it was discovered it also worked on robots and machinery.", + "valid_targets": [ "hostile", "ally" ], + "flags": [ "VERBAL", "SOMATIC", "RANDOM_DAMAGE", "SILENT" ], + "effect": "mod_moves", + "shape": "blast", + "spell_class": "TECHNOMANCER", + "difficulty": 6, + "max_level": 15, + "min_range": 5, + "max_range": 20, + "range_increment": 1, + "min_damage": { "math": [ "( (u_val('spell_level', 'spell: technomancer_robot_shutdown') * -15) - 200)" ] }, + "max_damage": { "math": [ "( (u_val('spell_level', 'spell: technomancer_robot_shutdown') * -25) - 400)" ] }, + "energy_source": "MANA", + "base_casting_time": 150, + "base_energy_cost": 350, + "targeted_monster_species": [ "GOLEM", "ROBOT", "CYBORG" ] + }, + { + "id": "technomancer_conjure_radio", + "type": "SPELL", + "name": "Speak through the Aether", + "description": "One of the most widely-known pre-modern technomantic spells, this allows technomancers to communicate at a distance. Its use declined rapidly after Guglielmo Marconi invented the radio and suddenly everyone could listen in to their conversations.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "spawn_item", + "effect_str": "technomancer_summoned_radio", + "shape": "blast", + "spell_class": "TECHNOMANCER", + "difficulty": 4, + "max_level": 15, + "min_duration": 30000, + "max_duration": 180000, + "duration_increment": 15000, + "energy_source": "MANA", + "base_casting_time": 6000, + "base_energy_cost": 450 + }, + { + "id": "technomancer_conjure_ups", + "type": "SPELL", + "name": "Power Supply", + "description": "For the technomancer with no enhancements, this spell summons a power supply composed of pure mana that can be used to charge any compatible device. It will continually recharge until the duration expires.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC" ], + "effect": "spawn_item", + "effect_str": "technomancer_summoned_ups", + "shape": "blast", + "spell_class": "TECHNOMANCER", + "difficulty": 7, + "max_level": 20, + "min_duration": 100000, + "max_duration": 300000, + "duration_increment": 10000, + "//": "The Power Supply provides 1 kj per second and regenerates 1 kj per second, so the duration is the total power supplied. Cost below increases but not as fast as power does.", + "energy_source": "MANA", + "base_casting_time": 3000, + "base_energy_cost": 600, + "final_energy_cost": 900, + "energy_increment": 15 + }, + { + "id": "technomancer_welder", + "type": "SPELL", + "name": "Voltaic Touch", + "description": "Using the principles of what were once called \"voltaic arcs\", you can electrically heat metal hot enough to weld it together.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], + "effect": "spawn_item", + "effect_str": "technomancer_welder", + "shape": "blast", + "spell_class": "TECHNOMANCER", + "difficulty": 5, + "max_level": 15, + "min_damage": 1, + "max_damage": 1, + "min_duration": 360000, + "max_duration": 720000, + "duration_increment": 24000, + "energy_source": "MANA", + "base_energy_cost": 500, + "base_casting_time": 3000 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/achievements/spells.json b/data/Mainline_mods/Mods/Magiclysm/achievements/spells.json index dc9b3f8a1..2931c10bb 100644 --- a/data/Mainline_mods/Mods/Magiclysm/achievements/spells.json +++ b/data/Mainline_mods/Mods/Magiclysm/achievements/spells.json @@ -10,7 +10,7 @@ "hidden_by": [ "achievement_learn_any_spell" ], "type": "achievement", "name": "Wizard's Apprentice", - "requirements": [ { "event_statistic": "num_spells_learned", "is": ">=", "target": 3 } ] + "requirements": [ { "event_statistic": "num_spells_learned", "is": ">=", "target": 5 } ] }, { "id": "achievement_learn_any_spell_10", diff --git a/data/Mainline_mods/Mods/Magiclysm/bionics.json b/data/Mainline_mods/Mods/Magiclysm/bionics.json index f9acad72c..2a0737b4f 100644 --- a/data/Mainline_mods/Mods/Magiclysm/bionics.json +++ b/data/Mainline_mods/Mods/Magiclysm/bionics.json @@ -3,13 +3,38 @@ "id": "bio_fuel_cell_blood", "type": "bionic", "name": { "str": "Blood Power Generator" }, - "description": "Embedded into your back and connected to your bionic power supply is a powerful spell focus able to consume blood from dead creatures to produce bionic power. It can store up to 100 mL of blood.", + "description": "Embedded into your back and connected to your bionic power supply is a powerful spell focus able to consume blood from dead creatures to produce bionic power. It can store up to 750 mL of blood.", "occupied_bodyparts": [ [ "torso", 8 ] ], "fuel_options": [ "blood", "dragon_blood", "tainted_blood", "hblood" ], - "fuel_capacity": 100, "fuel_efficiency": 0.6, "exothermic_power_gen": true, "time": "6 s", - "flags": [ "BIONIC_TOGGLED", "BIONIC_POWER_SOURCE" ] + "flags": [ "BIONIC_TOGGLED", "BIONIC_POWER_SOURCE" ], + "passive_pseudo_items": [ "integrated_blood_bank" ] + }, + { + "id": "integrated_blood_bank", + "type": "GENERIC", + "category": "container", + "name": { "str": "internal blood bank" }, + "description": "Internal tank for blood power generator bionic.", + "volume": "751 ml", + "weight": "1 g", + "price": 0, + "material": [ "plastic" ], + "symbol": "(", + "color": "magenta", + "flags": [ "INTEGRATED", "UNBREAKABLE", "PERSONAL", "NO_REPAIR", "ALLOWS_NATURAL_ATTACKS", "BIONIC_FUEL_SOURCE" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "watertight": true, + "rigid": true, + "max_contains_volume": "750 ml", + "max_item_volume": "250 ml", + "max_contains_weight": "1 kg", + "material_restriction": [ "blood", "dragon_blood", "tainted_blood", "hblood" ] + } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/construction_group.json b/data/Mainline_mods/Mods/Magiclysm/construction_group.json index 9540877f6..0dc0a4c56 100644 --- a/data/Mainline_mods/Mods/Magiclysm/construction_group.json +++ b/data/Mainline_mods/Mods/Magiclysm/construction_group.json @@ -3,5 +3,35 @@ "type": "construction_group", "id": "build_translocator_gate", "name": "Build Translocator Gate" + }, + { + "type": "construction_group", + "id": "build_everburning_torch_candelabra", + "name": "Set up Everburning Candelabra" + }, + { + "type": "construction_group", + "id": "build_magiclysm_magic_circle", + "name": "Inscribe Magic Circle" + }, + { + "type": "construction_group", + "id": "place_everburning_sconce", + "name": "Attach Everburning Sconce" + }, + { + "type": "construction_group", + "id": "build_magiclysm_magic_circle_2", + "name": "Enhance existing Magic Circle" + }, + { + "type": "construction_group", + "id": "build_standing_alembic", + "name": "Build Standing Alembic" + }, + { + "type": "construction_group", + "id": "build_orrery", + "name": "Place Orrery" } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/cooking_components.json b/data/Mainline_mods/Mods/Magiclysm/cooking_components.json index 509383166..ead123d45 100644 --- a/data/Mainline_mods/Mods/Magiclysm/cooking_components.json +++ b/data/Mainline_mods/Mods/Magiclysm/cooking_components.json @@ -3,5 +3,30 @@ "id": "eggs_bird", "type": "requirement", "extend": { "components": [ [ [ "egg_owlbear", 1 ] ] ] } + }, + { + "id": "hard_liquor_and_whiskflower", + "type": "requirement", + "components": [ [ [ "hard_liquor_unmixed", 1, "LIST" ], [ "mixed_alcohol_strong", 1 ], [ "whiskflower", 1 ] ] ] + }, + { + "id": "mana_energy_weak", + "type": "requirement", + "components": [ + [ + [ "lotus", 1 ], + [ "funnelcap_chunk", 2 ], + [ "mana_dust", 5 ], + [ "mossling_fur", 8 ], + [ "dryad_bark", 3 ], + [ "gnome_eye", 2 ], + [ "bracken_eye", 1 ] + ] + ] + }, + { + "id": "mana_energy_strong", + "type": "requirement", + "components": [ [ [ "golden_reed_stalk", 1 ], [ "funnelcap_chunk", 5 ], [ "bracken_eye", 1 ], [ "dryad_bark", 10 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/effects/effect_potion_fruit.json b/data/Mainline_mods/Mods/Magiclysm/effects/effect_potion_fruit.json new file mode 100644 index 000000000..c9cbbb2ab --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/effects/effect_potion_fruit.json @@ -0,0 +1,178 @@ +[ + { + "id": "effect_pfruit_heal", + "type": "effect_type", + "name": [ "Restore Flesh and Bone" ], + "desc": [ "Thanks to that apple, your wounds are slowly healing." ], + "apply_message": "Your flesh and bones start to knit together before your eyes.", + "remove_message": "Your regeneration slows down.", + "rating": "good", + "show_intensity": false, + "enchantments": [ + { + "intermittent_activation": { "effects": [ { "frequency": "30 seconds", "spell_effects": [ { "id": "pfruit_regeneration_spell" } ] } ] } + } + ] + }, + { + "id": "effect_pfruit_cure", + "type": "effect_type", + "name": [ "Ward off Miasma" ], + "desc": [ "No illness is going to get you down now." ], + "apply_message": "You feel revitalized.", + "rating": "good", + "show_intensity": false, + "removes_effects": [ "scurvy", "redcells_anemia", "anemia", "toxin_buildup", "common_cold", "flu" ] + }, + { + "id": "effect_pfruit_attack_speed", + "type": "effect_type", + "name": [ "Quick Blows" ], + "desc": [ "Thanks to that pear, you can attack faster." ], + "apply_message": "You arms speed up.", + "remove_message": "Your muscle's twitch as the pear's magic fades.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "ATTACK_SPEED", "add": -15 } ] } ] + }, + { + "id": "effect_pfruit_thorns", + "type": "effect_type", + "name": [ "Blackberry Thorns" ], + "desc": [ "Anyone who attacks you will regret it." ], + "apply_message": "Long thorns grow through your skin, clothes, and armor.", + "remove_message": "The thorns vanish without a trace, leaving your gear unharmed.", + "rating": "good", + "show_intensity": false, + "enchantments": [ "enchant_pfruit_thorns" ] + }, + { + "type": "enchantment", + "id": "enchant_pfruit_thorns", + "condition": "ALWAYS", + "has": "HELD", + "hit_me_effect": [ { "id": "pfruit_aura_thorns", "hit_self": false } ] + }, + { + "id": "pfruit_aura_thorns", + "type": "SPELL", + "name": "Blackberry fruit aura thorns", + "description": "Stab a monster that attacked you.", + "valid_targets": [ "hostile" ], + "flags": [ "RANDOM_DAMAGE" ], + "shape": "blast", + "effect": "attack", + "damage_type": "stab", + "min_damage": 1, + "max_damage": 4, + "min_range": 1, + "max_range": 1 + }, + { + "id": "effect_pfruit_keep_warm", + "type": "effect_type", + "name": [ "Summer's Heat" ], + "desc": [ "The magic of those strawberries is keeping you warm." ], + "apply_message": "You feel a pleasant warmth.", + "remove_message": "You shiver as a cool breeze hits your skin.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 50 } ] } ] + }, + { + "id": "effect_pfruit_purge", + "type": "effect_type", + "name": [ "Ward off Toxins" ], + "desc": [ "Your body will not be corrupted by these vile substances." ], + "apply_message": "You feel cleansed.", + "rating": "good", + "show_intensity": false, + "removes_effects": [ + "poison", + "venom_dmg", + "venom_weaken", + "badpoison", + "foodpoison", + "paralyzepoison", + "bloodworms", + "brainworms", + "tapeworm" + ] + }, + { + "id": "effect_pfruit_dodge", + "type": "effect_type", + "name": [ "Flexible" ], + "desc": [ "Your range of motion is greatly increased." ], + "apply_message": "You arms are as bendy as rubber.", + "remove_message": "Your limbs creak as they lose their flexibility.", + "rating": "good", + "show_intensity": false, + "limb_score_mods": [ + { "limb_score": "reaction", "modifier": 2.0 }, + { "limb_score": "block", "modifier": 1.2 }, + { "limb_score": "crawl", "modifier": 1.5 } + ], + "enchantments": [ { "values": [ { "value": "BONUS_DODGE", "add": 1 } ] } ], + "flags": [ "DOWNED_RECOVERY", "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_pfruit_nightvision", + "name": [ "Wintergreen Vision" ], + "desc": [ "You can see in the dark." ], + "apply_message": "The night doesn't seem so dark anymore.", + "remove_message": "The darkness of the night rushes in again.", + "rating": "good", + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 6 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "id": "effect_pfruit_nobleed", + "type": "effect_type", + "name": [ "Stopped Bleeding" ], + "desc": [ "Your blood is all being held within your body." ], + "apply_message": "Your wounds tingle.", + "remove_message": "You feel a prickle as your wounds ache.", + "rating": "good", + "show_intensity": false, + "removes_effects": [ "bleed" ], + "flags": [ "BLEED_IMMUNE" ] + }, + { + "id": "effect_pfruit_vision", + "type": "effect_type", + "name": [ "Good Vision" ], + "desc": [ "The magic of those apricots is helping you see better." ], + "apply_message": "You can pick out even minute details.", + "remove_message": "Distant objects loose their magical clarity.", + "rating": "good", + "show_intensity": false, + "limb_score_mods": [ { "limb_score": "vision", "modifier": 1.25 } ], + "enchantments": [ { "values": [ { "value": "PERCEPTION", "add": 2 } ] } ], + "flags": [ "GLARE_RESIST", "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "id": "effect_pfruit_eat_poison", + "type": "effect_type", + "name": [ "Poison-Eater" ], + "desc": [ "You can eat toxic or spoiled food without penalty. You still should not eat zombie meat." ], + "apply_message": "Your sense of taste dulls.", + "remove_message": "Something in your mouth tastes foul.", + "rating": "good", + "show_intensity": false, + "flags": [ "IMMUNE_SPOIL" ], + "vitamins": [ { "vitamin": "mutant_toxin", "rate": [ [ -1, -1 ] ], "absorb_mult": [ 0.5 ], "tick": [ "1 s" ] } ] + }, + { + "id": "effect_pfruit_no_drunk", + "type": "effect_type", + "name": [ "Remove intoxicants" ], + "desc": [ "You are being rapidly sobered up." ], + "apply_message": "Your head pounds, but you feel much more alert.", + "remove_message": ".", + "rating": "mixed", + "show_intensity": false, + "removes_effects": [ "drunk", "meth", "high", "weed_high" ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/effects/effects.json b/data/Mainline_mods/Mods/Magiclysm/effects/effects.json index 093abc8d9..22d74d868 100644 --- a/data/Mainline_mods/Mods/Magiclysm/effects/effects.json +++ b/data/Mainline_mods/Mods/Magiclysm/effects/effects.json @@ -147,6 +147,65 @@ "base_mods": { "speed_mod": [ -30 ] }, "scaling_mods": { "speed_mod": [ -10 ] } }, + { + "type": "effect_type", + "id": "effect_obfuscating_aura", + "name": [ "Obfuscating Aura" ], + "desc": [ "Light is distorting around you and making it easier for you to avoid attacks." ], + "apply_message": "The edges of your vision ripple slightly.", + "remove_message": "The aura of light distortion around you vanishes.", + "enchantments": [ + { + "values": [ { "value": "BONUS_DODGE", "add": { "math": [ "((u_val('spell_level', 'spell: obfuscated_body') / 7) + 1)" ] } } ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_shape_of_dust", + "name": [ "Shape of Dust" ], + "desc": [ "Clouds of dust around you are hiding you from your enemies." ], + "apply_message": "Dust springs up and hides your presence.", + "remove_message": "The clouds of dust around you die down", + "max_duration": "10 minutes", + "enchantments": [ "ench_shape_of_dust" ] + }, + { + "type": "effect_type", + "id": "effect_acid_res_aura", + "name": [ "Acid Resist Aura" ], + "desc": [ "You are protected from acid damage." ], + "apply_message": "Your body tingles.", + "remove_message": "The tingling fades.", + "enchantments": [ + { + "values": [ + { + "value": "ARMOR_ACID", + "multiply": { "math": [ "((u_val('spell_level', 'spell: acid_resistance') * -0.02) - 0.2)" ] } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_acid_res_aura_greater", + "name": [ "Greater Acid Resist Aura" ], + "desc": [ "You are greatly protected from acid damage." ], + "apply_message": "Your body tingles.", + "remove_message": "The tingling fades.", + "enchantments": [ { "values": [ { "value": "ARMOR_ACID", "multiply": -0.75 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_thorns_electric", + "name": [ "Aura of Repelling Arc" ], + "desc": [ "Anyone who attacks you will be electrified." ], + "apply_message": "The air around you sparks with electricity.", + "remove_message": "The air around you loses its charge.", + "enchantments": [ { "condition": "ALWAYS", "hit_me_effect": [ { "id": "thorns_zap" } ] } ] + }, { "type": "effect_type", "id": "bio_acidburn", @@ -165,7 +224,7 @@ "apply_message": "Your speed is boosted to superhuman levels!", "remove_message": "You return to your normal speed.", "rating": "good", - "base_mods": { "dex_mod": [ 4 ], "speed_mod": [ 250 ] } + "enchantments": [ { "values": [ { "value": "SPEED", "multiply": 2.5 }, { "value": "ATTACK_SPEED", "multiply": -0.7 } ] } ] }, { "type": "effect_type", @@ -253,8 +312,8 @@ }, { "type": "effect_type", - "id": "debug_feather_fall", - "name": [ "Debug Feather Fall" ], + "id": "feather_fall", + "name": [ "Pluma" ], "desc": [ "You are light as a feather and fall like one." ], "apply_message": "Your body feels light as a feather.", "remove_message": "The earth pulls you down hard.", @@ -337,7 +396,7 @@ "type": "effect_type", "id": "neuro_boost", "name": [ "Mental Boost" ], - "desc": [ "Your mind is working incredibly fast, but your body cannot keep up" ], + "desc": [ "Your mind is working incredibly fast and your body struggles to keep up." ], "rating": "bad", "max_duration": "10 s", "base_mods": { "speed_mod": [ 20 ] } @@ -380,11 +439,10 @@ "name": [ "Nature's Commune" ], "desc": [ "You can feel Mother Nature welcoming you, revitalizing your body and calming the natural fauna around you." ], "apply_message": "A warm embrace surrounds you, like that of a mother with her child.", - "remove_message": "Your commune with Mother Nature fades.", + "remove_message": "Your communion with Mother Nature fades.", "rating": "good", - "max_duration": "20 m", - "//": "No morale_mod is currently possible in effects, but this effect should give +5/+10 morale whenever that it's implemented.", - "base_mods": { "health_min": [ 1 ], "health_chance": [ 40 ], "h_mod_min": [ 1 ], "h_mod_chance": [ 80 ] } + "max_duration": "120 m", + "base_mods": { "health_min": [ 1 ], "health_chance": [ 40 ], "h_mod_min": [ 1 ], "h_mod_chance": [ 80 ], "health_tick": [ 30 ] } }, { "type": "effect_type", @@ -444,8 +502,90 @@ "desc": [ "Ice crystals erode your body from all directions." ], "base_mods": { "speed_mod": [ -10 ], "hurt_amount": [ 1 ] }, "scaling_mods": { "speed_mod": [ -15 ], "hurt_amount": [ 4 ] }, + "int_add_val": 1, "max_intensity": 3 }, + { + "id": "eshaper_melee_damage", + "type": "effect_type", + "name": [ "Heft" ], + "desc": [ + "Your body is heavy as the heaviest rocks. Your attack speed is slowed down, but your melee damage increased drastically." + ], + "apply_message": "You feel your body compress and harden.", + "remove_message": "You no longer feel encumbered.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "ATTACK_SPEED", "multiply": -0.25 }, { "value": "MELEE_DAMAGE", "multiply": 0.6 } ] } ] + }, + { + "id": "eshaper_crystal_wrap", + "type": "effect_type", + "name": [ "Crystal Wrapping" ], + "desc": [ "Thin layer of almost living crystals, that rapidly grows and moves on the body." ], + "apply_message": "You feel a light, purple material cover your body and clothes.", + "remove_message": "The crystals crumble.", + "rating": "good", + "show_intensity": false, + "enchantments": [ + { + "hit_me_effect": [ { "id": "eshaper_crystal_wrap_damage" } ], + "values": [ { "value": "ITEM_DAMAGE_CUT", "add": 17 } ] + } + ] + }, + { + "id": "electric_eye", + "type": "effect_type", + "name": [ "Electric Eye" ], + "desc": [ + "Enhance your sight with your powers. It allows you to see creatures of the same energy around you, and some minor bonuses." + ], + "apply_message": "Your sight is enhanced.", + "remove_message": "Your sight turn back to usual state.", + "rating": "good", + "show_intensity": false, + "enchantments": [ + { + "values": [ + { "value": "BONUS_BLOCK", "add": 1 }, + { "value": "BONUS_DODGE", "add": 1 }, + { "value": "DEXTERITY", "add": 2 }, + { "value": "PERCEPTION", "add": 4 }, + { "value": "SIGHT_RANGE_ELECTRIC", "add": 1000 } + ] + } + ] + }, + { + "id": "electric_waves", + "type": "effect_type", + "name": [ "Electric Waves" ], + "desc": [ "Your body will release a massive electric charges when you attack monsters." ], + "apply_message": "A powerful energy streams out of your hands.", + "remove_message": "The energy streams calm down.", + "rating": "good", + "show_intensity": false, + "enchantments": [ "enchant_stormshaper_electric_waves" ] + }, + { + "id": "electric_arts", + "type": "effect_type", + "name": [ "Electric Arts" ], + "desc": [ "Make you less vulnerable to electric damage." ], + "apply_message": "You feel a small sparks under your skin. They do not harm you.", + "remove_message": "Sparks under your skin vanish.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "ARMOR_ELEC", "add": -35 } ] } ] + }, + { + "type": "effect_type", + "id": "ice_age_eff", + "name": [ "Glaciation" ], + "desc": [ "You are frozen, your bones are fragile; cracking in the cold, and your muscles are cut by razor sharp ice." ], + "base_mods": { "speed_mod": [ -75 ] } + }, { "type": "effect_type", "id": "flower_fern_eff", @@ -461,6 +601,101 @@ "desc": [ "You feel yourself a bit lighter. You doubt you can lose weight from this." ], "base_mods": { "speed_mod": [ 15 ] } }, + { + "type": "effect_type", + "id": "flask_speed_eff", + "name": [ "Velocitas" ], + "desc": [ "Make you faster, and allow to hold this state for a while." ], + "apply_message": "You feel your legs can work much better than before", + "remove_message": "Your speed slows down.", + "rating": "good", + "base_mods": { "speed_mod": [ 40 ], "stamina_min": [ 20 ] } + }, + { + "type": "effect_type", + "id": "flask_healing_eff", + "name": [ "Sanatio" ], + "desc": [ "Improve your organism's ability to heal himself." ], + "//": "i have no idea how health works now, so ill just copypaste the nature commune effect and stretch it.", + "base_mods": { "health_min": [ 1 ], "health_chance": [ 2880 ], "h_mod_min": [ 1 ], "h_mod_chance": [ 5760 ] } + }, + { + "type": "effect_type", + "id": "flask_stamina_eff", + "name": [ "Constantia" ], + "desc": [ "You can't get tired." ], + "apply_message": "You feel an energy in your muscles, jazzed up and full of vitality.", + "remove_message": "The energy in your body fades away.", + "base_mods": { "stamina_min": [ 50 ] } + }, + { + "id": "flask_excitement", + "type": "effect_type", + "name": [ "Motus" ], + "desc": [ "Your reaction now is way better than before." ], + "apply_message": "You can feel the fly wings movement now.", + "remove_message": "Your reflexes turn back to normal.", + "rating": "good", + "show_intensity": false, + "enchantments": [ + { + "values": [ + { "value": "SPEED", "add": 30 }, + { "value": "ATTACK_SPEED", "add": 20 }, + { "value": "BONUS_DODGE", "add": 2 }, + { "value": "MELEE_DAMAGE", "multiply": 0.5 } + ] + } + ] + }, + { + "id": "flask_resistance", + "type": "effect_type", + "name": [ "Resistentia" ], + "desc": [ "A thin layer of energy covers your body, and allows you to take more physical damage than before." ], + "apply_message": "Your touch sense are blunted for a bit, but your skin feels more dense.", + "remove_message": "The sturdy feeling is gone.", + "rating": "good", + "show_intensity": false, + "enchantments": [ + { + "values": [ { "value": "ARMOR_BASH", "add": -10 }, { "value": "ARMOR_CUT", "add": -10 }, { "value": "ARMOR_STAB", "add": -10 } ] + } + ] + }, + { + "id": "flask_illumination", + "type": "effect_type", + "name": [ "Illuminatio" ], + "desc": [ "Your body emit a lot of light around." ], + "apply_message": "Your skin glow like an old lantern. You feel no discomfort for some reason.", + "remove_message": "Your skin turn back to normal state.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "LUMINATION", "add": 800 } ] } ] + }, + { + "id": "flask_mana_regen", + "type": "effect_type", + "name": [ "Recuperatio" ], + "desc": [ "Increase the amount of ley-lines your body can process at once, making you restore your mana pool faster." ], + "apply_message": "You can feel the thinnest ley lines around you.", + "remove_message": "The mana senses blunts.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "REGEN_MANA", "multiply": 2 } ] } ] + }, + { + "id": "flask_max_mana", + "type": "effect_type", + "name": [ "Augere" ], + "desc": [ "Increase the amount of mana you can operate." ], + "apply_message": "You feel a deep mana well inside your body.", + "remove_message": "Your well feels empty now.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "MAX_MANA", "add": 1500 } ] } ] + }, { "id": "flask_regeneration", "type": "effect_type", @@ -472,9 +707,405 @@ "show_intensity": false, "enchantments": [ { - "condition": { "not": "ALWAYS" }, "intermittent_activation": { "effects": [ { "frequency": "30 seconds", "spell_effects": [ { "id": "flask_regeneration_effect" } ] } ] } } ] + }, + { + "type": "effect_type", + "id": "technomancer_cl_booster_effect", + "name": [ "Technomancer boost" ], + "desc": [ "Your technomancer spells are empowered." ], + "remove_message": "Your technomancer boost fades.", + "rating": "good", + "show_intensity": true, + "max_intensity": 25, + "int_add_val": 1 + }, + { + "type": "effect_type", + "id": "biomancer_cl_booster_effect", + "name": [ "Biomancer boost" ], + "desc": [ "Your biomancer spells are empowered." ], + "remove_message": "Your biomancer boost fades.", + "rating": "good", + "show_intensity": true, + "max_intensity": 25, + "int_add_val": 1 + }, + { + "type": "effect_type", + "id": "earthshaper_fortitude_of_stone", + "name": [ "Stones' Fortitude" ], + "desc": [ "You feel little hunger or thirst." ], + "apply_message": "", + "remove_message": "Your stomach suddenly rumbles as you feel a pang of hunger.", + "rating": "good", + "max_duration": "24 hours", + "enchantments": [ + { + "values": [ + { + "value": "HUNGER", + "multiply": { "math": [ "(-0.2 - (0.04 * u_val('spell_level', 'spell: earthshaper_fortitude_of_stone')))" ] } + }, + { + "value": "THIRST", + "multiply": { "math": [ "(-0.2 - (0.04 * u_val('spell_level', 'spell: earthshaper_fortitude_of_stone')))" ] } + }, + { + "value": "METABOLISM", + "multiply": { "math": [ "(-0.2 - (0.04 * u_val('spell_level', 'spell: earthshaper_fortitude_of_stone')))" ] } + }, + { "value": "REGEN_HP", "multiply": -1.0 } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_tremorsense", + "name": [ "Tremorsense" ], + "desc": [ "You can feel them moving around you." ], + "apply_message": "", + "remove_message": "You can no longer discern the vibrations of the living earth.", + "rating": "good", + "max_duration": "30 minutes", + "enchantments": [ + { + "values": [ + { + "value": "MOTION_VISION_RANGE", + "add": { "math": [ "( u_val('spell_level', 'spell: earthshaper_danger_sense') * 3)" ] } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_sense_outsiders", + "name": [ "Sense Outsider" ], + "desc": [ "You can sense the presence of things that should not be." ], + "apply_message": "", + "remove_message": "Your awareness of outsiders fades.", + "rating": "good", + "enchantments": [ + { + "values": [ + { + "value": "SIGHT_RANGE_NETHER", + "add": { "math": [ "(( u_val('spell_level', 'spell: animist_sense_outsiders') * 2.5) + 3)" ] } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_kelvinist_anti_cold", + "name": [ "Cloak of Warmth" ], + "desc": [ "The air around you is warmer thanks to your magic." ], + "apply_message": "", + "remove_message": "A cool breeze hits your skin.", + "rating": "good", + "removes_effects": [ "effect_kelvinist_anti_heat" ], + "enchantments": [ + { + "emitter": "emit_kelvinist_anti_cold", + "values": [ + { "value": "CLIMATE_CONTROL_HEAT", "add": 50 }, + { + "value": "ARMOR_COLD", + "add": { "math": [ "( u_val('spell_level', 'spell: kelvinist_anti_cold') * -1)" ] } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_kelvinist_anti_heat", + "name": [ "Cloak of Chill" ], + "desc": [ "The air around you is cooler thanks to your magic." ], + "apply_message": "", + "remove_message": "A warm breeze hits your skin.", + "rating": "good", + "removes_effects": [ "effect_kelvinist_anti_cold" ], + "enchantments": [ + { + "emitter": "emit_kelvinist_anti_heat", + "values": [ + { "value": "CLIMATE_CONTROL_CHILL", "add": 50 }, + { + "value": "ARMOR_HEAT", + "add": { "math": [ "( u_val('spell_level', 'spell: kelvinist_anti_heat') * -1)" ] } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_magus_slowfall", + "name": [ "Slowfall" ], + "desc": [ "You won't hit the ground nearly as hard anymore." ], + "apply_message": "", + "remove_message": "You can feel gravity take hold of you again.", + "enchantments": [ + { + "values": [ + { + "value": "FALL_DAMAGE", + "multiply": { "math": [ "(( u_val('spell_level', 'spell: magus_slowfall') * -0.01) - 0.9 )" ] } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_magus_spiderclimb", + "name": [ "Spider Climb" ], + "desc": [ "You can quickly ascend sheer surfaces." ], + "apply_message": "", + "remove_message": "Your enhanced climbing ability vanishes.", + "flags": [ "CLIMB_NO_LADDER", "WALL_CLING" ] + }, + { + "type": "effect_type", + "id": "effect_biomancer_swim_speed", + "name": [ "Frog Limbs" ], + "desc": [ "Your hands and feet have grown webbing, enabling faster swimming." ], + "//": "Minor stamina regen to help with swimming. If people want to cast this spell as a stamina buff, they're welcome to do it and deal with their froggy limbs.", + "apply_message": "", + "remove_message": "With an unpleasant twisting sensation your hands and feet return to normal.", + "rating": "good", + "flags": [ "WEBBED_HANDS", "WEBBED_FEET" ], + "base_mods": { "stamina_min": [ 10 ] } + }, + { + "id": "effect_biomancer_remove_instability", + "type": "effect_type", + "name": [ "Increased Stability" ], + "desc": [ + "You are overcoming the aftereffects of XE037 overexposure.", + "You were just overcoming the aftereffects of XE037 overexposure but now you feel awful!" + ], + "apply_message": "You feel…strange.", + "remove_message": "The strange feeling passes and you feel more like yourself.", + "rating": "good", + "max_intensity": 2, + "show_intensity": false, + "vitamins": [ { "vitamin": "instability", "rate": [ [ -1, -1 ] ], "tick": [ "30 m" ] } ], + "scaling_mods": { "speed_mod": [ -25 ], "str_mod": [ -5 ], "dex_mod": [ -5 ], "int_mod": [ -5 ], "per_mod": [ -5 ] }, + "limb_score_mods": [ + { "limb_score": "manip", "modifier": 1, "scaling": -0.3 }, + { "limb_score": "block", "modifier": 1.0, "scaling": -0.2 }, + { "limb_score": "vision", "modifier": 1.0, "scaling": -0.05 }, + { "limb_score": "reaction", "modifier": 1, "scaling": -0.3 }, + { "limb_score": "move_speed", "modifier": 1.0, "scaling": -0.05 }, + { "limb_score": "balance", "modifier": 1, "scaling": -0.2 }, + { "limb_score": "footing", "modifier": 1, "scaling": -0.3 }, + { "limb_score": "swim", "modifier": 1.0, "scaling": -0.2 } + ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "id": "effect_biomancer_carrion_feast", + "type": "effect_type", + "name": [ "Carrion Feast" ], + "desc": [ "You can eat rotten food without any trouble, if you can stand the taste." ], + "apply_message": "Your have a hunger for some overly-aged meat.", + "remove_message": "You can't believe you even considered eating that! Yuck!", + "rating": "good", + "show_intensity": false, + "flags": [ "IMMUNE_SPOIL", "PARAIMMUNE" ], + "blocks_effects": [ "foodpoison" ], + "vitamins": [ { "vitamin": "mutant_toxin", "rate": [ [ -1, -1 ] ], "absorb_mult": [ 0.5 ], "tick": [ "30 s" ] } ] + }, + { + "id": "effect_classless_watch", + "type": "effect_type", + "name": [ "Know the Day and the Hour" ], + "desc": [ "You know exactly what time it is." ], + "apply_message": "", + "remove_message": "Your perfect sense of time fades away.", + "max_duration": "24 hours", + "flags": [ "WATCH" ] + }, + { + "type": "effect_type", + "id": "effect_cloak_of_fog", + "name": [ "Cloak of Fog" ], + "desc": [ "The fog shields you from sight." ], + "apply_message": "", + "remove_message": "The fog begins to dissipate.", + "rating": "good", + "max_duration": "10 minutes", + "enchantments": [ "enchant_stormshaper_cloak_of_fog" ] + }, + { + "type": "effect_type", + "id": "effect_heart_of_hurricane", + "name": [ "Heart of the Hurricane" ], + "desc": [ "Barely-controlled winds rage around you." ], + "remove_message": "The wind around you dies down.", + "rating": "good", + "enchantments": [ "enchant_stormshaper_heart_of_hurricane" ] + }, + { + "type": "effect_type", + "id": "effect_biomancer_cure_disease_minor", + "name": [ "Cure Disease, Minor" ], + "desc": [ "Cold and flu begone." ], + "remove_message": "You feel much better.", + "rating": "good", + "removes_effects": [ "common_cold", "flu" ] + }, + { + "type": "effect_type", + "id": "effect_flesh_rending", + "name": [ "Rending" ], + "desc": [ "Your flesh is twisting itself apart!" ], + "apply_message": "Your flesh writhes where you were hit!", + "rating": "bad", + "max_duration": "10 s", + "base_mods": { "hurt_min": [ 1 ], "hurt_chance": [ 1 ], "hurt_chance_bot": [ 5 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "effect_teleport_anchor", + "name": [ "Teleport Anchor" ], + "desc": [ "You're not going anywhere." ], + "apply_message": "Your body tingles.", + "rating": "bad", + "flags": [ "DIMENSIONAL_ANCHOR" ] + }, + { + "id": "effect_dispel_magic", + "type": "effect_type", + "name": [ "Dispel Magic" ], + "//": "Removes effects from spells Difficulty 6 or below. No attumement effects removed.", + "desc": [ "Enchantments are being stripped away from you." ], + "apply_message": "", + "remove_message": "You feel a sudden sense of loss.", + "max_duration": "2 seconds", + "removes_effects": [ + "enchant_windrun", + "dark_sight", + "effect_ethereal_grasp", + "invisibility", + "bless", + "bio_boost", + "entangled", + "root_impale", + "ogres_strength", + "eagles_sight", + "cats_grace", + "foxs_cunning", + "feather_fall", + "bio_weave", + "natures_commune", + "electric_eye", + "electric_waves", + "electric_arts", + "flower_fern_eff", + "glowing_mushroom_eff", + "flask_speed_eff", + "flask_healing_eff", + "flask_stamina_eff", + "flask_excitement", + "flask_resistance", + "flask_illumination", + "flask_mana_regen", + "flask_max_mana", + "flask_regeneration", + "earthshaper_fortitude_of_stone", + "effect_tremorsense", + "effect_sense_outsiders", + "effect_kelvinist_anti_cold", + "effect_kelvinist_anti_heat", + "effect_magus_slowfall", + "effect_magus_spiderclimb", + "effect_biomancer_swim_speed", + "effect_biomancer_carrion_feast", + "effect_classless_watch", + "effect_obfuscating_aura", + "effect_shape_of_dust", + "effect_acid_res_aura", + "effect_acid_res_aura_greater", + "effect_thorns_electric" + ] + }, + { + "id": "effect_disjunction", + "type": "effect_type", + "name": [ "Disjunction" ], + "//": "Removes all effects from spells.", + "desc": [ "All enchantments are being stripped away from you." ], + "apply_message": "", + "remove_message": "You feel a sudden acute sense of loss.", + "max_duration": "2 seconds", + "removes_effects": [ + "enchant_windrun", + "dark_sight", + "effect_ethereal_grasp", + "invisibility", + "bless", + "bio_boost", + "entangled", + "root_impale", + "ogres_strength", + "eagles_sight", + "cats_grace", + "foxs_cunning", + "feather_fall", + "bio_weave", + "natures_commune", + "electric_eye", + "electric_waves", + "electric_arts", + "flower_fern_eff", + "glowing_mushroom_eff", + "flask_speed_eff", + "flask_healing_eff", + "flask_stamina_eff", + "flask_excitement", + "flask_resistance", + "flask_illumination", + "flask_mana_regen", + "flask_max_mana", + "flask_regeneration", + "earthshaper_fortitude_of_stone", + "effect_tremorsense", + "effect_sense_outsiders", + "effect_kelvinist_anti_cold", + "effect_kelvinist_anti_heat", + "effect_magus_slowfall", + "effect_magus_spiderclimb", + "effect_biomancer_swim_speed", + "effect_biomancer_carrion_feast", + "effect_classless_watch", + "effect_obfuscating_aura", + "effect_shape_of_dust", + "effect_acid_res_aura", + "effect_acid_res_aura_greater", + "effect_thorns_electric", + "haste", + "synaptic_stim", + "slow_freeze_effect", + "neuro_boost", + "cold_heart_effect", + "overclocker_drive_effect", + "biomechanic", + "ice_energy", + "ice_age_eff", + "effect_biomancer_remove_instability", + "effect_terra_armor", + "gravity_mage_melee", + "eff_storm_elemental_electric_melee" + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/effects/effects_fantasy_species.json b/data/Mainline_mods/Mods/Magiclysm/effects/effects_fantasy_species.json new file mode 100644 index 000000000..2e6f27160 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/effects/effects_fantasy_species.json @@ -0,0 +1,82 @@ +[ + { + "type": "effect_type", + "id": "mutagen_species_dwarf", + "name": [ "Dwarven Purification", "Dwarven Reversion", "Dwarven Regression" ], + "desc": [ + "You consumed purifier.", + "You consumed a large amount of purifier. Why does it feel so strange?", + "You consumed a huge amount of purifier, and you can tell that something isn't right." + ], + "max_intensity": 3, + "resist_traits": [ ], + "base_mods": { "str_mod": [ 0, -2 ], "per_mod": [ 0, -2 ], "dex_mod": [ 0, -2 ], "int_mod": [ 0, -2 ] }, + "scaling_mods": { "str_mod": [ 0, -2.5 ], "per_mod": [ 0, -2.5 ], "dex_mod": [ 0, -2.5 ], "int_mod": [ 0, -2.5 ] }, + "rating": "bad", + "blood_analysis_description": "Dwarven Primer Contamination" + }, + { + "type": "effect_type", + "id": "mutagen_species_elf", + "name": [ "Elven Purification", "Elven Reversion", "Elven Regression" ], + "desc": [ + "You consumed purifier.", + "You consumed a large amount of purifier. Why does it feel so strange?", + "You consumed a huge amount of purifier, and you can tell that something isn't right." + ], + "max_intensity": 3, + "resist_traits": [ ], + "base_mods": { "str_mod": [ 0, -2 ], "per_mod": [ 0, -2 ], "dex_mod": [ 0, -2 ], "int_mod": [ 0, -2 ] }, + "scaling_mods": { "str_mod": [ 0, -2.5 ], "per_mod": [ 0, -2.5 ], "dex_mod": [ 0, -2.5 ], "int_mod": [ 0, -2.5 ] }, + "rating": "bad", + "blood_analysis_description": "Elven Primer Contamination" + }, + { + "type": "effect_type", + "id": "mutagen_species_goblin", + "name": [ "Goblin Purification", "Goblin Reversion", "Goblin Regression" ], + "desc": [ + "You consumed purifier.", + "You consumed a large amount of purifier. Why does it feel so strange?", + "You consumed a huge amount of purifier, and you can tell that something isn't right." + ], + "max_intensity": 3, + "resist_traits": [ ], + "base_mods": { "str_mod": [ 0, -2 ], "per_mod": [ 0, -2 ], "dex_mod": [ 0, -2 ], "int_mod": [ 0, -2 ] }, + "scaling_mods": { "str_mod": [ 0, -2.5 ], "per_mod": [ 0, -2.5 ], "dex_mod": [ 0, -2.5 ], "int_mod": [ 0, -2.5 ] }, + "rating": "bad", + "blood_analysis_description": "Goblin Primer Contamination" + }, + { + "type": "effect_type", + "id": "mutagen_species_lizardfolk", + "name": [ "Lizardfolk Purification", "Lizardfolk Reversion", "Lizardfolk Regression" ], + "desc": [ + "You consumed purifier.", + "You consumed a large amount of purifier. Why does it feel so strange?", + "You consumed a huge amount of purifier, and you can tell that something isn't right." + ], + "max_intensity": 3, + "resist_traits": [ ], + "base_mods": { "str_mod": [ 0, -2 ], "per_mod": [ 0, -2 ], "dex_mod": [ 0, -2 ], "int_mod": [ 0, -2 ] }, + "scaling_mods": { "str_mod": [ 0, -2.5 ], "per_mod": [ 0, -2.5 ], "dex_mod": [ 0, -2.5 ], "int_mod": [ 0, -2.5 ] }, + "rating": "bad", + "blood_analysis_description": "Lizardfolk Primer Contamination" + }, + { + "type": "effect_type", + "id": "mutagen_species_ravenfolk", + "name": [ "Ravenfolk Purification", "Ravenfolk Reversion", "Ravenfolk Regression" ], + "desc": [ + "You consumed purifier.", + "You consumed a large amount of purifier. Why does it feel so strange?", + "You consumed a huge amount of purifier, and you can tell that something isn't right." + ], + "max_intensity": 3, + "resist_traits": [ ], + "base_mods": { "str_mod": [ 0, -2 ], "per_mod": [ 0, -2 ], "dex_mod": [ 0, -2 ], "int_mod": [ 0, -2 ] }, + "scaling_mods": { "str_mod": [ 0, -2.5 ], "per_mod": [ 0, -2.5 ], "dex_mod": [ 0, -2.5 ], "int_mod": [ 0, -2.5 ] }, + "rating": "bad", + "blood_analysis_description": "Ravenfolk Primer Contamination" + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/emitter.json b/data/Mainline_mods/Mods/Magiclysm/emitter.json index 963ff01c4..f31f251a2 100644 --- a/data/Mainline_mods/Mods/Magiclysm/emitter.json +++ b/data/Mainline_mods/Mods/Magiclysm/emitter.json @@ -22,19 +22,63 @@ "chance": 100 }, { - "id": "emit_cold_energy_weak", + "id": "emit_cold_energy_strong", "type": "emit", "field": "fd_cold_energy", + "intensity": 3, + "qty": 300, + "chance": 100 + }, + { + "id": "emit_electric_sparks", + "type": "emit", + "field": "fd_electricity", + "intensity": 1, + "qty": 10 + }, + { + "id": "emit_eshaper_dust", + "type": "emit", + "field": "fd_eshaper_dust", "intensity": 1, - "qty": 15, + "qty": 22, "chance": 100 }, { - "id": "emit_cold_energy_strong", + "id": "emit_kelvinist_anti_heat", "type": "emit", - "field": "fd_cold_energy", + "field": "fd_kelvinist_cold", "intensity": 3, "qty": 300, "chance": 100 + }, + { + "id": "emit_kelvinist_anti_cold", + "type": "emit", + "field": "fd_kelvinist_warmth", + "intensity": 3, + "qty": 300, + "chance": 100 + }, + { + "id": "emit_rad_mage", + "type": "emit", + "field": "fd_rad_mage_aura", + "intensity": 1, + "qty": 4 + }, + { + "id": "emit_rad_mage_cloud", + "type": "emit", + "field": "fd_rad_mage_aura", + "intensity": 3, + "qty": 100 + }, + { + "id": "emit_obscuring_fog", + "type": "emit", + "field": "fd_obscuring_fog", + "intensity": 3, + "qty": 80 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Basic_Classes.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Basic_Classes.json new file mode 100644 index 000000000..8071e3d08 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Basic_Classes.json @@ -0,0 +1,12 @@ +[ + { + "type": "enchantment", + "id": "KELVINIST", + "values": [ { "value": "ARMOR_HEAT", "add": { "math": [ "u_val('spell_level', 'school: KELVINIST') / -6" ] } } ] + }, + { + "type": "enchantment", + "id": "STORMSHAPER", + "values": [ { "value": "ARMOR_ELEC", "add": { "math": [ "u_val('spell_level', 'school: STORMSHAPER') / -6" ] } } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Blood_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Blood_Mage.json new file mode 100644 index 000000000..405a8d5e4 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Blood_Mage.json @@ -0,0 +1,21 @@ +[ + { + "type": "enchantment", + "id": "BLOOD_MAGE", + "name": { "str": "Ichor" }, + "description": "Your Blood Mage abilities grant you the ability to steal some health from your enemies from time to time, and immunity to bleeding.", + "hit_you_effect": [ { "id": "blood_mage_healing", "hit_self": true, "once_in": 12 } ] + }, + { + "id": "blood_mage_healing", + "type": "SPELL", + "name": "Blood Mage Healing Effect", + "description": "Heals the caster.", + "valid_targets": [ "self" ], + "min_damage": -1, + "max_damage": -1, + "effect": "attack", + "shape": "blast", + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Boreal_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Boreal_Mage.json new file mode 100644 index 000000000..320c18a90 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Boreal_Mage.json @@ -0,0 +1,78 @@ +[ + { + "type": "enchantment", + "id": "BOREAL_MAGE", + "name": { "str": "Boreal Wind" }, + "description": "Your Boreal Mage abilities grant you good resistance to temperature conditions. Also your hands emit a small amount of cold, increasing your damage in melee.", + "condition": "ALWAYS", + "values": [ + { "value": "ITEM_DAMAGE_COLD", "add": 9 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 10 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 30 } + ] + }, + { + "id": "boreal_mage_cold_damage", + "type": "SPELL", + "name": "Boreal Mage Cold Damage", + "description": "AoE cold attack around the player. If you are seeing this spell, you have debugged it in.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "shape": "blast", + "min_damage": 5, + "max_damage": 5, + "min_aoe": 3, + "max_aoe": 3, + "damage_type": "cold" + }, + { + "type": "enchantment", + "id": "BOREAL_MAGE_AURA", + "condition": "ALWAYS", + "intermittent_activation": { "effects": [ { "frequency": "5 seconds", "spell_effects": [ { "id": "boreal_mage_cold_damage" } ] } ] } + }, + { + "type": "effect_on_condition", + "id": "EOC_GIVE_COLD_AURA_OFF", + "recurrence": [ "60 s", "60 s" ], + "condition": { + "and": [ + { "u_has_trait": "BOREAL_MAGE" }, + { + "not": { "u_has_var": "u_got_boreal_mage_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + } + ] + }, + "deactivate_condition": { "not": { "u_has_trait": "BOREAL_MAGE" } }, + "effect": [ + { "u_add_trait": "COLD_AURA_OFF" }, + { "u_add_var": "u_got_boreal_mage_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + ] + }, + { + "type": "mutation", + "id": "COLD_AURA_OFF", + "starting_trait": false, + "purifiable": false, + "valid": false, + "name": { "str": "Cold Aura" }, + "points": 0, + "active": true, + "description": "Your presence is so dangerous you can freeze everything around yourself. You are currently suppressing this power.", + "transform": { "target": "COLD_AURA_ON", "msg_transform": "Everything around you is covered in frost!", "active": true, "moves": 10 } + }, + { + "type": "mutation", + "id": "COLD_AURA_ON", + "starting_trait": false, + "purifiable": false, + "valid": false, + "active": true, + "name": { "str": "Cold Aura (on)" }, + "points": -1, + "description": "Your presence is so dangerous you can freeze everything around yourself.", + "enchantments": [ "BOREAL_MAGE_AURA" ], + "transform": { "target": "COLD_AURA_OFF", "msg_transform": "You suppress your frozen powers.", "active": false, "moves": 10 } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Cleansing_Flame.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Cleansing_Flame.json new file mode 100644 index 000000000..5161a3c05 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Cleansing_Flame.json @@ -0,0 +1,10 @@ +[ + { + "type": "enchantment", + "id": "CLEANSING_FLAME", + "name": { "str": "Cleansing Blaze" }, + "description": "Your Cleansing Flame abilities grant you good resistance to temperature conditions. You are also immune to infection, as your body cleanses every tainted part of you, constantly.", + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 30 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 10 } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Earth_Elemental.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Earth_Elemental.json new file mode 100644 index 000000000..e46ed03e7 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Earth_Elemental.json @@ -0,0 +1,15 @@ +[ + { + "type": "enchantment", + "id": "EARTH_ELEMENTAL", + "name": { "str": "Earth Creep" }, + "description": "Your Earth Elemental body grant you good resistance against cut damage, total immunity to electricity, great strength, and colossal stamina.", + "condition": "ALWAYS", + "values": [ + { "value": "ARMOR_CUT", "add": -15 }, + { "value": "STRENGTH", "add": 5 }, + { "value": "MAX_STAMINA", "multiply": 3 }, + { "value": "REGEN_STAMINA", "multiply": 3 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Fire_Elemental.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Fire_Elemental.json index ac58513d8..973d994b4 100644 --- a/data/Mainline_mods/Mods/Magiclysm/enchantments/Fire_Elemental.json +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Fire_Elemental.json @@ -16,8 +16,20 @@ { "type": "enchantment", "id": "FIRE_ELEMENTAL", + "name": { "str": "Salamander" }, + "description": "Your Fire Elemental abilities grant you good resistance to temperature conditions and heat damage. Also, your body emits streams of blistering heat towards anyone who attacks you.", "condition": "ALWAYS", - "values": [ { "value": "ARMOR_HEAT", "multiply": -0.4 } ], - "hit_me_effect": [ { "id": "FIRE_ELEMENTAL_BURNBACK" } ] + "values": [ + { "value": "ARMOR_HEAT", "multiply": -0.4 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 30 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 10 } + ], + "hit_me_effect": [ + { + "id": "FIRE_ELEMENTAL_BURNBACK", + "message": "Flame and heat flash out from where you've been hit.", + "npc_message": "%1$s's body jets fire and heat out from the wound." + } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Force_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Force_Mage.json index f5dac5d8a..8a5516c6c 100644 --- a/data/Mainline_mods/Mods/Magiclysm/enchantments/Force_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Force_Mage.json @@ -3,6 +3,8 @@ "type": "enchantment", "id": "FORCE_MAGE", "condition": "ALWAYS", + "name": { "str": "Motion" }, + "description": "Your Force Mage abilities grant you better speed, and increased damage in melee.", "values": [ { "value": "MELEE_DAMAGE", "multiply": 1 }, { "value": "SPEED", "multiply": 0.2 } ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Gaias_Chosen.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Gaias_Chosen.json index ebff0bc7a..b3437de89 100644 --- a/data/Mainline_mods/Mods/Magiclysm/enchantments/Gaias_Chosen.json +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Gaias_Chosen.json @@ -12,13 +12,113 @@ "valid_targets": [ "hostile" ], "damage_type": "cut", "min_range": 1, - "max_range": 1, - "extra_effects": [ { "id": "AEA_PAIN", "hit_self": true } ] + "max_range": 1 }, { "type": "enchantment", "id": "GAIAS_CHOSEN", "condition": "ALWAYS", - "hit_me_effect": [ { "id": "GAIAS_CHOSEN_THORNS" } ] + "name": { "str": "Gaia's Champion" }, + "description": "Your Gaia's Chosen abilities grant you bigger HP pool, and your enemies impale themselves upon your thorns when they attack you.", + "values": [ { "value": "MAX_HP", "multiply": 0.3 } ], + "hit_me_effect": [ + { + "id": "GAIAS_CHOSEN_THORNS", + "message": "Thorns tear at your opponent as they strike you.", + "npc_message": "%1$s's thorny brambles bite into their attacker." + } + ] + }, + { + "type": "mutation", + "id": "DUST_REBORN", + "name": { "str": "Split" }, + "description": "Your body and soul were split in half, and part of it were left inside the ley-line, connected with your main body with tiniest, ethereal thread. In danger situation, you will abandon your main body and turn back into copy, with all knowledge and skills you have.", + "points": 0, + "valid": false, + "purifiable": false + }, + { + "type": "effect_on_condition", + "id": "EOC_DUST_REBORN_INITIAL", + "effect": [ + { "u_location_variable": { "u_val": "dust_reborn_teleport" }, "min_radius": 0, "max_radius": 0 }, + { "u_add_effect": "effect_dust_reborn", "duration": "30 days" }, + { "u_add_trait": "DUST_REBORN" }, + { "u_message": "Part of your body and soul were divorced.", "type": "neutral" } + ] + }, + { + "id": "effect_dust_reborn", + "type": "effect_type", + "name": [ "Divided" ], + "desc": [ "Your body was split before, which makes you really fragile, but allow you to accept more mana than before." ], + "remove_message": "Your body turns back to normal state.", + "enchantments": [ { "values": [ { "value": "MAX_HP", "multiply": -0.7 }, { "value": "MAX_MANA", "multiply": 0.3 } ] } ] + }, + { + "id": "EOC_DUST_REBORN", + "type": "effect_on_condition", + "eoc_type": "PREVENT_DEATH", + "condition": { "u_has_trait": "DUST_REBORN" }, + "effect": [ + { "u_add_effect": "incorporeal", "duration": 1 }, + { "u_add_effect": "downed", "duration": 1 }, + { "u_set_hp": 999, "only_increase": true }, + { "math": [ "u_val('stored_kcal')", "=", "70000" ] }, + { "u_spawn_item": "corpse_painful" }, + { "queue_eocs": "EOC_DUST_REBORN_2", "time_in_future": "1 seconds" }, + { + "u_message": "You feel an insane pain, as your soul is pulled off, out of your body. Second later, your mind were pulled somewhere else, in the place you visit before." + } + ] + }, + { + "id": "EOC_DUST_REBORN_2", + "type": "effect_on_condition", + "//": "This is two step EoC to make incorporeal effect trigger properly - without it you do not drop your items properly. Also remove all mutagen from your body, empty your fat (because its a backup body, contain not much of calories.)", + "condition": { "u_has_trait": "DUST_REBORN" }, + "effect": [ + { "u_teleport": { "u_val": "dust_reborn_teleport" } }, + { "u_lose_trait": "DUST_REBORN" }, + { "math": [ "u_pain()", "=", "0" ] }, + { "arithmetic": [ { "u_val": "thirst" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "bad_food" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "blood" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "calcium" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "instability" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "iron" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_alpha" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_batrachian" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_beast" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_bird" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_cattle" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_cephalopod" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_chelator" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_chimera" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_elfa" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_feline" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_fish" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_gastropod" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_human" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_insect" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_lizard" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_lupine" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_medical" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_mouse" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_plant" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_rabbit" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_raptor" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_rat" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_slime" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_spider" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_troglobite" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_ursine" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutagenic_slurry" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "mutant_toxin" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "redcells" }, "=", { "const": 0 } ] }, + { "arithmetic": [ { "u_val": "vitamin", "name": "vitC" }, "=", { "const": 0 } ] } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Glacier_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Glacier_Mage.json new file mode 100644 index 000000000..cd7e2fd9d --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Glacier_Mage.json @@ -0,0 +1,99 @@ +[ + { + "id": "glacier_mage_attack", + "type": "SPELL", + "name": "Glacier Mage Attack", + "description": "Deal some damage to a monster you attack.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "NO_PROJECTILE", "RANDOM_DAMAGE", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "ice_age_eff", + "min_range": 1, + "max_range": 1, + "min_damage": 19, + "max_damage": 31, + "min_duration": 150, + "max_duration": 900, + "shape": "blast", + "damage_type": "bash" + }, + { + "type": "enchantment", + "id": "GLACIER_MAGE", + "condition": "ALWAYS", + "name": { "str": "Stalactite" }, + "description": "Your Glacier Mage abilities grant you good resistance to temperature conditions. Also your attacks may deal additional cold damage from time to time.", + "//": "push attacks", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 10 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 30 } ], + "hit_you_effect": [ { "id": "glacier_mage_attack", "once_in": 14 } ] + }, + { + "id": "glacier_mage_bash_damage", + "type": "SPELL", + "name": "Glacier Mage Bash AoE", + "description": "Deal some bash damage around the player.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "shape": "blast", + "min_damage": 13, + "max_damage": 13, + "min_aoe": 1, + "max_aoe": 1, + "damage_type": "bash" + }, + { + "type": "enchantment", + "id": "glacier_mage_bash_aoe", + "condition": "ALWAYS", + "intermittent_activation": { "effects": [ { "frequency": "5 seconds", "spell_effects": [ { "id": "glacier_mage_bash_damage" } ] } ] } + }, + { + "type": "effect_on_condition", + "id": "EOC_GIVE_FROZEN_PRESSURE_OFF", + "recurrence": [ "60 s", "60 s" ], + "condition": { + "and": [ + { "u_has_trait": "GLACIER_MAGE" }, + { + "not": { "u_has_var": "u_got_glacier_mage_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + } + ] + }, + "deactivate_condition": { "not": { "u_has_trait": "GLACIER_MAGE" } }, + "effect": [ + { "u_add_trait": "FROZEN_PRESSURE_OFF" }, + { "u_add_var": "u_got_glacier_mage_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + ] + }, + { + "type": "mutation", + "id": "FROZEN_PRESSURE_OFF", + "starting_trait": false, + "purifiable": false, + "valid": false, + "name": { "str": "Frozen Pressure" }, + "points": 0, + "active": true, + "description": "Your presence is so dangerous living creatures nearby are smashed. You are currently suppressing this power.", + "transform": { + "target": "FROZEN_PRESSURE_ON", + "msg_transform": "Living creatures around you are crushed!", + "active": true, + "moves": 10 + } + }, + { + "type": "mutation", + "id": "FROZEN_PRESSURE_ON", + "starting_trait": false, + "purifiable": false, + "valid": false, + "active": true, + "name": { "str": "Frozen Pressure (on)" }, + "points": 0, + "description": "Your presence is so dangerous living creatures nearby are smashed.", + "enchantments": [ "glacier_mage_bash_aoe" ], + "transform": { "target": "FROZEN_PRESSURE_OFF", "msg_transform": "You suppress your frozen pressure.", "active": false, "moves": 10 } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Golemancer.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Golemancer.json new file mode 100644 index 000000000..663f84549 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Golemancer.json @@ -0,0 +1,46 @@ +[ + { + "id": "golemancer_block", + "type": "SPELL", + "name": "Golemancer's block", + "description": "Block huge damage in the next 1 second.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "golemancer_block", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], + "min_duration": 150, + "max_duration": 150 + }, + { + "id": "golemancer_block", + "type": "effect_type", + "name": [ "Golemancer's block" ], + "desc": [ "Decrease any damage taken in the next 1 second." ], + "rating": "good", + "show_intensity": false, + "show_in_info": false, + "enchantments": [ + { + "values": [ + { "value": "ARMOR_BASH", "add": -20 }, + { "value": "ARMOR_CUT", "add": -20 }, + { "value": "ARMOR_STAB", "add": -20 }, + { "value": "ARMOR_BULLET", "add": -20 }, + { "value": "ARMOR_HEAT", "add": -20 }, + { "value": "ARMOR_COLD", "add": -20 }, + { "value": "ARMOR_ELEC", "add": -20 }, + { "value": "ARMOR_ACID", "add": -20 }, + { "value": "ARMOR_BIO", "add": -20 } + ] + } + ] + }, + { + "type": "enchantment", + "id": "GOLEMANCER", + "name": { "str": "Clay" }, + "description": "Your Golemancer abilities make you perfectly steady, as nothing can slow you down. Your body also deflects some of the damage you take.", + "hit_me_effect": [ { "id": "golemancer_block", "hit_self": true, "once_in": 5 } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Gravity_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Gravity_Mage.json new file mode 100644 index 000000000..d70c4a2d9 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Gravity_Mage.json @@ -0,0 +1,14 @@ +[ + { + "type": "enchantment", + "id": "GRAVITY_MAGE", + "name": { "str": "Weight" }, + "description": "Your Gravity Mage abilities increase your attack speed and melee damage for a bit, double your ability to carry weight, and allow you to climb without using ladders or support.", + "condition": "ALWAYS", + "values": [ + { "value": "CARRY_WEIGHT", "multiply": 1 }, + { "value": "ATTACK_SPEED", "multiply": 0.1 }, + { "value": "MELEE_DAMAGE", "multiply": 0.1 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Ice_Elemental.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Ice_Elemental.json index 1f51c7c02..94ea985f4 100644 --- a/data/Mainline_mods/Mods/Magiclysm/enchantments/Ice_Elemental.json +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Ice_Elemental.json @@ -6,7 +6,7 @@ "description": "The cold damage effect from the Ice Elemental Attunement.", "effect": "attack", "shape": "blast", - "flags": [ "NO_PROJECTILE" ], + "flags": [ "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], "min_damage": 5, "max_damage": 5, "valid_targets": [ "hostile" ], @@ -17,8 +17,21 @@ { "type": "enchantment", "id": "ICE_ELEMENTAL", + "name": { "str": "Iceberg" }, + "description": "Your Ice Elemental abilities grant you good resistance to temperature conditions and cold damage, your hands can emit small amount of cold, increasing your damage in melee, and enemies impale themselves on ice spikes when they attack you", "condition": "ALWAYS", - "values": [ { "value": "ARMOR_COLD", "multiply": -0.4 } ], - "hit_you_effect": [ { "id": "ICE_ELEMENTAL_COLD_DAMAGE" } ] + "values": [ + { "value": "ARMOR_COLD", "multiply": -0.4 }, + { "value": "ITEM_DAMAGE_COLD", "add": 9 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 10 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 30 } + ], + "hit_you_effect": [ + { + "id": "ICE_ELEMENTAL_COLD_DAMAGE", + "message": "Frost rimes over your attacker as they strike you.", + "npc_message": "A coating of frost appears on their opponent as %1$s is struck." + } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Magnetism_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Magnetism_Mage.json new file mode 100644 index 000000000..44cc16a49 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Magnetism_Mage.json @@ -0,0 +1,9 @@ +[ + { + "type": "enchantment", + "id": "MAGNETISM_MAGE", + "name": { "str": "Power" }, + "description": "Your Magnetism Mage abilities grant you a good defence against firearms, perfect electric immunity, and the ability to see electric creatures from any distance.", + "values": [ { "value": "ARMOR_BULLET", "add": -50 }, { "value": "SIGHT_RANGE_ELECTRIC", "add": 1000 } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Permafrost_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Permafrost_Mage.json new file mode 100644 index 000000000..872460ddc --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Permafrost_Mage.json @@ -0,0 +1,25 @@ +[ + { + "id": "permafrost_mage_moves_substract", + "type": "SPELL", + "name": "Permafrost Mage Moves Substact", + "description": "Substract some moves from monster that attack you.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "RANDOM_DAMAGE", "NO_EXPLOSION_SFX" ], + "shape": "blast", + "effect": "mod_moves", + "min_damage": -75, + "max_damage": -225, + "min_range": 2, + "max_range": 2 + }, + { + "type": "enchantment", + "id": "PERMAFROST_MAGE", + "condition": "ALWAYS", + "name": { "str": "Blizzard" }, + "description": "Your Permafrost Mage abilities grant you good resistance to temperature conditions. Also every enemy attack cause it to freeze for a few seconds.", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 10 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 30 } ], + "hit_me_effect": [ { "id": "permafrost_mage_moves_substract" } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Radiaton_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Radiaton_Mage.json new file mode 100644 index 000000000..2aa4bf83d --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Radiaton_Mage.json @@ -0,0 +1,70 @@ +[ + { + "id": "radiation_mage_clairvoyance", + "type": "SPELL", + "name": "Radiation Mage Clairvoyance", + "description": "Emit clairvoyance around the player.", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "ally", "hostile", "ground", "self" ], + "flags": [ "SILENT", "IGNORE_WALLS", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], + "min_aoe": 4, + "max_aoe": 4, + "field_id": "fd_clairvoyant", + "min_field_intensity": 1, + "max_field_intensity": 1 + }, + { + "type": "enchantment", + "id": "RADIATION_MAGE_CLAIRVOYANCE", + "intermittent_activation": { "effects": [ { "frequency": "1 seconds", "spell_effects": [ { "id": "radiation_mage_clairvoyance" } ] } ] } + }, + { + "type": "effect_on_condition", + "id": "EOC_GIVE_CLAIRVOYANCE_OFF", + "recurrence": [ "60 s", "60 s" ], + "condition": { + "and": [ + { "u_has_trait": "RADIATION_MAGE" }, + { + "not": { "u_has_var": "u_got_radiation_mage_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + } + ] + }, + "deactivate_condition": { "not": { "u_has_trait": "RADIATION_MAGE" } }, + "effect": [ + { "u_add_trait": "CLAIRVOYANCE_OFF" }, + { + "u_add_var": "u_got_radiation_mage_attunement", + "type": "attunement", + "context": "attunement", + "value": "yes" + } + ] + }, + { + "type": "mutation", + "id": "CLAIRVOYANCE_OFF", + "starting_trait": false, + "purifiable": false, + "valid": false, + "name": { "str": "Rad Senses" }, + "points": 0, + "active": true, + "description": "You can feel the radiation emission near your body so perfectly it allows you to see while blind. You suppress it now.", + "transform": { "target": "CLAIRVOYANCE_ON", "msg_transform": "You see everything!", "active": true, "moves": 10 } + }, + { + "type": "mutation", + "id": "CLAIRVOYANCE_ON", + "starting_trait": false, + "purifiable": false, + "valid": false, + "active": true, + "name": { "str": "Rad Senses (on)" }, + "points": 0, + "description": "You can feel the radiation emission near your body so perfectly it allows you to see while blind.", + "enchantments": [ "RADIATION_MAGE_CLAIRVOYANCE" ], + "transform": { "target": "CLAIRVOYANCE_OFF", "msg_transform": "You suppress your rad senses.", "active": false, "moves": 10 } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Shaman.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Shaman.json index b59126975..6e965bf9d 100644 --- a/data/Mainline_mods/Mods/Magiclysm/enchantments/Shaman.json +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Shaman.json @@ -1,23 +1,83 @@ [ + { + "type": "enchantment", + "id": "SHAMAN", + "condition": "ALWAYS", + "name": { "str": "Spirits" }, + "description": "Your Shaman abilities double your natural mana regeneration.", + "values": [ { "value": "REGEN_MANA", "multiply": 1 } ] + }, { "id": "mind_read", "type": "SPELL", "name": "Mind Reading", "description": "You can predict some movements of your enemies (just slowdown in fact). If you are seeing this spell, you have debugged it in.", "valid_targets": [ "hostile" ], - "flags": [ "SILENT", "NO_PROJECTILE" ], + "flags": [ "SILENT", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], "effect": "attack", "shape": "blast", "effect_str": "mind_reading", "min_damage": 0, "max_damage": 0, + "min_duration": 500, + "max_duration": 500, "min_aoe": 7, "max_aoe": 7 }, { "type": "enchantment", - "id": "SHAMAN", + "id": "SHAMAN_MIND_READING", "condition": "ALWAYS", + "name": { "str": "Mind Reading" }, + "description": "Your mind reading abilities improve your social skill, and make your fights much easier.", + "values": [ + { "value": "SOCIAL_INTIMIDATE", "add": 20 }, + { "value": "SOCIAL_LIE", "add": 20 }, + { "value": "SOCIAL_PERSUADE", "add": 20 } + ], "intermittent_activation": { "effects": [ { "frequency": "5 seconds", "spell_effects": [ { "id": "mind_read" } ] } ] } + }, + { + "type": "effect_on_condition", + "id": "EOC_GIVE_MIND_READ", + "recurrence": [ "60 s", "60 s" ], + "condition": { + "and": [ + { "u_has_trait": "SHAMAN" }, + { + "not": { "u_has_var": "u_got_shaman_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + } + ] + }, + "deactivate_condition": { "not": { "u_has_trait": "SHAMAN" } }, + "effect": [ + { "u_add_trait": "MIND_READ_OFF" }, + { "u_add_var": "u_got_shaman_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + ] + }, + { + "type": "mutation", + "id": "MIND_READ_OFF", + "starting_trait": false, + "purifiable": false, + "valid": false, + "name": { "str": "Mind Reading" }, + "points": 0, + "active": true, + "description": "You can feel the living energy of creatures around you, which allows you to predict their movements or words. You suppress it now.", + "transform": { "target": "MIND_READ_ON", "msg_transform": "Living creatures around you are crushed!", "active": true, "moves": 10 } + }, + { + "type": "mutation", + "id": "MIND_READ_ON", + "starting_trait": false, + "purifiable": false, + "valid": false, + "active": true, + "name": { "str": "Mind Reading (on)" }, + "points": 0, + "description": "You can feel the living energy of creatures around you, which allows you to predict their movements or words.", + "enchantments": [ "SHAMAN_MIND_READING" ], + "transform": { "target": "MIND_READ_OFF", "msg_transform": "You suppress your mind abilities.", "active": false, "moves": 10 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Soulfire.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Soulfire.json index 520e04ff8..4ea026501 100644 --- a/data/Mainline_mods/Mods/Magiclysm/enchantments/Soulfire.json +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Soulfire.json @@ -1,15 +1,63 @@ [ + { + "type": "effect_on_condition", + "id": "EOC_GIVE_SOUL_PRESSURE_OFF", + "recurrence": [ "60 s", "60 s" ], + "condition": { + "and": [ + { "u_has_trait": "SOULFIRE" }, + { + "not": { "u_has_var": "u_got_soulfire_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + } + ] + }, + "deactivate_condition": { "not": { "u_has_trait": "SOULFIRE" } }, + "effect": [ + { "u_add_trait": "SOUL_PRESSURE_OFF" }, + { "u_add_var": "u_got_soulfire_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + ] + }, + { + "type": "mutation", + "id": "SOUL_PRESSURE_OFF", + "starting_trait": false, + "purifiable": false, + "valid": false, + "name": { "str": "Soul Pressure" }, + "points": 0, + "active": true, + "description": "Your presence is so dangerous you can burn living creatures around you. You suppress it now.", + "transform": { + "target": "SOUL_PRESSURE_ON", + "msg_transform": "Living creatures around you start to burn!", + "active": true, + "moves": 10 + } + }, + { + "type": "mutation", + "id": "SOUL_PRESSURE_ON", + "starting_trait": false, + "purifiable": false, + "valid": false, + "active": true, + "name": { "str": "Soul Pressure (on)" }, + "points": -1, + "description": "Your presence is so dangerous you can burn living creatures around you.", + "enchantments": [ "SOULFIRE_PRESSURE" ], + "transform": { "target": "SOUL_PRESSURE_OFF", "msg_transform": "You suppress your soul pressure.", "active": false, "moves": 10 } + }, { "id": "soul_pressure", "type": "SPELL", "name": "Soul Pressure", "description": "This is a spell that represents the Soulfire putting a burning pressure on nearby opponents. If you are seeing this spell, you have debugged it in.", "valid_targets": [ "hostile" ], - "flags": [ "SILENT", "NO_PROJECTILE" ], + "flags": [ "SILENT", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], "effect": "attack", "shape": "blast", - "min_damage": 3, - "max_damage": 3, + "min_damage": 9, + "max_damage": 9, "min_aoe": 3, "max_aoe": 3, "damage_type": "heat", @@ -19,24 +67,20 @@ }, { "type": "enchantment", - "id": "SOULFIRE", + "id": "SOULFIRE_PRESSURE", "condition": "ALWAYS", "intermittent_activation": { "effects": [ { "frequency": "5 seconds", "spell_effects": [ { "id": "soul_pressure" } ] } ] } }, { - "id": "soul_burn_item", - "type": "ARMOR", - "name": { "str": "Soul Burn" }, - "description": "A little of your soul has been burned away, leaving you in a weakened state. The soul heals quickly, so rest for now.", - "flags": [ "PERSONAL", "OVERSIZE", "TRADER_AVOID", "NO_TAKEOFF" ], - "material": [ "magical_material" ], - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "MAX_HP", "multiply": -0.4 } ] } ] - }, - "symbol": "~", - "color": "red", - "weight": "1 g", - "volume": "1 ml", - "armor": [ { "covers": [ "torso" ] } ] + "type": "enchantment", + "id": "SOULFIRE", + "name": { "str": "Spirit Flames" }, + "description": "Your Soulfire abilities grant you good resistance to temperature conditions. Also your hands emit the purest blazes, which increase your damage in melee for a bit.", + "condition": "ALWAYS", + "values": [ + { "value": "ITEM_DAMAGE_PURE", "add": 9 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 30 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 10 } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Spells.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Spells.json new file mode 100644 index 000000000..58044a7be --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Spells.json @@ -0,0 +1,44 @@ +[ + { + "type": "enchantment", + "id": "enchant_stormshaper_electric_waves", + "condition": "ALWAYS", + "has": "HELD", + "hit_me_effect": [ { "id": "electric_waves_damage", "hit_self": false, "once_in": 3 } ], + "hit_you_effect": [ { "id": "electric_waves_damage", "hit_self": false, "once_in": 3 } ] + }, + { + "type": "enchantment", + "id": "enchant_stormshaper_cloak_of_fog", + "condition": "ALWAYS", + "has": "HELD", + "emitter": "emit_obscuring_fog" + }, + { + "type": "enchantment", + "id": "enchant_stormshaper_heart_of_hurricane", + "condition": "ALWAYS", + "has": "HELD", + "hit_me_effect": [ { "id": "stormshaper_heart_of_hurricane_throw", "hit_self": false, "once_in": 3 } ], + "values": [ + { "value": "FOOTSTEP_NOISE", "multiply": 1 }, + { + "value": "KNOCKBACK_RESIST", + "add": { "math": [ "(( u_val('spell_level', 'spell: stormshaper_heart_of_hurricane') * 0.02) + 0.3 )" ] } + }, + { + "value": "KNOCKDOWN_RESIST", + "add": { "math": [ "(( u_val('spell_level', 'spell: stormshaper_heart_of_hurricane') * 0.02) + 0.3 )" ] } + } + ] + }, + { + "type": "enchantment", + "id": "ench_shape_of_dust", + "has": "HELD", + "condition": "ALWAYS", + "ench_effects": [ { "effect": "invisibility", "intensity": 1 } ], + "emitter": "emit_eshaper_dust", + "values": [ { "value": "BONUS_DODGE", "add": 2 } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Storm_Elemental.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Storm_Elemental.json index 5762d5db5..d6e7ed666 100644 --- a/data/Mainline_mods/Mods/Magiclysm/enchantments/Storm_Elemental.json +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Storm_Elemental.json @@ -6,7 +6,7 @@ "description": "The zapback effect from the Storm Elemental Attunement.", "effect": "attack", "shape": "blast", - "flags": [ "NO_PROJECTILE" ], + "flags": [ "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], "min_damage": 5, "max_damage": 5, "valid_targets": [ "hostile" ], @@ -18,7 +18,15 @@ "type": "enchantment", "id": "STORM_ELEMENTAL", "condition": "ALWAYS", + "name": { "str": "Cyclone" }, + "description": "Your Storm Elemental abilities grant you total electric immunity, and reflective zippers to anyone who tries to attack you.", "values": [ { "value": "ARMOR_ELEC", "multiply": -0.4 } ], - "hit_me_effect": [ { "id": "STORM_ELEMENTAL_ZAPBACK" } ] + "hit_me_effect": [ + { + "id": "STORM_ELEMENTAL_ZAPBACK", + "message": "Electricity arcs out from where you've been hit.", + "npc_message": "%1$s's body arcs electricity from the wound." + } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Sun_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Sun_Mage.json index b9fe84f01..19c0affd1 100644 --- a/data/Mainline_mods/Mods/Magiclysm/enchantments/Sun_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Sun_Mage.json @@ -2,10 +2,10 @@ { "id": "solar_blinding", "type": "SPELL", - "name": "Soul Pressure", - "description": "This is a spell that represents the Soulfire putting a burning pressure on nearby opponents. If you are seeing this spell, you have debugged it in.", + "name": "Solar Blinding", + "description": "Make your enemies blind for a short time.", "valid_targets": [ "hostile" ], - "flags": [ "SILENT", "NO_PROJECTILE" ], + "flags": [ "SILENT", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], "effect": "attack", "effect_str": "blind", "shape": "blast", @@ -21,7 +21,49 @@ "type": "enchantment", "id": "SUN_MAGE", "condition": "ALWAYS", - "values": [ { "value": "PERCEPTION", "add": 5 } ], - "hit_me_effect": [ { "id": "solar_blinding" } ] + "name": { "str": "Solar Warrior" }, + "description": "Your Sun Mage abilities blind everyone who are mean to you.", + "hit_me_effect": [ + { + "id": "solar_blinding", + "message": "A brilliant light radiates from where you've been hit.", + "npc_message": "%1$s's body is enveloped in a bright glare." + } + ] + }, + { + "type": "effect_on_condition", + "id": "SUN_MAGE_BUFF", + "recurrence": [ "5 m", "10 m" ], + "condition": { + "or": [ + { "and": [ "is_day", "u_is_outside", { "u_has_trait": "SUN_MAGE" } ] }, + { "u_has_items": { "item": "pocket_sun", "count": 1 } } + ] + }, + "deactivate_condition": { "not": { "u_has_trait": "SUN_MAGE" } }, + "effect": [ { "u_add_effect": "sun_mage_buff", "intensity": 1, "duration": "10 minutes" } ] + }, + { + "id": "sun_mage_buff", + "type": "effect_type", + "name": [ "Sol" ], + "desc": [ "You feel your mana connected to the Sun, and it makes you better than ever." ], + "remove_message": "You don't feel Solar energy in your body anymore.", + "rating": "good", + "max_duration": "10 m", + "show_intensity": false, + "enchantments": [ + { + "values": [ + { "value": "STRENGTH", "add": 1, "multiply": 0.25 }, + { "value": "DEXTERITY", "add": 1, "multiply": 0.25 }, + { "value": "INTELLIGENCE", "add": 1, "multiply": 0.25 }, + { "value": "PERCEPTION", "add": 1, "multiply": 0.25 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 30 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 30 } + ] + } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Tundra_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Tundra_Mage.json new file mode 100644 index 000000000..8f4c44640 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Tundra_Mage.json @@ -0,0 +1,87 @@ +[ + { + "type": "enchantment", + "id": "TUNDRA_MAGE", + "name": { "str": "Arctic" }, + "description": "Your Tundra Mage abilities grant you good resistance to temperature conditions.", + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 10 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 30 } ] + }, + { + "id": "tundra_mage_aoe", + "type": "SPELL", + "name": "Tundra Mage Slowdown DoT AoE", + "description": "Deal some cold DoT around the player, and slowdown monsters nearby.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "freeze_aura", + "shape": "blast", + "min_dot": 1, + "max_dot": 1, + "min_duration": 600, + "max_duration": 600, + "min_aoe": 4, + "max_aoe": 4, + "damage_type": "cold" + }, + { + "type": "effect_type", + "id": "freeze_aura", + "name": [ "Freeze burn" ], + "desc": [ "Your skin is frozen." ], + "max_intensity": 4, + "int_add_val": 1, + "base_mods": { "speed_mod": [ -25 ] }, + "scaling_mods": { "speed_mod": [ -15 ] } + }, + { + "type": "enchantment", + "id": "TUNDRA_MAGE_AOE", + "condition": "ALWAYS", + "intermittent_activation": { "effects": [ { "frequency": "5 seconds", "spell_effects": [ { "id": "tundra_mage_aoe" } ] } ] } + }, + { + "type": "effect_on_condition", + "id": "EOC_GIVE_FREEZING_AURA_OFF", + "recurrence": [ "60 s", "60 s" ], + "condition": { + "and": [ + { "u_has_trait": "TUNDRA_MAGE" }, + { + "not": { "u_has_var": "u_got_tundra_mage_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + } + ] + }, + "deactivate_condition": { "not": { "u_has_trait": "TUNDRA_MAGE" } }, + "effect": [ + { "u_add_trait": "FREEZING_AURA_OFF" }, + { "u_add_var": "u_got_tundra_mage_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + ] + }, + { + "type": "mutation", + "id": "FREEZING_AURA_OFF", + "starting_trait": false, + "purifiable": false, + "valid": false, + "name": { "str": "Freezing Aura" }, + "points": 0, + "active": true, + "description": "Your body emits a large amount of cold energy, which freezes all enemies near you. You suppress this ability now.", + "transform": { "target": "FREEZING_AURA_ON", "msg_transform": "Living creatures around you freezes!", "active": true, "moves": 10 } + }, + { + "type": "mutation", + "id": "FREEZING_AURA_ON", + "starting_trait": false, + "purifiable": false, + "valid": false, + "active": true, + "name": { "str": "Freezing Aura (on)" }, + "points": 0, + "description": "Your body emits a large amount of cold energy, which freezes all enemies near you.", + "enchantments": [ "TUNDRA_MAGE_AOE" ], + "transform": { "target": "FREEZING_AURA_OFF", "msg_transform": "You suppress your freezing aura.", "active": false, "moves": 10 } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Void_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Void_Mage.json index e6443ed2d..6b9f834ca 100644 --- a/data/Mainline_mods/Mods/Magiclysm/enchantments/Void_Mage.json +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Void_Mage.json @@ -5,7 +5,7 @@ "name": "Void Claws", "description": "This is a spell that causes a DoT effect whenever you hit.", "valid_targets": [ "hostile" ], - "flags": [ "SILENT", "NO_PROJECTILE" ], + "flags": [ "SILENT", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], "effect": "attack", "shape": "blast", "min_dot": 8, @@ -22,6 +22,23 @@ "type": "enchantment", "id": "VOID_MAGE", "condition": "ALWAYS", - "hit_you_effect": [ { "id": "void_claws" } ] + "name": { "str": "Drainer" }, + "description": "Your Void Mage abilities grant you perfect night vision, and envenom everyone you attack.", + "ench_effects": [ { "effect": "void_mage_night_vision", "intensity": 1 } ], + "hit_you_effect": [ + { + "id": "void_claws", + "message": "Shadowy claws follow behind your strikes and the afterimage shrivels flesh as it passes through.", + "npc_message": "%1$s's attacks seems to have an afterimage of shadowy claws striking behind them about a half a second." + } + ] + }, + { + "type": "effect_type", + "id": "void_mage_night_vision", + "name": [ "" ], + "desc": [ "" ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ], + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 20 } ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Vulcanist.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Vulcanist.json new file mode 100644 index 000000000..5e33cbbb2 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Vulcanist.json @@ -0,0 +1,10 @@ +[ + { + "type": "enchantment", + "id": "VULCANIST", + "condition": "ALWAYS", + "name": { "str": "Lava" }, + "description": "Your Vulcanist abilities grant you good resistance to temperature conditions, and total heat immunity.", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 30 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 10 } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/enchantments/Wither_Mage.json b/data/Mainline_mods/Mods/Magiclysm/enchantments/Wither_Mage.json new file mode 100644 index 000000000..a07ee67d1 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/enchantments/Wither_Mage.json @@ -0,0 +1,100 @@ +[ + { + "type": "enchantment", + "id": "WITHER_MAGE", + "name": { "str": "Fading" }, + "description": "Your Wither Mage abilities grant you the ability to consume the enemies powers for a short time.", + "hit_you_effect": [ { "id": "wither_mage_withering", "hit_self": true, "once_in": 6 } ] + }, + { + "id": "wither_mage_withering", + "type": "SPELL", + "name": "Withering", + "description": "Give some stats when you attack your enemies.", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "withering_eff", + "shape": "blast", + "flags": [ "SILENT", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "min_duration": 800, + "max_duration": 1600 + }, + { + "type": "effect_type", + "id": "withering_eff", + "name": [ "Withering" ], + "desc": [ "Consume their nature for your own purposes." ], + "apply_message": "You take a withering effect!", + "rating": "good", + "max_intensity": 30, + "int_add_val": 1, + "base_mods": { "per_mod": [ 0.1 ], "dex_mod": [ 0.2 ], "str_mod": [ 0.2 ], "int_mod": [ 0.1 ], "stamina_min": [ 1 ] }, + "scaling_mods": { "per_mod": [ 0.1 ], "dex_mod": [ 0.2 ], "str_mod": [ 0.2 ], "int_mod": [ 0.1 ], "stamina_min": [ 1 ] } + }, + { + "id": "wither_mage_bio_damage", + "type": "SPELL", + "name": "Wither Mage bio DoT AoE", + "description": "Deal some toxic DoT around the player.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "shape": "blast", + "min_dot": 1, + "max_dot": 1, + "min_duration": 1500, + "max_duration": 1500, + "min_aoe": 4, + "max_aoe": 4, + "damage_type": "biological" + }, + { + "type": "enchantment", + "id": "WITHER_MAGE_BIO_AOE", + "condition": "ALWAYS", + "intermittent_activation": { "effects": [ { "frequency": "5 seconds", "spell_effects": [ { "id": "wither_mage_bio_damage" } ] } ] } + }, + { + "type": "effect_on_condition", + "id": "EOC_GIVE_TOXIC_AURA_OFF", + "recurrence": [ "60 s", "60 s" ], + "condition": { + "and": [ + { "u_has_trait": "WITHER_MAGE" }, + { + "not": { "u_has_var": "u_got_wither_mage_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + } + ] + }, + "deactivate_condition": { "not": { "u_has_trait": "WITHER_MAGE" } }, + "effect": [ + { "u_add_trait": "TOXIC_AURA_OFF" }, + { "u_add_var": "u_got_wither_mage_attunement", "type": "attunement", "context": "attunement", "value": "yes" } + ] + }, + { + "type": "mutation", + "id": "TOXIC_AURA_OFF", + "starting_trait": false, + "purifiable": false, + "valid": false, + "name": { "str": "Toxic Aura" }, + "points": 0, + "active": true, + "description": "Your body can emit deadly venoms. You suppress this ability now.", + "transform": { "target": "TOXIC_AURA_ON", "msg_transform": "Living creatures around you are poisoned!", "active": true, "moves": 10 } + }, + { + "type": "mutation", + "id": "TOXIC_AURA_ON", + "starting_trait": false, + "purifiable": false, + "valid": false, + "active": true, + "name": { "str": "Toxic Aura (on)" }, + "points": 0, + "description": "Your body can emit deadly venoms.", + "enchantments": [ "WITHER_MAGE_BIO_AOE" ], + "transform": { "target": "TOXIC_AURA_OFF", "msg_transform": "You suppress your toxic aura.", "active": false, "moves": 10 } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/eoc_caster_level_boosts.json b/data/Mainline_mods/Mods/Magiclysm/eoc_caster_level_boosts.json new file mode 100644 index 000000000..b5f62130d --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/eoc_caster_level_boosts.json @@ -0,0 +1,277 @@ +[ + { + "type": "jmath_function", + "id": "limit_caster_level_boost", + "num_args": 2, + "return": "floor( min(_0, ( 1 + ( _1 / 5 ) ) ) )", + "//": "Limits caster level boost to 1 + (highest level of spell in the relevant school) / 5" + }, + { + "type": "effect_on_condition", + "id": "EOC_magus_caster_level_boost", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "MAGUS" }, + "effect": [ + { + "math": [ + "u_level_boost", + "=", + "u_val('item_count', 'item: magus_booster_1_active') + u_val('item_count', 'item: magus_booster_2_active') * 2" + ] + }, + { + "math": [ + "u_val('spell_level_adjustment', 'school: MAGUS')", + "=", + "limit_caster_level_boost(u_level_boost, u_val('spell_level', 'school: MAGUS') )" + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_kelvinist_caster_level_boost", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "KELVINIST" }, + "effect": [ + { + "math": [ + "u_level_boost", + "=", + "u_val('item_count', 'item: kelvinist_booster_1_active') + u_val('item_count', 'item: kelvinist_booster_2_active') * 2" + ] + }, + { + "math": [ + "u_val('spell_level_adjustment', 'school: KELVINIST')", + "=", + "limit_caster_level_boost(u_level_boost, u_val('spell_level', 'school: KELVINIST') )" + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_technomancer_caster_level_boost", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "TECHNOMANCER" }, + "effect": [ + { + "math": [ + "u_level_boost", + "=", + "max( 0, u_val('effect_intensity', 'effect: technomancer_cl_booster_effect') ) + u_val('charge_count', 'item: technomancer_booster_2_active') / 5" + ] + }, + { + "math": [ + "u_val('spell_level_adjustment', 'school: TECHNOMANCER')", + "=", + "limit_caster_level_boost(u_level_boost, u_val('spell_level', 'school: TECHNOMANCER') )" + ] + }, + { + "math": [ + "u_doodad_boost", + "=", + "max( 0, limit_caster_level_boost(u_level_boost, u_val('spell_level', 'school: TECHNOMANCER') ) - max( 0, u_val('effect_intensity', 'effect: technomancer_cl_booster_effect') ) )" + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_technomancer_caster_level_boost_finish_casting", + "eoc_type": "EVENT", + "required_event": "spellcasting_finish", + "condition": { "and": [ { "u_has_trait": "TECHNOMANCER" }, { "compare_string": [ "TECHNOMANCER", { "context_val": "school" } ] } ] }, + "effect": [ + { + "u_consume_item": "technomancer_booster_2_active", + "charges": { "math": [ "floor( u_doodad_boost ) * 5" ] }, + "count": 0 + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_biomancer_caster_level_boost", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "BIOMANCER" }, + "effect": [ + { "math": [ "u_level_boost", "=", "max( 0, u_val('effect_intensity', 'effect: biomancer_cl_booster_effect') )" ] }, + { + "math": [ + "u_val('spell_level_adjustment', 'school: BIOMANCER')", + "=", + "limit_caster_level_boost(u_level_boost, u_val('spell_level', 'school: BIOMANCER') )" + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_animist_caster_level_boost", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "ANIMIST" }, + "effect": [ + { "math": [ "u_level_boost", "=", "u_val('field_strength', 'field: fd_blood')" ] }, + { + "math": [ + "u_val('spell_level_adjustment', 'school: ANIMIST')", + "=", + "limit_caster_level_boost(u_level_boost, u_val('spell_level', 'school: ANIMIST') )" + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_stormshaper_caster_level_boost", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "and": [ { "u_has_trait": "STORMSHAPER" }, "u_is_outside" ] }, + "effect": [ + { "math": [ "u_level_boost", "=", "weather('precipitation') * 2" ] }, + { + "math": [ + "u_val('spell_level_adjustment', 'school: STORMSHAPER')", + "=", + "limit_caster_level_boost(u_level_boost, u_val('spell_level', 'school: STORMSHAPER') )" + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_earthshaper_caster_level_boost", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "EARTHSHAPER" }, + "effect": [ + { "math": [ "u_level_boost", "=", "max(0, -u_val('pos_z') )" ] }, + { + "run_eocs": [ + { + "id": "EOC_earthshaper_caster_level_boost_1", + "condition": { + "or": [ + { "u_is_on_terrain": "t_dirt" }, + { "u_is_on_terrain": "t_sand" }, + { "u_is_on_terrain": "t_sandbox" }, + { "u_is_on_terrain": "t_mud" }, + { "u_is_on_terrain": "t_rock_floor_no_roof" }, + { "u_is_on_terrain": "t_dirtfloor_no_roof" } + ] + }, + "effect": { "math": [ "u_level_boost", "=", "1" ] } + }, + { + "id": "EOC_earthshaper_caster_level_boost_2", + "condition": { + "or": [ + { "u_is_on_terrain": "t_clay" }, + { "u_is_on_terrain": "t_claymound" }, + { "u_is_on_terrain": "t_sandmound" }, + { "u_is_on_terrain": "t_dirtmoundfloor" }, + { "u_is_on_terrain": "t_dirtmound" } + ] + }, + "effect": { "math": [ "u_level_boost", "=", "2" ] } + }, + { + "id": "EOC_earthshaper_caster_level_boost_3", + "condition": { "or": [ { "u_is_on_terrain": "t_pit_shallow" } ] }, + "effect": { "math": [ "u_level_boost", "=", "3" ] } + }, + { + "id": "EOC_earthshaper_caster_level_boost_5", + "condition": { "or": [ { "u_is_on_terrain": "t_pit" } ] }, + "effect": { "math": [ "u_level_boost", "=", "5" ] } + } + ] + }, + { + "math": [ + "u_val('spell_level_adjustment', 'school: EARTHSHAPER')", + "=", + "limit_caster_level_boost(u_level_boost, u_val('spell_level', 'school: EARTHSHAPER') )" + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_druid_caster_level_boost", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "DRUID" }, + "effect": [ + { "math": [ "u_level_boost", "=", "0" ] }, + { + "run_eocs": [ + { + "id": "EOC_druid_caster_level_boost_1", + "condition": { + "or": [ + { "u_is_on_terrain": "t_grass" }, + { "u_is_on_terrain": "t_grass_white" }, + { "u_is_on_terrain": "t_moss" }, + { "u_is_on_terrain": "t_moss_underground" }, + { "u_is_on_terrain": "t_forestfloor" } + ] + }, + "effect": { "math": [ "u_level_boost", "=", "1" ] } + }, + { + "id": "EOC_druid_caster_level_boost_2", + "condition": { + "or": [ + { "u_is_on_terrain": "t_grass_tall" }, + { "u_is_on_terrain": "t_grass_long" }, + { "u_is_on_terrain": "t_bamboo" }, + { "u_is_on_terrain": "t_bamboo_harvested" }, + { "u_is_on_terrain": "t_underbrush_harvested_winter" } + ] + }, + "effect": { "math": [ "u_level_boost", "=", "2" ] } + }, + { + "id": "EOC_druid_caster_level_boost_3", + "condition": { + "or": [ + { "u_is_on_terrain_with_flag": "SHRUB" }, + { "u_is_on_terrain": "t_bamboo_long" }, + { "u_is_on_terrain": "t_bamboo_tall" } + ] + }, + "effect": { "math": [ "u_level_boost", "=", "3" ] } + }, + { + "id": "EOC_druid_caster_level_boost_5", + "condition": { + "or": [ + { "u_is_on_terrain": "t_tree_young" }, + { "u_is_on_terrain": "t_mega_fern" }, + { "u_is_on_terrain": "t_fungus_colony" } + ] + }, + "effect": { "math": [ "u_level_boost", "=", "5" ] } + } + ] + }, + { + "math": [ + "u_val('spell_level_adjustment', 'school: DRUID')", + "=", + "limit_caster_level_boost(u_level_boost, u_val('spell_level', 'school: DRUID') )" + ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/field.json b/data/Mainline_mods/Mods/Magiclysm/field.json index 86aac34f8..ffb5eae82 100644 --- a/data/Mainline_mods/Mods/Magiclysm/field.json +++ b/data/Mainline_mods/Mods/Magiclysm/field.json @@ -86,6 +86,22 @@ "display_field": true, "looks_like": "fd_sludge" }, + { + "id": "fd_eshaper_dust", + "type": "field_type", + "intensity_levels": [ { "name": "dust", "sym": "~", "dangerous": false, "transparent": false, "translucency": 14 } ], + "decay_amount_factor": 15, + "gas_absorption_factor": 5, + "percent_spread": 30, + "dirty_transparency_cache": true, + "has_fume": true, + "priority": 8, + "half_life": "20 seconds", + "phase": "gas", + "display_items": false, + "display_field": true, + "looks_like": "fd_tear_gas" + }, { "id": "fd_cold_energy", "type": "field_type", @@ -123,5 +139,98 @@ "copy-from": "fd_fog", "half_life": "999999999 minutes", "looks_like": "fd_fog" + }, + { + "id": "fd_kelvinist_warmth", + "type": "field_type", + "intensity_levels": [ + { "name": "heated air", "sym": "&", "convection_temperature_mod": 7 }, + { "color": "yellow", "convection_temperature_mod": 15 }, + { "color": "red", "convection_temperature_mod": 30 } + ], + "decay_amount_factor": 5, + "percent_spread": 50, + "outdoor_age_speedup": "15 minutes", + "priority": 7, + "half_life": "30 minutes", + "phase": "gas" + }, + { + "id": "fd_kelvinist_cold", + "type": "field_type", + "intensity_levels": [ + { "name": "chill air", "sym": "&", "convection_temperature_mod": -7 }, + { "color": "blue", "convection_temperature_mod": -15 }, + { "color": "cyan", "convection_temperature_mod": -30 } + ], + "decay_amount_factor": 5, + "percent_spread": 50, + "outdoor_age_speedup": "15 minutes", + "priority": 7, + "half_life": "30 minutes", + "phase": "gas" + }, + { + "id": "fd_rad_mage_aura", + "type": "field_type", + "intensity_levels": [ + { "name": "hazy cloud", "sym": "8", "dangerous": true, "translucency": 10, "extra_radiation_max": 10 }, + { + "name": "radioactive gas", + "color": "light_green", + "extra_radiation_max": 15, + "radiation_hurt_damage_min": 1, + "radiation_hurt_damage_max": 2, + "radiation_hurt_message": "This radioactive gas burns!" + }, + { + "name": "thick radioactive gas", + "color": "green", + "transparent": false, + "extra_radiation_max": 20, + "radiation_hurt_damage_min": 1, + "radiation_hurt_damage_max": 3, + "radiation_hurt_message": "This radioactive gas burns!" + } + ], + "decay_amount_factor": 5, + "percent_spread": 15, + "outdoor_age_speedup": "1 minutes", + "dirty_transparency_cache": true, + "has_fume": true, + "priority": 8, + "half_life": "100 minutes", + "phase": "gas", + "display_items": false, + "display_field": true, + "looks_like": "fd_nuke_gas" + }, + { + "id": "fd_obscuring_fog", + "type": "field_type", + "intensity_levels": [ + { + "name": "thick fog", + "sym": "~", + "dangerous": false, + "transparent": false, + "translucency": 8, + "color": "light_gray", + "scent_neutralization": 3 + }, + { "name": "very thick fog", "translucency": 12, "color": "light_gray", "scent_neutralization": 6 }, + { "name": "impenetrable fog", "translucency": 0, "color": "dark_gray", "scent_neutralization": 9 } + ], + "decay_amount_factor": 15, + "gas_absorption_factor": 5, + "percent_spread": 35, + "dirty_transparency_cache": true, + "has_fume": true, + "priority": 8, + "half_life": "7 minutes", + "phase": "gas", + "display_items": false, + "display_field": true, + "looks_like": "fd_smoke" } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/furniture.json b/data/Mainline_mods/Mods/Magiclysm/furniture.json index b90d0af20..d34c49e05 100644 --- a/data/Mainline_mods/Mods/Magiclysm/furniture.json +++ b/data/Mainline_mods/Mods/Magiclysm/furniture.json @@ -19,9 +19,23 @@ "symbol": "O", "color": "red", "required_str": -1, + "crafting_pseudo_item": "magic_circle_rank_1", "flags": [ "ALLOW_FIELD_EFFECT", "TRANSPARENT" ], "description": "This is a rough magic circle, carved into the ground and decorated with blood, candles, and other small knick-knacks." }, + { + "type": "furniture", + "id": "f_magic_circle_2", + "name": "Magic Circle", + "looks_like": "f_magic_circle", + "move_cost_mod": 0, + "symbol": "O", + "color": "red", + "required_str": -1, + "crafting_pseudo_item": "magic_circle_rank_2", + "flags": [ "ALLOW_FIELD_EFFECT", "TRANSPARENT" ], + "description": "This is a rough magic circle, carved into the ground and decorated with blood, candles, and other small knick-knacks. It has been enhanced with silver to channel more mana." + }, { "type": "furniture", "id": "f_glow_boulder", @@ -109,7 +123,7 @@ "items": [ { "item": "pot_copper", "count": 1 }, { "item": "pipe_glass", "count": [ 1, 4 ] }, - { "item": "glass_tube_small", "charges": [ 5, 10 ] }, + { "item": "glass_tube_small", "count": [ 5, 10 ] }, { "item": "stopcock", "count": [ 1, 5 ] }, { "item": "flask_glass", "count": [ 1, 3 ] } ] @@ -138,16 +152,8 @@ "move_cost_mod": -1, "coverage": 40, "required_str": -1, - "flags": [ "TRANSPARENT", "NOITEM" ], - "deconstruct": { - "items": [ - { "item": "clockworks", "count": [ 10, 30 ] }, - { "item": "scrap", "count": [ 10, 20 ] }, - { "item": "pipe", "charges": 9 }, - { "item": "wire", "count": [ 10, 20 ] }, - { "item": "hinge", "count": [ 1, 3 ] } - ] - }, + "flags": [ "TRANSPARENT", "NOITEM", "EASY_DECONSTRUCT" ], + "deconstruct": { "items": [ { "item": "orrery_item", "count": 1 } ] }, "max_volume": "1750 L", "bash": { "str_min": 20, @@ -247,6 +253,27 @@ "items": [ { "item": "demon_chitin_piece", "count": [ 20, 30 ] } ] } }, + { + "type": "furniture", + "id": "f_demon_forge_forge_lord", + "name": "demon forge", + "description": "This is a forge made of the chitin of a huge, red spider that has a penchant for flames. Custom made to withstand the heat from alumentum, this forge can resmelt the magical metals into their workable, ingot form.", + "symbol": "^", + "color": "red", + "move_cost_mod": -1, + "coverage": 40, + "required_str": -1, + "crafting_pseudo_item": "demon_forge", + "flags": [ "SEALED", "CONTAINER", "NOITEM", "EASY_DECONSTRUCT" ], + "examine_action": "reload_furniture", + "bash": { + "str_min": 80, + "str_max": 120, + "sound": "crash!", + "sound_fail": "whump.", + "items": [ { "item": "demon_chitin_piece", "count": [ 20, 30 ] } ] + } + }, { "type": "furniture", "id": "f_everburning_candelabra", @@ -269,7 +296,7 @@ "type": "furniture", "id": "f_everfrost_crystal", "name": "everfrost crystal", - "description": "This massive mana crystal juts from the ground as if it had sprouted up like a weed. It pulses with a angry white light, occasionally flickering brighter.", + "description": "This massive mana crystal juts from the ground as if it had sprouted up like a weed. It pulses with an angry white light, occasionally flickering brighter.", "symbol": "]", "color": "light_blue", "move_cost_mod": -1, @@ -284,7 +311,50 @@ "str_max": 35, "sound": "glass shattering!", "sound_fail": "mana crackling!", - "items": [ { "item": "mana_dust", "charges": [ 0, 4 ] } ] + "items": [ { "item": "mana_dust", "count": [ 0, 4 ] } ] + } + }, + { + "type": "furniture", + "id": "f_boulder_earthshaper", + "copy-from": "f_boulder_medium", + "looks_like": "f_slab", + "name": "flat boulder", + "description": "Smooth, flat boulder. You can use it both as a table and an anvil. It responds to your force, and you can easily move it.", + "symbol": "0", + "color": "dark_gray", + "move_cost_mod": 6, + "coverage": 45, + "required_str": 0, + "crafting_pseudo_item": "boulder_anvil", + "examine_action": "workbench", + "flags": [ "TRANSPARENT", "MINEABLE", "FLAT_SURF", "MOUNTABLE", "PLACE_ITEM", "SHORT" ], + "workbench": { "multiplier": 1.1, "mass": 300000, "volume": "100L" }, + "bash": { "str_min": 0, "str_max": 0, "sound": "The boulder recedes into the ground.", "sound_fail": "thump." } + }, + { + "type": "furniture", + "id": "f_everburning_torch_candelabra", + "name": "everburning torch candelabra", + "description": "A candelabra made of a half-dozen everburning torches attached to a wooden support structure. Plenty of light with no worries about power usage or smoke. Plus, how can you be a real wizard unless your tower is lit by the flicking light of imperishable flames?", + "looks_like": "f_everburning_candelabra", + "symbol": "Y", + "color": "red", + "move_cost_mod": 2, + "required_str": 12, + "light_emitted": 120, + "flags": [ "TRANSPARENT", "EASY_DECONSTRUCT" ], + "deconstruct": { "items": [ { "item": "everburning_torch_candelabra", "count": 1 } ] }, + "bash": { + "sound": "SMASH!", + "str_min": 20, + "str_max": 40, + "items": [ + { "item": "splinter", "count": [ 2, 8 ] }, + { "item": "scrap", "count": [ 3, 10 ] }, + { "item": "nuts_bolts", "charges": [ 5, 20 ] }, + { "item": "mtorch_everburning", "count": [ 1, 4 ] } + ] } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/furniture_and_terrain/furniture.json b/data/Mainline_mods/Mods/Magiclysm/furniture_and_terrain/furniture.json new file mode 100644 index 000000000..48fcaed5f --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/furniture_and_terrain/furniture.json @@ -0,0 +1,70 @@ +[ + { + "type": "furniture", + "id": "f_teleport_altar", + "name": "stone altar", + "move_cost_mod": 10, + "symbol": "H", + "color": "white", + "looks_like": "f_boulder_earthshaper", + "coverage": 40, + "required_str": 30, + "description": "An ancient stone altar, moss-grown and weather-worn.", + "examine_action": "translocator", + "bash": { + "str_min": 30, + "str_max": 160, + "sound": "smash!", + "sound_fail": "thump.", + "items": [ { "item": "rock", "count": [ 5, 15 ] }, { "item": "sharp_rock", "count": [ 3, 5 ] } ] + }, + "flags": [ "TRANSPARENT", "SHORT", "FLAT_SURF", "TRANSLOCATOR" ] + }, + { + "type": "furniture", + "id": "f_myst_standing_stone", + "looks_like": "f_boulder_large", + "name": "standing stone", + "description": "A tall standing stone. It is covered in carvings, but they are so worn by wind and rain you can't make out what they might have been.", + "symbol": "O", + "color": "light_gray", + "move_cost_mod": -1, + "coverage": 65, + "required_str": 32, + "flags": [ "NOITEM", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 64, + "str_max": 160, + "sound": "smash!", + "sound_fail": "thump.", + "items": [ + { "item": "rock", "count": [ 10, 22 ] }, + { "item": "sharp_rock", "count": [ 3, 7 ] }, + { "item": "material_limestone", "charges": [ 2, 5 ], "prob": 30 }, + { "item": "material_rocksalt", "count": [ 0, 1 ], "prob": 10 }, + { "item": "material_rhodonite", "count": [ 0, 1 ], "prob": 1 }, + { "item": "material_zincite", "count": [ 0, 5 ], "prob": 2 } + ] + } + }, + { + "type": "furniture", + "id": "f_druid_brambles", + "name": "brambles", + "looks_like": "f_brambles", + "symbol": "#", + "bgcolor": "brown", + "description": "A thick wall of tangled brambles grows here. Vicious thorns protrude from the stems.", + "move_cost_mod": 8, + "coverage": 75, + "required_str": -1, + "flags": [ "TRANSPARENT", "BLOCKSDOOR", "PAINFUL", "SHARP", "PERMEABLE", "THIN_OBSTACLE", "SHRUB" ], + "bash": { + "str_min": 30, + "str_max": 80, + "sound": "smash", + "sound_fail": "whump.", + "items": [ { "item": "splinter", "count": [ 10, 15 ] } ] + } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/furniture_and_terrain/furniture_plants.json b/data/Mainline_mods/Mods/Magiclysm/furniture_and_terrain/furniture_plants.json index cb5a384bc..a34a7dd26 100644 --- a/data/Mainline_mods/Mods/Magiclysm/furniture_and_terrain/furniture_plants.json +++ b/data/Mainline_mods/Mods/Magiclysm/furniture_and_terrain/furniture_plants.json @@ -3,7 +3,7 @@ "type": "furniture", "id": "f_platonic_flower", "name": "platonic flower", - "description": "Small bush, that looks like pair of dragon curves, with a flower in the very center. The branches of the plant can be used as a perfect ruler.", + "description": "Small bush, that looks like a pair of dragon curves, with a flower in the very center. The branches of the plant can be used as a perfect ruler.", "symbol": "S", "color": "light_cyan", "looks_like": "f_bluebell", @@ -18,7 +18,7 @@ "type": "furniture", "id": "f_moonflower", "name": "moonflower bush", - "description": "A silver colored vine, whose luminescent flowers will only bloom during night.\n\nAmazingly rare, it grows only in places were heroic deeds took place, or so it's believed.", + "description": "A silver colored vine, whose luminescent flowers will only bloom during night.\n\nAmazingly rare, it grows only in places where heroic deeds took place, or so it's believed.", "symbol": "y", "color": "light_cyan", "looks_like": "f_datura", @@ -79,12 +79,13 @@ "type": "terrain", "id": "t_horn_moss", "name": "horn moss", - "looks_like": "t_grass", + "looks_like": "t_grass_dead", "description": "A cluster of red moss, so called for the white capsules that it will grow during spring.", "symbol": ".", "color": "light_red", "move_cost": 2, "examine_action": "harvest_ter_nectar", + "transforms_into": "t_grass_dead", "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], "harvest_by_season": [ { "seasons": [ "spring" ], "id": "horn_moss_harv" } ] }, @@ -137,7 +138,7 @@ "type": "furniture", "id": "f_moly", "name": "moly", - "description": "A small herb with milk white flowers and pitch black roots. Known since Ancient Greece, it was brought to the New World by european druids long ago.", + "description": "A small herb with milk white flowers and pitch black roots. Known since Ancient Greece, it was brought to the New World by European druids long ago.", "symbol": "f", "color": "white", "looks_like": "f_lotus", @@ -167,7 +168,7 @@ "type": "furniture", "id": "f_funnelcap", "name": "funnelcap", - "description": "A man sized mushroom, with most of its bulk defined by a tall funnel shaped pileus, which collects rainfall.", + "description": "A man-sized mushroom, with most of its bulk defined by a tall funnel shaped pileus, which collects rainfall.", "symbol": "V", "color": "white", "looks_like": "t_fungal_tree", diff --git a/data/Mainline_mods/Mods/Magiclysm/harvest.json b/data/Mainline_mods/Mods/Magiclysm/harvest.json index 8fbc5869e..2577f5573 100644 --- a/data/Mainline_mods/Mods/Magiclysm/harvest.json +++ b/data/Mainline_mods/Mods/Magiclysm/harvest.json @@ -310,24 +310,43 @@ "type": "harvest", "entries": [ { "drop": "demihuman_flesh", "type": "flesh", "mass_ratio": 0.32 }, - { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, - { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, - { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, - { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "demihuman_lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "demihuman_liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "demihuman_brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "demihuman_kidney", "type": "offal", "mass_ratio": 0.002 }, { "drop": "raw_demihumanleather", "type": "skin", "mass_ratio": 0.02 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, { "drop": "bone_demihuman", "type": "bone", "mass_ratio": 0.1 } ] }, + { + "id": "ravenfolk", + "//": "taken from mutant flightless bird but with demihuman meat and organs", + "type": "harvest", + "entries": [ + { "drop": "demihuman_flesh", "type": "flesh", "mass_ratio": 0.3 }, + { "drop": "demihuman_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "demihuman_meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "demihuman_lung", "type": "offal", "mass_ratio": 0.0035 }, + { "drop": "demihuman_liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "demihuman_brain", "type": "offal", "mass_ratio": 0.003 }, + { "drop": "demihuman_kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "demihuman_fat", "type": "flesh", "mass_ratio": 0.18 }, + { "drop": "raw_demihumanleather", "type": "skin", "mass_ratio": 0.01 }, + { "drop": "bone_demihuman", "type": "bone", "mass_ratio": 0.1 }, + { "drop": "feather", "type": "skin", "mass_ratio": 0.02 }, + { "drop": "down_feather", "type": "skin", "mass_ratio": 0.01 } + ] + }, { "id": "ogre", "type": "harvest", "entries": [ { "drop": "demihuman_flesh", "type": "flesh", "mass_ratio": 0.32 }, - { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, - { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, - { "drop": "brain", "type": "flesh", "mass_ratio": 0.0025 }, - { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "demihuman_lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "demihuman_liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "demihuman_brain", "type": "flesh", "mass_ratio": 0.0025 }, + { "drop": "demihuman_kidney", "type": "offal", "mass_ratio": 0.002 }, { "drop": "raw_demihumanleather", "type": "skin", "mass_ratio": 0.02 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, { "drop": "bone_demihuman", "type": "bone", "mass_ratio": 0.1025 } @@ -338,10 +357,10 @@ "type": "harvest", "entries": [ { "drop": "demihuman_flesh", "type": "flesh", "mass_ratio": 0.32 }, - { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, - { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, - { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, - { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "demihuman_lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "demihuman_liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "demihuman_brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "demihuman_kidney", "type": "offal", "mass_ratio": 0.002 }, { "drop": "raw_demihumanleather", "type": "skin", "mass_ratio": 0.02 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, { "drop": "bone_demihuman", "type": "bone", "mass_ratio": 0.1 } diff --git a/data/Mainline_mods/Mods/Magiclysm/itemgroups/death_drops.json b/data/Mainline_mods/Mods/Magiclysm/itemgroups/death_drops.json index 447bd3707..0af35cf3a 100644 --- a/data/Mainline_mods/Mods/Magiclysm/itemgroups/death_drops.json +++ b/data/Mainline_mods/Mods/Magiclysm/itemgroups/death_drops.json @@ -27,5 +27,195 @@ "id": "default_zombie_items_pockets", "copy-from": "default_zombie_items_pockets", "extend": { "entries": [ { "item": "denarius", "prob": 7 } ] } + }, + { + "type": "item_group", + "subtype": "collection", + "//": "items carried by a XEDRA research thaumaturge prior to zombification. Magical trinkets, reagents, etc.", + "id": "mon_zombie_research_thaumaturge_death_drops", + "entries": [ + { "group": "lab_shoes", "damage": [ 1, 4 ] }, + { "group": "lab_torso_research_thaumaturge", "damage": [ 1, 4 ] }, + { "group": "lab_pants", "damage": [ 1, 4 ] }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { + "collection": [ + { "group": "potions_common", "prob": 50 }, + { "group": "potions_uncommon", "prob": 20 }, + { "group": "enchanted_rings_common", "prob": 20 }, + { "group": "enchanted_wands_lesser", "prob": 20 }, + { "group": "magical_reagents", "prob": 80, "count-min": 1, "count-max": 5 }, + { "group": "textbooks", "prob": 25 }, + { "group": "lab_files_generic", "prob": 15 }, + { "item": "crystallized_mana", "prob": 35, "charges": [ 1, 5 ] } + ] + }, + { "group": "wallets_science", "damage": [ 1, 4 ], "prob": 5 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "feral_goblin_death_drops", + "entries": [ + { "group": "default_zombie_clothes", "prob": 100, "custom-flags": [ "UNDERSIZE" ], "damage": [ 1, 4 ] }, + { "group": "default_zombie_items", "count": [ 1, 3 ], "prob": 50 }, + { "group": "wallets", "prob": 70 }, + { "item": "denarius", "prob": 5 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "feral_ravenfolk_death_drops", + "entries": [ + { "group": "default_ravenfolk_clothes", "prob": 100, "damage": [ 1, 4 ] }, + { "group": "default_zombie_items", "count": [ 1, 3 ], "prob": 50 }, + { "group": "wallets", "prob": 50 }, + { "item": "denarius", "prob": 5 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "feral_lizardfolk_death_drops", + "//": "Being cold-blooded and having scales, lizardfolk don't wear many clothes.", + "entries": [ + { "group": "small_bags", "damage": [ 1, 4 ], "contents-group": "default_zombie_items_bags_small", "prob": 50 }, + { "group": "default_zombie_items", "count": [ 1, 3 ], "prob": 50 }, + { "item": "denarius", "prob": 5 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "//": "default zombie clothes, purged of items ravenfolk wouldn't wear like shoes or gloves.", + "id": "default_ravenfolk_clothes", + "entries": [ + { "group": "coats_unisex", "damage": [ 1, 4 ], "prob": 20 }, + { "group": "hatstore_hats", "damage": [ 1, 4 ], "prob": 20 }, + { "group": "scarfs_unisex", "damage": [ 1, 4 ], "prob": 20 }, + { "group": "accesories_personal_unisex", "damage": [ 1, 4 ], "prob": 15 }, + { "group": "christmas_accesories_personal_unisex", "damage": [ 1, 4 ], "prob": 25, "event": "christmas" }, + { + "distribution": [ + { + "collection": [ + { + "distribution": [ + { "group": "male_underwear", "prob": 99, "damage": [ 1, 4 ] }, + { "item": "union_suit", "prob": 1, "damage": [ 1, 4 ] } + ] + }, + { + "distribution": [ + { + "collection": [ + { "group": "pants_male", "prob": 60, "damage": [ 1, 4 ] }, + { "group": "shirts_unisex", "prob": 60, "damage": [ 1, 4 ] }, + { + "distribution": [ + { "item": "leather_belt", "prob": 85, "damage": [ 1, 4 ] }, + { "group": "christmas_belts", "prob": 25, "damage": [ 1, 4 ], "event": "christmas" } + ], + "prob": 30 + } + ] + }, + { "item": "suit", "prob": 5, "damage": [ 1, 4 ] }, + { "item": "tux", "prob": 1, "damage": [ 1, 4 ] }, + { "item": "thawb", "prob": 1, "damage": [ 1, 4 ] }, + { "item": "cassock", "prob": 1, "damage": [ 1, 4 ] }, + { "item": "haori", "prob": 1, "damage": [ 1, 4 ] } + ] + }, + { "group": "neckties", "prob": 15, "damage": [ 1, 4 ] }, + { "group": "accesories_personal_mens", "prob": 15, "damage": [ 1, 4 ] } + ] + }, + { + "collection": [ + { "group": "female_underwear", "prob": 90, "damage": [ 1, 4 ] }, + { "group": "accesories_personal_womens", "prob": 15, "damage": [ 1, 4 ] }, + { + "distribution": [ + { + "collection": [ + { "group": "pants_female", "prob": 60, "damage": [ 1, 4 ] }, + { "group": "shirts_unisex", "prob": 60, "damage": [ 1, 4 ] } + ], + "prob": 70 + }, + { + "collection": [ + { + "distribution": [ + { "item": "gown", "prob": 10, "damage": [ 1, 4 ] }, + { "item": "dress", "prob": 70, "damage": [ 1, 4 ] }, + { "item": "sundress", "prob": 45, "damage": [ 1, 4 ] }, + { "group": "christmas_dresses", "prob": 50, "damage": [ 1, 4 ], "event": "christmas" } + ] + } + ], + "prob": 30 + } + ] + } + ] + } + ] + }, + { + "distribution": [ + { "item": "helmet_bike", "damage": [ 1, 4 ], "prob": 50 }, + { "group": "clothing_biker", "damage": [ 1, 4 ], "prob": 50 } + ], + "prob": 3 + } + ] + }, + { + "id": "mossling_drops", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "item": "mossling_fur", "prob": 50, "count": [ 1, 10 ] }, + { "item": "stick", "prob": 50, "count": [ 1, 2 ] }, + { "item": "leaves", "prob": 95, "count": [ 8, 16 ] } + ] + }, + { + "id": "dryad_drops", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "item": "dryad_bark", "prob": 50, "count": [ 1, 6 ] }, + { "item": "splinter", "prob": 85, "count": [ 20, 40 ] }, + { "item": "stick", "prob": 90, "count": [ 2, 4 ] }, + { "item": "leaves", "prob": 100, "count": [ 10, 30 ] } + ] + }, + { + "id": "brackenwight_drops", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "item": "bracken_eye", "prob": 50, "count": [ 1, 3 ] }, + { "item": "stick", "prob": 90, "count": [ 1, 2 ] }, + { "item": "leaves", "prob": 100, "count": [ 2, 4 ] }, + { "item": "withered", "prob": 75, "count": [ 10, 40 ] }, + { "item": "veggy", "prob": 75, "count": [ 10, 40 ] } + ] + }, + { + "id": "gnome_drops", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "item": "gnome_eye", "prob": 50, "count": [ 1, 2 ] }, + { "item": "rock", "prob": 85, "count": [ 10, 30 ] }, + { "item": "pebble", "prob": 85, "count": [ 40, 90 ] }, + { "item": "rock_flaking", "prob": 85, "count": [ 3, 6 ] } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/itemgroups/itemgroups.json b/data/Mainline_mods/Mods/Magiclysm/itemgroups/itemgroups.json index 5d3d95d29..794b6cf5d 100644 --- a/data/Mainline_mods/Mods/Magiclysm/itemgroups/itemgroups.json +++ b/data/Mainline_mods/Mods/Magiclysm/itemgroups/itemgroups.json @@ -21,7 +21,7 @@ "type": "item_group", "id": "homebooks", "copy-from": "homebooks", - "extend": { "items": [ { "group": "spellbook_loot_0", "prob": 4 } ] } + "extend": { "items": [ { "group": "spellbook_loot_0", "prob": 4 }, { "item": "history_botanical_enchantment", "prob": 2 } ] } }, { "type": "item_group", @@ -39,7 +39,10 @@ { "group": "magic_recipe_basic", "prob": 3 }, { "group": "magic_recipe_advanced", "prob": 1 }, { "group": "dragon_books", "prob": 3 }, - { "item": "spellcraft_theory", "prob": 2 } + { "item": "spellcraft_theory", "prob": 2 }, + { "item": "caster_boosts_info", "prob": 2 }, + { "item": "alchemy_illegal", "prob": 1 }, + { "item": "alchemy_master", "prob": 1 } ] } }, @@ -53,7 +56,9 @@ { "group": "magic_recipe_basic", "prob": 6 }, { "group": "magic_recipe_advanced", "prob": 2 }, { "group": "dragon_books", "prob": 5 }, - { "group": "spellcraft_books", "prob": 4 } + { "group": "spellcraft_books", "prob": 4 }, + { "item": "alchemy_illegal", "prob": 1 }, + { "item": "alchemy_master", "prob": 1 } ] } }, @@ -65,14 +70,20 @@ "items": [ { "group": "spellbook_loot_1", "prob": 3 }, { "group": "dragon_books", "prob": 2 }, - { "group": "spellcraft_books", "prob": 1 } + { "group": "spellcraft_books", "prob": 1 }, + { "item": "alchemy_illegal", "prob": 1 }, + { "item": "alchemy_master", "prob": 1 } ] } }, { "type": "item_group", "id": "spellcraft_books", - "items": [ { "item": "spellcraft_theory_basic", "prob": 70 }, { "item": "spellcraft_theory", "prob": 30 } ] + "items": [ + { "item": "spellcraft_theory_basic", "prob": 70 }, + { "item": "spellcraft_theory", "prob": 30 }, + { "item": "caster_boosts_info", "prob": 30 } + ] }, { "type": "item_group", @@ -186,7 +197,9 @@ "id": "trash", "type": "item_group", "copy-from": "trash", - "extend": { "items": [ [ "summon_scroll_smudged", 5 ], [ "spell_scroll_tornskin", 5 ] ] } + "extend": { + "items": [ [ "summon_scroll_smudged", 5 ], [ "spell_scroll_tornskin", 5 ], [ "spell_scroll_stormshaper_cloak_of_frog", 5 ] ] + } }, { "type": "item_group", @@ -197,8 +210,9 @@ { "group": "spell_scroll_tier_1", "prob": 60 }, { "group": "spell_scroll_tier_2", "prob": 30 }, { "group": "magic_recipe_basic", "prob": 50 }, - { "group": "magic_recipe_advanced", "prob": 16 }, - { "group": "spellcraft_books", "prob": 40 } + { "group": "magic_recipe_advanced", "prob": 20 }, + { "group": "spellcraft_books", "prob": 40 }, + { "item": "alchemy_master", "prob": 12 } ] }, { @@ -210,7 +224,8 @@ { "group": "spellbook_tier_0", "prob": 80 }, { "group": "spellbook_tier_0", "prob": 60 }, { "group": "spellbook_tier_0", "prob": 20 }, - { "item": "spellcraft_theory_basic", "prob": 10 } + { "item": "spellcraft_theory_basic", "prob": 10 }, + { "item": "caster_boosts_info", "prob": 10 } ] }, { @@ -221,28 +236,101 @@ { "item": "wand_fireball_minor", "prob": 25, "charges-min": 3, "charges-max": 24 } ] }, + { + "id": "magic_plants_common", + "type": "item_group", + "items": [ [ "olieribos", 10 ], [ "whiskflower", 30 ], { "group": "magic_plants_uncommon", "prob": 10 } ] + }, + { + "id": "magic_plants_uncommon", + "type": "item_group", + "items": [ + [ "kampuch", 6 ], + [ "glowing_mushroom", 20 ], + [ "horn_moss_capsule", 10 ], + [ "wood_barnacle", 10 ], + [ "dragon_nail", 10 ], + [ "moly_tuber", 10 ], + [ "fern_flower", 10 ], + [ "funnelcap_chunk", 10 ], + { "group": "magic_plants_rare", "prob": 3 } + ] + }, + { + "id": "magic_plants_rare", + "type": "item_group", + "items": [ [ "platonic_flower", 10 ], [ "moonflowers", 10 ], [ "golden_reed_stalk", 5 ], [ "sojourners_flower", 5 ] ] + }, { "id": "potions_common", "type": "item_group", "items": [ [ "mana_potion_lesser", 90 ], - [ "mana_potion", 20 ], + [ "mana_potion", 5 ], [ "mana_potion_greater", 1 ], + [ "manatouched_serum", 1 ], + [ "flask_illumination", 10 ], + [ "flask_rebreather", 10 ], + { "group": "potions_uncommon", "prob": 1 } + ] + }, + { + "id": "potions_uncommon", + "type": "item_group", + "items": [ + [ "cats_grace_potion", 10 ], [ "ogres_strength_potion", 10 ], - [ "foxs_cunning_potion", 10 ], [ "eagles_sight_potion", 10 ], - [ "cats_grace_potion", 10 ], - [ "manatouched_serum", 1 ] + [ "foxs_cunning_potion", 10 ], + [ "flask_resistance", 10 ], + [ "flask_max_mana", 10 ], + [ "flask_fireball", 10 ], + [ "flask_spear", 10 ], + [ "flask_shadow_field", 10 ], + { "group": "potions_rare", "prob": 2 }, + { "group": "potions_illegal", "prob": 1 } ] }, + { + "id": "potions_rare", + "type": "item_group", + "items": [ + [ "flask_healing", 10 ], + [ "flask_excitement", 10 ], + [ "flask_regeneration", 10 ], + [ "flask_mana_regen", 10 ], + [ "flask_teleport_rand", 10 ], + { "group": "potions_illegal", "prob": 1 } + ] + }, + { + "id": "potions_illegal", + "type": "item_group", + "items": [ + [ "flask_confusion", 10 ], + [ "flask_teleport", 10 ], + [ "flask_invisibility", 10 ], + [ "flask_charm", 10 ], + [ "flask_mood", 10 ], + [ "flask_toxin", 10 ], + [ "flask_venom", 10 ] + ] + }, + { + "id": "potions_rare", + "type": "item_group", + "items": [ [ "flask_healing", 10 ], [ "flask_excitement", 10 ], [ "flask_regeneration", 10 ], [ "flask_mana_regen", 10 ] ] + }, { "id": "magic_shop_potions", "type": "item_group", "items": [ { "group": "potions_common", "prob": 80 }, + { "group": "potions_uncommon", "prob": 30 }, + { "group": "potions_rare", "prob": 5 }, { "group": "alchemy_items", "prob": 30 }, { "group": "magical_reagents", "prob": 20 }, - [ "crystallized_mana", 55 ], + { "item": "crystallized_mana", "prob": 55, "charges-min": 1, "charges-max": 10 }, { "item": "small_mana_crystal", "prob": 40, "charges-min": 5, "charges-max": 50 } ] }, @@ -257,7 +345,10 @@ [ "bulette_plate", 10 ], [ "cauldron_orichalcum", 7 ], [ "mithril_ingot", 2 ], - { "item": "bulette_pearl", "prob": 8, "count-min": 1, "count-max": 2 } + { "item": "bulette_pearl", "prob": 8, "count-min": 1, "count-max": 2 }, + { "group": "magic_plants_common", "prob": 6 }, + { "group": "magic_plants_uncommon", "prob": 3 }, + { "group": "magic_plants_rare", "prob": 1 } ] }, { @@ -270,8 +361,11 @@ { "group": "enchanted_tools_plus1", "prob": 10 }, { "group": "jewelry_safe", "prob": 10 }, { "group": "jewelry_front", "prob": 8 }, - { "group": "potions_common", "prob": 15 }, - { "group": "magical_reagents", "prob": 20 }, + { "group": "potions_common", "prob": 15, "count-min": 1, "count-max": 3 }, + { "group": "potions_uncommon", "prob": 7, "count-min": 1, "count-max": 2 }, + { "group": "potions_rare", "prob": 3 }, + { "group": "potions_illegal", "prob": 1 }, + { "group": "magical_reagents", "prob": 45, "count-min": 1, "count-max": 3 }, { "distribution": [ { "group": "enchanted_wands_lesser", "prob": 15 }, @@ -287,7 +381,10 @@ { "item": "bone_human", "prob": 60, "count-min": 1, "count-max": 5 }, { "item": "denarius", "prob": 40, "count-min": 2, "count-max": 5 }, [ "cauldron_orichalcum", 10 ], - { "group": "tools_toolbox", "prob": 10 } + { "group": "tools_toolbox", "prob": 20 }, + { "group": "magic_plants_common", "prob": 40, "count-min": 1, "count-max": 14 }, + { "group": "magic_plants_uncommon", "prob": 20, "count-min": 1, "count-max": 8 }, + { "group": "magic_plants_rare", "prob": 5, "count-min": 1, "count-max": 4 } ] }, { @@ -295,6 +392,9 @@ "type": "item_group", "items": [ { "group": "potions_common", "prob": 20 }, + { "group": "potions_uncommon", "prob": 20 }, + { "group": "potions_rare", "prob": 10 }, + { "group": "potions_illegal", "prob": 10 }, { "group": "enchanted_wands_lesser", "prob": 15 }, { "group": "spellbook_loot_1", "prob": 35, "count": [ 1, 3 ] }, { "group": "enchanted_rings_common", "prob": 20 }, @@ -424,6 +524,7 @@ { "item": "mtorch_everburning", "prob": 100 }, { "item": "mflask_hip_whiskey", "prob": 100 }, { "item": "mtailors_kit", "prob": 100, "charges-min": 3, "charges-max": 24 }, + { "item": "mteapot", "prob": 40 }, { "item": "mspider_box", "prob": 100, "charges-min": 3, "charges-max": 24 }, { "item": "cauldron_demon_chitin", "prob": 20 }, { "item": "fridge_holding_1", "prob": 12 }, @@ -677,6 +778,8 @@ { "item": "sword_xiphos_plus_one", "prob": 5 }, { "item": "dao_plus_one", "prob": 5 }, { "item": "lucerne_plus_one", "prob": 5 }, + { "item": "cestus_plus_one", "prob": 5 }, + { "item": "flaming_fist_plus_one", "prob": 5 }, { "item": "gunblade", "prob": 5 } ] }, @@ -726,6 +829,8 @@ { "item": "khopesh_plus_two", "prob": 5 }, { "item": "sword_xiphos_plus_two", "prob": 5 }, { "item": "lucerne_plus_two", "prob": 5 }, + { "item": "cestus_plus_two", "prob": 5 }, + { "item": "flaming_fist_plus_two", "prob": 5 }, { "item": "dao_plus_two", "prob": 5 } ] }, @@ -772,7 +877,7 @@ { "group": "magic_CBM", "prob": 2 }, { "item": "lair_map", "prob": 20 }, { "item": "retreat_map", "prob": 30 }, - [ "crystallized_mana", 50 ], + { "item": "crystallized_mana", "prob": 50, "charges-min": 1, "charges-max": 10 }, { "item": "small_mana_crystal", "prob": 40, "charges-min": 5, "charges-max": 50 }, { "item": "magic_knife_bag", "prob": 25 } ] @@ -829,7 +934,9 @@ { "distribution": [ { "item": "spell_scroll_stormshaper_wall_of_fog", "prob": 50 }, - { "item": "spell_scroll_lightning_blast", "prob": 50 } + { "item": "spell_scroll_lightning_blast", "prob": 50 }, + { "item": "spell_scroll_stormshaper_cloak_of_fog", "prob": 50 }, + { "item": "spell_scroll_stormshaper_cloak_of_frog", "prob": 25 } ], "prob": 45 }, @@ -839,7 +946,8 @@ { "item": "spell_scroll_lightning_bolt", "prob": 50 }, { "item": "spell_scroll_windstrike", "prob": 50 }, { "item": "spell_scroll_windrun", "prob": 50 }, - { "item": "spell_scroll_repelling_arc", "prob": 50 } + { "item": "spell_scroll_repelling_arc", "prob": 50 }, + { "item": "spell_scroll_stormshaper_heart_of_hurricane", "prob": 50 } ], "prob": 40 }, @@ -847,6 +955,7 @@ "distribution": [ { "item": "tome_of_storms", "prob": 5 }, { "item": "spell_scroll_storm_hammer", "prob": 50 }, + { "item": "spell_scroll_stormfist", "prob": 35 }, { "item": "spell_scroll_stormshaper_ionization", "prob": 50 }, { "item": "lightning_storm_scroll", "prob": 10 } ], @@ -859,7 +968,12 @@ "//": "Reagents you'd use in crafting a wide variety of things, including alchemy and rituals.", "type": "item_group", "subtype": "distribution", - "items": [ { "item": "mercury", "prob": 15, "charges-min": 50 } ] + "items": [ + { "item": "mercury", "prob": 15, "charges-min": 50 }, + { "group": "magic_plants_common", "prob": 6 }, + { "group": "magic_plants_uncommon", "prob": 3 }, + { "group": "magic_plants_rare", "prob": 1 } + ] }, { "id": "science", @@ -879,7 +993,9 @@ { "item": "wizard_utility", "prob": 20 }, { "item": "spell_scroll_magic_missile", "prob": 70 }, { "item": "spell_scroll_phase_door", "prob": 50 }, - { "item": "spell_scroll_shadow_field", "prob": 40 } + { "item": "spell_scroll_shadow_field", "prob": 40 }, + { "item": "spell_scroll_magus_slowfall", "prob": 50 }, + { "item": "spell_scroll_magus_spiderclimb", "prob": 40 } ], "prob": 45 }, @@ -920,14 +1036,16 @@ { "distribution": [ { "item": "spell_scroll_smite", "prob": 50 }, - { "item": "spell_scroll_summon_zombie", "prob": 50 }, + { "item": "spell_scroll_animist_sense_outsiders", "prob": 30 }, + { "item": "spell_scroll_summon_undead", "prob": 50 }, { "item": "spell_scroll_necrotic_gaze", "prob": 50 }, - { "item": "spell_scroll_summon_wisps", "prob": 50 } + { "item": "spell_scroll_summon_wisps", "prob": 50 }, + { "item": "spell_scroll_animist_summon_watcher", "prob": 50 } ], "prob": 45 }, { - "distribution": [ { "item": "priest_advanced", "prob": 10 }, { "item": "spell_scroll_summon_skeleton", "prob": 50 } ], + "distribution": [ { "item": "priest_advanced", "prob": 10 }, { "item": "spell_scroll_summon_undead", "prob": 50 } ], "prob": 35 }, { @@ -935,7 +1053,7 @@ { "item": "recovery_spellbook", "prob": 5 }, { "item": "winter_grasp", "prob": 10 }, { "item": "spell_scroll_recover_mana", "prob": 50 }, - { "item": "spell_scroll_summon_decayed_pouncer", "prob": 50 }, + { "item": "spell_scroll_summon_undead_swarm", "prob": 50 }, { "item": "spell_scroll_recover_pain", "prob": 50 } ], "prob": 10 @@ -965,7 +1083,12 @@ "subtype": "collection", "items": [ { - "distribution": [ { "item": "spell_scroll_create_lighter", "prob": 50 }, { "item": "spell_scroll_chilling_touch", "prob": 50 } ], + "distribution": [ + { "item": "spell_scroll_create_lighter", "prob": 50 }, + { "item": "spell_scroll_chilling_touch", "prob": 50 }, + { "item": "spell_scroll_kelvinist_anti_cold", "prob": 40 }, + { "item": "spell_scroll_kelvinist_anti_heat", "prob": 40 } + ], "prob": 45 }, { @@ -1008,7 +1131,8 @@ { "item": "spell_scroll_bless", "prob": 50 }, { "item": "spell_scroll_create_atomic_lamp", "prob": 50 }, { "item": "spell_scroll_taze", "prob": 50 }, - { "item": "spell_scroll_laze", "prob": 50 } + { "item": "spell_scroll_laze", "prob": 50 }, + { "item": "spell_scroll_technomancer_conjure_radio", "prob": 40 } ], "prob": 45 }, @@ -1020,7 +1144,10 @@ { "item": "spell_scroll_holy_blade", "prob": 50 }, { "item": "spell_scroll_spirit_armor", "prob": 50 }, { "item": "spell_scroll_synaptic_stimulation", "prob": 50 }, - { "item": "spell_scroll_knock", "prob": 50 } + { "item": "spell_scroll_knock", "prob": 50 }, + { "item": "spell_scroll_technomancer_robot_shutdown", "prob": 50 }, + { "item": "spell_scroll_technomancer_conjure_ups", "prob": 25 }, + { "item": "spell_scroll_technomancer_welder", "prob": 35 } ], "prob": 35 }, @@ -1052,7 +1179,10 @@ "distribution": [ { "item": "spell_scroll_stonefist", "prob": 50 }, { "item": "spell_scroll_eshaper_piercing_bolt", "prob": 50 }, - { "item": "spell_scroll_eshaper_rockbolt", "prob": 50 } + { "item": "spell_scroll_eshaper_rockbolt", "prob": 50 }, + { "item": "spell_scroll_earthshaper_danger_sense", "prob": 50 }, + { "item": "spell_scroll_earthshaper_fortitude_of_stone", "prob": 50 }, + { "item": "spell_scroll_earthshaper_turning_of_earth", "prob": 50 } ], "prob": 45 }, @@ -1072,7 +1202,9 @@ { "item": "recovery_spellbook", "prob": 5 }, { "item": "eshaper_spellbook", "prob": 10 }, { "item": "spell_scroll_recover_stamina", "prob": 50 }, - { "item": "spell_scroll_eshaper_shardstorm", "prob": 50 } + { "item": "spell_scroll_eshaper_shardstorm", "prob": 50 }, + { "item": "spell_scroll_earthshaper_reveal_world_map", "prob": 25 }, + { "item": "spell_scroll_earthshaper_granite_aegis", "prob": 20 } ], "prob": 10 } @@ -1090,7 +1222,9 @@ { "item": "spell_scroll_light_healing", "prob": 50 }, { "item": "spell_scroll_bio_acidicspray", "prob": 50 }, { "item": "spell_scroll_biomancer_paralytic_dart", "prob": 50 }, - { "item": "spell_scroll_biomancer_visceral_projection", "prob": 50 } + { "item": "spell_scroll_biomancer_visceral_projection", "prob": 50 }, + { "item": "spell_scroll_biomancer_swim_frog", "prob": 35 }, + { "item": "spell_scroll_biomancer_cure_disease_minor", "prob": 50 } ], "prob": 45 }, @@ -1100,7 +1234,9 @@ { "item": "spell_scroll_pain_split", "prob": 50 }, { "item": "spell_scroll_bio_grotesque", "prob": 50 }, { "item": "spell_scroll_biomancer_coagulant_weave", "prob": 50 }, - { "item": "spell_scroll_bio_fleshpouch", "prob": 50 } + { "item": "spell_scroll_bio_fleshpouch", "prob": 50 }, + { "item": "spell_scroll_biomancer_lashing_tentacles", "prob": 30 }, + { "item": "spell_scroll_biomancer_carrion_feast", "prob": 25 } ], "prob": 35 }, @@ -1108,6 +1244,7 @@ "distribution": [ { "item": "wizard_advanced", "prob": 10 }, { "item": "biomancer_spellbook", "prob": 10 }, + { "item": "spell_scroll_biomancer_giant_growth", "prob": 30 }, { "item": "spell_scroll_vicious_tentacle", "prob": 50 }, { "item": "spell_scroll_bio_bonespear", "prob": 50 } ], @@ -1127,7 +1264,9 @@ { "item": "summon_scroll_smudged", "prob": 2 }, { "item": "spell_scroll_tornskin", "prob": 2 }, { "item": "spell_scroll_summon_cats", "prob": 50 }, - { "item": "spell_scroll_seed_of_growth", "prob": 15 } + { "item": "spell_scroll_seed_of_growth", "prob": 15 }, + { "item": "spell_scroll_druid_harvest_hunter", "prob": 30 }, + { "item": "spell_scroll_druid_bramble_spear", "prob": 30 } ], "prob": 45 }, @@ -1136,8 +1275,11 @@ { "item": "druid_spellbook", "prob": 20 }, { "item": "spell_scroll_druid_veggrasp", "prob": 100 }, { "item": "spell_scroll_druid_naturebow1", "prob": 100 }, + { "item": "spell_scroll_druid_whisper_leaves", "prob": 100 }, { "item": "spell_scroll_druid_rootstrike", "prob": 100 }, - { "item": "spell_scroll_purification_seed", "prob": 100 } + { "item": "spell_scroll_purification_seed", "prob": 100 }, + { "item": "spell_scroll_druid_summon_tanglevine", "prob": 50 }, + { "item": "spell_scroll_druid_summon_brambles", "prob": 60 } ], "prob": 35 }, @@ -1145,8 +1287,11 @@ "distribution": [ { "item": "recovery_spellbook", "prob": 10 }, { "item": "spell_scroll_recover_fatigue", "prob": 100 }, + { "item": "spell_scroll_druid_thornskin", "prob": 100 }, { "item": "spell_scroll_druidic_regrowth", "prob": 100 }, - { "item": "spell_scroll_druidic_healing", "prob": 100 } + { "item": "spell_scroll_druidic_healing", "prob": 100 }, + { "item": "spell_scroll_druid_bandage", "prob": 100 }, + { "item": "spell_scroll_druid_beguile_savage_beast", "prob": 100 } ], "prob": 10 } @@ -1162,7 +1307,10 @@ "items": [ { "group": "enchanted_tokens_tool", "prob": 3 }, { "group": "enchanted_tokens_weapon", "prob": 2 }, - { "group": "potions_common", "prob": 12 } + { "group": "potions_common", "prob": 12 }, + { "group": "potions_uncommon", "prob": 6 }, + { "group": "potions_rare", "prob": 3 }, + { "group": "potions_illegal", "prob": 1 } ] } }, @@ -1175,6 +1323,9 @@ { "group": "enchanted_tokens_tool", "prob": 15 }, { "group": "enchanted_tokens_weapon", "prob": 5 }, { "group": "potions_common", "prob": 35 }, + { "group": "potions_uncommon", "prob": 20 }, + { "group": "potions_rare", "prob": 10 }, + { "group": "potions_illegal", "prob": 1 }, { "group": "spellcraft_books", "prob": 10 }, { "distribution": [ @@ -1200,7 +1351,8 @@ { "item": "wizard_utility", "prob": 10 }, { "item": "spell_scroll_protection_aura", "prob": 50 }, { "item": "spell_scroll_dark_sight", "prob": 30 }, - { "item": "spell_scroll_megablast", "prob": 30 } + { "item": "spell_scroll_megablast", "prob": 30 }, + { "item": "spell_scroll_classless_dispel_magic", "prob": 30 } ], "prob": 40 }, @@ -1209,7 +1361,8 @@ { "item": "golemcore", "prob": 3 }, { "item": "light_manipulation_spellbook", "prob": 5 }, { "item": "translocate_spellbook", "prob": 2 }, - { "item": "spell_scroll_obfuscated_body", "prob": 50 } + { "item": "spell_scroll_obfuscated_body", "prob": 50 }, + { "item": "spell_scroll_classless_disjunction", "prob": 20 } ], "prob": 10 }, @@ -1217,7 +1370,7 @@ "distribution": [ { "group": "enchanted_rings_common", "prob": 30 }, { "group": "enchanted_rings_uncommon", "prob": 10 } ], "prob": 40 }, - [ "crystallized_mana", 50 ], + { "item": "crystallized_mana", "prob": 50, "charges-min": 1, "charges-max": 10 }, [ "copper_circlet", 10 ], [ "cauldron_orichalcum", 1 ], { "item": "small_mana_crystal", "prob": 40, "charges-min": 5, "charges-max": 50 } @@ -1264,7 +1417,6 @@ [ "alloy_plate", 1 ], [ "basket", 10 ], [ "mess_kit", 2 ], - [ "rock_pot", 100 ], [ "pot_makeshift", 100 ], [ "pot_makeshift_copper", 50 ], [ "pressure_cooker", 5 ], @@ -1282,7 +1434,7 @@ "id": "wood_fuel", "//": "fuel for a cookpot", "items": [ - { "item": "charcoal", "count": [ 20, 75 ], "prob": 20 }, + { "item": "charcoal", "count": [ 2, 5 ], "charges": [ 10, 50 ], "prob": 20 }, { "item": "log", "count": [ 1, 3 ], "prob": 40 }, { "item": "2x4", "count": [ 4, 8 ], "prob": 40 } ] @@ -1309,7 +1461,7 @@ [ "chisel", 90 ], [ "crucible", 30 ], [ "swage", 60 ], - [ "tongs", 90 ], + [ "metalworking_tongs", 90 ], [ "hammer", 90 ], [ "sandpaper", 90 ], [ "small_mana_crystal", 180 ] @@ -1394,5 +1546,32 @@ { "item": "glow_dust", "prob": 10, "count": [ 4, 6 ] }, { "item": "stirge_proboscis", "prob": 25 } ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "lab_torso_research_thaumaturge", + "items": [ + [ "coat_lab", 20 ], + [ "coat_lab", 20 ], + [ "coat_lab", 20 ], + [ "coat_lab", 20 ], + [ "tshirt", 80 ], + [ "longshirt", 80 ], + [ "polo_shirt", 65 ], + [ "dress_shirt", 60 ], + [ "dress", 70 ], + [ "sweatshirt", 75 ], + [ "sweater", 75 ], + [ "turtleneck", 25 ], + [ "turtleneck_shirt", 25 ], + [ "hoodie", 65 ], + [ "jumpsuit", 20 ], + [ "badge_doctor", 10 ], + [ "hazmat_suit", 5 ], + [ "cleansuit", 10 ], + { "item": "coat_lab_plus_one", "prob": 20 }, + { "item": "coat_lab_plus_two", "prob": 5 } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/itemgroups/recipe_books.json b/data/Mainline_mods/Mods/Magiclysm/itemgroups/recipe_books.json index 739eba4dc..017777e65 100644 --- a/data/Mainline_mods/Mods/Magiclysm/itemgroups/recipe_books.json +++ b/data/Mainline_mods/Mods/Magiclysm/itemgroups/recipe_books.json @@ -9,6 +9,7 @@ [ "techno_basic", 30 ], [ "enchantment_basic", 30 ], [ "book_mythological", 10 ], + [ "history_botanical_enchantment", 15 ], [ "cooking_poison", 15 ], [ "metal_legends", 5 ] ] @@ -17,6 +18,6 @@ "id": "magic_recipe_advanced", "type": "item_group", "//": "Higher tier recipes, where most school-related recipes require their rune or rune weapon.", - "items": [ [ "magic_armormaking", 30 ] ] + "items": [ [ "magic_armormaking", 30 ], [ "alchemy_illegal", 30 ], [ "alchemy_master", 30 ], [ "weapon_enchanting_guide", 30 ] ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/itemgroups/spellbooks.json b/data/Mainline_mods/Mods/Magiclysm/itemgroups/spellbooks.json index bd6d2eb16..3c5558647 100644 --- a/data/Mainline_mods/Mods/Magiclysm/itemgroups/spellbooks.json +++ b/data/Mainline_mods/Mods/Magiclysm/itemgroups/spellbooks.json @@ -5,10 +5,12 @@ "items": [ [ "summon_scroll_smudged", 10 ], [ "spell_scroll_tornskin", 10 ], + [ "spell_scroll_stormshaper_cloak_of_frog", 10 ], [ "spell_scroll_smite", 40 ], - [ "spell_scroll_summon_zombie", 25 ], + [ "spell_scroll_summon_undead", 25 ], [ "spell_scroll_light_healing", 50 ], [ "spell_scroll_bio_acidicspray", 35 ], + [ "spell_scroll_biomancer_cure_disease_minor", 40 ], [ "spell_scroll_create_atomic_light", 50 ], [ "spell_scroll_blinding_flash", 50 ], [ "spell_scroll_ethereal_grasp", 50 ], @@ -18,18 +20,27 @@ [ "spell_scroll_stonefist", 20 ], [ "spell_scroll_eshaper_piercing_bolt", 40 ], [ "spell_scroll_eshaper_rockbolt", 50 ], + [ "spell_scroll_reactive_armor", 25 ], + [ "spell_scroll_pertifying_touch", 25 ], + [ "spell_scroll_earthshaper_boulder", 35 ], + [ "spell_scroll_earthshaper_turning_of_earth", 30 ], + [ "spell_scroll_create_electric_lighter", 50 ], [ "spell_scroll_create_lighter", 50 ], [ "spell_scroll_chilling_touch", 50 ], [ "spell_scroll_magic_missile", 50 ], [ "spell_scroll_bleed", 50 ], + [ "spell_scroll_classless_watch_spell", 30 ], [ "spell_scroll_disruption_bolt", 50 ], [ "spell_scroll_shocking_lash", 50 ], + [ "spell_scroll_electric_arts", 50 ], [ "spell_scroll_bless", 25 ], [ "spell_scroll_create_atomic_lamp", 25 ], [ "spell_scroll_taze", 25 ], + [ "spell_scroll_technomancer_conjure_radio", 20 ], [ "spell_scroll_laze", 25 ], [ "spell_scroll_lightning_blast", 20 ], [ "spell_scroll_x-ray", 30 ], + [ "spell_scroll_animist_sense_outsiders", 25 ], [ "spell_scroll_necrotic_gaze", 50 ], [ "spell_scroll_crystallize_mana", 20 ], [ "spell_scroll_biomancer_paralytic_dart", 40 ], @@ -43,7 +54,9 @@ "id": "spell_scroll_tier_1", "type": "item_group", "items": [ - [ "spell_scroll_summon_skeleton", 35 ], + [ "spell_scroll_classless_dispel_magic", 45 ], + [ "spell_scroll_sound_bomb", 35 ], + [ "spell_scroll_animist_summon_watcher", 30 ], [ "spell_scroll_pain_split", 25 ], [ "spell_scroll_bio_grotesque", 40 ], [ "spell_scroll_bio_fleshpouch", 30 ], @@ -52,77 +65,118 @@ [ "spell_scroll_druid_rootstrike", 40 ], [ "spell_scroll_druid_healing_herb", 35 ], [ "spell_scroll_druid_naturebow1", 20 ], + [ "spell_scroll_druid_bandage", 30 ], + [ "spell_scroll_druid_harvest_hunter", 40 ], + [ "spell_scroll_druid_bramble_spear", 30 ], + [ "spell_scroll_druid_summon_brambles", 20 ], [ "spell_scroll_seismic_stomp", 20 ], [ "spell_scroll_eshaper_shardspray", 25 ], + [ "spell_scroll_eshaper_spawn_tools", 40 ], [ "spell_scroll_clairvoyance", 30 ], [ "spell_scroll_point_flare", 50 ], [ "spell_scroll_ice_spike", 50 ], [ "spell_scroll_burning_hands", 50 ], [ "spell_scroll_frost_spray", 50 ], [ "spell_scroll_glide_ice", 25 ], + [ "spell_scroll_kelvinist_anti_cold", 30 ], + [ "spell_scroll_kelvinist_anti_heat", 30 ], [ "spell_scroll_ice_shield", 25 ], [ "spell_scroll_frost_armor", 35 ], [ "spell_scroll_phase_door", 50 ], + [ "spell_scroll_magus_slowfall", 30 ], + [ "spell_scroll_magus_spiderclimb", 30 ], [ "spell_scroll_jolt", 50 ], [ "spell_scroll_lightning_bolt", 35 ], [ "spell_scroll_windstrike", 50 ], [ "spell_scroll_windrun", 35 ], + [ "spell_scroll_stormshaper_cloak_of_fog", 40 ], + [ "spell_scroll_air_bubble", 35 ], + [ "spell_scroll_electric_eye", 35 ], + [ "spell_scroll_biomancer_swim_frog", 25 ], [ "spell_scroll_holy_blade", 25 ], + [ "spell_scroll_technomancer_welder", 20 ], [ "spell_scroll_spirit_armor", 25 ], [ "spell_scroll_quantum_tunnel_lesser", 50 ], [ "spell_scroll_synaptic_stimulation", 20 ], [ "spell_scroll_purification_seed", 40 ], [ "spell_scroll_crystallize_mana", 50 ], [ "spell_scroll_move_earth", 40 ], + [ "spell_scroll_earthshaper_fortitude_of_stone", 35 ], + [ "spell_scroll_earthshaper_danger_sense", 45 ], [ "spell_scroll_earthshaper_stoneskin", 30 ], [ "spell_scroll_earthshaper_pillar", 35 ], [ "spell_scroll_biomancer_coagulant_weave", 30 ], [ "spell_scroll_repelling_arc", 30 ], [ "spell_scroll_knock", 35 ], [ "spell_scroll_caustic_aura", 30 ], + [ "spell_scroll_biomancer_carrion_feast", 20 ], [ "spell_scroll_impactsling", 20 ], [ "spell_scroll_boneclub", 20 ], [ "spell_scroll_flamesword", 35 ], [ "spell_scroll_force_jar", 30 ], - [ "spell_scroll_flamebreath", 30 ] + [ "spell_scroll_flamebreath", 30 ], + [ "spell_scroll_thought_shield", 35 ] ] }, { "id": "spell_scroll_tier_2", "type": "item_group", "items": [ + [ "spell_scroll_devour", 25 ], [ "spell_scroll_recover_mana", 25 ], [ "spell_scroll_recover_pain", 25 ], [ "spell_scroll_recover_fatigue", 25 ], [ "spell_scroll_recover_stamina", 25 ], [ "spell_scroll_recover_bionic_power", 25 ], - [ "spell_scroll_summon_decayed_pouncer", 35 ], + [ "spell_scroll_summon_undead_swarm", 35 ], + [ "spell_scroll_convert", 50 ], + [ "spell_scroll_dominate", 50 ], + [ "spell_scroll_life_detonation", 50 ], [ "spell_scroll_summon_floating_disk", 25 ], + [ "spell_scroll_biomancer_lashing_tentacles", 50 ], [ "spell_scroll_vicious_tentacle", 40 ], [ "spell_scroll_bio_bonespear", 20 ], [ "spell_scroll_megablast", 10 ], [ "spell_scroll_baleful_polymorph", 20 ], [ "spell_scroll_eshaper_shardstorm", 50 ], + [ "spell_scroll_eshaper_impalement", 45 ], + [ "spell_scroll_eshaper_melee_damage", 30 ], + [ "spell_scroll_eshaper_crystal_wrap", 50 ], [ "spell_scroll_druid_healing", 25 ], + [ "spell_scroll_druid_summon_tanglevine", 35 ], [ "spell_scroll_fireball", 50 ], [ "spell_scroll_cone_cold", 50 ], [ "spell_scroll_hoary_blast", 50 ], [ "spell_scroll_gravity_well", 35 ], + [ "spell_scroll_biomancer_giant_growth", 35 ], [ "spell_scroll_magus_mana_bolt", 35 ], [ "spell_scroll_magus_haste", 50 ], [ "spell_scroll_magus_mana_beam", 35 ], [ "spell_scroll_magus_escape", 50 ], + [ "spell_scroll_magus_teleport_mark", 25 ], [ "spell_scroll_cats_grace", 50 ], [ "spell_scroll_eagles_sight", 50 ], [ "spell_scroll_ogres_strength", 50 ], [ "spell_scroll_foxs_cunning", 50 ], + [ "spell_scroll_stormfist", 25 ], + [ "spell_scroll_stormshaper_heart_of_hurricane", 30 ], [ "spell_scroll_storm_hammer", 35 ], [ "spell_scroll_animated_blade", 35 ], [ "spell_scroll_mirror_image", 15 ], [ "spell_scroll_holographic_transposition", 15 ], + [ "spell_scroll_technomancer_conjure_ups", 20 ], + [ "spell_scroll_technomancer_robot_shutdown", 25 ], [ "spell_scroll_dark_sight", 30 ], [ "spell_scroll_druidic_regrowth", 20 ], + [ "spell_scroll_druid_whisper_leaves", 30 ], [ "spell_scroll_stormshaper_ionization", 40 ], + [ "spell_scroll_storm_superconductor", 40 ], + [ "spell_scroll_shocking_dash", 40 ], + [ "spell_scroll_toxtricity", 40 ], + [ "spell_scroll_electric_waves", 40 ], + [ "spell_scroll_summon_teravolt", 40 ], + [ "spell_scroll_storm_shipwrecker", 40 ], + [ "spell_scroll_explosive_decompression", 40 ], [ "spell_scroll_improved_knock", 35 ], [ "spell_scroll_knifeshot", 35 ], [ "spell_scroll_feralform", 30 ], @@ -134,19 +188,28 @@ "id": "spell_scroll_tier_3", "type": "item_group", "items": [ + [ "spell_scroll_classless_disjunction", 35 ], [ "spell_scroll_magus_mana_blast", 50 ], + [ "spell_scroll_magus_word_of_recall", 25 ], [ "lightning_storm_scroll", 50 ], + [ "spell_scroll_vacuum_decompression", 50 ], [ "spell_scroll_invisibility", 10 ], [ "spell_scroll_obfuscated_body", 10 ], + [ "spell_scroll_shape_of_dust", 30 ], + [ "spell_scroll_summon_eshaper_golem", 30 ], [ "spell_scroll_druidic_healing", 20 ], [ "spell_scroll_summon_magic_motorcycle", 5 ], [ "bio_sneeze_beam", 50 ], + [ "spell_scroll_druid_beguile_savage_beast", 10 ], + [ "spell_scroll_druid_thornskin", 20 ], [ "spell_scroll_banishment_lesser", 30 ], [ "spell_scroll_nova_flare", 25 ], [ "spell_scroll_freezing_touch", 40 ], [ "spell_scroll_focused_bolt", 4 ], [ "spell_scroll_rupture", 4 ], - [ "spell_scroll_cause_rot", 4 ] + [ "spell_scroll_cause_rot", 4 ], + [ "spell_scroll_earthshaper_reveal_world_map", 15 ], + [ "spell_scroll_earthshaper_granite_aegis", 5 ] ] }, { @@ -158,7 +221,15 @@ { "id": "spellbook_tier_1", "type": "item_group", - "items": [ [ "wizard_utility", 50 ], [ "priest_advanced", 50 ], [ "techno_fundamentals", 50 ], [ "stat_up_spellbook", 45 ] ] + "items": [ + [ "wizard_utility", 50 ], + [ "priest_advanced", 50 ], + [ "prepper_spellbook", 30 ], + [ "techno_fundamentals", 50 ], + [ "stat_up_spellbook", 45 ], + [ "tome_of_wind", 45 ], + [ "tome_of_storms", 20 ] + ] }, { "id": "spellbook_tier_2", @@ -169,23 +240,29 @@ [ "biomancer_spellbook", 60 ], [ "druid_spellbook", 60 ], [ "pyro", 60 ], + [ "farmer_spellbook", 40 ], [ "eshaper_spellbook", 60 ], + [ "eshaper_spellbook_melee", 30 ], + [ "eshaper_spellbook_tool", 90 ], [ "techno_em", 60 ], + [ "bioelectricity", 60 ], [ "animist_spirits", 60 ], [ "wizard_advanced", 60 ], - [ "stat_up_spellbook", 45 ] + [ "stat_up_spellbook", 45 ], + [ "magic_movement_book", 30 ] ] }, { "id": "spellbook_tier_3", "type": "item_group", "items": [ - [ "animist_shadows", 5 ], - [ "forbidden_tome", 1 ], + [ "animist_shadows", 15 ], + [ "forbidden_tome", 15 ], [ "magus_spellbook", 15 ], + [ "tome_electric", 15 ], [ "magus_spellbook_move", 30 ], [ "translocate_spellbook", 20 ], - [ "light_manipulation_spellbook", 5 ], + [ "light_manipulation_spellbook", 15 ], [ "recovery_spellbook", 30 ] ] }, diff --git a/data/Mainline_mods/Mods/Magiclysm/items/alchemy_items.json b/data/Mainline_mods/Mods/Magiclysm/items/alchemy_items.json index 21a23acaa..16d658ee8 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/alchemy_items.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/alchemy_items.json @@ -7,14 +7,14 @@ "weight": "2 kg", "volume": "750 ml", "price": 3100, - "bashing": 9, "to_hit": -1, "material": [ "stone" ], "symbol": ";", "color": "light_gray", "qualities": [ [ "HAMMER", 2 ] ], "use_action": [ "CROWBAR" ], - "//": "In terms of alchemy the gastrolith could serve to combie different effects, such as safely mixing together potions, or it could be used as an element of change, such as for shapechanging potions." + "//": "In terms of alchemy the gastrolith could serve to combie different effects, such as safely mixing together potions, or it could be used as an element of change, such as for shapechanging potions.", + "melee_damage": { "bash": 9 } }, { "id": "stone_shell", @@ -26,11 +26,10 @@ "material": [ "stone" ], "weight": "250 g", "volume": "150 ml", - "bashing": 5, - "cutting": 3, "to_hit": -2, "qualities": [ [ "BUTCHER", -50 ] ], - "//": "Potion recipes that require a full owlbear egg could also instead require larger amounts of stone shell. Since 1 egg gives 3 shells, you could perhaps have 1 egg be equivalent to 5 or more shells when making potions." + "//": "Potion recipes that require a full owlbear egg could also instead require larger amounts of stone shell. Since 1 egg gives 3 shells, you could perhaps have 1 egg be equivalent to 5 or more shells when making potions.", + "melee_damage": { "bash": 5, "cut": 3 } }, { "id": "copper_infuser", @@ -80,6 +79,7 @@ "type": "COMESTIBLE", "comestible_type": "DRINK", "name": "superior potion starter", + "charges": 1, "description": "Pure ethanol saturated with magical energy. The sheer power concentrated within causes the surface of the potion to ripple continuously." }, { @@ -190,9 +190,9 @@ "color": "red", "to_hit": -1, "material": [ "flesh" ], - "cutting": 7, "weapon_category": [ "SHIVS" ], - "flags": [ "SPEAR", "SHEATH_KNIFE" ] + "flags": [ "SPEAR", "SHEATH_KNIFE" ], + "melee_damage": { "stab": 7 } }, { "type": "GENERIC", @@ -206,9 +206,9 @@ "material": [ "demon_chitin" ], "weight": "89 g", "volume": "250 ml", - "bashing": 1, "flags": [ "TRADER_AVOID" ], - "to_hit": -2 + "to_hit": -2, + "melee_damage": { "bash": 1 } }, { "id": "bundle_demon_chitin_piece", @@ -230,9 +230,9 @@ "material": [ "demon_chitin" ], "weight": "10 kg", "volume": "4 L", - "bashing": 12, "to_hit": -4, - "description": "A large piece of demon spider exoskeleton, painstakingly cut from the corpse of an adult demon spider. A plate of this size can be used to create armor plating." + "description": "A large piece of demon spider exoskeleton, painstakingly cut from the corpse of an adult demon spider. A plate of this size can be used to create armor plating.", + "melee_damage": { "bash": 12 } }, { "type": "GENERIC", @@ -245,10 +245,10 @@ "symbol": ",", "material": [ "flesh" ], "volume": "250 ml", - "cutting": 8, "weapon_category": [ "SHIVS" ], "flags": [ "SPEAR", "SHEATH_KNIFE" ], - "price": 1500 + "price": 1500, + "melee_damage": { "stab": 8 } }, { "type": "AMMO", @@ -302,9 +302,9 @@ "weight": "1500 g", "volume": "2500 ml", "longest_side": "130 cm", - "bashing": 10, "to_hit": 1, - "category": "spare_parts" + "category": "spare_parts", + "melee_damage": { "bash": 10 } }, { "id": "alchemist_bomb", @@ -317,7 +317,6 @@ "price": 2000, "price_postapoc": 550, "to_hit": -1, - "bashing": 14, "material": [ "crystallized_mana", "concentrated_mana" ], "symbol": "*", "color": "green", @@ -325,12 +324,12 @@ "need_wielding": true, "target": "alchemist_bomb_act", "msg": "You mix the contents of the bottle, and it starts to sizzle.", - "target_charges": 8, - "active": true, + "target_timer": "8 seconds", "menu_text": "Mix liquid", "type": "transform" }, - "flags": [ "BOMB", "GRENADE" ] + "flags": [ "BOMB", "GRENADE" ], + "melee_damage": { "bash": 14 } }, { "id": "alchemist_bomb_act", @@ -343,23 +342,15 @@ "price": 0, "price_postapoc": 0, "to_hit": -3, - "bashing": 14, "material": [ "concentrated_mana", "crystallized_mana" ], "symbol": "*", "color": "red", "explode_in_fire": true, "explosion": { "power": 200 }, - "initial_charges": 8, - "max_charges": 8, - "turns_per_charge": 1, - "use_action": { - "type": "explosion", - "sound_volume": 0, - "sound_msg": "ssss…", - "no_deactivate_msg": "The reaction has already started - all you can do is get it away from you!", - "explosion": { "power": 200 } - }, - "flags": [ "TRADER_AVOID" ] + "use_action": { "type": "message", "message": "The reaction has already started - all you can do is get it away from you!" }, + "countdown_action": { "type": "explosion", "explosion": { "power": 200 } }, + "flags": [ "TRADER_AVOID" ], + "melee_damage": { "bash": 14 } }, { "id": "alchemist_mine", @@ -369,61 +360,31 @@ "weight": "860 g", "volume": "400 ml", "to_hit": -1, - "bashing": 5, "material": [ "crystallized_mana", "concentrated_mana" ], "symbol": ";", "flags": [ "TRADER_AVOID" ], "color": "dark_gray", "use_action": { "type": "place_trap", - "bury_question": "Bury the alchemic mine?", - "bury": { "trap": "tr_alchemist_mine_buried", "moves": 275, "practice": 7, "done_message": "You bury the alchemic mine." }, "trap": "tr_alchemist_mine", - "moves": 200, - "practice": 4, + "moves": 120, + "practice": 3, "done_message": "You set the alchemic mine." - } - }, - { - "type": "trap", - "id": "tr_alchemist_mine_buried", - "trigger_weight": "200 g", - "name": "buried alchemical mine", - "color": "red", - "symbol": "_", - "visibility": 10, - "avoidance": 14, - "difficulty": 10, - "action": "landmine", - "drops": [ "alchemist_mine" ], - "vehicle_data": { - "do_explosion": true, - "damage": 1000, - "sound_volume": 10, - "sound": "Boom!", - "sound_type": "explosion", - "sound_variant": "default" - } + }, + "melee_damage": { "bash": 5 } }, { "type": "trap", "id": "tr_alchemist_mine", - "trigger_weight": "200 g", + "trigger_weight": "1 g", "name": "alchemical mine", - "color": "red", + "color": "yellow", "symbol": "^", "visibility": 1, - "avoidance": 14, - "difficulty": 10, - "action": "landmine", - "drops": [ "alchemist_mine" ], - "vehicle_data": { - "do_explosion": true, - "damage": 1000, - "sound_volume": 10, - "sound": "Boom!", - "sound_type": "explosion", - "sound_variant": "default" - } + "avoidance": 99, + "difficulty": 0, + "action": "spell", + "spell_data": { "id": "alchemist_mine_pull" }, + "drops": [ "alchemist_mine" ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/ammo_types.json b/data/Mainline_mods/Mods/Magiclysm/items/ammo_types.json index 462394239..b4950241e 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/ammo_types.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/ammo_types.json @@ -40,5 +40,17 @@ "id": "parabolan_yarn", "name": "parabolan yarn", "default": "parabolan_yarn" + }, + { + "type": "ammunition_type", + "id": "elastic_potential_energy", + "name": "elastic potential energy", + "default": "elastic_potential_energy" + }, + { + "type": "ammunition_type", + "id": "biomancer_booster_sludge", + "name": "biomancer booster sludge", + "default": "biomancer_booster_sludge" } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/archery.json b/data/Mainline_mods/Mods/Magiclysm/items/archery.json index f878f7a62..2cc4fb4b4 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/archery.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/archery.json @@ -17,15 +17,16 @@ "BELTED", "WATER_FRIENDLY", "WATERPROOF_GUN", - "NEVER_JAMS" + "NEVER_JAMS", + "SHEATH_BOW" ], "ammo_effects": [ "NEVER_MISFIRES" ], "skill": "archery", "min_strength": 10, "ammo": [ "arrow_orichalcum", "arrow" ], "weight": "740 g", - "volume": "5 L", - "bashing": 14, + "volume": "2 L", + "longest_side": "150 cm", "armor_data": { "armor": [ { @@ -36,7 +37,8 @@ ], "encumbrance": 14, "coverage": 5, - "covers": [ "torso" ] + "covers": [ "torso" ], + "specifically_covers": [ "torso_hanging_back" ] } ] }, @@ -48,8 +50,9 @@ "durability": 6, "clip_size": 1, "reload": 40, - "valid_mod_locations": [ [ "underbarrel", 1 ], [ "sights", 1 ], [ "accessories", 2 ], [ "stabilizer", 1 ], [ "dampening", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "arrow_orichalcum": 1, "arrow": 1 } } ] + "valid_mod_locations": [ [ "underbarrel", 1 ], [ "sights", 1 ], [ "stabilizer", 1 ], [ "dampening", 1 ] ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "arrow_orichalcum": 1, "arrow": 1 } } ], + "melee_damage": { "bash": 14 } }, { "type": "AMMO", @@ -64,7 +67,6 @@ "ammo_type": "arrow_orichalcum", "volume": "145 ml", "weight": "30 g", - "bashing": 12, "damage": { "damage_type": "stab", "constant_damage_multiplier": 1.95, "armor_penetration": 20 }, "dispersion": 35, "loudness": 0, @@ -72,6 +74,7 @@ "count": 15, "stack_size": 15, "critical_multiplier": 10, - "effects": [ "RECOVER_65" ] + "effects": [ "RECOVER_65" ], + "melee_damage": { "bash": 12 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/black_dragon_items.json b/data/Mainline_mods/Mods/Magiclysm/items/black_dragon_items.json index 945b825da..7317dbbd0 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/black_dragon_items.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/black_dragon_items.json @@ -10,9 +10,9 @@ "material": [ "black_dragon_scales" ], "weight": "380 g", "volume": "75 ml", - "bashing": 0, "to_hit": -4, - "description": "A scale from a black dragon. It still has its magical properties and acid resistance." + "description": "A scale from a black dragon. It still has its magical properties and acid resistance.", + "melee_damage": { "bash": 0 } }, { "id": "bundle_black_scale", @@ -39,8 +39,7 @@ "material": [ "black_dragon_hide", "flesh" ], "flags": [ "NO_SALVAGE", "TRADER_AVOID" ], "vitamins": [ ], - "volume": "4 L", - "stack_size": 1 + "volume": "4 L" }, { "id": "black_dragon_tanning_hide", @@ -100,7 +99,6 @@ "volume": "3250 ml", "price": 75000, "to_hit": -2, - "bashing": 7, "material": [ "black_dragon_hide", "black_dragon_scales" ], "symbol": "[", "color": "black_white", @@ -108,7 +106,8 @@ "material_thickness": 5, "environmental_protection": 3, "flags": [ "VARSIZE", "WATERPROOF", "STURDY" ], - "armor": [ { "encumbrance": 30, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ] + "armor": [ { "encumbrance": 30, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ], + "melee_damage": { "bash": 7 } }, { "id": "boots_black_dragon_hide", @@ -120,7 +119,6 @@ "volume": "3250 ml", "price": 50000, "to_hit": -2, - "bashing": 7, "material": [ "black_dragon_hide" ], "symbol": "[", "color": "black_white", @@ -128,7 +126,8 @@ "material_thickness": 3, "environmental_protection": 3, "flags": [ "VARSIZE", "WATERPROOF", "STURDY" ], - "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ] + "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ], + "melee_damage": { "bash": 7 } }, { "id": "helmet_black_dragon_scale", @@ -141,7 +140,6 @@ "volume": "2500 ml", "price": 58000, "to_hit": -1, - "bashing": 10, "material": [ "black_dragon_hide", "black_dragon_scales" ], "symbol": "[", "color": "black_white", @@ -153,7 +151,8 @@ "material_thickness": 5, "environmental_protection": 3, "techniques": [ "WBLOCK_1" ], - "flags": [ "VARSIZE", "WATERPROOF", "STURDY", "SUN_GLASSES" ] + "flags": [ "VARSIZE", "WATERPROOF", "STURDY", "SUN_GLASSES" ], + "melee_damage": { "bash": 10 } }, { "id": "helmet_black_dragon_scale_raised", @@ -167,7 +166,7 @@ "armor": [ { "covers": [ "head" ], "coverage": 100, "encumbrance": 32 } ], "material_thickness": 5, "environmental_protection": 3, - "delete": { "qualities": [ [ "GLARE", 1 ] ], "flags": [ "SUN_GLASSES" ] } + "delete": { "qualities": [ "GLARE" ], "flags": [ "SUN_GLASSES" ] } }, { "id": "helmet_black_dragon_hide", @@ -179,7 +178,6 @@ "volume": "2 L", "price": 58000, "to_hit": -1, - "bashing": 10, "material": [ "black_dragon_hide" ], "symbol": "[", "color": "black_white", @@ -188,7 +186,8 @@ "environmental_protection": 1, "techniques": [ "WBLOCK_1" ], "flags": [ "VARSIZE", "WATERPROOF", "STURDY" ], - "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "head" ] } ] + "armor": [ { "encumbrance": 20, "coverage": 100, "covers": [ "head" ] } ], + "melee_damage": { "bash": 10 } }, { "id": "suit_black_dragon_scale", @@ -200,7 +199,6 @@ "volume": "12 L", "price": 2000000, "to_hit": -3, - "bashing": 6, "material": [ "black_dragon_hide", "black_dragon_scales" ], "symbol": "[", "color": "black_white", @@ -208,7 +206,8 @@ "material_thickness": 5, "environmental_protection": 3, "flags": [ "VARSIZE", "WATERPROOF", "RAINPROOF", "STURDY", "OUTER" ], - "armor": [ { "encumbrance": 25, "coverage": 100, "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r" ] } ] + "armor": [ { "encumbrance": 25, "coverage": 100, "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r" ] } ], + "melee_damage": { "bash": 6 } }, { "id": "suit_black_dragon_hide", @@ -220,7 +219,6 @@ "volume": "11 L", "price": 2000000, "to_hit": -3, - "bashing": 6, "material": [ "black_dragon_hide" ], "symbol": "[", "color": "black_white", @@ -228,7 +226,8 @@ "material_thickness": 3, "environmental_protection": 2, "flags": [ "VARSIZE", "WATERPROOF", "RAINPROOF", "STURDY", "OUTER" ], - "armor": [ { "encumbrance": 18, "coverage": 100, "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r" ] } ] + "armor": [ { "encumbrance": 18, "coverage": 100, "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r" ] } ], + "melee_damage": { "bash": 6 } }, { "id": "gauntlets_black_dragon_scale", diff --git a/data/Mainline_mods/Mods/Magiclysm/items/books.json b/data/Mainline_mods/Mods/Magiclysm/items/books.json index b6a5b7309..ac77565ed 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/books.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/books.json @@ -10,7 +10,6 @@ "longest_side": "22 cm", "price": 8200, "price_postapoc": 750, - "bashing": 5, "material": [ "paper" ], "symbol": "?", "color": "blue", @@ -19,7 +18,8 @@ "max_level": 4, "intelligence": 12, "time": "60 m", - "fun": -1 + "fun": -1, + "melee_damage": { "bash": 5 } }, { "id": "spellcraft_theory_basic", @@ -38,6 +38,23 @@ "time": "45 m", "fun": 0 }, + { + "id": "caster_boosts_info", + "type": "BOOK", + "category": "manuals", + "copy-from": "spellcraft_theory", + "name": { "str": "The Basics of Caster Levels", "str_pl": "copies of The Basics of Caster Levels" }, + "description": "This book goes into details about different ways to boost one's caster level above what one would normally achieve. Domination schools can be boosted by various items detailed inside, while harmony schools can be boosted by circumstances. Regardless, the book cautions that this boost can not exceed 1 + ( your highest caster level in that school / 5 ). For animist, they get a boost if they stand in blood. More blood means a higher maximum boost. Stormshapers gets a boost while being outside during precipitation. More precipitation means a higher maximum boost. Earthshapers get a boost by being underground, and by standing on dirt, sand, clay or the like. Apparently, standing in pits is also very effective. Druids gets a boost by standing on grass, fern, bushes, and the like. Hugging a young tree gives among the highest possible boosts for druids.", + "weight": "1087 g", + "volume": "1450 ml", + "price": 5200, + "price_postapoc": 550, + "required_level": 0, + "max_level": 2, + "intelligence": 9, + "time": "45 m", + "fun": 0 + }, { "id": "textbook_mithril", "type": "BOOK", diff --git a/data/Mainline_mods/Mods/Magiclysm/items/books_lore.json b/data/Mainline_mods/Mods/Magiclysm/items/books_lore.json index c7b82de1c..bb414634c 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/books_lore.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/books_lore.json @@ -20,7 +20,7 @@ "type": "GENERIC", "category": "maps", "name": "lair map", - "description": "This is an well worn map. It has pictures of fantastical beasts embellishing the carefully drawn map markers.", + "description": "This is a well worn map. It has pictures of fantastical beasts embellishing the carefully drawn map markers.", "color": "white", "use_action": { "type": "reveal_map", diff --git a/data/Mainline_mods/Mods/Magiclysm/items/cast_spell_items.json b/data/Mainline_mods/Mods/Magiclysm/items/cast_spell_items.json index 5a47fbd6a..5e5364694 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/cast_spell_items.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/cast_spell_items.json @@ -6,17 +6,16 @@ "use_action": { "type": "cast_spell", "spell_id": "potion_recover_mana", "no_fail": true, "level": 0 }, "type": "COMESTIBLE", "weight": "265 g", - "quench": 10, - "calories": 75, + "quench": 1, + "calories": 0, "volume": "250ml", "charges": 1, "fun": -1, - "healthy": 1, "symbol": "~", "container": "flask_glass", "color": "light_blue", "comestible_type": "DRINK", - "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE", "NO_AUTO_CONSUME" ], + "flags": [ "EATEN_COLD", "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ], "phase": "liquid", "price": 2500, "freezing_point": 4 @@ -27,6 +26,7 @@ "name": { "str": "mana potion" }, "copy-from": "mana_potion_lesser", "use_action": { "type": "cast_spell", "spell_id": "potion_recover_mana", "no_fail": true, "level": 5 }, + "calories": 0, "price": 10000 }, { @@ -34,68 +34,314 @@ "type": "COMESTIBLE", "name": { "str": "greater mana potion" }, "copy-from": "mana_potion_lesser", + "calories": 0, "use_action": { "type": "cast_spell", "spell_id": "potion_recover_mana", "no_fail": true, "level": 15 }, "price": 30000 }, { "id": "cats_grace_potion", - "name": { "str": "potion of Cat's Grace", "str_pl": "potions of Cat's Grace" }, - "description": "This is a potion of Cat's Grace. It will increase your dexterity for 10 minutes.", - "use_action": { "type": "cast_spell", "spell_id": "cats_grace", "no_fail": true, "level": 9 }, "type": "COMESTIBLE", - "weight": "265 g", - "quench": 10, - "calories": 75, - "volume": "250ml", - "charges": 1, - "fun": -1, - "symbol": "~", - "container": "flask_glass", + "name": { "str": "potion of Cat's Grace", "str_pl": "potions of Cat's Grace" }, + "description": "This is a potion of Cat's Grace. It will increase your dexterity for 50 minutes.", + "copy-from": "mana_potion_lesser", + "calories": 25, + "use_action": { "type": "cast_spell", "spell_id": "cats_grace", "no_fail": true, "level": 25 }, "color": "yellow", - "comestible_type": "DRINK", - "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE", "NO_AUTO_CONSUME" ], - "phase": "liquid", - "price": 3000, - "freezing_point": 4 + "price": 3000 }, { "id": "ogres_strength_potion", "name": { "str": "potion of Ogre's Strength", "str_pl": "potions of Ogre's Strength" }, - "description": "This is a potion of Ogre's Strength. It will increase your strength for 10 minutes.", - "use_action": { "type": "cast_spell", "spell_id": "ogres_strength", "no_fail": true, "level": 9 }, + "description": "This is a potion of Ogre's Strength. It will increase your strength for 50 minutes.", + "use_action": { "type": "cast_spell", "spell_id": "ogres_strength", "no_fail": true, "level": 25 }, "type": "COMESTIBLE", - "copy-from": "cats_grace_potion" + "color": "yellow", + "calories": 50, + "copy-from": "mana_potion_lesser" }, { "id": "eagles_sight_potion", "name": { "str": "potion of Eagle's Sight", "str_pl": "potions of Eagle's Sight" }, - "description": "This is a potion of Eagle's Sight. It will increase your perception for 10 minutes.", - "use_action": { "type": "cast_spell", "spell_id": "eagles_sight", "no_fail": true, "level": 9 }, + "description": "This is a potion of Eagle's Sight. It will increase your perception for 50 minutes.", + "use_action": { "type": "cast_spell", "spell_id": "eagles_sight", "no_fail": true, "level": 25 }, "type": "COMESTIBLE", - "copy-from": "cats_grace_potion" + "color": "yellow", + "calories": 17, + "copy-from": "mana_potion_lesser" }, { "id": "foxs_cunning_potion", "name": { "str": "potion of Fox's Cunning", "str_pl": "potions of Fox's Cunning" }, - "description": "This is a potion of Fox's Cunning. It will increase your intelligence for 10 minutes.", - "use_action": { "type": "cast_spell", "spell_id": "foxs_cunning", "no_fail": true, "level": 9 }, + "description": "This is a potion of Fox's Cunning. It will increase your intelligence for 50 minutes.", + "use_action": { "type": "cast_spell", "spell_id": "foxs_cunning", "no_fail": true, "level": 25 }, + "type": "COMESTIBLE", + "color": "yellow", + "calories": 56, + "copy-from": "mana_potion_lesser" + }, + { + "id": "flask_clairvoyance", + "type": "COMESTIBLE", + "name": { "str": "potion of clairvoyance", "str_pl": "potions of clairvoyance" }, + "description": "Close your eyes and see.", + "copy-from": "mana_potion_lesser", + "calories": 86, + "use_action": { "type": "cast_spell", "spell_id": "flask_clairvoyance", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_spear", + "type": "COMESTIBLE", + "name": { "str_sp": "\"Spear in the flask\"" }, + "description": "Use it to penetrate everything in line of sight", + "copy-from": "mana_potion_lesser", + "use_action": { "type": "cast_spell", "spell_id": "flask_spear", "no_fail": true, "level": 0 }, + "calories": 0, + "price": 40000 + }, + { + "id": "flask_confusion", + "type": "COMESTIBLE", + "name": { "str": "potion of instability", "str_pl": "potions of instability" }, + "description": "A potion that temporarily freezes the higher brain activity for a while. It was banned by the government due to popularity in the criminal sphere, but some people still know the recipe.", + "copy-from": "mana_potion_lesser", + "calories": 0, + "use_action": { "type": "cast_spell", "spell_id": "flask_confusion", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_teleport_rand", + "type": "COMESTIBLE", + "name": { "str": "potion of escape", "str_pl": "potions of escape" }, + "description": "Get out of jail free card for each who care about his life.", + "copy-from": "mana_potion_lesser", + "calories": 220, + "use_action": { "type": "cast_spell", "spell_id": "flask_teleport_rand", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_teleport", + "type": "COMESTIBLE", + "name": { "str": "potion of teleportation", "str_pl": "potions of teleportation" }, + "description": "Important part of every professional robber's kit. It was banned by the government due to the popularity in criminal sphere, but some people still know the recipe.", + "copy-from": "mana_potion_lesser", + "calories": 260, + "use_action": { "type": "cast_spell", "spell_id": "flask_teleport", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_shadow_field", + "type": "COMESTIBLE", + "name": { "str": "potion of shadows", "str_pl": "potions of shadows" }, + "description": "No one really knows why it was created, but it can be useful in some situations", + "copy-from": "mana_potion_lesser", + "use_action": { "type": "cast_spell", "spell_id": "flask_shadow_field", "no_fail": true, "level": 0 }, + "calories": 0, + "price": 40000 + }, + { + "id": "flask_fireball", + "type": "COMESTIBLE", + "name": { "str_sp": "\"Fire in the flask\"" }, + "description": "They were really useful in middle ages, but the price was too high, and they were supplanted with another incendiary weapon and, long after, with molotov cocktails.", + "copy-from": "mana_potion_lesser", + "calories": 0, + "use_action": { "type": "cast_spell", "spell_id": "flask_fireball", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_invisibility", + "type": "COMESTIBLE", + "name": { "str": "potion of invisibility", "str_pl": "potions of invisibility" }, + "description": "Make you totally invisible, except in mana spectrum. It was banned by the government due to the popularity in crime sphere, but some people still know the recipe.", + "copy-from": "mana_potion_lesser", + "calories": 77, + "use_action": { "type": "cast_spell", "spell_id": "flask_invisibility", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_healing", + "type": "COMESTIBLE", + "name": { "str": "potion of healthiness", "str_pl": "potions of healthiness" }, + "description": "Classical medicine, used from ancient times, that came to us with almost no changes. Allows you to heal the common illness way faster than before.", + "copy-from": "mana_potion_lesser", + "calories": 358, + "use_action": { "type": "cast_spell", "spell_id": "flask_healing", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_feather", + "type": "COMESTIBLE", + "name": { "str": "potion of lesser gravity control", "str_pl": "potions of lesser gravity control" }, + "description": "Allow user to survive the fall from any height. Sadly, the required preparation and effect's weakness do not allow to use it for climbing protection.", + "copy-from": "mana_potion_lesser", + "calories": 57, + "use_action": { "type": "cast_spell", "spell_id": "flask_feather", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_night_vision", "type": "COMESTIBLE", - "copy-from": "cats_grace_potion" + "name": { "str": "potion of night vision", "str_pl": "potions of night vision" }, + "description": "Designed by Occult Coalition sorcerers, this potion was fairly popular inside the special operation forces and in the hunting communities.", + "copy-from": "mana_potion_lesser", + "calories": 56, + "use_action": { "type": "cast_spell", "spell_id": "flask_night_vision", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_charm", + "type": "COMESTIBLE", + "name": { "str": "potion of domination", "str_pl": "potions of domination" }, + "description": "Rearrange neural activity of the creature to be 100% loyal to a blood owner. It was banned by the government due to the popularity in crime sphere, but some people still know the recipe.", + "copy-from": "mana_potion_lesser", + "calories": 21, + "use_action": { "type": "cast_spell", "spell_id": "flask_charm", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_sludge_field", + "type": "COMESTIBLE", + "name": { "str": "potion of slippery splash", "str_pl": "potions of slippery splash" }, + "description": "At first it was the small spell, designed to trap and kill small bugs and rodents, but someone found it useful in real fight, and improve it.", + "copy-from": "mana_potion_lesser", + "calories": 0, + "use_action": { "type": "cast_spell", "spell_id": "flask_sludge_field", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_speed", + "type": "COMESTIBLE", + "name": { "str": "potion of sprint", "str_pl": "potions of sprint" }, + "description": "They count as doping in olympic games. Luckily you are not in a stadium.", + "copy-from": "mana_potion_lesser", + "calories": 26, + "use_action": { "type": "cast_spell", "spell_id": "flask_speed", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_stamina", + "type": "COMESTIBLE", + "name": { "str": "potion of iron lungs", "str_pl": "potions of iron lungs" }, + "description": "Old recipe, used to increase the user's endurance. The diluted version was used by different armies for fast and long forced marches.", + "copy-from": "mana_potion_lesser", + "calories": 156, + "use_action": { "type": "cast_spell", "spell_id": "flask_stamina", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_rebreather", + "type": "COMESTIBLE", + "name": { "str": "potion of water breathing", "str_pl": "potions of water breathing" }, + "description": "An old marine recipe, that saved a lot of shipwreck victim lives.", + "copy-from": "mana_potion_lesser", + "calories": 121, + "use_action": { "type": "cast_spell", "spell_id": "flask_rebreather", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_excitement", + "type": "COMESTIBLE", + "name": { "str": "potion of stimulus", "str_pl": "potions of stimulus" }, + "description": "One of the various potions, designed to make a person stronger on the battle field. Increase the user's senses and improve reactions, increasing their ability to fight in melee.", + "copy-from": "mana_potion_lesser", + "calories": 89, + "use_action": { "type": "cast_spell", "spell_id": "flask_excitement", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_resistance", + "type": "COMESTIBLE", + "name": { "str": "potion of iron skin", "str_pl": "potions of iron skin" }, + "description": "Harden the user's skin, and allow taking more damage with no harm. Was popular in ancient armies, but now mostly forgotten.", + "copy-from": "mana_potion_lesser", + "calories": 211, + "use_action": { "type": "cast_spell", "spell_id": "flask_resistance", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_illumination", + "type": "COMESTIBLE", + "name": { "str": "potion of illumination", "str_pl": "potions of illumination" }, + "description": "That potion was designed in 19th century, for miners aware of explosive gas leaks in the mine. Not so popular now, due to the abundance of electric lighters, but still useful sometimes.", + "copy-from": "mana_potion_lesser", + "calories": 7, + "use_action": { "type": "cast_spell", "spell_id": "flask_illumination", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_mana_regen", + "type": "COMESTIBLE", + "name": { "str": "potion of mana regeneration", "str_pl": "potions of mana regeneration" }, + "description": "Attract the ley-lines to user, increasing the natural mana regeneration.", + "copy-from": "mana_potion_lesser", + "calories": 66, + "use_action": { "type": "cast_spell", "spell_id": "flask_mana_regen", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_max_mana", + "type": "COMESTIBLE", + "name": { "str": "potion of mana reserves", "str_pl": "potions of mana reserves" }, + "description": "Splay user's ley-lines, what allow them to use more mana than they usually can.", + "copy-from": "mana_potion_lesser", + "calories": 76, + "use_action": { "type": "cast_spell", "spell_id": "flask_max_mana", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_regeneration", + "type": "COMESTIBLE", + "name": { "str": "potion of regeneration", "str_pl": "potions of regeneration" }, + "description": "Start a long-term spell sequence, that increase your regeneration abilities.", + "copy-from": "mana_potion_lesser", + "calories": 344, + "use_action": { "type": "cast_spell", "spell_id": "flask_regeneration", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_mood", + "type": "COMESTIBLE", + "name": { "str": "potion of happiness", "str_pl": "potions of happiness" }, + "description": "More than alcohol drink than a potion, this mixture makes your brain feel constant happiness, ignoring the whole boredom of reality. It causes no addiction, but it still banned in some countries, including the USA (except the Texas and New Hampshire, where it's just frowned upon)", + "copy-from": "mana_potion_lesser", + "calories": 65, + "use_action": { "type": "cast_spell", "spell_id": "flask_mood", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_toxin", + "type": "COMESTIBLE", + "name": { "str": "potion of toxin", "str_pl": "potions of toxin" }, + "description": "Spread a low lethal toxin on your enemies. It's surprisingly effective, if you have enough time.", + "copy-from": "mana_potion_lesser", + "calories": 0, + "use_action": { "type": "cast_spell", "spell_id": "flask_toxin", "no_fail": true, "level": 0 }, + "price": 40000 + }, + { + "id": "flask_venom", + "type": "COMESTIBLE", + "name": { "str": "potion of venom", "str_pl": "potions of venom" }, + "description": "Concentrated potion, teleported right in the enemy body - fast, painful, and guarantee death.", + "copy-from": "mana_potion_lesser", + "calories": 0, + "use_action": { "type": "cast_spell", "spell_id": "flask_venom", "no_fail": true, "level": 0 }, + "price": 40000 }, { "id": "animist_doll_zombie", "name": "zombie voodoo doll", "description": "A remarkably accurate effigy of an undead human, including pieces of bone and organs. Necromantic magic delays immediate rot, but it won't last forever. Piercing it with the attached needle could compel it to serve you.", - "use_action": { "type": "cast_spell", "spell_id": "summon_zombie", "no_fail": true, "level": 12 }, + "use_action": { "type": "cast_spell", "spell_id": "summon_zombie_brute", "no_fail": true, "level": 0 }, "type": "COMESTIBLE", "comestible_type": "FOOD", "category": "weapons", "material": [ "leather", "flesh", "bone" ], "weight": "225 g", - "volume": "700ml", + "volume": "700 ml", "symbol": "t", "color": "pink", - "stack_size": 1, "spoils_in": "4 days", "flags": [ "TRADER_AVOID", "INEDIBLE", "NUTRIENT_OVERRIDE" ] }, @@ -103,7 +349,7 @@ "id": "animist_doll_skeleton", "name": "ossified voodoo doll", "description": "A remarkably accurate effigy of an undead human covered with bone, including pieces of organs. Necromantic magic delays immediate rot, but it won't last forever. Piercing it with the attached needle could compel it to serve you.", - "use_action": { "type": "cast_spell", "spell_id": "summon_skeleton", "no_fail": true, "level": 10 }, + "use_action": { "type": "cast_spell", "spell_id": "summon_skeleton_brute", "no_fail": true, "level": 0 }, "type": "COMESTIBLE", "category": "weapons", "copy-from": "animist_doll_zombie" @@ -112,7 +358,7 @@ "id": "animist_doll_decayed_pouncer", "name": "cougar voodoo doll", "description": "A remarkably accurate effigy of an undead cougar, complete with fur, bones, and organs. Necromantic magic delays immediate rot, but it won't last forever. Piercing it with the attached needle could compel it to serve you.", - "use_action": { "type": "cast_spell", "spell_id": "summon_decayed_pouncer", "no_fail": true, "level": 13 }, + "use_action": { "type": "cast_spell", "spell_id": "summon_zougar", "no_fail": true, "level": 0 }, "type": "COMESTIBLE", "category": "weapons", "material": [ "fur", "flesh", "bone" ], diff --git a/data/Mainline_mods/Mods/Magiclysm/items/caster_level_boosters.json b/data/Mainline_mods/Mods/Magiclysm/items/caster_level_boosters.json new file mode 100644 index 000000000..d37ad5d4a --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/items/caster_level_boosters.json @@ -0,0 +1,373 @@ +[ + { + "id": "magus_booster_1", + "looks_like": "fire_drill", + "//": "cheap and reusable, but doesn't last very long", + "type": "TOOL", + "name": { + "str": "magus's elastic potential energy contraption (off)", + "str_pl": "magus's elastic potential energy contraptions (off)" + }, + "description": "This elaborate contraption of wooden sticks under tension and tightly wound strings has a pebble with a magus rune on in its center. Once activated, this device will transform the stored elastic potential energy into arcane energy, boosting your caster level of magus spells by 1 for as long as the stored energy lasts.", + "weight": "150 g", + "volume": "250 ml", + "price": 200, + "to_hit": -1, + "material": [ "wood" ], + "symbol": "&", + "color": "brown", + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "elastic_potential_energy": 100 }, "rigid": true } ], + "use_action": { + "ammo_scale": 0, + "target": "magus_booster_1_active", + "msg": "You squeeze the machine and its interior starts spinning.", + "active": true, + "menu_text": "Activate", + "type": "transform", + "target_charges": 100, + "target_ammo": "elastic_potential_energy", + "moves": 500 + } + }, + { + "id": "magus_booster_1_active", + "looks_like": "fire_drill", + "type": "TOOL", + "name": { "str": "magus's elastic potential energy contraption" }, + "description": "This elaborate contraption of wooden sticks and strings contains a rapidly spinning pebble with magus rune on. You feel slightly empowered, as your caster level of magus spells is boosted by 1.", + "weight": "150 g", + "volume": "250 ml", + "price": 200, + "to_hit": -1, + "material": [ "wood" ], + "symbol": "&", + "color": "brown", + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "elastic_potential_energy": 100 }, "rigid": true } ], + "turns_per_charge": 5, + "revert_to": "magus_booster_1", + "use_action": { + "ammo_scale": 0, + "target": "magus_booster_1", + "msg": "The device slows down and stops.", + "menu_text": "Stop", + "type": "transform" + }, + "flags": [ "TRADER_AVOID" ] + }, + { + "id": "magus_booster_2", + "looks_like": "alarmclock", + "type": "TOOL", + "name": { "str": "magus's clockwork contraption (off)", "str_pl": "magus's clockwork contraptions (off)" }, + "description": "This intricate contraption consists of fine gears, screw drivers, belts, pulleys, springs and other clockwork. The gearwork is contained in a casing of magically treated glass. An elegantly drawn magus rune is caged in the center, and a wind-up key extends out of the casing, allowing the device to be powered. Once wound up, it will boost your magus caster level by 2 for as long as the energy lasts.", + "weight": "500 g", + "volume": "250 ml", + "price": 200, + "to_hit": -1, + "material": [ "glass", "iron" ], + "symbol": "&", + "color": "white", + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "elastic_potential_energy": 400 } } ], + "use_action": { + "target": "magus_booster_2_active", + "msg": "You wind up the device and it starts making a ticking noise.", + "active": true, + "menu_text": "Activate", + "type": "transform", + "target_charges": 400, + "target_ammo": "elastic_potential_energy", + "moves": 500 + } + }, + { + "id": "magus_booster_2_active", + "looks_like": "alarmclock", + "type": "TOOL", + "name": { "str": "magus's clockwork contraption" }, + "description": "This intricate contraption consists of fine gears, screw drivers, belts, pulleys, springs and other clockwork parts moving in a mesmerizing dance. The gearwork is contained in a casing of magically treated glass and gives off a soft ticking noise. An elegantly drawn magus rune in the center is being spun and rotated in a neverending complex dance of arcane energy. The wind-up key extending from the casing slowly spins back into its original position. You feel empowered, as your caster level of magus spells is boosted by 2.", + "weight": "500 g", + "volume": "250 ml", + "price": 200, + "to_hit": -1, + "material": [ "glass", "iron" ], + "symbol": "&", + "color": "white", + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "elastic_potential_energy": 400 } } ], + "turns_per_charge": 5, + "revert_to": "magus_booster_2", + "use_action": { + "ammo_scale": 0, + "target": "magus_booster_2", + "msg": "The device slows down and stops.", + "menu_text": "Stop", + "type": "transform" + }, + "flags": [ "TRADER_AVOID" ] + }, + { + "id": "kelvinist_booster_1", + "//": "Based off of the candle, but twice the burn rate, and doesn't go out in the wind.", + "looks_like": "candle", + "type": "TOOL", + "name": { "str": "kelvinist's candle (off)", "str_pl": "kelvinist's candles (off)" }, + "description": "A thick candle of magically treated tallow with a kelvinist rune artfully inscribed on the side. It doesn't burn for quite as long as a regular candle, but it will boost your caster level of kelvinist spells by 1 while burning. You'll need a lighter or matches to light it.", + "weight": "225 g", + "volume": "250 ml", + "price": 100, + "price_postapoc": 50, + "to_hit": -2, + "material": [ "beeswax" ], + "symbol": ",", + "color": "white", + "charges_per_use": 1, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "candle_wax": 100 }, "rigid": true } ], + "use_action": { + "target": "kelvinist_booster_1_active", + "msg": "You light the candle.", + "active": true, + "need_fire": 1, + "menu_text": "Light", + "type": "transform" + }, + "flags": [ "BURNOUT", "NO_RELOAD", "NO_UNLOAD" ] + }, + { + "id": "kelvinist_booster_1_active", + "looks_like": "candle_lit", + "type": "TOOL", + "copy-from": "kelvinist_booster_1", + "name": { "str": "kelvinist's candle" }, + "description": "A thick candle of magically treated tallow with a kelvinist rune artfully inscribed on the side. It doesn't burn for quite as long as a regular candle, but it will boost your caster level of kelvinist spells by 1 while burning. The magic of the candle protects it from the wind and from setting your backpack aflame. This candle is lit.", + "turns_per_charge": 675, + "use_action": [ + { "type": "firestarter", "moves": 100 }, + { + "ammo_scale": 0, + "target": "kelvinist_booster_1", + "msg": "The candle winks out.", + "menu_text": "Extinguish", + "type": "transform" + } + ], + "extend": { "flags": [ "LIGHT_8", "WATER_EXTINGUISH", "TRADER_AVOID", "FIRESTARTER" ] } + }, + { + "id": "kelvinist_booster_2", + "//": "Based off of the clay oil lamp, but twice the burn rate, doesn't go out in the wind, and made of metal.", + "looks_like": "oil_lamp", + "type": "TOOL", + "name": { "str": "kelvinist's oil lamp (off)", "str_pl": "kelvinist's oil lamps (off)" }, + "description": "An masterfully crafted metal oil lamp with two elongated nozzles, each containing a wick. The surface is carved with intricate arcane symbols, including a prominent kelvinist rune. The magic of the lamp protects it from the wind and from setting your backpack aflame. It does not provide much light, but will boost your kelvinist caster level by 2 while burning. Use it to light it.", + "weight": "820 g", + "volume": "300 ml", + "price": 800, + "price_postapoc": 100, + "material": [ "iron" ], + "symbol": ";", + "color": "brown", + "ammo": [ "crude_lamp_oil", "lamp_oil" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "watertight": true, "ammo_restriction": { "crude_lamp_oil": 250, "lamp_oil": 250 } } ], + "charges_per_use": 1, + "use_action": { + "target": "kelvinist_booster_2_active", + "msg": "You light the lamp.", + "active": true, + "need_fire": 1, + "need_charges": 1, + "need_charges_msg": "The lamp is empty.", + "type": "transform" + }, + "flags": [ "ALLOWS_REMOTE_USE" ], + "melee_damage": { "bash": 1 } + }, + { + "id": "kelvinist_booster_2_active", + "copy-from": "kelvinist_booster_2", + "looks_like": "oil_lamp_on", + "type": "TOOL", + "name": { "str": "kelvinist's oil lamp" }, + "description": "An masterfully crafted metal oil lamp with two elongated nozzles, each containing a burning wick. The surface is carved with intricate arcane symbols, including a prominent kelvinist rune. The reflections from the flames makes it look like the inscriptions are moving. The magic of the lamp protects it from the wind and from setting your backpack aflame. It is lit, consuming oil, boosting your kelvinist caster level by 2, and providing light. Use it to extinguish the flame.", + "turns_per_charge": 120, + "revert_to": "kelvinist_booster_2", + "use_action": [ + { + "ammo_scale": 0, + "target": "kelvinist_booster_2", + "msg": "The lamp is extinguished.", + "menu_text": "Turn off", + "type": "transform" + }, + { "type": "firestarter", "moves": 100 } + ], + "flags": [ "LIGHT_10", "TRADER_AVOID", "FIRE", "ALLOWS_REMOTE_USE", "WATER_EXTINGUISH", "FIRESTARTER" ] + }, + { + "type": "TOOL", + "id": "technomancer_booster_1", + "//": "Stats are based off of a brick.", + "symbol": ",", + "color": "brown", + "name": { "str": "technomancer's clay tablet" }, + "description": "A fire-hardened clay tablet depicting a technomancer rune. Breaking the tablet will release the stored magical energy, boosting your technomancer caster level by 1 for a while.", + "price": 2500, + "price_postapoc": 10, + "material": [ "clay", "stone" ], + "weight": "969 g", + "volume": "500 ml", + "to_hit": -2, + "use_action": { + "type": "consume_drug", + "activation_message": "You feel a surge of power as the clay tablet crumbles between your fingers.", + "effects": [ { "id": "technomancer_cl_booster_effect", "duration": "2 h" } ], + "moves": 50 + } + }, + { + "id": "technomancer_booster_2", + "//": "Stats are based off of a food_processor.", + "type": "TOOL", + "category": "tools", + "name": { "str": "technomancer's doodad (off)", "str_pl": "technomancer's doodads (off)" }, + "description": "A jumble of cables, gears, electromagnets, and metal encased in a steel casing inscribed with arcane runes. A pebble with a technomancer rune is found at the core. The machine can adjust the electric charge, magnetic field, and angular velocity of said rune. When active and in your inventory, the machine will automatically detect when you are trying to cast a technomancer spell. Once that happens, it will use a moderate amount of battery charge to boost your caster level as far as it can. A larger boost will draw more energy.", + "weight": "3500 g", + "volume": "20 L", + "longest_side": "40 cm", + "price": 12000, + "price_postapoc": 700, + "to_hit": -1, + "material": [ "steel" ], + "symbol": "%", + "color": "white", + "ammo": [ "battery" ], + "flags": [ "WATER_BREAK", "ELECTRONIC" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM" ], + "default_magazine": "medium_battery_cell" + } + ], + "use_action": { + "target": "technomancer_booster_2_active", + "msg": "You turn on the doodad and it starts to hum.", + "active": true, + "menu_text": "Activate", + "type": "transform" + }, + "melee_damage": { "bash": 10 } + }, + { + "id": "technomancer_booster_2_active", + "//": "Stats are based off of a food_processor.", + "type": "TOOL", + "category": "tools", + "name": { "str": "technomancer's doodad" }, + "description": "A jumble of cables, gears, electromagnets, and metal encased in a steel casing inscribed with arcane runes. A pebble with a technomancer rune is found at the core. The machine can adjust the electric charge, magnetic field, and angular velocity of said rune. While active and in your inventory, the machine will automatically detect when you are trying to cast a technomancer spell. Once that happens, it will use a moderate amount of battery charge to boost your caster level as far as it can. A larger boost will draw more energy. A faint humming is heard from inside.", + "weight": "3500 g", + "volume": "20 L", + "longest_side": "40 cm", + "turns_per_charge": 2000, + "price": 12000, + "price_postapoc": 700, + "to_hit": -1, + "material": [ "steel" ], + "symbol": "%", + "color": "white", + "ammo": [ "battery" ], + "flags": [ "WATER_BREAK", "ELECTRONIC" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM" ], + "default_magazine": "medium_battery_cell" + } + ], + "use_action": [ + { + "ammo_scale": 0, + "target": "technomancer_booster_2", + "msg": "The doodad shuts down.", + "menu_text": "Turn off", + "type": "transform" + } + ], + "melee_damage": { "bash": 10 } + }, + { + "id": "biomancer_booster_1", + "//": "based on a bone shiv.", + "name": { "str": "biomancer's bone syringe" }, + "type": "TOOL", + "description": "A hollow bone, about 20 cm long, which has been broken at one end and sharpened into a crude syringe. A biomancer rune is carved on the surface. By jabbing it into yourself, you can release stored biomancer booster sludge into yourself, thereby boosting your biomancer caster level by 1 for a while. Doing so is about as painful as it sounds.", + "symbol": "/", + "color": "white", + "weight": "169 g", + "volume": "188 ml", + "longest_side": "20 cm", + "price": 0, + "price_postapoc": 0, + "to_hit": { "grip": "solid", "length": "hand", "surface": "point", "balance": "neutral" }, + "material": [ "bone" ], + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 12 ] ], + "flags": [ "SHEATH_KNIFE", "FRAGILE_MELEE", "ALLOWS_BODY_BLOCK" ], + "weapon_category": [ "KNIVES" ], + "melee_damage": { "bash": 3, "stab": 12 }, + "ammo": [ "biomancer_booster_sludge" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "watertight": true, "ammo_restriction": { "biomancer_booster_sludge": 5 } } ], + "charges_per_use": 1, + "use_action": { + "type": "consume_drug", + "activation_message": "You feel a surge of power as the bone syringe deposits the sludge inside your body.", + "effects": [ { "id": "biomancer_cl_booster_effect", "duration": "8 h" } ], + "stat_adjustments": { "pain": 5 }, + "moves": 50 + } + }, + { + "id": "biomancer_booster_2", + "//": "based on a bone shiv.", + "name": { "str": "biomancer's syringe" }, + "type": "TOOL", + "description": "An elegant, sturdy metal syringe with a biomancer rune carved on the outside. It can be used to administer stored biomancer booster sludge into yourself, thereby boosting your biomancer caster level by 2 for a while.", + "symbol": "/", + "color": "white", + "weight": "230 g", + "volume": "200 ml", + "longest_side": "20 cm", + "price": 0, + "price_postapoc": 0, + "material": [ "steel" ], + "ammo": [ "biomancer_booster_sludge" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "watertight": true, "ammo_restriction": { "biomancer_booster_sludge": 10 } } ], + "charges_per_use": 1, + "use_action": { + "type": "consume_drug", + "activation_message": "You feel a surge of power as the syringe deposits the sludge inside your body.", + "effects": [ + { "id": "biomancer_cl_booster_effect", "duration": "8 h" }, + { "id": "biomancer_cl_booster_effect", "duration": "8 h" } + ], + "moves": 50, + "stat_adjustments": { "pain": 2 } + } + }, + { + "id": "biomancer_booster_sludge", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": { "str_sp": "biomancer booster sludge" }, + "description": "A thick purple liquid that is filled to the brim with arcane energy. With the right tool, it can be used to boost your biomancer caster level.", + "weight": "265 g", + "volume": "250 ml", + "charges": 1, + "price": 0, + "symbol": "~", + "color": "pink", + "phase": "liquid", + "container": "flask_glass", + "ammo_data": { "ammo_type": "biomancer_booster_sludge" }, + "flags": [ "NO_INGEST" ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/comestibles.json b/data/Mainline_mods/Mods/Magiclysm/items/comestibles.json index 27ce03986..94db905bf 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/comestibles.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/comestibles.json @@ -15,7 +15,6 @@ "price": 300000, "material": [ "egg", "stone" ], "volume": "2500 ml", - "stack_size": 1, "fun": -18, "flags": [ "FREEZERBURN" ], "rot_spawn": "GROUP_EGG_OWLBEAR", @@ -38,6 +37,7 @@ "name": "owlbear egg yolk", "copy-from": "egg_chicken", "phase": "liquid", + "charges": 1, "healthy": 3, "color": "yellow", "description": "The liquid innards of an owlbear egg. Good eating." @@ -47,10 +47,9 @@ "type": "COMESTIBLE", "comestible_type": "MED", "healthy": -1, - "stack_size": 1, "material": [ "fur", "water" ], "primary_material": "fur", - "volume": "350ml", + "volume": "350 ml", "weight": "15 g", "color": "brown", "symbol": "0", @@ -76,11 +75,19 @@ "description": "The mushrooms harvested from a dead shrieker. Could be used in potions.", "price": 1400 }, + { + "id": "tea_green", + "type": "COMESTIBLE", + "copy-from": "tea_green", + "name": { "str": "green tea" }, + "//": "Same reason as whiskey", + "price_postapoc": 1 + }, { "id": "purified_meat", "type": "COMESTIBLE", - "flags": [ "NUTRIENT_OVERRIDE" ], "copy-from": "meat", + "extend": { "flags": [ "NUTRIENT_OVERRIDE" ] }, "name": "purified meat", "description": "Indistinguishable from pre-Cataclysm lab grown beef. It should be excellent but somehow it's just edible.", "price": 400 @@ -88,8 +95,8 @@ { "id": "impure_meat", "type": "COMESTIBLE", - "flags": [ "NUTRIENT_OVERRIDE" ], "copy-from": "mutant_meat", + "extend": { "flags": [ "NUTRIENT_OVERRIDE" ] }, "name": "impure meat", "description": "Not as tainted as previously and tastes like the real thing. You do not want to cook this for your friends, though if you do they won't know the difference for a while.", "price": 100 diff --git a/data/Mainline_mods/Mods/Magiclysm/items/constructs.json b/data/Mainline_mods/Mods/Magiclysm/items/constructs.json index 5b534b18d..b41c00fc7 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/constructs.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/constructs.json @@ -11,8 +11,8 @@ "material": [ "orichalcum_metal" ], "weight": "5 kg", "volume": "1 L", - "bashing": 6, - "flags": [ "NO_REPAIR", "FRAGILE_MELEE" ] + "flags": [ "NO_REPAIR", "FRAGILE_MELEE" ], + "melee_damage": { "bash": 6 } }, { "type": "GENERIC", @@ -26,10 +26,9 @@ "material": [ "clay" ], "weight": "122 kg", "volume": "120 L", - "bashing": 4, - "cutting": 4, "to_hit": -3, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 4, "cut": 4 } }, { "type": "GENERIC", @@ -43,10 +42,9 @@ "material": [ "plastic" ], "weight": "70 kg", "volume": "150 L", - "bashing": 4, - "cutting": 4, "to_hit": -3, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 4, "cut": 4 } }, { "type": "GENERIC", @@ -55,15 +53,14 @@ "color": "light_gray", "name": "broken stone golem", "category": "other", - "description": "A broken stone golem, not that much different from big boulder. Could be smashed for stone.", + "description": "A broken stone golem, not that much different from a big boulder. Could be smashed for stone.", "price": 10000, "material": [ "stone" ], "weight": "162 kg", "volume": "120 L", - "bashing": 4, - "cutting": 4, "to_hit": -3, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 4, "cut": 4 } }, { "type": "GENERIC", @@ -75,11 +72,11 @@ "description": "A broken iron golem, with all iron you would possibly ever need. Could be smashed for iron.", "price": 100000, "material": [ "iron" ], - "weight": "945 kg", + "weight": "875 kg", "volume": "120 L", - "bashing": 30, "to_hit": -5, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 30 } }, { "type": "GENERIC", @@ -93,8 +90,24 @@ "material": [ "orichalcum_metal" ], "weight": "945 kg", "volume": "120 L", - "bashing": 30, "to_hit": -5, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 30 } + }, + { + "type": "GENERIC", + "id": "broken_eshaper_golem", + "symbol": "x", + "color": "light_gray", + "name": "broken stone golem", + "category": "other", + "description": "A broken earthshaper's golem, almost the same as it's natural stone counterpart. Could be smashed for stone.", + "price": 10000, + "material": [ "stone" ], + "weight": "112 kg", + "volume": "80 L", + "to_hit": -3, + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 4, "cut": 4 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/currency.json b/data/Mainline_mods/Mods/Magiclysm/items/currency.json index 4ee4de96e..01035b6d0 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/currency.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/currency.json @@ -12,6 +12,7 @@ "to_hit": -3, "color": "light_gray", "symbol": "$", + "flags": [ "COIN_SHAPED" ], "material": [ "mithril_metal" ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted.json index 0b4e5c80a..4f3b4238d 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted.json @@ -35,9 +35,9 @@ "weight": "1400 g", "volume": "3 L", "longest_side": "170 cm", - "bashing": 17, "category": "weapons", - "to_hit": 3 + "to_hit": 3, + "melee_damage": { "bash": 17 } }, { "id": "magi_staff_lesser", @@ -57,9 +57,9 @@ "weight": "1400 g", "volume": "3 L", "longest_side": "170 cm", - "bashing": 17, "category": "weapons", - "to_hit": 3 + "to_hit": 3, + "melee_damage": { "bash": 17 } }, { "id": "magi_staff_greater", @@ -79,9 +79,9 @@ "weight": "1400 g", "volume": "3 L", "longest_side": "170 cm", - "bashing": 17, "category": "weapons", - "to_hit": 3 + "to_hit": 3, + "melee_damage": { "bash": 17 } }, { "id": "bleed_staff_minor", @@ -156,7 +156,8 @@ "type": "TOOL_ARMOR", "looks_like": "holster", "name": { "str": "Bag of Infinite Throwing Knives", "str_pl": "Bags of Infinite Throwing Knives" }, - "description": "This bag conjures a magical throwing knife on activation. Only refills when worn.", + "description": "This bag conjures a magical throwing knife on activation. Only refills when worn. It also boosts your throwing abilities.", + "//": "the bag itself gives +3 to throwing instead of knifes because of stupid code oogie woogie, that make effects (and enchantments, it seems) being apply in the very first move after the giving. ie if you give +3 to throwing for a knife, spawn it, and then throw it, it wont be applied", "price": 800000, "price_postapoc": "1800 USD", "volume": "100 ml", @@ -179,7 +180,10 @@ "environmental_protection": 1, "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "crystallized_mana": 8 } } ], "flags": [ "OVERSIZE", "NO_REPAIR", "STURDY", "BELTED", "NO_UNLOAD", "NO_RELOAD" ], - "relic_data": { "charge_info": { "recharge_condition": "worn", "recharge_type": "periodic", "time": "5 h", "regenerate_ammo": true } }, + "relic_data": { + "charge_info": { "recharge_condition": "worn", "recharge_type": "periodic", "time": "5 h", "regenerate_ammo": true }, + "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "skills": [ { "value": "throw", "add": 3 } ] } ] + }, "use_action": { "type": "cast_spell", "spell_id": "conj_mag_throw_blade_group", "no_fail": true, "level": 1, "need_worn": true } }, { diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_belts.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_belts.json index d1525fb7e..8d1be9aa4 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_belts.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_belts.json @@ -7,17 +7,25 @@ "weight": "102 g", "volume": "250 ml", "price": 90000, - "bashing": 5, - "material": [ "leather" ], + "material": [ "leather", "steel" ], "symbol": "[", "color": "brown", "material_thickness": 2, "pocket_data": [ - { "max_contains_volume": "500 ml", "max_contains_weight": "400 g", "moves": 60, "flag_restriction": [ "BELT_CLIP" ] } + { + "holster": true, + "max_contains_volume": "1 L", + "max_contains_weight": "750 g", + "max_item_length": "70 cm", + "moves": 60, + "flag_restriction": [ "BELT_CLIP" ], + "transparent": true + } ], "use_action": { "type": "holster", "holster_prompt": "Stick what into your belt", "holster_msg": "You tuck your %s into your %s" }, "flags": [ "BELTED", "WATER_FRIENDLY", "STURDY" ], - "armor": [ { "coverage": 50, "covers": [ "torso" ], "specifically_covers": [ "torso_waist" ] } ] + "armor": [ { "coverage": 50, "covers": [ "torso" ], "specifically_covers": [ "torso_waist" ] } ], + "melee_damage": { "bash": 5 } }, { "type": "TOOL_ARMOR", @@ -39,6 +47,7 @@ "material_thickness": 10, "environmental_protection": 20, "weight_capacity_bonus": "50 kg", + "extend": { "flags": [ "PADDED" ] }, "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "STRENGTH", "multiply": 1.0 } ] } ] } @@ -253,8 +262,6 @@ "material": [ "steel" ], "flags": [ "REACH_ATTACK", "REACH3", "WHIP", "UNBREAKABLE_MELEE" ], "techniques": [ "WBLOCK_1", "SWEEP", "WHIP_DISARM", "WRAP" ], - "cutting": 16, - "bashing": 8, "use_action": { "type": "transform", "menu_text": "Collapse", @@ -262,6 +269,7 @@ "active": false, "moves": 20, "msg": "You loop the whip in your hand and it coils back into a belt form in an instant." - } + }, + "melee_damage": { "bash": 8, "cut": 16 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_boots.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_boots.json index 78c55e555..ae1565a53 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_boots.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_boots.json @@ -13,7 +13,33 @@ "environmental_protection": 3, "flags": [ "WATERPROOF", "STURDY" ], "material": [ "leather" ], - "armor": [ { "encumbrance": 8, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + "armor": [ + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ { "type": "leather", "covered_by_mat": 100, "thickness": 3.0 } ], + "encumbrance": 6, + "coverage": 100 + }, + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 0.1 }, + { "type": "rubber", "covered_by_mat": 100, "thickness": 4.0 } + ], + "coverage": 100 + } + ] }, { "id": "mboots_haste", @@ -34,7 +60,33 @@ "environmental_protection": 3, "flags": [ "WATERPROOF", "STURDY" ], "material": [ "leather" ], - "armor": [ { "encumbrance": 8, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + "armor": [ + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ { "type": "leather", "covered_by_mat": 100, "thickness": 3.0 } ], + "encumbrance": 6, + "coverage": 100 + }, + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 0.1 }, + { "type": "rubber", "covered_by_mat": 100, "thickness": 4.0 } + ], + "coverage": 100 + } + ] }, { "id": "mboots_escape", @@ -53,7 +105,33 @@ "environmental_protection": 3, "flags": [ "WATERPROOF", "STURDY", "NO_UNLOAD", "NO_RELOAD" ], "material": [ "leather" ], - "armor": [ { "encumbrance": 8, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + "armor": [ + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ { "type": "leather", "covered_by_mat": 100, "thickness": 3.0 } ], + "encumbrance": 6, + "coverage": 100 + }, + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 0.1 }, + { "type": "rubber", "covered_by_mat": 100, "thickness": 4.0 } + ], + "coverage": 100 + } + ] }, { "id": "mboots_freerunner", @@ -69,7 +147,33 @@ "environmental_protection": 3, "flags": [ "WATERPROOF", "STURDY" ], "material": [ "leather" ], - "armor": [ { "encumbrance": 8, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + "armor": [ + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ { "type": "leather", "covered_by_mat": 100, "thickness": 3.0 } ], + "encumbrance": 6, + "coverage": 100 + }, + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 0.1 }, + { "type": "rubber", "covered_by_mat": 100, "thickness": 4.0 } + ], + "coverage": 100 + } + ] }, { "id": "mboots_grounding", @@ -85,6 +189,32 @@ "flags": [ "WATERPROOF", "STURDY" ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "ARMOR_ELEC", "add": -20 } ] } ] }, "material": [ "leather" ], - "armor": [ { "encumbrance": 8, "coverage": 95, "covers": [ "foot_l", "foot_r" ] } ] + "armor": [ + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ { "type": "leather", "covered_by_mat": 100, "thickness": 3.0 } ], + "encumbrance": 6, + "coverage": 100 + }, + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 0.1 }, + { "type": "rubber", "covered_by_mat": 100, "thickness": 4.0 } + ], + "coverage": 100 + } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_bracelet.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_bracelet.json index 814785179..0e117fc23 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_bracelet.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_bracelet.json @@ -55,7 +55,7 @@ "id": "disorientation_bracelet", "type": "TOOL_ARMOR", "name": { "str": "disorientation bracelet" }, - "description": "Known as \"a worse version of petrification bracelet\", this tool casts a spell that temporarily breaks the whole movement system of creature, disabling its movement for a short time. Require almost a week to restore its charge.", + "description": "Known as \"a worse version of petrification bracelet\", this tool casts a spell that temporarily breaks the whole movement system of a creature, disabling its movement for a short time. Require almost a week to restore its charge.", "price_postapoc": "5600 USD", "extend": { "flags": [ "NO_UNLOAD", "NO_RELOAD" ] }, "delete": { "flags": [ "NO_WEAR_EFFECT" ] }, @@ -69,7 +69,7 @@ "id": "super_hot_bracelet", "type": "TOOL_ARMOR", "name": { "str": "propulsion bracelet" }, - "description": "It feels like the world around you just stops. That's not true, that's just a combination of really fast speed and some mana tricks you can't understand. Require a whole week to restore its charge.", + "description": "It feels like the world around you just stops. That's not true, that's just a combination of really fast speed and some mana tricks you can't understand. Requires a whole week to restore its charge.", "price_postapoc": "8500 USD", "extend": { "flags": [ "NO_UNLOAD", "NO_RELOAD" ] }, "delete": { "flags": [ "NO_WEAR_EFFECT" ] }, diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_clothes.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_clothes.json index 526b9aea5..9b24595eb 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_clothes.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_clothes.json @@ -11,7 +11,7 @@ "id": "enchanted_pirate_blouse", "type": "ARMOR", "name": { "str_sp": "enchanted parabolan wool blouse" }, - "description": "A loose iridescent blouse in a style most often associated with pirates and renfaires. It shimmers as you look at it. Made of parabolan wool, it sometimes dimly shows reflections of things here and not. This particular one has piratical flairs and glitters with enchantment.", + "description": "A loose silvery iridescent blouse in a style most often associated with pirates and renfaires. It shimmers as you look at it. Made of parabolan wool, it sometimes dimly shows reflections of things here and not. This particular one has piratical flairs and glitters with enchantment.", "looks_like": "dress_shirt", "weight": "60 g", "volume": "750 ml", @@ -31,7 +31,7 @@ "id": "parabolan_enchanted_breeches", "type": "ARMOR", "name": { "str_sp": "enchanted parabolan wool breeches" }, - "description": "A well-made pair of old-fashioned pants, made of iridescent material. Comfortable, but lacks pockets. It shimmers as you look at it. Made of parabolan wool, it sometimes dimly shows reflections of things here and not. This particular one has piratical flairs and gliters with enchantment.", + "description": "A well-made pair of old-fashioned pants, made of silvery iridescent material. Comfortable, but lacks pockets. It shimmers as you look at it. Made of parabolan wool, it sometimes dimly shows reflections of things here and not. This particular one has piratical flairs and glitters with enchantment.", "weight": "52 g", "volume": "1750 ml", "price": 490000, @@ -57,7 +57,7 @@ "id": "parabolan_blouse", "type": "ARMOR", "name": "parabolan wool blouse", - "description": "A loose iridescent blouse in a style most often associated with pirates and renfaires. It shimmers as you look at it. Made of parabolan wool, it sometimes dimly shows reflections of things here and not.", + "description": "A loose silvery iridescent blouse in a style most often associated with pirates and renfaires. It shimmers as you look at it. Made of parabolan wool, it sometimes dimly shows reflections of things here and not.", "looks_like": "dress_shirt", "weight": "60 g", "volume": "750 ml", @@ -77,7 +77,7 @@ "id": "parabolan_breeches", "type": "ARMOR", "name": { "str_sp": "parabolan wool breeches" }, - "description": "A well-made pair of old-fashioned pants, made of iridescent material. Comfortable, but lacks pockets. It shimmers as you look at it. Made of parabolan wool, it sometimes dimly shows reflections of things here and not.", + "description": "A well-made pair of old-fashioned pants, made of silvery iridescent material. Comfortable, but lacks pockets. It shimmers as you look at it. Made of parabolan wool, it sometimes dimly shows reflections of things here and not.", "weight": "52 g", "volume": "1750 ml", "price": 4900, @@ -89,5 +89,33 @@ "armor": [ { "encumbrance": 2, "coverage": 95, "covers": [ "leg_l", "leg_r" ] } ], "material_thickness": 0.5, "flags": [ "VARSIZE", "FANCY", "WATER_FRIENDLY" ] + }, + { + "id": "coat_lab_plus_one", + "copy-from": "coat_lab", + "type": "ARMOR", + "name": { "str_sp": "enchanted lab coat" }, + "looks_like": "coat_lab", + "description": "A long white coat with several large pockets, with a pentagram on the lapel and a few orichalcum threads sewn into the seams. Perfect for the stylish-but-effective academic mage.", + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "REGEN_MANA", "multiply": 0.4 } ] } ] + } + }, + { + "id": "coat_lab_plus_two", + "copy-from": "coat_lab", + "type": "ARMOR", + "name": { "str_sp": "enspelled lab coat" }, + "looks_like": "coat_lab", + "description": "A long white coat with several large pockets, with a pentagram on the lapel and orichalcum and mithril threads sewn into the seams. A director of thaumaturgical research would have worn this or something like this before the Cataclysm.", + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "REGEN_MANA", "multiply": 0.5 }, { "value": "MAX_MANA", "add": 500 } ] + } + ] + } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_gunmods.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_gunmods.json index 080b1181b..e3eff7d2a 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_gunmods.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_gunmods.json @@ -9,7 +9,6 @@ "volume": "375 ml", "price": 77000, "to_hit": 2, - "bashing": 3, "material": [ "steel" ], "symbol": ":", "color": "white", @@ -20,7 +19,8 @@ "consume_chance": 220, "consume_divisor": 242, "loudness_modifier": -33, - "flags": [ "CONSUMABLE" ] + "flags": [ "CONSUMABLE" ], + "melee_damage": { "bash": 3 } }, { "id": "mana_laser_rail", diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_melee.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_melee.json index 24b4c94eb..7a05c95cc 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_melee.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_melee.json @@ -4,7 +4,7 @@ "id": "cudgel_plus_one", "copy-from": "cudgel", "name": { "str": "cudgel +1", "str_pl": "cudgels +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -12,7 +12,7 @@ "id": "cudgel_plus_two", "copy-from": "cudgel", "name": { "str": "cudgel +2", "str_pl": "cudgels +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -20,7 +20,7 @@ "id": "q_staff_plus_one", "copy-from": "q_staff", "name": { "str": "quarterstaff +1", "str_pl": "quarterstaves +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -28,7 +28,7 @@ "id": "q_staff_plus_two", "copy-from": "q_staff", "name": { "str": "quarterstaff +2", "str_pl": "quarterstaves +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -36,7 +36,7 @@ "id": "i_staff_plus_one", "copy-from": "i_staff", "name": { "str": "ironshod quarterstaff +1", "str_pl": "ironshod quarterstaves +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -44,23 +44,23 @@ "id": "i_staff_plus_two", "copy-from": "i_staff", "name": { "str": "ironshod quarterstaff +2", "str_pl": "ironshod quarterstaves +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "longsword_plus_one", - "copy-from": "longsword", + "copy-from": "qt_longsword", "name": { "str": "longsword +1", "str_pl": "longswords +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "longsword_plus_two", - "copy-from": "longsword", + "copy-from": "qt_longsword", "name": { "str": "longsword +2", "str_pl": "longswords +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -68,7 +68,7 @@ "id": "sledge_plus_one", "copy-from": "hammer_sledge", "name": { "str": "sledge hammer +1", "str_pl": "sledge hammers +1" }, - "proportional": { "price": 9.0, "price_postapoc": 9.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 9.0, "price_postapoc": 18.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -76,7 +76,7 @@ "id": "sledge_plus_two", "copy-from": "hammer_sledge", "name": { "str": "sledge hammer +2", "str_pl": "sledge hammers +2" }, - "proportional": { "price": 12.0, "price_postapoc": 12.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 12.0, "price_postapoc": 24.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -84,7 +84,7 @@ "id": "sledge_heavy_plus_one", "copy-from": "hammer_sledge_heavy", "name": { "str": "heavy sledge hammer +1", "str_pl": "heavy sledge hammers +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 15.0, "price_postapoc": 30.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -92,7 +92,7 @@ "id": "sledge_heavy_plus_two", "copy-from": "hammer_sledge_heavy", "name": { "str": "heavy sledge hammer +2", "str_pl": "heavy sledge hammers +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 18.0, "price_postapoc": 36.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -100,7 +100,7 @@ "id": "warhammer_plus_one", "copy-from": "warhammer", "name": { "str": "warhammer +1", "str_pl": "warhammers +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -108,7 +108,7 @@ "id": "warhammer_plus_two", "copy-from": "warhammer", "name": { "str": "warhammer +2", "str_pl": "warhammers +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -116,7 +116,7 @@ "id": "bat_plus_one", "copy-from": "bat", "name": { "str": "bat +1", "str_pl": "bats +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -124,7 +124,7 @@ "id": "bat_plus_two", "copy-from": "bat", "name": { "str": "bat +2", "str_pl": "bats +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -132,7 +132,7 @@ "id": "bat_metal_plus_one", "copy-from": "bat_metal", "name": { "str": "aluminum bat +1", "str_pl": "aluminum bats +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -140,7 +140,7 @@ "id": "bat_metal_plus_two", "copy-from": "bat_metal", "name": { "str": "aluminum bat +2", "str_pl": "aluminum bats +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -148,7 +148,7 @@ "id": "spear_steel_plus_one", "copy-from": "spear_steel", "name": { "str": "steel spear +1", "str_pl": "steel spears +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -156,7 +156,7 @@ "id": "spear_steel_plus_two", "copy-from": "spear_steel", "name": { "str": "steel spear +2", "str_pl": "steel spears +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -164,7 +164,7 @@ "id": "qiang_plus_one", "copy-from": "qiang", "name": { "str_sp": "qiang +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -172,7 +172,7 @@ "id": "qiang_plus_two", "copy-from": "qiang", "name": { "str_sp": "qiang +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -180,7 +180,7 @@ "id": "halberd_plus_one", "copy-from": "halberd", "name": { "str": "halberd +1", "str_pl": "halberds +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -188,7 +188,7 @@ "id": "halberd_plus_two", "copy-from": "halberd", "name": { "str": "halberd +2", "str_pl": "halberds +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -196,7 +196,7 @@ "id": "glaive_plus_one", "copy-from": "glaive", "name": { "str": "glaive +1", "str_pl": "glaives +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -204,7 +204,7 @@ "id": "glaive_plus_two", "copy-from": "glaive", "name": { "str": "glaive +2", "str_pl": "glaives +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -212,7 +212,7 @@ "id": "naginata_plus_one", "copy-from": "naginata", "name": { "str_sp": "naginata +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -220,7 +220,7 @@ "id": "naginata_plus_two", "copy-from": "naginata", "name": { "str_sp": "naginata +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -228,7 +228,7 @@ "id": "mace_plus_one", "copy-from": "mace", "name": { "str": "mace +1", "str_pl": "maces +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -236,7 +236,7 @@ "id": "mace_plus_two", "copy-from": "mace", "name": { "str": "mace +2", "str_pl": "maces +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -244,7 +244,7 @@ "id": "morningstar_plus_one", "copy-from": "morningstar", "name": { "str": "morningstar +1", "str_pl": "morningstars +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -252,87 +252,87 @@ "id": "morningstar_plus_two", "copy-from": "morningstar", "name": { "str": "morningstar +2", "str_pl": "morningstars +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "jian_plus_one", - "copy-from": "jian", + "copy-from": "qt_jian", "name": { "str_sp": "jian +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "jian_plus_two", - "copy-from": "jian", + "copy-from": "qt_jian", "name": { "str_sp": "jian +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "scimitar_plus_one", - "copy-from": "scimitar", + "copy-from": "qt_scimitar", "name": { "str": "scimitar +1", "str_pl": "scimitars +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "scimitar_plus_two", - "copy-from": "scimitar", + "copy-from": "qt_scimitar", "name": { "str": "scimitar +2", "str_pl": "scimitars +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "estoc_plus_one", - "copy-from": "estoc", + "copy-from": "qt_estoc", "name": { "str": "estoc +1", "str_pl": "estocs +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "estoc_plus_two", - "copy-from": "estoc", + "copy-from": "qt_estoc", "name": { "str": "estoc +2", "str_pl": "estocs +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "arming_sword_plus_one", - "copy-from": "arming_sword", + "copy-from": "qt_arming_sword", "name": { "str": "arming sword +1", "str_pl": "arming swords +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "arming_sword_plus_two", - "copy-from": "arming_sword", + "copy-from": "qt_arming_sword", "name": { "str": "arming sword +2", "str_pl": "arming swords +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "broadsword_plus_one", - "copy-from": "broadsword", + "copy-from": "qt_broadsword", "name": { "str": "broadsword +1", "str_pl": "broadswords +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "broadsword_plus_two", - "copy-from": "broadsword", + "copy-from": "qt_broadsword", "name": { "str": "broadsword +2", "str_pl": "broadswords +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -340,7 +340,7 @@ "id": "battleaxe_plus_one", "copy-from": "battleaxe", "name": { "str": "battle axe +1", "str_pl": "battle axes +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -348,39 +348,39 @@ "id": "battleaxe_plus_two", "copy-from": "battleaxe", "name": { "str": "battle axe +2", "str_pl": "battle axes +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "cavalry_sabre_plus_one", - "copy-from": "cavalry_sabre", + "copy-from": "qt_cavalry_sabre", "name": { "str": "cavalry sabre +1", "str_pl": "cavalry sabres +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "cavalry_sabre_plus_two", - "copy-from": "cavalry_sabre", + "copy-from": "qt_cavalry_sabre", "name": { "str": "cavalry sabre +2", "str_pl": "cavalry sabres +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "cutlass_plus_one", - "copy-from": "cutlass", + "copy-from": "qt_cutlass", "name": { "str": "cutlass +1", "str_pl": "cutlasses +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "cutlass_plus_two", - "copy-from": "cutlass", + "copy-from": "qt_cutlass", "name": { "str": "cutlass +2", "str_pl": "cutlasses +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -388,7 +388,7 @@ "id": "fire_ax_plus_one", "copy-from": "fire_ax", "name": { "str": "fire axe +1", "str_pl": "fire axes +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -396,23 +396,23 @@ "id": "fire_ax_plus_two", "copy-from": "fire_ax", "name": { "str": "fire axe +2", "str_pl": "fire axes +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "katana_plus_one", - "copy-from": "katana", + "copy-from": "qt_katana", "name": { "str_sp": "katana +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "katana_plus_two", - "copy-from": "katana", + "copy-from": "qt_katana", "name": { "str_sp": "katana +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -420,7 +420,7 @@ "id": "knife_combat_plus_one", "copy-from": "knife_combat", "name": { "str": "combat knife +1", "str_pl": "combat knives +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -428,7 +428,7 @@ "id": "knife_combat_plus_two", "copy-from": "knife_combat", "name": { "str": "combat knife +2", "str_pl": "combat knives +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -436,7 +436,7 @@ "id": "knife_rambo_plus_one", "copy-from": "knife_rambo", "name": { "str": "survival knife +1", "str_pl": "survival knives +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -444,7 +444,7 @@ "id": "knife_rambo_plus_two", "copy-from": "knife_rambo", "name": { "str": "survival knife +2", "str_pl": "survival knives +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -452,7 +452,7 @@ "id": "knife_trench_plus_one", "copy-from": "knife_trench", "name": { "str": "trench knife +1", "str_pl": "trench knives +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -460,7 +460,7 @@ "id": "knife_trench_plus_two", "copy-from": "knife_trench", "name": { "str": "trench knife +2", "str_pl": "trench knives +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -468,7 +468,7 @@ "id": "kris_plus_one", "copy-from": "kris", "name": { "str": "kris +1", "str_pl": "krises +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -476,7 +476,7 @@ "id": "kris_plus_two", "copy-from": "kris", "name": { "str": "kris +2", "str_pl": "krises +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -484,7 +484,7 @@ "id": "kukri_plus_one", "copy-from": "kukri", "name": { "str": "kukri +1", "str_pl": "kukris +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -492,23 +492,23 @@ "id": "kukri_plus_two", "copy-from": "kukri", "name": { "str": "kukri +2", "str_pl": "kukris +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "nodachi_plus_one", - "copy-from": "nodachi", + "copy-from": "qt_nodachi", "name": { "str_sp": "nodachi +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "nodachi_plus_two", - "copy-from": "nodachi", + "copy-from": "qt_nodachi", "name": { "str_sp": "nodachi +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -516,7 +516,8 @@ "id": "pickaxe_plus_one", "copy-from": "pickaxe", "name": { "str": "pickaxe +1", "str_pl": "pickaxes +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, + "use_action": [ "PICKAXE" ], "relative": { "to_hit": 1 } }, { @@ -524,7 +525,8 @@ "id": "pickaxe_plus_two", "copy-from": "pickaxe", "name": { "str": "pickaxe +2", "str_pl": "pickaxes +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, + "use_action": [ "PICKAXE" ], "relative": { "to_hit": 2 } }, { @@ -532,7 +534,7 @@ "id": "pike_plus_one", "copy-from": "pike", "name": { "str": "pike +1", "str_pl": "pikes +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -540,23 +542,23 @@ "id": "pike_plus_two", "copy-from": "pike", "name": { "str": "pike +2", "str_pl": "pikes +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "rapier_plus_one", - "copy-from": "rapier", + "copy-from": "qt_rapier", "name": { "str": "rapier +1", "str_pl": "rapiers +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "rapier_plus_two", - "copy-from": "rapier", + "copy-from": "qt_rapier", "name": { "str": "rapier +2", "str_pl": "rapiers +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -564,7 +566,7 @@ "id": "tanto_plus_one", "copy-from": "tanto", "name": { "str_sp": "tanto +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -572,39 +574,39 @@ "id": "tanto_plus_two", "copy-from": "tanto", "name": { "str_sp": "tanto +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "wakizashi_plus_one", - "copy-from": "wakizashi", + "copy-from": "qt_wakizashi", "name": { "str_sp": "wakizashi +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "wakizashi_plus_two", - "copy-from": "wakizashi", + "copy-from": "qt_wakizashi", "name": { "str_sp": "wakizashi +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { "type": "GENERIC", "id": "zweihander_plus_one", - "copy-from": "zweihander", + "copy-from": "qt_zweihander", "name": { "str": "zweihänder +1", "str_pl": "zweihänders +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { "type": "GENERIC", "id": "zweihander_plus_two", - "copy-from": "zweihander", + "copy-from": "qt_zweihander", "name": { "str": "zweihänder +2", "str_pl": "zweihänders +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -612,7 +614,7 @@ "id": "khopesh_plus_one", "copy-from": "khopesh", "name": { "str": "khopesh +1", "str_pl": "khopeshes +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -620,7 +622,7 @@ "id": "khopesh_plus_two", "copy-from": "khopesh", "name": { "str": "khopesh +2", "str_pl": "khopeshes +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -628,7 +630,7 @@ "id": "sword_xiphos_plus_one", "copy-from": "sword_xiphos", "name": { "str": "xiphos +1", "str_pl": "xiphe +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -636,7 +638,7 @@ "id": "sword_xiphos_plus_two", "copy-from": "sword_xiphos", "name": { "str": "xiphos +2", "str_pl": "xiphe +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -644,7 +646,7 @@ "id": "dao_plus_one", "copy-from": "dao", "name": { "str_sp": "dao +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -652,7 +654,7 @@ "id": "dao_plus_two", "copy-from": "dao", "name": { "str_sp": "dao +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -660,7 +662,7 @@ "id": "lucerne_plus_one", "copy-from": "lucern_hammer", "name": { "str": "lucerne hammer +1", "str_pl": "lucerne hammers +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -668,7 +670,7 @@ "id": "lucerne_plus_two", "copy-from": "lucern_hammer", "name": { "str": "lucerne hammer +2", "str_pl": "lucerne hammers +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { @@ -683,14 +685,13 @@ "longest_side": "130 cm", "price": 3900, "to_hit": 2, - "bashing": 6, - "cutting": 21, "material": [ "wood", "bone" ], "symbol": "/", "color": "light_gray", "techniques": [ "WBLOCK_1", "IMPALE" ], "qualities": [ [ "COOK", 1 ] ], - "flags": [ "SPEAR", "REACH_ATTACK", "DURABLE_MELEE", "SHEATH_SPEAR", "TRADER_AVOID", "MAGIC_FOCUS" ] + "flags": [ "SPEAR", "REACH_ATTACK", "DURABLE_MELEE", "SHEATH_SPEAR", "TRADER_AVOID", "MAGIC_FOCUS" ], + "melee_damage": { "bash": 6, "stab": 21 } }, { "id": "rune_biomancer_weapon_adept", @@ -704,8 +705,6 @@ "longest_side": "130 cm", "price": 3900, "to_hit": 3, - "bashing": 9, - "cutting": 25, "material": [ "hflesh", "bone" ], "symbol": "/", "color": "light_gray", @@ -719,21 +718,20 @@ "need_wielding": true, "moves": 400 }, - "flags": [ "SPEAR", "REACH_ATTACK", "DURABLE_MELEE", "SHEATH_SPEAR", "TRADER_AVOID", "MAGIC_FOCUS" ] + "flags": [ "SPEAR", "REACH_ATTACK", "DURABLE_MELEE", "SHEATH_SPEAR", "TRADER_AVOID", "MAGIC_FOCUS" ], + "melee_damage": { "bash": 9, "stab": 25 } }, { "id": "rune_technomancer_weapon", "looks_like": "halligan", "type": "GENERIC", "name": { "str": "Technomancer toolbar" }, - "//": "Combat stats based off crowbar +1, techniques off Halligan bar(closest non-magical substitute), weight based on 75% of hammer & wrench(since their handles aren't included) + 100% crowbar with benefit from +1 enchantment", + "//": "Combat stats based off crowbar +1, techniques off Halligan bar(closest non-magical substitute), weight based on 16oz clawhammer head, small wrench and crowbar with a small benefit from being magic", "description": "This staff incorporates a sturdy crescent wrench on top of a prybar and a hammer on the other in a convenient package. There is a Technomancer rune embedded in the hammerhead.", "weight": "995 g", - "volume": "1750 ml", + "volume": "440 ml", "longest_side": "65 cm", "price": 3900, - "bashing": 22, - "cutting": 1, "material": [ "steel" ], "symbol": "/", "color": "light_gray", @@ -741,7 +739,8 @@ "qualities": [ [ "PRY", 3 ], [ "HAMMER", 3 ], [ "HAMMER_FINE", 1 ], [ "WRENCH", 2 ], [ "WRENCH_FINE", 2 ], [ "PRYING_NAIL", 1 ] ], "use_action": [ "CROWBAR" ], "flags": [ "DURABLE_MELEE", "BELT_CLIP", "TRADER_AVOID", "MAGIC_FOCUS" ], - "weapon_category": [ "HOOKING_WEAPONRY" ] + "weapon_category": [ "HOOKING_WEAPONRY" ], + "melee_damage": { "bash": 22, "cut": 1 } }, { "id": "rune_technomancer_weapon_adept", @@ -751,11 +750,9 @@ "//": "Pretty much the same as the other, but now with a cool touchscreen that casts mirror image and does some minor things", "description": "This staff incorporates a sturdy crescent wrench on top of a prybar and a hammer on the other in a convenient package. There are electronic components in the staff connected to a touchscreen embedded in the staff, you only had time to cram one spell in the prototype software. There is a Technomancer rune embedded in the hammerhead.", "weight": "1000 g", - "volume": "1750 ml", + "volume": "550 ml", "longest_side": "65 cm", "price": 5000, - "bashing": 27, - "cutting": 1, "material": [ "steel" ], "symbol": "/", "color": "light_gray", @@ -769,7 +766,8 @@ "use_action": [ [ "CROWBAR", 0 ], { "type": "cast_spell", "spell_id": "mirror_image", "no_fail": true, "level": 10, "need_wielding": true } - ] + ], + "melee_damage": { "bash": 27, "cut": 1 } }, { "id": "rune_magus_weapon", @@ -779,16 +777,16 @@ "//": "The classical vision of the wizard gets a classic weapon. DPS Stats are between the regular and ironshod versions. Stats are slightly worse than the QS+1 due to the glass weight slowing attack speed.", "description": "A quarterstaff with runes carved into it and two glass jars, heat-tempered and infused with mana for durability, to act as mana receptacles. There are two Magi runes embedded at the tips.", "weight": "1530 g", - "volume": "3500 ml", + "volume": "1550 ml", "longest_side": "185 cm", "price": 3900, "to_hit": 4, - "bashing": 29, "material": [ "wood", "diamond" ], "symbol": "/", "color": "brown", "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], - "flags": [ "DURABLE_MELEE", "SHEATH_SPEAR", "TRADER_AVOID", "MAGIC_FOCUS" ] + "flags": [ "DURABLE_MELEE", "SHEATH_SPEAR", "TRADER_AVOID", "MAGIC_FOCUS" ], + "melee_damage": { "bash": 29 } }, { "id": "rune_magus_weapon_adept", @@ -798,11 +796,10 @@ "//": "It will be based on the Q +2 weapon but slightly worse, slightly better than the magus staff, but its greatest strength will be its regen mana capabilities, better than magi staff minor but worse than the lesser one.", "description": "A quarterstaff with runes carved into it and two mana pearls at the tip, enchanted with mana for durability. It fills you with an invigorating sensation. There are two Magi runes carved into the wood.", "weight": "1600 g", - "volume": "3500 ml", + "volume": "1550 ml", "longest_side": "185 cm", "price": 15000, "to_hit": 4, - "bashing": 34, "material": [ "wood", "diamond" ], "symbol": "/", "relic_data": { @@ -810,26 +807,23 @@ }, "color": "brown", "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], - "flags": [ "DURABLE_MELEE", "SHEATH_SPEAR", "TRADER_AVOID", "MAGIC_FOCUS" ] + "flags": [ "DURABLE_MELEE", "SHEATH_SPEAR", "TRADER_AVOID", "MAGIC_FOCUS" ], + "melee_damage": { "bash": 34 } }, { "id": "rune_kelvinist_weapon", "looks_like": "longsword", "type": "GENERIC", - "copy-from": "longsword", + "copy-from": "hc_cutlass", "name": { "str": "Kelvinist flamberge" }, "//": "Flame-bladed sword covers half of Kelvinist's heat-cold theme. Combat stats equivalent to cutlass +1 with BRUTAL technique.", "description": "A sword with an undulating blade, reminiscent of a flame. There is a Kelvinist rune embedded in the pommel.", - "weight": "860 g", - "volume": "1250 ml", - "longest_side": "80 cm", + "proportional": { "weight": 0.9, "melee_damage": { "all": 1.1 } }, + "relative": { "to_hit": 1 }, "price": 3900, - "to_hit": 2, - "bashing": 6, - "cutting": 29, - "material": [ "wood", "steel" ], "symbol": "/", "color": "light_gray", + "weapon_category": [ "MEDIEVAL_SWORDS", "MEDIUM_SWORDS", "CONSTRUCTED_SWORDS" ], "techniques": [ "WBLOCK_2", "BRUTAL" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 9 ] ], "use_action": [ "WEATHER_TOOL" ], @@ -839,7 +833,7 @@ "id": "rune_kelvinist_ice_adept_weapon", "looks_like": "scimitar", "type": "TOOL", - "copy-from": "scimitar", + "copy-from": "qt_scimitar", "symbol": "/", "color": "light_gray", "name": { "str": "Kelvinist Frostbind" }, @@ -847,17 +841,12 @@ "description": "This curved sword, reminiscent of a scimitar, has a handle with an embedded crystal from which a cold wind emanates. There are Kelvinist runes embedded in the blade.", "price": 558000, "price_postapoc": 21000, - "material": [ "steel" ], + "proportional": { "weight": 0.8, "melee_damage": { "all": 1.2 } }, + "relative": { "to_hit": 2 }, "techniques": [ "WBLOCK_2", "WIDE" ], - "weight": "960 g", - "volume": "2 L", - "longest_side": "90 cm", - "bashing": 8, - "cutting": 36, - "to_hit": 3, "category": "weapons", "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ], - "weapon_category": [ "MEDIEVAL_SWORDS", "MEDIUM_SWORDS" ], + "weapon_category": [ "MEDIEVAL_SWORDS", "MEDIUM_SWORDS", "CONSTRUCTED_SWORDS" ], "use_action": [ { "type": "cast_spell", "spell_id": "frost_spray", "no_fail": true, "level": 10, "need_wielding": true }, "WEATHER_TOOL" @@ -875,22 +864,21 @@ "type": "GENERIC", "copy-from": "copper_ax", "name": { "str": "Stormshaper axe" }, - "//": "Equivalent to copper axe +1. Metals chosen for being two most conductive metals + balancing reasons", + "//": "Based off battle axe +1. Metals chosen for being two most conductive metals + balancing reasons", "description": "A forged copper axe with silver trimmings and a wooden handle. There is a Stormshaper rune embedded in the eye.", - "weight": "3330 g", - "volume": "3500 ml", + "weight": "2850 g", + "volume": "2025 ml", "longest_side": "90 cm", "price": 3900, - "to_hit": -1, - "bashing": 33, - "cutting": 22, + "to_hit": { "grip": "weapon", "length": "long", "surface": "line", "balance": "uneven" }, "material": [ "wood", "copper", "silver" ], "symbol": "/", "color": "brown", "techniques": [ "WBLOCK_1", "BRUTAL", "SWEEP" ], "qualities": [ [ "AXE", 1 ], [ "BUTCHER", -20 ] ], "use_action": [ "WEATHER_TOOL" ], - "flags": [ "DURABLE_MELEE", "SHEATH_AXE", "TRADER_AVOID", "MAGIC_FOCUS", "HYGROMETER", "BAROMETER" ] + "flags": [ "DURABLE_MELEE", "SHEATH_AXE", "TRADER_AVOID", "MAGIC_FOCUS", "HYGROMETER", "BAROMETER" ], + "melee_damage": { "bash": 21, "cut": 42 } }, { "id": "rune_stormshaper_weapon_adept", @@ -904,8 +892,6 @@ "price": 55800, "price_postapoc": 21000, "to_hit": 0, - "bashing": 40, - "cutting": 27, "material": [ "wood", "copper", "silver" ], "symbol": "/", "color": "brown", @@ -919,7 +905,8 @@ "flags": [ "DURABLE_MELEE", "NO_UNLOAD", "NO_RELOAD", "SHEATH_AXE", "TRADER_AVOID", "MAGIC_FOCUS", "HYGROMETER", "BAROMETER" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "rigid": true, "ammo_restriction": { "crystallized_mana": 3 } } ], "relic_data": { "charge_info": { "recharge_type": "periodic", "time": "24 h", "regenerate_ammo": true } }, - "charges_per_use": 1 + "charges_per_use": 1, + "melee_damage": { "bash": 40, "cut": 27 } }, { "id": "rune_animist_weapon", @@ -931,15 +918,14 @@ "volume": "500 ml", "longest_side": "25 cm", "price": 3000, - "bashing": 2, - "cutting": 13, "material": [ "wood", "steel" ], "symbol": ";", "color": "light_gray", "techniques": [ "WBLOCK_1", "RAPID" ], "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 11 ] ], "weapon_category": [ "KNIVES" ], - "flags": [ "STAB", "SHEATH_KNIFE", "MAGIC_FOCUS", "TRADER_AVOID" ] + "flags": [ "SHEATH_KNIFE", "MAGIC_FOCUS", "TRADER_AVOID" ], + "melee_damage": { "bash": 2, "stab": 13 } }, { "id": "rune_animist_weapon_adept", @@ -951,8 +937,6 @@ "volume": "500 ml", "longest_side": "25 cm", "price": 15000, - "bashing": 7, - "cutting": 30, "material": [ "wood", "steel" ], "symbol": ";", "color": "light_gray", @@ -962,7 +946,8 @@ "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "PAIN", "multiply": -0.3 } ] } ] }, - "flags": [ "STAB", "SHEATH_KNIFE", "MAGIC_FOCUS", "TRADER_AVOID" ] + "flags": [ "SHEATH_KNIFE", "MAGIC_FOCUS", "TRADER_AVOID" ], + "melee_damage": { "bash": 7, "stab": 30 } }, { "type": "GENERIC", @@ -988,8 +973,8 @@ }, "volume": "750 ml", "longest_side": "60 cm", - "bashing": 24, - "price": 34000 + "price": 34000, + "melee_damage": { "bash": 24 } }, { "type": "GENERIC", @@ -1015,8 +1000,8 @@ }, "volume": "3 L", "longest_side": "150 cm", - "bashing": 29, - "price": 34000 + "price": 34000, + "melee_damage": { "bash": 29 } }, { "id": "grim_reaper_scythe", @@ -1030,8 +1015,6 @@ "volume": "3550 ml", "longest_side": "150 cm", "price": 10000, - "bashing": 17, - "cutting": 45, "to_hit": { "grip": "weapon", "length": "long", "surface": "point", "balance": "neutral" }, "material": [ "steel", "wood" ], "symbol": "/", @@ -1054,6 +1037,7 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "rigid": true, "ammo_restriction": { "crystallized_mana": 3 } } ], "relic_data": { "charge_info": { "recharge_type": "periodic", "time": "24 h", "regenerate_ammo": true } }, "charges_per_use": 1, - "use_action": [ { "type": "cast_spell", "spell_id": "rupture", "no_fail": true, "level": 10, "need_wielding": true } ] + "use_action": [ { "type": "cast_spell", "spell_id": "rupture", "no_fail": true, "level": 10, "need_wielding": true } ], + "melee_damage": { "bash": 17, "cut": 45 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_misc.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_misc.json index f18f70779..688ba15c5 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_misc.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_misc.json @@ -11,7 +11,6 @@ "material": [ "steel" ], "weight": "500 g", "volume": "450 ml", - "bashing": 8, "to_hit": -1, "qualities": [ [ "HAMMER", 1 ] ], "flags": [ "ALLOWS_REMOTE_USE", "FIRE", "NO_UNLOAD" ], @@ -30,9 +29,9 @@ "menu_text": "Activate torch mode", "moves": 150 }, - { "type": "firestarter" }, - { "flame": false, "type": "cauterize" } - ] + { "type": "firestarter" } + ], + "melee_damage": { "bash": 8 } }, { "id": "heat_cube_torch_on", @@ -73,7 +72,6 @@ "price": 0, "price_postapoc": "150 USD", "to_hit": 1, - "bashing": 8, "material": [ "wood" ], "symbol": "/", "color": "brown", @@ -85,7 +83,8 @@ "active": true, "menu_text": "Light torch", "type": "transform" - } + }, + "melee_damage": { "bash": 8 } }, { "id": "mtorch_everburning_lit", @@ -104,7 +103,8 @@ } ], "techniques": [ "WBLOCK_1" ], - "extend": { "flags": [ "FIRE", "LIGHT_240", "FLAMING", "TRADER_AVOID", "WATER_EXTINGUISH" ] } + "sub": "fire", + "extend": { "flags": [ "FIRE", "LIGHT_60", "FLAMING", "TRADER_AVOID", "WATER_EXTINGUISH" ] } }, { "name": { "str": "endless flask" }, @@ -113,14 +113,32 @@ "copy-from": "flask_hip", "price_postapoc": "850 USD", "category": "clothing", - "relic_data": { "charge_info": { "recharge_type": "periodic", "time": "24 h", "regenerate_ammo": true } }, "use_action": { "target": "whiskey", "msg": "You open the flask and discover it full of sweet, sweet, whiskey!", "container": "mflask_hip_whiskey", "target_charges": 7, "moves": 50, - "type": "transform" + "type": "transform", + "need_empty": true + } + }, + { + "id": "mteapot", + "type": "GENERIC", + "copy-from": "teapot", + "category": "tools", + "name": { "str": "endless teapot" }, + "description": "A small metal teapot. Teatime wouldn't be complete without one.", + "price_postapoc": "2500 USD", + "use_action": { + "target": "tea_green", + "msg": "You check the teapot and discover it full of sweet tea! Sadly, it's cold.", + "container": "mteapot", + "target_charges": 2, + "moves": 50, + "type": "transform", + "need_empty": true } }, { @@ -153,6 +171,7 @@ "kevlar_layered", "neoprene", "gutskin", + "canvas", "black_dragon_hide", "demon_chitin" ], diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_ranged.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_ranged.json index ef3d55060..13ec786b9 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_ranged.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_ranged.json @@ -35,7 +35,7 @@ } ] }, - "valid_mod_locations": [ [ "sights", 1 ], [ "accessories", 1 ], [ "dampening", 1 ] ], + "valid_mod_locations": [ [ "sights", 1 ], [ "dampening", 1 ] ], "ranged_damage": { "damage_type": "stab", "amount": 9 }, "range": 13, "dispersion": 855 @@ -51,7 +51,6 @@ "longest_side": "25 cm", "price": 74000, "to_hit": -1, - "bashing": 10, "material": [ "steel", "wood" ], "symbol": "(", "color": "dark_gray", @@ -63,7 +62,6 @@ "loudness": 23, "clip_size": 6, "valid_mod_locations": [ - [ "accessories", 1 ], [ "mechanism", 1 ], [ "barrel", 1 ], [ "grip", 1 ], @@ -73,7 +71,8 @@ [ "underbarrel mount", 1 ] ], "flags": [ "RELOAD_ONE", "NEVER_JAMS", "RELOAD_EJECT" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 6, "380": 6, "357mag": 6, "38": 6 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "9mm": 6, "380": 6, "357mag": 6, "38": 6 } } ], + "melee_damage": { "bash": 10 } }, { "id": "enchanted_blackpowder_pistol", @@ -84,7 +83,6 @@ "price": 74000, "price_postapoc": 25750, "to_hit": -1, - "bashing": 7, "material": [ "iron", "wood" ], "symbol": "(", "color": "brown", @@ -96,16 +94,10 @@ "durability": 7, "loudness": 23, "reload": 600, - "valid_mod_locations": [ - [ "accessories", 1 ], - [ "grip mount", 1 ], - [ "rail mount", 1 ], - [ "sights mount", 1 ], - [ "stock mount", 1 ], - [ "underbarrel mount", 1 ] - ], + "valid_mod_locations": [ [ "grip mount", 1 ], [ "rail mount", 1 ], [ "sights mount", 1 ], [ "stock mount", 1 ], [ "underbarrel mount", 1 ] ], "flags": [ "NEVER_JAMS" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "flintlock": 1 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "flintlock": 1 } } ], + "melee_damage": { "bash": 7 } }, { "id": "gunblade", @@ -117,8 +109,6 @@ "longest_side": "90 cm", "price": 8000, "to_hit": 2, - "bashing": 10, - "cutting": 32, "material": [ "steel" ], "symbol": "/", "color": "dark_gray", @@ -140,7 +130,8 @@ "weapon_category": [ "MEDIUM_SWORDS" ], "flags": [ "RELOAD_ONE", "PUMP_ACTION", "DURABLE_MELEE", "SHEATH_SWORD" ], "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 3 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 3 } } ], + "melee_damage": { "bash": 10, "cut": 32 } }, { "id": "boreal_mosin", @@ -153,7 +144,6 @@ "clip_size": 5, "barrel_volume": "1000 ml", "valid_mod_locations": [ - [ "accessories", 4 ], [ "barrel", 1 ], [ "brass catcher", 1 ], [ "grip", 1 ], @@ -167,7 +157,7 @@ ], "flags": [ "RELOAD_ONE" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "308": 5 }, "allowed_speedloaders": [ "borealmosin_clip" ] } ], - "proportional": { "price": 3, "price_postapoc": 3, "bashing": 1.1, "weight": 0.9, "dispersion": 0.9 }, + "proportional": { "price": 3, "price_postapoc": 3, "weight": 0.9, "dispersion": 0.9, "melee_damage": { "bash": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -196,8 +186,8 @@ "longest_side": "130 cm", "ammo": [ "barb" ], "clip_size": 1, - "bashing": 5, "to_hit": 1, + "ranged_damage": { "damage_type": "bullet", "amount": 24 }, "reload_noise_volume": 2, "loudness": 5, "range": 12, @@ -212,7 +202,8 @@ "need_wielding": true, "ammo_scale": 0, "moves": 400 - } + }, + "melee_damage": { "bash": 5 } }, { "type": "AMMO", @@ -226,13 +217,12 @@ "flags": [ "TRADER_AVOID" ], "volume": "250ml", "weight": "37 g", - "bashing": 6, - "cutting": 2, "ammo_type": "barb", "damage": { "damage_type": "stab", "amount": 10, "armor_penetration": 10 }, "dispersion": 120, "loudness": 0, "count": 10, - "show_stats": true + "show_stats": true, + "melee_damage": { "bash": 6, "cut": 2 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_rings.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_rings.json index 0c97c73eb..78552932a 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_rings.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_rings.json @@ -11,6 +11,7 @@ "material": [ "copper" ], "symbol": "[", "color": "light_red", + "looks_like": "copper_ring", "sided": true, "warmth": 0, "flags": [ "WATER_FRIENDLY", "ALLOWS_NATURAL_ATTACKS", "FANCY", "ONE_PER_LAYER", "SKINTIGHT" ], @@ -36,6 +37,7 @@ "material": [ "silver" ], "symbol": "[", "color": "light_gray", + "looks_like": "silver_ring", "sided": true, "warmth": 0, "flags": [ "WATER_FRIENDLY", "ALLOWS_NATURAL_ATTACKS", "FANCY", "ONE_PER_LAYER", "SKINTIGHT" ], @@ -61,6 +63,7 @@ "material": [ "gold" ], "symbol": "[", "color": "yellow", + "looks_like": "gold_ring", "sided": true, "warmth": 0, "flags": [ "WATER_FRIENDLY", "ALLOWS_NATURAL_ATTACKS", "FANCY", "ONE_PER_LAYER", "SKINTIGHT" ], @@ -86,6 +89,7 @@ "material": [ "platinum" ], "symbol": "[", "color": "light_gray", + "looks_like": "platinum_ring", "sided": true, "warmth": 0, "flags": [ "WATER_FRIENDLY", "ALLOWS_NATURAL_ATTACKS", "FANCY", "ONE_PER_LAYER", "SKINTIGHT" ], @@ -452,7 +456,8 @@ "moves": 1, "holster": true, "weight_multiplier": 0.0, - "volume_multiplier": 0.0 + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0.0 } ], "use_action": { "type": "holster", "holster_prompt": "Stick what into your ring", "holster_msg": "You tuck your %s into your %s" } @@ -475,7 +480,8 @@ "moves": 1, "holster": true, "weight_multiplier": 0.0, - "volume_multiplier": 0.0 + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0.0 } ], "use_action": { "type": "holster", "holster_prompt": "Stick what into your ring", "holster_msg": "You tuck your %s into your %s" } diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_tokens.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_tokens.json index 411e4c746..7b1a63c16 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_tokens.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_tokens.json @@ -60,7 +60,7 @@ "copy-from": "mtoken", "type": "GENERIC", "id": "mtoken_battleaxe", - "name": { "str": "battleaxe token" }, + "name": { "str": "battle axe token" }, "description": "A large silver coin that, when activated by uttering the word on the back, turns into the item pictured on the front, in this case a battle axe.", "use_action": { "type": "transform", diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_tools.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_tools.json index 90215f4e8..41bd0f62e 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_tools.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_tools.json @@ -4,7 +4,7 @@ "id": "crowbar_plus_one", "copy-from": "crowbar", "name": { "str": "crowbar +1", "str_pl": "crowbars +1" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 }, "extend": { "qualities": [ [ "PRY", 4 ] ] } }, @@ -13,7 +13,7 @@ "id": "crowbar_plus_two", "copy-from": "crowbar", "name": { "str": "crowbar +2", "str_pl": "crowbars +2" }, - "proportional": { "price": 9.0, "price_postapoc": 9.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 9.0, "price_postapoc": 9.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 }, "extend": { "qualities": [ [ "PRY", 5 ] ] } }, @@ -22,7 +22,7 @@ "id": "knife_hunting_plus_one", "copy-from": "knife_hunting", "name": { "str": "hunting knife +1", "str_pl": "hunting knives +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 }, "extend": { "qualities": [ [ "BUTCHER", 33 ] ] } }, @@ -31,7 +31,7 @@ "id": "knife_hunting_plus_two", "copy-from": "knife_hunting", "name": { "str": "hunting knife +2", "str_pl": "hunting knives +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 }, "extend": { "qualities": [ [ "BUTCHER", 36 ] ] } }, @@ -40,7 +40,7 @@ "id": "jack_plus_one", "copy-from": "jack", "name": { "str": "bottle jack +1", "str_pl": "bottle jacks +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "extend": { "qualities": [ [ "JACK", 18 ] ] } }, { @@ -48,7 +48,7 @@ "id": "jack_plus_two", "copy-from": "jack", "name": { "str": "bottle jack +2", "str_pl": "bottle jacks +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "extend": { "qualities": [ [ "JACK", 20 ] ] } }, { @@ -56,7 +56,7 @@ "id": "scalpel_plus_one", "copy-from": "scalpel", "name": { "str": "scalpel +1", "str_pl": "scalpels +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "extend": { "qualities": [ [ "CUT_FINE", 4 ], [ "BUTCHER", 9 ] ] } }, { @@ -64,7 +64,7 @@ "id": "scalpel_plus_two", "copy-from": "scalpel", "name": { "str": "scalpel +2", "str_pl": "scalpels +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "extend": { "qualities": [ [ "CUT_FINE", 5 ], [ "BUTCHER", 10 ] ] } }, { @@ -72,7 +72,7 @@ "id": "knife_butcher_plus_one", "copy-from": "knife_butcher", "name": { "str": "butcher knife +1", "str_pl": "butcher knives +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "extend": { "qualities": [ [ "BUTCHER", 28 ] ] } }, { @@ -80,7 +80,7 @@ "id": "knife_butcher_plus_two", "copy-from": "knife_butcher", "name": { "str": "butcher knife +2", "str_pl": "butcher knives +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "extend": { "qualities": [ [ "BUTCHER", 30 ] ] } }, { @@ -88,7 +88,7 @@ "id": "knife_meat_cleaver_plus_one", "copy-from": "knife_meat_cleaver", "name": { "str": "meat cleaver +1", "str_pl": "meat cleavers +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "extend": { "qualities": [ [ "BUTCHER", 28 ] ] } }, { @@ -96,7 +96,7 @@ "id": "knife_meat_cleaver_plus_two", "copy-from": "knife_meat_cleaver", "name": { "str": "meat cleaver +2", "str_pl": "meat cleavers +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "extend": { "qualities": [ [ "BUTCHER", 30 ] ] } }, { @@ -104,7 +104,7 @@ "id": "knife_carving_plus_one", "copy-from": "knife_carving", "name": { "str": "carving knife +1", "str_pl": "carving knives +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "extend": { "qualities": [ [ "BUTCHER", 24 ] ] } }, { @@ -112,7 +112,7 @@ "id": "knife_carving_plus_two", "copy-from": "knife_carving", "name": { "str": "carving knife +2", "str_pl": "carving knives +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "extend": { "qualities": [ [ "BUTCHER", 26 ] ] } }, { @@ -120,7 +120,7 @@ "id": "butchering_kit_plus_one", "copy-from": "butchering_kit", "name": { "str": "butchering kit +1", "str_pl": "butchering kits +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "extend": { "qualities": [ [ "BUTCHER", 41 ] ] } }, { @@ -128,7 +128,7 @@ "id": "butchering_kit_plus_two", "copy-from": "butchering_kit", "name": { "str": "butchering kit +2", "str_pl": "butchering kits +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "extend": { "qualities": [ [ "BUTCHER", 45 ] ] } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_unarmed.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_unarmed.json index c1ca982ff..a96f478b0 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_unarmed.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_unarmed.json @@ -5,7 +5,7 @@ "copy-from": "cestus", "looks_like": "cestus", "name": { "str": "cestus +1", "str_pl": "cestuses +1" }, - "proportional": { "price": 3.0, "price_postapoc": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "price_postapoc": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, "relative": { "to_hit": 1 } }, { @@ -14,11 +14,11 @@ "copy-from": "cestus", "looks_like": "cestus", "name": { "str": "cestus +2", "str_pl": "cestuses +2" }, - "proportional": { "price": 6.0, "price_postapoc": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "price_postapoc": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, "relative": { "to_hit": 2 } }, { - "type": "GENERIC", + "type": "ARMOR", "id": "flaming_fist", "symbol": "3", "color": "red", @@ -29,9 +29,14 @@ "volume": "500 ml", "weight": "970 g", "to_hit": 2, - "bashing": 12, + "price_postapoc": 124000, "qualities": [ [ "HAMMER", 1 ] ], - "flags": [ "UNARMED_WEAPON", "DURABLE_MELEE", "NONCONDUCTIVE", "FLAMING" ] + "flags": [ "ONLY_ONE", "DURABLE_MELEE", "NONCONDUCTIVE", "FLAMING" ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": { "not": "u_has_weapon" }, "values": [ { "value": "ITEM_DAMAGE_HEAT", "add": 7 } ] } ] + }, + "armor": [ { "encumbrance": 5, "coverage": 20, "covers": [ "hand_r" ] } ], + "melee_damage": { "bash": 2 } }, { "type": "GENERIC", @@ -39,7 +44,10 @@ "copy-from": "flaming_fist", "looks_like": "flaming_fist", "name": { "str": "flaming fist +1", "str_pl": "flaming fists +1" }, - "proportional": { "price": 3.0, "bashing": 1.1, "cutting": 1.1, "weight": 0.9 }, + "proportional": { "price": 3.0, "weight": 0.9, "melee_damage": { "all": 1.1 } }, + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_HEAT", "add": 11 } ] } ] + }, "relative": { "to_hit": 1 } }, { @@ -48,7 +56,10 @@ "copy-from": "flaming_fist", "looks_like": "flaming_fist", "name": { "str": "flaming fist +2", "str_pl": "flaming fists +2" }, - "proportional": { "price": 6.0, "bashing": 1.2, "cutting": 1.2, "weight": 0.8 }, + "proportional": { "price": 6.0, "weight": 0.8, "melee_damage": { "all": 1.2 } }, + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_HEAT", "add": 15 } ] } ] + }, "relative": { "to_hit": 2 } }, { @@ -58,41 +69,16 @@ "color": "light_gray", "name": { "str": "gauntlet of pounding", "str_pl": "gauntlets of pounding" }, "description": "A large gleaming metal gauntlet covered in magical symbols that allows you to land astoundingly powerful blows.", - "material": [ "superalloy" ], + "material": [ "steel", "leather" ], "volume": "1 L", "weight": "981 g", - "bashing": 34, - "to_hit": 3, + "to_hit": 1, + "price_postapoc": 145000, "qualities": [ [ "HAMMER", 2 ] ], "techniques": [ "WBLOCK_1", "BRUTAL" ], - "flags": [ "UNARMED_WEAPON", "DURABLE_MELEE", "NONCONDUCTIVE", "OVERSIZE", "MESSY" ] - }, - { - "id": "shotcestus", - "copy-from": "shotgun_base", - "type": "GUN", - "name": { "str": "shotcestus", "str_pl": "shotcestuses" }, - "description": "A sawn-off double-barrel shotgun mounted on a metal cestus. The lack of a stock to absorb recoil means some strength is required to fire.", - "weight": "1566 g", - "volume": "1500 ml", - "price": 20000, - "bashing": 12, - "material": [ "steel" ], - "techniques": [ "WBLOCK_1", "BRUTAL" ], - "min_strength": 7, - "ranged_damage": { "damage_type": "bullet", "amount": 1 }, - "dispersion": 855, - "durability": 6, - "blackpowder_tolerance": 66, - "clip_size": 2, - "range": -8, - "modes": [ [ "DEFAULT", "single", 1 ], [ "DOUBLE", "double", 2 ] ], - "reload": 200, - "barrel_volume": "500 ml", - "valid_mod_locations": [ [ "mechanism", 1 ] ], - "flags": [ "UNARMED_WEAPON", "DURABLE_MELEE", "NEVER_JAMS", "RELOAD_EJECT", "RELOAD_ONE" ], - "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 2 } } ] + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "OVERSIZE", "MESSY" ], + "armor_data": { "armor": [ { "encumbrance": 8, "coverage": 20, "covers": [ "hand_r" ] } ] }, + "melee_damage": { "bash": 16 } }, { "type": "GENERIC", @@ -104,10 +90,11 @@ "material": [ "stone", "leather", "steel" ], "volume": "500 ml", "weight": "873 g", - "bashing": 13, "to_hit": 1, "qualities": [ [ "HAMMER", 1 ] ], "techniques": [ "WBLOCK_1", "BRUTAL" ], - "flags": [ "UNARMED_WEAPON", "DURABLE_MELEE", "TRADER_AVOID", "MAGIC_FOCUS" ] + "flags": [ "DURABLE_MELEE", "TRADER_AVOID", "MAGIC_FOCUS", "NONCONDUCTIVE" ], + "armor_data": { "armor": [ { "encumbrance": 5, "coverage": 20, "covers": [ "hand_r" ] } ] }, + "melee_damage": { "bash": 13 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_wands.json b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_wands.json index cc0f484bd..83fa1210c 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/enchanted_wands.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/enchanted_wands.json @@ -7,7 +7,6 @@ "volume": "500 ml", "longest_side": "38 cm", "price": "400 USD", - "bashing": 3, "to_hit": 1, "material": [ "wood" ], "symbol": "|", @@ -23,7 +22,8 @@ "max_contains_weight": "20 kg", "item_restriction": [ "small_mana_crystal" ] } - ] + ], + "melee_damage": { "bash": 3 } }, { "abstract": "disp_wand", @@ -33,14 +33,14 @@ "volume": "500 ml", "longest_side": "38 cm", "price": 10000, - "bashing": 3, "to_hit": 1, "material": [ "wood" ], "symbol": "|", "color": "brown", "flags": [ "BELT_CLIP", "NONCONDUCTIVE", "NO_UNLOAD", "NO_RELOAD", "MAGIC_FOCUS" ], "pocket_data": [ { "pocket_type": "MAGAZINE", "holster": true, "ammo_restriction": { "crystallized_mana": 20 } } ], - "charges_per_use": 1 + "charges_per_use": 1, + "melee_damage": { "bash": 3 } }, { "type": "TOOL", diff --git a/data/Mainline_mods/Mods/Magiclysm/items/ethereal_items.json b/data/Mainline_mods/Mods/Magiclysm/items/ethereal_items.json index 38356b284..7339fb8ec 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/ethereal_items.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/ethereal_items.json @@ -1,23 +1,24 @@ [ { "id": "stonefist", - "type": "GENERIC", + "type": "ARMOR", "name": { "str": "pair of magical armored stone gauntlets", "str_pl": "pairs of magical armored stone gauntlets" }, "description": "A magical flexible stonelike substance for protection and attack.", "weight": "1 g", "volume": "250 ml", + "longest_side": "20 cm", "price": 1, "to_hit": 2, - "bashing": 20, - "material": [ "superalloy" ], + "material": [ "concentrated_mana" ], "symbol": "[", "color": "light_gray", + "looks_like": "gauntlets_chitin", "armor_data": { "warmth": 20, "environmental_protection": 10, "armor": [ { - "material": [ { "type": "superalloy", "covered_by_mat": 100, "thickness": 4.0 } ], + "material": [ { "type": "concentrated_mana", "covered_by_mat": 100, "thickness": 3 } ], "encumbrance": 0, "coverage": 100, "covers": [ "arm_l", "arm_r", "hand_l", "hand_r" ] @@ -25,43 +26,37 @@ ] }, "qualities": [ [ "HAMMER", 1 ] ], - "flags": [ "VARSIZE", "STURDY", "UNARMED_WEAPON", "DURABLE_MELEE", "NONCONDUCTIVE", "MAGIC_FOCUS" ], - "techniques": [ "WBLOCK_3" ] + "flags": [ "ONLY_ONE", "STURDY", "DURABLE_MELEE", "NONCONDUCTIVE", "MAGIC_FOCUS" ], + "techniques": [ "WBLOCK_3" ], + "melee_damage": { "bash": 20 } }, { "id": "finger_firelighter", "type": "TOOL", "name": "finger firelighter", - "description": "This is a small flame you can hold in your hand. With a thought, you can cause it to light something on fire.", + "description": "This is a small flame you can hold in your hand. With a thought, you can cause it to light something on fire, or you can throw it to ignite something flammable.", "weight": "1 g", "volume": "1 ml", "price": 0, "symbol": ",", - "color": "yellow", + "color": "red", "use_action": [ { "type": "firestarter", "moves": 20 } ], + "drop_action": { "type": "emit_actor", "emits": [ "emit_tiny_fire" ] }, "flags": [ "TRADER_AVOID", "FIRESTARTER", "LIGHT_8", "FLAMING", "WATER_EXTINGUISH" ] }, { - "id": "armor_stonefist", - "type": "ARMOR", - "category": "armor", - "name": { "str": "pair of magical armored stone gauntlets", "str_pl": "pairs of magical armored stone gauntlets" }, - "description": "A magical flexible stonelike substance for protection and attack.", + "id": "electric_lighter", + "type": "TOOL", + "name": "stable spark", + "description": "Small electric spark, that does not disappear under your force. With a thought, you can cause it to light something on fire, or you can throw it to ignite something flammable.", "weight": "1 g", - "volume": "250 ml", - "price": 1, - "to_hit": 2, - "bashing": 20, - "material": [ "superalloy" ], - "symbol": "[", - "color": "light_gray", - "warmth": 20, - "material_thickness": 4, - "environmental_protection": 10, - "qualities": [ [ "HAMMER", 1 ] ], - "flags": [ "VARSIZE", "STURDY", "UNARMED_WEAPON", "DURABLE_MELEE", "NONCONDUCTIVE", "MAGIC_FOCUS" ], - "techniques": [ "WBLOCK_3" ], - "armor": [ { "encumbrance": 0, "coverage": 100, "covers": [ "arm_l", "arm_r", "hand_l", "hand_r" ] } ] + "volume": "1 ml", + "price": 0, + "symbol": ",", + "color": "yellow", + "use_action": [ { "type": "firestarter", "moves": 20 } ], + "drop_action": { "type": "emit_actor", "emits": [ "emit_tiny_fire" ] }, + "flags": [ "TRADER_AVOID", "FIRESTARTER", "LIGHT_8" ] }, { "id": "magic_lamp", @@ -70,15 +65,15 @@ "name": "magic lamp", "description": "A magical light source that will light up a small area.", "weight": "1 g", - "material": [ "leather", "glass", "magical_material" ], + "material": [ "magical_material" ], "volume": "250 ml", "price": 1, "to_hit": -2, - "bashing": 8, "symbol": ",", "color": "light_green", - "flags": [ "LIGHT_300", "AURA", "SEMITANGIBLE" ], - "armor": [ { "covers": [ "head" ] } ] + "flags": [ "LIGHT_300", "AURA", "SEMITANGIBLE", "UNBREAKABLE", "ALLOWS_NATURAL_ATTACKS" ], + "armor": [ { "covers": [ "head" ] } ], + "melee_damage": { "bash": 8 } }, { "id": "magic_light", @@ -92,7 +87,7 @@ "symbol": ",", "color": "light_green", "material": [ "magical_material" ], - "flags": [ "LIGHT_8", "AURA", "SEMITANGIBLE" ], + "flags": [ "LIGHT_8", "AURA", "SEMITANGIBLE", "UNBREAKABLE", "ALLOWS_NATURAL_ATTACKS" ], "armor": [ { "covers": [ "head" ] } ] }, { @@ -103,17 +98,19 @@ "description": "A lightweight but tough shield crafted entirely of magical ice.", "weight": "1 kg", "volume": "5 L", + "longest_side": "50 cm", "price": 1, "to_hit": 1, - "bashing": 14, - "material": [ "steel" ], + "material": [ "concentrated_mana" ], "symbol": "[", "color": "light_gray", + "looks_like": "gauntlets_chitin", "sided": true, - "material_thickness": 3, + "material_thickness": 4, "techniques": [ "WBLOCK_3" ], "flags": [ "OVERSIZE", "BELTED", "RESTRICT_HANDS", "BLOCK_WHILE_WORN" ], - "armor": [ { "encumbrance": 15, "coverage": 70, "covers": [ "arm_l", "arm_r", "hand_l", "hand_r" ] } ] + "armor": [ { "encumbrance": 10, "coverage": 70, "covers": [ "arm_l", "arm_r", "hand_l", "hand_r" ] } ], + "melee_damage": { "bash": 14 } }, { "id": "ice_gliders", @@ -122,29 +119,33 @@ "description": "A magical slick icy coating on your feet. While quite fast on flat floors, they make it difficult to move on rough terrain.", "weight": "1 g", "volume": "250 ml", + "longest_side": "15 cm", "price": 1, "to_hit": -2, - "bashing": 6, - "material": [ "steel" ], + "material": [ "concentrated_mana" ], "symbol": "[", "color": "brown", + "looks_like": "boots_plate", "warmth": 30, - "material_thickness": 3, + "material_thickness": 0.2, "environmental_protection": 2, "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "MOVE_COST", "add": -5 } ] } ] }, - "flags": [ "OVERSIZE", "VARSIZE", "WATERPROOF", "ROLLER_QUAD", "BELTED" ], - "armor": [ { "encumbrance": 0, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ] + "flags": [ "OVERSIZE", "WATERPROOF", "ROLLER_QUAD", "BELTED" ], + "armor": [ { "encumbrance": 0, "coverage": 100, "covers": [ "foot_l", "foot_r" ] } ], + "melee_damage": { "bash": 6 } }, { "type": "GENERIC", "id": "stormhammer", "name": { "str": "The Stormhammer" }, - "description": "A crackling magical warhammer full of lightning to smite your foes with, and of course, smash things to bits!", + "description": "A crackling magical warhammer full of lightning to smite your foes with, and of course, to smash things to bits!", "weight": "1337 g", + "longest_side": "70 cm", "to_hit": 2, "color": "brown", "symbol": "/", - "material": [ "superalloy" ], + "looks_like": "warhammer", + "material": [ "concentrated_mana" ], "techniques": [ "WBLOCK_2", "BRUTAL", "SWEEP" ], "flags": [ "NONCONDUCTIVE", @@ -157,45 +158,24 @@ "MAGIC_FOCUS" ], "volume": "1250 ml", - "bashing": 30, - "//electric": 15, - "price": 0, - "qualities": [ [ "HAMMER", 1 ] ] - }, - { - "id": "stormfist", - "type": "SPELL", - "name": "Stormfist", - "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat.", - "valid_targets": [ "self" ], - "min_damage": 0, - "max_damage": 0, - "effect": "spawn_item", - "effect_str": "stormglove", - "shape": "blast", - "energy_source": "MANA", - "difficulty": 2, - "max_level": 20, - "base_casting_time": 200, - "base_energy_cost": 100, - "min_duration": 10000, - "max_duration": 100000, - "duration_increment": 2000 + "relic_data": { "passive_effects": [ { "id": "ench_storm_hammer" } ] }, + "qualities": [ [ "HAMMER", 1 ] ], + "melee_damage": { "bash": 30 } }, { - "type": "GENERIC", + "type": "ARMOR", "id": "stormglove", "symbol": "3", "color": "light_gray", + "looks_like": "gauntlets_chitin", "name": { "str": "Stormfist" }, "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat.", - "material": [ "superalloy" ], - "volume": "250 ml", - "weight": "1 g", - "bashing": 10, - "//electric": 15, + "material": [ "concentrated_mana" ], + "volume": "155 ml", + "weight": "300 g", + "longest_side": "25 cm", "flags": [ - "UNARMED_WEAPON", + "ONLY_ONE", "UNBREAKABLE_MELEE", "NONCONDUCTIVE", "LIGHT_5", @@ -203,7 +183,34 @@ "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS" - ] + ], + "relic_data": { "passive_effects": [ { "id": "ench_stormglove" } ] }, + "to_hit": { "grip": "weapon", "length": "hand", "surface": "any", "balance": "neutral" }, + "material_thickness": 0.3, + "armor": [ + { + "material": [ { "type": "concentrated_mana", "covered_by_mat": 100, "thickness": 1.0 } ], + "encumbrance": 2, + "coverage": 100, + "covers": [ "hand_l", "hand_r" ], + "specifically_covers": [ "hand_wrist_l", "hand_wrist_r", "hand_palm_l", "hand_palm_r", "hand_back_l", "hand_back_r" ] + }, + { + "material": [ { "type": "concentrated_mana", "covered_by_mat": 100, "thickness": 1.0 } ], + "encumbrance": 0, + "coverage": 50, + "covers": [ "hand_l", "hand_r" ], + "specifically_covers": [ "hand_fingers_l", "hand_fingers_r" ] + }, + { + "material": [ { "type": "concentrated_mana", "covered_by_mat": 100, "thickness": 1.0 } ], + "encumbrance": 0, + "coverage": 60, + "covers": [ "arm_l", "arm_r" ], + "specifically_covers": [ "arm_lower_l", "arm_lower_r" ] + } + ], + "melee_damage": { "bash": 6 } }, { "id": "tentacle_whip", @@ -213,8 +220,9 @@ "name": "vicious tentacle whip", "description": "A long, writhing, tentacle covered in sharp bonelike blades and spikey protrusions.", "weight": "2460 g", - "volume": "1500 ml", - "material": [ "iron", "leather" ], + "volume": "1975 ml", + "longest_side": "40 cm", + "material": [ "bone", "flesh" ], "techniques": [ "PRECISE", "RAPID", "WBLOCK_2" ], "flags": [ "REACH_ATTACK", @@ -222,14 +230,13 @@ "WHIP", "STURDY", "TRADER_AVOID", - "UNARMED_WEAPON", "UNBREAKABLE_MELEE", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS" ], - "cutting": 30, - "category": "weapons" + "category": "weapons", + "melee_damage": { "cut": 30 } }, { "id": "flarewhip", @@ -240,7 +247,8 @@ "description": "A long whip made of blue-hot magical flames. The heat is horrendous when touching an enemy.", "weight": "60 g", "volume": "1500 ml", - "material": [ ], + "longest_side": "40 cm", + "material": [ "concentrated_mana" ], "techniques": [ "PRECISE", "WIDE", "SWEEP" ], "flags": [ "REACH_ATTACK", @@ -248,7 +256,6 @@ "WHIP", "STURDY", "TRADER_AVOID", - "UNARMED_WEAPON", "UNBREAKABLE_MELEE", "NO_REPAIR", "NO_SALVAGE", @@ -258,12 +265,12 @@ "FLAMING", "FIRE" ], - "cutting": 6, "to_hit": 3, "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_HEAT", "add": 30 } ] } ] }, - "category": "weapons" + "category": "weapons", + "melee_damage": { "cut": 6 } }, { "id": "fleshpouch", @@ -277,7 +284,7 @@ "symbol": "[", "color": "green", "pocket_data": [ { "pocket_type": "CONTAINER", "max_contains_volume": "25 L", "max_contains_weight": "75 kg", "moves": 60 } ], - "material_thickness": 3, + "material_thickness": 0.1, "flags": [ "BELTED", "TRADER_AVOID", @@ -315,9 +322,9 @@ "techniques": [ "WBLOCK_2", "WIDE", "SWEEP", "BRUTAL" ], "weight": "2175 g", "volume": "2500 ml", - "bashing": 16, - "cutting": 36, - "to_hit": 2 + "longest_side": "183 cm", + "to_hit": 2, + "melee_damage": { "bash": 16, "stab": 36 } }, { "id": "druid_recurve", @@ -336,6 +343,7 @@ "NONCONDUCTIVE", "ONLY_ONE", "NO_REPAIR", + "SHEATH_BOW", "NO_SALVAGE", "NO_UNLOAD", "WATERPROOF_GUN", @@ -344,17 +352,111 @@ ], "ammo_effects": [ "NEVER_MISFIRES" ], "skill": "archery", + "ammo": [ "arrow" ], "min_strength": 9, "weight": "540 g", - "bashing": 12, + "longest_side": "140 cm", "to_hit": 1, "reload_noise_volume": 3, "loudness": 6, - "ranged_damage": { "damage_type": "stab", "amount": 29 }, - "range": 12, + "ranged_damage": { "damage_type": "stab", "amount": 9 }, + "clip_size": 1, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "arrow": 1 } } ], + "range": 14, "dispersion": 950, "durability": 6, - "volume": "2500 ml" + "volume": "2500 ml", + "melee_damage": { "bash": 12 } + }, + { + "id": "druid_quiver", + "type": "ARMOR", + "name": { "str": "Woodquiver" }, + "description": "A magically conjured quiver, marvelously light and easy to wear despite the arrows it holds.", + "weight": "260 g", + "volume": "500 ml", + "price": 6500, + "price_postapoc": 1000, + "melee_damage": { "bash": 2 }, + "material": [ "leather" ], + "symbol": "[", + "looks_like": "quiver", + "color": "green", + "sided": true, + "material_thickness": 1, + "pocket_data": [ + { + "ammo_restriction": { "arrow": 60, "bolt": 60, "arrow_orichalcum": 60 }, + "weight_multiplier": 0.33333, + "volume_multiplier": 0.33333, + "moves": 20 + } + ], + "flags": [ "BELTED", "OVERSIZE", "TRADER_AVOID", "WATER_FRIENDLY", "TARDIS", "ONLY_ONE" ], + "armor": [ + { + "encumbrance": [ 3, 5 ], + "coverage": 25, + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_upper_l", "leg_upper_r" ] + } + ] + }, + { + "id": "druid_quiver_plus", + "type": "ARMOR", + "name": { "str": "Woodquiver" }, + "description": "A magically conjured quiver, marvelously light and easy to wear despite the arrows it holds. This is an enhanced version, created by your increased mastery of the spell.", + "weight": "260 g", + "volume": "500 ml", + "price": 6500, + "price_postapoc": 1000, + "melee_damage": { "bash": 2 }, + "material": [ "leather" ], + "symbol": "[", + "looks_like": "quiver", + "color": "green", + "sided": true, + "material_thickness": 1, + "pocket_data": [ + { + "ammo_restriction": { "arrow": 120, "bolt": 120, "arrow_orichalcum": 120 }, + "weight_multiplier": 0.16667, + "volume_multiplier": 0.16667, + "moves": 20 + } + ], + "flags": [ "BELTED", "OVERSIZE", "TRADER_AVOID", "WATER_FRIENDLY", "TARDIS", "ONLY_ONE" ], + "armor": [ + { + "encumbrance": [ 3, 5 ], + "coverage": 25, + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_upper_l", "leg_upper_r" ] + } + ] + }, + { + "id": "druid_naturearrows1", + "type": "AMMO", + "copy-from": "arrow_heavy_fire_hardened_fletched", + "name": { "str": "nature's arrow" }, + "looks_like": "arrow_heavy_fire_hardened_fletched", + "description": "A magically conjured arrow made of twisted wood.", + "damage": { "damage_type": "stab", "armor_penetration": 3 }, + "count": 1, + "effects": [ "RECOVER_8" ] + }, + { + "id": "arrow_druid", + "type": "AMMO", + "copy-from": "arrow_heavy_fire_hardened_fletched", + "name": { "str": "twisted wooden arrow" }, + "looks_like": "arrow_heavy_fire_hardened_fletched", + "description": "A arrow that looks more like it was grown than carved. Despite that, it flies straight and true. It explodes into a mass of entangling vegetation when it hits its target.", + "damage": { "damage_type": "stab", "armor_penetration": 2 }, + "count": 1, + "effects": [ "RECOVER_6", "TANGLE" ] }, { "type": "TOOL", @@ -399,102 +501,45 @@ "symbol": "°", "quench": -10, "healthy": -2, - "description": "A magical powder that can be scattered on growing crops and make them grow faster.", + "description": "A magical powder that can be scattered on growing crops to make them grow faster.", "material": [ "powder" ], - "volume": "2 L", - "charges": 60, + "volume": "33 ml", "category": "chems", "fun": -15 }, - { - "id": "obfuscating_aura", - "type": "ARMOR", - "name": "obfuscating aura", - "description": "An all-encompassing, invisible layer of magic distorts light around your body. Allows you to dodge two extra attacks in a given turn.", - "weight": "1g", - "volume": "1ml", - "price": 3646, - "symbol": "o", - "color": "white", - "material": [ "magical_material" ], - "flags": [ "AURA", "SEMITANGIBLE", "OVERSIZE", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "BONUS_DODGE", "add": 2 } ] } ] }, - "armor": [ - { - "encumbrance": 0, - "coverage": 100, - "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] - } - ] - }, - { - "id": "acid_res_aura", - "type": "ARMOR", - "name": { "str": "acid resistance aura" }, - "description": "An all-encompassing, invisible layer of protection against acid.", - "weight": "1g", - "volume": "1ml", - "price": 3646, - "symbol": "o", - "color": "green", - "material": [ "magical_material" ], - "flags": [ "AURA", "SEMITANGIBLE", "OVERSIZE", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE" ], - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "ARMOR_ACID", "multiply": -0.25 } ] } ] - }, - "armor": [ - { - "encumbrance": 0, - "coverage": 100, - "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] - } - ] - }, - { - "id": "acid_res_aura_greater", - "type": "ARMOR", - "name": "greater acid resistance aura", - "description": "An all-encompassing, invisible layer of protection against acid.", - "weight": "1g", - "volume": "1ml", - "price": 3646, - "symbol": "o", - "color": "green", - "material": [ "magical_material" ], - "flags": [ "AURA", "SEMITANGIBLE", "OVERSIZE", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE" ], - "relic_data": { - "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "ARMOR_ACID", "multiply": -0.6 } ] } ] - }, - "armor": [ - { - "encumbrance": 0, - "coverage": 100, - "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] - } - ] - }, { "id": "armor_frost", "type": "ARMOR", "category": "armor", "name": { "str_sp": "frost armor" }, - "description": "A thin layer of magical ice, covering the entire body.", + "description": "A thin layer of magical ice, covering the entire body. It doesn't provide much armor, instead dealing significant damage to enemies that try to attack you.", "weight": "5000 g", "volume": "5 L", - "material": [ "steel" ], + "material": [ "concentrated_mana" ], "symbol": "[", "color": "light_gray", "warmth": 0, - "material_thickness": 2, + "material_thickness": 0.5, "environmental_protection": 2, - "flags": [ "SEMITANGIBLE", "ONLY_ONE", "OVERSIZE", "TRADER_AVOID", "PERSONAL", "STURDY", "NO_TAKEOFF", "NONCONDUCTIVE" ], + "flags": [ + "SEMITANGIBLE", + "ONLY_ONE", + "OVERSIZE", + "TRADER_AVOID", + "PERSONAL", + "STURDY", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "PADDED" + ], "armor": [ { - "encumbrance": 10, + "encumbrance": 8, "coverage": 100, "covers": [ "head", "mouth", "eyes", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] } - ] + ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "hit_me_effect": [ { "id": "ice_spike" } ] } ] } }, { "id": "aura_stoneskin", @@ -502,18 +547,18 @@ "category": "armor", "name": { "str_sp": "stoneskin coating" }, "description": "A thin layer of shifting, almost fluid living rock, covering the entire body.", - "weight": "10200 g", + "weight": "100 g", "volume": "25 L", "material": [ "stone" ], "symbol": "[", "color": "light_gray", "warmth": 5, - "material_thickness": 2, + "material_thickness": 2.6, "environmental_protection": 2, - "flags": [ "ONLY_ONE", "OVERSIZE", "PERSONAL", "STURDY" ], + "flags": [ "ONLY_ONE", "OVERSIZE", "PERSONAL", "STURDY", "PADDED" ], "armor": [ { - "encumbrance": 20, + "encumbrance": 16, "coverage": 100, "covers": [ "head", "mouth", "eyes", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] } @@ -557,7 +602,17 @@ "color": "blue", "material": [ "magical_material" ], "environmental_protection": 15, - "flags": [ "AURA", "SEMITANGIBLE", "OVERSIZE", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE" ], + "flags": [ + "AURA", + "SEMITANGIBLE", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], "armor": [ { "encumbrance": 0, @@ -567,22 +622,25 @@ ] }, { - "id": "thorns_electric", + "id": "aura_feral", "type": "ARMOR", - "name": { "str": "aura of repelling arc", "str_pl": "auras of repelling arc" }, - "description": "An invisible aura that strikes melee attackers with arcs of electricity.", + "name": "feral aura", + "//": "Needs to remain an item instead of an effect until enchantment mutations from effects are fixed.", + "description": "The manifestation of your rage. It won't disappear until you calm down.", "weight": "1 g", "volume": "1 ml", + "price": 3646, "symbol": "o", - "color": "blue", + "color": "white", "material": [ "magical_material" ], - "flags": [ "AURA", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE", "OVERSIZE" ], - "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "hit_me_effect": [ { "id": "thorns_zap" } ] } ] } + "flags": [ "PERSONAL", "SEMITANGIBLE", "OVERSIZE", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE" ], + "relic_data": { "passive_effects": [ { "id": "ench_aura_feral" } ] } }, { - "id": "aura_feral", + "id": "aura_feral_plus", "type": "ARMOR", - "name": "feral aura", + "name": "enhanced feral aura", + "//": "Needs to remain an item instead of an effect until enchantment mutations from effects are fixed.", "description": "The manifestation of your rage. It won't disappear until you calm down.", "weight": "1 g", "volume": "1 ml", @@ -591,21 +649,7 @@ "color": "white", "material": [ "magical_material" ], "flags": [ "PERSONAL", "SEMITANGIBLE", "OVERSIZE", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE" ], - "relic_data": { - "passive_effects": [ - { - "has": "WORN", - "condition": "ALWAYS", - "values": [ - { "value": "STRENGTH", "add": 3 }, - { "value": "DEXTERITY", "add": 3 }, - { "value": "INTELLIGENCE", "add": -3 }, - { "value": "PERCEPTION", "add": -3 } - ], - "mutations": [ "LIGHTFUR", "CLAWS", "ADRENALINE" ] - } - ] - } + "relic_data": { "passive_effects": [ { "id": "ench_aura_feral_plus" } ] } }, { "id": "flamesword", @@ -632,12 +676,11 @@ "weight": "900 g", "volume": "1250 ml", "longest_side": "100 cm", - "bashing": 12, - "cutting": 2, "to_hit": 2, "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_HEAT", "add": 28 } ] } ] - } + }, + "melee_damage": { "bash": 12, "cut": 2 } }, { "id": "decaying_boneclub", @@ -663,11 +706,11 @@ "weight": "700 g", "volume": "800 ml", "longest_side": "70 cm", - "bashing": 12, "to_hit": 3, "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_BIO", "add": 8 } ] } ] - } + }, + "melee_damage": { "bash": 12 } }, { "id": "impactsling", @@ -693,6 +736,7 @@ "ammo_effects": [ "NEVER_MISFIRES" ], "weight": "86 g", "volume": "250 ml", + "longest_side": "25 cm", "skill": "throw", "price_postapoc": 250, "to_hit": -1, @@ -700,9 +744,9 @@ "range": 20, "dispersion": 135, "durability": 7, - "bashing": 4, "reload_noise_volume": 3, - "loudness": 6 + "loudness": 6, + "melee_damage": { "bash": 4 } }, { "id": "aura_caustic", @@ -714,17 +758,17 @@ "symbol": "o", "color": "blue", "material": [ "magical_material" ], - "flags": [ "AURA", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE", "OVERSIZE" ], - "relic_data": { - "passive_effects": [ - { - "has": "WORN", - "condition": "ALWAYS", - "hit_me_effect": [ { "id": "corrosive_aura_spell" } ], - "values": [ { "value": "ARMOR_ACID", "add": -5 }, { "value": "ITEM_DAMAGE_ACID", "add": 3 } ] - } - ] - } + "flags": [ + "AURA", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "OVERSIZE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { "passive_effects": [ { "id": "ench_aura_caustic" } ] } }, { "id": "aura_werewolf", @@ -779,13 +823,23 @@ "description": "An aura of black and green draconic energy, swirling around your body protecting you and punishing those who strike you.", "weight": "1 g", "volume": "1 ml", - "material": [ "steel" ], + "material": [ "concentrated_mana" ], "symbol": "o", "color": "green", "warmth": 0, - "material_thickness": 2, + "material_thickness": 0.4, "environmental_protection": 2, - "flags": [ "AURA", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE", "OVERSIZE" ], + "flags": [ + "AURA", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "OVERSIZE", + "PADDED", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], "relic_data": { "passive_effects": [ { @@ -805,49 +859,47 @@ }, { "id": "subzero_talons", - "type": "GENERIC", + "type": "ARMOR", "name": { "str_sp": "subzero talons" }, "description": "Claws made from ice, able to freeze on contact while mauling foes. You, however, feel only a slight chill on your hands.", "weight": "100 g", "volume": "100 ml", + "longest_side": "15 cm", "price": 1, - "bashing": 6, - "cutting": 12, - "material": [ "superalloy" ], + "material": [ "concentrated_mana" ], "symbol": "[", "color": "light_gray", "qualities": [ [ "CUT", 2 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 12 ] ], "weapon_category": [ "CLAWS" ], - "flags": [ - "UNARMED_WEAPON", - "UNBREAKABLE_MELEE", - "NONCONDUCTIVE", - "NO_UNWIELD", - "MAGIC_FOCUS", - "TRADER_AVOID", - "NO_REPAIR", - "NO_SALVAGE" - ], + "flags": [ "UNBREAKABLE_MELEE", "NONCONDUCTIVE", "NO_UNWIELD", "MAGIC_FOCUS", "TRADER_AVOID", "NO_REPAIR", "NO_SALVAGE" ], "techniques": [ "WBLOCK_2", "RAPID" ], - "relic_data": { - "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_COLD", "add": 6 } ] } ] - } + "relic_data": { "passive_effects": [ { "id": "ench_subzero_talons" } ] }, + "armor": [ + { + "encumbrance": 5, + "coverage": 20, + "covers": [ "hand_l", "hand_r" ], + "specifically_covers": [ "hand_back_l", "hand_back_r" ] + } + ], + "melee_damage": { "bash": 6, "cut": 12 } }, { "id": "armor_spirit", "type": "ARMOR", "category": "armor", "copy-from": "armor_lightplate", - "name": { "str_sp": "spiritual armor" }, - "description": "A summoned medieval armor. It glows softly and looks sturdy.", - "material": [ "superalloy" ], - "//": "I added a helmet to the summon", + "name": { "str_sp": "mage armor" }, + "description": "A summoned magic armor. It gets shinier and sturdier with each spell level and is affected by your intelligence.", + "weight": "1 g", + "material": [ "concentrated_mana" ], "warmth": 0, - "material_thickness": 4, - "flags": [ "ONLY_ONE", "OVERSIZE", "PERSONAL", "VARSIZE", "STURDY", "NO_REPAIR", "NO_SALVAGE", "LIGHT_2", "TRADER_AVOID" ], + "material_thickness": 0, + "flags": [ "ONLY_ONE", "OVERSIZE", "PERSONAL", "STURDY", "NO_REPAIR", "NO_SALVAGE", "TRADER_AVOID", "PADDED" ], + "relic_data": { "passive_effects": [ { "id": "ench_armor_spirit" } ] }, "armor": [ { - "encumbrance": 5, + "encumbrance": 0, "coverage": 100, "covers": [ "head", "mouth", "eyes", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] } @@ -866,8 +918,7 @@ "price": 0, "price_postapoc": 0, "to_hit": -1, - "bashing": 1, - "material": [ ], + "material": [ "concentrated_mana" ], "symbol": ")", "color": "light_cyan", "pocket_data": [ @@ -883,28 +934,26 @@ "qualities": [ [ "CONTAIN", 1 ], [ "BOIL", 1 ] ], "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_PURE", "add": 3 } ] } ] - } + }, + "melee_damage": { "bash": 1 } }, { "id": "longsword_holy", "type": "GENERIC", "copy-from": "longsword", - "name": { "str": "holy sword" }, - "description": "This is a summoned medieval sword, between the lighter arming sword and later two-handed swords in size. It glows slightly and its edge is exceedingly sharp.", - "material": [ "superalloy" ], - "flags": [ "UNBREAKABLE_MELEE", "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS", "LIGHT_2", "TRADER_AVOID" ], - "bashing": 11, - "cutting": 42, - "relic_data": { - "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_PURE", "add": 10 } ] } ] - } + "name": { "str": "mage blade" }, + "description": "This is a summoned mana sword, between the lighter arming sword and later two-handed swords in size. It glows shiny, and its edge is sharper the more spell level and intelligence you have.", + "material": [ "concentrated_mana" ], + "flags": [ "UNBREAKABLE_MELEE", "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS", "TRADER_AVOID" ], + "relic_data": { "passive_effects": [ { "id": "ench_longsword_holy" } ] }, + "melee_damage": { "bash": 11, "cut": 1 } }, { "id": "aura_auroral_guard", "type": "ARMOR", "category": "armor", "name": { "str_sp": "auroral shell" }, - "description": "A sturdy shell that wraps your body, gaining a sturdy defense.", + "description": "A sturdy shell that wraps your body, granting a sturdy defense.", "weight": "400 g", "volume": "25 L", "material": [ "concentrated_mana" ], @@ -912,27 +961,28 @@ "color": "light_gray", "armor": [ { - "encumbrance": 15, + "encumbrance": 5, "coverage": 100, "covers": [ "head", "mouth", "eyes", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] } ], - "material_thickness": 1.7, + "material_thickness": 3.3, "environmental_protection": 8, - "flags": [ "ONLY_ONE", "OVERSIZE", "PERSONAL", "STURDY" ] + "flags": [ "ONLY_ONE", "OVERSIZE", "PERSONAL", "STURDY", "PADDED" ] }, { "id": "pocket_sun", "type": "TOOL", "category": "tools", "name": { "str": "Pocket Sun" }, - "description": "A small, capsule-shaped field containing a stable portal to the sun.", + "description": "A small, capsule-shaped field containing a stable portal to the sun. You can feel solar energy radiating from it, and it saturates your body.", "weight": "1 g", "volume": "1 ml", "material": [ "sunlight" ], "symbol": "*", "color": "yellow", "qualities": [ [ "BOIL", 2 ], [ "COOK", 3 ] ], + "sub": "fire", "use_action": [ { "target": "pocket_sun_cover", @@ -942,7 +992,7 @@ }, { "type": "firestarter", "moves": 10, "moves_slow": 100 } ], - "flags": [ "LIGHT_700", "TRADER_AVOID" ] + "flags": [ "FIRE", "LIGHT_700", "TRADER_AVOID" ] }, { "id": "pocket_sun_cover", @@ -967,6 +1017,30 @@ ], "flags": [ "TRADER_AVOID" ] }, + { + "id": "alchemist_pocket", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "ethereal pocket" }, + "description": "A small ethereal pocket located under your left arm. You can store your potions here, but it seems it has no real limitations.", + "weight": "1 g", + "volume": "1 ml", + "material": [ "concentrated_mana" ], + "symbol": "x", + "color": "magenta", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "10 L", + "max_contains_weight": "20 kg", + "max_item_length": "50 cm", + "moves": 60, + "weight_multiplier": 0 + } + ], + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "BELTED", "WATERPROOF", "PADDED", "TARDIS" ], + "armor": [ { "covers": [ "arm_l" ], "coverage": 0, "encumbrance": 0 } ] + }, { "type": "GENERIC", "id": "magical_throwing_knife", @@ -974,8 +1048,8 @@ "price": 0, "price_postapoc": 0, "name": { "str": "magical throwing knife", "str_pl": "magical throwing knives" }, - "description": "A thin and flat knife made for throwing. Its ineffective cutting edge and odd shape makes it unsuitable for use as a tool.", - "material": [ "superalloy" ], + "description": "A thin and flat knife made for throwing. Its ineffective cutting edge and odd shape make it unsuitable for use as a tool.", + "material": [ "concentrated_mana" ], "extend": { "flags": [ "UNBREAKABLE_MELEE", "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE", "TRADER_AVOID" ] }, "thrown_damage": [ { "damage_type": "stab", "amount": 20, "armor_penetration": 5 } ] }, @@ -984,7 +1058,7 @@ "id": "magical_throwing_knife_fire", "copy-from": "magical_throwing_knife", "name": { "str": "magical throwing knife", "str_pl": "magical throwing knives" }, - "description": "A thin and flat knife made for throwing, wrapped in ethereal flames. Its ineffective cutting edge and odd shape makes it unsuitable for use as a tool.", + "description": "A thin and flat knife made for throwing, wrapped in ethereal flames. Its ineffective cutting edge and odd shape make it unsuitable for use as a tool.", "thrown_damage": [ { "damage_type": "heat", "amount": 15 }, { "damage_type": "stab", "amount": 5 } ] }, { @@ -992,7 +1066,7 @@ "id": "magical_throwing_knife_cold", "copy-from": "magical_throwing_knife", "name": { "str": "magical throwing knife", "str_pl": "magical throwing knives" }, - "description": "A thin and flat knife made for throwing, emanates cold. Its ineffective cutting edge and odd shape makes it unsuitable for use as a tool.", + "description": "A thin and flat knife made for throwing, emanating frigid cold. Its ineffective cutting edge and odd shape make it unsuitable for use as a tool.", "thrown_damage": [ { "damage_type": "cold", "amount": 15 }, { "damage_type": "stab", "amount": 5 } ] }, { @@ -1000,7 +1074,7 @@ "id": "magical_throwing_knife_cut", "copy-from": "magical_throwing_knife", "name": { "str": "magical throwing knife", "str_pl": "magical throwing knives" }, - "description": "A thin and flat knife with wide edge made for throwing, seems unnaturally sharp. Its ineffective cutting edge and odd shape makes it unsuitable for use as a tool.", + "description": "A thin and flat knife with wide edge made for throwing, seems unnaturally sharp. Its ineffective cutting edge and odd shape make it unsuitable for use as a tool.", "thrown_damage": [ { "damage_type": "cut", "amount": 15, "armor_multiplier": 0.2 }, { "damage_type": "stab", "amount": 5 } ] }, { @@ -1008,7 +1082,7 @@ "id": "magical_throwing_knife_biological", "copy-from": "magical_throwing_knife", "name": { "str": "magical throwing knife", "str_pl": "magical throwing knives" }, - "description": "A thin and flat knife made for throwing, made of porous substance and covered in dark ooze. Its ineffective cutting edge and odd shape makes it unsuitable for use as a tool.", + "description": "A thin and flat knife made for throwing, made of porous substance and covered in dark ooze. Its ineffective cutting edge and odd shape make it unsuitable for use as a tool.", "thrown_damage": [ { "damage_type": "biological", "amount": 15 }, { "damage_type": "stab", "amount": 5 } ] }, { @@ -1016,7 +1090,378 @@ "id": "magical_throwing_knife_pure_special", "copy-from": "magical_throwing_knife", "name": { "str": "magical throwing knife", "str_pl": "magical throwing knives" }, - "description": "A transparent blade seems to radiate intent to be thrown. Its ineffective cutting edge and odd shape makes it unsuitable for use as a tool.", + "description": "A transparent blade that seems to radiate intent to be thrown. Its ineffective cutting edge and odd shape make it unsuitable for use as a tool.", "thrown_damage": [ { "damage_type": "pure", "amount": 40 } ] + }, + { + "id": "eshaper_hammer", + "copy-from": "hammer", + "looks_like": "hammer", + "type": "TOOL", + "name": { "str": "earthshaper's hammer" }, + "description": "Shaped with your own magic, this tool has the same abilities as the common hammer.", + "material": [ "stone" ], + "symbol": ";", + "color": "dark_gray", + "use_action": { + "type": "transform", + "need_wielding": true, + "target": "eshaper_pickaxe", + "menu_text": "Transform", + "msg": "Your hammer transforms into a pickaxe!" + }, + "extend": { "flags": [ "TRADER_AVOID", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS" ] } + }, + { + "id": "eshaper_pickaxe", + "copy-from": "pickaxe", + "looks_like": "pickaxe", + "type": "TOOL", + "name": { "str": "earthshaper's pickaxe" }, + "description": "Shaped with your own magic, this tool has the same abilities as the common pickaxe.", + "material": [ "stone" ], + "symbol": "/", + "color": "dark_gray", + "use_action": [ + { + "type": "transform", + "need_wielding": true, + "target": "eshaper_ax", + "menu_text": "Transform", + "msg": "Your pickaxe transforms into an ax!" + }, + "PICKAXE" + ], + "extend": { "flags": [ "TRADER_AVOID", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS" ] } + }, + { + "id": "eshaper_ax", + "copy-from": "ax", + "looks_like": "ax", + "type": "TOOL", + "name": { "str": "earthshaper's axe" }, + "description": "Shaped with your own magic, this tool has the same abilities as the common axe.", + "material": [ "stone" ], + "symbol": "/", + "color": "dark_gray", + "use_action": { + "type": "transform", + "need_wielding": true, + "target": "eshaper_knife", + "menu_text": "Transform", + "msg": "Your ax transforms into a knife!" + }, + "extend": { "flags": [ "TRADER_AVOID", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS" ] }, + "melee_damage": { "bash": 11, "cut": 7 } + }, + { + "id": "eshaper_knife", + "copy-from": "knife_hunting", + "looks_like": "knife_hunting", + "type": "TOOL", + "category": "weapons", + "name": { "str": "earthshaper's knife", "str_pl": "earthshaper's knives" }, + "description": "Shaped with your own magic, this tool has the same abilities as the common knife.", + "material": [ "stone" ], + "repairs_with": [ ], + "symbol": "/", + "color": "dark_gray", + "use_action": { + "type": "transform", + "need_wielding": true, + "target": "eshaper_shovel", + "menu_text": "Transform", + "msg": "Your knife transforms into a shovel!" + }, + "extend": { "flags": [ "TRADER_AVOID", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS" ] } + }, + { + "id": "eshaper_shovel", + "copy-from": "shovel", + "looks_like": "shovel", + "type": "TOOL", + "name": { "str": "earthshaper's shovel" }, + "description": "Shaped with your own magic, this tool has the same abilities as the common shovel.", + "material": [ "stone" ], + "symbol": "/", + "color": "dark_gray", + "use_action": { + "type": "transform", + "need_wielding": true, + "target": "eshaper_hammer", + "menu_text": "Transform", + "msg": "Your shovel transforms into a hammer!" + }, + "extend": { "flags": [ "TRADER_AVOID", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS" ] } + }, + { + "id": "flask_ethereal_rebreather", + "name": { "str_sp": "air bubble" }, + "description": "Now you can breath under water, like a fish.", + "type": "TOOL_ARMOR", + "category": "clothing", + "weight": "0 g", + "material": [ "concentrated_mana" ], + "environmental_protection": 25, + "volume": "1 ml", + "symbol": "0", + "color": "white", + "armor": [ { "encumbrance": 0, "coverage": 75, "covers": [ "head", "mouth", "eyes" ] } ], + "flags": [ + "WATER_FRIENDLY", + "SEMITANGIBLE", + "ONLY_ONE", + "OVERSIZE", + "AURA", + "ZERO_WEIGHT", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "TRADER_AVOID", + "REBREATHER", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ] + }, + { + "id": "thought_shield_item", + "name": { "str_sp": "thought shields" }, + "description": "These two tiny shields on your temples should protect your mind from outside influences", + "type": "TOOL_ARMOR", + "category": "clothing", + "weight": "0 g", + "material": [ "concentrated_mana" ], + "environmental_protection": 1, + "volume": "1 ml", + "symbol": "0", + "color": "white", + "armor": [ { "encumbrance": 0, "coverage": 75, "covers": [ "head", "mouth", "eyes" ] } ], + "flags": [ + "WATER_FRIENDLY", + "SEMITANGIBLE", + "ONLY_ONE", + "OVERSIZE", + "AURA", + "ZERO_WEIGHT", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "TRADER_AVOID", + "PSYSHIELD_PARTIAL", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ] + }, + { + "id": "thought_shield_plus_item", + "name": { "str_sp": "thought suit" }, + "description": "The tiny shields all over your body should protect your mind from outside influences and your body from being moved by outside magic", + "type": "TOOL_ARMOR", + "category": "clothing", + "weight": "0 g", + "material": [ "concentrated_mana" ], + "environmental_protection": 1, + "volume": "1 ml", + "symbol": "0", + "color": "white", + "armor": [ + { + "encumbrance": 0, + "coverage": 75, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ], + "flags": [ + "WATER_FRIENDLY", + "SEMITANGIBLE", + "ONLY_ONE", + "OVERSIZE", + "AURA", + "ZERO_WEIGHT", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "TRADER_AVOID", + "PSYSHIELD_PARTIAL", + "PORTAL_PROOF", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ] + }, + { + "type": "AMMO", + "id": "elastic_potential_energy", + "category": "spare_parts", + "price": 12000, + "price_postapoc": 2, + "name": { "str_sp": "elastic potential energy" }, + "symbol": "=", + "color": "yellow", + "description": "Some free-floating elastic potential energy.", + "flags": [ "TRADER_AVOID", "ZERO_WEIGHT" ], + "material": [ "battery" ], + "effects": [ "COOKOFF" ], + "volume": "0 ml", + "ammo_type": "elastic_potential_energy", + "count": 100 + }, + { + "id": "druid_bandages", + "type": "GENERIC", + "category": "drugs", + "name": { "str": "Vegetative Poultice" }, + "looks_like": "leaves", + "description": "A mixture of bark, moss, and leaves, glowing softly with verdant energy.", + "weight": "50 g", + "volume": "60 ml", + "price": 1, + "price_postapoc": 1, + "material": [ "wood" ], + "symbol": "!", + "color": "green", + "flags": [ "TRADER_AVOID", "SINGLE_USE" ], + "use_action": { "type": "heal", "bandages_power": 3, "bleed": 12, "move_cost": 300 } + }, + { + "id": "technomancer_summoned_radio", + "type": "TOOL", + "name": { "str": "aetherspeaker (speaking)", "str_pl": "aetherspeakers (speaking)" }, + "description": "A magically-summoned aetherspeaker, capable of communicating long-distance with other aetherspeakers or conventional radios. With a command word, it may instead scan for radio signals.", + "weight": "295 g", + "volume": "125 ml", + "to_hit": -1, + "material": [ "concentrated_mana" ], + "symbol": ";", + "color": "cyan", + "flags": [ "TWO_WAY_RADIO", "ONLY_ONE", "TRADER_AVOID", "NO_DROP" ], + "use_action": [ { "type": "transform", "target": "technomancer_summoned_radio_on", "menu_text": "Turn to scanning mode" } ], + "melee_damage": { "bash": 4 } + }, + { + "id": "technomancer_summoned_radio_on", + "copy-from": "technomancer_summoned_radio", + "type": "TOOL", + "name": { "str": "aetherspeaker (scanning)", "str_pl": "aetherspeakers (scanning)" }, + "description": "An aetherspeaker tuned to listen for radio signals from the surrounding area. With a command word, it may change frequency or switch to communicating with other aetherspeakers or radios.", + "use_action": [ "RADIO_ON", { "type": "transform", "target": "technomancer_summoned_radio", "menu_text": "Turn to speaking mode" } ], + "tick_action": [ "RADIO_TICK" ], + "flags": [ "TRADER_AVOID", "ONLY_ONE", "NO_DROP" ] + }, + { + "id": "technomancer_summoned_ups", + "type": "MAGAZINE", + "category": "tool_magazine", + "name": { "str": "technomantic power supply", "str_pl": "technomantic power supplies" }, + "description": "A smoothly-curved conglomeration of mana, humming softly as it provides power.", + "weight": "125 g", + "volume": "65 ml", + "material": [ "concentrated_mana" ], + "symbol": "=", + "color": "yellow", + "ammo_type": [ "battery" ], + "capacity": 1250, + "looks_like": "spiral_stone", + "flags": [ "TRADER_AVOID", "ONLY_ONE", "NO_DROP", "NO_SALVAGE", "NO_UNLOAD", "NO_RELOAD", "IS_UPS" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1 } } ], + "relic_data": { "charge_info": { "recharge_type": "periodic", "time": "2 s", "regenerate_ammo": true } }, + "//": "Recharge time is 2 seconds due to bug #48019, making it actually 1 second. Reduce to 1 second if that ever gets fixed." + }, + { + "id": "technomancer_welder", + "type": "TOOL", + "name": { "str_sp": "voltaic touch" }, + "description": "Your hands can spark with electricity powerful enough to heat metal to searing temperatures and weld it together. You can also zap the undead with it.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "symbol": "$", + "color": "red", + "material": [ "concentrated_mana" ], + "flags": [ + "UNBREAKABLE", + "ZERO_WEIGHT", + "ALLOWS_NATURAL_ATTACKS", + "INTEGRATED", + "PADDED", + "PERSONAL", + "SEMITANGIBLE", + "ONLY_ONE", + "NO_DROP" + ], + "qualities": [ [ "WELD", 2 ] ], + "to_hit": { "grip": "weapon", "length": "hand", "surface": "any", "balance": "neutral" }, + "melee_damage": { "bash": 2 }, + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_ELEC", "add": 6 } ] } ] + } + }, + { + "type": "GENERIC", + "id": "druid_bramble_spear_item", + "name": { "str": "spear of brambles", "str_pl": "spears of brambles" }, + "looks_like": "spear_wood", + "description": "A twisted wooden spear whose branches twine together into a vicious point sticky with sap.", + "weight": "1200 g", + "price_postapoc": 1, + "color": "green", + "symbol": "/", + "material": [ "wood" ], + "techniques": [ "WBLOCK_1", "IMPALE" ], + "volume": "1750 ml", + "longest_side": "180 cm", + "melee_damage": { "bash": 5, "stab": 26 }, + "to_hit": { "grip": "weapon", "length": "long", "surface": "point", "balance": "good" }, + "flags": [ "SPEAR", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "UNBREAKABLE_MELEE", "NO_REPAIR", "NO_SALVAGE" ], + "weapon_category": [ "POLEARMS", "SPEARS" ], + "price": 1, + "qualities": [ [ "COOK", 1 ] ], + "relic_data": { "passive_effects": [ { "has": "WIELD", "hit_you_effect": [ { "id": "bramble_spear_slow", "hit_self": false } ] } ] } + }, + { + "id": "druid_thorn_skin_item", + "//": " 'Tornskin' but working right. Values copied from the Bark mutation.", + "type": "ARMOR", + "name": "Thornskin", + "description": "Your skin is bark-like and covered in thorns.", + "weight": "6 kg", + "volume": "7500 ml", + "price": 0, + "material": [ "wood" ], + "symbol": "x", + "color": "brown", + "flags": [ + "PERSONAL", + "OVERSIZE", + "ONLY_ONE", + "PADDED", + "INTEGRATED", + "ALLOWS_NATURAL_ATTACKS", + "TRADER_AVOID", + "NO_REPAIR", + "NO_TAKEOFF", + "NONCONDUCTIVE" + ], + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ALWAYS", + "hit_me_effect": [ { "id": "druid_thorn_skin_attacked", "hit_self": false, "once_in": 2 } ], + "values": [ + { "value": "DEXTERITY", "add": -1 }, + { "value": "STRENGTH", "add": 1 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 20 }, + { "value": "ARMOR_HEAT", "multiply": 0.6 }, + { "value": "ITEM_DAMAGE_STAB", "add": 3 } + ] + } + ] + }, + "armor": [ + { + "encumbrance": 8, + "coverage": 100, + "material": [ { "type": "wood", "covered_by_mat": 100, "thickness": 4 }, { "type": "wood", "covered_by_mat": 75, "thickness": 6 } ], + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/forage.json b/data/Mainline_mods/Mods/Magiclysm/items/forage.json new file mode 100644 index 000000000..face5a349 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/items/forage.json @@ -0,0 +1,97 @@ +[ + { + "id": "forage_spring", + "type": "item_group", + "subtype": "distribution", + "copy-from": "forage_spring", + "extend": { + "entries": [ + { "item": "whiskflower", "prob": 30, "count-min": 1, "count-max": 2 }, + { "item": "olieribos", "prob": 10, "count-min": 1, "count-max": 3 }, + { "item": "kampuch", "prob": 11, "count-min": 1, "count-max": 4 }, + { "item": "wood_barnacle", "prob": 2, "count-min": 1, "count-max": 4 }, + { "item": "horn_moss_capsule", "prob": 1, "count-min": 1, "count-max": 1 }, + { "item": "dragon_nail", "prob": 6, "count-min": 1, "count-max": 4 }, + { "item": "moly_tuber", "prob": 6, "count-min": 1, "count-max": 2 }, + { "item": "fern_flower", "prob": 2, "count-min": 1, "count-max": 1 }, + { "item": "glowing_mushroom", "prob": 4, "count-min": 1, "count-max": 2 } + ] + } + }, + { + "id": "forage_summer", + "type": "item_group", + "subtype": "distribution", + "copy-from": "forage_summer", + "extend": { + "entries": [ + { "item": "whiskflower", "prob": 30, "count-min": 1, "count-max": 2 }, + { "item": "olieribos", "prob": 10, "count-min": 1, "count-max": 3 }, + { "item": "kampuch", "prob": 11, "count-min": 1, "count-max": 4 }, + { "item": "wood_barnacle", "prob": 2, "count-min": 1, "count-max": 4 }, + { "item": "dragon_nail", "prob": 6, "count-min": 1, "count-max": 4 }, + { "item": "moly_tuber", "prob": 6, "count-min": 1, "count-max": 2 }, + { "item": "fern_flower", "prob": 2, "count-min": 1, "count-max": 1 }, + { "item": "glowing_mushroom", "prob": 4, "count-min": 1, "count-max": 2 }, + { "item": "funnelcap_chunk", "prob": 7, "count-min": 10, "count-max": 25 } + ] + } + }, + { + "id": "forage_fall", + "type": "item_group", + "subtype": "distribution", + "copy-from": "forage_fall", + "extend": { + "entries": [ + { "item": "whiskflower", "prob": 30, "count-min": 1, "count-max": 2 }, + { "item": "olieribos", "prob": 10, "count-min": 1, "count-max": 3 }, + { "item": "kampuch", "prob": 11, "count-min": 1, "count-max": 4 }, + { "item": "wood_barnacle", "prob": 2, "count-min": 1, "count-max": 4 }, + { "item": "dragon_nail", "prob": 6, "count-min": 1, "count-max": 4 }, + { "item": "moly_tuber", "prob": 6, "count-min": 1, "count-max": 2 }, + { "item": "fern_flower", "prob": 2, "count-min": 1, "count-max": 1 }, + { "item": "glowing_mushroom", "prob": 4, "count-min": 1, "count-max": 2 }, + { "item": "funnelcap_chunk", "prob": 7, "count-min": 10, "count-max": 25 } + ] + } + }, + { + "id": "foraging_faction_camp_spring", + "type": "item_group", + "copy-from": "foraging_faction_camp_spring", + "subtype": "distribution", + "extend": { + "entries": [ + { "item": "golden_reed_stalk", "count": [ 1, 4 ], "prob": 1 }, + { "item": "platonic_flower", "count": [ 1, 1 ], "prob": 4 } + ] + } + }, + { + "id": "foraging_faction_camp_summer", + "type": "item_group", + "copy-from": "foraging_faction_camp_summer", + "subtype": "distribution", + "extend": { + "entries": [ + { "item": "golden_reed_stalk", "count": [ 1, 4 ], "prob": 1 }, + { "item": "platonic_flower", "count": [ 1, 1 ], "prob": 4 }, + { "item": "sojourners_flower", "count": [ 1, 5 ], "prob": 2 } + ] + } + }, + { + "id": "foraging_faction_camp_fall", + "type": "item_group", + "copy-from": "foraging_faction_camp_fall", + "subtype": "distribution", + "extend": { + "entries": [ + { "item": "golden_reed_stalk", "count": [ 1, 4 ], "prob": 1 }, + { "item": "platonic_flower", "count": [ 1, 1 ], "prob": 4 }, + { "item": "sojourners_flower", "count": [ 1, 5 ], "prob": 2 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/fuel.json b/data/Mainline_mods/Mods/Magiclysm/items/fuel.json index 516bbe219..a4d471935 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/fuel.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/fuel.json @@ -46,6 +46,7 @@ "description": "Blood that is filled to the brim with arcane energy. It releases a faint blue glow.", "weight": "265 g", "volume": "250 ml", + "charges": 1, "price": 0, "symbol": "~", "color": "light_blue", diff --git a/data/Mainline_mods/Mods/Magiclysm/items/furniture.json b/data/Mainline_mods/Mods/Magiclysm/items/furniture.json new file mode 100644 index 000000000..7506a7415 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/items/furniture.json @@ -0,0 +1,48 @@ +[ + { + "type": "GENERIC", + "id": "everburning_torch_candelabra", + "name": { "str": "everburning torch candelabra" }, + "description": "A tall, homemade candelabra that holds multiple everburning torches. You could set it up somewhere to kindle the torches and provide light.", + "symbol": "Y", + "color": "brown", + "flags": [ "NO_SALVAGE", "FRAGILE_MELEE" ], + "price": 0, + "price_postapoc": "1000 USD", + "longest_side": "150 cm", + "volume": "200 L", + "weight": "48 kg", + "material": [ "wood" ], + "to_hit": -3 + }, + { + "id": "everburning_sconce", + "type": "GENERIC", + "name": { "str": "everburning sconce" }, + "description": "This is a high quality engraved wooden torch, placed into a wood and metal sconce and ready to be attached to a wall. It will burn forever with a smokeless light. Now you can light your wizard's ritual room in the traditional fashion.", + "weight": "1531 g", + "volume": "2250 ml", + "price": 0, + "price_postapoc": "150 USD", + "longest_side": "60 cm", + "to_hit": 1, + "material": [ "wood" ], + "symbol": "/", + "color": "brown", + "melee_damage": { "bash": 5 } + }, + { + "id": "orrery_item", + "type": "GENERIC", + "name": { "str": "orrery", "str_pl": "orreries" }, + "description": "This is a beautiful, non-scale model of the solar system. A complex series of gears allows the relative motions of the planets to be studied at the turn of a crank. You could set this up somewhere to decorate.", + "weight": "15000 g", + "volume": "20000 ml", + "longest_side": "80 cm", + "to_hit": 1, + "material": [ "steel", "wood" ], + "symbol": "@", + "color": "brown", + "melee_damage": { "bash": 8 } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/generic.json b/data/Mainline_mods/Mods/Magiclysm/items/generic.json index 66d080c95..2970af99c 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/generic.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/generic.json @@ -32,5 +32,19 @@ "ammo_type": "thread", "count": 10, "stack_size": 200 + }, + { + "type": "GENERIC", + "id": "triffid_spellbook", + "name": { "str": "chunk of plant matter", "str_pl": "chunks of plant matter" }, + "description": "This strange plant feels slightly oily and smells odd. The smell seems to change slowly, from loamy earth to a rich vegetal smell to something acrid that burns your nose to an herbal scent, with no discernable pattern. You're not sure what this is.", + "//": "As the id indicates, this is a triffid spellbook, encoding information using scents and chemical triggers. There's essentially zero chance of the survivor figuring out how to read it.", + "weight": "1219 g", + "volume": "2500 ml", + "color": "green", + "symbol": "%", + "price_postapoc": 0, + "material": [ "veggy" ], + "flags": [ "TRADER_AVOID" ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/herbs_and_flowers.json b/data/Mainline_mods/Mods/Magiclysm/items/herbs_and_flowers.json index f7cfc45a5..d1dfe04e2 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/herbs_and_flowers.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/herbs_and_flowers.json @@ -9,7 +9,7 @@ "comestible_type": "FOOD", "flags": [ "NO_AUTO_CONSUME", "NONCONDUCTIVE" ], "symbol": "%", - "calories": 200, + "calories": 100, "description": "A fractal corolla winds inward in mathematical harmony, reflecting beauty in its ideal form.", "price_postapoc": 600, "material": "veggy", @@ -51,7 +51,7 @@ "type": "GENERIC", "id": "olieribos", "name": { "str": "olieribos sheaf", "str_pl": "olieribos sheaves" }, - "description": "Dark colored leaves and bitter roots, firmly tied together in a small sheaf. It's not toxic, but a lot of people died, trying to taste it, due the airway obstruction.", + "description": "Dark colored leaves and bitter roots, firmly tied together in a small sheaf. It's not toxic, but many people have died trying to taste it, due to the airway obstruction.", "//": "armor' and 'summon' related", "price_postapoc": 400, "flags": [ "NONCONDUCTIVE" ], @@ -104,7 +104,7 @@ "//": "another high level component, 'mana' related", "color": "yellow", "symbol": "%", - "calories": 631, + "calories": 63, "comestible_type": "FOOD", "looks_like": "wheat", "description": "Stalks cut from a golden reed. They have a strong, spiced aroma.", @@ -119,7 +119,7 @@ "//": "'duration' and 'sustaining'", "symbol": "o", "color": "brown", - "calories": 645, + "calories": 64, "comestible_type": "FOOD", "looks_like": "egg", "description": "Heavy wooden shells surrounding a diminutive white fruit.", @@ -134,7 +134,7 @@ "//": "'range', 'area', 'aoe'", "color": "brown", "symbol": "o", - "calories": 285, + "calories": 85, "comestible_type": "FOOD", "looks_like": "egg", "description": "Knife sharp thorns from a dragonail bush. Eating them raw would be a dangerous challenge.", @@ -149,7 +149,7 @@ "//": "breaks magic enchantments (whatever that means), used to make magic armor, maybe 'breaks' related (like increasing the damage/armor penetration abilities)", "color": "blue", "symbol": "%", - "calories": 98, + "calories": 67, "comestible_type": "FOOD", "description": "The black root of a moly plant, extracted from the ground through great effort. Rumored to grant protection to those who consume it.", "price_postapoc": 300, @@ -163,7 +163,7 @@ "//": "stat bonuses", "color": "blue", "symbol": "%", - "calories": 78, + "calories": 33, "use_action": { "type": "cast_spell", "spell_id": "flower_fern_spell", "no_fail": true, "level": 0 }, "comestible_type": "FOOD", "description": "A small flower cut from a fern, it has a faint honeyed aroma. Believed to bring good luck to whoever finds it.", @@ -178,7 +178,7 @@ "//": "low and middle level spell component, same as mana crystals, weak 'mana' related", "color": "blue", "symbol": "%", - "calories": 85, + "calories": 4, "use_action": { "type": "cast_spell", "spell_id": "funnelcap_spell", "no_fail": true, "level": 0 }, "comestible_type": "FOOD", "description": "Large chunks of funnelcap meat, still leaking fine amounts of clear sap.", diff --git a/data/Mainline_mods/Mods/Magiclysm/items/item_enchants.json b/data/Mainline_mods/Mods/Magiclysm/items/item_enchants.json new file mode 100644 index 000000000..34c3e55eb --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/items/item_enchants.json @@ -0,0 +1,190 @@ +[ + { + "type": "enchantment", + "id": "ench_longsword_holy", + "has": "WIELD", + "condition": "ALWAYS", + "name": { "str": "Magic blade" }, + "description": "The damage done and light emitted by this sword increase with intelligence.", + "values": [ + { + "value": "ITEM_DAMAGE_CUT", + "add": { + "math": [ + "(u_val('intelligence') * 2) + (u_val('spell_level', 'spell: holy_blade') + u_val('spell_level', 'spell: holy_blade_plus'))" + ] + } + }, + { + "value": "LUMINATION", + "add": { + "math": [ + "((u_val('intelligence') * 2) + (u_val('spell_level', 'spell: holy_blade') + u_val('spell_level', 'spell: holy_blade_plus'))) * 3" + ] + } + } + ] + }, + { + "type": "enchantment", + "id": "ench_armor_spirit", + "has": "WORN", + "condition": "ALWAYS", + "name": { "str": "Magic armor" }, + "description": "This magical armor improves with your intelligence and the spell's level.", + "values": [ + { + "value": "ARMOR_BASH", + "add": { + "math": [ + "((u_val('intelligence') * 1.5) + (u_val('spell_level', 'spell: spirit_armor') + u_val('spell_level', 'spell: spirit_armor_plus')) * 0.5) * -1" + ] + } + }, + { + "value": "ARMOR_CUT", + "add": { + "math": [ + "((u_val('intelligence') * 1.5) + (u_val('spell_level', 'spell: spirit_armor') + u_val('spell_level', 'spell: spirit_armor_plus')) * 0.5) * -1" + ] + } + }, + { + "value": "ARMOR_STAB", + "add": { + "math": [ + "((u_val('intelligence') * 1.5) + (u_val('spell_level', 'spell: spirit_armor') + u_val('spell_level', 'spell: spirit_armor_plus')) * 0.5) * -1" + ] + } + }, + { + "value": "ARMOR_BULLET", + "add": { + "math": [ + "((u_val('intelligence') * 1.5) + (u_val('spell_level', 'spell: spirit_armor') + u_val('spell_level', 'spell: spirit_armor_plus')) * 0.5) * -1" + ] + } + }, + { + "value": "LUMINATION", + "add": { + "math": [ + "((u_val('intelligence') * 1.5) + (u_val('spell_level', 'spell: spirit_armor') + u_val('spell_level', 'spell: spirit_armor_plus')) * 0.5) * 3" + ] + } + } + ] + }, + { + "type": "enchantment", + "id": "ench_storm_hammer", + "has": "WIELD", + "condition": "ALWAYS", + "name": { "str": "Storm hammer" }, + "description": "A magical hammer whose damage increases with the spell.", + "values": [ + { + "value": "ITEM_DAMAGE_ELEC", + "add": { + "math": [ "(5 + (1 * u_val('spell_level', 'spell: storm_hammer')) + (1 * u_val('spell_level', 'spell: storm_hammer_plus')))" ] + } + } + ] + }, + { + "type": "enchantment", + "id": "ench_stormglove", + "has": "WIELD", + "condition": { "not": "u_has_weapon" }, + "name": { "str": "Stormglove" }, + "description": "A coating of lighting on your hand and lower arm.", + "hit_you_effect": [ { "id": "stormshaper_stormglove_zap" } ] + }, + { + "type": "enchantment", + "id": "ench_aura_caustic", + "has": "WORN", + "condition": "ALWAYS", + "name": { "str": "Caustic Aura" }, + "description": "A thin shell of acid hangs in the air around you.", + "hit_me_effect": [ { "id": "corrosive_aura_spell" } ], + "values": [ + { + "value": "ARMOR_ACID", + "add": { + "math": [ + "(-2 - (0.5 * u_val('spell_level', 'spell: biomancer_caustic_aura')) - (0.5 * u_val('spell_level', 'spell: biomancer_caustic_aura_plus')))" + ] + } + }, + { + "value": "ITEM_DAMAGE_ACID", + "add": { + "math": [ + "(1 + (0.25 * u_val('spell_level', 'spell: biomancer_caustic_aura')) + (0.25 * u_val('spell_level', 'spell: biomancer_caustic_aura_plus')))" + ] + } + } + ] + }, + { + "type": "enchantment", + "id": "ench_subzero_talons", + "has": "WORN", + "condition": "ALWAYS", + "name": { "str": "Subzero Talons" }, + "description": "Icy talons to freeze your enemies.", + "values": [ + { + "value": "ITEM_DAMAGE_COLD", + "add": { "math": [ "(3 + (0.5 * u_val('spell_level', 'spell: summon_subzero_talons')))" ] } + } + ] + }, + { + "type": "enchantment", + "id": "ench_aura_feral", + "name": { "str": "Feral Aura" }, + "description": "Unleashing the rage within.", + "has": "HELD", + "condition": "ALWAYS", + "values": [ + { "value": "STRENGTH", "add": { "math": [ "(1 + (u_val('spell_level', 'spell: druid_feralform') / 5 ))" ] } }, + { "value": "DEXTERITY", "add": { "math": [ "(1 + (u_val('spell_level', 'spell: druid_feralform') / 5 ))" ] } }, + { + "value": "INTELLIGENCE", + "add": { "math": [ "(-3 + (u_val('spell_level', 'spell: druid_feralform') / 7 ))" ] } + }, + { "value": "PERCEPTION", "add": { "math": [ "(-3 + (u_val('spell_level', 'spell: druid_feralform') / 7 ))" ] } } + ], + "mutations": [ "LIGHTFUR", "CLAWS", "ADRENALINE", "CANINE_EARS", "PERSISTENCE_HUNTER", "SNARL", "CARNIVORE", "SMELLY2", "DEFORMED2" ] + }, + { + "type": "enchantment", + "id": "ench_aura_feral_plus", + "name": { "str": "Enhanced Feral Aura" }, + "description": "Unleashing the rage within.", + "has": "HELD", + "condition": "ALWAYS", + "values": [ + { "value": "STRENGTH", "add": { "math": [ "(3 + (u_val('spell_level', 'spell: druid_feralform_plus') / 5 ))" ] } }, + { + "value": "DEXTERITY", + "add": { "math": [ "(3 + (u_val('spell_level', 'spell: druid_feralform_plus') / 5 ))" ] } + }, + { "value": "PERCEPTION", "add": { "math": [ "(0 + (u_val('spell_level', 'spell: druid_feralform') / 7 ))" ] } } + ], + "mutations": [ + "FUR", + "CLAWS_RAT", + "ADRENALINE", + "FANGS", + "CANINE_EARS", + "PERSISTENCE_HUNTER", + "SNARL", + "CARNIVORE", + "SMELLY2", + "DEFORMED3" + ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/mana_crystals.json b/data/Mainline_mods/Mods/Magiclysm/items/mana_crystals.json index 157b2d990..b136ffd2a 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/mana_crystals.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/mana_crystals.json @@ -14,11 +14,12 @@ "symbol": "=", "color": "yellow", "description": "Some crystallized mana. This can be reloaded into rechargeable mana crystals, but can never be unloaded.", - "flags": [ "TRADER_AVOID", "ZERO_WEIGHT" ], + "flags": [ "TRADER_AVOID" ], + "weight": "1 mg", "volume": "100 ml", "ammo_type": "crystallized_mana", "material": [ "crystallized_mana" ], - "count": 100, + "count": 10, "looks_like": "battery" }, { diff --git a/data/Mainline_mods/Mods/Magiclysm/items/melee.json b/data/Mainline_mods/Mods/Magiclysm/items/melee.json index 8c6c2a117..7b1ecf224 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/melee.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/melee.json @@ -9,37 +9,35 @@ "color": "light_gray", "material": [ "orichalcum_metal", "wood", "gold" ], "techniques": [ "WBLOCK_2", "BRUTAL" ], - "volume": "3750 ml", - "bashing": 45, - "price": 200000 + "volume": "2500 ml", + "price": 200000, + "melee_damage": { "bash": 45, "stab": 23 } }, { "id": "gungnir", "copy-from": "spear_steel", "type": "GENERIC", "name": { "str": "Gungnir" }, - "description": "Gungnir, the spear of Odin. It is rumored to be the perfect spear, perfectly hitting any target regardless of the wielder's strength or skill. If feels like Odin's protecting you.", + "description": "Gungnir, the spear of Odin. It is rumored to be the perfect spear, perfectly hitting any target regardless of the wielder's strength or skill. It feels like Odin's protecting you.", "weight": "1854 g", "material": [ "orichalcum_metal", "wood", "gold" ], "techniques": [ "WBLOCK_1", "IMPALE", "SWEEP" ], "volume": "3250 ml", - "bashing": 10, - "cutting": 35, - "price": 200000 + "price": 200000, + "melee_damage": { "bash": 10, "cut": 35 } }, { "id": "gram", - "copy-from": "jian", + "copy-from": "broadsword", "type": "GENERIC", "name": { "str": "Gram" }, "description": "Gram, the sword of Sigurd. It is rumored to be the sword that slayed the legendary dragon, Fafnir. Once said to have cleaved Regin's anvil in half, the edge is impeccable.", "weight": "1132 g", - "material": [ "orichalcum_metal", "steel", "leather" ], + "material": [ "orichalcum_metal", "steel" ], "techniques": [ "WBLOCK_2", "PRECISE", "DIVIDE" ], - "volume": "2500 ml", - "weapon_category": [ "MEDIEVAL_SWORDS", "MEDIUM_SWORDS" ], - "cutting": 45, - "price": 200000 + "volume": "2000 ml", + "price": 200000, + "melee_damage": { "bash": 6, "cut": 45 } }, { "id": "laevateinn", @@ -52,9 +50,8 @@ "extend": { "flags": [ "MAGIC_FOCUS" ] }, "techniques": [ "WBLOCK_2", "SPIN", "RAPID", "SWEEP" ], "weight": "1860 g", - "bashing": 20, - "cutting": 35, - "use_action": { "type": "cast_spell", "spell_id": "ethereal_grasp", "no_fail": true, "level": 10, "need_wielding": true } + "use_action": { "type": "cast_spell", "spell_id": "ethereal_grasp", "no_fail": true, "level": 10, "need_wielding": true }, + "melee_damage": { "bash": 20, "cut": 35 } }, { "copy-from": "knife_combat", @@ -63,7 +60,7 @@ "name": { "str": "orichalcum combat knife", "str_pl": "orichalcum combat knives" }, "description": "A variant of the combat knife that is made of orichalcum instead of steel. Sharper and easier to maintain than steel while just as dense, this knife also has a thinner blade, which shaves off some weight.", "material": [ "orichalcum_metal" ], - "proportional": { "cutting": 1.1, "price": 5, "weight": 0.99 }, + "proportional": { "price": 5, "weight": 0.99, "melee_damage": { "stab": 1.1 } }, "color": "yellow" }, { @@ -73,7 +70,7 @@ "name": { "str": "orichalcum longsword" }, "description": "A variant of the longsword that is made of orichalcum instead of steel. Sharper and easier to maintain than steel while just as dense, this longsword also has a thinner blade, which shaves off some weight.", "material": [ "orichalcum_metal" ], - "proportional": { "cutting": 1.1, "price": 5, "weight": 0.99 }, + "proportional": { "price": 5, "weight": 0.99, "melee_damage": { "cut": 1.1 } }, "color": "yellow" }, { @@ -83,7 +80,7 @@ "name": { "str": "orichalcum fire axe" }, "description": "A fire axe made with orichalcum instead of steel. This makes it possible to chop through harder materials, and in the very well-funded fire stations is preferred.", "material": [ "orichalcum_metal" ], - "proportional": { "cutting": 1.1, "price": 5 }, + "proportional": { "price": 5, "melee_damage": { "cut": 1.1 } }, "color": "yellow" }, { @@ -95,10 +92,9 @@ "weight": "1854 g", "material": [ "orichalcum_metal", "wood" ], "volume": "3250 ml", - "bashing": 10, - "cutting": 35, "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "hit_you_effect": [ { "id": "wolfsbane" } ] } ] }, - "price": 200000 + "price": 200000, + "melee_damage": { "bash": 10, "cut": 35 } }, { "id": "longsword_mithril", @@ -108,6 +104,6 @@ "description": "This is a classic medieval sword, the size being in-between the lighter arming sword and later two-handed swords. Thanks to the mysterious silvery metal it was forged from, it is stronger than tempered steel while weighing substantially less.", "material": [ "mithril_metal" ], "weight": "939 g", - "proportional": { "cutting": 1.5, "bashing": 0.7 } + "proportional": { "melee_damage": { "bash": 0.7, "cut": 1.5 } } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/metals.json b/data/Mainline_mods/Mods/Magiclysm/items/metals.json index 9b13c3190..292e503ab 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/metals.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/metals.json @@ -8,7 +8,6 @@ "weight": "1000 g", "volume": "250 ml", "price": 2500, - "bashing": 12, "to_hit": -4, "stack_size": 2, "//": "Density 7.60g/cm³ ~ 1.9kg/250ml @ 1000g/unit ~ stack 2 and formed as a solid ingot so 100% of this", @@ -16,7 +15,8 @@ "symbol": ",", "color": "light_green", "ammo_type": "components", - "qualities": [ [ "HAMMER", 1 ] ] + "qualities": [ [ "HAMMER", 1 ] ], + "melee_damage": { "bash": 12 } }, { "id": "orichalcum_sliver", @@ -27,7 +27,6 @@ "weight": "250 g", "volume": "250 ml", "price": 1000, - "bashing": 8, "to_hit": -2, "stack_size": 4, "//": "Density 7.60g/cm³ ~ 1.9kg/250ml @ 250g/unit ~ stack 8 but mishapen so only 50% of this", @@ -35,7 +34,8 @@ "symbol": ",", "color": "light_green", "ammo_type": "components", - "qualities": [ [ "CUT", 1 ] ] + "qualities": [ [ "CUT", 1 ] ], + "melee_damage": { "bash": 8 } }, { "id": "orichalcum_ingot", @@ -47,11 +47,11 @@ "weight": "2 kg", "volume": "253 ml", "price": 6399, - "bashing": 6, "to_hit": -3, "material": [ "orichalcum_metal" ], "symbol": "=", - "color": "light_green" + "color": "light_green", + "melee_damage": { "bash": 6 } }, { "id": "mithril_lump", @@ -62,14 +62,14 @@ "weight": "675 g", "volume": "250 ml", "price": 2500, - "bashing": 12, "to_hit": -4, "stack_size": 2, "material": [ "mithril_metal" ], "symbol": ",", "color": "light_blue", "ammo_type": "components", - "qualities": [ [ "HAMMER", 1 ] ] + "qualities": [ [ "HAMMER", 1 ] ], + "melee_damage": { "bash": 12 } }, { "id": "mithril_ingot", @@ -81,10 +81,10 @@ "weight": "683 g", "volume": "253 ml", "price": 6399, - "bashing": 6, "to_hit": -3, "material": [ "mithril_metal" ], "symbol": "=", - "color": "light_blue" + "color": "light_blue", + "melee_damage": { "bash": 6 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/mutagen.json b/data/Mainline_mods/Mods/Magiclysm/items/mutagen.json index 31b6500bb..0333e0145 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/mutagen.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/mutagen.json @@ -14,7 +14,7 @@ "addiction_potential": 5, "calories": 26, "description": "A very concentrated form of mana potion.", - "price": 1000, + "price": 60000, "volume": "500 ml", "phase": "liquid", "charges": 2, @@ -35,7 +35,11 @@ "color": "light_blue", "description": "A mana potion mixed with mutagen. It might help you connect with magic.", "name": { "str": "mana mutagen" }, - "vitamins": [ [ "mutagen_manatouched", 175 ], [ "mutagen", 125 ] ] + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the mana mutagen.", + "vitamins": [ [ "mutagen_manatouched", 175 ], [ "mutagen", 125 ] ] + } }, { "id": "mutagen_black_dragon", @@ -44,18 +48,22 @@ "color": "black", "description": "An alchemic concoction made from the remains of a slain black dragon and a bit of potion base. Ancient and Academic texts talk of profound changes from consuming this.", "name": { "str": "black dragon mutagen" }, - "vitamins": [ [ "mutagen_black_dragon", 175 ], [ "mutagen", 125 ] ] + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the black dragon mutagen.", + "vitamins": [ [ "mutagen_black_dragon", 175 ], [ "mutagen", 125 ] ] + } }, { "id": "iv_black_dragon", "copy-from": "iv_mutagen_flavor", "type": "COMESTIBLE", "name": "black dragon mutagenic primer", - "description": "A super-concentrated mutagen that seems swirl with the anger of a black dragon. Do you dare leave you humanity behind and inject it?", + "description": "A super-concentrated mutagen that seems to swirl with the anger of a black dragon. Do you dare leave your humanity behind and inject it?", "color": "black", "use_action": { "type": "consume_drug", - "activation_message": "You inject the concentrated black dragon mutagenic primer.", + "activation_message": "You inject the black dragon mutagenic primer.", "tools_needed": { "syringe": -1 }, "vitamins": [ [ "mutagen_black_dragon", 450, 550 ] ] } diff --git a/data/Mainline_mods/Mods/Magiclysm/items/nature_spirit_items.json b/data/Mainline_mods/Mods/Magiclysm/items/nature_spirit_items.json new file mode 100644 index 000000000..8a81ad916 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/items/nature_spirit_items.json @@ -0,0 +1,43 @@ +[ + { + "type": "GENERIC", + "id": "bracken_eye", + "name": { "str": "brackenwight eye" }, + "description": "A fist-sized lump of plant matter taken from a brackenwight. It still glows a very faint green.", + "weight": "133 g", + "volume": "250 ml", + "symbol": "*", + "color": "green", + "flags": [ "TRADER_AVOID", "LIGHT_3" ] + }, + { + "type": "COMESTIBLE", + "id": "mossling_fur", + "copy-from": "grass", + "name": { "str": "tuft of mossling fur", "str_pl": "tufts of mossling fur" }, + "description": "A tangled tuft of mossling fur, more like grass or lichen than the fur of an animal. A cow might be able to eat it, but you couldn't.", + "calories": 70, + "weight": "100 g", + "volume": "250 ml", + "flags": [ "TRADER_AVOID", "INEDIBLE" ] + }, + { + "type": "GENERIC", + "id": "dryad_bark", + "copy-from": "alder_bark", + "name": { "str": "dryad bark", "str_pl": "chunks of dryad bark" }, + "description": "A strip of bark taken from a fallen dryad. It's still slightly supple, as though it were attached to a living tree." + }, + { + "type": "GENERIC", + "id": "gnome_eye", + "copy-from": "garnet", + "name": { "str": "gnome eye" }, + "description": "A glittering gemstone that once formed one of the eyes of a gnome. You feel like you're being watched when you look at it.", + "category": "spare_parts", + "symbol": "*", + "color": "red", + "weight": "2 g", + "volume": "60 ml" + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/obsolete.json b/data/Mainline_mods/Mods/Magiclysm/items/obsolete.json index 518f003c7..c05817650 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/obsolete.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/obsolete.json @@ -14,5 +14,180 @@ "phase": "liquid", "category": "fuel", "ammo_type": "tainted_blood" + }, + { + "id": "shotcestus", + "copy-from": "shotgun_base", + "type": "ARMOR", + "name": { "str": "shotcestus", "str_pl": "shotcestuses" }, + "description": "A sawn-off double-barrel shotgun mounted on a metal cestus. The lack of a stock to absorb recoil means some strength is required to fire.", + "weight": "1566 g", + "volume": "1500 ml", + "price": 20000, + "material": [ "steel" ], + "techniques": [ "WBLOCK_1", "BRUTAL" ], + "min_strength": 7, + "flags": [ "DURABLE_MELEE", "NEVER_JAMS", "RELOAD_EJECT", "RELOAD_ONE", "OBSOLETE" ], + "faults": [ "fault_gun_blackpowder", "fault_gun_dirt" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "shot": 2 } } ], + "armor": [ { "encumbrance": 5, "coverage": 20, "covers": [ "hand_r" ] } ], + "melee_damage": { "bash": 12 } + }, + { + "type": "recipe", + "result": "shotcestus", + "obsolete": true + }, + { + "id": "obfuscating_aura", + "type": "ARMOR", + "name": "obfuscating aura", + "description": "An all-encompassing, invisible layer of magic distorts light around your body. Allows you to dodge two extra attacks in a given turn.", + "weight": "1g", + "volume": "1ml", + "price": 3646, + "symbol": "o", + "color": "white", + "material": [ "magical_material" ], + "flags": [ + "AURA", + "SEMITANGIBLE", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "BONUS_DODGE", "add": 2 } ] } ] }, + "armor": [ + { + "encumbrance": 0, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, + { + "id": "shape_of_dust", + "type": "ARMOR", + "name": "dust cloak", + "description": "You are unseen in between of the sand that cover you.", + "weight": "1 g", + "volume": "1 ml", + "symbol": "o", + "color": "brown", + "looks_like": "cloak", + "material": [ "magical_material" ], + "flags": [ + "AURA", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "OVERSIZE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ALWAYS", + "ench_effects": [ { "effect": "invisibility", "intensity": 1 } ], + "emitter": "emit_eshaper_dust", + "values": [ { "value": "BONUS_DODGE", "add": 2 } ] + } + ] + } + }, + { + "id": "acid_res_aura", + "type": "ARMOR", + "name": { "str": "acid resistance aura" }, + "description": "An all-encompassing, invisible layer of protection against acid.", + "weight": "1g", + "volume": "1ml", + "price": 3646, + "symbol": "o", + "color": "green", + "material": [ "magical_material" ], + "flags": [ + "AURA", + "SEMITANGIBLE", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "ARMOR_ACID", "multiply": -0.25 } ] } ] + }, + "armor": [ + { + "encumbrance": 0, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, + { + "id": "acid_res_aura_greater", + "type": "ARMOR", + "name": "greater acid resistance aura", + "description": "An all-encompassing, invisible layer of protection against acid.", + "weight": "1g", + "volume": "1ml", + "price": 3646, + "symbol": "o", + "color": "green", + "material": [ "magical_material" ], + "flags": [ + "AURA", + "SEMITANGIBLE", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "ARMOR_ACID", "multiply": -0.6 } ] } ] + }, + "armor": [ + { + "encumbrance": 0, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, + { + "id": "thorns_electric", + "type": "ARMOR", + "name": { "str": "aura of repelling arc", "str_pl": "auras of repelling arc" }, + "description": "An invisible aura that strikes melee attackers with arcs of electricity.", + "weight": "1 g", + "volume": "1 ml", + "symbol": "o", + "color": "blue", + "material": [ "magical_material" ], + "flags": [ + "AURA", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "OVERSIZE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "hit_me_effect": [ { "id": "thorns_zap" } ] } ] } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/potion_fruits.json b/data/Mainline_mods/Mods/Magiclysm/items/potion_fruits.json new file mode 100644 index 000000000..2ddade490 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/items/potion_fruits.json @@ -0,0 +1,293 @@ +[ + { + "type": "COMESTIBLE", + "id": "potion_fruit_apple", + "name": { "str": "potion fruit (apple)", "str_pl": "potion fruits (apple)" }, + "description": "An apple infused with mana. It will heal you if you eat it.", + "copy-from": "apple", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "66 days 16 hours", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the apple potion fruit.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_APPLE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_APPLE", + "effect": [ { "u_add_effect": "effect_pfruit_heal", "duration": { "math": [ "150 + rand(350)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_peach", + "name": { "str": "potion fruit (peach)", "str_pl": "potion fruits (peach)" }, + "description": "A peach infused with mana. It will cure illness if you eat it.", + "copy-from": "peach", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "30 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the peach potion fruit.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_PEACH" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_PEACH", + "effect": [ { "u_add_effect": "effect_pfruit_cure", "duration": "1 seconds" } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_pear", + "name": { "str": "potion fruit (pear)", "str_pl": "potion fruits (pear)" }, + "description": "A pear infused with mana. It will allow your blows to strike quicker if you eat it.", + "copy-from": "pear", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "40 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the pear potion fruit.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_PEAR" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_PEAR", + "effect": [ { "u_add_effect": "effect_pfruit_attack_speed", "duration": { "math": [ "250 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_blackberries", + "name": { "str": "handful of potion fruits (blackberries)", "str_pl": "handfuls of potion fruits (blackberries)" }, + "description": "A handful of blackberries infused with mana. It will harm those who attack you if you eat it.", + "copy-from": "blackberries", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "25 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the handful of blackberry potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_BLACKBERRY" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_BLACKBERRY", + "effect": [ { "u_add_effect": "effect_pfruit_thorns", "duration": { "math": [ "500 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_raspberries", + "name": { "str": "handful of potion fruits (raspberries)", "str_pl": "handfuls of potion fruits (raspberries)" }, + "description": "A handful of raspberries infused with mana. It will lessen your pain if you eat it.", + "copy-from": "raspberries", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "25 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the handful of raspberry potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_RASPBERRY" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_RASPBERRY", + "effect": [ { "math": [ "u_pain()", "-=", "3" ] } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_strawberries", + "name": { "str": "handful of potion fruits (strawberries)", "str_pl": "handfuls of potion fruits (strawberries)" }, + "description": "A handful of strawberries infused with mana. It will keep you warm even on an icy-cold day.", + "copy-from": "strawberries", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "25 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the handful of strawberry potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_STRAWBERRY" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_STRAWBERRY", + "effect": [ { "u_add_effect": "effect_pfruit_keep_warm", "duration": { "math": [ "500 + rand(5000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_elderberries", + "name": { "str": "handful of potion fruits (elderberries)", "str_pl": "handfuls of potion fruits (elderberries)" }, + "description": "A handful of elderberries infused with mana. It will keep you alert and awake.", + "copy-from": "elderberries", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "25 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the handful of elderberry potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_ELDERBERRY" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_ELDERBERRY", + "effect": [ { "math": [ "u_val('fatigue')", "-=", "25" ] } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_blueberries", + "name": { "str": "handful of potion fruits (blueberries)", "str_pl": "handfuls of potion fruits (blueberries)" }, + "description": "A handful of blueberries infused with mana. One handful is more satisfying than a whole bottle of water.", + "copy-from": "blueberries", + "proportional": { "calories": 0.5 }, + "quench": 100, + "spoils_in": "25 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] } + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_cranberries", + "name": { "str": "handful of potion fruits (cranberries)", "str_pl": "handfuls of potion fruits (cranberries)" }, + "description": "A handful of cranberries infused with mana. It will remove impurities in your blood.", + "copy-from": "cranberries", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "25 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the handful of cranberry potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_CRANBERRY" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_CRANBERRY", + "effect": [ { "u_add_effect": "effect_pfruit_purge", "duration": "1 seconds" } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_huckleberries", + "name": { "str": "handful of potion fruits (huckleberries)", "str_pl": "handfuls of potion fruits (huckleberries)" }, + "description": "A handful of huckleberries infused with mana. It will make you much more flexible.", + "copy-from": "huckleberries", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "25 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the handful of huckleberry potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_HUCKLEBERRY" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_HUCKLEBERRY", + "effect": [ { "u_add_effect": "effect_pfruit_dodge", "duration": { "math": [ "250 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_wintergreen", + "name": { "str": "handful of potion fruits (wintergreen berries)", "str_pl": "handfuls of potion fruits (wintergreen berries)" }, + "description": "A handful of wintergreen berries infused with mana. It will allow you to see in the dark.", + "copy-from": "wintergreen_berry", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "25 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the handful of wintergreen berry potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_WINTERGREEN" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_WINTERGREEN", + "effect": [ { "u_add_effect": "effect_pfruit_nightvision", "duration": { "math": [ "500 + rand(5000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_cherry", + "name": { "str": "handful of potion fruits (cherries)", "str_pl": "handfuls of potion fruits (cherries)" }, + "description": "A handful of cherries infused with mana. It will prevent you from bleeding.", + "copy-from": "cherries", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "25 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the handful of cherry potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_CHERRY" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_CHERRY", + "effect": [ { "u_add_effect": "effect_pfruit_nobleed", "duration": { "math": [ "250 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_apricot", + "name": { "str": "handful of potion fruits (apricots)", "str_pl": "handfuls of potion fruits (apricots)" }, + "description": "A handful of apricots infused with mana. It will enhance your visual acuity.", + "copy-from": "apricot", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "20 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the handful of apricot potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_APRICOT" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_APRICOT", + "effect": [ { "u_add_effect": "effect_pfruit_vision", "duration": { "math": [ "250 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_grapes", + "name": { "str": "handful of potion fruits (grapes)", "str_pl": "handfuls of potion fruits (grapes)" }, + "description": "A handful of grapes infused with mana. It will cure intoxication.", + "copy-from": "grapes", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "20 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the handful of grape potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_GRAPE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_GRAPE", + "effect": [ { "u_add_effect": "effect_pfruit_no_drunk", "duration": "1 seconds" }, { "math": [ "u_pain()", "+=", "10" ] } ] + }, + { + "type": "COMESTIBLE", + "id": "potion_fruit_mayapple", + "name": { "str": "potion fruit (mayapple)", "str_pl": "potion fruits (mayapple)" }, + "description": "A mayapple infused with mana. It will allow you to eat questionable food without harm.", + "copy-from": "mayapple", + "proportional": { "quench": 0.5, "calories": 0.5 }, + "spoils_in": "20 days", + "extend": { "flags": [ "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ] }, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the mayapple potion fruits.", + "effect_on_conditions": [ "EOC_POTION_FRUIT_MAYAPPLE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_POTION_FRUIT_MAYAPPLE", + "effect": [ { "u_add_effect": "effect_pfruit_eat_poison", "duration": { "math": [ "250 + rand(1500)" ] } } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/recipe_books.json b/data/Mainline_mods/Mods/Magiclysm/items/recipe_books.json index fe51b7035..a3bbd6967 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/recipe_books.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/recipe_books.json @@ -8,7 +8,6 @@ "weight": "1 kg", "volume": "750 ml", "price": 7900, - "bashing": 5, "material": [ "paper" ], "symbol": "?", "color": "black_white", @@ -17,7 +16,8 @@ "max_level": 3, "intelligence": 10, "time": "32 m", - "fun": 1 + "fun": 1, + "melee_damage": { "bash": 5 } }, { "id": "black_dragons_historical", @@ -28,7 +28,6 @@ "weight": "1 kg", "volume": "750 ml", "price": 7900, - "bashing": 5, "material": [ "paper" ], "symbol": "?", "color": "black_white", @@ -37,7 +36,8 @@ "max_level": 8, "intelligence": 11, "time": "37 m", - "fun": -2 + "fun": -2, + "melee_damage": { "bash": 5 } }, { "id": "alchemy_basic", @@ -48,7 +48,6 @@ "weight": "1 kg", "volume": "750 ml", "price": 7900, - "bashing": 5, "material": [ "paper" ], "symbol": "?", "color": "white", @@ -57,7 +56,8 @@ "max_level": 5, "intelligence": 9, "time": "20 m", - "fun": 1 + "fun": 1, + "melee_damage": { "bash": 5 } }, { "id": "necro_basic", @@ -65,10 +65,9 @@ "category": "manuals", "name": { "str": "A Soulbinder's Guide to Necromancy", "str_pl": "copies of A Soulbinder's Guide to Necromancy" }, "description": "A paperback tome for the art of binding undead creatures' souls to dolls, along with emulating their healing factor.", - "weight": "1 kg", - "volume": "750 ml", + "weight": "425 g", + "volume": "450 ml", "price": 7900, - "bashing": 5, "material": [ "paper" ], "symbol": "?", "color": "black", @@ -78,7 +77,47 @@ "max_level": 6, "intelligence": 9, "time": "20 m", - "fun": -2 + "fun": -2, + "melee_damage": { "bash": 5 } + }, + { + "id": "alchemy_illegal", + "type": "BOOK", + "category": "manuals", + "name": { "str": "small notebook" }, + "description": "Small old notebook without cover. There are some illegal potion recipes, that you can't find in common books", + "weight": "260 g", + "volume": "350 ml", + "price": 13900, + "material": [ "paper" ], + "symbol": "?", + "color": "white", + "skill": "chemistry", + "required_level": 5, + "max_level": 6, + "intelligence": 10, + "time": "20 m", + "melee_damage": { "bash": 3 } + }, + { + "id": "alchemy_master", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Tabula Smaragdina", "str_pl": "copies of Tabula Smaragdina" }, + "description": "Huge, hardcover book, filled with the most detailed information about alchemy history, usage, and future, authored by Trismegistus. Modern edition, published by Noita Press.", + "weight": "870 g", + "volume": "750 ml", + "price": 17800, + "material": [ "paper" ], + "symbol": "?", + "color": "white", + "skill": "chemistry", + "required_level": 6, + "max_level": 9, + "intelligence": 12, + "time": "20 m", + "fun": -2, + "melee_damage": { "bash": 6 } }, { "id": "techno_basic", @@ -89,7 +128,6 @@ "weight": "1 kg", "volume": "750 ml", "price": 7900, - "bashing": 5, "material": [ "paper" ], "symbol": "?", "color": "black", @@ -99,7 +137,8 @@ "max_level": 5, "intelligence": 9, "time": "20 m", - "fun": 1 + "fun": 1, + "melee_damage": { "bash": 5 } }, { "id": "book_mythological", @@ -129,7 +168,6 @@ "weight": "1 kg", "volume": "750 ml", "price": 7900, - "bashing": 5, "material": [ "paper" ], "symbol": "?", "color": "white", @@ -138,7 +176,8 @@ "max_level": 6, "intelligence": 9, "time": "20 m", - "fun": 1 + "fun": 1, + "melee_damage": { "bash": 5 } }, { "id": "metal_legends", @@ -149,7 +188,6 @@ "weight": "1 kg", "volume": "750 ml", "price": 7900, - "bashing": 5, "material": [ "paper" ], "symbol": "?", "color": "white", @@ -158,7 +196,8 @@ "max_level": 6, "intelligence": 9, "time": "20 m", - "fun": -1 + "fun": -1, + "melee_damage": { "bash": 5 } }, { "id": "magic_armormaking", @@ -169,7 +208,6 @@ "weight": "1 kg", "volume": "750 ml", "price": 7900, - "bashing": 5, "material": [ "paper" ], "symbol": "?", "color": "white", @@ -178,7 +216,8 @@ "max_level": 8, "intelligence": 10, "time": "25 m", - "fun": -1 + "fun": -1, + "melee_damage": { "bash": 5 } }, { "id": "enchantment_basic", @@ -189,7 +228,6 @@ "weight": "1 kg", "volume": "750 ml", "price": 7900, - "bashing": 5, "material": [ "paper" ], "symbol": "?", "color": "white", @@ -198,6 +236,50 @@ "max_level": 8, "intelligence": 10, "time": "25 m", + "fun": -1, + "melee_damage": { "bash": 5 } + }, + { + "id": "weapon_enchanting_guide", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Guide of Enchanter", "str_pl": "copies of Guide of Enchanter" }, + "description": "A textbook on enchanting weapons.", + "weight": "750 g", + "volume": "1250 ml", + "price": 9400, + "price_postapoc": 4250, + "material": [ "paper" ], + "symbol": "?", + "color": "blue", + "skill": "fabrication", + "required_level": 4, + "max_level": 4, + "intelligence": 10, + "time": "60 m", "fun": -1 + }, + { + "id": "history_botanical_enchantment", + "type": "BOOK", + "category": "manuals", + "name": { + "str": "A Comprehensive History of Botanical Enchantment", + "str_pl": "copies of A Comprehensive History of Botanical Enchantment" + }, + "description": "A history of the ancient art of \"botanical enchantment\", infusing fruit with mana to create primitive potions. While one of the earliest methods of alchemy known, discovered in prehistoric times, advancement in alchemical techniques (to say nothing of modern chemistry) rendered it a curiosity at best in the decades leading up to the Cataclysm. Still, the book details several methods of botanical enchantment that would probably be useful.", + "weight": "750 g", + "volume": "1250 ml", + "price": 3000, + "material": [ "paper" ], + "symbol": "?", + "color": "white", + "skill": "spellcraft", + "required_level": 4, + "max_level": 4, + "intelligence": 10, + "time": "25 m", + "fun": -1, + "melee_damage": { "bash": 5 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/spell_scrolls.json b/data/Mainline_mods/Mods/Magiclysm/items/spell_scrolls.json index fd6f75994..f447927eb 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/spell_scrolls.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/spell_scrolls.json @@ -29,6 +29,15 @@ "description": "The darkness holds no secrets for the arcane. Adjust your sight to see in perfect darkness!", "use_action": { "type": "learn_spell", "spells": [ "dark_sight" ] } }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_sound_bomb", + "//": "Classless spell", + "name": { "str": "Scroll of Sound Bomb", "str_pl": "Scrolls of Sound Bomb" }, + "description": "Behind the cool name hides a common joke spell to spook your friends and restrain dogs. It can be useful in some special cases.", + "use_action": { "type": "learn_spell", "spells": [ "sound_bomb" ] } + }, { "type": "BOOK", "copy-from": "spell_scroll", @@ -47,6 +56,15 @@ "description": "A magical aura distorts light around your body, making it easier to dodge enemy attacks.", "use_action": { "type": "learn_spell", "spells": [ "obfuscated_body" ] } }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_thought_shield", + "//": "Classless spell", + "name": { "str": "Scroll of Thought Shield", "str_pl": "Scrolls of Thought Shield" }, + "description": "Harried by evil spirits or creatures from beyond? This spell will keep your mind safe!", + "use_action": { "type": "learn_spell", "spells": [ "thought_shield" ] } + }, { "type": "BOOK", "copy-from": "spell_scroll", @@ -95,29 +113,29 @@ { "type": "BOOK", "copy-from": "spell_scroll", - "id": "spell_scroll_summon_zombie", + "id": "spell_scroll_summon_undead", "//": "Animist spell", - "name": { "str": "Scroll of Summon Zombie", "str_pl": "Scrolls of Summon Zombie" }, + "name": { "str": "Scroll of Summon Undead", "str_pl": "Scrolls of Summon Undead" }, "description": "An ethereal-looking zombie rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", - "use_action": { "type": "learn_spell", "spells": [ "summon_zombie" ] } + "use_action": { "type": "learn_spell", "spells": [ "summon_undead" ] } }, { "type": "BOOK", "copy-from": "spell_scroll", - "id": "spell_scroll_summon_skeleton", + "id": "spell_scroll_rupture", "//": "Animist spell", - "name": { "str": "Scroll of Summon Skeleton", "str_pl": "Scrolls of Summon Skeleton" }, - "description": "A ghostly skeleton rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", - "use_action": { "type": "learn_spell", "spells": [ "summon_skeleton" ] } + "name": { "str": "Scroll of Rupture", "str_pl": "Scrolls of Rupture" }, + "description": "You pour mana into an unwilling and unprepared vessel, causing cellular break-down, internal hemorrhaging, leylines to become muddled, and electronics to overcharge. Immensely gruesome, crude, and was once illegal world-wide, not that it matters now.", + "use_action": { "type": "learn_spell", "spells": [ "rupture" ] } }, { "type": "BOOK", "copy-from": "spell_scroll", - "id": "spell_scroll_rupture", + "id": "spell_scroll_devour", "//": "Animist spell", - "name": { "str": "Scroll of Rupture", "str_pl": "Scrolls of Rupture" }, - "description": "You pour mana into an unwilling and unprepared vessel, causing cellular break-down, internal hemorrhaging, leylines to become muddled, and electronics to overcharge. Immensely gruesome, crude, and was once illegal world-wide, not that it matters now.", - "use_action": { "type": "learn_spell", "spells": [ "rupture" ] } + "name": { "str": "Scroll of Devour", "str_pl": "Scrolls of Devour" }, + "description": "Kill a summoned creature, consuming its life energy to regain some health.", + "use_action": { "type": "learn_spell", "spells": [ "devour" ] } }, { "type": "BOOK", @@ -130,11 +148,38 @@ { "type": "BOOK", "copy-from": "spell_scroll", - "id": "spell_scroll_summon_decayed_pouncer", + "id": "spell_scroll_summon_undead_swarm", + "//": "Animist spell", + "name": { "str": "Scroll of Summon Undead Swarm", "str_pl": "Scrolls of Summon Undead Swarm" }, + "description": "A few decrepit looking animals rises from the depths of the earth to fight for you. You may be able to summon better with a higher level in this spell.", + "use_action": { "type": "learn_spell", "spells": [ "summon_undead_swarm" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_convert", + "//": "Animist spell", + "name": { "str": "Scroll of Convert", "str_pl": "Scrolls of Convert" }, + "description": "Kill an ally creature, converting its life energy into compact rune, that you can use afterwards.", + "use_action": { "type": "learn_spell", "spells": [ "convert" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_dominate", + "//": "Animist spell", + "name": { "str": "Scroll of Domination", "str_pl": "Scrolls of Domination" }, + "description": "Force the undead creature you pick to obey your command, making it an ally for a short time.", + "use_action": { "type": "learn_spell", "spells": [ "dominate" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_life_detonation", "//": "Animist spell", - "name": { "str": "Scroll of Summon Decayed Pouncer", "str_pl": "Scrolls of Summon Decayed Pouncer" }, - "description": "A decrepit looking large cat rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", - "use_action": { "type": "learn_spell", "spells": [ "summon_decayed_pouncer" ] } + "name": { "str": "Scroll of Life Detonation", "str_pl": "Scrolls of Life Detonation" }, + "description": "Explode a living energy inside your undead, to release a tremendous force around.", + "use_action": { "type": "learn_spell", "spells": [ "life_detonation" ] } }, { "type": "BOOK", @@ -322,7 +367,7 @@ "id": "spell_scroll_druid_healing", "//": "Druid spell", "name": { "str": "Scroll of Restoration", "str_pl": "Scrolls of Restoration" }, - "description": "Directed magic energy, that slowly heal your body from wounds.", + "description": "Directed magical energy that slowly heals your body from wounds.", "use_action": { "type": "learn_spell", "spells": [ "druid_healing" ] } }, { @@ -331,9 +376,18 @@ "id": "spell_scroll_druid_healing_herb", "//": "Druid spell", "name": { "str": "Scroll of Floral Healing", "str_pl": "Scrolls of Floral Healing" }, - "description": "Using a magic energy from herbs allow you to heal yourself.", + "description": "Using magic energy from herbs to allows you to heal yourself.", "use_action": { "type": "learn_spell", "spells": [ "druid_healing_herb" ] } }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_druid_bandage", + "//": "Druid spell", + "name": { "str": "Scroll of Vegetative Poultice", "str_pl": "Scrolls of Vegetative Poultice" }, + "description": "Turn a bunch of leaves and bark into an effective bandage.", + "use_action": { "type": "learn_spell", "spells": [ "druid_bandage_heal" ] } + }, { "type": "BOOK", "copy-from": "spell_scroll", @@ -397,6 +451,123 @@ "description": "Fires a conjured stone projectile at high velocity.", "use_action": { "type": "learn_spell", "spells": [ "eshaper_rockbolt" ] } }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_clairvoyance", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Clairvoyance", "str_pl": "Scrolls of Clairvoyance" }, + "description": "You close your eyes and the earth surrenders its secrets to you.", + "use_action": { "type": "learn_spell", "spells": [ "clairvoyance" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_earthshaper_stoneskin", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Stoneskin", "str_pl": "Scrolls of Stoneskin" }, + "description": "Envelops your entire body in armor formed from living rock, encumbering yet protective.", + "use_action": { "type": "learn_spell", "spells": [ "earthshaper_stoneskin" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_earthshaper_pillar", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Pillar of Stone", "str_pl": "Scrolls of Pillar of Stone" }, + "description": "Drawing upon the surrounding earth, you form a pillar of solid rock. Experience will make the task easier, and less disruptive to the surrounding area.", + "use_action": { "type": "learn_spell", "spells": [ "earthshaper_pillar" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_pertifying_touch", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Petrifying Touch", "str_pl": "Scrolls of Petrifying Touch" }, + "description": "Your hands tries to transform the body of your enemy into a pure stone. The effect is temporary, but it can deal significant damage.", + "use_action": { "type": "learn_spell", "spells": [ "pertifying_touch" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_reactive_armor", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Reactive Armour", "str_pl": "Scrolls of Reactive Armour" }, + "description": "Explode your stone skin, to deal massive damage to all enemies around.", + "use_action": { "type": "learn_spell", "spells": [ "reactive_armor" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_eshaper_impalement", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Impalement", "str_pl": "Scrolls of Impalement" }, + "description": "Summon a stone spikes underground, that penetrate your enemies, and nail them for a while.", + "use_action": { "type": "learn_spell", "spells": [ "eshaper_impalement" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_eshaper_spawn_tools", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Utility Molding", "str_pl": "Scrolls of Utility Molding" }, + "description": "Shape the basic working tools, using your own magic abilities and earth nearby. Activate to change the shape of a tool.", + "use_action": { "type": "learn_spell", "spells": [ "eshaper_spawn_tools" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_eshaper_melee_damage", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Weighting", "str_pl": "Scrolls of Weighting" }, + "description": "Fill yourself with the power of Earth, and make each your attacks as devastating as an earthquake.", + "use_action": { "type": "learn_spell", "spells": [ "eshaper_melee_damage" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_eshaper_crystal_wrap", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Crystal Wrapping", "str_pl": "Scrolls of Crystal Wrapping" }, + "description": "You cover your body with a layer of razor sharp crystals. Monster that attack you will take some damage in return, and gives you some additional cut damage in melee.", + "use_action": { "type": "learn_spell", "spells": [ "eshaper_crystal_wrap" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_shape_of_dust", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Shape of Dust", "str_pl": "Scrolls of Shape of Dust" }, + "description": "Hide yourself between the sand gust. It's harder to hit you, and monster's can't spot you.", + "use_action": { "type": "learn_spell", "spells": [ "shape_of_dust" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_summon_eshaper_golem", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Earthshaper's Golem", "str_pl": "Scrolls of Earthshaper's Golem" }, + "description": "Shape a strong golem out of the stone. It may help for a lot, but you have not enough energy to support it forever.", + "use_action": { "type": "learn_spell", "spells": [ "summon_eshaper_golem" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_earthshaper_boulder", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Summon Boulder", "str_pl": "Scrolls of Summon Boulder" }, + "description": "Pull the smooth rock underground, using your forces of earth shaping. You can use it as a table, or as a primitive anvil.", + "use_action": { "type": "learn_spell", "spells": [ "earthshaper_boulder" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_earthshaper_reveal_world_map", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Reading the Earthbones", "str_pl": "Scrolls of Reading the Earthbone" }, + "description": "Use magic to reveal nearby terrain .", + "use_action": { "type": "learn_spell", "spells": [ "earthshaper_reveal_world_map" ] } + }, { "type": "BOOK", "copy-from": "spell_scroll", @@ -655,7 +826,7 @@ "id": "spell_scroll_lightning_bolt", "//": "Stormshaper spell", "name": { "str": "Scroll of Lightning Bolt", "str_pl": "Scrolls of Lightning Bolt" }, - "description": "The goto spell for many Stormshapers, this iconic spell does just what you expect: you shoot lightning from your fingertips. However, this lightning is more directed than most lightning, and travels in a line through most non-solid targets.", + "description": "The go-to spell for many Stormshapers, this iconic spell does just what you expect: you shoot lightning from your fingertips. However, this lightning is more directed than most lightning, and travels in a line through most non-solid targets.", "use_action": { "type": "learn_spell", "spells": [ "lightning_bolt" ] } }, { @@ -667,6 +838,105 @@ "description": "A powerful blast of wind slams into anything in front of your outstretched hand.", "use_action": { "type": "learn_spell", "spells": [ "windstrike" ] } }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_storm_shipwrecker", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Shipwrecker", "str_pl": "Scrolls of Shipwrecker" }, + "description": "The spell moves out of your mouth, creating a giant shockwave that shatters everything in its path.", + "use_action": { "type": "learn_spell", "spells": [ "storm_shipwrecker" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_explosive_decompression", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Explosive Decompression", "str_pl": "Scrolls of Explosive Decompression" }, + "description": "Create a high-pressure zone originating from the selected point. Shortly after, a massive pressure wave will crush everything inside, inflicting barotrarumatic injuries on everyone affected.", + "use_action": { "type": "learn_spell", "spells": [ "explosive_decompression" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_vacuum_decompression", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Vacuum Decompression", "str_pl": "Scrolls of Vacuum Decompression" }, + "description": "Create a high-pressure zone originating from the selected point. Shortly after, a massive pressure wave will crush everything inside, inflicting barotrarumatic injuries on everyone affected. The pressure differential will also pull unprepared creatures inside the zone before collapsing.", + "use_action": { "type": "learn_spell", "spells": [ "vacuum_decompression" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_air_bubble", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Air Bubble", "str_pl": "Scrolls of Air Bubble" }, + "description": "Cover your head with an air bubble, allowing you to breathe underwater or prevent breathing of toxic gases.", + "use_action": { "type": "learn_spell", "spells": [ "air_bubble" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_storm_superconductor", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Superconductor", "str_pl": "Scrolls of Superconductor" }, + "description": "Create arcs of devastating electric charge in an area around you, roasting everything within.", + "use_action": { "type": "learn_spell", "spells": [ "storm_superconductor" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_shocking_dash", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Shocking Dash", "str_pl": "Scrolls of Shocking Dash" }, + "description": "Fill your legs with energy and quickly dash to a target destination.", + "use_action": { "type": "learn_spell", "spells": [ "shocking_dash" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_toxtricity", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Toxtricity", "str_pl": "Scrolls of Toxtricity" }, + "description": "Inject a corrosive electric energy into targets within the affected area, weakening them and dealing huge damage over time.", + "use_action": { "type": "learn_spell", "spells": [ "toxtricity" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_electric_eye", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Electric Eye", "str_pl": "Scrolls of Electric Eye" }, + "description": "Enhance your sight with your powers. It allows you to see creatures of the same energy around you, and block or dodge an additional attack your enhanced perception speed could anticipate.", + "use_action": { "type": "learn_spell", "spells": [ "electric_eye" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_electric_waves", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Electric Waves", "str_pl": "Scrolls of Electric Waves" }, + "description": "Your hands start to emit a huge amount of energy, that you release with each attack.", + "use_action": { "type": "learn_spell", "spells": [ "electric_waves" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_electric_arts", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Electric Arts", "str_pl": "Scrolls of Electric Arts" }, + "description": "Insulate the skin against electrical damage. Particularly useful for the apprentice Stormshaper, whose magical control is weak and whose efforts could easily end in self-electrocution.", + "use_action": { "type": "learn_spell", "spells": [ "electric_arts" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_summon_teravolt", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Teravolt", "str_pl": "Scrolls of Teravolt" }, + "description": "Summon a Teravolt, a small, semi-intelligent spirit that homes onto hostile creatures and explodes into a huge spark cloud.", + "use_action": { "type": "learn_spell", "spells": [ "summon_teravolt" ] } + }, { "type": "BOOK", "copy-from": "spell_scroll", @@ -685,6 +955,15 @@ "description": "Creates a crackling magical warhammer full of lightning to smite your foes with, and of course, smash things to bits!", "use_action": { "type": "learn_spell", "spells": [ "storm_hammer" ] } }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_stormfist", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Stormfist", "str_pl": "Scrolls of Stormfist" }, + "description": "Encases your arm and hand in a sheath of crackling magical lightning, you can punch and defend yourself with it in melee combat.", + "use_action": { "type": "learn_spell", "spells": [ "stormfist" ] } + }, { "type": "BOOK", "copy-from": "spell_scroll", @@ -829,15 +1108,6 @@ "description": "You overcharge your internal batteries to send a semi-directed beam from your face.", "use_action": { "type": "learn_spell", "spells": [ "overcharge_eyes" ] } }, - { - "type": "BOOK", - "copy-from": "spell_scroll", - "id": "spell_scroll_clairvoyance", - "//": "Earthshaper spell", - "name": { "str": "Scroll of Clairvoyance", "str_pl": "Scrolls of Clairvoyance" }, - "description": "You close your eyes and the earth surrenders its secrets to you.", - "use_action": { "type": "learn_spell", "spells": [ "clairvoyance" ] } - }, { "type": "BOOK", "copy-from": "spell_scroll", @@ -893,27 +1163,9 @@ "id": "spell_scroll_druidic_healing", "//": "Druid spell", "name": { "str": "Scroll of Sacrificial Healing", "str_pl": "Scrolls of Sacrificial Healing" }, - "description": "Channels some of the user's own life force into healing energy, for the sake of ones allies.", + "description": "Channels some of the user's own life force into healing energy, for the sake of one's allies.", "use_action": { "type": "learn_spell", "spells": [ "druidic_healing" ] } }, - { - "type": "BOOK", - "copy-from": "spell_scroll", - "id": "spell_scroll_earthshaper_stoneskin", - "//": "Earthshaper spell", - "name": { "str": "Scroll of Stoneskin", "str_pl": "Scrolls of Stoneskin" }, - "description": "Envelops your entire body in armor formed from living rock, encumbering yet protective.", - "use_action": { "type": "learn_spell", "spells": [ "earthshaper_stoneskin" ] } - }, - { - "type": "BOOK", - "copy-from": "spell_scroll", - "id": "spell_scroll_earthshaper_pillar", - "//": "Earthshaper spell", - "name": { "str": "Scroll of Pillar of Stone", "str_pl": "Scrolls of Pillar of Stone" }, - "description": "Drawing upon the surrounding earth, you form a pillar of solid rock. Experience will make the task easier, and less disruptive to the surrounding area.", - "use_action": { "type": "learn_spell", "spells": [ "earthshaper_pillar" ] } - }, { "type": "BOOK", "copy-from": "spell_scroll", @@ -937,7 +1189,7 @@ "id": "spell_scroll_biomancer_visceral_projection", "//": "Biomancer spell", "name": { "str": "Scroll of Visceral Projection", "str_pl": "Scrolls of Visceral Projection" }, - "description": "Projects a spray of acrid blood and gore all around you, growing to ensnare your prey in in a field of twitching poisonous tendrils.", + "description": "Projects a spray of acrid blood and gore all around you, growing to ensnare your prey in a field of twitching poisonous tendrils.", "use_action": { "type": "learn_spell", "spells": [ "biomancer_visceral_projection" ] } }, { @@ -992,6 +1244,14 @@ "description": "You can channel magical energy to open any locked door from a short range away.", "use_action": { "type": "learn_spell", "spells": [ "improved_knock" ] } }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_create_electric_lighter", + "name": { "str": "Scroll of Fire Spark", "str_pl": "Scrolls of Fire Spark" }, + "description": "Summons a small electric spark, that do not harm anything. You can use it to ignite something flammable.", + "use_action": { "type": "learn_spell", "spells": [ "create_electric_lighter" ] } + }, { "type": "BOOK", "copy-from": "spell_scroll", @@ -1102,7 +1362,7 @@ "copy-from": "spell_scroll", "id": "spell_scroll_freezing_touch", "//": "Kelvinist spell", - "name": { "str": "Scroll of freezing touch", "str_pl": "Scrolls of freezing touch" }, + "name": { "str": "Scroll of Freezing Touch", "str_pl": "Scrolls of Freezing Touch" }, "description": "Your hands freeze anything they touch at temperatures so cold it slows down your foes.", "use_action": { "type": "learn_spell", "spells": [ "freezing_touch" ] } }, @@ -1120,8 +1380,323 @@ "copy-from": "spell_scroll", "id": "spell_scroll_seed_of_growth", "//": "Druid spell", - "name": { "str": "Scroll of seed of growth", "str_pl": "Scrolls of seed of growth" }, + "name": { "str": "Scroll of Seed of Growth", "str_pl": "Scrolls of Seed of Growth" }, "description": "Offer some of your life in a ritual to get tokens of growth in return.", "use_action": { "type": "learn_spell", "spells": [ "druid_growth" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_druid_whisper_leaves", + "//": "Druid spell", + "name": { "str": "Scroll of Whisper of the Leaves", "str_pl": "Scrolls of Whisper of the Leaves" }, + "description": "Deepen your bond with the forest and understand the whispers of the trees.", + "use_action": { "type": "learn_spell", "spells": [ "druid_whisper_leaves" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_earthshaper_danger_sense", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Tremorsense", "str_pl": "Scrolls of Tremorsense" }, + "description": "Sink your senses into the earth and learn of the approach of anything walking upon it.", + "use_action": { "type": "learn_spell", "spells": [ "earthshaper_danger_sense" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_earthshaper_fortitude_of_stone", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Stones' Fortitude", "str_pl": "Scrolls of Stones' Fortitude" }, + "description": "Like the unyielding stone, lessen your need for food or water.", + "use_action": { "type": "learn_spell", "spells": [ "earthshaper_fortitude_of_stone" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_earthshaper_turning_of_earth", + "//": "Earthshaper spell", + "name": { "str": "Scroll of the Turning of the Earth", "str_pl": "Scrolls of the Turning of the Earth" }, + "description": "Ask the earth spirits to prepare the earth for planting and sowing.", + "use_action": { "type": "learn_spell", "spells": [ "earthshaper_turning_of_earth" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_druid_harvest_hunter", + "//": "Druid spell", + "name": { "str": "Scroll of Harvest of the Hunter", "str_pl": "Scrolls of Harvest of the Hunter" }, + "description": "Create usable arrows out of forest detritus.", + "use_action": { "type": "learn_spell", "spells": [ "druid_harvest_hunter" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_animist_sense_outsiders", + "//": "Animist spell", + "name": { "str": "Scroll of Sense Outsiders", "str_pl": "Scrolls of Sense Outsiders" }, + "description": "Open your mystic senses and locate the things that should not be.", + "use_action": { "type": "learn_spell", "spells": [ "animist_sense_outsiders" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_kelvinist_anti_cold", + "//": "Kelvinist spell", + "name": { "str": "Scroll of Cloak of Warmth", "str_pl": "Scrolls of Cloak of Warmth" }, + "description": "Winter-be-gone through the power of of modern magic.", + "use_action": { "type": "learn_spell", "spells": [ "kelvinist_anti_cold" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_kelvinist_anti_heat", + "//": "Kelvinist spell", + "name": { "str": "Scroll of Cloak of Chill", "str_pl": "Scrolls of Cloak of Chill" }, + "description": "Summer-be-gone through the power of of modern magic.", + "use_action": { "type": "learn_spell", "spells": [ "kelvinist_anti_heat" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_magus_slowfall", + "//": "Magus spell", + "name": { "str": "Scroll of Slowfall", "str_pl": "Scrolls of Slowfall" }, + "description": "Who's afraid of heights? Not you, after you learn this spell.", + "use_action": { "type": "learn_spell", "spells": [ "magus_slowfall" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_magus_spiderclimb", + "//": "Magus spell", + "name": { "str": "Scroll of Spider Climb", "str_pl": "Scrolls of Spider Climb" }, + "description": "Free climb better than the best.", + "use_action": { "type": "learn_spell", "spells": [ "magus_spiderclimb" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_biomancer_swim_frog", + "//": "Biomancer spell", + "name": { "str": "Scroll of Limbs of the Frog", "str_pl": "Scrolls of Limbs of the Frog" }, + "description": "Swim with the fishes, with your froggy hands and legs.", + "use_action": { "type": "learn_spell", "spells": [ "biomancer_swim_frog" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_biomancer_giant_growth", + "//": "Biomancer spell", + "name": { "str": "Scroll of Giant Growth", "str_pl": "Scrolls of Giant Growth" }, + "description": "Grow to enormous size and crush your enemies.", + "use_action": { "type": "learn_spell", "spells": [ "biomancer_giant_growth" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_biomancer_remove_instability", + "//": "Biomancer spell", + "name": { "str": "Formula of Restore Genetic Stability", "str_pl": "Formulae of Restore Genetic Stability" }, + "description": "This research paper has an extremely complicated series of formulae with various genetic interspersed. It claims that the spell will cure the aftereffects of XE037 overexposure.", + "use_action": { "type": "learn_spell", "spells": [ "biomancer_remove_instability" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_biomancer_carrion_feast", + "//": "Biomancer spell", + "name": { "str": "Scroll of Carrion Feast", "str_pl": "Scrolls of Carrion Feast" }, + "description": "Eat rotten food with no ill effects. It doesn't make it taste any better, though.", + "use_action": { "type": "learn_spell", "spells": [ "biomancer_carrion_feast" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_classless_watch_spell", + "//": "Classless spell", + "name": { "str": "Scroll of Knowing the Day and the Hour", "str_pl": "Scrolls of Knowing the Day and the Hour" }, + "description": "Cast this spell to know exactly what time it is. You're amazed anyone is still making these scrolls; this spell might as well be a museum piece.", + "use_action": { "type": "learn_spell", "spells": [ "classless_watch_spell" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_magus_teleport_mark", + "//": "Magus spell", + "name": { "str": "Scroll of Magus's Mark", "str_pl": "Scrolls of Magus's Mark" }, + "description": "Mark an area to be aetherically resonant so that you can easily find it later; for example, by using the Word of Recall spell.", + "use_action": { "type": "learn_spell", "spells": [ "magus_teleport_mark" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_magus_word_of_recall", + "//": "Magus spell", + "name": { "str": "Scroll of Word of Recall", "str_pl": "Scrolls of Word of Recall" }, + "description": "The counterpart to Magus's Mark, reciting this simple spell will instantly return you to wherever it was that you cast that spell.", + "use_action": { "type": "learn_spell", "spells": [ "magus_word_of_recall" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_animist_summon_watcher", + "//": "Animist spell", + "name": { "str": "Scroll of Summon Watcher Spirit", "str_pl": "Scrolls of Summon Watcher Spirit" }, + "description": "Summon a spirit through whose eyes you can see. This spell was frowned upon pre-Cataclysm due to the potential for misuse, but its many legitimate uses kept it on the curriculum at major universities' thaumaturgical studies departments.", + "use_action": { "type": "learn_spell", "spells": [ "animist_summon_watcher" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_druid_beguile_savage_beast", + "//": "Druid spell", + "name": { "str": "Scroll of Beguiling the Savage Beast", "str_pl": "Scrolls of Beguiling the Savage Beast" }, + "description": "Charm an animal into your service for a time. They don't even technically have to be savage!", + "use_action": { "type": "learn_spell", "spells": [ "druid_beguile_savage_beast" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_technomancer_robot_shutdown", + "//": "Technomancer spell", + "name": { "str": "Scroll of Shutdown", "str_pl": "Scrolls of Shutdown" }, + "description": "Stop a robot, golem, or cyborg in their tracks. Be perfectly prepared for a different kind of apocalypse.", + "use_action": { "type": "learn_spell", "spells": [ "technomancer_robot_shutdown" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_technomancer_conjure_radio", + "//": "Technomancer spell", + "name": { "str": "Scroll of Speak through the Aether", "str_pl": "Scrolls of Speak through the Aether" }, + "description": "Summon up a magical device that allows you to communicate through radio waves. Well, maybe there's someone still out there.", + "use_action": { "type": "learn_spell", "spells": [ "technomancer_conjure_radio" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_technomancer_conjure_ups", + "//": "Technomancer spell", + "name": { "str": "Scroll of Power Supply", "str_pl": "Scrolls of Power Supply" }, + "description": "Power all of your devices using mana instead of electricity.", + "use_action": { "type": "learn_spell", "spells": [ "technomancer_conjure_ups" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_technomancer_welder", + "//": "Technomancer spell", + "name": { "str": "Scroll of Voltaic Touch", "str_pl": "Scrolls of Voltaic Touch" }, + "description": "Weld metal using touch alone. It'll do a number on a zombie too.", + "use_action": { "type": "learn_spell", "spells": [ "technomancer_welder" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_earthshaper_granite_aegis", + "//": "Earthshaper spell", + "name": { "str": "Scroll of Granite Aegis", "str_pl": "Scrolls of Granite Aegis" }, + "description": "When the going gets tough, the tough summon yards-thick walls of solid rock around themselves.", + "use_action": { "type": "learn_spell", "spells": [ "earthshaper_granite_aegis" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_druid_bramble_spear", + "//": "Druid spell", + "name": { "str": "Scroll of Spear of Brambles", "str_pl": "Scrolls of Spear of Brambles" }, + "description": "Transform a long stick into a spear that drips with sticky sap.", + "use_action": { "type": "learn_spell", "spells": [ "druid_bramble_spear" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_druid_summon_tanglevine", + "//": "Druid spell", + "name": { "str": "Scroll of Summon Tanglevine", "str_pl": "Scrolls of Summon Tanglevine" }, + "description": "Conjure a lashing bunch of animated vines that will grab and hold your enemies.", + "use_action": { "type": "learn_spell", "spells": [ "druid_summon_tanglevine" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_druid_thornskin", + "//": "Druid spell", + "name": { "str": "Scroll of Thornskin", "str_pl": "Scrolls of Thornskin" }, + "description": "Transform your skin into bark covered in sharp thorns.", + "use_action": { "type": "learn_spell", "spells": [ "druid_thorn_skin" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_druid_summon_brambles", + "//": "Druid spell", + "name": { "str": "Scroll of Stranglethorns", "str_pl": "Scrolls of Stranglethorns" }, + "description": "Conjure a bunch of thick brambles out of the ground to either form a wall or slow your enemies.", + "use_action": { "type": "learn_spell", "spells": [ "druid_summon_brambles" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_stormshaper_cloak_of_fog", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Cloak of Fog", "str_pl": "Scrolls of Cloak of Fog" }, + "description": "Summon up a large cloud of mist that will conceal your movements from your enemies.", + "use_action": { "type": "learn_spell", "spells": [ "stormshaper_cloak_of_fog" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_stormshaper_heart_of_hurricane", + "//": "Stormshaper spell", + "name": { "str": "Scroll of Heart of the Hurricane", "str_pl": "Scrolls of Heart of the Hurricane" }, + "description": "Compress raging storm winds into a shell around you to protect you.", + "use_action": { "type": "learn_spell", "spells": [ "stormshaper_heart_of_hurricane" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_stormshaper_cloak_of_frog", + "//": "Stormshaper spell", + "name": { "str": "Scribbled Scroll" }, + "description": "Someone has scribbled on this scroll in…colored pencil? You're pretty sure whatever it does now isn't the spell's original function.", + "use_action": { "type": "learn_spell", "spells": [ "stormshaper_cloak_of_frog" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_biomancer_lashing_tentacles", + "//": "Biomancer spell", + "name": { "str": "Scroll of Lashing Tentacles", "str_pl": "Scrolls of Lashing Tentacles" }, + "description": "Grow a pair of barbed tentacles from your shoulders that will attack enemies in melee range.", + "use_action": { "type": "learn_spell", "spells": [ "biomancer_lashing_tentacles" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_biomancer_cure_disease_minor", + "//": "Biomancer spell", + "name": { "str": "Scroll of Cure Disease, Minor", "str_pl": "Scrolls of Cure Disease, Minor" }, + "description": "Snap your fingers and get rid of that nasty cold or flu.", + "use_action": { "type": "learn_spell", "spells": [ "biomancer_cure_disease_minor" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_classless_dispel_magic", + "//": "Classless spell", + "name": { "str": "Scroll of Dispel Magic", "str_pl": "Scrolls of Dispel Magic" }, + "description": "Enemy wizards got you down? Just remove all their magic and punch them in the face.", + "use_action": { "type": "learn_spell", "spells": [ "classless_dispel_magic" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_classless_disjunction", + "//": "Classless spell", + "name": { "str": "Scroll of Disjunction", "str_pl": "Scrolls of Disjunction" }, + "description": "Remove all magic from your target, even rare or powerful spells. Who's the archmage now?", + "use_action": { "type": "learn_spell", "spells": [ "classless_disjunction" ] } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/spellbooks.json b/data/Mainline_mods/Mods/Magiclysm/items/spellbooks.json index 3a3ff695d..b90d43c45 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/spellbooks.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/spellbooks.json @@ -7,6 +7,7 @@ "weight": "1 g", "volume": "1 ml", "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "magenta", "use_action": { @@ -33,15 +34,19 @@ "type": "BOOK", "category": "manuals", "name": { "str": "A Beginner's Guide to Magic", "str_pl": "copies of A Beginner's Guide to Magic" }, - "//": "2 Magus, 1 classless spell", + "//": "2 Magus, 3 classless spell", "description": "You would describe this as more like a pamphlet than a spellbook, but it seems to have at least one interesting spell you can use.", "weight": "585 g", "volume": "250 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_red", - "use_action": { "type": "learn_spell", "spells": [ "magic_missile", "phase_door", "create_atomic_light" ] } + "use_action": { + "type": "learn_spell", + "spells": [ "magic_missile", "phase_door", "create_atomic_light", "sound_bomb", "classless_watch_spell" ] + } }, { "id": "novice_stormshaper_book", @@ -54,6 +59,7 @@ "volume": "1200 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "shocking_lash", "windrun" ] } @@ -69,11 +75,21 @@ "volume": "1250 ml", "price": 35000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "red", "use_action": { "type": "learn_spell", - "spells": [ "phase_door", "create_lighter", "pain_split", "protection_aura", "magus_force_jar", "druid_healing_herb" ] + "spells": [ + "phase_door", + "create_lighter", + "create_electric_lighter", + "pain_split", + "protection_aura", + "magus_force_jar", + "druid_healing_herb", + "air_bubble" + ] } }, { @@ -87,6 +103,7 @@ "volume": "1 L", "price": 1904, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_red", "use_action": { @@ -98,16 +115,20 @@ "id": "wizard_advanced", "type": "BOOK", "category": "manuals", - "//": "1 Magus, 1 biomancer, 2 kelvinist spells", + "//": "1 Magus, 1 biomancer, 2 kelvinist, 1 classless spells", "name": { "str": "A Treatise on Magical Elements", "str_pl": "copies of A Treatise on Magical Elements" }, "description": "This details complex diagrams, rituals, and choreography that describes various spells.", "weight": "920 g", "volume": "750 ml", "price": 30000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_red", - "use_action": { "type": "learn_spell", "spells": [ "point_flare", "ice_spike", "gravity_well", "pain_split" ] } + "use_action": { + "type": "learn_spell", + "spells": [ "point_flare", "ice_spike", "gravity_well", "pain_split", "classless_dispel_magic" ] + } }, { "id": "priest_beginner", @@ -120,6 +141,7 @@ "volume": "500 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_green", "use_action": { "type": "learn_spell", "spells": [ "light_healing", "blinding_flash", "bless" ] } @@ -138,6 +160,7 @@ "volume": "750 ml", "price": 30000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "green", "use_action": { "type": "learn_spell", "spells": [ "smite", "holy_blade", "spirit_armor" ] } @@ -153,6 +176,7 @@ "volume": "1 L", "price": 1904, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_blue", "use_action": { "type": "learn_spell", "spells": [ "cone_cold", "ice_spike", "hoary_blast", "chilling_touch", "frost_spray" ] } @@ -161,18 +185,103 @@ "id": "tome_of_storms", "type": "BOOK", "category": "manuals", - "//": "6 Stormshaper spells", + "//": "7 Stormshaper spells", "name": { "str": "The Tome of The Oncoming Storm", "str_pl": "copies of The Tome of The Oncoming Storm" }, "description": "A large book embossed with crossed lightning bolts and storm clouds, it tingles to the touch.", "weight": "430 g", "volume": "750 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", + "symbol": "?", + "color": "light_gray", + "use_action": { + "type": "learn_spell", + "spells": [ + "electric_arts", + "jolt", + "windstrike", + "windrun", + "storm_hammer", + "stormfist", + "lightning_bolt", + "lightning_blast", + "shocking_dash", + "toxtricity" + ] + } + }, + { + "id": "bioelectricity", + "type": "BOOK", + "category": "manuals", + "//": "6 Stormshaper spells", + "name": { "str": "Bioelectricity, An Arcane Approach", "str_pl": "copies of Bioelectricity, An Arcane Approach" }, + "description": "Small, but thick book, that covers the most recent developments in the field, including real examples.", + "weight": "537 g", + "volume": "930 ml", + "price": 9000, + "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", - "spells": [ "jolt", "windstrike", "windrun", "storm_hammer", "lightning_bolt", "lightning_blast" ] + "spells": [ "electric_arts", "storm_superconductor", "shocking_dash", "toxtricity", "electric_eye", "electric_waves" ] + } + }, + { + "id": "tome_of_wind", + "type": "BOOK", + "category": "manuals", + "//": "5 Stormshaper wind spells", + "name": { "str": "Blow You Away", "str_pl": "copies of Blow You Away" }, + "description": "Big, illustrated book, that describe the unpopular side of stormshaping - the wind control. Despite being less \"cool\", it has more control, and can be as devastating as lightning.", + "weight": "473 g", + "volume": "825 ml", + "price": 7000, + "material": [ "paper" ], + "looks_like": "cookbook", + "symbol": "?", + "color": "light_gray", + "use_action": { + "type": "learn_spell", + "spells": [ + "windstrike", + "windrun", + "stormshaper_wall_of_fog", + "explosive_decompression", + "air_bubble", + "stormshaper_heart_of_hurricane" + ] + } + }, + { + "id": "tome_electric", + "type": "BOOK", + "category": "manuals", + "//": "5 Stormshaper electric spells", + "name": { "str": "How Electromancy Changed the Vietnam War", "str_pl": "copies of How Electromancy Changed the Vietnam War" }, + "description": "Deep work, that tells about the electromancy boom in the 60's, and how the mass military draft of fresh, inexperienced scholars changed the war, with examples of using tactics and spells. Summary says \"it changed nothing\".", + "weight": "378 g", + "volume": "660 ml", + "price": 11700, + "material": [ "paper" ], + "looks_like": "cookbook", + "symbol": "?", + "color": "light_gray", + "use_action": { + "type": "learn_spell", + "spells": [ + "storm_superconductor", + "summon_teravolt", + "storm_hammer", + "stormfist", + "electric_waves", + "electric_eye", + "toxtricity", + "shocking_dash" + ] } }, { @@ -185,6 +294,7 @@ "weight": "355 g", "volume": "500 ml", "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "magenta", "use_action": { "type": "learn_spell", "spells": [ "seismic_stomp", "create_atomic_lamp", "ethereal_grasp" ] } @@ -200,6 +310,7 @@ "volume": "750 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_gray", "use_action": { @@ -227,6 +338,7 @@ "volume": "500 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "red", "use_action": { @@ -245,6 +357,7 @@ "volume": "500 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "green", "use_action": { @@ -271,11 +384,47 @@ "volume": "3 L", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_blue", "use_action": { "type": "learn_spell", - "spells": [ "recover_mana", "recover_bionic_power", "recover_pain", "recover_fatigue", "recover_stamina", "druid_healing" ] + "spells": [ + "recover_mana", + "recover_bionic_power", + "recover_pain", + "recover_fatigue", + "recover_stamina", + "druid_healing", + "convert" + ] + } + }, + { + "id": "farmer_spellbook", + "type": "BOOK", + "category": "manuals", + "name": { "str": "The Farm-Wizard's Almanac", "str_pl": "copies of The Farm-Wizard's Almanac" }, + "//": "2 earthshaper spells, 4 druid spells, 1 stormshaper spell", + "description": "While no longer popular in the age of nitrogen fertilizer and industrial farm equipment, copies of this tome continued to be published for years for a small audience of back-to-nature, do-it-yourself organic mage-farmers.", + "weight": "483 g", + "volume": "825 ml", + "price": 5000, + "material": [ "paper" ], + "looks_like": "cookbook", + "symbol": "?", + "color": "green", + "use_action": { + "type": "learn_spell", + "spells": [ + "earthshaper_turning_of_earth", + "move_earth", + "druid_growth", + "druid_natures_commune", + "druidic_regrowth", + "purify_seed", + "electric_eye" + ] } }, { @@ -289,6 +438,7 @@ "volume": "750 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_gray", "use_action": { @@ -301,33 +451,73 @@ "type": "BOOK", "category": "manuals", "name": { "str": "The Tome of the Hollow Earth", "str_pl": "copies of The Tome of the Hollow Earth" }, - "//": "4 earthshaper spells", - "description": "This large dusty spellbook seems perpetually, well, dusty. It contains the power of the earth.", + "//": "5 earthshaper spells", + "description": "This large dusty spellbook seems perpetually, well, dusty. It contains a considerable amount of earthly power.", "weight": "483 g", "volume": "825 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", + "symbol": "?", + "color": "brown", + "use_action": { + "type": "learn_spell", + "spells": [ "eshaper_rockbolt", "eshaper_shardspray", "eshaper_piercing_bolt", "eshaper_shardstorm", "eshaper_impalement" ] + } + }, + { + "id": "eshaper_spellbook_melee", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Memoirs of the Champion of Earth", "str_pl": "copies of Memoirs of the Champion of Earth" }, + "//": "5 earthshaper spells", + "description": "A book written by someone obviously very self-absorbed who describes himself as \"Chosen of Gaia, the Only Champion of Terra\". Despite his arrogance, his mastery in combining different earthshaper's abilities as described in the book make him an accomplished sorcerer worth learning from.", + "weight": "247 g", + "volume": "398 ml", + "price": 9000, + "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "brown", "use_action": { "type": "learn_spell", - "spells": [ "eshaper_rockbolt", "eshaper_shardspray", "eshaper_piercing_bolt", "eshaper_shardstorm" ] + "spells": [ "pertifying_touch", "earthshaper_stoneskin", "reactive_armor", "eshaper_melee_damage", "eshaper_crystal_wrap" ] } }, + { + "id": "eshaper_spellbook_tool", + "type": "BOOK", + "category": "manuals", + "name": { "str": "One Spell is All You Need!", "str_pl": "copies of One Spell is All You Need!" }, + "//": "1 earthshaper spell. yes, the whole book is only for one, that's the idea", + "description": "This advertising booklet promotes one spell that allows you to create a different tool for different purposes. Surprisingly, it works as the book says - you can change the shape of your tool, depending on your needs.", + "weight": "83 g", + "volume": "132 ml", + "price": 1000, + "material": [ "paper" ], + "looks_like": "cookbook", + "symbol": "?", + "color": "brown", + "use_action": { "type": "learn_spell", "spells": [ "eshaper_spawn_tools" ] } + }, { "id": "magus_spellbook_move", "type": "BOOK", "category": "manuals", "name": { "str": "The Tome of Magical Movement", "str_pl": "copies of The Tome of Magical Movement" }, - "//": "3 Magus spells", + "//": "5 Magus spells", "description": "This small lightweight book seems to almost not entirely exist, let's say it 97% does. It contains Magus spells focused on movement.", "weight": "231 g", "volume": "500 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_gray", - "use_action": { "type": "learn_spell", "spells": [ "phase_door", "magus_escape", "magus_haste" ] } + "use_action": { + "type": "learn_spell", + "spells": [ "phase_door", "magus_escape", "magus_haste", "magus_slowfall", "magus_spiderclimb" ] + } }, { "id": "summon_scroll_smudged", @@ -340,6 +530,7 @@ "volume": "100 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "summon_bear" ] } @@ -355,9 +546,13 @@ "volume": "2250 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_gray", - "use_action": { "type": "learn_spell", "spells": [ "summon_zombie", "summon_skeleton", "summon_decayed_pouncer" ] } + "use_action": { + "type": "learn_spell", + "spells": [ "summon_undead", "summon_undead_swarm", "convert", "dominate", "life_detonation" ] + } }, { "id": "techno_fundamentals", @@ -370,6 +565,7 @@ "volume": "750 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_gray", "use_action": { @@ -388,6 +584,7 @@ "volume": "500 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "taze", "quantum_tunnel_lesser" ] } @@ -406,6 +603,7 @@ "volume": "1 L", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "taze", "laze", "technomancer_knifeshot" ] } @@ -421,6 +619,7 @@ "volume": "750 ml", "price": 30000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_red", "use_action": { "type": "learn_spell", "spells": [ "wrathful_spirits", "spirit_walk", "ethereal_grasp" ] } @@ -436,6 +635,7 @@ "volume": "2500 ml", "price": 5000, "material": [ "stone" ], + "looks_like": "material_shrd_limestone", "symbol": "?", "color": "light_gray", "use_action": { "type": "learn_spell", "spells": [ "soulrend", "wrathful_spirits" ] } @@ -451,6 +651,7 @@ "volume": "2500 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "light_blue", "use_action": { "type": "learn_spell", "spells": [ "translocate_self" ] } @@ -465,9 +666,10 @@ "volume": "5000 ml", "price": 7500, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "brown", - "use_action": { "type": "learn_spell", "spells": [ "focused_bolt", "rupture", "disruption_bolt", "cause_rot" ] } + "use_action": { "type": "learn_spell", "spells": [ "focused_bolt", "rupture", "disruption_bolt", "cause_rot", "devour" ] } }, { "id": "stat_up_spellbook", @@ -480,8 +682,57 @@ "volume": "2500 ml", "price": 5000, "material": [ "paper" ], + "looks_like": "cookbook", "symbol": "?", "color": "yellow", "use_action": { "type": "learn_spell", "spells": [ "cats_grace", "ogres_strength", "foxs_cunning", "eagles_sight" ] } + }, + { + "id": "magic_movement_book", + "type": "BOOK", + "name": { "str": "Wherever You've Gone, There You Can Be", "str_pl": "copies of Wherever You've Gone, There You Can Be" }, + "//": "3 Magus spells, 1 Technomancer spell", + "description": "A very sarcastically-written guide to using magic to get into and out of places you absolutely are not supposed to be.", + "weight": "1200 g", + "volume": "2500 ml", + "price": 7500, + "material": [ "paper" ], + "looks_like": "cookbook", + "symbol": "?", + "color": "brown", + "use_action": { + "type": "learn_spell", + "spells": [ "magus_teleport_mark", "magus_word_of_recall", "magus_spiderclimb", "quantum_tunnel_lesser" ] + } + }, + { + "id": "prepper_spellbook", + "type": "BOOK", + "category": "manuals", + "name": { + "str": "It's the End of the World, But You'll Feel Fine", + "str_pl": "copies of It's the End of the World, But You'll Feel Fine" + }, + "//": "3 Druid spells, 1 Earthshaper spell, 1 Biomancer spell, 2 Kelvinist spells", + "description": "This thick paperback book is a collection of the proper magical preparations to survive various disasters. Unfortunately, the zombie apocalypse section doesn't account for everything that's gone wrong in the Cataclysm, but there's still a lot of useful knowledge here.", + "weight": "473 g", + "volume": "825 ml", + "price": 3500, + "material": [ "paper" ], + "looks_like": "cookbook", + "symbol": "?", + "color": "yellow", + "use_action": { + "type": "learn_spell", + "spells": [ + "druid_harvest_hunter", + "druid_naturebow1", + "biomancer_carrion_feast", + "purify_seed", + "earthshaper_turning_of_earth", + "create_lighter", + "kelvinist_anti_cold" + ] + } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/tools.json b/data/Mainline_mods/Mods/Magiclysm/items/tools.json index ea9425fef..7363271a3 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/tools.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/tools.json @@ -10,14 +10,14 @@ "price": 2000, "to_hit": -1, "looks_like": "clay_hydria", - "bashing": 1, "material": [ "demon_chitin" ], "symbol": ")", "color": "red", "pocket_data": [ { "open_container": true, "watertight": true, "max_contains_volume": "16 L", "max_contains_weight": "50 kg" } ], "//": "I went ahead and gave this a level of 2 for when magical mutagens become a thing as I figured dragonblood for instance should need different tools than making alpha mutagen.", "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "MAGIC_MUTAGEN", 2 ], [ "MAGIC_CAULDRON", 1 ] ], - "use_action": [ "HEAT_FOOD" ] + "use_action": [ "HEAT_FOOD" ], + "melee_damage": { "bash": 1 } }, { "id": "cauldron_orichalcum", @@ -30,13 +30,13 @@ "price": "750 USD", "to_hit": -4, "looks_like": "canning_pot", - "bashing": 6, "material": [ "orichalcum_metal" ], "symbol": "U", "color": "yellow", "pocket_data": [ { "open_container": true, "watertight": true, "max_contains_volume": "16 L", "max_contains_weight": "50 kg" } ], "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "MAGIC_MUTAGEN", 1 ], [ "MAGIC_CAULDRON", 2 ] ], - "use_action": [ "HEAT_FOOD" ] + "use_action": [ "HEAT_FOOD" ], + "melee_damage": { "bash": 6 } }, { "id": "demon_forge", @@ -47,14 +47,14 @@ "volume": "8 L", "price": 200000, "to_hit": -2, - "bashing": 9, "material": [ "demon_chitin" ], "symbol": ";", "color": "red", "ammo": [ "alumentum" ], "sub": "forge", "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "alumentum": 500 } } ], - "flags": [ "ALLOWS_REMOTE_USE" ] + "flags": [ "ALLOWS_REMOTE_USE" ], + "melee_damage": { "bash": 9 } }, { "type": "GENERIC", @@ -69,7 +69,7 @@ "material": [ "powder_nonflam" ], "weight": "2340 g", "volume": "1 L", - "bashing": 4 + "melee_damage": { "bash": 4 } }, { "id": "sewing_kit", @@ -91,6 +91,8 @@ "kevlar", "kevlar_layered", "gutskin", + "denim", + "canvas", "demon_chitin", "black_dragon_hide" ], @@ -122,6 +124,8 @@ "kevlar_layered", "neoprene", "gutskin", + "denim", + "canvas", "black_dragon_hide", "demon_chitin" ], @@ -156,6 +160,30 @@ "category": "other", "description": "A broken shard of glassteel covered in sharp edges. You could use it as a weapon, but you might want to wear gloves.", "material": [ "glassteel" ], - "cutting": 7 + "melee_damage": { "cut": 7 } + }, + { + "id": "magic_circle_rank_1", + "type": "TOOL", + "name": { "str": "Magic Circle Rank 1", "str_pl": "Magic Circles Rank 2" }, + "description": "This is the pseudo-tool provided by having a nearby magic circle. You shouldn't see this as an individual item.", + "symbol": "O", + "color": "red", + "weight": "0 g", + "volume": "0 ml", + "qualities": [ [ "MANA_INFUSE", 1 ], [ "MANA_FOCUS", 1 ] ], + "flags": [ "ZERO_WEIGHT" ] + }, + { + "id": "magic_circle_rank_2", + "type": "TOOL", + "name": { "str": "Magic Circle Rank 2", "str_pl": "Magic Circles Rank 2" }, + "description": "This is the pseudo-tool provided by having a nearby magic circle. You shouldn't see this as an individual item.", + "symbol": "O", + "color": "red", + "weight": "0 g", + "volume": "0 ml", + "qualities": [ [ "MANA_INFUSE", 2 ], [ "MANA_FOCUS", 2 ] ], + "flags": [ "ZERO_WEIGHT" ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/vehicle_parts.json b/data/Mainline_mods/Mods/Magiclysm/items/vehicle_parts.json index 02d0adbe2..518160c84 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/vehicle_parts.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/vehicle_parts.json @@ -3,10 +3,8 @@ "type": "vehicle_part", "id": "bulette_plate", "name": "bulette plating", - "symbol": ")", "categories": [ "warfare" ], "color": "light_gray", - "broken_symbol": ")", "broken_color": "light_gray", "durability": 800, "item": "bulette_plate", @@ -14,6 +12,7 @@ "flags": [ "ARMOR" ], "breaks_into": [ { "item": "leather", "count": [ 1, 2 ] } ], "damage_reduction": { "all": 12 }, - "requirements": { "install": { "skills": [ [ "mechanics", 0 ] ], "time": "1600 s", "using": [ [ "rope_natural", 2 ] ] } } + "requirements": { "install": { "skills": [ [ "mechanics", 0 ] ], "time": "1600 s", "using": [ [ "rope_natural", 2 ] ] } }, + "variants": [ { "symbols": ")", "symbols_broken": ")" } ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/items/weapons.json b/data/Mainline_mods/Mods/Magiclysm/items/weapons.json index cc4492c20..853f96454 100644 --- a/data/Mainline_mods/Mods/Magiclysm/items/weapons.json +++ b/data/Mainline_mods/Mods/Magiclysm/items/weapons.json @@ -11,8 +11,8 @@ "volume": "8 L", "price": 5000, "flags": [ "UNBREAKABLE_MELEE", "ALWAYS_TWOHAND", "TRADER_AVOID", "SLOW_WIELD", "FIREWOOD", "NO_REPAIR" ], - "bashing": 22, - "to_hit": 1 + "to_hit": 1, + "melee_damage": { "bash": 22 } }, { "id": "lizardfolk_trident", @@ -24,9 +24,9 @@ "to_hit": 2, "techniques": [ "WBLOCK_2", "DEF_DISARM", "IMPALE" ], "volume": "3 L", - "cutting": 29, "flags": [ "SPEAR", "REACH_ATTACK", "NONCONDUCTIVE", "DURABLE_MELEE", "SHEATH_SPEAR" ], - "price": 15000 + "price": 15000, + "melee_damage": { "bash": 6, "stab": 29 } }, { "id": "lizardfolk_javelin", diff --git a/data/Mainline_mods/Mods/Magiclysm/lore.md b/data/Mainline_mods/Mods/Magiclysm/lore.md index 8b9427b63..afe097a0d 100644 --- a/data/Mainline_mods/Mods/Magiclysm/lore.md +++ b/data/Mainline_mods/Mods/Magiclysm/lore.md @@ -1,13 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [History](#history) -- [Classes](#classes) - - [Class Characteristics](#class-characteristics) - - - # History Magic is a rather spiritually draining experience. It's just not very comfortable using your mana pool. diff --git a/data/Mainline_mods/Mods/Magiclysm/magic_balance.md b/data/Mainline_mods/Mods/Magiclysm/magic_balance.md index 18fc62143..93b61e170 100644 --- a/data/Mainline_mods/Mods/Magiclysm/magic_balance.md +++ b/data/Mainline_mods/Mods/Magiclysm/magic_balance.md @@ -1,26 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Spells](#spells) - - [Difficulty](#difficulty) - - [Max Level](#max-level) - - [Attack Stats](#attack-stats) - - [Effect](#effect) - - [Energy Source](#energy-source) - - [Casting Time](#casting-time) - - [Energy Cost](#energy-cost) - - [Fields](#fields) - - [Damage Type](#damage-type) - - [Valid targets](#valid-targets) - - [Tier Examples:](#tier-examples) - - [Tier 0](#tier-0) - - [Tier 1](#tier-1) - - [Tier 2](#tier-2) - - [Tier 3](#tier-3) - - - # Spells Spells are incredibly versatile, and can range wildly depending on the JSON values that are assigned to them. As such, spells can be said to reside in various "tiers" that are based on their stats. The tier of spell is not listed in game, but can be derived based on several factors. diff --git a/data/Mainline_mods/Mods/Magiclysm/materials.json b/data/Mainline_mods/Mods/Magiclysm/materials.json index 30b2cbd77..a205176d6 100644 --- a/data/Mainline_mods/Mods/Magiclysm/materials.json +++ b/data/Mainline_mods/Mods/Magiclysm/materials.json @@ -8,18 +8,12 @@ "specific_heat_solid": 0.45, "latent_heat": 273, "soft": true, - "reinforces": true, - "bash_resist": 14, - "cut_resist": 18, - "bullet_resist": 14, - "acid_resist": 4, - "fire_resist": 20, - "elec_resist": 2, "chip_resist": 15, "breathability": "SECOND_SKIN", "dmg_adj": [ "scratched", "cut", "shredded", "tattered" ], "bash_dmg_verb": "ripped", - "cut_dmg_verb": "sliced" + "cut_dmg_verb": "sliced", + "resist": { "bash": 14, "cut": 18, "acid": 4, "heat": 20, "bullet": 14, "electric": 2 } }, { "type": "material", @@ -27,14 +21,7 @@ "name": "Black Dragon Hide", "density": 9, "latent_heat": 333, - "bash_resist": 3, - "cut_resist": 7, - "bullet_resist": 6, - "acid_resist": 40, - "fire_resist": 1, - "elec_resist": 2, "chip_resist": 20, - "reinforces": true, "soft": true, "breathability": "POOR", "repaired_with": "black_dragon_tanned_hide", @@ -45,7 +32,9 @@ { "fuel": 0, "smoke": 0, "burn": 0 }, { "fuel": 1, "smoke": 1, "burn": 1, "volume_per_turn": "100 ml" }, { "fuel": 2, "smoke": 4, "burn": 2 } - ] + ], + "resist": { "bash": 3, "cut": 7, "acid": 40, "heat": 1, "bullet": 6, "electric": 2 }, + "repair_difficulty": 4 }, { "type": "material", @@ -53,14 +42,7 @@ "name": "Black Dragon Scale", "density": 15, "latent_heat": 533, - "bash_resist": 8, - "cut_resist": 9, - "bullet_resist": 8, - "acid_resist": 40, - "fire_resist": 4, - "elec_resist": 3, "chip_resist": 35, - "reinforces": true, "breathability": "AVERAGE", "repaired_with": "dragon_black_scale", "dmg_adj": [ "scratched", "marked", "cracked", "shattered" ], @@ -70,7 +52,9 @@ { "fuel": 0, "smoke": 0, "burn": 0 }, { "fuel": 0, "smoke": 0, "burn": 0 }, { "fuel": 1, "smoke": 1, "burn": 1, "volume_per_turn": "100 ml" } - ] + ], + "resist": { "bash": 8, "cut": 9, "acid": 40, "heat": 4, "bullet": 8, "electric": 3 }, + "repair_difficulty": 6 }, { "type": "material", @@ -81,14 +65,7 @@ "specific_heat_solid": 0.02, "soft": true, "latent_heat": -50, - "bash_resist": 1, - "cut_resist": 3, - "bullet_resist": 10, - "acid_resist": 5, - "fire_resist": 0, - "elec_resist": 3, "chip_resist": 12, - "reinforces": true, "breathability": "MOISTURE_WICKING", "repaired_with": "parabolan_felt_patch", "salvaged_into": "parabolan_felt_patch", @@ -99,7 +76,9 @@ { "fuel": 1, "smoke": 1, "burn": 1, "volume_per_turn": "1250 ml" }, { "fuel": 1, "smoke": 1, "burn": 2 }, { "fuel": 1, "smoke": 1, "burn": 5 } - ] + ], + "resist": { "bash": 1, "cut": 3, "acid": 5, "heat": 0, "bullet": 10, "electric": 3 }, + "repair_difficulty": 3 }, { "type": "material", @@ -109,12 +88,6 @@ "specific_heat_liquid": 4.186, "specific_heat_solid": 2.108, "latent_heat": 333, - "bash_resist": 1, - "cut_resist": 10, - "bullet_resist": 8, - "acid_resist": 3, - "fire_resist": 18, - "elec_resist": 2, "chip_resist": 10, "breathability": "POOR", "repaired_with": "demon_chitin_piece", @@ -126,48 +99,42 @@ { "fuel": 0, "smoke": 1, "burn": 1, "volume_per_turn": "1250 ml" }, { "fuel": 1, "smoke": 3, "burn": 1 }, { "fuel": 1, "smoke": 5, "burn": 5 } - ] + ], + "resist": { "bash": 1, "cut": 10, "acid": 3, "heat": 18, "bullet": 8, "electric": 2 }, + "repair_difficulty": 8 }, { "type": "material", "id": "orichalcum_metal", "name": "Orichalcum", "density": 40, - "bash_resist": 13, "specific_heat_liquid": 0.82, "specific_heat_solid": 0.45, "latent_heat": 273, - "cut_resist": 20, - "bullet_resist": 16, - "acid_resist": 7, - "fire_resist": 3, - "elec_resist": 0, "chip_resist": 40, "repaired_with": "orichalcum_ingot", "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], "bash_dmg_verb": "dented", "cut_dmg_verb": "scratched", - "burn_products": [ [ "scrap_bronze", 1 ] ] + "burn_products": [ [ "scrap_bronze", 1 ] ], + "resist": { "bash": 13, "cut": 20, "acid": 7, "heat": 3, "bullet": 16, "electric": 0 }, + "repair_difficulty": 7 }, { "type": "material", "id": "mithril_metal", "name": "Mithril", "density": 13, - "bash_resist": 13, "specific_heat_liquid": 0.82, "specific_heat_solid": 0.45, "latent_heat": 273, - "cut_resist": 20, - "bullet_resist": 16, - "acid_resist": 10, - "fire_resist": 10, - "elec_resist": 10, "chip_resist": 40, "repaired_with": "mithril_ingot", "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], "bash_dmg_verb": "dented", - "cut_dmg_verb": "scratched" + "cut_dmg_verb": "scratched", + "resist": { "bash": 13, "cut": 20, "acid": 10, "heat": 10, "bullet": 16, "electric": 10 }, + "repair_difficulty": 7 }, { "type": "material", @@ -177,23 +144,20 @@ "specific_heat_liquid": 0.82, "specific_heat_solid": 0.45, "latent_heat": 273, - "bash_resist": 10, - "cut_resist": 6, - "bullet_resist": 19, - "acid_resist": 6, - "fire_resist": 0, - "elec_resist": 10, "chip_resist": 30, "repaired_with": "scrap", "dmg_adj": [ "scratched", "cut", "cracked", "shattered" ], "bash_dmg_verb": "cracked", - "cut_dmg_verb": "scratched" + "cut_dmg_verb": "scratched", + "resist": { "bash": 10, "cut": 6, "acid": 6, "heat": 0, "bullet": 19, "electric": 10 }, + "repair_difficulty": 5 }, { "type": "material", "id": "magical_material", "name": "Magical Material", - "copy-from": "cotton" + "copy-from": "cotton", + "repaired_with": "null" }, { "type": "material", @@ -203,12 +167,6 @@ "specific_heat_liquid": 0.5, "specific_heat_solid": 0.5, "latent_heat": 518, - "bash_resist": 0, - "cut_resist": 0, - "bullet_resist": 0, - "acid_resist": 0, - "fire_resist": 0, - "elec_resist": 0, "chip_resist": 0, "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], "bash_dmg_verb": "damaged", @@ -219,42 +177,31 @@ { "fuel": 900, "smoke": 6, "burn": 3 } ], "fuel_data": { - "energy": "50000000 kJ", + "energy": "50000 kJ", "explosion_data": { "chance_hot": 20, "chance_cold": 1000, "factor": 0.2, "fiery": true, "size_factor": 0.1 } - } + }, + "resist": { "bash": 0, "cut": 0, "acid": 0, "heat": 0, "bullet": 0, "electric": 0 } }, { "type": "material", "id": "blood", "name": "Blood", - "density": 1, - "specific_heat_liquid": 4.186, - "specific_heat_solid": 2.108, - "latent_heat": 333, - "edible": true, - "bash_resist": 0, - "cut_resist": 0, - "bullet_resist": 0, - "acid_resist": 0, - "fire_resist": 1, - "elec_resist": 0, - "chip_resist": 0, - "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], - "bash_dmg_verb": "damaged", - "cut_dmg_verb": "damaged", - "burn_data": [ - { "fuel": -100, "smoke": 1, "burn": 1 }, - { "fuel": -50, "smoke": 2, "burn": 1 }, - { "fuel": -10, "smoke": 2, "burn": 2 } - ], - "fuel_data": { "energy": "1000 kJ" } + "copy-from": "blood", + "fuel_data": { "energy": "1 kJ" } + }, + { + "type": "material", + "id": "hblood", + "name": "Human blood", + "copy-from": "hblood", + "fuel_data": { "energy": "1 kJ" } }, { "type": "material", "id": "tainted_blood", "name": "Tainted blood", "copy-from": "blood", - "fuel_data": { "energy": "5000 kJ" } + "fuel_data": { "energy": "5 kJ" } }, { "type": "material", @@ -281,17 +228,12 @@ "type": "material", "id": "concentrated_mana", "name": "Concentrated Mana", - "density": 38, - "reinforces": false, - "bash_resist": 8, - "cut_resist": 13, - "bullet_resist": 7, - "acid_resist": 12, - "fire_resist": 20, - "elec_resist": 20, + "density": 2, + "soft": true, "chip_resist": 15, "dmg_adj": [ "scratched", "cut", "shredded", "tattered" ], "bash_dmg_verb": "ripped", - "cut_dmg_verb": "sliced" + "cut_dmg_verb": "sliced", + "resist": { "bash": 8, "cut": 13, "acid": 12, "heat": 20, "bullet": 7, "electric": 20 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/migration_and_obsoletion.json b/data/Mainline_mods/Mods/Magiclysm/migration_and_obsoletion.json new file mode 100644 index 000000000..270a29046 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/migration_and_obsoletion.json @@ -0,0 +1,73 @@ +[ + { + "id": "spell_scroll_summon_zombie", + "type": "MIGRATION", + "replace": "spell_scroll_summon_undead" + }, + { + "id": "spell_scroll_summon_skeleton", + "type": "MIGRATION", + "replace": "spell_scroll_summon_undead" + }, + { + "id": "spell_scroll_summon_decayed_pouncer", + "type": "MIGRATION", + "replace": "spell_scroll_summon_undead_swarm" + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_summon_zombie", + "//": "obsoleted", + "name": { "str": "Scroll of Summon Zombie", "str_pl": "Scrolls of Summon Zombie" }, + "description": "An ethereal-looking zombie rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", + "use_action": { "type": "learn_spell", "spells": [ "summon_undead" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_summon_skeleton", + "//": "obsoleted", + "name": { "str": "Scroll of Summon Skeleton", "str_pl": "Scrolls of Summon Skeleton" }, + "description": "A ghostly skeleton rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", + "use_action": { "type": "learn_spell", "spells": [ "summon_undead" ] } + }, + { + "type": "BOOK", + "copy-from": "spell_scroll", + "id": "spell_scroll_summon_decayed_pouncer", + "//": "obsoleted", + "name": { "str": "Scroll of Summon Decayed Pouncer", "str_pl": "Scrolls of Summon Decayed Pouncer" }, + "description": "A decrepit looking large cat rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", + "use_action": { "type": "learn_spell", "spells": [ "summon_decayed_pouncer" ] } + }, + { + "id": "summon_decayed_pouncer", + "type": "SPELL", + "name": "Summon Decayed Pouncer", + "description": "A decrepit looking large cat rises from the depths of the earth to fight for you. You may be able to summon more with a higher level in this spell.", + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 3, + "//": "obsoleted", + "damage_increment": 0.1, + "max_level": -1, + "difficulty": 10, + "spell_class": "ANIMIST", + "effect": "summon", + "effect_str": "mon_zougar", + "shape": "blast", + "energy_source": "HP", + "base_energy_cost": 30, + "//2": "half a minute", + "base_casting_time": 3000, + "min_range": 3, + "max_range": 3, + "min_aoe": 2, + "max_aoe": 2, + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "min_duration": 36000, + "max_duration": 1080000, + "duration_increment": 36000 + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_animist.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_animist.json new file mode 100644 index 000000000..c26ffd21d --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_animist.json @@ -0,0 +1,10 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_perk_caster_level_up_animist", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "perk_caster_level_up_animist" }, + "effect": [ { "arithmetic": [ { "u_val": "spell_level_adjustment", "school": "ANIMIST" }, "+=", { "const": 1 } ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_biomancer.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_biomancer.json new file mode 100644 index 000000000..7df0589cd --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_biomancer.json @@ -0,0 +1,10 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_perk_caster_level_up_biomancer", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "perk_caster_level_up_biomancer" }, + "effect": [ { "arithmetic": [ { "u_val": "spell_level_adjustment", "school": "BIOMANCER" }, "+=", { "const": 1 } ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_druid.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_druid.json new file mode 100644 index 000000000..031b79f15 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_druid.json @@ -0,0 +1,10 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_perk_caster_level_up_druid", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "perk_caster_level_up_druid" }, + "effect": [ { "arithmetic": [ { "u_val": "spell_level_adjustment", "school": "DRUID" }, "+=", { "const": 1 } ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_earthshaper.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_earthshaper.json new file mode 100644 index 000000000..44d45768f --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_earthshaper.json @@ -0,0 +1,10 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_perk_caster_level_up_earthshaper", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "perk_caster_level_up_earthshaper" }, + "effect": [ { "arithmetic": [ { "u_val": "spell_level_adjustment", "school": "EARTHSHAPER" }, "+=", { "const": 1 } ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_kelvinist.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_kelvinist.json new file mode 100644 index 000000000..578a9c800 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_kelvinist.json @@ -0,0 +1,10 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_perk_caster_level_up_kelvinist", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "perk_caster_level_up_kelvinist" }, + "effect": [ { "arithmetic": [ { "u_val": "spell_level_adjustment", "school": "KELVINIST" }, "+=", { "const": 1 } ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_magus.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_magus.json new file mode 100644 index 000000000..8707e9d02 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_magus.json @@ -0,0 +1,10 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_perk_caster_level_up_magus", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "perk_caster_level_up_magus" }, + "effect": [ { "arithmetic": [ { "u_val": "spell_level_adjustment", "school": "MAGUS" }, "+=", { "const": 1 } ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_stormshaper.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_stormshaper.json new file mode 100644 index 000000000..fa0796779 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_stormshaper.json @@ -0,0 +1,10 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_perk_caster_level_up_stormshaper", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "perk_caster_level_up_stormshaper" }, + "effect": [ { "arithmetic": [ { "u_val": "spell_level_adjustment", "school": "STORMSHAPER" }, "+=", { "const": 1 } ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_technomancer.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_technomancer.json new file mode 100644 index 000000000..1f7bcdf25 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkdata/caster_level_up_technomancer.json @@ -0,0 +1,10 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_perk_caster_level_up_technomancer", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_trait": "perk_caster_level_up_technomancer" }, + "effect": [ { "arithmetic": [ { "u_val": "spell_level_adjustment", "school": "TECHNOMANCER" }, "+=", { "const": 1 } ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkmenu.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkmenu.json new file mode 100644 index 000000000..b121e8dfc --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perkmenu.json @@ -0,0 +1,216 @@ +[ + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "and": [ { "not": { "u_has_trait": "perk_caster_level_up_animist" } }, { "u_has_trait": "ANIMIST" } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_CASTER_LEVEL_UP_ANIMIST" + }, + { + "condition": { "and": [ { "not": { "u_has_trait": "perk_caster_level_up_magus" } }, { "u_has_trait": "MAGUS" } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_CASTER_LEVEL_UP_MAGUS" + }, + { + "condition": { "and": [ { "not": { "u_has_trait": "perk_caster_level_up_stormshaper" } }, { "u_has_trait": "STORMSHAPER" } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_CASTER_LEVEL_UP_STORMSHAPER" + }, + { + "condition": { "and": [ { "not": { "u_has_trait": "perk_caster_level_up_kelvinist" } }, { "u_has_trait": "KELVINIST" } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_CASTER_LEVEL_UP_KELVINIST" + }, + { + "condition": { "and": [ { "not": { "u_has_trait": "perk_caster_level_up_earthshaper" } }, { "u_has_trait": "EARTHSHAPER" } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_CASTER_LEVEL_UP_EARTHSHAPER" + }, + { + "condition": { "and": [ { "not": { "u_has_trait": "perk_caster_level_up_technomancer" } }, { "u_has_trait": "TECHNOMANCER" } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_CASTER_LEVEL_UP_TECHNOMANCER" + }, + { + "condition": { "and": [ { "not": { "u_has_trait": "perk_caster_level_up_druid" } }, { "u_has_trait": "DRUID" } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_CASTER_LEVEL_UP_DRUID" + }, + { + "condition": { "and": [ { "not": { "u_has_trait": "perk_caster_level_up_biomancer" } }, { "u_has_trait": "BIOMANCER" } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_CASTER_LEVEL_UP_BIOMANCER" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CASTER_LEVEL_UP_ANIMIST", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_caster_level_up_animist" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CASTER_LEVEL_UP_MAGUS", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_caster_level_up_magus" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CASTER_LEVEL_UP_STORMSHAPER", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_caster_level_up_stormshaper" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CASTER_LEVEL_UP_KELVINIST", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_caster_level_up_kelvinist" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CASTER_LEVEL_UP_EARTHSHAPER", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_caster_level_up_earthshaper" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CASTER_LEVEL_UP_TECHNOMANCER", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_caster_level_up_technomancer" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CASTER_LEVEL_UP_DRUID", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_caster_level_up_druid" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_CASTER_LEVEL_UP_BIOMANCER", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_caster_level_up_biomancer" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perks.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perks.json new file mode 100644 index 000000000..7520ab8dc --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/BombasticPerks/perks.json @@ -0,0 +1,74 @@ +[ + { + "type": "mutation", + "id": "perk_caster_level_up_animist", + "name": { "str": "School Focus: Animist" }, + "points": 0, + "valid": false, + "description": "You have studied this school in particular. +1 caster level for your selected school.", + "category": [ "perk" ] + }, + { + "type": "mutation", + "id": "perk_caster_level_up_magus", + "name": { "str": "School Focus: Magus" }, + "points": 0, + "valid": false, + "description": "You have studied this school in particular. +1 caster level for your selected school.", + "category": [ "perk" ] + }, + { + "type": "mutation", + "id": "perk_caster_level_up_stormshaper", + "name": { "str": "School Focus: Stormshaper" }, + "points": 0, + "valid": false, + "description": "You have studied this school in particular. +1 caster level for your selected school.", + "category": [ "perk" ] + }, + { + "type": "mutation", + "id": "perk_caster_level_up_kelvinist", + "name": { "str": "School Focus: Kelvinist" }, + "points": 0, + "valid": false, + "description": "You have studied this school in particular. +1 caster level for your selected school.", + "category": [ "perk" ] + }, + { + "type": "mutation", + "id": "perk_caster_level_up_earthshaper", + "name": { "str": "School Focus: Earthshaper" }, + "points": 0, + "valid": false, + "description": "You have studied this school in particular. +1 caster level for your selected school.", + "category": [ "perk" ] + }, + { + "type": "mutation", + "id": "perk_caster_level_up_technomancer", + "name": { "str": "School Focus: Technomancer" }, + "points": 0, + "valid": false, + "description": "You have studied this school in particular. +1 caster level for your selected school.", + "category": [ "perk" ] + }, + { + "type": "mutation", + "id": "perk_caster_level_up_druid", + "name": { "str": "School Focus: Druid" }, + "points": 0, + "valid": false, + "description": "You have studied this school in particular. +1 caster level for your selected school.", + "category": [ "perk" ] + }, + { + "type": "mutation", + "id": "perk_caster_level_up_biomancer", + "name": { "str": "School Focus: Biomancer" }, + "points": 0, + "valid": false, + "description": "You have studied this school in particular. +1 caster level for your selected school.", + "category": [ "perk" ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/monster_corpse.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/monster_corpse.json new file mode 100644 index 000000000..9d8864202 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/monster_corpse.json @@ -0,0 +1,66 @@ +[ + { + "type": "GENERIC", + "id": "broken_claygolem_dm", + "symbol": "x", + "color": "brown", + "name": "broken clay golem", + "category": "other", + "description": "A broken clay golem, looking like a piece of post-modern art. Could be smashed for clay.", + "price": 10000, + "material": [ "clay" ], + "weight": "122 kg", + "volume": "120 L", + "to_hit": -3, + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 4, "cut": 4 } + }, + { + "type": "GENERIC", + "id": "broken_plasticgolem_dm", + "symbol": "x", + "color": "light_gray", + "name": "broken plastic golem", + "category": "other", + "description": "A broken plastic golem, like a giant action figure chewed up by an equally giant puppy. You could smash it up into recycled plastic bits.", + "price": 100, + "material": [ "plastic" ], + "weight": "70 kg", + "volume": "150 L", + "to_hit": -3, + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 4, "cut": 4 } + }, + { + "type": "GENERIC", + "id": "broken_stonegolem_dm", + "symbol": "x", + "color": "light_gray", + "name": "broken stone golem", + "category": "other", + "description": "A broken stone golem, not that much different from a big boulder. Could be smashed for stone.", + "price": 10000, + "material": [ "stone" ], + "weight": "162 kg", + "volume": "120 L", + "to_hit": -3, + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 4, "cut": 4 } + }, + { + "type": "GENERIC", + "id": "broken_irongolem_dm", + "symbol": "x", + "color": "dark_gray", + "name": "broken iron golem", + "category": "other", + "description": "A broken iron golem, with all iron you would possibly ever need. Could be smashed for iron.", + "price": 100000, + "material": [ "iron" ], + "weight": "875 kg", + "volume": "120 L", + "to_hit": -5, + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 30 } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/monstergroups.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/monstergroups.json new file mode 100644 index 000000000..d2e3ce9a9 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/monstergroups.json @@ -0,0 +1,41 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_LIZARDFOLK_DM", + "monsters": [ + { "monster": "mon_lizardfolk_warrior_dm", "weight": 900 }, + { "monster": "mon_lizardfolk_warrior_dm", "weight": 20, "pack_size": [ 2, 4 ] }, + { "monster": "mon_lizardfolk_hunter_dm", "weight": 30, "cost_multiplier": 4, "pack_size": [ 1, 2 ] }, + { "monster": "mon_lizardfolk_shaman_dm", "weight": 10, "cost_multiplier": 30 }, + { "monster": "mon_lizardfolk_chieftan_dm", "weight": 10, "cost_multiplier": 50 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_GOLEM_DM", + "monsters": [ + { "monster": "mon_plasticgolem_dm", "weight": 965 }, + { "monster": "mon_claygolem_dm", "weight": 20 }, + { "monster": "mon_stonegolem_dm", "weight": 10 }, + { "monster": "mon_irongolem_dm", "weight": 5 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_GOBLIN_DM", + "monsters": [ + { "monster": "mon_goblin_warrior_dm", "weight": 900 }, + { "monster": "mon_goblin_warrior_dm", "weight": 35, "pack_size": [ 2, 4 ] }, + { "monster": "mon_goblin_slinger_dm", "weight": 65, "pack_size": [ 2, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ORC_DM", + "monsters": [ + { "monster": "mon_orc_warrior_dm", "weight": 960, "cost_multiplier": 5 }, + { "monster": "mon_orc_archer_dm", "weight": 25, "cost_multiplier": 7 }, + { "monster": "mon_orc_blood_warrior_dm", "weight": 15, "cost_multiplier": 5 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/monsters.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/monsters.json new file mode 100644 index 000000000..48039d2da --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/monsters.json @@ -0,0 +1,132 @@ +[ + { + "id": "mon_lizardfolk_warrior_dm", + "copy-from": "mon_lizardfolk_warrior", + "type": "MONSTER", + "species": [ "LIZARDFOLK_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_lizardfolk_hunter_dm", + "copy-from": "mon_lizardfolk_hunter", + "type": "MONSTER", + "species": [ "LIZARDFOLK_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_lizardfolk_shaman_dm", + "copy-from": "mon_lizardfolk_shaman", + "type": "MONSTER", + "species": [ "LIZARDFOLK_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_lizardfolk_chieftan_dm", + "copy-from": "mon_lizardfolk_chieftan", + "type": "MONSTER", + "species": [ "LIZARDFOLK_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_plasticgolem_dm", + "copy-from": "mon_plasticgolem", + "type": "MONSTER", + "species": [ "GOLEM_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_claygolem_dm", + "copy-from": "mon_claygolem", + "type": "MONSTER", + "species": [ "GOLEM_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_stonegolem_dm", + "copy-from": "mon_stonegolem", + "type": "MONSTER", + "species": [ "GOLEM_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_irongolem_dm", + "copy-from": "mon_irongolem", + "type": "MONSTER", + "species": [ "GOLEM_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_goblin_warrior_dm", + "copy-from": "mon_goblin_warrior", + "type": "MONSTER", + "species": [ "GOBLIN_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_goblin_slinger_dm", + "copy-from": "mon_goblin_slinger", + "type": "MONSTER", + "species": [ "GOBLIN_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_orc_warrior_dm", + "copy-from": "mon_orc_warrior", + "type": "MONSTER", + "species": [ "ORC_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_orc_archer_dm", + "copy-from": "mon_orc_archer", + "type": "MONSTER", + "species": [ "ORC_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_orc_blood_warrior_dm", + "copy-from": "mon_orc_blood_warrior", + "type": "MONSTER", + "species": [ "ORC_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/overmap_specials.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/overmap_specials.json new file mode 100644 index 000000000..c377ec5c8 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/overmap_specials.json @@ -0,0 +1,66 @@ +[ + { + "type": "overmap_special", + "id": "Defense Mode Lake Retreat", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 2, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 3, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 4, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 5, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 6, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 1, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 1, 0 ], "overmap": "lake_surface" }, + { "point": [ 2, 1, 0 ], "overmap": "lake_shore" }, + { "point": [ 3, 1, 0 ], "overmap": "lake_shore" }, + { "point": [ 4, 1, 0 ], "overmap": "lake_shore" }, + { "point": [ 5, 1, 0 ], "overmap": "lake_shore" }, + { "point": [ 6, 1, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 2, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 2, 0 ], "overmap": "lake_shore" }, + { "point": [ 2, 2, 0 ], "overmap": "lake_retreat_boathouse_north" }, + { "point": [ 2, 2, 1 ], "overmap": "lake_retreat_boathouse_roof_north" }, + { "point": [ 3, 2, 0 ], "overmap": "forest_thick" }, + { "point": [ 4, 2, 0 ], "overmap": "forest_thick" }, + { "point": [ 5, 2, 0 ], "overmap": "lake_shore" }, + { "point": [ 6, 2, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 3, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 3, 0 ], "overmap": "lake_shore" }, + { "point": [ 2, 3, 0 ], "overmap": "forest" }, + { "point": [ 3, 3, 0 ], "overmap": "lake_retreat_ground_north" }, + { "point": [ 3, 3, 1 ], "overmap": "lake_retreat_z1_north" }, + { "point": [ 3, 3, 2 ], "overmap": "lake_retreat_z2_north" }, + { "point": [ 3, 3, 3 ], "overmap": "lake_retreat_z3_north" }, + { "point": [ 3, 3, 4 ], "overmap": "lake_retreat_z4_north" }, + { "point": [ 4, 3, 0 ], "overmap": "forest" }, + { "point": [ 5, 3, 0 ], "overmap": "lake_shore" }, + { "point": [ 6, 3, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 4, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 4, 0 ], "overmap": "lake_shore" }, + { "point": [ 2, 4, 0 ], "overmap": "forest_thick" }, + { "point": [ 3, 4, 0 ], "overmap": "forest_thick" }, + { "point": [ 4, 4, 0 ], "overmap": "lake_shore" }, + { "point": [ 5, 4, 0 ], "overmap": "lake_shore" }, + { "point": [ 6, 4, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 5, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 5, 0 ], "overmap": "lake_shore" }, + { "point": [ 2, 5, 0 ], "overmap": "lake_shore" }, + { "point": [ 3, 5, 0 ], "overmap": "lake_shore" }, + { "point": [ 4, 5, 0 ], "overmap": "lake_shore" }, + { "point": [ 5, 5, 0 ], "overmap": "lake_surface" }, + { "point": [ 6, 5, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 2, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 3, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 4, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 5, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 6, 6, 0 ], "overmap": "lake_surface" } + ], + "locations": [ "lake_surface" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE", "LAKE" ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/scenarios.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/scenarios.json new file mode 100644 index 000000000..e65f481f4 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/scenarios.json @@ -0,0 +1,8 @@ +[ + { + "copy-from": "defense_mode_fortified", + "type": "scenario", + "extend": { "allowed_locs": [ "sloc_lake_retreat" ] }, + "id": "defense_mode_fortified" + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/species.json b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/species.json new file mode 100644 index 000000000..3673ce643 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mod_interactions/Defense_Mode/species.json @@ -0,0 +1,31 @@ +[ + { + "type": "SPECIES", + "id": "GOBLIN_DM", + "description": "a short and cruel humanoid", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_WEAK" ] + }, + { + "type": "SPECIES", + "id": "LIZARDFOLK_DM", + "description": "a lizard-like humanoid", + "anger_triggers": [ "FRIEND_ATTACKED" ], + "flags": [ "ALL_SEEING", "NEMESIS" ], + "fear_triggers": [ "FIRE" ] + }, + { + "type": "SPECIES", + "id": "GOLEM_DM", + "description": "an automaton, animated by magical forces", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "anger_triggers": [ "HURT", "PLAYER_CLOSE" ] + }, + { + "type": "SPECIES", + "id": "ORC_DM", + "description": "a stocky, green-skinned humanoid", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_WEAK" ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/modinfo.json b/data/Mainline_mods/Mods/Magiclysm/modinfo.json index bfc997045..121b3a43b 100644 --- a/data/Mainline_mods/Mods/Magiclysm/modinfo.json +++ b/data/Mainline_mods/Mods/Magiclysm/modinfo.json @@ -3,7 +3,7 @@ "type": "MOD_INFO", "id": "magiclysm", "name": "Magiclysm", - "authors": [ "KorGgenT", "GuardianDII", "Aptronym", "LaVeyanFiend" ], + "authors": [ "KorGgenT", "GuardianDll", "Aptronym", "LaVeyanFiend" ], "maintainers": [ "KorGgenT" ], "description": "Cataclysm but with magic spells!", "category": "content", @@ -14,6 +14,7 @@ "id": "spellcraft", "name": "spellcraft", "display_category": "display_ranged", + "sort_rank": 14500, "description": "Your skill in the arcane. Represents magic theory and all that entails. A higher skill increases how quickly you can learn spells, and decreases their spell failure chance. You learn this skill by studying books or spells." } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/monster_attacks.json b/data/Mainline_mods/Mods/Magiclysm/monster_attacks.json index 748460872..4eddb4c49 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monster_attacks.json +++ b/data/Mainline_mods/Mods/Magiclysm/monster_attacks.json @@ -27,6 +27,28 @@ "no_dmg_msg_u": "%1$s tries to crush your %2$s with its greatclub, but swings wide and stumbles.", "no_dmg_msg_npc": "%1$s tries to crush 's %2$s with its greatclub, but swings wide and stumbles." }, + { + "id": "teravolt_explosion", + "type": "SPELL", + "name": "Teravolt Explosion", + "description": "Create a giant explosion with spark field. You can see it only in debug mode.", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "RANDOM_AOE", "RANDOM_DAMAGE" ], + "min_damage": 40, + "max_damage": 80, + "min_aoe": 3, + "max_aoe": 6, + "damage_type": "electric", + "field_id": "fd_electricity", + "min_field_intensity": 1, + "max_field_intensity": 7, + "field_intensity_variance": 1, + "field_chance": 1, + "sound_description": "a crackle", + "message": "" + }, { "type": "monster_attack", "attack_type": "melee", @@ -45,5 +67,66 @@ "no_dmg_msg_npc": "%1$s lashes with its flaming whip, but fails to penetrate their armor!", "dodgeable": true, "no_adjacent": true + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "shock_punch", + "cooldown": 1, + "move_cost": 80, + "damage_max_instance": [ { "damage_type": "electric", "amount": 40, "armor_penetration": 8, "armor_multiplier": 2.5 } ], + "hitsize_min": 4, + "effects": [ { "id": "stunned", "duration": 5 } ], + "hit_dmg_u": "Electric current stream through your body!", + "hit_dmg_npc": "Electric current stream through !", + "miss_msg_u": "The %1$s tries to hit you, but you dodge!", + "miss_msg_npc": "The %1$s tries to hit , but they dodge!", + "no_dmg_msg_u": "The %1$s tries to hit you, but fails to penetrate your armor!", + "no_dmg_msg_npc": "The %1$s tries to hit , but fails to penetrate their armor!", + "dodgeable": true + }, + { + "id": "electric_turret_line", + "type": "SPELL", + "name": "Lightning Line Attack", + "description": "Line heat attack for stormcaller's thunder pillar.", + "effect": "attack", + "shape": "cone", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "LOUD", "RANDOM_DAMAGE", "RANDOM_AOE" ], + "min_damage": 55, + "max_damage": 105, + "min_range": 5, + "max_range": 12, + "min_aoe": 15, + "max_aoe": 35, + "field_id": "fd_electricity", + "min_field_intensity": 2, + "max_field_intensity": 5, + "field_chance": 1, + "damage_type": "heat", + "sound_description": "a crackle" + }, + { + "id": "electric_turret_blast", + "type": "SPELL", + "name": "Lightning Blast Attack", + "description": "Blast electric attack for stormcaller's thunder pillar.", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "LOUD", "RANDOM_DAMAGE", "RANDOM_AOE" ], + "min_damage": 40, + "max_damage": 65, + "min_range": 10, + "max_range": 25, + "min_aoe": 2, + "max_aoe": 6, + "field_id": "fd_electricity", + "min_field_intensity": 2, + "max_field_intensity": 5, + "field_chance": 2, + "damage_type": "electric", + "sound_description": "a crackle" } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/monster_factions.json b/data/Mainline_mods/Mods/Magiclysm/monster_factions.json index f5cad0a15..3584d8533 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monster_factions.json +++ b/data/Mainline_mods/Mods/Magiclysm/monster_factions.json @@ -52,5 +52,78 @@ { "type": "MONSTER_FACTION", "name": "elves" + }, + { + "type": "MONSTER_FACTION", + "name": "earth_spirit_faction", + "base_faction": "animal", + "friendly": [ "animal", "herbivore" ], + "hate": [ "zombie", "nether_player_hate", "jabberwock" ] + }, + { + "type": "MONSTER_FACTION", + "name": "forest_spirit_faction", + "base_faction": "animal", + "friendly": [ "animal", "herbivore" ], + "hate": [ "zombie", "fungus", "nether_player_hate", "jabberwock" ] + }, + { + "type": "MONSTER_FACTION", + "name": "magical_plant" + }, + { + "type": "MONSTER_FACTION", + "name": "mi-go", + "copy-from": "mi-go", + "base_faction": "nether", + "friendly": [ "mi-go_summon" ], + "neutral": [ "fish", "yrax", "small_animal", "slime", "passive_machine" ], + "by_mood": [ "nether" ], + "hate": [ "zombie", "triffid", "fungus", "exodii", "isolated_artisans" ] + }, + { + "type": "MONSTER_FACTION", + "name": "mi-go_summon", + "base_faction": "nether", + "friendly": [ "mi-go" ] + }, + { + "type": "MONSTER_FACTION", + "name": "fungus", + "copy-from": "fungus", + "neutral": [ "bot", "fish", "passive_machine", "yrax" ], + "hate": [ "triffid", "forest_spirit_faction" ] + }, + { + "type": "MONSTER_FACTION", + "name": "jabberwock", + "copy-from": "jabberwock", + "neutral": [ "fish" ], + "by_mood": [ "jabberwock" ], + "hate": [ "zombie", "animal", "insect", "mutant", "human", "forest_spirit_faction", "earth_spirit_faction" ] + }, + { + "type": "MONSTER_FACTION", + "name": "nether_player_hate", + "copy-from": "nether_player_hate", + "//": "These creatures aren't necessarily sentient in and of themselves or are drawn to sentient life in and around dimensional breaches.", + "base_faction": "nether", + "friendly": [ "zombie" ], + "neutral": [ "animal" ], + "hate": [ "player", "forest_spirit_faction", "earth_spirit_faction" ] + }, + { + "type": "MONSTER_FACTION", + "name": "animal", + "copy-from": "animal", + "friendly": [ "attack_player_only", "forest_spirit_faction", "earth_spirit_faction" ], + "neutral": [ "small_animal", "fish", "bot", "aquatic_predator", "robofac", "passive_machine", "nether_player_hate" ], + "by_mood": [ "animal" ] + }, + { + "type": "MONSTER_FACTION", + "name": "herbivore", + "copy-from": "herbivore", + "friendly": [ "forest_spirit_faction", "earth_spirit_faction" ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/monstergroups.json b/data/Mainline_mods/Mods/Magiclysm/monstergroups.json index c09923b56..b12a72d17 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monstergroups.json +++ b/data/Mainline_mods/Mods/Magiclysm/monstergroups.json @@ -35,9 +35,29 @@ { "monster": "mon_owlbear_zombie_brute", "weight": 1, "cost_multiplier": 15, "starts": "30 days" }, { "monster": "mon_troll_zombie", "weight": 3, "cost_multiplier": 13 }, { "monster": "mon_yulecat_zombie", "weight": 3, "cost_multiplier": 12 }, - { "monster": "mon_yulecat_zombie_brute", "weight": 1, "cost_multiplier": 25 } + { "monster": "mon_yulecat_zombie_brute", "weight": 1, "cost_multiplier": 25 }, + { + "group": "GROUP_FOREST_SPIRIT", + "weight": 15, + "conditions": [ "SPRING", "SUMMER", "AUTUMN" ], + "cost_multiplier": 3 + }, + { + "group": "GROUP_FOREST_SPIRIT", + "weight": 20, + "conditions": [ "SPRING", "SUMMER", "AUTUMN", "DAY" ], + "cost_multiplier": 3 + }, + { "group": "GROUP_EARTH_SPIRIT", "weight": 5, "cost_multiplier": 3 } ] }, + { + "type": "monstergroup", + "name": "GROUP_FERAL", + "//": "default ferals", + "default": "mon_feral_human_crowbar", + "monsters": [ { "monster": "mon_feral_human_magician", "weight": 2, "cost_multiplier": 2 } ] + }, { "type": "monstergroup", "name": "GROUP_SWAMP", @@ -50,7 +70,8 @@ { "monster": "mon_wisp", "weight": 1, "cost_multiplier": 10, "conditions": [ "NIGHT" ], "pack_size": [ 1, 3 ] }, { "monster": "mon_dragon_black_wyrmling", "weight": 2, "cost_multiplier": 50 }, { "monster": "mon_dragon_black_young", "weight": 1, "cost_multiplier": 65 }, - { "monster": "mon_ogre", "weight": 3, "cost_multiplier": 12 } + { "monster": "mon_ogre", "weight": 3, "cost_multiplier": 12 }, + { "group": "GROUP_FOREST_SPIRIT_SWAMP", "weight": 10, "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] } ] }, { @@ -76,7 +97,34 @@ "pack_size": [ 1, 2 ], "starts": "30 days" }, - { "monster": "mon_yulecat_zombie_brute", "weight": 5, "cost_multiplier": 30, "starts": "30 days" } + { "monster": "mon_yulecat_zombie_brute", "weight": 5, "cost_multiplier": 30, "starts": "30 days" }, + { "group": "GROUP_EARTH_SPIRIT_CAVE", "weight": 50 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB", + "monsters": [ { "monster": "mon_feral_lab_magician", "weight": 25, "cost_multiplier": 5 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB_SURFACE", + "monsters": [ + { "monster": "mon_feral_lab_magician", "weight": 25, "cost_multiplier": 5 }, + { "monster": "mon_feral_radiation_mage", "weight": 2, "cost_multiplier": 10 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_MICROLAB", + "monsters": [ { "monster": "mon_feral_lab_magician", "weight": 2, "cost_multiplier": 5 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB_RESEARCHERS", + "monsters": [ + { "monster": "mon_feral_lab_magician", "weight": 20, "cost_multiplier": 5 }, + { "monster": "mon_feral_radiation_mage", "weight": 1, "cost_multiplier": 10 } ] }, { @@ -162,6 +210,20 @@ { "monster": "mon_irongolem", "weight": 5 } ] }, + { + "name": "GROUP_FROGS_CLOAK", + "//": "Nature frogs with no seasonal limits", + "type": "monstergroup", + "default": "mon_peeper_frog", + "monsters": [ + { "monster": "mon_leo_frog", "weight": 100, "pack_size": [ 1, 4 ] }, + { "monster": "mon_bullfrog_frog", "weight": 100, "pack_size": [ 1, 4 ] }, + { "monster": "mon_fowler_toad", "weight": 100, "pack_size": [ 1, 4 ] }, + { "monster": "mon_freedom_toad", "weight": 100, "pack_size": [ 1, 4 ] }, + { "monster": "mon_peeper_frog", "weight": 100, "pack_size": [ 2, 6 ] }, + { "monster": "mon_gray_frog", "weight": 100, "pack_size": [ 1, 4 ] } + ] + }, { "type": "monstergroup", "name": "GROUP_GOBLIN_STANDARD", @@ -211,5 +273,162 @@ { "monster": "mon_orc_archer", "weight": 25, "cost_multiplier": 7 }, { "monster": "mon_orc_blood_warrior", "weight": 15, "cost_multiplier": 5 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_WORKSHOP", + "default": "mon_workshop_elf", + "monsters": [ { "monster": "mon_workshop_elf", "weight": 100, "cost_multiplier": 2 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_FERAL", + "monsters": [ + { "monster": "mon_feral_elf_pipe", "weight": 20, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_dwarf_pipe", "weight": 20, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_elf_crowbar", "weight": 15, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_dwarf_crowbar", "weight": 15, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_elf_axe", "weight": 5, "cost_multiplier": 2, "pack_size": [ 1, 2 ] }, + { "monster": "mon_feral_dwarf_axe", "weight": 5, "cost_multiplier": 2, "pack_size": [ 1, 2 ] }, + { "monster": "mon_feral_goblin", "weight": 20, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_ravenfolk", "weight": 15, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_lizardfolk", "weight": 10, "pack_size": [ 2, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_FOREST_SPIRIT", + "monsters": [ + { "monster": "mon_mossling", "weight": 24, "cost_multiplier": 1 }, + { "monster": "mon_mossling", "weight": 8, "cost_multiplier": 2, "pack_size": [ 3, 6 ] }, + { "monster": "mon_dryad", "weight": 8, "cost_multiplier": 2 }, + { "monster": "mon_dryad", "weight": 3, "cost_multiplier": 2, "pack_size": [ 2, 4 ] }, + { "monster": "mon_brackenwight", "weight": 5, "cost_multiplier": 5 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_FOREST_SPIRIT_SWAMP", + "monsters": [ + { "monster": "mon_mossling", "weight": 25, "cost_multiplier": 1 }, + { "monster": "mon_mossling", "weight": 10, "cost_multiplier": 2, "pack_size": [ 2, 4 ] }, + { "monster": "mon_brackenwight", "weight": 8, "cost_multiplier": 5 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_EARTH_SPIRIT", + "monsters": [ + { "monster": "mon_earth_gnome", "weight": 25, "cost_multiplier": 1 }, + { "monster": "mon_earth_gnome", "weight": 5, "cost_multiplier": 1, "pack_size": [ 2, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_EARTH_SPIRIT_CAVE", + "monsters": [ + { "monster": "mon_earth_gnome", "weight": 25, "cost_multiplier": 1 }, + { "monster": "mon_earth_gnome", "weight": 15, "cost_multiplier": 3, "pack_size": [ 2, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_MAGIC_FIELD", + "monsters": [ { "group": "GROUP_FOREST", "weight": 2 }, { "group": "GROUP_FOREST_SPIRIT", "weight": 1 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_TRIFFID", + "default": "mon_triffid", + "monsters": [ + { "monster": "mon_triffid_seedshaper", "weight": 25, "cost_multiplier": 5 }, + { "monster": "mon_triffid_vineweaver", "weight": 25, "cost_multiplier": 5 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_TRIFFID_OUTER", + "default": "mon_triffid", + "monsters": [ + { "monster": "mon_triffid_seedshaper", "weight": 50, "cost_multiplier": 2 }, + { "monster": "mon_triffid_vineweaver", "weight": 50, "cost_multiplier": 2 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_TRIFFID_HEARTGUARDS", + "default": "mon_triffid", + "monsters": [ + { "monster": "mon_triffid_seedshaper", "weight": 150, "cost_multiplier": 2 }, + { "monster": "mon_triffid_vineweaver", "weight": 150, "cost_multiplier": 2 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_TRIFFID_HERBALISM_SEEDSHAPER", + "//": "For placing in magic fields", + "monsters": [ + { "monster": "mon_triffid_seedshaper", "weight": 1 }, + { "monster": "mon_triffid", "weight": 1, "pack_size": [ 4, 8 ] }, + { "monster": "mon_vinebeast", "weight": 1, "pack_size": [ 2, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_TRIFFID_HERBALISM_VINEWEAVER", + "//": "For placing in magic fields", + "monsters": [ + { "monster": "mon_triffid_vineweaver", "weight": 1 }, + { "monster": "mon_triffid", "weight": 1, "pack_size": [ 4, 8 ] }, + { "monster": "mon_vinebeast", "weight": 1, "pack_size": [ 2, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_MI-GO_CAMP_OM", + "monsters": [ + { "monster": "mon_mi_go_fleshwarper", "weight": 50, "cost_multiplier": 20, "starts": "210 hours" }, + { "monster": "mon_mi_go_nethermancer", "weight": 50, "cost_multiplier": 20, "starts": "210 hours" } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_MI-GO_BASE_COMMON", + "monsters": [ + { "monster": "mon_mi_go_fleshwarper", "weight": 50, "cost_multiplier": 2, "starts": "210 hours" }, + { "monster": "mon_mi_go_nethermancer", "weight": 50, "cost_multiplier": 2, "starts": "210 hours" } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_MI-GO_BASE_CAPTORS", + "monsters": [ + { "monster": "mon_mi_go_fleshwarper", "weight": 300, "cost_multiplier": 2, "starts": "210 hours" }, + { "monster": "mon_mi_go_nethermancer", "weight": 100, "cost_multiplier": 2, "starts": "210 hours" } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_MI-GO_BASE_BOSS", + "monsters": [ + { "monster": "mon_mi_go_fleshwarper", "weight": 200, "cost_multiplier": 2 }, + { "monster": "mon_mi_go_fleshwarper", "weight": 50, "cost_multiplier": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_mi_go_nethermancer", "weight": 200, "cost_multiplier": 2 }, + { "monster": "mon_mi_go_nethermancer", "weight": 50, "cost_multiplier": 5, "pack_size": [ 2, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_NETHERMANCER_SUMMON", + "default": "mon_blank", + "monsters": [ + { "monster": "mon_flying_polyp_migo", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_hunting_horror_migo", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_unseen_hunter_migo", "weight": 100, "starts": "180 hours" }, + { "monster": "mon_yugg_migo", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_gelatin_migo", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_flaming_eye_migo", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_kreck_migo", "weight": 100, "cost_multiplier": 0 } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/Orcs.json b/data/Mainline_mods/Mods/Magiclysm/monsters/Orcs.json index 4fe89104d..5279d8807 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monsters/Orcs.json +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/Orcs.json @@ -9,7 +9,7 @@ "id": "mon_orc_warrior", "type": "MONSTER", "name": { "str": "orc warrior" }, - "description": "This green brute is a orc warrior. It stares at you menacingly, sword in hand.", + "description": "This green brute is an orc warrior. It stares at you menacingly, sword in hand.", "default_faction": "orcs", "bodytype": "human", "species": [ "ORC" ], @@ -91,7 +91,7 @@ "fake_dex": 9, "fake_per": 5, "require_targeting_player": false, - "description": "The orc shoots you with laser accuracy", + "description": "The orc shoots you with laser accuracy!", "ranges": [ [ 3, 13, "DEFAULT" ] ], "no_ammo_sound": "grunting" } @@ -104,7 +104,7 @@ "type": "MONSTER", "copy-from": "mon_orc_warrior", "name": { "str": "blood orc" }, - "description": "This bloody red brute is a orc warrior. He stares at you menacingly, weapon in hand; this one seems to have bathed himself in the blood of his enemies.", + "description": "This bloody red brute is an orc warrior. He stares at you menacingly, weapon in hand; this one seems to have bathed himself in the blood of his enemies.", "hp": 97, "dodge": 3, "aggression": 100, diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/demon_spider.json b/data/Mainline_mods/Mods/Magiclysm/monsters/demon_spider.json index d43219238..62c5517b2 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monsters/demon_spider.json +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/demon_spider.json @@ -45,17 +45,12 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 7, - "armor_bash": 1, - "armor_cut": 8, - "armor_stab": 8, - "armor_bullet": 8, - "armor_acid": 3, - "armor_fire": 80, "vision_day": 5, "vision_night": 7, "harvest": "demon_spider", "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "STALK", "PLAYER_WEAK", "PLAYER_CLOSE" ], - "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS", "HARDTOSHOOT", "PUSH_MON" ] + "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS", "HARDTOSHOOT", "PUSH_MON" ], + "armor": { "bash": 1, "cut": 8, "stab": 8, "acid": 3, "heat": 80, "bullet": 8 } }, { "id": "mon_demon_spider", @@ -81,18 +76,13 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], "dodge": 4, - "armor_bash": 5, - "armor_cut": 45, - "armor_stab": 60, - "armor_bullet": 60, - "armor_acid": 10, - "armor_fire": 80, "vision_day": 6, "vision_night": 12, "harvest": "demon_spider", "special_attacks": [ { "type": "spell", "spell_data": { "id": "burning_hands", "min_level": 4 }, "cooldown": 20 } ], "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "STALK", "PLAYER_WEAK", "PLAYER_CLOSE" ], - "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS", "HARDTOSHOOT", "PUSH_MON" ] + "flags": [ "SEES", "SMELLS", "HEARS", "VENOM", "WEBWALK", "CLIMBS", "HARDTOSHOOT", "PUSH_MON" ], + "armor": { "bash": 5, "cut": 45, "stab": 60, "acid": 10, "heat": 80, "bullet": 60 } }, { "id": "mon_demon_spider_queen", diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/dragon.json b/data/Mainline_mods/Mods/Magiclysm/monsters/dragon.json index 652e51ea2..50c682e3d 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monsters/dragon.json +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/dragon.json @@ -88,20 +88,31 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 9 } ], "dodge": 5, - "armor_bash": 2, - "armor_cut": 12, - "armor_bullet": 10, - "armor_acid": 600, "vision_day": 30, "vision_night": 20, "path_settings": { "//min_dist": 8, "avoid_traps": true, "avoid_sharp": true }, "harvest": "dragon_black", "special_attacks": [ { "type": "bite", "cooldown": 10 }, - [ "scratch", 7 ], - { "type": "spell", "spell_data": { "id": "dragon_breath_black", "min_level": 4 }, "cooldown": 20 } + { "id": "scratch", "cooldown": 7 }, + { + "id": "black_whelp_breath_prep", + "type": "spell", + "spell_data": { "id": "dragon_deep_breath", "min_level": 4 }, + "cooldown": 20, + "monster_message": "%1$s takes a deep breath!" + }, + { + "id": "black_whelp_breath", + "type": "spell", + "spell_data": { "id": "dragon_breath_black", "min_level": 4 }, + "cooldown": 1, + "condition": { "u_has_effect": "effect_dragon_deep_breath" }, + "monster_message": "%1$s breathes a stream of caustic acid!" + } ], - "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "PATH_AVOID_DANGER_1", "WARM", "SWIMS", "ACIDPROOF", "PUSH_MON", "FLIES" ] + "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "PATH_AVOID_DANGER_1", "WARM", "SWIMS", "ACIDPROOF", "PUSH_MON", "FLIES" ], + "armor": { "bash": 2, "cut": 12, "acid": 600, "bullet": 10 } }, { "id": "mon_dragon_black_young", @@ -117,14 +128,26 @@ "melee_dice": 3, "melee_dice_sides": 10, "melee_damage": [ { "damage_type": "cut", "amount": 16 } ], - "armor_bash": 8, - "armor_cut": 20, - "armor_bullet": 16, "special_attacks": [ { "type": "bite", "cooldown": 10 }, - [ "scratch", 3 ], - { "type": "spell", "spell_data": { "id": "dragon_breath_black", "min_level": 12 }, "cooldown": 20 } - ] + { "id": "scratch", "cooldown": 3 }, + { + "id": "black_young_breath_prep", + "type": "spell", + "spell_data": { "id": "dragon_deep_breath", "min_level": 12 }, + "cooldown": 20, + "monster_message": "%1$s takes a deep breath!" + }, + { + "id": "black_young_breath", + "type": "spell", + "spell_data": { "id": "dragon_breath_black", "min_level": 12 }, + "cooldown": 1, + "condition": { "u_has_effect": "effect_dragon_deep_breath" }, + "monster_message": "%1$s breathes a stream of caustic acid!" + } + ], + "armor": { "acid": 600, "bash": 8, "cut": 20, "bullet": 16 } }, { "id": "mon_dragon_black_adult", @@ -138,9 +161,6 @@ "melee_dice": 4, "melee_dice_sides": 12, "melee_damage": [ { "damage_type": "cut", "amount": 28 } ], - "armor_bash": 14, - "armor_cut": 30, - "armor_bullet": 24, "dodge": 3, "//2": "Large means powerful, but it does not mean fast.", "speed": 100, @@ -148,8 +168,23 @@ "emit_fields": [ { "emit_id": "emit_dragon_adult_fright", "delay": "1 s" } ], "special_attacks": [ { "type": "bite", "cooldown": 10 }, - [ "scratch", 3 ], - { "type": "spell", "spell_data": { "id": "dragon_breath_black", "min_level": 22 }, "cooldown": 30 } - ] + { "id": "scratch", "cooldown": 3 }, + { + "id": "black_wyrm_breath_prep", + "type": "spell", + "spell_data": { "id": "dragon_deep_breath", "min_level": 22 }, + "cooldown": 30, + "monster_message": "%1$s takes a deep breath!" + }, + { + "id": "black_wyrm_breath", + "type": "spell", + "spell_data": { "id": "dragon_breath_black", "min_level": 22 }, + "cooldown": 1, + "condition": { "u_has_effect": "effect_dragon_deep_breath" }, + "monster_message": "%1$s breathes a stream of caustic acid!" + } + ], + "armor": { "acid": 600, "bash": 14, "cut": 30, "bullet": 24 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/feral_fantasy_species.json b/data/Mainline_mods/Mods/Magiclysm/monsters/feral_fantasy_species.json new file mode 100644 index 000000000..106709558 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/feral_fantasy_species.json @@ -0,0 +1,265 @@ +[ + { + "id": "mon_feral_elf_pipe", + "type": "MONSTER", + "copy-from": "mon_feral_human_pipe", + "name": { "str": "feral elf" }, + "description": "Fair folk no longer, this elf's pupils are dilated and what can be seen of the iris and sclera are bloodshot. They clutch a pipe in one delicate hand as they gracefully walk unbothered amidst the zombies.", + "symbol": "E", + "proportional": { "hp": 0.75, "speed": 1.03, "weight": 0.85 }, + "dodge": 3, + "vision_night": 8, + "harvest": "demihuman", + "families": [ "prof_intro_biology", "prof_wp_demihuman" ] + }, + { + "id": "mon_feral_dwarf_pipe", + "type": "MONSTER", + "copy-from": "mon_feral_human_pipe", + "looks_like": "mon_forgedwarves", + "name": { "str": "feral dwarf" }, + "description": "Lacking their normal eye protection, this dwarf's pupils are dilated and what can be seen of the iris and sclera are bloodshot. They clutch a pipe in one hand and the walking dead leave them alone.", + "symbol": "D", + "proportional": { "hp": 1.1, "speed": 0.9, "volume": 0.7, "weight": 0.9 }, + "armor": { "bash": 2 }, + "vision_day": 15, + "vision_night": 20, + "harvest": "demihuman", + "families": [ "prof_intro_biology", "prof_wp_demihuman" ] + }, + { + "id": "mon_feral_elf_crowbar", + "type": "MONSTER", + "copy-from": "mon_feral_human_crowbar", + "name": { "str": "feral elf" }, + "description": "Fair folk no longer, this elf's pupils are dilated and what can be seen of the iris and sclera are bloodshot. They clutch a crowbar in one delicate hand as they gracefully walk unbothered amidst the zombies.", + "symbol": "E", + "proportional": { "hp": 0.75, "speed": 1.03, "weight": 0.85 }, + "dodge": 3, + "vision_night": 8, + "harvest": "demihuman", + "families": [ "prof_intro_biology", "prof_wp_demihuman" ] + }, + { + "id": "mon_feral_dwarf_crowbar", + "type": "MONSTER", + "copy-from": "mon_feral_human_crowbar", + "looks_like": "mon_forgedwarves", + "name": { "str": "feral dwarf" }, + "description": "Lacking their normal eye protection, this dwarf's pupils are dilated and what can be seen of the iris and sclera are bloodshot. They clutch a crowbar in one hand and the walking dead leave them alone.", + "symbol": "D", + "proportional": { "hp": 1.1, "speed": 0.9, "volume": 0.7, "weight": 0.9 }, + "armor": { "bash": 2 }, + "vision_day": 15, + "vision_night": 20, + "harvest": "demihuman", + "families": [ "prof_intro_biology", "prof_wp_demihuman" ] + }, + { + "id": "mon_feral_elf_axe", + "type": "MONSTER", + "copy-from": "mon_feral_human_axe", + "name": { "str": "feral axe-elf" }, + "description": "Dragging a large axe along the ground, this elf's expression is one of twisted glee. Their movements are more fluid than those of the feral humans, but no less unsettling.", + "symbol": "E", + "proportional": { "hp": 0.75, "speed": 1.03, "weight": 0.85 }, + "dodge": 3, + "vision_night": 8, + "harvest": "demihuman", + "families": [ "prof_intro_biology", "prof_wp_demihuman" ] + }, + { + "id": "mon_feral_dwarf_axe", + "type": "MONSTER", + "copy-from": "mon_feral_human_axe", + "looks_like": "mon_forgedwarves", + "name": { "str": "deranged axedwarf" }, + "description": "This dwarf holds the traditional dwarven weapon with none of the skill and craft of the axedwarves of old. The axehead is pitted but still looks sharp, and the zombies around them ignore them as they hold it.", + "symbol": "D", + "proportional": { "hp": 1.1, "speed": 0.9, "volume": 0.7, "weight": 0.9 }, + "armor": { "bash": 2 }, + "vision_day": 15, + "vision_night": 20, + "harvest": "demihuman", + "families": [ "prof_intro_biology", "prof_wp_demihuman" ] + }, + { + "id": "mon_feral_goblin", + "type": "MONSTER", + "name": { "str": "feral goblin" }, + "description": "A goblin out of nightmares, with their already-reddish eyes now bloodshot and staring. Their clothes are tattered and they flex their clawed fingers repeatedly as they walk among the zombies.", + "default_faction": "zombie", + "looks_like": "mon_goblin_warrior", + "bodytype": "human", + "species": [ "GOBLIN" ], + "volume": "32 L", + "weight": "42 kg", + "hp": 40, + "speed": 105, + "material": [ "flesh" ], + "symbol": "g", + "color": "magenta", + "aggression": 30, + "morale": 100, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 6, + "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_child_body" ], + "families": [ "prof_intro_biology", "prof_wp_demihuman", "prof_wp_child" ], + "dodge": 3, + "harvest": "demihuman", + "grab_strength": 20, + "special_attacks": [ + { "id": "bite_humanoid", "attack_upper": false, "cooldown": 2 }, + { "id": "grab" }, + { + "id": "scratch", + "attack_upper": false, + "cooldown": 1, + "damage_max_instance": [ { "damage_type": "cut", "amount": 8 } ] + } + ], + "vision_day": 8, + "vision_night": 25, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_goblin_death_drops", + "upgrades": { "half_life": 90, "into_group": "GROUP_ZOMBIE_UPGRADE" }, + "zombify_into": "mon_zombie", + "fungalize_into": "mon_feral_human_axe_fungal_infected", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "GRABS", "GROUP_BASH", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1" ] + }, + { + "id": "mon_feral_ravenfolk", + "type": "MONSTER", + "name": { "str": "feral ravenfolk" }, + "description": "Wing-feathers tattered, eyes bloodshot, this ravenfolk walks among the dead as though already one of them.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "angel", + "species": [ "RAVENFOLK" ], + "volume": "62500 ml", + "weight": "67500 g", + "hp": 60, + "speed": 110, + "material": [ "flesh" ], + "symbol": "R", + "color": "magenta", + "aggression": 30, + "morale": 100, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 6, + "weakpoint_sets": [ "wps_humanoid_body" ], + "weakpoints": [ + { + "id": "wing", + "name": "the wings", + "crit_mult": { "all": 0.75 }, + "difficulty": { "ranged": 2, "melee": 1 }, + "coverage_mult": { "point": 0.25 }, + "effects": [ { "effect": "staggered", "chance": 15, "message": "The %s is knocked off-balance!", "damage_required": [ 10, 100 ] } ], + "coverage": 12 + } + ], + "families": [ "prof_intro_biology", "prof_wp_demihuman", "prof_wp_basic_bird" ], + "dodge": 3, + "harvest": "demihuman", + "grab_strength": 20, + "special_attacks": [ + [ "SHRIEK_ALERT", 15 ], + { + "type": "monster_attack", + "attack_type": "melee", + "id": "feral_ravenfolk_peck", + "cooldown": 15, + "move_cost": 100, + "damage_max_instance": [ { "damage_type": "stab", "amount": 12, "armor_penetration": 8 } ], + "hitsize_min": 4, + "hit_dmg_u": "%1$s buries its beak in your %2$s!", + "hit_dmg_npc": "%1$s buries its beak in !", + "miss_msg_u": "%1$s tries to peck you, but you dodge!", + "miss_msg_npc": "%1$s tries to peck , but they dodge!", + "no_dmg_msg_u": "%1$s tries to peck your %2$s, but fails to penetrate your armor.", + "no_dmg_msg_npc": "%1$s tries to peck , but fails to penetrate their armor." + }, + { + "id": "scratch", + "attack_upper": true, + "cooldown": 1, + "damage_max_instance": [ { "damage_type": "cut", "amount": 11 } ] + }, + { "type": "leap", "cooldown": 10, "max_range": 6, "message": "%1$s leaps with a flutter of wings!" } + ], + "vision_day": 40, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_ravenfolk_death_drops", + "upgrades": { "half_life": 90, "into_group": "GROUP_ZOMBIE_UPGRADE" }, + "zombify_into": "mon_zombie", + "fungalize_into": "mon_feral_human_axe_fungal_infected", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "GROUP_BASH", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1" ] + }, + { + "id": "mon_feral_lizardfolk", + "type": "MONSTER", + "name": { "str": "feral lizardfolk" }, + "description": "This lizardfolk's eyes are bloodshot and they walk among the dead as though one of them. Their tongue repeatedly flickers in and out of their mouth like a snake.", + "default_faction": "zombie", + "looks_like": "mon_lizardfolk_warrior", + "bodytype": "human", + "species": [ "LIZARDFOLK" ], + "volume": "80 L", + "weight": "100 kg", + "hp": 84, + "speed": 100, + "material": [ "flesh" ], + "symbol": "L", + "color": "magenta", + "aggression": 30, + "morale": 100, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 6, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_wp_demihuman" ], + "dodge": 1, + "armor": { "bash": 3, "cut": 4, "stab": 4, "bullet": 2 }, + "harvest": "lizardfolk", + "special_attacks": [ + { + "id": "scratch", + "attack_upper": true, + "cooldown": 1, + "damage_max_instance": [ { "damage_type": "cut", "amount": 11 } ] + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "lizardfolk_feral_bite", + "cooldown": 12, + "move_cost": 200, + "range": 1, + "//": "With their long muzzles lizardfolk can bite without grabbing, but it's still a little awkward, hence the move cost.", + "damage_max_instance": [ { "damage_type": "stab", "amount": 15 } ], + "min_mul": 0.3, + "hit_dmg_u": "%1$s's lunges forward, and its teeth sink into your %2$s!", + "hit_dmg_npc": "%1$s's lunges forward, and its teeth sink into !", + "no_dmg_msg_u": "%1$s's lunges at your %2$s, but its teeth glance off your armor.", + "no_dmg_msg_npc": "%1$s's lunges at , but its teeth glance off their armor.", + "miss_msg_u": "%s lunges forward to bite you, but you dodge!", + "miss_msg_npc": "%s lunges foward to bite , but they dodge!" + } + ], + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_lizardfolk_death_drops", + "upgrades": { "half_life": 90, "into_group": "GROUP_ZOMBIE_UPGRADE" }, + "zombify_into": "mon_zombie", + "fungalize_into": "mon_feral_human_axe_fungal_infected", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "SWIMS", "GROUP_BASH", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1" ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/feral_wizards.json b/data/Mainline_mods/Mods/Magiclysm/monsters/feral_wizards.json new file mode 100644 index 000000000..960a5879a --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/feral_wizards.json @@ -0,0 +1,157 @@ +[ + { + "id": "mon_feral_lab_magician", + "type": "MONSTER", + "name": { "str": "feral thaumaturgical researcher" }, + "description": "A researcher with the look of the stereotypical academic mage, their lab coat bearing an arcane sigil on the breast pocket. The bloodshot eyes and constant muttering, accompanied by the occasional gesture that releases a burst of sparks, tell you that research is currently far from their minds.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "symbol": "@", + "color": "cyan", + "aggression": 30, + "morale": 100, + "melee_skill": 2, + "melee_dice": 1, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 1, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "special_attacks": [ + { + "id": "feral_thaum_sci_spell_magicmissile", + "type": "spell", + "spell_data": { "id": "magic_missile", "min_level": 3 }, + "cooldown": 10, + "monster_message": "%1$s screams out a word of power!" + }, + { + "id": "feral_thaum_sci_spell_blindflash", + "type": "spell", + "spell_data": { "id": "blinding_flash", "min_level": 0 }, + "cooldown": 15, + "monster_message": "%1$s gestures and light explodes everywhere!" + }, + { + "id": "smash", + "move_cost": 80, + "cooldown": 10, + "damage_max_instance": [ { "damage_type": "bash", "amount": 15, "armor_penetration": 10 } ], + "hitsize_min": 12, + "range": 8, + "throw_strength": 40, + "blockable": false, + "hit_dmg_u": "%1$s gestures at you and a powerful force hurls you through the air!", + "hit_dmg_npc": "%1$s gestures at and a powerful force hurls them through the air!", + "miss_msg_u": "%s gestures at you, and you feel a crushing pressure for a moment before the feeling vanishes!", + "miss_msg_npc": "%s gestures at but nothing happens!" + } + ], + "death_drops": "mon_zombie_research_thaumaturge_death_drops", + "upgrades": { "half_life": 90, "into_group": "GROUP_ZOMBIE_UPGRADE" }, + "zombify_into": "mon_zombie", + "fungalize_into": "mon_feral_human_pipe_fungal_infected", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "GROUP_BASH", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1" ] + }, + { + "id": "mon_feral_radiation_mage", + "type": "MONSTER", + "name": { "str": "feral radiation mage" }, + "description": "A research thaumaturge with the international radiation danger symbol in front of a pentagram on their lab coat. If you had a geiger counter active, it would probably be going crazy right now.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "symbol": "@", + "color": "cyan", + "aggression": 30, + "morale": 100, + "melee_skill": 2, + "melee_dice": 1, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 1, + "harvest": "human", + "emit_fields": [ { "emit_id": "emit_rad_leak", "delay": "5 s" } ], + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "special_attacks": [ + { + "id": "feral_rad_mage_wall_of_fog", + "type": "spell", + "spell_data": { "id": "stormshaper_wall_of_fog", "min_level": 3 }, + "cooldown": 15, + "monster_message": "%1$s gestures and a sudden force slams you to the ground!" + }, + { + "id": "feral_rad_mage_rad_attack", + "type": "spell", + "spell_data": { "id": "feral_rad_mage_rad_spell", "min_level": 5 }, + "cooldown": 25, + "monster_message": "%1$s makes arcane motions and the air is filled with burning gas!" + }, + { + "id": "feral_thaum_sci_spell_mirrorimage", + "type": "spell", + "spell_data": { "id": "mirror_image_rad_mage", "min_level": 0 }, + "cooldown": 15, + "monster_message": "%1$s smiles and duplicates appear!" + }, + { + "id": "feral_thaum_sci_spell_summon_zombie", + "type": "spell", + "spell_data": { "id": "feral_rad_mage_summon_spell", "min_level": 0 }, + "cooldown": 30, + "monster_message": "%1$s intones words of power and a corpse claws its way out of the ground!" + }, + { + "id": "feral_thaum_sci_spell_disjunction", + "type": "spell", + "spell_data": { "id": "disjunction_monster", "min_level": 8 }, + "cooldown": 50, + "monster_message": "%1$s waves their hands in a gesture of negation!" + } + ], + "death_drops": { + "subtype": "collection", + "items": [ { "item": "wrapped_rad_badge", "prob": 80 }, { "group": "mon_zombie_research_thaumaturge_death_drops", "prob": 100 } ] + }, + "upgrades": { "half_life": 90, "into_group": "GROUP_ZOMBIE_UPGRADE" }, + "zombify_into": "mon_zombie", + "fungalize_into": "mon_feral_human_pipe_fungal_infected", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "//": "NO_BREATHE is required so it doesn't kill itself with its own radiation field", + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "NO_BREATHE", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1" + ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/forgedwellers.json b/data/Mainline_mods/Mods/Magiclysm/monsters/forgedwellers.json index 1de54836d..28729b0e1 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monsters/forgedwellers.json +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/forgedwellers.json @@ -22,10 +22,6 @@ "melee_dice": 3, "melee_dice_sides": 10, "melee_damage": [ { "damage_type": "cut", "amount": 9 } ], - "armor_bash": 32, - "armor_cut": 32, - "armor_bullet": 26, - "armor_fire": 30, "dodge": 0, "vision_day": 40, "vision_night": 40, @@ -33,20 +29,21 @@ "special_attacks": [ { "type": "spell", "spell_data": { "id": "manatouched_seeker_bolts", "min_level": 5 }, "cooldown": 60 } ], "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT" ], "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "NO_BREATHE", "PATH_AVOID_DANGER_1", "LOUDMOVES" ] + "flags": [ "SEES", "NO_BREATHE", "PATH_AVOID_DANGER_1", "LOUDMOVES" ], + "armor": { "bash": 32, "cut": 32, "heat": 30, "bullet": 26 } }, { "id": "mon_forgemaster1", "type": "MONSTER", "copy-from": "mon_goblin_chieftain", + "species": [ "GOBLIN_FORGE" ], "name": { "str": "goblin forgemaster" }, "default_faction": "wonder_forge", "aggression": 0, "aggro_character": false, - "armor_fire": 40, - "anger_triggers": [ "FRIEND_ATTACKED", "HURT" ], "description": "A goblin like none you've ever seen before. He directs workers and automatons with confidence and style.", - "death_drops": { "subtype": "collection", "groups": [ [ "forge_life", 40 ], [ "bedroom", 1 ], [ "dresser", 5 ], [ "ammo", 18 ] ] } + "death_drops": { "subtype": "collection", "groups": [ [ "forge_life", 40 ], [ "bedroom", 1 ], [ "dresser", 5 ], [ "ammo", 18 ] ] }, + "armor": { "heat": 40 } }, { "id": "mon_forgemaster2", @@ -57,10 +54,10 @@ "default_faction": "wonder_forge", "aggression": 0, "aggro_character": false, - "armor_fire": 40, "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT" ], "special_attacks": [ { "type": "spell", "spell_data": { "id": "laze" }, "cooldown": 10 }, [ "scratch", 5 ] ], - "death_drops": { "subtype": "collection", "groups": [ [ "forge_life", 40 ], [ "bedroom", 1 ], [ "dresser", 5 ], [ "ammo", 18 ] ] } + "death_drops": { "subtype": "collection", "groups": [ [ "forge_life", 40 ], [ "bedroom", 1 ], [ "dresser", 5 ], [ "ammo", 18 ] ] }, + "armor": { "bash": 2, "cut": 12, "stab": 6, "bullet": 10, "heat": 40 } }, { "id": "mon_forgemaster3", @@ -71,9 +68,9 @@ "copy-from": "mon_gracke", "aggro_character": false, "special_attacks": [ { "type": "spell", "spell_data": { "id": "eshaper_shardspray", "min_level": 5 }, "cooldown": 10 } ], - "armor_fire": 40, "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT" ], - "death_drops": { "subtype": "collection", "groups": [ [ "forge_life", 40 ], [ "bedroom", 1 ], [ "dresser", 5 ], [ "ammo", 18 ] ] } + "death_drops": { "subtype": "collection", "groups": [ [ "forge_life", 40 ], [ "bedroom", 1 ], [ "dresser", 5 ], [ "ammo", 18 ] ] }, + "armor": { "electric": 1, "heat": 40 } }, { "id": "mon_forgedemons", @@ -98,12 +95,14 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 4, + "regenerates": 15, + "regeneration_modifiers": [ [ "corroding", 5 ] ], "vision_day": 30, - "armor_fire": 50, "harvest": "demihuman_large_fur", "death_function": { "effect": { "id": "summon_vengeance", "hit_self": false } }, "special_attacks": [ { "type": "spell", "spell_data": { "id": "demon_breath_fire", "min_level": 7 }, "cooldown": 10 }, [ "scratch", 15 ] ], - "flags": [ "SEES", "SMELLS", "HEARS", "WARM", "BASHES", "ANIMAL", "PATH_AVOID_DANGER_1", "NO_BREATHE" ] + "flags": [ "SEES", "SMELLS", "HEARS", "WARM", "BASHES", "ANIMAL", "PATH_AVOID_DANGER_1", "NO_BREATHE" ], + "armor": { "acid": 80, "heat": 50 } }, { "id": "mon_spirit_vengeance", @@ -122,6 +121,8 @@ "color": "green_yellow", "aggression": 100, "morale": 100, + "regenerates": 25, + "regeneration_modifiers": [ [ "corroding", 15 ] ], "melee_skill": 4, "melee_dice": 2, "melee_dice_sides": 5, @@ -130,10 +131,6 @@ { "damage_type": "heat", "amount": 15, "armor_penetration": 25 } ], "dodge": 5, - "armor_bash": 75, - "armor_cut": 25, - "armor_bullet": 140, - "armor_fire": 140, "vision_day": 60, "vision_night": 40, "luminance": 8, @@ -146,7 +143,8 @@ "monster_message": "The spirit flickers and reappears!" } ], - "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "NOGIB", "STUN_IMMUNE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "NOGIB", "STUN_IMMUNE" ], + "armor": { "bash": 75, "cut": 25, "heat": 140, "bullet": 140 } }, { "id": "mon_forgedwarves", @@ -171,17 +169,14 @@ "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 2, - "armor_bash": 23, - "armor_cut": 32, - "armor_bullet": 26, - "armor_fire": 35, "harvest": "demihuman", "families": [ "prof_wp_demihuman" ], "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet" ], "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT" ], "path_settings": { "avoid_traps": true, "avoid_sharp": true }, "death_drops": { "subtype": "collection", "groups": [ [ "forge_life", 40 ], [ "bedroom", 1 ], [ "dresser", 5 ], [ "ammo", 18 ] ] }, - "flags": [ "SEES", "HEARS", "WARM", "BASHES", "GROUP_BASH", "HUMAN", "PATH_AVOID_DANGER_1" ] + "flags": [ "SEES", "HEARS", "WARM", "BASHES", "GROUP_BASH", "HUMAN", "PATH_AVOID_DANGER_1" ], + "armor": { "bash": 23, "cut": 32, "heat": 35, "bullet": 26 } }, { "id": "mon_forgehounds", diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/golems.json b/data/Mainline_mods/Mods/Magiclysm/monsters/golems.json index 130881acd..dbed4a9c1 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monsters/golems.json +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/golems.json @@ -7,7 +7,6 @@ "default_faction": "robot", "bodytype": "human", "species": [ "GOLEM" ], - "diff": 2, "volume": "120 L", "weight": "122 kg", "hp": 100, @@ -21,14 +20,12 @@ "melee_dice": 2, "melee_dice_sides": 10, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], - "armor_bash": 10, - "armor_cut": 10, - "armor_bullet": 8, "dodge": 0, "vision_day": 40, "vision_night": 40, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ] + "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ], + "armor": { "bash": 10, "cut": 10, "bullet": 8 } }, { "id": "mon_plasticgolem", @@ -46,9 +43,6 @@ "color": "light_gray", "aggression": 30, "morale": 100, - "armor_bash": 15, - "armor_cut": 6, - "armor_bullet": 5, "melee_skill": 5, "melee_dice": 3, "melee_dice_sides": 6, @@ -57,7 +51,8 @@ "vision_night": 30, "regenerates": 4, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "HEARS", "NO_BREATHE", "LOUDMOVES" ] + "flags": [ "SEES", "HEARS", "NO_BREATHE", "LOUDMOVES" ], + "armor": { "bash": 15, "cut": 6, "bullet": 5 } }, { "id": "mon_stonegolem", @@ -67,7 +62,6 @@ "default_faction": "robot", "bodytype": "human", "species": [ "GOLEM" ], - "diff": 2, "volume": "120 L", "weight": "162 kg", "hp": 250, @@ -81,15 +75,13 @@ "melee_dice": 3, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 20, - "armor_cut": 20, - "armor_bullet": 16, "dodge": 0, "vision_day": 40, "vision_night": 40, "special_attacks": [ { "type": "spell", "spell_data": { "id": "rocket_punch", "min_level": 5 }, "cooldown": 10 } ], "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ] + "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ], + "armor": { "bash": 20, "cut": 20, "bullet": 16 } }, { "id": "mon_irongolem", @@ -99,7 +91,6 @@ "default_faction": "robot", "bodytype": "human", "species": [ "GOLEM" ], - "diff": 2, "volume": "120 L", "weight": "945 kg", "hp": 400, @@ -113,14 +104,40 @@ "melee_dice": 3, "melee_dice_sides": 10, "melee_damage": [ { "damage_type": "cut", "amount": 7 } ], - "armor_bash": 32, - "armor_cut": 32, - "armor_bullet": 26, "dodge": 0, "vision_day": 40, "vision_night": 40, "special_attacks": [ { "type": "spell", "spell_data": { "id": "gas_attack", "min_level": 5 }, "cooldown": 60 } ], "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ] + "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ], + "armor": { "bash": 32, "cut": 32, "bullet": 26 } + }, + { + "id": "mon_eshaper_golem", + "type": "MONSTER", + "name": "earthshaper's golem", + "description": "This golem is easy to separate from other golems - the metallic earthshaper's emblem shines on its smooth body, and it's eyes and hands are made out of amethyst.", + "default_faction": "player", + "bodytype": "human", + "species": [ "GOLEM" ], + "volume": "80 L", + "weight": "112 kg", + "hp": 90, + "speed": 85, + "material": [ "stone" ], + "symbol": "X", + "color": "dark_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 6, + "melee_dice": 3, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "cut", "amount": 30 } ], + "dodge": 0, + "vision_day": 40, + "vision_night": 40, + "death_function": { "corpse_type": "BROKEN" }, + "flags": [ "SEES", "NO_BREATHE", "ACIDPROOF", "LOUDMOVES" ], + "armor": { "bash": 15, "cut": 15, "bullet": 12 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/holiday_magiclysm.json b/data/Mainline_mods/Mods/Magiclysm/monsters/holiday_magiclysm.json index e95a34ae0..551ce2299 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monsters/holiday_magiclysm.json +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/holiday_magiclysm.json @@ -21,18 +21,17 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], "dodge": 5, - "armor_bash": 4, - "armor_cut": 1, - "armor_bullet": 4, "vision_night": 12, "path_settings": { "max_dist": 21, "avoid_traps": true, "avoid_sharp": true }, "harvest": "mutant_mammal_fur", "reproduction": { "baby_monster": "mon_yulecat_cub", "baby_count": 6, "baby_timer": 234 }, "baby_flags": [ "WINTER" ], - "special_attacks": [ { "type": "bite", "cooldown": 10 }, [ "GRAB", 8 ], [ "scratch", 6 ] ], + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 10 }, [ "scratch", 6 ] ], "anger_triggers": [ "PLAYER_NEAR_BABY" ], - "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "PATH_AVOID_DANGER_1", "WARM", "GRABS" ], - "zombify_into": "mon_yulecat_zombie" + "flags": [ "SEES", "HEARS", "SMELLS", "GRABS", "KEENNOSE", "PATH_AVOID_DANGER_1", "WARM", "GRABS" ], + "zombify_into": "mon_yulecat_zombie", + "armor": { "bash": 4, "cut": 1, "bullet": 4 } }, { "id": "mon_yulecat_cub", @@ -64,26 +63,26 @@ "default_faction": "elves", "bodytype": "human", "volume": "123 ml", - "weight": "121 kg", + "weight": "38 kg", "hp": 45, "speed": 100, "material": [ "flesh" ], "symbol": "E", "color": "green", - "aggression": 12, + "aggression": 9, "morale": 100, "melee_skill": 4, "melee_dice": 5, "melee_dice_sides": 6, + "fear_triggers": [ "PLAYER_CLOSE" ], + "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED" ], "dodge": 3, - "armor_bash": 6, - "armor_cut": 2, - "armor_bullet": 3, "harvest": "demihuman", "families": [ "prof_wp_demihuman" ], "weakpoint_sets": [ "wps_humanoid_body" ], "path_settings": { "avoid_traps": true, "avoid_sharp": true }, - "flags": [ "SEES", "HEARS", "SMELLS", "PATH_AVOID_DANGER_1", "WARM" ] + "flags": [ "SEES", "HEARS", "SMELLS", "PATH_AVOID_DANGER_1", "WARM", "CORNERED_FIGHTER" ], + "armor": { "bash": 6, "cut": 2, "bullet": 3 } }, { "id": "mon_leprechaun", diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/lizardfolk.json b/data/Mainline_mods/Mods/Magiclysm/monsters/lizardfolk.json index 5293810c6..9ea6281d2 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monsters/lizardfolk.json +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/lizardfolk.json @@ -23,10 +23,6 @@ "melee_dice": 2, "melee_dice_sides": 4, "dodge": 5, - "armor_bash": 2, - "armor_cut": 12, - "armor_bullet": 10, - "armor_stab": 6, "harvest": "lizardfolk", "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet" ], "families": [ "prof_wp_demihuman" ], @@ -50,7 +46,8 @@ "SWARMS", "CAN_OPEN_DOORS", "NO_BREATHE" - ] + ], + "armor": { "bash": 2, "cut": 12, "stab": 6, "bullet": 10 } }, { "id": "mon_lizardfolk_hunter", @@ -92,7 +89,7 @@ "melee_skill": 3, "melee_dice": 2, "melee_dice_sides": 6, - "special_attacks": [ { "type": "spell", "spell_data": { "id": "spell_shaman_base" }, "cooldown": 5 }, [ "scratch", 5 ] ], + "special_attacks": [ { "type": "spell", "spell_data": { "id": "spell_shaman_base" }, "cooldown": 10 }, [ "scratch", 5 ] ], "death_drops": { "subtype": "distribution", "items": [ @@ -107,8 +104,8 @@ { "id": "mon_lizardfolk_chieftan", "type": "MONSTER", - "name": "lizardfolk chieftan", - "description": "Among the lizardfolk, ambition is a rare quality. Chieftans earn their place by exhibiting unusually high levels of ambition, often mistaken by outsiders as excessive, brutal violence. This chief is the largest and strongest member of its tribe and carries a fierce trident to compliment its teeth and claws.", + "name": "lizardfolk chieftain", + "description": "Among the lizardfolk, ambition is a rare quality. Chieftains earn their place by exhibiting unusually high levels of ambition, often mistaken by outsiders as excessive, brutal violence. This chief is the largest and strongest member of its tribe and carries a fierce trident to compliment its teeth and claws.", "copy-from": "mon_lizardfolk_warrior", "symbol": "L", "hp": 200, diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/mi-go.json b/data/Mainline_mods/Mods/Magiclysm/monsters/mi-go.json new file mode 100644 index 000000000..e04197b67 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/mi-go.json @@ -0,0 +1,162 @@ +[ + { + "id": "mon_mi_go_fleshwarper", + "type": "MONSTER", + "name": { "str": "mi-go fleshwarper" }, + "description": "An alien creature of uncertain origin. Its shapeless pink body bears numerous sets of paired appendages of unknown function, and a pair of ribbed, membranous wings which seem to be quite useless. Its odd, vaguely pyramid-shaped head bristles with numerous wavering antennae, and it moves with an uncanny fluidity on its many legs. Its flesh occasionally ripples, as though something inside was squirming and trying to get free.", + "default_faction": "mi-go", + "bodytype": "migo", + "species": [ "MIGO" ], + "looks_like": "mon_mi_go", + "volume": "92500 ml", + "weight": "120 kg", + "hp": 240, + "speed": 135, + "diff": 50, + "//": "Speed (and armor values and regeneration) assume additional protective spells", + "material": [ "flesh" ], + "symbol": "&", + "color": "pink", + "aggression": 20, + "morale": 35, + "melee_skill": 6, + "melee_dice": 4, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "dodge": 4, + "regenerates": 2, + "bleed_rate": 50, + "vision_day": 50, + "vision_night": 20, + "harvest": "zombie_meatslug", + "families": [ "prof_wp_demihuman" ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "path_settings": { "max_dist": 50, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "scents_ignored": [ "sc_fetid" ], + "special_attacks": [ + [ "PARROT", 100 ], + { + "id": "scratch", + "damage_max_instance": [ { "damage_type": "cut", "amount": 16, "armor_multiplier": 0.8 } ], + "effects": [ { "id": "effect_flesh_rending", "duration": 10, "affect_hit_bp": true } ] + }, + { + "id": "migo_fleshwarper_blood_spell", + "type": "spell", + "spell_data": { "id": "migo_fleshwarper_blood_poison_spell", "min_level": 5 }, + "cooldown": 20, + "monster_message": "%1$s's numerous antennae move rhythmically for a moment." + }, + { + "id": "migo_fleshwarper_cure_spell", + "type": "spell", + "spell_data": { "id": "monster_heal_spell", "hit_self": true, "min_level": 15 }, + "cooldown": 30, + "monster_message": "%1$s's numerous antennae twitch in all directions for a moment." + }, + { + "id": "migo_fleshwarper_mutate_spell", + "type": "spell", + "spell_data": { "id": "migo_fleshwarper_mutate", "min_level": 1 }, + "cooldown": 50, + "monster_message": "As %1$s touches %3$s, the flesh warps and twists!" + } + ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "WARM", + "BASHES", + "POISON", + "NO_BREATHE", + "ARTHROPOD_BLOOD", + "PATH_AVOID_DANGER_1", + "CAN_OPEN_DOORS", + "PRIORITIZE_TARGETS", + "CORNERED_FIGHTER" + ], + "armor": { "bash": 15, "cut": 20, "stab": 10, "bullet": 10, "electric": 3, "acid": 40 } + }, + { + "id": "mon_mi_go_nethermancer", + "type": "MONSTER", + "name": { "str": "mi-go nethermancer" }, + "description": "An alien creature of uncertain origin. Its shapeless pink body bears numerous sets of paired appendages of unknown function, and a pair of ribbed, membranous wings which seem to be quite useless. Its odd, vaguely pyramid-shaped head bristles with numerous wavering antennae, and it moves with an uncanny fluidity on its many legs. Its carapace is covered in regular patterns which occasionally shift as you look at them before settling into a new configuration.", + "default_faction": "mi-go", + "bodytype": "migo", + "species": [ "MIGO" ], + "looks_like": "mon_mi_go", + "volume": "92500 ml", + "weight": "110 kg", + "hp": 160, + "speed": 120, + "diff": 35, + "material": [ "flesh" ], + "symbol": "&", + "color": "red", + "aggression": 20, + "morale": 30, + "melee_skill": 7, + "melee_dice": 4, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], + "dodge": 4, + "bleed_rate": 75, + "vision_day": 50, + "vision_night": 20, + "harvest": "zombie_meatslug", + "families": [ "prof_wp_demihuman" ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "path_settings": { "max_dist": 50, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "scents_ignored": [ "sc_fetid" ], + "special_attacks": [ + [ "PARROT", 100 ], + { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 12, "armor_multiplier": 0.4 } ] }, + { + "id": "migo_nethermancer_grab", + "type": "spell", + "spell_data": { "id": "sorcerer_hand_monster", "min_level": 2 }, + "cooldown": 15, + "monster_message": "%1$s twitches its antennae at %3$s and %3$s is lifted up and pulled towards them!" + }, + { + "id": "migo_nethermancer_no_escape", + "type": "spell", + "spell_data": { "id": "teleport_anchor_monster", "min_level": 4 }, + "cooldown": 30, + "monster_message": "%1$s's numerous antennae sync their movements for a brief moment." + }, + { + "id": "migo_nethermancer_summon", + "type": "spell", + "spell_data": { "id": "migo_nethermancer_summon_nether", "min_level": 0 }, + "cooldown": 40, + "monster_message": "%1$s's numerous antennae weave in a complicated pattern." + }, + { + "id": "migo_nethermancer_dispel", + "type": "spell", + "spell_data": { "id": "dispel_magic_monster", "min_level": 8 }, + "cooldown": 30, + "monster_message": "%1$s numerous antennae point directlty at %3$s." + } + ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "WARM", + "BASHES", + "POISON", + "NO_BREATHE", + "ARTHROPOD_BLOOD", + "PATH_AVOID_DANGER_1", + "CAN_OPEN_DOORS", + "PRIORITIZE_TARGETS", + "CORNERED_FIGHTER" + ], + "//": "Armor value assumes some kind of space-warping protective spell to defend against bullets (no way to single out arrows from spears etc or I'd add those too)", + "armor": { "bash": 5, "cut": 13, "bullet": 80, "electric": 3 } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/mics.json b/data/Mainline_mods/Mods/Magiclysm/monsters/mics.json new file mode 100644 index 000000000..472b6acf1 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/mics.json @@ -0,0 +1,120 @@ +[ + { + "id": "mon_mirror_image", + "type": "MONSTER", + "name": "hologram", + "description": "An image made from light, nearly identical to the real deal.", + "looks_like": "player", + "default_faction": "factionless", + "species": [ "UNKNOWN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 1, + "speed": 150, + "symbol": "@", + "color": "cyan", + "aggression": -99, + "morale": 2, + "luminance": 16, + "dodge": 6, + "harvest": "exempt", + "fear_triggers": [ "PLAYER_CLOSE" ], + "special_attacks": [ [ "DISAPPEAR", 200 ] ], + "death_function": { "message": "The %s disappears.", "corpse_type": "NO_CORPSE" }, + "flags": [ "FLIES", "NO_BREATHE", "NOT_HALLUCINATION", "HARDTOSHOOT" ] + }, + { + "id": "mon_mirror_image_rad_mage", + "type": "MONSTER", + "copy-from": "mon_mirror_image", + "looks_like": "mon_feral_radiation_mage", + "name": "feral radiation mage", + "description": "A research thaumaturge with the international radiation danger symbol in front of a pentagram on their lab coat. If you had a geiger counter active, it would probably be going crazy right now.", + "default_faction": "zombie", + "species": [ "UNKNOWN" ], + "special_attacks": [ [ "DISAPPEAR", 20 ] ], + "anger_triggers": [ "STALK" ], + "flags": [ "FLIES", "NO_BREATHE", "NOT_HALLUCINATION", "HARDTOSHOOT" ] + }, + { + "id": "mon_animated_blade", + "type": "MONSTER", + "name": "animated blade", + "description": "A conjured glowing longsword that darts and dodges around, slicing and cutting your foes into small pieces.", + "looks_like": "longsword", + "default_faction": "player", + "volume": "62500 ml", + "weight": "81500 g", + "hp": 30, + "speed": 120, + "symbol": "/", + "color": "white", + "aggression": 100, + "morale": 100, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 10, + "melee_damage": [ { "damage_type": "cut", "amount": 10 } ], + "dodge": 6, + "luminance": 16, + "vision_day": 30, + "vision_night": 30, + "material": [ "steel" ], + "harvest": "exempt", + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s melts away." }, + "flags": [ "SEES", "HEARS", "NOHEAD", "HARDTOSHOOT", "FLIES", "PRIORITIZE_TARGETS", "NO_BREATHE", "NOGIB" ], + "armor": { "bash": 15, "cut": 15, "bullet": 15 } + }, + { + "id": "mon_battle_hologram", + "type": "MONSTER", + "name": "hologram", + "description": "Hologram copy of you.", + "looks_like": "player", + "default_faction": "player", + "species": [ "UNKNOWN" ], + "volume": "62500 ml", + "weight": "1 g", + "hp": 1, + "speed": 100, + "symbol": "@", + "color": "cyan", + "aggression": 100, + "morale": 100, + "luminance": 300, + "dodge": 99, + "harvest": "exempt", + "fear_triggers": [ "PLAYER_CLOSE" ], + "special_attacks": [ [ "DISAPPEAR", 2000 ] ], + "death_function": { "message": "", "corpse_type": "NO_CORPSE" }, + "flags": [ "FLIES", "SEES", "NO_BREATHE", "NOT_HALLUCINATION", "HARDTOSHOOT" ] + }, + { + "id": "mon_watcher_spirit", + "type": "MONSTER", + "name": "watcher spirit", + "description": "A summoned watcher spirit, translucent and barely visible. It gazes all around itself.", + "default_faction": "player", + "bodytype": "blob", + "species": [ "AIR_SPIRIT" ], + "volume": "1500 ml", + "weight": "136 g", + "hp": 20, + "speed": 160, + "material": [ "wind" ], + "symbol": "o", + "color": "white", + "aggression": -10, + "morale": 40, + "melee_skill": 1, + "melee_dice": 1, + "melee_dice_sides": 1, + "dodge": 9, + "vision_day": 30, + "vision_night": 30, + "harvest": "exempt", + "anger_triggers": [ ], + "death_function": { "message": "The %s dissipates in a gust of wind!", "corpse_type": "NO_CORPSE" }, + "flags": [ "SEES", "HEARS", "FLIES", "PATH_AVOID_DANGER_1", "CAMOUFLAGE", "HARDTOSHOOT", "NOGIB", "NOHEAD", "NO_BREATHE" ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/monsters.json b/data/Mainline_mods/Mods/Magiclysm/monsters/monsters.json index 04c3765b9..b60c29a0a 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monsters/monsters.json +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/monsters.json @@ -21,17 +21,17 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], "dodge": 3, - "armor_bash": 5, - "armor_cut": 2, - "armor_bullet": 2, "vision_night": 20, "path_settings": { "max_dist": 25 }, "harvest": "owlbear", "reproduction": { "baby_egg": "egg_owlbear_rock", "baby_count": 1, "baby_timer": 20 }, "baby_flags": [ "SPRING", "SUMMER", "AUTUMN", "WINTER" ], - "special_attacks": [ { "type": "bite", "cooldown": 10 }, [ "GRAB", 7 ], [ "scratch", 7 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "PATH_AVOID_DANGER_1", "WARM", "GRABS", "SWARMS" ], - "zombify_into": "mon_owlbear_zombie" + "//grab": "Assuming they are grabbing you with their paws", + "grab_strength": 50, + "special_attacks": [ { "type": "bite", "cooldown": 10 }, { "id": "grab", "cooldown": 7 }, { "id": "scratch_humanoid", "cooldown": 7 } ], + "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "GRABS", "PATH_AVOID_DANGER_1", "WARM", "GRABS", "SWARMS" ], + "zombify_into": "mon_owlbear_zombie", + "armor": { "bash": 5, "cut": 2, "bullet": 2 } }, { "id": "mon_black_pudding", @@ -55,9 +55,6 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 12, - "armor_stab": 14, - "armor_acid": 15, "harvest": "exempt", "path_settings": { "avoid_traps": true, "avoid_sharp": true }, "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s melts away." }, @@ -69,7 +66,8 @@ "monster_message": "The black pudding burns %3$s with acid!" } ], - "flags": [ "HEARS", "GOODHEARING", "NOHEAD", "POISON", "NO_BREATHE", "ACIDPROOF", "PATH_AVOID_DANGER_1" ] + "flags": [ "HEARS", "GOODHEARING", "NOHEAD", "POISON", "NO_BREATHE", "ACIDPROOF", "PATH_AVOID_DANGER_1" ], + "armor": { "bash": 12, "stab": 14, "acid": 15 } }, { "id": "mon_krabgek", @@ -221,9 +219,6 @@ "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "bash", "amount": 20 }, { "damage_type": "cut", "amount": 10 } ], "dodge": 2, - "armor_bash": 32, - "armor_cut": 30, - "armor_bullet": 24, "harvest": "bulette", "anger_triggers": [ "SOUND" ], "special_attacks": [ @@ -239,7 +234,8 @@ }, [ "SMASH", 10 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "PATH_AVOID_DANGER_1", "WARM", "CAN_DIG", "HIT_AND_RUN", "HARDTOSHOOT" ] + "flags": [ "SEES", "HEARS", "SMELLS", "PATH_AVOID_DANGER_1", "WARM", "CAN_DIG", "HIT_AND_RUN", "HARDTOSHOOT" ], + "armor": { "bash": 32, "cut": 30, "bullet": 24 } }, { "id": "mon_wisp", @@ -305,17 +301,23 @@ "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], "dodge": 1, - "armor_cut": 16, - "armor_bullet": 13, "vision_day": 40, "vision_night": 3, "harvest": "human_large_leather", "families": [ "prof_wp_demihuman" ], "weakpoint_sets": [ "wps_humanoid_body" ], - "special_attacks": [ { "type": "bite", "cooldown": 30 }, [ "GRAB", 15 ], [ "scratch", 15 ], [ "slam", 10 ], [ "SMASH", 30 ] ], + "grab_strength": 50, + "special_attacks": [ + { "id": "bite_humanoid", "cooldown": 30 }, + { "id": "grab", "cooldown": 15 }, + { "id": "scratch_humanoid", "cooldown": 15 }, + [ "slam", 10 ], + [ "SMASH", 30 ] + ], "regenerates": 1, "flags": [ "SEES", "SMELLS", "KEENNOSE", "PATH_AVOID_DANGER_1", "WARM", "GRABS", "FLAMMABLE" ], - "zombify_into": "mon_troll_zombie" + "zombify_into": "mon_troll_zombie", + "armor": { "cut": 16, "bullet": 13 } }, { "id": "mon_stirge", @@ -376,7 +378,7 @@ "id": "mon_baleful_polymorph_frog", "type": "MONSTER", "name": { "str": "frog" }, - "description": "A conspicuously average american bullfrog. You better keep prince charming away from it.", + "description": "A conspicuously average American bullfrog. You better keep prince charming away from it.", "default_faction": "magical_beast", "species": [ "AMPHIBIAN" ], "volume": "750 ml", @@ -445,22 +447,20 @@ "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 6, - "armor_bash": 3, - "armor_cut": 3, - "armor_fire": 50, "vision_night": 7, "harvest": "mammal_fur", "path_settings": { "max_dist": 10 }, "special_attacks": [ { "type": "spell", "spell_data": { "id": "cone_cold", "min_level": 4 }, "cooldown": 25 } ], "anger_triggers": [ "STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "PLAYER_CLOSE" ], "zombify_into": "mon_zolf", - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE", "COLDPROOF" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE", "COLDPROOF" ], + "armor": { "bash": 3, "cut": 3, "heat": 50 } }, { "id": "mon_loup_garou", "type": "MONSTER", "name": { "str": "loup garou" }, - "description": "Previously thought extinct outside of rural Quebec and Louisiana this cursed creature has been known to breed with true wolves when it isn't madly destroying any signs of humanity in it's territory.", + "description": "Previously thought extinct outside of rural Quebec and Louisiana this cursed creature has been known to breed with true wolves when it isn't madly destroying any signs of humanity in its territory.", "default_faction": "wolf", "bodytype": "dog", "categories": [ "WILDLIFE" ], @@ -479,9 +479,6 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 6, - "armor_bash": 48, - "armor_cut": 36, - "armor_bullet": 40, "vision_night": 5, "harvest": "demihuman_fur", "families": [ "prof_wp_demihuman" ], @@ -489,13 +486,14 @@ "path_settings": { "max_dist": 10 }, "anger_triggers": [ "STALK", "FRIEND_ATTACKED", "FRIEND_DIED", "PLAYER_WEAK", "PLAYER_CLOSE" ], "zombify_into": "mon_were_zolf", - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE" ], + "armor": { "bash": 48, "cut": 36, "bullet": 40 } }, { "id": "mon_balrog", "type": "MONSTER", "name": { "str": "fiery nightmare" }, - "description": "A colossal figure which seems to consist entirely of shadows engulfed in flames. Its immense dark wings extend from wall to wall. Two eyes that resemble burning coals are gazing down on you with hatred. In one hand it holds a huge sword, in the other it has a many thonged whip, both glowing with red-hot flames.", + "description": "A colossal figure which seems to consist entirely of shadows engulfed in flames. Their immense dark wings extend from wall to wall. Two eyes that resemble burning coals are gazing down on you with hatred. In one hand they hold a huge sword, in the other a many thonged whip, both glowing with red-hot flames.", "default_faction": "nether", "bodytype": "human", "species": [ "UNKNOWN" ], @@ -511,9 +509,6 @@ "melee_dice": 7, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "heat", "amount": 20 }, { "damage_type": "cut", "amount": 10 } ], - "armor_bash": 12, - "armor_cut": 12, - "armor_bullet": 25, "bleed_rate": 0, "vision_day": 83, "vision_night": 60, @@ -540,7 +535,37 @@ ], "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s melts away." }, "path_settings": { "avoid_traps": true, "avoid_sharp": true }, - "flags": [ "SEES", "WARM", "BASHES", "DESTROYS", "NO_BREATHE", "PUSH_MON", "PUSH_VEH", "FIREY", "PATH_AVOID_DANGER_1" ] + "flags": [ "SEES", "WARM", "BASHES", "DESTROYS", "NO_BREATHE", "PUSH_MON", "PUSH_VEH", "FIREY", "PATH_AVOID_DANGER_1" ], + "armor": { "bash": 12, "cut": 12, "bullet": 25 } + }, + { + "id": "mon_teravolt", + "type": "MONSTER", + "name": "teravolt", + "description": "A small energy sphere that slowly floats towards the target.", + "default_faction": "player", + "species": [ "UNKNOWN" ], + "volume": "750 ml", + "weight": "1 g", + "hp": 1, + "material": [ "concentrated_mana" ], + "symbol": "o", + "aggression": 100, + "morale": 100, + "luminance": 6, + "emit_fields": [ { "emit_id": "emit_spark", "delay": "1 s" } ], + "flags": [ "SEES", "FLIES", "NOHEAD", "NO_BREATHE", "STUN_IMMUNE", "ELECTRIC", "HARDTOSHOOT", "PRIORITIZE_TARGETS" ], + "speed": 40, + "color": "light_green", + "melee_skill": 0, + "melee_dice": 1, + "melee_dice_sides": 1, + "death_function": { + "effect": { "id": "teravolt_explosion", "hit_self": true }, + "message": "The %s explode, creating a giant cloud of sparks.", + "corpse_type": "NO_CORPSE" + }, + "armor": { "electric": 50 } }, { "id": "mon_razor_butterflies", @@ -564,22 +589,20 @@ "melee_damage": [ { "damage_type": "cut", "amount": 15 } ], "dodge": 8, "luminance": 0, - "armor_bash": 0, - "armor_cut": 0, - "armor_bullet": 0, "vision_day": 14, "vision_night": 14, "special_attacks": [ { "type": "leap", "cooldown": 3, "max_range": 2, "allow_no_target": true }, { "id": "cut_throat" } ], "material": [ "iflesh" ], - "death_function": { "message": "A %s dissolves.", "corpse_type": "NO_CORPSE" }, + "death_function": { "message": "The %s dissolves.", "corpse_type": "NO_CORPSE" }, "flags": [ "SEES", "HEARS", "NOHEAD", "HARDTOSHOOT", "FLIES", "NO_BREATHE", "NOGIB", "ATTACKMON", "STUN_IMMUNE", "SWARMS" ], - "//1": "has no HIT_AND_RUN cause they start to be too dumb" + "//1": "has no HIT_AND_RUN cause they start to be too dumb", + "armor": { "bash": 0, "cut": 0, "bullet": 0 } }, { "id": "mon_shambling_mound", "type": "MONSTER", "name": "shambling mound", - "description": "This giant plant mess is one of the oldest magic species in the world. They were very rare before the Cataclysm, but their population has since increased by a lot.", + "description": "This giant plant mess is one of the oldest magic species in the world. They were very rare before the Cataclysm, but their population has since dramatically increased.", "//": "Now only for shaman, todo: make them natural spawn, add harvest, etc", "default_faction": "magical_beast", "volume": "679000 ml", @@ -596,15 +619,118 @@ "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "dodge": 0, "luminance": 0, - "armor_bash": 20, - "armor_cut": 20, - "armor_bullet": 20, "vision_day": 45, "vision_night": 6, "special_attacks": [ { "type": "spell", "spell_data": { "id": "shambling_aoe", "min_level": 0 }, "cooldown": 1 } ], "material": [ "veggy" ], - "death_function": { "message": "A %s dissolves.", "corpse_type": "NO_CORPSE" }, + "death_function": { "message": "The %s dissolves.", "corpse_type": "NO_CORPSE" }, "//1": "PACIFIST because #55528", - "flags": [ "SEES", "HEARS", "WARM", "HARDTOSHOOT", "BASHES", "DESTROYS", "ATTACKMON", "PUSH_MON", "PUSH_VEH", "PACIFIST" ] + "flags": [ "SEES", "HEARS", "WARM", "HARDTOSHOOT", "BASHES", "DESTROYS", "ATTACKMON", "PUSH_MON", "PUSH_VEH", "PACIFIST" ], + "armor": { "bash": 20, "cut": 20, "bullet": 20 } + }, + { + "id": "mon_electric_demon", + "type": "MONSTER", + "name": "electric demon", + "description": "Small, pure electric elemental that jumps from target to target, attacking anything and everything in their sight bar the caster.", + "default_faction": "player", + "volume": "62500 ml", + "weight": "81500 g", + "hp": 70, + "speed": 150, + "symbol": "g", + "color": "yellow", + "aggression": 100, + "morale": 100, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 1, + "dodge": 9, + "luminance": 600, + "vision_day": 30, + "vision_night": 30, + "emit_fields": [ { "emit_id": "emit_electric_sparks", "delay": "1 s" } ], + "special_attacks": [ + { "type": "spell", "spell_data": { "id": "shocking_lash", "min_level": 15 }, "cooldown": 9 }, + { "type": "leap", "cooldown": 7, "max_range": 5, "allow_no_target": true }, + { "id": "shock_punch", "cooldown": 1 } + ], + "harvest": "exempt", + "death_function": { + "effect": { "id": "stormshaper_ionization", "min_level": 30, "hit_self": true }, + "message": "A %s explode!", + "corpse_type": "NO_CORPSE" + }, + "flags": [ + "SEES", + "HEARS", + "NOHEAD", + "HARDTOSHOOT", + "FLIES", + "PRIORITIZE_TARGETS", + "NO_BREATHE", + "NOGIB", + "ATTACKMON", + "ELECTRIC" + ], + "armor": { "bash": 3, "cut": 3, "bullet": 3, "electric": 50 } + }, + { + "id": "mon_electric_turret", + "type": "MONSTER", + "name": "thunder pillar", + "description": "They look like a giant floating stone shard, but are actually an intelligent creature that can use electric branches as their own bodies.", + "default_faction": "player", + "volume": "218500 ml", + "weight": "240000 g", + "hp": 100, + "speed": 100, + "symbol": "8", + "color": "yellow", + "aggression": 100, + "morale": 100, + "luminance": 1200, + "vision_day": 60, + "vision_night": 60, + "emit_fields": [ { "emit_id": "emit_electric_sparks", "delay": "1 s" } ], + "special_attacks": [ + { + "id": "turret_1", + "type": "spell", + "spell_data": { "id": "shocking_lash", "min_level": 20 }, + "monster_message": "The pillar weaves electricity around themself!", + "cooldown": 2 + }, + { + "id": "turret_2", + "type": "spell", + "spell_data": { "id": "electric_turret_line", "min_level": 0 }, + "monster_message": "The pillar weaves electricity around themself!", + "cooldown": 13 + }, + { + "id": "turret_3", + "type": "spell", + "spell_data": { "id": "electric_turret_blast", "min_level": 0 }, + "monster_message": "The pillar weaves electricity around themself!", + "cooldown": 9 + } + ], + "harvest": "exempt", + "death_function": { "message": "The %s dissolves.", "corpse_type": "NO_CORPSE" }, + "flags": [ + "SEES", + "HEARS", + "NOHEAD", + "IMMOBILE", + "FLIES", + "PRIORITIZE_TARGETS", + "NO_BREATHE", + "NOGIB", + "ATTACKMON", + "PACIFIST", + "ELECTRIC" + ], + "armor": { "bash": 7, "cut": 7, "bullet": 7, "electric": 50 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/nature_spirits.json b/data/Mainline_mods/Mods/Magiclysm/monsters/nature_spirits.json new file mode 100644 index 000000000..e775e9732 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/nature_spirits.json @@ -0,0 +1,159 @@ +[ + { + "id": "mon_mossling", + "type": "MONSTER", + "name": "mossling", + "description": "A dog-sized mass of lichen and plant matter, ambling about on a series of short limbs. It looks around the forest floor for fallen leaves to eat.", + "default_faction": "forest_spirit_faction", + "species": [ "FOREST_SPIRIT" ], + "volume": "30000 ml", + "weight": "30 kg", + "bodytype": "dog", + "hp": 30, + "speed": 120, + "symbol": "m", + "color": "green", + "aggression": -30, + "morale": 20, + "aggro_character": false, + "melee_skill": 2, + "melee_dice": 1, + "melee_dice_sides": 5, + "dodge": 5, + "regenerates": 1, + "armor": { "bash": 6, "stab": 8, "bullet": 18, "heat": -30 }, + "vision_day": 30, + "vision_night": 5, + "material": [ "veggy" ], + "fear_triggers": [ "PLAYER_CLOSE" ], + "flags": [ "SEES", "HEARS", "PATH_AVOID_DANGER_1", "HIT_AND_RUN", "PATH_AVOID_FIRE", "FLAMMABLE", "NOHEAD", "NO_BREATHE" ], + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s collapses into a pile of moss." }, + "death_drops": "mossling_drops" + }, + { + "id": "mon_dryad", + "type": "MONSTER", + "name": "dryad", + "description": "You would have thought this was a tree until it suddenly moved. It is human-shaped and human-sized, but with wood for skin and leaves for hair. It regards you impassively.", + "default_faction": "forest_spirit_faction", + "species": [ "FOREST_SPIRIT" ], + "symbol": "d", + "color": "green", + "bodytype": "human", + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 105, + "aggression": -10, + "morale": 80, + "aggro_character": false, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 5, + "dodge": 3, + "regenerates": 1, + "armor": { "bash": 15, "cut": 5, "stab": 30, "bullet": 40, "heat": -30 }, + "vision_day": 35, + "vision_night": 5, + "material": [ "wood" ], + "special_attacks": [ { "id": "scratch", "cooldown": 8 } ], + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT", "FIRE" ], + "flags": [ + "SEES", + "HEARS", + "BASHES", + "GROUP_BASH", + "CAMOUFLAGE", + "PATH_AVOID_DANGER_1", + "NO_BREATHE", + "PATH_AVOID_FIRE", + "FLAMMABLE" + ], + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s collapses into splinters." }, + "death_drops": "dryad_drops" + }, + { + "id": "mon_brackenwight", + "type": "MONSTER", + "name": "brackenwight", + "description": "An animate pile of moss, leaves, sticks, and other forest detritus, towering almost three metres high. Three pits near the top with a lambent green glow might be eyes. It slowly walks on massive limbs.", + "default_faction": "forest_spirit_faction", + "species": [ "FOREST_SPIRIT" ], + "volume": "339500 ml", + "weight": "385 kg", + "bodytype": "human", + "hp": 250, + "speed": 75, + "symbol": "M", + "color": "green", + "aggression": -10, + "morale": 200, + "aggro_character": true, + "melee_skill": 5, + "melee_dice": 2, + "melee_dice_sides": 4, + "dodge": 0, + "regenerates": 3, + "armor": { "bash": 25, "cut": 5, "stab": 20, "bullet": 100, "heat": -20 }, + "//": "Even beyond that it's a spirit, shooting it is like shooting a muddy pile of leaves.", + "vision_day": 35, + "vision_night": 6, + "material": [ "veggy" ], + "special_attacks": [ + { "id": "smash", "attack_upper": true, "throw_strength": 50, "cooldown": 15 }, + { + "id": "spell_brackenwight_root", + "type": "spell", + "spell_data": { "id": "druid_rootstrike", "min_level": 5 }, + "cooldown": 20, + "monster_message": "Questing roots explode out of %1$s toward !" + } + ], + "anger_triggers": [ "FRIEND_DIED", "PLAYER_CLOSE", "FRIEND_ATTACKED", "HURT", "FIRE" ], + "flags": [ "SEES", "HEARS", "BASHES", "DESTROYS", "ATTACKMON", "NO_BREATHE", "PUSH_MON", "PUSH_VEH", "PATH_AVOID_FIRE" ], + "biosignature": { "biosig_item": "withered", "biosig_timer": 12 }, + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s collapses into a massive pile of leaves and sticks." }, + "death_drops": "brackenwight_drops" + }, + { + "id": "mon_earth_gnome", + "type": "MONSTER", + "name": "gnome", + "description": "A small mass of animate stone in the rough shape of a human, with clay for joints. Two gemstone eyes stare at you without blinking.", + "default_faction": "earth_spirit_faction", + "species": [ "EARTH_SPIRIT" ], + "volume": "40 L", + "weight": "54 kg", + "bodytype": "human", + "hp": 100, + "speed": 85, + "material": [ "stone" ], + "symbol": "E", + "color": "brown", + "aggression": -20, + "morale": 100, + "aggro_character": false, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 6 } ], + "armor": { "bash": 6, "stab": 30, "cut": 20, "bullet": 40 }, + "dodge": 0, + "regenerates": 2, + "vision_day": 40, + "vision_night": 15, + "special_attacks": [ + { "id": "smash", "throw_strength": 60, "move_cost": 200, "cooldown": 12, "blockable": true }, + { + "id": "gnome_ground_stomp_spell", + "type": "spell", + "spell_data": { "id": "monster_downed_stomp", "min_level": 3 }, + "cooldown": 8, + "monster_message": "%1$s stomps heavily and the ground shakes!" + } + ], + "death_function": { "message": "The %s collapses into broken stone!", "corpse_type": "NO_CORPSE" }, + "death_drops": "gnome_drops", + "flags": [ "SEES", "HEARS", "NO_BREATHE", "BASHES", "FIREPROOF", "ACIDPROOF", "DIGS", "STUN_IMMUNE" ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/nether.json b/data/Mainline_mods/Mods/Magiclysm/monsters/nether.json new file mode 100644 index 000000000..6bb8ccfd1 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/nether.json @@ -0,0 +1,52 @@ +[ + { + "id": "mon_flying_polyp_migo", + "copy-from": "mon_flying_polyp", + "//": "These and below monsters are so the nethermancer summons are on the mi-go's side.", + "type": "MONSTER", + "name": { "str": "flying polyp" }, + "default_faction": "mi-go_summon" + }, + { + "id": "mon_hunting_horror_migo", + "copy-from": "mon_hunting_horror", + "type": "MONSTER", + "name": { "str": "hunting horror" }, + "default_faction": "mi-go_summon" + }, + { + "id": "mon_unseen_hunter_migo", + "copy-from": "mon_unseen_hunter", + "type": "MONSTER", + "name": { "str": "unseen hunter" }, + "default_faction": "mi-go_summon" + }, + { + "id": "mon_yugg_migo", + "copy-from": "mon_yugg", + "type": "MONSTER", + "name": { "str": "yugg" }, + "default_faction": "mi-go_summon" + }, + { + "id": "mon_gelatin_migo", + "copy-from": "mon_gelatin", + "type": "MONSTER", + "name": { "str": "amoebic mold" }, + "default_faction": "mi-go_summon" + }, + { + "id": "mon_flaming_eye_migo", + "copy-from": "mon_flaming_eye", + "type": "MONSTER", + "name": { "str": "flaming eye" }, + "default_faction": "mi-go_summon" + }, + { + "id": "mon_kreck_migo", + "copy-from": "mon_kreck", + "type": "MONSTER", + "name": { "str": "kreck" }, + "default_faction": "mi-go_summon" + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/plants.json b/data/Mainline_mods/Mods/Magiclysm/monsters/plants.json new file mode 100644 index 000000000..0f9db5d41 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/plants.json @@ -0,0 +1,59 @@ +[ + { + "id": "mon_tanglevine", + "type": "MONSTER", + "name": { "str": "tanglevine" }, + "description": "A thick mass of animated vine, lashing back and forth at anything that comes within reach. Long thorns grow from its sides.", + "species": [ "PLANT" ], + "default_faction": "magical_plant", + "volume": "92500 ml", + "weight": "120 kg", + "hp": 60, + "speed": 80, + "material": [ "veggy" ], + "symbol": "V", + "color": "green", + "aggression": 60, + "morale": 200, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 1, + "grab_strength": 70, + "vision_day": 10, + "vision_night": 10, + "special_attacks": [ + { + "id": "ranged_pull", + "cooldown": 6, + "range": 4, + "damage_max_instance": [ { "damage_type": "stab", "amount": 2 } ], + "hit_dmg_u": "%1$s lashes out and curls around your %2$s!", + "hit_dmg_npc": "%1$s lashes out and curls around 's %2$s!", + "miss_msg_u": "%s lashes out at you, but you dodge!", + "miss_msg_npc": "%s lashes out at , but they dodge!", + "no_dmg_msg_u": "%1$s lashes out at your %2$s!", + "no_dmg_msg_npc": "%1$s lashes out and curls around 's %2$s!" + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "thorn_squeeze", + "cooldown": 3, + "move_cost": 100, + "damage_max_instance": [ { "damage_type": "stab", "amount": 6, "armor_penetration": 30 } ], + "//": "armor penetration here represents that you'll literally surrounded by thorns", + "condition": { "and": [ { "u_has_flag": "GRAB_FILTER" }, { "npc_has_flag": "GRAB" } ] }, + "hit_dmg_u": "%1$s squeezes and its thorns dig into your %2$s!", + "hit_dmg_npc": "%1$s squeezes !", + "miss_msg_u": "%1$s tries to squeeze you, but you fight back!", + "miss_msg_npc": "%1$s tries to squeeze , but they fight back!", + "no_dmg_msg_u": "%1$s squeezes your %2$s, but fails to penetrate your armor.", + "no_dmg_msg_npc": "%1$s squeezes , but fails to penetrate their armor." + } + ], + "dodge": 4, + "death_function": { "message": "The %s rots into nothingness in moments.", "corpse_type": "NO_CORPSE" }, + "flags": [ "HEARS", "GOODHEARING", "IMMOBILE", "NOHEAD", "HARDTOSHOOT", "GRABS", "PLASTIC" ], + "armor": { "bash": 18, "stab": 10, "electric": 3, "bullet": 22 } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/triffids.json b/data/Mainline_mods/Mods/Magiclysm/monsters/triffids.json new file mode 100644 index 000000000..7a1200aea --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/triffids.json @@ -0,0 +1,117 @@ +[ + { + "id": "mon_triffid_vineweaver", + "type": "MONSTER", + "looks_like": "mon_triffid", + "name": { "str": "triffid vineweaver" }, + "description": "A particularly large mobile plant, taller than a moose. It has a single bark-covered stalk supporting a flowery head with a paralyzing sting concealed within. Some of its fronds move in particular patterns, an eldritch light trailing after them. Nature will be healed.", + "default_faction": "triffid", + "species": [ "PLANT" ], + "volume": "77500 ml", + "weight": "100 kg", + "hp": 180, + "speed": 70, + "material": [ "veggy" ], + "symbol": "F", + "color": "green", + "aggression": 20, + "morale": 100, + "melee_skill": 5, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "special_attacks": [ + { + "id": "triffid_vineweaver_brambles", + "type": "spell", + "spell_data": { "id": "triffid_brambles_arc", "min_level": 5 }, + "cooldown": 25, + "monster_message": "%1$s waves its fronds in a deliberate pattern." + }, + { + "id": "triffid_vineweaver_tanglevine", + "type": "spell", + "spell_data": { "id": "triffid_summon_tanglevine", "min_level": 6 }, + "cooldown": 50, + "monster_message": "%1$s waves its fronds toward the ground." + }, + { + "id": "triffid_vineweaver_druid_veggrasp", + "type": "spell", + "spell_data": { "id": "druid_veggrasp", "min_level": 2 }, + "cooldown": 30, + "monster_message": "%1$s twitches its base and roots burst from the ground around %3$s." + } + ], + "vision_day": 30, + "vision_night": 3, + "bleed_rate": 60, + "harvest": "triffid_paralytic", + "dissect": "dissect_plant_sample_single", + "fungalize_into": "mon_fungaloid", + "death_drops": { "subtype": "collection", "items": [ { "item": "triffid_spellbook", "prob": 25 } ] }, + "flags": [ "SEES", "SMELLS", "BASHES", "GROUP_BASH", "NOHEAD", "PARALYZEVENOM" ], + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 2 } + }, + { + "id": "mon_triffid_seedshaper", + "type": "MONSTER", + "name": { "str": "triffid seedshaper" }, + "looks_like": "mon_triffid", + "description": "A creeping mobile plant, as tall as a moose. It has a single bark-covered stalk supporting a flowery head with a paralyzing sting concealed within. A hazy cloud of pollen hangs around it.", + "default_faction": "triffid", + "species": [ "PLANT" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 120, + "speed": 70, + "diff": 25, + "material": [ "veggy" ], + "symbol": "F", + "color": "light_green", + "aggression": 20, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "special_attacks": [ + { + "id": "triffid_seedshaper_pollen", + "type": "spell", + "spell_data": { "id": "triffid_pollen_cone", "min_level": 3 }, + "cooldown": 15, + "monster_message": "%1$s waves its fronds and pollen erupts out in a cone!" + }, + { + "id": "triffid_seedshaper_heal", + "type": "spell", + "spell_data": { "id": "triffid_pollen_heal", "min_level": 4 }, + "cooldown": 30, + "monster_message": "%1$s waves its fronds and a glow surrounds %3$s." + }, + { + "id": "triffid_seedshaper_speed", + "type": "spell", + "spell_data": { "id": "triffid_pollen_speed", "min_level": 6 }, + "cooldown": 25, + "monster_message": "%1$s waves its fronds and %3$s starts moving faster!" + }, + { + "id": "triffid_seedshaper_blind", + "type": "spell", + "spell_data": { "id": "triffid_pollen_blind", "min_level": 6 }, + "cooldown": 35, + "monster_message": "%1$s waves its fronds and golden pollen cascades down over %3$s!" + } + ], + "bleed_rate": 60, + "harvest": "triffid_paralytic", + "emit_fields": [ { "emit_id": "emit_pollen_stream", "delay": "3 s" } ], + "dissect": "dissect_plant_sample_single", + "fungalize_into": "mon_fungaloid", + "death_drops": { "subtype": "collection", "items": [ { "item": "triffid_spellbook", "prob": 25 } ] }, + "flags": [ "SEES", "SMELLS", "BASHES", "GROUP_BASH", "NOHEAD", "PARALYZEVENOM" ], + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 2 } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/monsters/zombified_monsters.json b/data/Mainline_mods/Mods/Magiclysm/monsters/zombified_monsters.json index 7fe6588ef..99afe15c6 100644 --- a/data/Mainline_mods/Mods/Magiclysm/monsters/zombified_monsters.json +++ b/data/Mainline_mods/Mods/Magiclysm/monsters/zombified_monsters.json @@ -3,7 +3,7 @@ "id": "mon_were_zolf", "type": "MONSTER", "name": { "str": "rotting wolf man" }, - "description": "The classic half man half wolf of the movies, but with a new twist: UNDEATH! This monster lopes along alternating between two and four legged gaits. It's jet black eyes seething with unsiatable hunger. Now you will know why you fear the night.", + "description": "The classic half man half wolf of the movies, but with a new twist: UNDEATH! This monster lopes along alternating between two and four legged gaits. It's jet black eyes seething with insatiable hunger. Now you will know why you fear the night.", "default_faction": "zombie", "bodytype": "dog", "categories": [ "CLASSIC" ], @@ -22,15 +22,13 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 5, - "armor_bash": 36, - "armor_cut": 24, - "armor_bullet": 30, "vision_night": 5, "harvest": "zombie_fur", "special_attacks": [ [ "HOWL", 10 ] ], "fear_triggers": [ "FIRE" ], "upgrades": { "half_life": 28, "into_group": "GROUP_ZOLF_UPGRADE" }, - "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "KEENNOSE", "BASHES", "POISON", "NO_BREATHE", "REVIVES", "FILTHY" ] + "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "KEENNOSE", "BASHES", "POISON", "NO_BREATHE", "REVIVES", "FILTHY" ], + "armor": { "bash": 36, "cut": 24, "bullet": 30 } }, { "id": "mon_zorc", @@ -55,12 +53,10 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 5, - "armor_bash": 24, - "armor_cut": 31, - "armor_bullet": 23, "vision_night": 12, "harvest": "orc", - "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "BASHES", "GROUP_BASH", "POISON", "NO_BREATHE", "REVIVES", "FILTHY" ] + "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "BASHES", "GROUP_BASH", "POISON", "NO_BREATHE", "REVIVES", "FILTHY" ], + "armor": { "bash": 24, "cut": 31, "bullet": 23 } }, { "type": "MONSTER", @@ -85,13 +81,11 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 1, - "armor_bash": 5, - "armor_cut": 2, - "armor_bullet": 2, "vision_night": 13, "path_settings": { "max_dist": 12 }, "harvest": "zombie_owlbear", - "special_attacks": [ { "type": "bite", "cooldown": 10 }, [ "GRAB", 7 ], [ "scratch", 7 ] ], + "grab_strength": 50, + "special_attacks": [ { "type": "bite", "cooldown": 10 }, { "id": "grab", "cooldown": 7 }, { "id": "scratch_humanoid", "cooldown": 7 } ], "flags": [ "SEES", "HEARS", @@ -107,14 +101,15 @@ "NO_BREATHE", "REVIVES" ], - "upgrades": { "half_life": 60, "into": "mon_owlbear_zombie_brute" } + "upgrades": { "half_life": 60, "into": "mon_owlbear_zombie_brute" }, + "armor": { "bash": 5, "cut": 2, "bullet": 2 } }, { "type": "MONSTER", "id": "mon_owlbear_zombie_brute", "copy-from": "mon_owlbear_zombie", "name": "Zowlbear Predator", - "description": "An once zombified owlbear, now faster and much bigger in size. Its thick skin protects the monster from harm, a sharp beak capable of rending through metal and a fury in its eyes warns you to stay away.", + "description": "A once zombified owlbear, now faster and much bigger in size. Its thick skin protects the monster from harm, a sharp beak capable of rending through metal and a fury in its eyes warns you to stay away.", "upgrades": false, "path_settings": { "max_dist": 0 }, "proportional": { "volume": 1.15, "weight": 1.2 }, @@ -126,10 +121,8 @@ "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 3, - "armor_bash": 3, - "armor_cut": 3, - "armor_bullet": 2, - "vision_night": 19 + "vision_night": 19, + "armor": { "bash": 3, "cut": 3, "bullet": 2 } }, "delete": { "flags": [ "PATH_AVOID_DANGER_1" ] }, "extend": { "special_attacks": [ [ "SMASH", 20 ] ] } @@ -149,12 +142,10 @@ "melee_dice": 2, "melee_dice_sides": -1, "melee_damage": -2, - "armor_bash": 2, - "armor_cut": 2, - "armor_bullet": 1, "vision_day": -13, "vision_night": 3, - "regenerates": 3 + "regenerates": 3, + "armor": { "bash": 2, "cut": 2, "bullet": 1 } }, "proportional": { "volume": 1.05, "weight": 1.07 }, "extend": { "species": [ "ZOMBIE" ], "flags": [ "BASHES", "POISON", "NO_BREATHE", "REVIVES" ] }, @@ -164,7 +155,7 @@ "type": "MONSTER", "id": "mon_yulecat_zombie", "name": "Zombified Yule Cat", - "description": "A magical beast from Icelandic folklore, known for their catlike appearance and their hobby of eating Workshop Elves. It creeply stumbles on its 4 legs with its squirming uneven body after meeting demise and being reborn just to eat you.", + "description": "A magical beast from Icelandic folklore, known for their catlike appearance and their hobby of eating Workshop Elves. It creepily stumbles on its 4 legs with its squirming uneven body after meeting demise and being reborn just to eat you.", "looks_like": "mon_yulecat", "default_faction": "zombie", "species": [ "MAGICAL_BEAST", "ZOMBIE" ], @@ -183,23 +174,22 @@ "melee_dice_sides": 7, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "dodge": 3, - "armor_bash": 4, - "armor_cut": 1, - "armor_bullet": 4, "vision_day": 30, "vision_night": 10, "path_settings": { "max_dist": 3, "avoid_traps": false, "avoid_sharp": false }, "harvest": "zombie_fur", - "special_attacks": [ { "type": "bite", "cooldown": 10 }, [ "GRAB", 8 ], [ "scratch", 6 ] ], + "grab_strength": 50, + "special_attacks": [ { "id": "bite_grab", "cooldown": 8 }, [ "scratch", 6 ] ], "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "WARM", "GRABS", "STUMBLES", "BASHES", "POISON", "NO_BREATHE", "REVIVES" ], - "upgrades": { "half_life": 5, "into": "mon_yulecat_zombie_brute" } + "upgrades": { "half_life": 5, "into": "mon_yulecat_zombie_brute" }, + "armor": { "bash": 4, "cut": 1, "bullet": 4 } }, { "type": "MONSTER", "id": "mon_yulecat_zombie_brute", "copy-from": "mon_yulecat_zombie", "name": "Tod Cat", - "description": "Once used to its decomposed body, this nightmarish cat with thick teeth and razorshap claws seems to be looking around for things to \"play\" with. Though its head is of a feline, it grins at you sadisticly with a glint in its cold demonic eyes.", + "description": "Once used to its decomposed body, this nightmarish cat with thick teeth and razorshap claws seems to be looking around for things to \"play\" with. Though its head is of a feline, it grins at you sadistically with a glint in its cold demonic eyes.", "path_settings": { "max_dist": 17 }, "relative": { "hp": 65, @@ -208,14 +198,67 @@ "melee_dice": 1, "melee_dice_sides": 1, "melee_damage": -2, - "armor_bash": 2, - "armor_cut": 1, - "armor_bullet": -2, "vision_day": -22, "vision_night": 20, - "regenerates": 3 + "regenerates": 3, + "armor": { "bash": 2, "cut": 1, "bullet": -2 } }, "proportional": { "volume": 1.01, "weight": 0.95 }, "extend": { "flags": [ "PATH_AVOID_DANGER_1" ], "special_attacks": [ { "type": "leap", "cooldown": 7, "max_range": 2 } ] } + }, + { + "id": "mon_feral_human_magician", + "type": "MONSTER", + "name": { "str": "feral wizard" }, + "description": "Stumbling about with strange ravings and odd motions, this crazed individual walks among the dead as one of their own. Occasional flashes and sparks erupt from their twisted and grimy fingers as they perform arcane motions.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "symbol": "@", + "color": "magenta", + "aggression": 30, + "morale": 100, + "melee_skill": 2, + "melee_dice": 1, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 1, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "special_attacks": [ { "type": "spell", "spell_data": { "id": "spell_feral_wizard_base" }, "cooldown": 10 } ], + "death_drops": { + "subtype": "distribution", + "items": [ + { "group": "enchanted_small_items", "prob": 5 }, + { "group": "feral_humans_death_drops_pipe", "prob": 100 }, + { "group": "enchanted_wands_lesser", "prob": 3 } + ] + }, + "upgrades": { "half_life": 90, "into_group": "GROUP_ZOMBIE_UPGRADE" }, + "zombify_into": "mon_zombie", + "fungalize_into": "mon_feral_human_pipe_fungal_infected", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "GROUP_BASH", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1" ] + }, + { + "id": "mon_feral_human_magician_fungal_corpse", + "type": "MONSTER", + "description": "Delicate fungal stalks sprout in rows from sores covering this person's body, and their facial expression is pure agony.", + "copy-from": "mon_feral_human_magician", + "default_faction": "fungus", + "upgrades": { "half_life": 14, "into_group": "GROUP_NULL", "into": "mon_fungaloid" }, + "special_attacks": [ [ "FUNGUS", 40 ] ], + "death_function": { "effect": { "id": "death_fungus", "hit_self": true } }, + "extend": { "flags": [ "NO_FUNG_DMG", "IMMOBILE" ] } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/morale_types.json b/data/Mainline_mods/Mods/Magiclysm/morale_types.json new file mode 100644 index 000000000..237e7860e --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/morale_types.json @@ -0,0 +1,12 @@ +[ + { + "id": "morale_iocus", + "type": "morale_type", + "text": "Enjoyed Iocus" + }, + { + "id": "morale_forest_unity", + "type": "morale_type", + "text": "Peace of the Forest" + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mutations/debug_mutations.json b/data/Mainline_mods/Mods/Magiclysm/mutations/debug_mutations.json index 8fb31e308..346566e44 100644 --- a/data/Mainline_mods/Mods/Magiclysm/mutations/debug_mutations.json +++ b/data/Mainline_mods/Mods/Magiclysm/mutations/debug_mutations.json @@ -1,19 +1,4 @@ [ - { - "type": "mutation", - "id": "DEBUG_MANA", - "name": { "str": "Debug Mana" }, - "points": 99, - "valid": false, - "description": "To cast bug killing spells.", - "debug": true, - "enchantments": [ - { - "condition": "ALWAYS", - "values": [ { "value": "MAX_MANA", "add": 500000 }, { "value": "REGEN_MANA", "multiply": 1000 } ] - } - ] - }, { "type": "mutation", "id": "VAULT_DEFENDER", @@ -23,7 +8,9 @@ "player_display": false, "description": "To cast bug killing spells.", "debug": false, - "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "ARMOR_BULLET", "add": -100 } ] } ] + "enchantments": [ + { "condition": "ALWAYS", "values": [ { "value": "ARMOR_BULLET", "add": -100 }, { "value": "PERCEPTION", "add": 15 } ] } + ] }, { "id": "librarian_blinding", diff --git a/data/Mainline_mods/Mods/Magiclysm/mutations/fantasy_species.json b/data/Mainline_mods/Mods/Magiclysm/mutations/fantasy_species.json new file mode 100644 index 000000000..0861c936e --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mutations/fantasy_species.json @@ -0,0 +1,808 @@ +[ + { + "type": "mutation_category", + "id": "SPECIES_DWARF", + "name": "Dwarf", + "threshold_mut": "THRESH_SPECIES_DWARF", + "mutagen_message": "Your heart beats in time with the rhythm of the Earth.", + "vitamin": "mutagen_species_dwarf", + "memorial_message": "Entered the halls of the King Under the Mountain.", + "base_removal_chance": 0 + }, + { + "type": "mutation", + "id": "THRESH_SPECIES_DWARF", + "name": { "str": "Child of the Stone" }, + "points": 1, + "description": "Trust the humans to make a mess of the world. Trust a dwarf to rebuild it better than they found it.", + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "id": "mutagen_species_dwarf", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Dwarven Purifier" }, + "excess": "mutagen_species_dwarf", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, + { + "type": "mutation_category", + "id": "SPECIES_ELF", + "name": "Elf", + "threshold_mut": "THRESH_SPECIES_ELF", + "mutagen_message": "You hear the songs of nature.", + "vitamin": "mutagen_species_elf", + "memorial_message": "Passed into the West.", + "base_removal_chance": 0 + }, + { + "type": "mutation", + "id": "THRESH_SPECIES_ELF", + "name": { "str": "Firstborn" }, + "points": 1, + "description": "The first elves sprang forth from magic and moonlight before the ancestors of humanity stopped scurrying through the underbrush to avoid the dinosaurs. You won't let that legacy die with you.", + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "id": "mutagen_species_elf", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Elven Purifier" }, + "excess": "mutagen_species_elf", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, + { + "type": "mutation_category", + "id": "SPECIES_GOBLIN", + "name": "Goblin", + "threshold_mut": "THRESH_SPECIES_GOBLIN", + "mutagen_message": "You feel the urge to steal a baby or two.", + "vitamin": "mutagen_species_goblin", + "memorial_message": "Went full goblin mode.", + "base_removal_chance": 0 + }, + { + "type": "mutation", + "id": "THRESH_SPECIES_GOBLIN", + "name": { "str": "Night Stalker" }, + "points": 1, + "description": "Long ago, the others feared your people as hunters in the night. In this new world, it's time to revive that legacy.", + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "id": "mutagen_species_goblin", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Goblin Purifier" }, + "excess": "mutagen_species_goblin", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, + { + "type": "mutation_category", + "id": "SPECIES_LIZARDFOLK", + "name": "Lizardfolk", + "threshold_mut": "THRESH_SPECIES_LIZARDFOLK", + "mutagen_message": "You remember the warmth of your home swamps.", + "vitamin": "mutagen_species_lizardfolk", + "memorial_message": "Returned to the World Egg.", + "base_removal_chance": 0 + }, + { + "type": "mutation", + "id": "THRESH_SPECIES_LIZARDFOLK", + "name": { "str": "Scaled One" }, + "points": 1, + "description": "The old world was nothing like your home swamps, but this new world is something you understand.", + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "id": "mutagen_species_lizardfolk", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Lizardfolk Purifier" }, + "excess": "mutagen_species_lizardfolk", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, + { + "type": "mutation_category", + "id": "SPECIES_RAVENFOLK", + "name": "Ravenfolk", + "threshold_mut": "THRESH_SPECIES_RAVENFOLK", + "mutagen_message": "You feel the call of the sky. There are treasures out there to collect.", + "vitamin": "mutagen_species_ravenfolk", + "memorial_message": "Fell from your perch on the World Tree.", + "base_removal_chance": 0 + }, + { + "type": "mutation", + "id": "THRESH_SPECIES_RAVENFOLK", + "name": { "str": "Thought and Memory" }, + "points": 1, + "description": "In the ruins of the old world, you're sure there are plenty of new places to go and new things to find.", + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "id": "mutagen_species_ravenfolk", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Ravenfolk Purifier" }, + "excess": "mutagen_species_ravenfolk", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, + { + "type": "mutation", + "id": "DWARVEN_BUILD", + "name": { "str": "Dwarven Build" }, + "//": "Slightly better version of STOCKY_TROGLO since dwarves are born this way", + "types": [ "SIZE" ], + "purifiable": false, + "mixed_effect": true, + "points": 1, + "visibility": 3, + "ugliness": 0, + "description": "Dwarves are smaller than humans, the better to deal with confined spaces underground, but as solid as the mountains (+2 STR, -1 DEX).", + "flags": [ "SMALL" ], + "category": [ "SPECIES_DWARF" ], + "threshreq": [ "THRESH_SPECIES_DWARF" ], + "passive_mods": { "str_mod": 2, "dex_mod": -1 }, + "movecost_modifier": 1.05 + }, + { + "type": "mutation", + "id": "BORN_ARTISAN", + "name": { "str": "Earthborn Artisan" }, + "description": "Born from the living earth, your people are naturally adept at the manipulation of the physical world.", + "points": 3, + "starting_trait": false, + "purifiable": false, + "category": [ "SPECIES_DWARF" ], + "threshreq": [ "THRESH_SPECIES_DWARF" ], + "crafting_speed_multiplier": 1.1 + }, + { + "type": "mutation", + "id": "DARKSIGHT", + "name": { "str": "Darksight" }, + "description": "Long ages underground or under the night boughs have made your people capable of seeing into the infrared spectrum.", + "points": 5, + "starting_trait": false, + "purifiable": false, + "flags": [ "INFRARED" ], + "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ], + "threshreq": [ "THRESH_SPECIES_DWARF", "THRESH_SPECIES_GOBLIN" ] + }, + { + "type": "mutation", + "id": "TOLERANCE", + "copy-from": "TOLERANCE", + "extend": { "category": [ "SPECIES_DWARF" ] } + }, + { + "type": "mutation", + "id": "ALCMET", + "copy-from": "ALCMET", + "extend": { "category": [ "SPECIES_DWARF" ], "prereqs2": [ "DWARVEN_BUILD" ] } + }, + { + "type": "mutation", + "id": "TROGLO", + "copy-from": "TROGLO", + "extend": { "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "TROGLO2", + "copy-from": "TROGLO2", + "extend": { "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "THICKSKIN", + "copy-from": "THICKSKIN", + "extend": { "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "TUNNEL_FIGHTER", + "copy-from": "TUNNEL_FIGHTER", + "extend": { "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "GOURMAND", + "copy-from": "GOURMAND", + "extend": { "category": [ "SPECIES_DWARF" ] } + }, + { + "type": "mutation", + "id": "NIGHTVISION", + "copy-from": "NIGHTVISION", + "extend": { "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "NIGHTVISION2", + "copy-from": "NIGHTVISION2", + "extend": { "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "NIGHTVISION3", + "copy-from": "NIGHTVISION3", + "extend": { "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "SMELLY", + "copy-from": "SMELLY", + "extend": { "category": [ "SPECIES_DWARF" ] } + }, + { + "type": "mutation", + "id": "HIRSUTE", + "copy-from": "HIRSUTE", + "extend": { "category": [ "SPECIES_DWARF" ] } + }, + { + "type": "mutation", + "id": "GOODCARDIO", + "copy-from": "GOODCARDIO", + "extend": { "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "HEAVYSLEEPER", + "copy-from": "HEAVYSLEEPER", + "extend": { "category": [ "SPECIES_DWARF" ] } + }, + { + "type": "mutation", + "id": "HEAVYSLEEPER2", + "copy-from": "HEAVYSLEEPER2", + "extend": { "category": [ "SPECIES_DWARF" ] } + }, + { + "type": "mutation", + "id": "INFRESIST", + "copy-from": "INFRESIST", + "extend": { "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "ELVEN_BUILD", + "name": { "str": "Elven Build" }, + "//": "Opposite of Dwarven Build!", + "types": [ "SIZE" ], + "purifiable": false, + "mixed_effect": true, + "points": 1, + "visibility": 3, + "ugliness": 0, + "description": "Elves are more lithe and frail than humans, but possess an almost otherworldly grace (-1 STR, +2 DEX).", + "category": [ "SPECIES_ELF" ], + "threshreq": [ "THRESH_SPECIES_ELF" ], + "passive_mods": { "str_mod": -1, "dex_mod": 2 } + }, + { + "type": "mutation", + "id": "ELVEN_BEAUTY", + "name": { "str": "Passing Fair" }, + "purifiable": false, + "points": 4, + "visibility": 8, + "ugliness": -8, + "description": "The elves are often called the \"Fair Folk\" due to their preternatural beauty, and you are no exception to this custom.", + "types": [ "ATTRACTIVENESS" ], + "category": [ "SPECIES_ELF" ], + "threshreq": [ "THRESH_SPECIES_ELF" ] + }, + { + "type": "mutation", + "id": "ELVEN_HEARING", + "name": { "str": "Elven Hearing" }, + "purifiable": false, + "points": 2, + "description": "Your delicate pointed ears allow you to hear all the sounds of the world.", + "types": [ "HEARING" ], + "category": [ "SPECIES_ELF" ], + "threshreq": [ "THRESH_SPECIES_ELF" ], + "flags": [ "SUPER_HEARING" ], + "hearing_modifier": 1.75 + }, + { + "type": "mutation", + "id": "ELVEN_SLEEP", + "name": { "str": "Reverie" }, + "points": 4, + "description": "Rather than sleep insensate like humans do, you blend living night and dreams into a harmonious whole. You are not bothered by light levels, and need much less sleep per night.", + "purifiable": false, + "types": [ "SLEEP" ], + "category": [ "SPECIES_ELF" ], + "threshreq": [ "THRESH_SPECIES_ELF" ], + "flags": [ "SEESLEEP" ], + "fatigue_modifier": -0.166667, + "fatigue_regen_modifier": 1 + }, + { + "type": "mutation", + "id": "WILDWALKER", + "name": { "str": "Natural Stride" }, + "purifiable": false, + "points": 3, + "description": "The elves were born of nature and the elements, and long ages under the trees allow them to quickly pass through their forest homes.", + "//": "terrains below copied from the druid caster level boost.", + "category": [ "SPECIES_ELF" ], + "enchantments": [ + { + "condition": { + "or": [ + { "u_is_on_terrain": "t_tree_young" }, + { "u_is_on_terrain": "t_mega_fern" }, + { "u_is_on_terrain": "t_fungus_colony" }, + { "u_is_on_terrain_with_flag": "SHRUB" }, + { "u_is_on_terrain": "t_bamboo_long" }, + { "u_is_on_terrain": "t_bamboo_tall" }, + { "u_is_on_terrain": "t_grass_tall" }, + { "u_is_on_terrain": "t_grass_long" }, + { "u_is_on_terrain": "t_bamboo" }, + { "u_is_on_terrain": "t_bamboo_harvested" }, + { "u_is_on_terrain": "t_underbrush_harvested_winter" }, + { "u_is_on_terrain": "t_grass" }, + { "u_is_on_terrain": "t_grass_white" }, + { "u_is_on_terrain": "t_moss" }, + { "u_is_on_terrain": "t_forestfloor" } + ] + }, + "values": [ { "value": "MOVE_COST", "multiply": -0.1 } ] + } + ] + }, + { + "type": "mutation", + "id": "ELFAEYES", + "copy-from": "ELFAEYES", + "extend": { "category": [ "SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "LIGHTEATER", + "copy-from": "LIGHTEATER", + "extend": { "category": [ "SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "QUICK", + "copy-from": "QUICK", + "extend": { "category": [ "SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "DEFT", + "copy-from": "DEFT", + "extend": { "category": [ "SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "ELFA_NV", + "copy-from": "ELFA_NV", + "extend": { "category": [ "SPECIES_ELF" ], "threshreq": [ "THRESH_SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "ANIMALEMPATH", + "copy-from": "ANIMALEMPATH", + "extend": { "category": [ "SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "ANIMALEMPATH2", + "copy-from": "ANIMALEMPATH2", + "extend": { "category": [ "SPECIES_ELF" ], "threshreq": [ "THRESH_SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "ANTIJUNK", + "copy-from": "ANTIJUNK", + "extend": { "category": [ "SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "DEX_UP", + "copy-from": "DEX_UP", + "extend": { "category": [ "SPECIES_ELF", "SPECIES_LIZARDFOLK", "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "DEX_UP_2", + "copy-from": "DEX_UP_2", + "extend": { "category": [ "SPECIES_ELF", "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "PER_UP", + "copy-from": "PER_UP", + "extend": { "category": [ "SPECIES_ELF", "SPECIES_LIZARDFOLK", "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "FLIMSY", + "copy-from": "FLIMSY", + "extend": { "category": [ "SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "DISRESISTANT", + "copy-from": "DISRESISTANT", + "extend": { "category": [ "SPECIES_ELF", "SPECIES_DWARF" ] } + }, + { + "type": "mutation", + "id": "DISIMMUNE", + "copy-from": "DISIMMUNE", + "extend": { "category": [ "SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "PICKYEATER", + "copy-from": "PICKYEATER", + "extend": { "category": [ "SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "LIGHTSTEP", + "copy-from": "LIGHTSTEP", + "extend": { "category": [ "SPECIES_ELF" ] } + }, + { + "type": "mutation", + "id": "GOBLIN_BUILD", + "name": { "str": "Goblin Build" }, + "types": [ "SIZE" ], + "purifiable": false, + "mixed_effect": true, + "points": 1, + "visibility": 8, + "ugliness": 5, + "description": "Goblins are much smaller than humans, often no more than half the height. You have a harder time carrying things and can't eat as much, but you're better at dodging and make very little noise when you move.", + "category": [ "SPECIES_GOBLIN" ], + "threshreq": [ "THRESH_SPECIES_GOBLIN" ], + "flags": [ "TINY" ], + "passive_mods": { "str_mod": -3, "dex_mod": 2 }, + "stomach_size_multiplier": 0.5, + "hp_modifier": -0.25, + "dodge_modifier": 2, + "weight_capacity_modifier": 0.7, + "noise_modifier": 0 + }, + { + "type": "mutation", + "id": "NOCTURNAL", + "name": { "str": "Nocturnal" }, + "points": -2, + "ugliness": 0, + "visibility": 0, + "description": "Your people have always had an easier time operating at night, away from the hated light of the sun.", + "mixed_effect": true, + "valid": false, + "flags": [ "MYOPIC_IN_LIGHT" ], + "category": [ "SPECIES_GOBLIN" ], + "threshreq": [ "THRESH_SPECIES_GOBLIN" ], + "enchantments": [ + { "condition": { "not": "is_day" }, "values": [ { "value": "SLEEPY", "add": -50 } ] }, + { "condition": "is_day", "values": [ { "value": "SLEEPY", "add": 50 } ] } + ] + }, + { + "type": "mutation", + "id": "GOBLIN_TEETH", + "valid": false, + "name": { "str": "Goblin Teeth" }, + "points": 2, + "visibility": 2, + "ugliness": 2, + "description": "Your teeth are longer and more pointed than not. Before the Cataclysm it considered extremely gauche to bite anything in a fight; it was a mark of the goblins' uncivilized past. But, needs must.", + "types": [ "TEETH" ], + "category": [ "SPECIES_GOBLIN" ], + "attacks": [ + { + "attack_text_u": "You sink your teeth into %s!", + "attack_text_npc": "%1$s sinks their teeth into %2$s!", + "blocker_mutations": [ "FANGS", "MUZZLE", "MUZZLE_LONG", "MUZZLE_RAT" ], + "body_part": "mouth", + "chance": 20, + "base_damage": { "damage_type": "stab", "amount": 6 } + } + ] + }, + { + "type": "mutation", + "id": "SAPROVORE", + "copy-from": "SAPROVORE", + "extend": { "category": [ "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "EATPOISON", + "copy-from": "EATPOISON", + "extend": { "category": [ "SPECIES_GOBLIN" ], "threshreq": [ "THRESH_SPECIES_GOBLIN" ], "prereqs": [ "GOBLIN_BUILD" ] } + }, + { + "type": "mutation", + "id": "PADDED_FEET", + "copy-from": "PADDED_FEET", + "extend": { "category": [ "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "ANIMALDISCORD", + "copy-from": "ANIMALDISCORD", + "extend": { "category": [ "SPECIES_GOBLIN" ] } + }, + { + "type": "mutation", + "id": "LIZARDFOLK_BUILD", + "name": { "str": "Lizardfolk Build" }, + "types": [ "SIZE" ], + "purifiable": false, + "mixed_effect": true, + "points": 1, + "visibility": 3, + "ugliness": 0, + "description": "Lizardfolk are taller and stronger than humans but not much thicker and are surprisingly fast for their size (+1 STR, +1 DEX).", + "category": [ "SPECIES_LIZARDFOLK" ], + "threshreq": [ "THRESH_SPECIES_LIZARDFOLK" ], + "flags": [ "LARGE" ], + "passive_mods": { "str_mod": 1, "dex_mod": 1 }, + "stomach_size_multiplier": 1.25, + "weight_capacity_modifier": 1.05, + "movecost_swim_modifier": 0.9 + }, + { + "type": "mutation", + "id": "WEBBED_LIZ_FEET", + "name": { "str": "Webbed Feet" }, + "//": "Alternate so webbed hands are not a prerequisite", + "points": 1, + "types": [ "FEET" ], + "description": "Your feet are heavily webbed, allowing you to swim faster if you aren't wearing footwear.", + "category": [ "SPECIES_LIZARDFOLK" ], + "flags": [ "WEBBED_FEET", "TOUGH_FEET" ], + "wet_protection": [ { "part": "foot_l", "good": 6 }, { "part": "foot_r", "good": 6 } ] + }, + { + "type": "mutation", + "id": "GILLS", + "copy-from": "GILLS", + "extend": { "category": [ "SPECIES_LIZARDFOLK" ], "threshreq": [ "THRESH_SPECIES_LIZARDFOLK" ] } + }, + { + "type": "mutation", + "id": "COLDBLOOD4_LIZ", + "flags": [ "ECTOTHERM" ], + "name": { "str": "Ectothermia" }, + "points": -3, + "description": "Your body has become permanently cold-blooded. Your speed lowers or raises 1% for every 2 (1.1) degrees below or above 65 F (18.3 C). All this and you need even more food to maintain your energy.", + "threshreq": [ "THRESH_SPECIES_LIZARDFOLK" ], + "purifiable": false, + "types": [ "METABOLISM" ], + "category": [ "SPECIES_LIZARDFOLK" ], + "temperature_speed_modifier": 0.5, + "metabolism_modifier": 0.5 + }, + { + "type": "mutation", + "id": "PRED_LIZ", + "name": { "str": "Scalefolk Mindset" }, + "description": "While not completely predatory, the lizardfolk are generally not particularly invested in the welfare of warmbloods. Their death does not affect you greatly, and your ability to maintain combat skills is enhanced.", + "points": 2, + "purifiable": false, + "category": [ "SPECIES_LIZARDFOLK" ], + "threshreq": [ "THRESH_SPECIES_LIZARDFOLK" ], + "types": [ "PREDATION" ], + "flags": [ "PRED2" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "COMBAT_CATCHUP", "multiply": 1.5 } ] } ] + }, + { + "type": "mutation", + "id": "CARNIVORE_FAKE", + "copy-from": "CARNIVORE_FAKE", + "extend": { "category": [ "SPECIES_LIZARDFOLK" ] } + }, + { + "type": "mutation", + "id": "TAIL_STUB", + "copy-from": "TAIL_STUB", + "extend": { "category": [ "SPECIES_LIZARDFOLK" ] } + }, + { + "type": "mutation", + "id": "TAIL_THICK", + "copy-from": "TAIL_THICK", + "extend": { "category": [ "SPECIES_LIZARDFOLK" ] } + }, + { + "type": "mutation", + "id": "RESISTWARM", + "copy-from": "RESISTWARM", + "extend": { "category": [ "SPECIES_LIZARDFOLK" ] } + }, + { + "type": "mutation", + "id": "SNOUT", + "copy-from": "SNOUT", + "extend": { "category": [ "SPECIES_GOBLIN", "SPECIES_LIZARDFOLK", "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "MUZZLE_LONG", + "copy-from": "MUZZLE_LONG", + "extend": { "category": [ "SPECIES_LIZARDFOLK" ] } + }, + { + "type": "mutation", + "id": "NAILS", + "copy-from": "NAILS", + "extend": { "category": [ "SPECIES_LIZARDFOLK", "SPECIES_GOBLIN", "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "TALONS", + "copy-from": "TALONS", + "extend": { "category": [ "SPECIES_LIZARDFOLK", "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "RAVENFOLK_BUILD", + "name": { "str": "Ravenfolk Build" }, + "types": [ "SIZE" ], + "purifiable": false, + "mixed_effect": true, + "points": 1, + "visibility": 4, + "ugliness": 1, + "description": "Ravenfolk are about the same size as humans, though their feathers and wings obviously set them apart.", + "//": "Bird mutation path means this mutation is just to prevent multiple species and doesn't need any modifiers.", + "category": [ "SPECIES_RAVENFOLK" ], + "threshreq": [ "THRESH_SPECIES_RAVENFOLK" ] + }, + { + "type": "mutation", + "id": "RAVENFOLK_LEGS", + "copy-from": "BIRD_LEGS", + "name": { "str": "Ravenfolk Legs" }, + "description": "Your legs and feet are those of a raven, with three long talons at the front and one at the back, ending in wicked claws and preventing you from wearing shoes. Fortunately they don't impede your movement.", + "category": [ "SPECIES_RAVENFOLK" ], + "threshreq": [ "THRESH_SPECIES_RAVENFOLK" ] + }, + { + "type": "mutation", + "id": "BEAK_RAVEN", + "name": { "str": "Raven Beak" }, + "points": 0, + "visibility": 10, + "ugliness": 5, + "description": "Your large beak allows you to imitate nearly every sound humans can make. And also rip into flesh, if it comes to that.", + "purifiable": false, + "types": [ "TEETH", "MUZZLE" ], + "cancels": [ "MOUTH_TENTACLES" ], + "prereqs": [ "BEAK" ], + "threshreq": [ "THRESH_SPECIES_RAVENFOLK" ], + "category": [ "SPECIES_RAVENFOLK" ], + "wet_protection": [ { "part": "mouth", "ignored": 2 } ], + "restricts_gear": [ "mouth" ], + "destroys_gear": true, + "attacks": [ + { + "attack_text_u": "You stab into %s with your beak!", + "attack_text_npc": "%1$s stabs into %2$s with their beak!", + "body_part": "mouth", + "chance": 15, + "base_damage": { "damage_type": "stab", "amount": 12 } + } + ] + }, + { + "type": "mutation", + "id": "RAVEN_BONES", + "copy-from": "HOLLOW_BONES", + "description": "Your bones are nearly hollow, a remnant of your people's past as creatures of the air. Your body is very light as a result, enabling you to move and attack 20% faster, but also frail; you can carry 40% less, and bashing attacks injure you more.", + "category": [ "SPECIES_RAVENFOLK" ] + }, + { + "type": "mutation", + "id": "BEAK", + "copy-from": "BEAK", + "extend": { "category": [ "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "FLEET", + "copy-from": "FLEET", + "extend": { "category": [ "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "SKIN_ROUGH", + "copy-from": "SKIN_ROUGH", + "extend": { "category": [ "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "FEATHERS", + "copy-from": "FEATHERS", + "extend": { "category": [ "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "NOMAD", + "copy-from": "NOMAD", + "extend": { "category": [ "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "EAGLEEYED", + "copy-from": "EAGLEEYED", + "extend": { "category": [ "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "WINGS_BIRD", + "copy-from": "WINGS_BIRD", + "extend": { "category": [ "SPECIES_RAVENFOLK" ], "threshreq": [ "THRESH_SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "DOWN", + "copy-from": "DOWN", + "extend": { "category": [ "SPECIES_RAVENFOLK" ], "threshreq": [ "THRESH_SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "PER_UP_2", + "copy-from": "PER_UP_2", + "extend": { "category": [ "SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "PER_UP_3", + "copy-from": "PER_UP_3", + "extend": { "category": [ "SPECIES_RAVENFOLK" ], "threshreq": [ "THRESH_SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "PER_UP_4", + "copy-from": "PER_UP_4", + "extend": { "category": [ "SPECIES_RAVENFOLK" ], "threshreq": [ "THRESH_SPECIES_RAVENFOLK" ] } + }, + { + "type": "mutation", + "id": "BIRD_EYE", + "copy-from": "BIRD_EYE", + "extend": { "category": [ "SPECIES_RAVENFOLK" ], "threshreq": [ "THRESH_SPECIES_RAVENFOLK" ] } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/mutations/mutations.json b/data/Mainline_mods/Mods/Magiclysm/mutations/mutations.json index 31512dccb..f4d7dbd1b 100644 --- a/data/Mainline_mods/Mods/Magiclysm/mutations/mutations.json +++ b/data/Mainline_mods/Mods/Magiclysm/mutations/mutations.json @@ -13,13 +13,13 @@ "type": "mutation", "id": "PAINRESIST", "copy-from": "PAINRESIST", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_DWARF" ] } }, { "type": "mutation", "id": "POISRESIST", "copy-from": "POISRESIST", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_DWARF" ] } }, { "type": "mutation", @@ -31,7 +31,7 @@ "type": "mutation", "id": "BADTEMPER", "copy-from": "BADTEMPER", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_DWARF" ] } }, { "type": "mutation", @@ -43,7 +43,7 @@ "type": "mutation", "id": "CHEMIMBALANCE", "copy-from": "CHEMIMBALANCE", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_GOBLIN" ] } }, { "type": "mutation", @@ -56,19 +56,19 @@ "id": "HOARDER", "copy-from": "HOARDER", "valid": true, - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK", "SPECIES_DWARF", "SPECIES_RAVENFOLK" ] } }, { "type": "mutation", "id": "MOODSWINGS", "copy-from": "MOODSWINGS", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_ELF", "SPECIES_GOBLIN" ] } }, { "type": "mutation", "id": "LIZ_EYE", "copy-from": "LIZ_EYE", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ] } }, { "type": "mutation", @@ -80,31 +80,40 @@ "type": "mutation", "id": "FASTHEALER", "copy-from": "FASTHEALER", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ] } }, { "type": "mutation", "id": "REGEN_LIZ", "copy-from": "REGEN_LIZ", - "extend": { "category": [ "DRAGON_BLACK" ], "threshreq": [ "THRESH_DRAGON_BLACK" ] } + "extend": { + "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ], + "threshreq": [ "THRESH_DRAGON_BLACK", "THRESH_SPECIES_LIZARDFOLK" ] + } }, { "type": "mutation", "id": "MEMBRANE", "copy-from": "MEMBRANE", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ] } }, { "type": "mutation", - "id": "SKIN_ROUGH", - "copy-from": "SKIN_ROUGH", - "extend": { "category": [ "DRAGON_BLACK" ] } + "id": "SKIN_PEELING", + "copy-from": "SKIN_PEELING", + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ] } + }, + { + "type": "mutation", + "id": "SPARSE_SCALES", + "copy-from": "SPARSE_SCALES", + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ] } }, { "type": "mutation", "id": "SCALES", "copy-from": "SCALES", - "extend": { "category": [ "DRAGON_BLACK" ], "changes_to": [ "DRAGON_SCALES_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ], "changes_to": [ "DRAGON_SCALES_BLACK" ] } }, { "type": "mutation", @@ -169,7 +178,7 @@ "type": "mutation", "id": "DRAGON_FEET", "name": { "str": "Dragon Legs" }, - "points": -1, + "points": 0, "visibility": 4, "ugliness": 2, "mixed_effect": true, @@ -182,8 +191,8 @@ "restricts_gear": [ "foot_l", "foot_r" ], "destroys_gear": true, "attacks": { - "attack_text_u": "You slash %s with your clawed feet", - "attack_text_npc": "%1$s slashes %2$s with their clawed feet", + "attack_text_u": "You slash %s with your clawed feet!", + "attack_text_npc": "%1$s slashes %2$s with their clawed feet!", "chance": 20, "base_damage": { "damage_type": "cut", "amount": 20 }, "strength_damage": { "damage_type": "cut", "amount": 0.25 } @@ -195,13 +204,13 @@ "type": "mutation", "id": "PAINREC1", "copy-from": "PAINREC1", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_DWARF", "SPECIES_GOBLIN" ] } }, { "type": "mutation", "id": "PAINREC2", "copy-from": "PAINREC2", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_DWARF", "SPECIES_GOBLIN" ] } }, { "type": "mutation", @@ -220,12 +229,14 @@ "mixed_effect": true, "encumbrance_always": [ [ "torso", 10 ], [ "arm_l", 10 ], [ "arm_r", 10 ] ], "description": "You have grown noticeably taller, broader, and menacing. Much of it is useful muscle mass (Strength +2), but you find it throws off your balance and you get in your own way (+10 torso and arm encumbrance), and you notice people are starting to treat you differently.", + "types": [ "SIZE" ], "prereqs": [ "DRAGON_STR", "DRAGON_STR2", "DRAGON_STR3", "DRAGON_STR4" ], "cancels": [ "SMALL", "SMALL2", "LARGE", "LARGE_OK", "HUGE", "HUGE_OK" ], "changes_to": [ "LARGE_OK_DRAGON", "HUGE_DRAGON" ], "category": [ "DRAGON_BLACK" ], "passive_mods": { "str_mod": 2 }, "weight_capacity_modifier": 1.05, + "stomach_size_multiplier": 1.5, "anger_relations": [ [ "HUMAN", 10 ] ] }, { @@ -236,6 +247,7 @@ "points": 2, "visibility": 1, "description": "You carry your rugged body with the dignity you deserve, but are all the more menacing for it. Strength +2.", + "types": [ "SIZE" ], "prereqs": [ "LARGE_DRAGON" ], "prereqs2": [ "DRAGON_STR", "DRAGON_STR2", "DRAGON_STR3", "DRAGON_STR4" ], "cancels": [ "SMALL", "SMALL2", "LARGE", "LARGE_OK", "HUGE", "HUGE_OK" ], @@ -244,6 +256,7 @@ "category": [ "DRAGON_BLACK" ], "passive_mods": { "str_mod": 2 }, "weight_capacity_modifier": 1.05, + "stomach_size_multiplier": 1.5, "anger_relations": [ [ "HUMAN", 20 ] ] }, { @@ -251,11 +264,12 @@ "id": "HUGE_DRAGON", "flags": [ "HUGE" ], "name": { "str": "Freakish Draconic Maturity" }, - "points": -2, + "points": 0, "visibility": 4, "ugliness": 4, "mixed_effect": true, "description": "You have grown even more massive, to the point where you cannot usefully fit into human-sized clothing or vehicles. Much of it is powerful muscle mass (Strength +4), but it's a real pain to haul around.", + "types": [ "SIZE" ], "prereqs": [ "LARGE_DRAGON", "LARGE_OK_DRAGON" ], "prereqs2": [ "DRAGON_STR3", "DRAGON_STR4" ], "cancels": [ "SMALL", "SMALL2", "LARGE", "LARGE_OK", "HUGE", "HUGE_OK" ], @@ -267,6 +281,7 @@ "restricts_gear": [ "torso", "leg_l", "leg_r", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r" ], "destroys_gear": true, "weight_capacity_modifier": 1.1, + "stomach_size_multiplier": 2.0, "anger_relations": [ [ "HUMAN", 30 ] ] }, { @@ -276,6 +291,7 @@ "points": 4, "visibility": 1, "description": "Your muscles are enhanced by some growing innate magic. You are slightly stronger. Strength + 1", + "types": [ "STR" ], "changes_to": [ "DRAGON_STR2" ], "category": [ "DRAGON_BLACK" ], "passive_mods": { "str_mod": 1 } @@ -287,6 +303,7 @@ "points": 4, "visibility": 1, "description": "The connection to your inner magic is growing and your muscles are stronger, but you're a little more clumsy. Strength + 3, Dexterity - 1", + "types": [ "STR" ], "prereqs": [ "DRAGON_STR" ], "changes_to": [ "DRAGON_STR3" ], "category": [ "DRAGON_BLACK" ], @@ -299,6 +316,7 @@ "points": 4, "visibility": 1, "description": "The magic within you courses through your muscles, greatly empowering them. This costs you valuable flexibility and coordination, however. Strength + 5, Dexterity - 2", + "types": [ "STR" ], "prereqs": [ "DRAGON_STR2" ], "changes_to": [ "DRAGON_STR4" ], "category": [ "DRAGON_BLACK" ], @@ -312,6 +330,7 @@ "visibility": 2, "ugliness": 2, "description": "Your internal magic has filled you with unimaginable strength, but you can't move as freely as your form once could. This is no problem. Strength + 8, Dexterity - 3", + "types": [ "STR" ], "prereqs": [ "DRAGON_STR3" ], "category": [ "DRAGON_BLACK" ], "threshreq": [ "THRESH_DRAGON_BLACK" ], @@ -327,6 +346,7 @@ "ugliness": 3, "mixed_effect": true, "description": "Your cardiovascular system has caught up with your muscular physique, so who needs pathetic human cars? Strength +4.", + "types": [ "SIZE" ], "prereqs": [ "HUGE_DRAGON" ], "prereqs2": [ "DRAGON_STR3", "DRAGON_STR4" ], "cancels": [ "SMALL", "SMALL2", "LARGE", "LARGE_OK", "HUGE", "HUGE_OK" ], @@ -336,19 +356,24 @@ "restricts_gear": [ "torso", "leg_l", "leg_r", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r" ], "destroys_gear": true, "weight_capacity_modifier": 1.1, + "stomach_size_multiplier": 2.0, "anger_relations": [ [ "HUMAN", 40 ] ] }, { "type": "mutation", "id": "MUT_TOUGH", "copy-from": "MUT_TOUGH", - "extend": { "category": [ "DRAGON_BLACK" ], "prereqs": [ "LARGE_OK_DRAGON", "HUGE_OK_DRAGON" ] } + "extend": { + "category": [ "DRAGON_BLACK" ], + "prereqs": [ "LARGE_OK_DRAGON", "HUGE_OK_DRAGON" ], + "threshreq": [ "THRESH_DRAGON_BLACK" ] + } }, { "type": "mutation", "id": "INT_UP", "copy-from": "INT_UP", - "extend": { "category": [ "DRAGON_BLACK", "MANATOUCHED" ] } + "extend": { "category": [ "DRAGON_BLACK", "MANATOUCHED", "SPECIES_ELF", "SPECIES_LIZARDFOLK", "SPECIES_RAVENFOLK" ] } }, { "type": "mutation", @@ -372,13 +397,13 @@ "type": "mutation", "id": "SLIT_NOSTRILS", "copy-from": "SLIT_NOSTRILS", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ] } }, { "type": "mutation", "id": "HEADBUMPS", "copy-from": "HEADBUMPS", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_GOBLIN" ] } }, { "type": "mutation", @@ -402,8 +427,8 @@ "restricts_gear": [ "head" ], "allow_soft_gear": true, "attacks": { - "attack_text_u": "You headbutt %s with your draconic horns", - "attack_text_npc": "%1$s headbutts %2$s with their draconic horns", + "attack_text_u": "You headbutt %s with your draconic horns!", + "attack_text_npc": "%1$s headbutts %2$s with their draconic horns!", "chance": 20, "base_damage": { "damage_type": "bash", "amount": 16 } } @@ -412,13 +437,13 @@ "type": "mutation", "id": "FORKED_TONGUE", "copy-from": "FORKED_TONGUE", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ] } }, { "type": "mutation", "id": "WINGS_STUB", "copy-from": "WINGS_STUB", - "extend": { "category": [ "DRAGON_BLACK" ], "changes_to": [ "DRAGON_WINGS_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_RAVENFOLK" ], "changes_to": [ "DRAGON_WINGS_BLACK" ] } }, { "type": "mutation", @@ -427,15 +452,15 @@ "points": 1, "visibility": 9, "ugliness": 4, - "description": "You have a pair of large, black scaled dragon wings. While you have control of them and can make attacks with them, they are not large enough nor strong enough to allow you to fly and they throw your off balance, greatly reducing your ability to dodge. They can be used to cast a protective spell on yourself however.", + "description": "You have a pair of large, black scaled dragon wings. While you have control of them and can make attacks with them, they are not large enough nor strong enough to allow you to fly and they throw you off balance, greatly reducing your ability to dodge. They can be used to cast a protective spell on yourself however.", "types": [ "WINGS" ], "prereqs": [ "WINGS_STUB" ], "category": [ "DRAGON_BLACK" ], "threshreq": [ "THRESH_DRAGON_BLACK" ], "dodge_modifier": -3, "attacks": { - "attack_text_u": "You bash %s with your powerful wings", - "attack_text_npc": "%1$s bashes %2$s with their powerful wings", + "attack_text_u": "You bash %s with your powerful wings!", + "attack_text_npc": "%1$s bashes %2$s with their powerful wings!", "chance": 20, "base_damage": { "damage_type": "bash", "amount": 20 }, "strength_damage": { "damage_type": "bash", "amount": 0.5 } @@ -447,20 +472,20 @@ "type": "mutation", "id": "WEAKSTOMACH", "copy-from": "WEAKSTOMACH", - "extend": { "category": [ "DRAGON_BLACK", "MANATOUCHED" ] } + "extend": { "category": [ "DRAGON_BLACK", "MANATOUCHED", "SPECIES_ELF", "SPECIES_GOBLIN" ] } }, { "type": "mutation", "id": "NAUSEA", "copy-from": "NAUSEA", - "extend": { "category": [ "DRAGON_BLACK" ] }, + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_GOBLIN" ] }, "leads_to": [ "OVERLY_ACID_GUT" ] }, { "type": "mutation", "id": "VOMITOUS", "copy-from": "VOMITOUS", - "extend": { "category": [ "DRAGON_BLACK" ] }, + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_GOBLIN" ] }, "leads_to": [ "DRAGON_BREATH_BLACK" ] }, { @@ -490,7 +515,7 @@ "type": "mutation", "id": "THIRST", "copy-from": "THIRST", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_DWARF", "SPECIES_RAVENFOLK" ] } }, { "type": "mutation", @@ -548,7 +573,7 @@ "type": "mutation", "id": "HISS", "copy-from": "HISS", - "extend": { "category": [ "DRAGON_BLACK" ] } + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ] } }, { "type": "mutation", @@ -582,7 +607,7 @@ "type": "mutation", "id": "MUZZLE_DRAGON", "name": { "str": "Scaled Mouth" }, - "points": -3, + "points": 0, "visibility": 6, "ugliness": 6, "mixed_effect": true, @@ -594,8 +619,8 @@ "social_modifiers": { "intimidate": 10 }, "types": [ "MUZZLE" ], "attacks": { - "attack_text_u": "You bite a chunk out of %s", - "attack_text_npc": "%1$s bites a chunk out of %2$s", + "attack_text_u": "You bite a chunk out of %s!", + "attack_text_npc": "%1$s bites a chunk out of %2$s!", "body_part": "mouth", "chance": 15, "base_damage": { "damage_type": "stab", "amount": 15 }, @@ -606,7 +631,7 @@ "type": "mutation", "id": "DRAGON_MAW_BLACK", "name": { "str": "Black Dragon Maw" }, - "points": -3, + "points": 0, "visibility": 8, "ugliness": 8, "mixed_effect": true, @@ -618,8 +643,8 @@ "types": [ "MUZZLE" ], "restricts_gear": [ "mouth" ], "attacks": { - "attack_text_u": "You bite a chunk out of %s", - "attack_text_npc": "%1$s bites a chunk out of %2$s", + "attack_text_u": "You bite a chunk out of %s!", + "attack_text_npc": "%1$s bites a chunk out of %2$s!", "body_part": "mouth", "chance": 20, "base_damage": { "damage_type": "stab", "amount": 25 }, @@ -652,12 +677,12 @@ "prereqs2": [ "SCALES", "DRAGON_SCALES_BLACK" ], "category": [ "DRAGON_BLACK" ], "changes_to": [ "DRAGON_TAIL" ], - "restricts_gear": [ "leg_l", "leg_r" ], + "restricts_gear": [ "leg_hip_l", "leg_hip_r" ], "allowed_items": [ "ALLOWS_TAIL" ], "allow_soft_gear": true, "attacks": { - "attack_text_u": "You whap %s with your tail", - "attack_text_npc": "%1$s whaps %2$s with their tail", + "attack_text_u": "You whap %s with your tail!", + "attack_text_npc": "%1$s whaps %2$s with their tail!", "chance": 20, "base_damage": { "damage_type": "bash", "amount": 10 } } @@ -673,12 +698,12 @@ "types": [ "TAIL" ], "prereqs": [ "DRAGON_TAIL_SCALED" ], "category": [ "DRAGON_BLACK" ], - "restricts_gear": [ "leg_l", "leg_r" ], + "restricts_gear": [ "leg_hip_l", "leg_hip_r" ], "allowed_items": [ "ALLOWS_TAIL" ], "allow_soft_gear": true, "attacks": { - "attack_text_u": "You smash %s with your tail", - "attack_text_npc": "%1$s smashes %2$s with their tail", + "attack_text_u": "You smash %s with your tail!", + "attack_text_npc": "%1$s smashes %2$s with their tail!", "chance": 20, "base_damage": { "damage_type": "bash", "amount": 15 }, "strength_damage": { "damage_type": "bash", "amount": 0.25 } @@ -728,52 +753,71 @@ "spells_learned": [ [ "acid_claw", 1 ] ] }, { - "type": "effect_on_condition", - "id": "EOC_GIVE_SOUL_PRESSURE_OFF", - "//": "Works only once, and give you a SOUL_PRESSURE_OFF mutation. Dont know how to optimise it, so left it as it is.", - "recurrence": [ "1 s", "1 s" ], - "condition": { - "and": [ - { "u_has_trait": "SOULFIRE" }, - { - "not": { "u_has_var": "u_got_soulfire_attunement", "type": "attunement", "context": "attunement", "value": "yes" } - } - ] - }, - "deactivate_condition": { "not": { "u_has_trait": "SOULFIRE" } }, - "effect": [ - { "u_add_trait": "SOUL_PRESSURE_OFF" }, - { "u_add_var": "u_got_soulfire_attunement", "type": "attunement", "context": "attunement", "value": "yes" } - ] + "type": "mutation", + "id": "DENSE_BONES", + "copy-from": "DENSE_BONES", + "extend": { "category": [ "DRAGON_BLACK", "SPECIES_DWARF" ] } }, { "type": "mutation", - "id": "SOUL_PRESSURE_OFF", - "starting_trait": false, - "purifiable": false, - "valid": false, - "name": { "str": "Soul Pressure" }, - "points": 0, - "active": true, - "description": "Your presence is so dangerous you can burn living creatures around you. You suppress it now.", - "transform": { - "target": "SOUL_PRESSURE_ON", - "msg_transform": "Living creatures around you start to burn!", - "active": true, - "moves": 10 + "id": "PRED1", + "copy-from": "PRED1", + "extend": { + "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ], + "threshreq": [ "THRESH_DRAGON_BLACK", "THRESH_SPECIES_LIZARDFOLK" ] } }, { "type": "mutation", - "id": "SOUL_PRESSURE_ON", - "starting_trait": false, + "id": "PRED2", + "copy-from": "PRED2", + "extend": { + "category": [ "DRAGON_BLACK", "SPECIES_LIZARDFOLK" ], + "threshreq": [ "THRESH_DRAGON_BLACK", "THRESH_SPECIES_LIZARDFOLK" ] + } + }, + { + "type": "mutation", + "id": "PRED3_DRAGON", + "name": { "str": "Draconic Predator" }, + "points": 4, + "description": "You have become something more than human. Something better - and far, far worse. Combat skills are easy to learn and maintain, and unlike lesser predators, your mental faculties don't suffer at all.", + "social_modifiers": { "intimidate": 5 }, + "purifiable": false, + "types": [ "PREDATION" ], + "prereqs": [ "CARNIVORE" ], + "prereqs2": [ "PRED2" ], + "leads_to": [ "SAPIOVORE" ], + "changes_to": [ "PRED4_DRAGON" ], + "threshreq": [ "THRESH_DRAGON_BLACK" ], + "cancels": [ "PACIFIST" ], + "category": [ "DRAGON_BLACK" ], + "flags": [ "PRED3" ] + }, + { + "type": "mutation", + "id": "PRED4_DRAGON", + "name": { "str": "Draconic Apex Predator" }, + "points": 5, + "description": "Your mind and brain have fully adapted to your new place at the top of the magical food chain. You can effortlessly master and maintain combat skills, and your malevolent intellect only grows.", + "social_modifiers": { "intimidate": 6 }, "purifiable": false, - "valid": false, - "active": true, - "name": { "str": "Soul Pressure (on)" }, - "points": -1, - "description": "Your presence is so dangerous you can burn living creatures around you.", - "enchantments": [ "SOULFIRE" ], - "transform": { "target": "SOUL_PRESSURE_OFF", "msg_transform": "You suppress your soul pressure.", "active": false, "moves": 10 } + "types": [ "PREDATION" ], + "prereqs": [ "CARNIVORE" ], + "prereqs2": [ "PRED3_DRAGON" ], + "threshreq": [ "THRESH_DRAGON_BLACK" ], + "category": [ "DRAGON_BLACK" ], + "passive_mods": { "int_mod": 1 }, + "flags": [ "PRED4" ] + }, + { + "type": "mutation", + "id": "SAPIOVORE", + "copy-from": "SAPIOVORE", + "extend": { + "category": [ "DRAGON_BLACK" ], + "threshreq": [ "THRESH_DRAGON_BLACK" ], + "prereqs2": [ "PRED3_DRAGON", "PRED4_DRAGON" ] + } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/mutations/temporary.json b/data/Mainline_mods/Mods/Magiclysm/mutations/temporary.json new file mode 100644 index 000000000..c3b2435e5 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/mutations/temporary.json @@ -0,0 +1,39 @@ +[ + { + "type": "mutation", + "id": "BIO_GIANT_GROWTH", + "name": { "str": "Giant-sized" }, + "//": "Mostly copied from Huge with some Tough mixed in. Strength bonus includes improvements from STR_UP mutation that's normally required for LARGE", + "points": 2, + "visibility": 4, + "ugliness": 8, + "mixed_effect": true, + "description": "Magic has made you grow to enormous size!", + "flags": [ "HUGE" ], + "passive_mods": { "str_mod": 6 }, + "restricts_gear": [ "torso", "leg_l", "leg_r", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r" ], + "stomach_size_multiplier": 2.0, + "weight_capacity_modifier": 1.1, + "cardio_multiplier": 1.25, + "social_modifiers": { "intimidate": 15 }, + "enchantments": [ { "values": [ { "value": "MAX_HP", "multiply": 0.3 } ] } ] + }, + { + "type": "mutation", + "id": "BIO_LASHING_TENTACLES", + "name": { "str": "Lashing Tentacles" }, + "description": "You have a pair of vicious barbed tentacles growing from your shoulders.", + "points": 2, + "visibility": 6, + "ugliness": 8, + "restricts_gear": [ "torso" ], + "remove_rigid": [ "torso" ], + "allow_soft_gear": true, + "attacks": { + "attack_text_u": "You lash at %s with your tentacles!", + "attack_text_npc": "%1$s lashes at %2$s with their tentacles!", + "chance": 20, + "base_damage": { "damage_type": "cut", "amount": 10 } + } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/npc/TALK_FORGE_DIVINER.json b/data/Mainline_mods/Mods/Magiclysm/npc/TALK_FORGE_DIVINER.json new file mode 100644 index 000000000..0f1442230 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/npc/TALK_FORGE_DIVINER.json @@ -0,0 +1,935 @@ +[ + { + "type": "npc", + "id": "forge_lord_diviner", + "//": "The Diviner of the Forge of Wonders.", + "name_unique": "Mary Machen", + "name_suffix": "Diviner", + "class": "NC_FORGE_LORD_DIVINER", + "attitude": 0, + "mission": 3, + "gender": "female", + "chat": "TALK_FORGE_LORD_DIVINER", + "faction": "forge_lords" + }, + { + "type": "npc_class", + "id": "NC_FORGE_LORD_DIVINER", + "name": { "str": "Diviner" }, + "job_description": "I see the past, the present, and the future.", + "traits": [ + { "trait": "VAULT_DEFENDER" }, + { "trait": "LIBRARY_DEFENDER" }, + { "group": "NPC_starting_traits" }, + { "group": "Appearance_demographics" } + ], + "//": "This is a unique NPC who doesn't get randomly selected background traits", + "common": false, + "bonus_int": { "one_in": 4 }, + "bonus_per": { "one_in": 4 }, + "worn_override": "NC_FORGE_LIBRARIAN_clothes", + "skills": [ + { + "skill": "ALL", + "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -2 }, { "one_in": 4 } ] } ] } + }, + { "skill": "unarmed", "bonus": { "one_in": 2 } }, + { "skill": "melee", "bonus": { "one_in": 2 } }, + { "skill": "gun", "bonus": { "rng": [ 0, 2 ] } }, + { "skill": "speech", "bonus": { "rng": [ 1, 3 ] } } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER", + "type": "talk_topic", + "dynamic_line": "Are you looking for something in particular?", + "responses": [ + { "text": "Can you help me find something?", "topic": "TALK_FORGE_DIVINER_FIND_WHAT" }, + { "text": "What are you doing here?", "topic": "TALK_FORGE_DIVINER_DOING" }, + { "text": "Well, bye.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_DIVINER_DOING", + "type": "talk_topic", + "dynamic_line": "I specialize in scrying. I can help you find any number of things.", + "responses": [ { "text": "Let's talk business then.", "topic": "TALK_FORGE_LORD_DIVINER" } ] + }, + { + "id": "TALK_FORGE_DIVINER_FIND_WHAT", + "type": "talk_topic", + "dynamic_line": "Perhaps. What do you seek?", + "responses": [ + { "text": "A dangerous location.", "topic": "TALK_FORGE_LORD_DIVINER_DANGEROUS" }, + { + "text": "A man made structure.", + "topic": "TALK_FORGE_LORD_DIVINER_MAN_MADE", + "condition": { "not": { "mod_is_loaded": "innawood" } } + }, + { + "text": "A man made structure.", + "topic": "TALK_FORGE_LORD_DIVINER_MAN_MADE_INNAWOOD", + "condition": { "mod_is_loaded": "innawood" } + }, + { "text": "A geological formation.", "topic": "TALK_FORGE_LORD_DIVINER_GEOLOGY" }, + { "text": "A plant.", "topic": "TALK_FORGE_LORD_DIVINER_PLANT" }, + { "text": "An animal.", "topic": "TALK_FORGE_LORD_DIVINER_ANIMAL" }, + { "text": "A god.", "topic": "TALK_FORGE_LORD_DIVINER_GOD" }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_DANGEROUS", + "type": "talk_topic", + "dynamic_line": "A thrill seeker, are you? So what will it be?", + "responses": [ + { "text": "An ant nest.", "topic": "TALK_FORGE_LORD_DIVINER_ANT" }, + { "text": "An acid ant nest.", "topic": "TALK_FORGE_LORD_DIVINER_ACID_ANT" }, + { "text": "A dermatik nest.", "topic": "TALK_FORGE_LORD_DIVINER_DERMATIK" }, + { "text": "Spiders.", "topic": "TALK_FORGE_LORD_DIVINER_SPIDERS" }, + { "text": "A fungal growth.", "topic": "TALK_FORGE_LORD_DIVINER_FUNGAL" }, + { "text": "A mi-go building.", "topic": "TALK_FORGE_LORD_DIVINER_MI_GO" }, + { "text": "A triffid grove.", "topic": "TALK_FORGE_LORD_DIVINER_TRIFFID" }, + { "text": "A kraken cave.", "topic": "TALK_FORGE_LORD_DIVINER_KRAKEN" }, + { "text": "A slime pit.", "topic": "TALK_FORGE_LORD_DIVINER_SLIME" }, + { "text": "A goblin encampment.", "topic": "TALK_FORGE_LORD_DIVINER_GOBLIN" }, + { "text": "An orc village.", "topic": "TALK_FORGE_LORD_DIVINER_ORC" }, + { "text": "A swamp dragon cave!", "topic": "TALK_FORGE_LORD_DIVINER_SWAMP_DRAGON" }, + { "text": "Demon spiders", "topic": "TALK_FORGE_LORD_DIVINER_SPIDERS_DEMON" }, + { "text": "A balrog mine", "topic": "TALK_FORGE_LORD_DIVINER_BALROG" }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_MAN_MADE", + "type": "talk_topic", + "dynamic_line": "Seeking to pick around your civilization's corpse?", + "responses": [ + { "text": "A lab.", "topic": "TALK_FORGE_LORD_DIVINER_LAB" }, + { "text": "An exodii location.", "topic": "TALK_FORGE_LORD_DIVINER_EXODII" }, + { "text": "A strange temple.", "topic": "TALK_FORGE_LORD_DIVINER_TEMPLE" }, + { "text": "An attunement altar.", "topic": "TALK_FORGE_LORD_DIVINER_ATTUNEMENT" }, + { "text": "A magic academy.", "topic": "TALK_FORGE_LORD_DIVINER_ACADEMY" }, + { "text": "A wizard tower.", "topic": "TALK_FORGE_LORD_DIVINER_TOWER" }, + { "text": "A goblin encampment.", "topic": "TALK_FORGE_LORD_DIVINER_GOBLIN" }, + { "text": "An orc village.", "topic": "TALK_FORGE_LORD_DIVINER_ORC" }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_MAN_MADE_INNAWOOD", + "type": "talk_topic", + "dynamic_line": "This reality does not seem to have a history of being inhabited by humans. Perhaps humanity never evolved? Or perhaps they never discovered this continent? Either way, due to the portal storms, humans are here now. And so are orcs and goblins. I should be able to help you find some artificial structures. What are you looking for?", + "responses": [ + { "text": "A strange temple.", "topic": "TALK_FORGE_LORD_DIVINER_TEMPLE" }, + { "text": "An attunement altar.", "topic": "TALK_FORGE_LORD_DIVINER_ATTUNEMENT" }, + { "text": "A goblin encampment.", "topic": "TALK_FORGE_LORD_DIVINER_GOBLIN" }, + { "text": "An orc village.", "topic": "TALK_FORGE_LORD_DIVINER_ORC" }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_GEOLOGY", + "type": "talk_topic", + "dynamic_line": "Sure. Looking for a pretty vista, perhaps?", + "responses": [ + { "text": "A river.", "topic": "TALK_FORGE_LORD_DIVINER_RIVER" }, + { "text": "A clay deposit.", "topic": "TALK_FORGE_LORD_DIVINER_CLAY" }, + { "text": "A sand deposit.", "topic": "TALK_FORGE_LORD_DIVINER_SAND" }, + { "text": "A hot spring.", "topic": "TALK_FORGE_LORD_DIVINER_SPRING" }, + { "text": "A cave.", "topic": "TALK_FORGE_LORD_DIVINER_CAVE" }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_PLANT", + "type": "talk_topic", + "dynamic_line": "A plant you say? Which one?", + "responses": [ + { "text": "A magical plant.", "topic": "TALK_FORGE_LORD_DIVINER_MAGIC_PLANT" }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_ANIMAL", + "//": "TODO: make missions that spawns animals and put them here", + "type": "talk_topic", + "dynamic_line": "I'm afraid I can't do that right now. Sorry.", + "responses": [ + { "text": "Fair enough. About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind then.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "type": "talk_topic", + "dynamic_line": "I see. You could get some from trading with the merchants around here. The librarian is crazy for beech nuts, for example. I saw her trade away all her money and books for a literal truckload of the things in another reality earlier. Not sure what she does with them. You see, she's lined her private rooms with lead which blocks my scrying. Almost like she doesn't trust me. Not sure why.", + "responses": [ { "text": "Fair enough.", "topic": "TALK_DONE" } ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_ANT", + "type": "talk_topic", + "dynamic_line": "I see a giant ant cutting down a tree with her mandibles. Did you know that worker ants are all female? I see her friends around her as well. I'll mark the location on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_ANTS" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_ACID_ANT", + "type": "talk_topic", + "dynamic_line": "I see a giant ant lobbing globs of acids at a group of unfortunate dogs. It seems to be quite effective. I'll mark the location on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_ACID_ANTS" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_DERMATIK", + "type": "talk_topic", + "dynamic_line": "Why would you ever want to get close to those creatures? Don't you know they lay eggs inside of other creatures!? Including humans! Well, if you're sure you want to go there, I'll mark the location on your map for one denarius. But don't come crying to me if you get poked full of dermatik larvae. Seriously, don't. I would like to keep my lunch. If they do give you problems though, you might find that drinking mugwort oil helps. It's made with, uh, mugwort. And oil. I think.", + "responses": [ + { + "text": "Sure, why not.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_DERMATIK" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "On second thought…", "topic": "TALK_NONE" }, + { "text": "Nope! this. I'm out.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_SPIDERS", + "type": "talk_topic", + "dynamic_line": "Spiders it is then. But there are several different kinds of spiders out there. Which type are you interested in?", + "responses": [ + { "text": "Web spinners in a forest.", "topic": "TALK_FORGE_LORD_DIVINER_SPIDERS_WEB" }, + { "text": "A pit full of spiders.", "topic": "TALK_FORGE_LORD_DIVINER_SPIDERS_PIT" }, + { "text": "Demonic spiders.", "topic": "TALK_FORGE_LORD_DIVINER_SPIDERS_DEMON" }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_SPIDERS_WEB", + "type": "talk_topic", + "dynamic_line": "I see a grove covered in webs. And legs. So many legs. I'll mark the location on your map for one denarius. Just don't bring any of them back here.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_SPIDER_WEB" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_SPIDERS_PIT", + "type": "talk_topic", + "dynamic_line": "There is a burrow not too far away that is absolutely crawling with spiders. Probably. I didn't get a close look. And I don't intend to. I'll mark the location on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_SPIDER_PIT" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_SPIDERS_DEMON", + "type": "talk_topic", + "dynamic_line": "Fasinating creatures, really. They have evolved a way to channel their innate mana into potent fire spells. Some demonic spider queens collect magical items as well. Perhaps they have a way of absorbing the mana in them and use it for themselves? I'll mark the lair of such a queen on your map for one denarius. You might want to bring fire resistant clothing.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_SPIDER_DEMON" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "No thanks. Giant fire-breathing spiders are no joke.", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_FUNGAL", + "type": "talk_topic", + "dynamic_line": "Ah yes, the extradimensional fungal dispersed intelligence known as the Mycus. Quite a menace to interdimensional travelers, I tell you. Some see them as a god. Some see them as an existential threat. And yet others see them as a good source of plant fibers. Their cellular structure makes them highly adaptive to a wide variety of levels of reality, much like other fungal lifeforms. Should you find yourself infected and without antifungal medicine, you can try rubbing sulphur on your skin. It might not work, and it might irritate your skin, but anything is preferable to letting it run its course. Should medication fail, don't bother with a bullet through your head. It won't save you from your impending fate. Instead, use fire, that's my advice. Now then, the Mycus have a few different manifestations. Which one are you interested in?", + "responses": [ + { "text": "A bloom.", "topic": "TALK_FORGE_LORD_DIVINER_FUNGAL_BLOOM" }, + { "text": "A tower.", "topic": "TALK_FORGE_LORD_DIVINER_FUNGAL_TOWER" }, + { "text": "Some flowers.", "topic": "TALK_FORGE_LORD_DIVINER_FUNGAL_FLOWERS" }, + { "text": "On second thought, maybe I'll go for something else…", "topic": "TALK_NONE" }, + { "text": "You know what? Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_FUNGAL_BLOOM", + "type": "talk_topic", + "dynamic_line": "I can almost smell them through the crystal ball. Disturbing. I'll mark the location on your map for one denarius. Good luck. You might need it.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_FUNGAL_BLOOM" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_FUNGAL_TOWER", + "type": "talk_topic", + "dynamic_line": "Scrying on these things makes me uneasy, but I'll mark the location on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_FUNGAL_TOWER" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_FUNGAL_FLOWERS", + "type": "talk_topic", + "dynamic_line": "I can't even number the times I've scraped this mess off of the forge. It's like walking into a spider web at an hundred miles an hour, and the web also smells terribly and tries to eat you. At least the magical torches the forgemaster has installed help a bit. See, the Mycus fears fire, and for good reasons. Anyways, I'll mark the location on your map for one denarius. Don't eat the fruit.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_FUNGAL_FLOWERS" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_MI_GO", + "type": "talk_topic", + "dynamic_line": "Right. Fungal crustaceans from space. Mighty unpleasant fellas, if you ask me. But, uh, don't tell them I said so. The forge lord says they mean no offense, that cutting people up is just their way of saying 'hi'. Personally I find it rude, but perhaps that's anthropocentric of me. But I digress. Are you interested in an encampment or a scout tower?", + "responses": [ + { "text": "An encampment.", "topic": "TALK_FORGE_LORD_DIVINER_MI_GO_ENCAMPMENT" }, + { "text": "A scout tower.", "topic": "TALK_FORGE_LORD_DIVINER_MI_GO_TOWER" }, + { "text": "On second thought…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_MI_GO_ENCAMPMENT", + "type": "talk_topic", + "dynamic_line": "Have you seen mi-go architecture? They make these living, organic structures out of resin. Kind of cool. And disturbing, I guess. Of course, they'll cut you to pieces if you gawk at it too long. I'll mark the location of one of these places on your map for one denarius. I heard a story, not sure if it was true, but allegedly one guy tried to use the mi-go building resin as armor. Apparently, it bore into the poor guy's flesh! Like lichen! His friends tried to tear it off, but it wouldn't bulge. He was in so much pain they decided to put him out of his misery. But they couldn't do it, because the armor was too good! So I guess that in a sense it worked. Heh. The mental image still keeps me awake at night, occasionally. And now you have it too. You're welcome.", + "responses": [ + { + "text": "Uh sure. Thanks? It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_MI_GO_ENCAMPMENT" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_MI_GO_TOWER", + "type": "talk_topic", + "dynamic_line": "The mi-go seem to abduct humans and animals for some alien purpose, and then build these towers for their spaceships to dock with to move the prisoners of-world. Did I mention they have space ships? Well, I've never actually seen one dock with a tower, but still. I'll mark such a tower on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_MI_GO_TOWER" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_TRIFFID", + "type": "talk_topic", + "dynamic_line": "Right. Extradimensional intelligent plants with a mean streak. They seem to have a method of traveling from reality to reality without traversing the hazards between. Interesting, no? I'll mark one of their groves on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_MI_GO_TOWER" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_KRAKEN", + "type": "talk_topic", + "dynamic_line": "It seems that a group of mutated cephalopods have set up camp in a cave near the water. I don't know what they're up to, but if you want to go and investigate I'll mark the cave on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_KRAKEN" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_SLIME", + "type": "talk_topic", + "dynamic_line": "Do you like slime? Do you like living slime that tries to eat you? Do you wish you were surrounded by lots and lots and lots of it? Then perhaps this place is the place for you. I'll mark the place on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_SLIME" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_GOBLIN", + "type": "talk_topic", + "dynamic_line": "Good choice. Small, angry creatures obsessed with trash, yet with a tendency to hoard some surprisingly valuable artefacts. Just watch out for the mind goblin. Actually, uh, never mind. I'll mark one of their camps on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_GOBLIN" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_ORC", + "type": "talk_topic", + "dynamic_line": "Militaristic xenophobes, that bunch. They are fairly good weapon smiths, and quite strong, so be careful. Oh, and something about their physiology makes them extra super dangerous when raised as undead. So you should probably try to not let that happen. I'll mark one of their camps on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_ORC" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_SWAMP_DRAGON", + "type": "talk_topic", + "dynamic_line": "Oh, fancy yourself a dragon slayer, eh? It's my understanding they use a lot of acid, so be ready for that. And remember that the body parts of dragons are quite valuable. Even the blood, so you might wanna bring something to keep said blood in, and bleed the corpses before you butcher. I'll mark it on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_SWAMP_DRAGON" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_BALROG", + "type": "talk_topic", + "dynamic_line": "Now there is not a lot I can tell you about this one. There is some kind of demonic beast living in this cave. But it only surfaces occasionally, and the heavy metals in the cave walls interfere with my scrying. There might be treasure down there, or there might not be. But there is certain to be danger. I'll mark it on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_BALROG" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_LAB", + "type": "talk_topic", + "dynamic_line": "Deeply buried secret installations where shady government organizations conducted unethical experiments, free from moral constrains. Did such places really exist before the cataclysm, or did humanity's collective mistrust, superstition and conspiracy theories cause the portal storms to dream these places into existence? I honestly can't tell, but I suppose it doesn't matter now. These places do exist, and are ripe with mysteries, dangers, and loot. You'll have to specify which kind you're looking for.", + "responses": [ + { "text": "Just a normal one.", "topic": "TALK_FORGE_LORD_DIVINER_LAB_NORMAL" }, + { "text": "A central lab.", "topic": "TALK_FORGE_LORD_DIVINER_LAB_CENTRAL" }, + { "text": "An ice lab.", "topic": "TALK_FORGE_LORD_DIVINER_LAB_ICE" }, + { "text": "A nether lab.", "topic": "TALK_FORGE_LORD_DIVINER_LAB_NETHER" }, + { "text": "On second thought, maybe I'll go for something else…", "topic": "TALK_NONE" }, + { "text": "You know what? Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_LAB_NORMAL", + "type": "talk_topic", + "dynamic_line": "Right. Probably a good call. I'll mark one on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_LAB" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_LAB_CENTRAL", + "type": "talk_topic", + "dynamic_line": "A larger lab with more dangers and more treasures. I'll mark it on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_LAB_CENTRAL" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_LAB_ICE", + "type": "talk_topic", + "dynamic_line": "It's an incredibly cold place, that lab. The deeper parts might even be below absolute zero. Now this was of course not possible during the old laws of physics, but times change. Times change. I'll mark one on your map for one denarius.", + "responses": [ + { + "text": "Cool. It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_LAB_ICE" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Actually, I got cold feet.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_LAB_NETHER", + "type": "talk_topic", + "dynamic_line": "Here it seems like the scientists managed to break through the walls of reality to the nether. Of course, they didn't bother to do it correctly, so the whole place is a mess. Be ready for flaming eyes if you go there. I'll mark it on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_LAB_NETHER" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_EXODII", + "type": "talk_topic", + "dynamic_line": "Fellow travelers between realities, those ones. At first I thought they would be competition, but they seem to have little interest in the things we at the forge value. Nowadays we barely interact with them, except in the rare occasions when we find a group of them marooned in between the worlds. Poor things are almost always driven completely insane by the time we can mount a rescue. Nevertheless, it's the law of the sea out there, as far as Valzain is concerned. They seem to have set up shop not too far from here. I'll mark it on your map for one denarius. You might wanna check the magic item store for an Amulet of Comprehend Languages before you go. Then again, we might be out of that right now.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_EXODII" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_TEMPLE", + "type": "talk_topic", + "dynamic_line": "Yes, a strange location indeed, buried mostly underground. Was it really built by humans? I find that rather unlikely. I can't see very deep into the structure, but there is a strange power somewhere below the entrance. I'll mark it on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_TEMPLE" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_ATTUNEMENT", + "type": "talk_topic", + "dynamic_line": "You know, if you've got the aptitude, you should go visit an attunement altar. I'll mark one on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_ATTUNEMENT" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_ACADEMY", + "type": "talk_topic", + "dynamic_line": "This place used to teach magic before the whole Malignance business. There is probably still spell scrolls and magical items to find there. And golems. I'll mark one on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_ACADEMY" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_TOWER", + "type": "talk_topic", + "dynamic_line": "Seems like an eccentric wizard once lived here. Not that there is any other kind of wizards, am I right? But, uh, don't tell Valzain I said so. But you know it's true. Anyways, I'll mark the building on your map for one denarius.", + "//": "TODO: randomize between MISSION_FORGE_DIVINER_TOWER1 and MISSION_FORGE_DIVINER_TOWER2", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_TOWER1" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_RIVER", + "type": "talk_topic", + "dynamic_line": "Rivers. Water, sand, clay, fish, giant mutant bugs. If you're having trouble finding one, I'll mark one on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_RIVER" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_CLAY", + "type": "talk_topic", + "dynamic_line": "Digging clay is quintessential of the Earthshaper. Forming it into useful tools is quintessential of the Technomancer. I'll a place a mark on your map for one denarius, if you want.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_CLAY" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_SAND", + "type": "talk_topic", + "dynamic_line": "If you're looking for something rough and coarse that gets everywhere, I'll mark a large sand patch on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_SAND" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_SPRING", + "type": "talk_topic", + "dynamic_line": "The water there is scolding hot. Perhaps it could help you survive the cold winter months? I'll mark one on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_SPRING" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_CAVE", + "type": "talk_topic", + "dynamic_line": "If you're interested in the neolithic housing market, I'll mark a cave on your map for one denarius. Just be warned that the place might already be occupied.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "and": [ { "u_has_item": "denarius" }, { "not": { "mod_is_loaded": "innawood" } } ] }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_CAVE" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "and": [ { "u_has_item": "denarius" }, { "mod_is_loaded": "innawood" } ] }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_CAVE_INNAWOOD" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_MAGIC_PLANT", + "type": "talk_topic", + "dynamic_line": "Looking for potion ingredients? I know a place where the leylines converge and such plants grows plentiful. I'll mark it on your map for one denarius.", + "responses": [ + { + "text": "It's a deal.", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_MAGIC_PLANT" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_GOD", + "type": "talk_topic", + "dynamic_line": "Valzain is over at the entrance of the forge, selling overpriced magical knick-knacks. Or perhaps there was something else you had in mind?", + "responses": [ + { "text": "Another forge?", "topic": "TALK_FORGE_LORD_DIVINER_OTHER_FORGE" }, + { "text": "A Lovecraftian horror.", "topic": "TALK_FORGE_LORD_DIVINER_LOVECRAFTIAN" }, + { "text": "The Malignance.", "topic": "TALK_FORGE_LORD_DIVINER_MALIGNANCE" }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_OTHER_FORGE", + "type": "talk_topic", + "dynamic_line": "Valzain is powerful, all right? He has built his forge in every country in every reality. Or at least the realities we have access to. If you travel far enough in either direction, you are bound to run into another forge somewhere else. Except in reality, it's the same forge. There would even be a 'me' there. If you go there, feel free to give my regards to myself. Confusing? I agree. It's all part of Valzain's master plan, I think. He needs a near infinity of something do do something about something. I haven't been able to pry much details out of him. You know it wasn't that long ago that I was not part of any of the forges. And now I have suddenly always been part of all of them. Yeah, I don't fully understand it either, but if you want me to point you to another instance of the forge, I can do so for one denarius.", + "responses": [ + { + "text": "It's a deal?", + "topic": "TALK_DONE", + "condition": { "u_has_item": "denarius" }, + "effect": [ { "assign_mission": "MISSION_FORGE_DIVINER_OTHER_FORGE" }, { "u_consume_item": "denarius" } ] + }, + { + "text": "I can't afford that right now.", + "topic": "TALK_FORGE_LORD_DIVINER_GET_MONEY", + "condition": { "not": { "u_has_item": "denarius" } } + }, + { "text": "About something else…", "topic": "TALK_NONE" }, + { "text": "Nevermind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_LOVECRAFTIAN", + "type": "talk_topic", + "dynamic_line": "There are these city-sized creatures called Void Leviathans that lives in the vast nether regions between realities. Sometimes they used to wash up onto Earths that had recently had a cataclysm. Caused all kinds of trouble, they did, so Valzain made it so they would spawn underground instead. But I haven't seen any of them in quite a while. Perhaps they retreated deeper into the empty parts of the nether? Sorry, I haven't seen any in this reality yet. I can't help you.", + "//": "This is for if nether_monster_corpse gets implemented.", + "responses": [ { "text": "About something else…", "topic": "TALK_NONE" }, { "text": "Nevermind.", "topic": "TALK_DONE" } ] + }, + { + "id": "TALK_FORGE_LORD_DIVINER_MALIGNANCE", + "type": "talk_topic", + "dynamic_line": "The Malignance is the cause for much of our woes. It is the force animating the zombies. It is responsible for the portal storms, and it seems to be absolutely bursting with hate. Valzain theorizes that it used to be a fundamental force of nature or perhaps a school of magic that somehow grew conscious, or perhaps had a consciousness imposed on it. Allegedly, the Mi-Go speak of a time before it existed, or perhaps a time in which it wasn't so dangerous. By now, it is everywhere on Earth. As far as I can tell, it builds no structures and has no bases of operation, so there is no place I can point you towards. Sorry.", + "responses": [ { "text": "About something else…", "topic": "TALK_NONE" }, { "text": "Nevermind.", "topic": "TALK_DONE" } ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/npc/TALK_FORGE_MERCHANT.json b/data/Mainline_mods/Mods/Magiclysm/npc/TALK_FORGE_MERCHANT.json index 2be0becd0..27150eea1 100644 --- a/data/Mainline_mods/Mods/Magiclysm/npc/TALK_FORGE_MERCHANT.json +++ b/data/Mainline_mods/Mods/Magiclysm/npc/TALK_FORGE_MERCHANT.json @@ -87,7 +87,7 @@ "responses": [ { "text": "Let's trade.", "effect": "start_trade", "topic": "TALK_FORGE_LORD" }, { "text": "What are you doing here?", "topic": "TALK_FORGE_LORD_DOING" }, - { "text": "Do you have any stories for me?", "topic": "TALK_FORGE_LORD_BOOKS_DELIVER" }, + { "text": "I have some stories for you.", "topic": "TALK_FORGE_LORD_BOOKS_DELIVER" }, { "text": "Well, bye.", "topic": "TALK_DONE" } ] }, diff --git a/data/Mainline_mods/Mods/Magiclysm/npc/forge_diviner_missions.json b/data/Mainline_mods/Mods/Magiclysm/npc/forge_diviner_missions.json new file mode 100644 index 000000000..2f319d78a --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/npc/forge_diviner_missions.json @@ -0,0 +1,558 @@ +[ + { + "id": "MISSION_FORGE_DIVINER_ANTS", + "type": "mission_definition", + "name": { "str": "Visit the anthill" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be giant ants here.", + "destination": "anthill", + "start": { + "assign_mission_target": { "om_terrain": "anthill", "om_special": "anthill", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_ACID_ANTS", + "type": "mission_definition", + "name": { "str": "Visit the acid anthill" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be giant acid ants here.", + "destination": "acid_anthill", + "start": { "assign_mission_target": { "om_terrain": "acid_anthill", "reveal_radius": 3, "cant_see": true, "search_range": 180 } } + }, + { + "id": "MISSION_FORGE_DIVINER_DERMATIK", + "type": "mission_definition", + "name": { "str": "Visit the dermatiks" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be dermatiks here.", + "destination": "nest_dermatik", + "start": { + "assign_mission_target": { + "om_terrain": "nest_dermatik", + "om_special": "Large Dermatik Nest", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_SPIDER_WEB", + "type": "mission_definition", + "name": { "str": "Visit the spider web" }, + "goal": "MGOAL_GO_TO", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be a spider web here.", + "start": { + "assign_mission_target": { "om_terrain": "forest", "reveal_radius": 3, "om_special": "mx_spider", "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_SPIDER_PIT", + "type": "mission_definition", + "name": { "str": "Visit the spider pit" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be a pit full of spiders here.", + "destination": "spider_pit", + "start": { + "assign_mission_target": { "om_terrain": "spider_pit", "om_special": "Spider Pit", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_SPIDER_DEMON", + "type": "mission_definition", + "name": { "str": "Visit the demon spiders" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be demon spiders here.", + "destination": "demon_spider_lair", + "start": { + "assign_mission_target": { + "om_terrain": "demon_spider_lair", + "om_special": "demon_spider_lair", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_FUNGAL_BLOOM", + "type": "mission_definition", + "name": { "str": "Visit the fungal bloom" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be a fungal bloom here.", + "destination": "fungal_bloom", + "start": { + "assign_mission_target": { + "om_terrain": "fungal_bloom", + "om_special": "Fungal Bloom", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_FUNGAL_TOWER", + "type": "mission_definition", + "name": { "str": "Visit the fungal tower" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be a fungal tower here.", + "destination": "fungal_tower", + "start": { + "assign_mission_target": { + "om_terrain": "fungal_tower", + "om_special": "Fungal Tower", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_FUNGAL_FLOWERS", + "type": "mission_definition", + "name": { "str": "Visit the fungal flowers" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be fungal flowers here.", + "destination": "fungal_flowers", + "start": { + "assign_mission_target": { + "om_terrain": "fungal_flowers", + "om_special": "Fungal Flowers", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_MI_GO_ENCAMPMENT", + "type": "mission_definition", + "name": { "str": "Visit the mi-go encampment" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be a mi-go encampment here.", + "destination": "mi-go_camp1", + "start": { + "assign_mission_target": { + "om_terrain": "mi-go_camp1", + "om_special": "Mi-Go Encampment", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_MI_GO_TOWER", + "type": "mission_definition", + "name": { "str": "Visit the mi-go tower" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be a mi-go tower here.", + "destination": "mi-go_scout_tower_1", + "start": { + "assign_mission_target": { + "om_terrain": "mi-go_scout_tower_1", + "om_special": "Mi-Go Scout Tower", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_TRIFFID", + "type": "mission_definition", + "name": { "str": "Visit the triffid grove" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be triffids here.", + "destination": "triffid_grove", + "start": { + "assign_mission_target": { + "om_terrain": "triffid_grove", + "om_special": "Triffid Grove", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_KRAKEN", + "type": "mission_definition", + "name": { "str": "Visit the kraken cave" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be a kraken cave here.", + "destination": "river_cave", + "start": { "assign_mission_target": { "om_terrain": "river_cave", "reveal_radius": 3, "cant_see": true, "search_range": 180 } } + }, + { + "id": "MISSION_FORGE_DIVINER_SLIME", + "type": "mission_definition", + "name": { "str": "Visit the slime pit" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be a slime pit here.", + "destination": "slimepit_top", + "start": { + "assign_mission_target": { "om_terrain": "slimepit_top", "om_special": "Slime Pit", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_GOBLIN", + "type": "mission_definition", + "name": { "str": "Visit the goblins" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be goblins here.", + "destination": "goblin_1A", + "start": { + "assign_mission_target": { + "om_terrain": "goblin_1A", + "om_special": "goblin_encampment", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_ORC", + "type": "mission_definition", + "name": { "str": "Visit the orcs" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be orcs here.", + "destination": "orc_village", + "start": { + "assign_mission_target": { "om_terrain": "orc_village", "om_special": "orc_village", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_SWAMP_DRAGON", + "type": "mission_definition", + "name": { "str": "Visit the dragon" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that here be swamp dragons.", + "destination": "black_dragon_lair_z-0_NW", + "start": { + "assign_mission_target": { + "om_terrain": "black_dragon_lair_z-0_NW", + "om_special": "black_dragon_lair", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_BALROG", + "type": "mission_definition", + "name": { "str": "Visit the balrog" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a balrog here.", + "destination": "mine_balrog_central", + "start": { + "assign_mission_target": { + "om_terrain": "mine_balrog_central", + "om_special": "Balrog mine", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_LAB", + "type": "mission_definition", + "name": { "str": "Visit the lab" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a lab here.", + "destination": "lab_stairs", + "start": { + "assign_mission_target": { "om_terrain": "lab_stairs", "om_special": "Lab", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_LAB_CENTRAL", + "type": "mission_definition", + "name": { "str": "Visit the central lab" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a central lab here.", + "destination": "central_lab_entrance", + "start": { + "assign_mission_target": { + "om_terrain": "central_lab_entrance", + "om_special": "Central Lab", + "reveal_radius": 3, + "cant_see": true, + "search_range": 400 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_LAB_ICE", + "type": "mission_definition", + "name": { "str": "Visit the ice lab" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be an ice lab here.", + "destination": "ice_lab_stairs", + "start": { + "assign_mission_target": { "om_terrain": "ice_lab_stairs", "om_special": "Ice Lab", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_LAB_NETHER", + "type": "mission_definition", + "name": { "str": "Visit the nether lab" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a nether lab here.", + "destination": "nether_elevator_above", + "start": { + "assign_mission_target": { "om_terrain": "nether_elevator_above", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_EXODII", + "type": "mission_definition", + "name": { "str": "Visit the exodii" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be exodii here.", + "destination": "exodii_base_x0y0z0", + "start": { + "assign_mission_target": { + "om_terrain": "exodii_base_x0y3z0", + "om_special": "exodii_base", + "reveal_radius": 3, + "cant_see": true, + "search_range": 400 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_TEMPLE", + "type": "mission_definition", + "name": { "str": "Visit the strange temple" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a strange temple.", + "destination": "temple_stairs", + "start": { + "assign_mission_target": { + "om_terrain": "temple_stairs", + "om_special": "Strangle Temple", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_ATTUNEMENT", + "type": "mission_definition", + "name": { "str": "Visit the attunement altar" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be an attunement altar here.", + "destination": "attunement_altar_NW", + "start": { + "assign_mission_target": { + "om_terrain": "attunement_altar_NW", + "om_special": "attunement altar", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_ACADEMY", + "type": "mission_definition", + "name": { "str": "Visit the magic academy" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a magic academy here.", + "destination": "magic_academy_ground", + "start": { + "assign_mission_target": { "om_terrain": "magic_academy_ground", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_TOWER1", + "type": "mission_definition", + "name": { "str": "Visit the wizard tower" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a wizard tower here.", + "destination": "wizardtower1_ground", + "start": { + "assign_mission_target": { "om_terrain": "wizardtower1_ground", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_TOWER2", + "type": "mission_definition", + "name": { "str": "Visit the wizard tower" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a wizard tower altar here.", + "destination": "wizardtower2_ground", + "start": { + "assign_mission_target": { "om_terrain": "wizardtower2_ground", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_RIVER", + "type": "mission_definition", + "name": { "str": "Visit the river" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a river here.", + "destination": "river_center", + "start": { "assign_mission_target": { "om_terrain": "river_center", "reveal_radius": 3, "cant_see": true, "search_range": 180 } } + }, + { + "id": "MISSION_FORGE_DIVINER_CLAY", + "type": "mission_definition", + "name": { "str": "Visit the clay deposit" }, + "goal": "MGOAL_GO_TO", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be a clay deposit here.", + "start": { + "assign_mission_target": { "om_terrain": "forest", "reveal_radius": 3, "om_special": "mx_clay_deposit", "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_SAND", + "type": "mission_definition", + "name": { "str": "Visit the sand patch" }, + "goal": "MGOAL_GO_TO", + "difficulty": 0, + "value": 0, + "description": "The diviner told you there would be a sand patch here.", + "start": { + "assign_mission_target": { "om_terrain": "field", "reveal_radius": 3, "om_special": "mx_sand_patch", "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_SPRING", + "type": "mission_definition", + "name": { "str": "Visit the hot spring" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a hot spring here.", + "destination": "hot_springs", + "start": { + "assign_mission_target": { "om_terrain": "hot_springs", "om_special": "Hot Springs", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_CAVE", + "type": "mission_definition", + "name": { "str": "Visit the cave" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a cave here.", + "destination": "cave", + "start": { + "assign_mission_target": { "om_terrain": "cave", "om_special": "Cave", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_CAVE_INNAWOOD", + "//": "Innawood uses a different terrain ID for caves", + "type": "mission_definition", + "name": { "str": "Visit the cave" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a cave here.", + "destination": "cave_innawood", + "start": { + "assign_mission_target": { "om_terrain": "cave_innawood", "om_special": "Cave", "reveal_radius": 3, "cant_see": true, "search_range": 180 } + } + }, + { + "id": "MISSION_FORGE_DIVINER_MAGIC_PLANT", + "type": "mission_definition", + "name": { "str": "Visit the magic field" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be a field of magical flowers here.", + "destination": "magic_field_a1", + "start": { + "assign_mission_target": { + "om_terrain": "magic_field_a1", + "om_special": "magic_field", + "reveal_radius": 3, + "cant_see": true, + "search_range": 180 + } + } + }, + { + "id": "MISSION_FORGE_DIVINER_OTHER_FORGE", + "type": "mission_definition", + "name": { "str": "Visit the other Forge of Wonders" }, + "goal": "MGOAL_GO_TO_TYPE", + "difficulty": 0, + "value": 0, + "description": "The diviner told you that there would be another Forge of Wonders here. Or perhaps it's the same forge, but a different time? They weren't entirely clear what was going on here.", + "destination": "forge_1A_north", + "start": { + "assign_mission_target": { "om_terrain": "forge_1A_north", "reveal_radius": 3, "cant_see": true, "search_range": 400 } + } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/professions.json b/data/Mainline_mods/Mods/Magiclysm/professions.json index 1df48c454..bff59c2c5 100644 --- a/data/Mainline_mods/Mods/Magiclysm/professions.json +++ b/data/Mainline_mods/Mods/Magiclysm/professions.json @@ -1,4 +1,10 @@ [ + { + "type": "item_group", + "subtype": "collection", + "id": "pouch_wild_druid", + "entries": [ { "item": "fur" }, { "item": "fur" }, { "item": "fur" }, { "item": "bone_tainted" }, { "item": "bone_tainted" } ] + }, { "type": "item_group", "subtype": "collection", @@ -120,6 +126,7 @@ "socks", "kittel", "kippah", + "tallit_gadol", "dress_shoes", "holy_symbol", "holybook_talmud", @@ -199,7 +206,7 @@ "id": "novice_necromancer", "name": "Novice Necromancer", "description": "You always had to hide your magic, as it was generally not an acceptable type of magic in the wizarding world, but with the Cataclysm you need to pull every trick out of the book.", - "spells": [ { "id": "summon_zombie", "level": 5 }, { "id": "necrotic_gaze", "level": 1 } ], + "spells": [ { "id": "summon_undead", "level": 5 }, { "id": "necrotic_gaze", "level": 1 } ], "points": 2, "skills": [ { "level": 1, "name": "spellcraft" } ], "items": { @@ -222,7 +229,11 @@ "id": "novice_stormshaper", "name": "Novice Stormshaper", "description": "The son of a weatherman, you were always interested in the weather. Recently you found it was possible to manipulate the weather yourself through arcane means! Unfortunately you did not have long to enjoy your power, as events unfolded…", - "spells": [ { "id": "shocking_lash", "level": 1 }, { "id": "windrun", "level": 1 } ], + "spells": [ + { "id": "shocking_lash", "level": 1 }, + { "id": "windrun", "level": 1 }, + { "id": "stormshaper_cloak_of_fog", "level": 1 } + ], "points": 0, "items": { "both": { @@ -238,7 +249,7 @@ "type": "profession", "id": "novice_earthshaper", "name": "Novice Earthshaper", - "description": "You always were tough in a fight. Your coach managed to teach you a trick or two to make you a little tougher.", + "description": "You were always tough in a fight. Your coach managed to teach you a trick or two to make you a little tougher.", "spells": [ { "id": "stonefist", "level": 1 }, { "id": "seismic_stomp", "level": 1 } ], "points": 0, "items": { @@ -273,7 +284,7 @@ "id": "ranger", "name": "Introspectionist", "description": "You segregated yourself from society because you wanted to concentrate on improving yourself. It was you and your best friend, but now the apocalypse won't leave you alone.", - "spells": [ { "id": "magic_missile", "level": 4 } ], + "spells": [ { "id": "magic_missile", "level": 4 }, { "id": "classless_watch_spell", "level": 2 } ], "points": 4, "skills": [ { "level": 2, "name": "survival" }, { "level": 1, "name": "firstaid" } ], "traits": [ "MAGUS" ], @@ -321,7 +332,11 @@ "id": "techno_prepper", "name": "Techno-Prepper", "description": "You've long suspected the world might suddenly turn over. With your training, spells, and revolver, your chances are far better than most.", - "spells": [ { "id": "create_atomic_lamp", "level": 8 }, { "id": "invisibility", "level": 2 } ], + "spells": [ + { "id": "create_atomic_lamp", "level": 8 }, + { "id": "invisibility", "level": 2 }, + { "id": "technomancer_conjure_ups", "level": 3 } + ], "points": 5, "skills": [ { "level": 2, "name": "survival" }, @@ -349,6 +364,260 @@ }, "traits": [ "TECHNOMANCER" ] }, + { + "type": "profession", + "id": "freezing_dancer", + "name": "Freezing Dancer", + "description": "You are a highly sought exotic magic dancer. You can heat the room temperature with your moves and your body, but whenever it lights too much you freeze it with your magic, granting you great control over your public. They can see, but never touch.", + "spells": [ + { "id": "freezing_touch", "level": 3 }, + { "id": "glide_ice", "level": 3 }, + { "id": "kelvinist_anti_heat", "level": 3 } + ], + "skills": [ { "level": 2, "name": "dodge" }, { "level": 2, "name": "spellcraft" } ], + "points": 2, + "items": { + "both": { + "items": [ + "hot_pants_leather", + "chaps_leather", + "halter_top", + "jacket_leather", + "fancy_sunglasses", + "dance_shoes", + "socks", + "purse" + ], + "entries": [ { "group": "charged_cell_phone" }, { "item": "mask_dust", "variant": "black_mask_dust" } ] + }, + "male": [ "tank_top" ], + "female": [ "bikini_top_leather", "leather_collar" ] + }, + "traits": [ "KELVINIST" ] + }, + { + "type": "profession", + "id": "dimensionalist", + "name": "Dimensionalist Mage", + "description": "You are an expert in dimensionalism, with its most common example being teleportation magic, that is the reason why you could survive while your colleagues could not. Your only hope is that your highly specialized skills will continue keeping you alive.", + "points": 6, + "spells": [ + { "id": "phase_door", "level": 10 }, + { "id": "dimension_door", "level": 2 }, + { "id": "translocate_self", "level": 5 }, + { "id": "magus_teleport_mark", "level": 6 }, + { "id": "magus_word_of_recall", "level": 4 }, + { "id": "magus_escape", "level": 3 }, + { "id": "gravity_well", "level": 2 } + ], + "skills": [ { "level": 5, "name": "spellcraft" } ], + "items": { + "both": { + "items": [ + "copper_circlet", + "cloak", + "dress_shoes", + "socks_wool", + "mbag", + "wizard_hat", + "gloves_liner", + "gloves_light", + "dress_shirt", + "knit_scarf", + "pocketwatch" + ], + "entries": [ { "item": "magi_staff_minor", "custom-flags": [ "auto_wield" ] } ] + }, + "male": [ "boxer_briefs", "pants" ], + "female": [ "bra", "panties", "skirt" ] + }, + "traits": [ "MAGUS" ] + }, + { + "type": "profession", + "id": "magic_burglar", + "name": "Shadow Burglar", + "description": "Helped by all kind of magical tools and your great talents, you were planning your next great break in. The world ended before you had time to escape with all of your ill-gained plunder, but at least now nobody can stop you now from breaking whatever locks you desire.", + "points": 5, + "proficiencies": [ "prof_lockpicking" ], + "skills": [ { "level": 4, "name": "traps" } ], + "items": { + "both": { + "items": [ + "socks", + "sneakers", + "pants", + "striped_shirt", + "hoodie", + "gloves_light", + "swag_bag", + "crowbar", + "hacksaw", + "wristwatch", + "boltcutters", + "stethoscope", + "picklocks", + "mkey_opening" + ], + "entries": [ { "item": "mmask_disappearance", "ammo-item": "crystallized_mana", "charges": 1 } ] + }, + "male": [ "briefs" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "magic_drunkard", + "name": "Magic Drunkard", + "description": "You were lucky enough to find a weird flask that refills itself with whiskey! You now spend your days just waiting for every refill and keeping it from the hands of any envious neighbor of yours.", + "points": 2, + "addictions": [ { "intensity": 20, "type": "alcohol" } ], + "skills": [ { "level": 2, "name": "unarmed" } ], + "items": { + "both": { + "items": [ + "jeans", + "gloves_light", + "hat_ball", + "duffelbag", + "backpack", + "long_underpants", + "boots", + "socks_wool", + "socks", + "hoodie", + "folding_poncho", + "knit_scarf", + "can_beans", + "pockknife", + "mflask_hip_whiskey" + ], + "entries": [ { "group": "charged_cell_phone" }, { "group": "charged_matches" }, { "item": "tshirt", "variant": "generic_tshirt" } ] + }, + "male": [ "boxer_briefs" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "magic_miner", + "name": "Magic Miner", + "description": "You were the most prepared of them all. The miner that never lacked tools and could control the ground itself. Sadly, you are not sure those abilities will save you in what is to come.", + "points": 4, + "skills": [ { "level": 2, "name": "spellcraft" } ], + "spells": [ + { "id": "eshaper_spawn_tools", "level": 3 }, + { "id": "move_earth", "level": 2 }, + { "id": "earthshaper_pillar", "level": 1 }, + { "id": "classless_watch_spell", "level": 1 } + ], + "traits": [ "EARTHSHAPER" ], + "items": { + "both": { + "items": [ "socks", "boots_steel", "gloves_work", "knee_pads", "jumpsuit", "tool_belt", "mbag", "wristwatch" ], + "entries": [ + { "group": "full_gasmask" }, + { "group": "charged_smart_phone" }, + { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, + { "item": "water_clean", "container-item": "canteen" }, + { "item": "light_minus_disposable_cell", "charges": 100 }, + { "item": "light_minus_disposable_cell", "charges": 100, "container-item": "miner_hat" } + ] + }, + "male": [ "boxer_shorts" ], + "female": [ "boy_shorts", "sports_bra" ] + } + }, + { + "type": "profession", + "id": "magic_maid", + "name": { "male": "Magic Butler", "female": "Magic Maid" }, + "description": "You are a descendant of a long line of housekeepers for magical families. Trained in several spells to facilitate your job you were easily hired to take care of your current job, sadly, it looks like this could be your last.", + "points": 4, + "skills": [ { "level": 2, "name": "cooking" }, { "level": 2, "name": "spellcraft" }, { "level": 2, "name": "tailor" } ], + "proficiencies": [ "prof_food_prep", "prof_closures" ], + "spells": [ + { "id": "create_atomic_light", "level": 4 }, + { "id": "magus_force_jar", "level": 3 }, + { "id": "magus_haste", "level": 2 }, + { "id": "cats_grace", "level": 1 }, + { "id": "classless_watch_spell", "level": 1 } + ], + "traits": [ "MAGUS" ], + "items": { + "both": { "items": [ "pocketwatch", "mteapot" ], "entries": [ { "group": "charged_smart_phone" } ] }, + "male": [ "briefs", "socks", "dress_shoes", "tux", "glasses_monocle", "collarpin" ], + "female": [ "panties", "bra", "stockings", "garter_belt", "dress_shoes", "maid_dress", "maid_hat", "corset_waist", "fc_hairpin" ] + } + }, + { + "type": "profession", + "id": "wild_druid", + "name": "Wild Druid", + "description": "For a long time you lived in the wild, free of interference from whatever inhabited outside the woods, now that the woods are collapsing you finally return to civilization.", + "points": 6, + "spells": [ + { "id": "druid_feralform", "level": 4 }, + { "id": "summon_wolf_druid", "level": 3 }, + { "id": "purify_seed", "level": 3 }, + { "id": "dark_sight", "level": 2 }, + { "id": "classless_watch_spell", "level": 1 }, + { "id": "druid_summon_brambles", "level": 3 } + ], + "skills": [ { "level": 4, "name": "survival" }, { "level": 3, "name": "spellcraft" } ], + "traits": [ "ANIMALEMPATH", "SLOWREADER", "DRUID" ], + "items": { + "both": { + "items": [ "footrags_fur", "boots_fur", "gloves_wraps_fur", "hat_fur", "cloak_fur", "scarf_fur_loose" ], + "entries": [ + { "item": "wolfshead_cufflinks", "ammo-item": "crystallized_mana", "charges": 1 }, + { "item": "leather_pouch", "contents-group": "pouch_wild_druid" }, + { "item": "primitive_knife", "container-item": "sheath" }, + { "item": "water_clean", "charges": 3, "container-item": "waterskin" } + ] + }, + "male": [ "chestwrap_fur", "loincloth_fur" ], + "female": [ "bikini_top_fur", "hot_pants_fur" ] + } + }, + { + "type": "profession", + "id": "archer_druid", + "name": "Archer Druid", + "description": "You were a skillful and committed archer druid, making constant excursions to the forests in which you dedicated yourself to living of and with what nature had to offer you. You were returning from your last travel when civilization fell upon itself.", + "points": 5, + "proficiencies": [ "prof_bowyery", "prof_bow_basic", "prof_bow_expert" ], + "spells": [ + { "id": "druid_naturebow1", "level": 4 }, + { "id": "druid_natures_commune", "level": 3 }, + { "id": "druid_harvest_hunter", "level": 3 }, + { "id": "purify_seed", "level": 2 }, + { "id": "druid_veggrasp", "level": 1 }, + { "id": "classless_watch_spell", "level": 2 } + ], + "skills": [ + { "level": 2, "name": "survival" }, + { "level": 2, "name": "spellcraft" }, + { "level": 1, "name": "gun" }, + { "level": 2, "name": "archery" } + ], + "traits": [ "DRUID" ], + "items": { + "both": { + "items": [ + "robe", + "chestwrap", + "loincloth", + "leathersandals", + "gloves_wraps", + "straw_hat", + "leather_pouch", + "sleeping_bag_fur_roll" + ], + "entries": [ { "item": "water_clean", "container-item": "waterskin" }, { "item": "primitive_knife", "container-item": "sheath" } ] + } + } + }, { "type": "profession", "id": "magic_grim_reaper", @@ -379,7 +648,7 @@ "spells": [ { "id": "recover_mana", "level": 2 }, { "id": "necrotic_gaze", "level": 2 }, - { "id": "summon_zombie", "level": 2 }, + { "id": "summon_undead", "level": 2 }, { "id": "dark_sight", "level": 3 } ], "CBMs": [ "bio_fuel_cell_blood", "bio_power_storage_mkII", "bio_nanobots" ], @@ -497,7 +766,7 @@ "type": "profession", "id": "storm_police", "name": "Shock Officer", - "description": "You were enrolled in a experimental law enforcement program designed to decrease suspect casualties and equipment costs by substituting tasers and bullets for less-lethal Stormshaping.", + "description": "You were enrolled in an experimental law enforcement program designed to decrease suspect casualties and equipment costs by substituting tasers and bullets for less-lethal Stormshaping.", "points": 4, "spells": [ { "id": "windstrike", "level": 3 }, @@ -562,7 +831,7 @@ "items": [ "longshirt", "pants", "socks", "sneakers", "gloves_medical", "coat_lab", "xacto", "wristwatch" ], "entries": [ { "item": "disinfectant_makeshift", "charges": 10, "container-item": "bottle_plastic_small" }, - { "item": "bandages", "charges": 15 }, + { "item": "bandages", "count": 15 }, { "group": "charged_cell_phone" } ] }, @@ -581,7 +850,9 @@ "spells": [ { "id": "druidic_healing", "level": 4 }, { "id": "purify_seed", "level": 4 }, - { "id": "druid_woodshaft", "level": 3 } + { "id": "druid_woodshaft", "level": 3 }, + { "id": "classless_watch_spell", "level": 2 }, + { "id": "druid_beguile_savage_beast", "level": 2 } ], "skills": [ { "level": 4, "name": "survival" }, @@ -591,7 +862,7 @@ { "level": 2, "name": "archery" }, { "level": 1, "name": "tailor" } ], - "traits": [ "ANIMALEMPATH", "SLOWREADER" ], + "traits": [ "ANIMALEMPATH", "SLOWREADER", "DRUID" ], "pets": [ { "name": "mon_moose", "amount": 1 } ], "items": { "both": { @@ -631,7 +902,6 @@ "both": { "items": [ "winter_pants_army", - "army_top", "winter_jacket_army", "gloves_tactical", "molle_pack", @@ -644,10 +914,11 @@ "hatchet", "balclava", "rifle_case_soft", - "mess_tin" + "mess_kit" ], "entries": [ { "item": "emer_blanket", "custom-flags": [ "no_auto_equip" ] }, + { "item": "tank_top", "variant": "tank_top_camo" }, { "group": "charged_two_way_radio" }, { "item": "boreal_mosin", @@ -672,7 +943,11 @@ "name": "Arsonist", "description": "Penned in a cell without fuel, you've been extinguished for years for setting buildings on fire. In your escape, you grabbed your familiar tool to reignite the embers.", "points": 3, - "spells": [ { "id": "kelvinist_flamebreath", "level": 2 }, { "id": "burning_hands", "level": 2 } ], + "spells": [ + { "id": "kelvinist_flamebreath", "level": 2 }, + { "id": "burning_hands", "level": 2 }, + { "id": "kelvinist_anti_heat", "level": 2 } + ], "skills": [ { "level": 3, "name": "spellcraft" } ], "traits": [ "KELVINIST" ], "items": { @@ -692,7 +967,8 @@ { "id": "druidic_regrowth", "level": 3 }, { "id": "druid_feralform", "level": 2 }, { "id": "druid_veggrasp", "level": 2 }, - { "id": "druid_natures_commune", "level": 2 } + { "id": "druid_natures_commune", "level": 2 }, + { "id": "druid_summon_tanglevine", "level": 2 } ], "skills": [ { "level": 3, "name": "spellcraft" }, @@ -714,7 +990,12 @@ "name": { "male": "Frost Cream Man", "female": "Frost Cream Woman" }, "description": "You learned Kelvinist spells to keep equipment costs down on your ice cream truck. While their tastes have changed, the kids still scream for you.", "points": 4, - "spells": [ { "id": "chilling_touch", "level": 3 }, { "id": "frost_spray", "level": 3 } ], + "proficiencies": [ "prof_driver" ], + "spells": [ + { "id": "chilling_touch", "level": 3 }, + { "id": "frost_spray", "level": 3 }, + { "id": "kelvinist_anti_heat", "level": 4 } + ], "skills": [ { "level": 2, "name": "speech" }, { "level": 2, "name": "cooking" }, diff --git a/data/Mainline_mods/Mods/Magiclysm/proficiencies.json b/data/Mainline_mods/Mods/Magiclysm/proficiencies.json index d70997b62..396039642 100644 --- a/data/Mainline_mods/Mods/Magiclysm/proficiencies.json +++ b/data/Mainline_mods/Mods/Magiclysm/proficiencies.json @@ -13,7 +13,7 @@ "description": "You know the basics of manipulating the mana of objects through application of chemical laws.", "can_learn": true, "default_time_multiplier": 2, - "default_fail_multiplier": 1.3, + "default_skill_penalty": 0.3, "time_to_learn": "8 h" }, { @@ -25,7 +25,7 @@ "can_learn": true, "time_to_learn": "4 h", "default_time_multiplier": 2, - "default_fail_multiplier": 1.2, + "default_skill_penalty": 0.2, "required_proficiencies": [ "prof_alchemy", "prof_metalworking" ] }, { @@ -36,7 +36,7 @@ "description": "Working with dragon leather requires a specific set of skills and tools… a set you are familiar with.", "can_learn": true, "default_time_multiplier": 1.5, - "default_fail_multiplier": 2, + "default_skill_penalty": 1, "time_to_learn": "6 h", "required_proficiencies": [ "prof_leatherworking" ] }, @@ -48,7 +48,7 @@ "description": "Working with dragon scales requires a specific set of skills and tools… a set you are familiar with.", "can_learn": true, "default_time_multiplier": 2, - "default_fail_multiplier": 3, + "default_skill_penalty": 2, "time_to_learn": "12 h", "required_proficiencies": [ "prof_leatherworking_dragon" ] }, @@ -61,6 +61,28 @@ "can_learn": true, "time_to_learn": "4 h", "default_time_multiplier": 1.5, - "default_fail_multiplier": 2 + "default_skill_penalty": 1 + }, + { + "type": "proficiency", + "id": "prof_weapon_enchanting", + "category": "prof_alchemy", + "name": { "str": "Enchanting" }, + "description": "You are an experienced enchanter.", + "can_learn": true, + "time_to_learn": "12 h", + "default_time_multiplier": 2, + "default_skill_penalty": 0 + }, + { + "type": "proficiency", + "id": "prof_botanical_enchantment", + "category": "prof_alchemy", + "name": { "str": "Mystic Horticulture" }, + "description": "The art of instilling mystical energy into fruit.", + "can_learn": true, + "default_time_multiplier": 2, + "default_skill_penalty": 0.2, + "time_to_learn": "10 h" } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/qualities.json b/data/Mainline_mods/Mods/Magiclysm/qualities.json index 8d780880a..d4425faa8 100644 --- a/data/Mainline_mods/Mods/Magiclysm/qualities.json +++ b/data/Mainline_mods/Mods/Magiclysm/qualities.json @@ -12,7 +12,8 @@ "CSC_ENCHANTED_POTIONS", "CSC_ENCHANTED_RUNES", "CSC_ENCHANTED_MODS", - "CSC_ENCHANTED_OTHER" + "CSC_ENCHANTED_OTHER", + "CSC_ENCHANTED_ENCHANTING" ] }, { diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes.json b/data/Mainline_mods/Mods/Magiclysm/recipes.json index 42f39b378..97449b6fd 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes.json @@ -1,21 +1,21 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "egg_owlbear", "category": "CC_FOOD", "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", "time": "2 m", "autolearn": true, - "result_mult": 40, "byproducts": [ [ "stone_shell", 3 ] ], "qualities": [ { "id": "HAMMER", "level": 1 } ], - "components": [ [ [ "egg_owlbear_rock", 1 ] ] ] + "components": [ [ [ "egg_owlbear_rock", 1 ] ] ], + "charges": 40 }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "glow_light", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_LIGHTING", @@ -46,7 +46,7 @@ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_bladesmith" }, - { "proficiency": "prof_carving", "time_multiplier": 1.2, "fail_multiplier": 1, "learning_time_multiplier": 0.2 } + { "proficiency": "prof_carving", "time_multiplier": 1.2, "learning_time_multiplier": 0.2, "skill_penalty": 0 } ], "using": [ [ "blacksmithing_standard", 16 ] ], "qualities": [ { "id": "CHISEL", "level": 3 } ], diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/alchemy.json b/data/Mainline_mods/Mods/Magiclysm/recipes/alchemy.json index ac697b7e6..aad165f8b 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/alchemy.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/alchemy.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "dragon_essence", "qualities": [ { "id": "CONCENTRATE", "level": 1 }, @@ -23,7 +23,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "dragon_essence", "id_suffix": "with_blood", "charges": 2, @@ -49,12 +49,12 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "spell_scroll_acid_resistance", "qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], "tools": [ [ [ "paint_brush", -1 ] ] ], "components": [ - [ [ "blood_tainted", 2000 ], [ "edible_blood", 8, "LIST" ], [ "dragon_blood", 2000 ] ], + [ [ "blood_tainted", 8 ], [ "edible_blood", 8, "LIST" ], [ "dragon_blood", 2000 ] ], [ [ "any_strong_acid", 4, "LIST" ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ], @@ -68,7 +68,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "mana_dust", "qualities": [ { "id": "CONTAIN", "level": 1 } ], "tools": [ [ [ "mortar_pestle", -1 ] ] ], @@ -83,7 +83,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "mana_infused_blood", "qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], "components": [ [ [ "mana_dust", 1 ] ], [ [ "edible_blood", 1, "LIST" ] ] ], @@ -98,7 +98,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "enchanted_wood", "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], "components": [ [ [ "mana_dust", 10 ] ], [ [ "stick_long", 1 ] ] ], @@ -112,7 +112,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "mana_pearl", "qualities": [ { "id": "MANA_INFUSE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], "components": [ [ [ "crystallized_mana", 50 ] ] ], @@ -135,5 +135,27 @@ "autolearn": true, "reversible": true, "components": [ [ [ "demon_chitin_piece", 10 ] ], [ [ "rope_any_short", 1, "LIST" ] ] ] + }, + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "biomancer_booster_sludge", + "qualities": [ { "id": "CONTAIN", "level": 1 } ], + "tools": [ [ [ "rune_biomancer", -1 ] ] ], + "components": [ + [ [ "mana_energy_weak", 1, "LIST" ] ], + [ [ "edible_blood", 3, "LIST" ] ], + [ [ "meat_raw_steak", 1, "LIST" ] ], + [ [ "edible_bonemarrow", 1, "LIST" ] ] + ], + "time": "30 m", + "skill_used": "chemistry", + "difficulty": 2, + "skills_required": [ "spellcraft", 2 ], + "proficiencies": [ { "proficiency": "prof_alchemy" } ], + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_OTHER", + "autolearn": true, + "charges": 10 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/armor.json b/data/Mainline_mods/Mods/Magiclysm/recipes/armor.json index 82309859c..76494bfde 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/armor.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/armor.json @@ -9,7 +9,7 @@ { "id": "MANA_INFUSE", "level": 2 } ], "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_ARMOR", "skill_used": "tailor", @@ -37,7 +37,7 @@ { "id": "MANA_INFUSE", "level": 2 } ], "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_ARMOR", "skill_used": "tailor", @@ -68,7 +68,7 @@ { "id": "MANA_INFUSE", "level": 2 } ], "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_ARMOR", "skill_used": "tailor", @@ -99,7 +99,7 @@ { "id": "MANA_INFUSE", "level": 2 } ], "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_ARMOR", "skill_used": "tailor", @@ -130,7 +130,7 @@ { "id": "MANA_INFUSE", "level": 2 } ], "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_ARMOR", "skill_used": "tailor", @@ -155,7 +155,7 @@ { "result": "demonchitin_armor_horse", "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "copy-from": "armor_demonchitin", "category": "CC_ANIMALS", "subcategory": "CSC_ANIMALS_EQUINE ARMOR", @@ -173,7 +173,7 @@ { "result": "demonchitin_harness_dog", "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "copy-from": "armor_demonchitin", "category": "CC_ANIMALS", "subcategory": "CSC_ANIMALS_CANINE ARMOR", diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/blacksmithing.json b/data/Mainline_mods/Mods/Magiclysm/recipes/blacksmithing.json index f72067901..7ccfe87c1 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/blacksmithing.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/blacksmithing.json @@ -2,7 +2,7 @@ { "result": "orichalcum_ingot", "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", @@ -12,18 +12,18 @@ "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_metallurgy" }, - { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 1.5, "fail_multiplier": 1.5 }, + { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 1.5, "skill_penalty": 0.5 }, { "proficiency": "prof_almetallurgy" } ], "book_learn": [ [ "metal_legends", 4 ] ], - "tools": [ [ [ "demon_forge", 15 ] ], [ [ "tongs", -1 ] ] ], + "tools": [ [ [ "demon_forge", 15 ] ], [ [ "metalworking_tongs", -1 ] ] ], "components": [ [ [ "orichalcum_sliver", 8 ], [ "orichalcum_lump", 2 ] ], [ [ "mercury", 100 ] ] ] }, { "result": "orichalcum_ingot", "id_suffix": "with_bronze", "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", @@ -31,17 +31,17 @@ "time": "180 m", "proficiencies": [ { "proficiency": "prof_metallurgy" }, - { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 1.5, "fail_multiplier": 1.5 }, + { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 1.5, "skill_penalty": 0.5 }, { "proficiency": "prof_almetallurgy" } ], "batch_time_factors": [ 50, 2 ], "book_learn": [ [ "metal_legends", 4 ] ], - "tools": [ [ [ "demon_forge", 15 ] ], [ [ "tongs", -1 ] ] ], + "tools": [ [ [ "demon_forge", 15 ] ], [ [ "metalworking_tongs", -1 ] ] ], "components": [ [ [ "scrap_bronze", 9 ] ], [ [ "mercury", 400 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "fireproof_mortar", "category": "CC_OTHER", "subcategory": "CSC_OTHER_OTHER", @@ -50,7 +50,7 @@ "time": "40 m", "book_learn": [ [ "metal_legends", 2 ] ], "proficiencies": [ - { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 1.5, "fail_multiplier": 1.5 }, + { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 1.5, "skill_penalty": 0.5 }, { "proficiency": "prof_pottery" } ], "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], @@ -59,7 +59,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "alumentum", "category": "CC_OTHER", "subcategory": "CSC_OTHER_OTHER", @@ -68,7 +68,7 @@ "time": "45 m", "autolearn": true, "qualities": [ { "id": "MANA_INFUSE", "level": 1 }, { "id": "COOK", "level": 3 }, { "id": "DISTILL", "level": 1 } ], - "proficiencies": [ { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 1.5, "fail_multiplier": 1.5 } ], + "proficiencies": [ { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 1.5, "skill_penalty": 0.5 } ], "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], "components": [ [ [ "charcoal", 50 ] ], [ [ "crystallized_mana", 10 ] ], [ [ "denat_alcohol", 10 ], [ "chem_ethanol", 10 ] ] ] }, @@ -90,10 +90,10 @@ { "id": "FILE", "level": 2 }, { "id": "ANVIL", "level": 1 } ], - "tools": [ [ [ "demon_forge", 30 ] ], [ [ "tongs", -1 ] ] ], + "tools": [ [ [ "demon_forge", 30 ] ], [ [ "metalworking_tongs", -1 ] ] ], "proficiencies": [ { "proficiency": "prof_almetallurgy", "required": true }, - { "proficiency": "prof_golemancy_basic", "required": false, "time_multiplier": 1.5, "fail_multiplier": 2 } + { "proficiency": "prof_golemancy_basic", "required": false, "time_multiplier": 1.5, "skill_penalty": 1 } ], "components": [ [ [ "orichalcum_ingot", 4 ] ], [ [ "mercury", 4 ] ], [ [ "crystallized_mana", 100 ] ] ] } diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/caster_level_boosters.json b/data/Mainline_mods/Mods/Magiclysm/recipes/caster_level_boosters.json new file mode 100644 index 000000000..8871bda25 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/caster_level_boosters.json @@ -0,0 +1,173 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "magus_booster_1", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_TOOLS", + "skill_used": "fabrication", + "skills_required": [ [ "spellcraft", 2 ], [ "survival", 1 ] ], + "difficulty": 2, + "book_learn": [ [ "caster_boosts_info", 2 ] ], + "time": "20 m", + "autolearn": true, + "using": [ [ "cordage_short", 1 ] ], + "qualities": [ { "id": "CUT", "level": 1 } ], + "proficiencies": [ { "proficiency": "prof_carving" } ], + "components": [ [ [ "stick", 2 ] ], [ [ "rune_magus", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "magus_booster_2", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_TOOLS", + "skill_used": "fabrication", + "skills_required": [ [ "spellcraft", 4 ] ], + "difficulty": 6, + "book_learn": [ [ "caster_boosts_info", 6 ] ], + "time": "8 h", + "autolearn": false, + "using": [ [ "cordage_short", 1 ], [ "steel_tiny", 1 ] ], + "qualities": [ + { "id": "HAMMER", "level": 2 }, + { "id": "SCREW_FINE", "level": 1 }, + { "id": "MANA_INFUSE", "level": 1 }, + { "id": "CHISEL", "level": 3 } + ], + "proficiencies": [ { "proficiency": "prof_carving" }, { "proficiency": "prof_glassblowing" } ], + "tools": [ + [ [ "metalworking_tongs", -1 ] ], + [ [ "pipe", -1 ] ], + [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], + [ [ "forge", 75 ] ] + ], + "components": [ + [ [ "filament", 5, "LIST" ] ], + [ [ "rune_magus", 1 ] ], + [ [ "glass_shard", 3 ], [ "pipe_glass", 1 ], [ "flask_glass", 3 ], [ "test_tube", 6 ], [ "marble", 75 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "kelvinist_booster_1", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_TOOLS", + "skill_used": "fabrication", + "book_learn": [ [ "caster_boosts_info", 0 ] ], + "skills_required": [ [ "spellcraft", 2 ] ], + "time": "5 m", + "autolearn": true, + "qualities": [ { "id": "CONTAIN", "level": 1 } ], + "flags": [ "FULL_MAGAZINE" ], + "tools": [ [ [ "lighter", 5 ], [ "ref_lighter", 5 ], [ "surface_heat", 2, "LIST" ] ], [ [ "rune_kelvinist", -1 ] ] ], + "components": [ [ [ "wax", 1 ], [ "any_tallow", 4, "LIST" ], [ "edible_lard", 1, "LIST" ] ], [ [ "cordage_short", 1, "LIST" ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "kelvinist_booster_2", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_TOOLS", + "skill_used": "fabrication", + "difficulty": 3, + "book_learn": [ [ "caster_boosts_info", 3 ] ], + "skills_required": [ [ "spellcraft", 4 ] ], + "time": "150 m", + "autolearn": false, + "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CHISEL", "level": 3 } ], + "using": [ [ "blacksmithing_standard", 1 ], [ "steel_tiny", 1 ] ], + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } ], + "components": [ + [ [ "scrap", 1 ] ], + [ [ "cotton_patchwork", 1 ], [ "cordage_superior_short", 1, "LIST" ] ], + [ [ "rune_kelvinist", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "technomancer_booster_1", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_TOOLS", + "skill_used": "fabrication", + "skills_required": [ [ "spellcraft", 2 ], [ "survival", 1 ] ], + "difficulty": 2, + "book_learn": [ [ "caster_boosts_info", 2 ] ], + "time": "60 m", + "batch_time_factors": [ 25, 3 ], + "autolearn": true, + "proficiencies": [ { "proficiency": "prof_pottery" } ], + "using": [ [ "earthenware_firing", 120 ] ], + "tools": [ [ [ "rune_technomancer", -1 ] ] ], + "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "clay_lump", 1 ] ] ] + }, + { + "result": "technomancer_booster_2", + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_TOOLS", + "skill_used": "electronics", + "difficulty": 3, + "book_learn": [ [ "caster_boosts_info", 3 ] ], + "skills_required": [ [ "spellcraft", 4 ], [ "fabrication", 2 ] ], + "time": "2 h", + "autolearn": false, + "using": [ [ "soldering_standard", 20 ], [ "blacksmithing_standard", 4 ], [ "steel_standard", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering" }, + { "proficiency": "prof_elec_circuits" }, + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" } + ], + "qualities": [ { "id": "SCREW", "level": 1, "amount": 1 }, { "id": "HAMMER", "level": 3, "amount": 1 } ], + "components": [ + [ [ "scrap", 4 ] ], + [ [ "cable", 2 ] ], + [ [ "motor_tiny", 1 ] ], + [ [ "power_supply", 1 ] ], + [ [ "rune_technomancer", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "biomancer_booster_1", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_TOOLS", + "skill_used": "survival", + "skills_required": [ [ "spellcraft", 2 ], [ "firstaid", 1 ] ], + "difficulty": 1, + "book_learn": [ [ "caster_boosts_info", 1 ] ], + "time": "25 m", + "autolearn": true, + "qualities": [ { "id": "HAMMER", "level": 1 } ], + "components": [ [ [ "bone_sturdy", 1, "LIST" ] ], [ [ "rune_biomancer", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "biomancer_booster_2", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_TOOLS", + "skill_used": "fabrication", + "skills_required": [ [ "spellcraft", 4 ], [ "firstaid", 2 ] ], + "difficulty": 4, + "book_learn": [ [ "caster_boosts_info", 4 ] ], + "time": "6 h", + "autolearn": false, + "using": [ [ "welding_standard", 10 ], [ "blacksmithing_standard", 5 ], [ "steel_tiny", 1 ] ], + "qualities": [ + { "id": "HAMMER", "level": 3 }, + { "id": "HAMMER_FINE", "level": 1 }, + { "id": "SAW_M", "level": 2 }, + { "id": "SAW_M_FINE", "level": 1 }, + { "id": "DRILL", "level": 2 }, + { "id": "FILE", "level": 2 } + ], + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } ], + "components": [ [ [ "pipe", 1 ] ], [ [ "rune_biomancer", 1 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/construction.json b/data/Mainline_mods/Mods/Magiclysm/recipes/construction.json index 3a77daef2..7078ac5e1 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/construction.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/construction.json @@ -16,5 +16,119 @@ ], "pre_special": "check_empty", "post_terrain": "f_magiclysm_translocator_gate" + }, + { + "type": "construction", + "id": "constr_magiclysm_magic_circle", + "group": "build_magiclysm_magic_circle", + "category": "FURN", + "required_skills": [ [ "spellcraft", 5 ] ], + "time": "240 m", + "qualities": [ + [ { "id": "CHISEL", "level": 1 } ], + [ { "id": "CUT", "level": 2 } ], + [ { "id": "MOP", "level": 1 } ], + [ { "id": "GRIND", "level": 2 } ] + ], + "components": [ + [ [ "candle", 8 ] ], + [ + [ "skull_human", 1 ], + [ "skull_goat", 1 ], + [ "skull_cougar", 1 ], + [ "skull_pig", 1 ], + [ "skull_canis", 1 ], + [ "skull_bear", 1 ], + [ "skull_bovine", 1 ], + [ "skull_cervine", 1 ], + [ "skull_cervine_spideer", 1 ], + [ "skull_sheep", 1 ], + [ "skull_moose", 1 ], + [ "skull_moose_tusked", 1 ], + [ "skull_equine", 1 ], + [ "skull_rodent", 10 ], + [ "skull_raccoon", 4 ], + [ "skull_beaver", 4 ], + [ "skull_canis_small", 4 ], + [ "skull_canis_medium", 2 ], + [ "skull_canis", 1 ], + [ "skull_feline_small", 4 ], + [ "skull_feline_medium", 2 ] + ], + [ [ "copper", 30 ] ], + [ [ "crystallized_mana", 5 ] ] + ], + "pre_special": "check_empty", + "post_terrain": "f_magic_circle", + "activity_level": "BRISK_EXERCISE" + }, + { + "type": "construction", + "id": "constr_magiclysm_magic_circle_2", + "group": "build_magiclysm_magic_circle_2", + "category": "FURN", + "required_skills": [ [ "spellcraft", 7 ] ], + "time": "360 m", + "qualities": [ [ { "id": "CHISEL", "level": 1 } ], [ { "id": "MOP", "level": 1 } ], [ { "id": "GRIND", "level": 2 } ] ], + "components": [ [ [ "silver_small", 30 ] ], [ [ "crystallized_mana", 5 ] ] ], + "pre_terrain": "f_magic_circle", + "post_terrain": "f_magic_circle_2", + "activity_level": "MODERATE_EXERCISE" + }, + { + "type": "construction", + "id": "constr_magiclysm_everburning_torch_candelabra", + "group": "build_everburning_torch_candelabra", + "category": "FURN", + "required_skills": [ [ "fabrication", 1 ] ], + "time": "5 m", + "qualities": [ ], + "components": [ [ [ "everburning_torch_candelabra", 1 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_everburning_torch_candelabra" + }, + { + "type": "construction", + "id": "constr_magiclysm_standing_alembic", + "group": "build_standing_alembic", + "category": "FURN", + "required_skills": [ [ "chemistry", 2 ] ], + "time": "15 m", + "qualities": [ ], + "components": [ + [ [ "pot_copper", 1 ] ], + [ [ "pipe_glass", 4 ] ], + [ [ "glass_tube_small", 10 ] ], + [ [ "stopcock", 5 ] ], + [ [ "flask_glass", 3 ] ] + ], + "pre_special": "check_empty", + "post_terrain": "f_alembic", + "activity_level": "LIGHT_EXERCISE" + }, + { + "type": "construction", + "id": "constr_magiclysm_orrery", + "group": "build_orrery", + "category": "FURN", + "required_skills": [ [ "fabrication", 1 ] ], + "time": "1 m", + "qualities": [ ], + "components": [ [ [ "orrery_item", 1 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_orrery" + }, + { + "type": "construction", + "id": "ap_everburning_sconce", + "group": "place_everburning_sconce", + "category": "APPLIANCE", + "required_skills": [ [ "fabrication", 1 ] ], + "time": "2 m", + "qualities": [ [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "everburning_sconce", 1 ] ] ], + "pre_flags": "WALL", + "post_special": "done_appliance", + "activity_level": "LIGHT_EXERCISE" } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/cooking.json b/data/Mainline_mods/Mods/Magiclysm/recipes/cooking.json index 0ccd8af33..0bce0d893 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/cooking.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/cooking.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "purified_meat", "category": "CC_FOOD", "subcategory": "CSC_FOOD_MEAT", @@ -17,7 +17,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "impure_meat", "category": "CC_FOOD", "subcategory": "CSC_FOOD_MEAT", @@ -34,7 +34,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "flu_shot", "category": "CC_CHEM", "subcategory": "CSC_CHEM_DRUGS", diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/deconstruction.json b/data/Mainline_mods/Mods/Magiclysm/recipes/deconstruction.json index 071c970dd..920e0ae9b 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/deconstruction.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/deconstruction.json @@ -2,7 +2,7 @@ { "result": "broken_claygolem", "type": "uncraft", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "skill_used": "spellcraft", "difficulty": 2, "time": "4 h", @@ -12,7 +12,7 @@ { "result": "broken_stonegolem", "type": "uncraft", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "skill_used": "spellcraft", "difficulty": 4, "time": "4 h", @@ -22,7 +22,7 @@ { "result": "broken_irongolem", "type": "uncraft", - "activity_level": "fake", + "activity_level": "EXTRA_EXERCISE", "skill_used": "spellcraft", "difficulty": 6, "time": "6 h", @@ -32,13 +32,23 @@ { "result": "broken_forgeborn", "type": "uncraft", - "activity_level": "fake", + "activity_level": "EXTRA_EXERCISE", "skill_used": "spellcraft", "difficulty": 8, "time": "6 h", "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 2 } ], "components": [ [ [ "orichalcum_sliver", 80 ] ], [ [ "orichalcum_lump", 20 ] ] ] }, + { + "result": "broken_eshaper_golem", + "type": "uncraft", + "activity_level": "EXTRA_EXERCISE", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "4 h", + "qualities": [ { "id": "HAMMER", "level": 1 } ], + "components": [ [ [ "rock", 190 ] ], [ [ "sharp_rock", 27 ] ] ] + }, { "result": "bundle_black_scale", "type": "uncraft", @@ -56,5 +66,21 @@ "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "black_dragon_tanned_hide", 10 ] ] ], "flags": [ "BLIND_EASY" ] + }, + { + "result": "orrery_item", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "fabrication", + "difficulty": 5, + "time": "2 h", + "qualities": [ + { "id": "SCREW", "level": 1 }, + { "id": "PRY", "level": 1 }, + { "id": "SAW_M", "level": 2 }, + { "id": "HAMMER", "level": 2 } + ], + "components": [ [ [ "clockworks", 30 ] ], [ [ "scrap", 20 ] ], [ [ "pipe", 9 ] ], [ [ "wire", 20 ] ], [ [ "hinge", 3 ] ] ], + "flags": [ "BLIND_HARD" ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/dragon_black.json b/data/Mainline_mods/Mods/Magiclysm/recipes/dragon_black.json index e7f9f94df..4cda84725 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/dragon_black.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/dragon_black.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "black_dragon_tanning_hide", "byproducts": [ [ "dragon_black_scale", 20 ] ], "category": "CC_ENCHANTED", @@ -60,8 +60,8 @@ "result": "suit_black_dragon_hide", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "tailor", "difficulty": 5, "skills_required": [ "spellcraft", 3 ], @@ -80,8 +80,8 @@ "result": "suit_black_dragon_scale", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "fabrication", "difficulty": 7, "skills_required": [ "spellcraft", 5 ], @@ -101,8 +101,8 @@ "result": "boots_black_dragon_hide", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "tailor", "difficulty": 5, "skills_required": [ "spellcraft", 3 ], @@ -122,8 +122,8 @@ "result": "boots_black_dragon_scale", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "fabrication", "difficulty": 7, "skills_required": [ "spellcraft", 5 ], @@ -144,8 +144,8 @@ "result": "helmet_black_dragon_hide", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "tailor", "difficulty": 5, "skills_required": [ "spellcraft", 3 ], @@ -164,8 +164,8 @@ "result": "helmet_black_dragon_scale", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "fabrication", "difficulty": 7, "skills_required": [ "spellcraft", 5 ], @@ -185,8 +185,8 @@ "result": "gloves_black_dragon_hide", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "tailor", "difficulty": 5, "skills_required": [ "spellcraft", 3 ], @@ -206,8 +206,8 @@ "result": "gauntlets_black_dragon_scale", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "fabrication", "difficulty": 7, "skills_required": [ "spellcraft", 5 ], @@ -228,8 +228,8 @@ "result": "suit_xlblack_dragon_hide", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "tailor", "difficulty": 6, "skills_required": [ "spellcraft", 4 ], @@ -248,8 +248,8 @@ "result": "suit_xlblack_dragon_scale", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "fabrication", "difficulty": 8, "skills_required": [ "spellcraft", 6 ], @@ -269,8 +269,8 @@ "result": "boots_xlblack_dragon_hide", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "tailor", "difficulty": 6, "skills_required": [ "spellcraft", 4 ], @@ -290,8 +290,8 @@ "result": "boots_xlblack_dragon_scale", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "fabrication", "difficulty": 8, "skills_required": [ "spellcraft", 6 ], @@ -312,8 +312,8 @@ "result": "helmet_xlblack_dragon_hide", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "tailor", "difficulty": 6, "skills_required": [ "spellcraft", 4 ], @@ -332,8 +332,8 @@ "result": "helmet_xlblack_dragon_scale", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "fabrication", "difficulty": 8, "skills_required": [ "spellcraft", 6 ], @@ -353,8 +353,8 @@ "result": "gloves_xlblack_dragon_hide", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "tailor", "difficulty": 6, "skills_required": [ "spellcraft", 4 ], @@ -374,8 +374,8 @@ "result": "gauntlets_xlblack_dragon_scale", "type": "recipe", "activity_level": "LIGHT_EXERCISE", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_ARMOR", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", "skill_used": "fabrication", "difficulty": 8, "skills_required": [ "spellcraft", 6 ], diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/enchanting.json b/data/Mainline_mods/Mods/Magiclysm/recipes/enchanting.json new file mode 100644 index 000000000..81e1602a1 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/enchanting.json @@ -0,0 +1,725 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "cestus_plus_one", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_ENCHANTING", + "skill_used": "fabrication", + "difficulty": 4, + "time": "3 h", + "autolearn": false, + "reversible": false, + "book_learn": [ [ "weapon_enchanting_guide", 4 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "proficiencies": [ { "proficiency": "prof_weapon_enchanting" } ], + "components": [ [ [ "cestus", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "cestus_plus_two", + "components": [ [ [ "cestus_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "flaming_fist_plus_one", + "components": [ [ [ "flaming_fist", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "flaming_fist_plus_two", + "components": [ [ [ "flaming_fist_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "crowbar_plus_one", + "components": [ [ [ "crowbar", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "crowbar_plus_two", + "components": [ [ [ "crowbar_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_hunting_plus_one", + "components": [ [ [ "knife_hunting", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_hunting_plus_two", + "components": [ [ [ "knife_hunting_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "jack_plus_one", + "components": [ [ [ "jack", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "jack_plus_two", + "components": [ [ [ "jack_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "scalpel_plus_one", + "components": [ [ [ "scalpel", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "scalpel_plus_two", + "components": [ [ [ "scalpel_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_butcher_plus_one", + "components": [ [ [ "knife_butcher", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_butcher_plus_two", + "components": [ [ [ "knife_butcher_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_meat_cleaver_plus_one", + "components": [ [ [ "knife_meat_cleaver", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_meat_cleaver_plus_two", + "components": [ [ [ "knife_meat_cleaver_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_carving_plus_one", + "components": [ [ [ "knife_carving", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_carving_plus_two", + "components": [ [ [ "knife_carving_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "cudgel_plus_one", + "components": [ [ [ "cudgel", 1 ] ], [ [ "mana_dust", 20 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "cudgel_plus_two", + "components": [ [ [ "cudgel_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "q_staff_plus_one", + "components": [ [ [ "q_staff", 1 ] ], [ [ "mana_dust", 20 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "q_staff_plus_two", + "components": [ [ [ "q_staff_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "i_staff_plus_one", + "components": [ [ [ "i_staff", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "i_staff_plus_two", + "components": [ [ [ "i_staff_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "longsword_plus_one", + "components": [ [ [ "qt_longsword", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "longsword_plus_two", + "components": [ [ [ "longsword_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "sledge_plus_one", + "components": [ [ [ "hammer_sledge", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "sledge_plus_two", + "components": [ [ [ "sledge_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "sledge_heavy_plus_one", + "components": [ [ [ "hammer_sledge_heavy", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "sledge_heavy_plus_two", + "components": [ [ [ "sledge_heavy_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "warhammer_plus_one", + "components": [ [ [ "warhammer", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "warhammer_plus_two", + "components": [ [ [ "warhammer_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "bat_plus_one", + "components": [ [ [ "bat", 1 ] ], [ [ "mana_dust", 20 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "bat_plus_two", + "components": [ [ [ "bat_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "bat_metal_plus_one", + "components": [ [ [ "bat_metal", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "bat_metal_plus_two", + "components": [ [ [ "bat_metal_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "spear_steel_plus_one", + "components": [ [ [ "spear_steel", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "spear_steel_plus_two", + "components": [ [ [ "spear_steel_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "qiang_plus_one", + "components": [ [ [ "qiang", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "qiang_plus_two", + "components": [ [ [ "qiang_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "halberd_plus_one", + "components": [ [ [ "halberd", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "halberd_plus_two", + "components": [ [ [ "halberd_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "glaive_plus_one", + "components": [ [ [ "glaive", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "glaive_plus_two", + "components": [ [ [ "glaive_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "naginata_plus_one", + "components": [ [ [ "naginata", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "naginata_plus_two", + "components": [ [ [ "naginata_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "mace_plus_one", + "components": [ [ [ "mace", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "mace_plus_two", + "components": [ [ [ "mace_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "morningstar_plus_one", + "components": [ [ [ "morningstar", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "morningstar_plus_two", + "components": [ [ [ "morningstar_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "jian_plus_one", + "components": [ [ [ "qt_jian", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "jian_plus_two", + "components": [ [ [ "jian_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "scimitar_plus_one", + "components": [ [ [ "qt_scimitar", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "scimitar_plus_two", + "components": [ [ [ "scimitar_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "estoc_plus_one", + "components": [ [ [ "qt_estoc", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "estoc_plus_two", + "components": [ [ [ "estoc_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "arming_sword_plus_one", + "components": [ [ [ "qt_arming_sword", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "arming_sword_plus_two", + "components": [ [ [ "arming_sword_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "broadsword_plus_one", + "components": [ [ [ "qt_broadsword", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "broadsword_plus_two", + "components": [ [ [ "broadsword_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "battleaxe_plus_one", + "components": [ [ [ "battleaxe", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "battleaxe_plus_two", + "components": [ [ [ "battleaxe_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "cavalry_sabre_plus_one", + "components": [ [ [ "qt_cavalry_sabre", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "cavalry_sabre_plus_two", + "components": [ [ [ "cavalry_sabre_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "cutlass_plus_one", + "components": [ [ [ "qt_cutlass", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "cutlass_plus_two", + "components": [ [ [ "cutlass_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "fire_ax_plus_one", + "components": [ [ [ "fire_ax", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "fire_ax_plus_two", + "components": [ [ [ "fire_ax_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "katana_plus_one", + "components": [ [ [ "qt_katana", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "katana_plus_two", + "components": [ [ [ "katana_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_combat_plus_one", + "components": [ [ [ "knife_combat", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_combat_plus_two", + "components": [ [ [ "knife_combat_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_rambo_plus_one", + "components": [ [ [ "knife_rambo", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_rambo_plus_two", + "components": [ [ [ "knife_rambo_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_trench_plus_one", + "components": [ [ [ "knife_trench", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "knife_trench_plus_two", + "components": [ [ [ "knife_trench_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "kris_plus_one", + "components": [ [ [ "kris", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "kris_plus_two", + "components": [ [ [ "kris_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "kukri_plus_one", + "components": [ [ [ "kukri", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "kukri_plus_two", + "components": [ [ [ "kukri_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "nodachi_plus_one", + "components": [ [ [ "qt_nodachi", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "nodachi_plus_two", + "components": [ [ [ "nodachi_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "pickaxe_plus_one", + "components": [ [ [ "pickaxe", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "pickaxe_plus_two", + "components": [ [ [ "pickaxe_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "pike_plus_one", + "components": [ [ [ "pike", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "pike_plus_two", + "components": [ [ [ "pike_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "rapier_plus_one", + "components": [ [ [ "qt_rapier", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "rapier_plus_two", + "components": [ [ [ "rapier_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "tanto_plus_one", + "components": [ [ [ "tanto", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "tanto_plus_two", + "components": [ [ [ "tanto_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "wakizashi_plus_one", + "components": [ [ [ "qt_wakizashi", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "wakizashi_plus_two", + "components": [ [ [ "wakizashi_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "zweihander_plus_one", + "components": [ [ [ "qt_zweihander", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "zweihander_plus_two", + "components": [ [ [ "zweihander_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "khopesh_plus_one", + "components": [ [ [ "khopesh", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "khopesh_plus_two", + "components": [ [ [ "khopesh_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "sword_xiphos_plus_one", + "components": [ [ [ "sword_xiphos", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "sword_xiphos_plus_two", + "components": [ [ [ "sword_xiphos_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "dao_plus_one", + "components": [ [ [ "dao", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "dao_plus_two", + "components": [ [ [ "dao_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "lucerne_plus_one", + "components": [ [ [ "lucern_hammer", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cestus_plus_one", + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "result": "lucerne_plus_two", + "components": [ [ [ "lucerne_plus_one", 1 ] ], [ [ "mana_dust", 20 ] ], [ [ "mercury", 10 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/furniture.json b/data/Mainline_mods/Mods/Magiclysm/recipes/furniture.json new file mode 100644 index 000000000..fa778503e --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/furniture.json @@ -0,0 +1,50 @@ +[ + { + "result": "everburning_torch_candelabra", + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "category": "CC_APPLIANCE", + "subcategory": "CSC_APPLIANCE_LIGHTING", + "skill_used": "fabrication", + "difficulty": 3, + "time": "150 m", + "autolearn": true, + "qualities": [ + { "id": "HAMMER", "level": 2 }, + { "id": "SAW_W", "level": 2 }, + { "id": "SCREW", "level": 1 }, + { "id": "SAW_M", "level": 2 } + ], + "proficiencies": [ { "proficiency": "prof_carpentry_basic" } ], + "byproducts": [ [ "splinter", 45 ] ], + "components": [ + [ [ "wooden_post", 3 ] ], + [ [ "wooden_post_short", 4 ] ], + [ [ "plank_short", 12 ] ], + [ [ "nuts_bolts", 30 ] ], + [ [ "scrap", 15 ] ], + [ [ "mtorch_everburning", 4 ] ] + ] + }, + { + "result": "everburning_sconce", + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "category": "CC_APPLIANCE", + "subcategory": "CSC_APPLIANCE_LIGHTING", + "skill_used": "fabrication", + "difficulty": 2, + "time": "45 m", + "autolearn": true, + "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 2 } ], + "proficiencies": [ { "proficiency": "prof_carpentry_basic" } ], + "//": "Nails are needed here rather than at the finished product because more than one ingredient in an appliance recipe throws an error", + "components": [ + [ [ "plank_short", 1 ] ], + [ [ "nuts_bolts", 4 ] ], + [ [ "scrap", 2 ] ], + [ [ "mtorch_everburning", 1 ] ], + [ [ "nail", 4 ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/magic_tools.json b/data/Mainline_mods/Mods/Magiclysm/recipes/magic_tools.json index 891658004..15a2cddb3 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/magic_tools.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/magic_tools.json @@ -2,7 +2,7 @@ { "result": "butchering_kit_plus_one", "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", "skill_used": "fabrication", @@ -20,7 +20,7 @@ { "result": "butchering_kit_plus_two", "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", "skill_used": "fabrication", @@ -37,7 +37,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "copper_circlet", "byproducts": [ [ "tinder", 1 ] ], "category": "CC_ENCHANTED", @@ -57,7 +57,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "copper_infuser", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_TOOLS", @@ -75,7 +75,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "silver_infuser", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_TOOLS", @@ -93,7 +93,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "rune_alchemist", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_TOOLS", @@ -107,7 +107,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "cauldron_demon_chitin", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_TOOLS", @@ -116,13 +116,13 @@ "difficulty": 4, "time": "180 m", "book_learn": [ [ "cooking_poison", 3 ] ], - "proficiencies": [ { "proficiency": "prof_chitinworking", "required": false, "time_multiplier": 1.5, "fail_multiplier": 1.5 } ], + "proficiencies": [ { "proficiency": "prof_chitinworking", "required": false, "time_multiplier": 1.5, "skill_penalty": 0.5 } ], "qualities": [ { "id": "CHISEL", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], "components": [ [ [ "demon_chitin_piece", 16 ] ], [ [ "bone_glue", 10 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "demon_forge", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_TOOLS", @@ -137,7 +137,7 @@ { "id": "HAMMER", "level": 2 }, { "id": "SMOOTH", "level": 1 } ], - "proficiencies": [ { "proficiency": "prof_chitinworking", "required": false, "time_multiplier": 1.5, "fail_multiplier": 1.5 } ], + "proficiencies": [ { "proficiency": "prof_chitinworking", "required": false, "time_multiplier": 1.5, "skill_penalty": 0.5 } ], "components": [ [ [ "demon_chitin_plate", 24 ] ], [ [ "fireproof_mortar", 30 ] ], diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/mods.json b/data/Mainline_mods/Mods/Magiclysm/recipes/mods.json index ee8504826..8abc659e2 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/mods.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/mods.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "magic_suppressor", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_MODS", @@ -16,7 +16,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "mana_dot_sight", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_MODS", @@ -50,7 +50,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "mana_laser_under", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_MODS", diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/mutagens.json b/data/Mainline_mods/Mods/Magiclysm/recipes/mutagens.json new file mode 100644 index 000000000..581db6bf6 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/mutagens.json @@ -0,0 +1,40 @@ +[ + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "manatouched_serum", + "qualities": [ { "id": "MAGIC_MUTAGEN", "level": 1 }, { "id": "MANA_INFUSE", "level": 2 }, { "id": "CONCENTRATE", "level": 1 } ], + "components": [ [ [ "mana_dust", 20 ] ], [ [ "mana_potion", 4 ], [ "mana_potion_greater", 1 ], [ "mana_infused_blood", 6 ] ] ], + "skill_used": "chemistry", + "difficulty": 4, + "skills_required": [ "spellcraft", 6 ], + "proficiencies": [ { "proficiency": "prof_alchemy" } ], + "time": "4 h", + "batch_time_factors": [ 80, 5 ], + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_POTIONS", + "autolearn": true + }, + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "manatouched_mutagen", + "qualities": [ + { "id": "MAGIC_MUTAGEN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "SEPARATE", "level": 1 }, + { "id": "ANALYSIS", "level": 1 } + ], + "components": [ [ [ "mana_dust", 5 ] ], [ [ "mana_potion", 1 ], [ "mana_infused_blood", 2 ] ], [ [ "mutagen", 1 ] ] ], + "skill_used": "chemistry", + "difficulty": 4, + "skills_required": [ "spellcraft", 4 ], + "proficiencies": [ { "proficiency": "prof_alchemy" } ], + "time": "3 h", + "batch_time_factors": [ 80, 5 ], + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_POTIONS", + "autolearn": true + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/nested.json b/data/Mainline_mods/Mods/Magiclysm/recipes/nested.json new file mode 100644 index 000000000..4f067eb45 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/nested.json @@ -0,0 +1,113 @@ +[ + { + "id": "nested_black_dragon_scale_armor_all", + "type": "nested_category", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_ARMOR", + "name": "black dragon scale armors", + "description": "Recipes related to constructing black dragon scale armor.", + "skill_used": "fabrication", + "skills_required": [ "spellcraft", 5 ], + "nested_category_data": [ "nested_black_dragon_scale_armor", "nested_xl_black_dragon_scale_armor" ], + "difficulty": 8 + }, + { + "id": "nested_black_dragon_scale_armor", + "type": "nested_category", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "name": "black dragon scale armors", + "description": "Recipes related to constructing black dragon scale armor.", + "skill_used": "fabrication", + "skills_required": [ "spellcraft", 5 ], + "nested_category_data": [ "suit_black_dragon_scale", "helmet_black_dragon_scale", "gauntlets_black_dragon_scale", "boots_black_dragon_scale" ], + "difficulty": 7 + }, + { + "id": "nested_xl_black_dragon_scale_armor", + "type": "nested_category", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "name": "XL black dragon scale armors", + "description": "Recipes related to constructing black dragon scale armor in XL sizes.", + "skill_used": "fabrication", + "skills_required": [ "spellcraft", 6 ], + "nested_category_data": [ + "suit_xlblack_dragon_scale", + "helmet_xlblack_dragon_scale", + "gauntlets_xlblack_dragon_scale", + "boots_xlblack_dragon_scale" + ], + "difficulty": 8 + }, + { + "id": "nested_black_dragon_hide_armor_all", + "type": "nested_category", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_ARMOR", + "name": "black dragon hide armors", + "description": "Recipes related to constructing hide dragon hide armor.", + "skill_used": "tailor", + "skills_required": [ "spellcraft", 4 ], + "nested_category_data": [ "nested_black_dragon_hide_armor", "nested_xl_black_dragon_hide_armor" ], + "difficulty": 6 + }, + { + "id": "nested_black_dragon_hide_armor", + "type": "nested_category", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "name": "black dragon hide armors", + "description": "Recipes related to constructing black dragon hide armor.", + "skill_used": "tailor", + "skills_required": [ "spellcraft", 3 ], + "nested_category_data": [ "suit_black_dragon_hide", "helmet_black_dragon_hide", "gloves_black_dragon_hide", "boots_black_dragon_hide" ], + "difficulty": 5 + }, + { + "id": "nested_xl_black_dragon_hide_armor", + "type": "nested_category", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "name": "XL black dragon hide armors", + "description": "Recipes related to constructing black dragon hide armor in XL sizes.", + "skill_used": "tailor", + "skills_required": [ "spellcraft", 4 ], + "nested_category_data": [ "suit_xlblack_dragon_hide", "helmet_xlblack_dragon_hide", "gloves_xlblack_dragon_hide", "boots_xlblack_dragon_hide" ], + "difficulty": 6 + }, + { + "id": "nested_potion_fruits", + "type": "nested_category", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_POTIONS", + "name": "potion fruits", + "description": "Recipes related to enchanting fruits with pure mana.", + "skill_used": "spellcraft", + "nested_category_data": [ + "potion_fruit_apple", + "potion_fruit_peach", + "potion_fruit_pear", + "potion_fruit_blackberries", + "potion_fruit_raspberries", + "potion_fruit_strawberries", + "potion_fruit_elderberries", + "potion_fruit_blueberries", + "potion_fruit_cranberries", + "potion_fruit_huckleberries", + "potion_fruit_wintergreen", + "potion_fruit_cherry", + "potion_fruit_apricot", + "potion_fruit_mayapple", + "potion_fruit_grapes" + ], + "difficulty": 4 + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/potion_fruits.json b/data/Mainline_mods/Mods/Magiclysm/recipes/potion_fruits.json new file mode 100644 index 000000000..ac6c45715 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/potion_fruits.json @@ -0,0 +1,242 @@ +[ + { + "result": "potion_fruit_apple", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 6 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "apple", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_peach", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 7 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "peach", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_pear", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 7 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "pear", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_blackberries", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 5 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "blackberries", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_raspberries", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 6 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "raspberries", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_strawberries", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 6 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "strawberries", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_elderberries", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 6 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "elderberries", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_blueberries", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 5 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "blueberries", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_cranberries", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 7 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "cranberries", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_huckleberries", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 6 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "huckleberries", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_wintergreen", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 5 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "wintergreen_berry", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_cherry", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 5 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "cherries", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_apricot", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 5 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "apricot", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_mayapple", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 5 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "mayapple", 1 ], [ "mana_dust", 10 ] ] ] + }, + { + "result": "potion_fruit_grapes", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "spellcraft", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 15, 2 ], + "autolearn": [ [ "spellcraft", 5 ], [ "cooking", 3 ] ], + "proficiencies": [ { "proficiency": "prof_alchemy" }, { "proficiency": "prof_botanical_enchantment" } ], + "book_learn": [ [ "history_botanical_enchantment", 3 ] ], + "qualities": [ { "id": "MANA_INFUSE", "level": 1 } ], + "components": [ [ [ "grapes", 1 ], [ "mana_dust", 10 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/recipe_potions.json b/data/Mainline_mods/Mods/Magiclysm/recipes/recipe_potions.json index f6460d5f1..f26c88d23 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/recipe_potions.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/recipe_potions.json @@ -1,25 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", - "result": "potion_starter", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", - "skill_used": "chemistry", - "skills_required": [ "spellcraft", 2 ], - "difficulty": 3, - "charges": 7, - "time": "120 m", - "batch_time_factors": [ 75, 4 ], - "book_learn": [ [ "alchemy_basic", 3 ], [ "necro_basic", 4 ] ], - "qualities": [ { "id": "CHEM", "level": 1 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], - "proficiencies": [ { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 1.5 } ], - "using": [ [ "hard_liquor", 7 ] ] - }, - { - "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "potion_starter_superior", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_POTIONS", @@ -27,281 +9,203 @@ "skills_required": [ "spellcraft", 4 ], "difficulty": 4, "charges": 7, - "time": "120 m", - "batch_time_factors": [ 75, 4 ], - "book_learn": [ [ "alchemy_basic", 3 ], [ "necro_basic", 4 ] ], + "time": "60 m", + "batch_time_factors": [ 75, 2 ], + "book_learn": [ [ "alchemy_basic", 3 ], [ "necro_basic", 4 ], [ "alchemy_master", 3 ] ], "qualities": [ { "id": "CHEM", "level": 1 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], + "tools": [ [ [ "surface_heat", 15, "LIST" ] ] ], "proficiencies": [ { "proficiency": "prof_alchemy" } ], - "components": [ [ [ "chem_ethanol", 7 ] ], [ [ "alumentum", 1 ] ] ] + "components": [ [ [ "chem_ethanol", 7 ] ], [ [ "alumentum", 1 ] ], [ [ "water_clean", 7 ] ] ] }, { "type": "recipe", - "activity_level": "fake", - "result": "mana_potion_lesser", - "qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ] ] ], - "components": [ [ [ "lotus", 1 ] ], [ [ "potion_starter", 1 ] ] ], - "time": "1 h", - "batch_time_factors": [ 75, 4 ], - "skill_used": "chemistry", + "copy-from": "potion_starter_superior", + "result": "potion_starter", + "book_learn": [ [ "alchemy_basic", 1 ], [ "necro_basic", 2 ], [ "alchemy_master", 1 ] ], + "skills_required": [ "spellcraft", 2 ], "difficulty": 3, - "skills_required": [ "spellcraft", 3 ], - "proficiencies": [ { "proficiency": "prof_alchemy" } ], - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", - "autolearn": true + "tools": [ [ [ "surface_heat", 15, "LIST" ] ] ], + "proficiencies": [ { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 1.5 } ], + "using": [ [ "hard_liquor_and_whiskflower", 7 ] ], + "components": [ [ [ "water", 7 ], [ "water_clean", 7 ], [ "water_mineral", 7 ] ], [ [ "mana_dust", 7 ] ] ] }, { "type": "recipe", - "activity_level": "fake", - "result": "mana_potion", - "qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ] ] ], - "components": [ [ [ "mana_dust", 1 ] ], [ [ "lotus", 1 ] ], [ [ "potion_starter", 1 ] ] ], - "time": "3 h", - "batch_time_factors": [ 75, 4 ], + "//": "first level flasks", + "activity_level": "NO_EXERCISE", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 1 }, + { "id": "DISTILL", "level": 1 }, + { "id": "CONCENTRATE", "level": 1 } + ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ], "skill_used": "chemistry", - "difficulty": 4, - "skills_required": [ "spellcraft", 4 ], + "difficulty": 1, + "skills_required": [ "spellcraft", 2 ], "proficiencies": [ { "proficiency": "prof_alchemy" } ], + "time": "60 m", + "batch_time_factors": [ 80, 2 ], "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_POTIONS", - "autolearn": true + "result": "flask_illumination", + "book_learn": [ [ "alchemy_basic", 2 ], [ "alchemy_master", 2 ] ], + "components": [ [ [ "potion_starter", 2 ] ], [ [ "glowing_mushroom", 2 ] ], [ [ "wood_barnacle", 4 ] ], [ [ "dragon_nail", 2 ] ] ] }, { "type": "recipe", - "activity_level": "fake", - "result": "mana_potion_greater", - "qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "MANA_INFUSE", "level": 2 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "rune_alchemist", -1 ] ] ], - "components": [ [ [ "glow_dust", 1 ] ], [ [ "lotus", 1 ] ], [ [ "potion_starter_superior", 1 ] ] ], - "time": "4 h", - "batch_time_factors": [ 75, 4 ], - "skill_used": "chemistry", - "difficulty": 5, - "skills_required": [ "spellcraft", 5 ], - "proficiencies": [ { "proficiency": "prof_alchemy" } ], - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", - "autolearn": true + "copy-from": "flask_illumination", + "result": "flask_rebreather", + "book_learn": [ [ "alchemy_basic", 2 ], [ "alchemy_master", 2 ] ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ], + "components": [ + [ [ "potion_starter", 2 ] ], + [ [ "wood_barnacle", 2 ] ], + [ [ "olieribos", 2 ] ], + [ [ "horn_moss_capsule", 2 ] ], + [ [ "golden_reed_stalk", 2 ] ] + ] }, { "type": "recipe", - "activity_level": "fake", - "result": "manatouched_serum", - "qualities": [ { "id": "MAGIC_MUTAGEN", "level": 1 }, { "id": "MANA_INFUSE", "level": 2 }, { "id": "CONCENTRATE", "level": 1 } ], - "components": [ [ [ "mana_dust", 20 ] ], [ [ "mana_potion", 4 ], [ "mana_potion_greater", 1 ], [ "mana_infused_blood", 6 ] ] ], - "skill_used": "chemistry", - "difficulty": 4, - "skills_required": [ "spellcraft", 6 ], - "proficiencies": [ { "proficiency": "prof_alchemy" } ], - "time": "4 h", - "batch_time_factors": [ 80, 5 ], - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", + "copy-from": "flask_illumination", + "result": "mana_potion_lesser", + "book_learn": [ [ "alchemy_basic", 2 ], [ "alchemy_master", 2 ] ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ], + "using": [ [ "mana_energy_weak", 2 ] ], + "components": [ [ [ "potion_starter", 1 ] ] ], "autolearn": true }, { "type": "recipe", - "activity_level": "fake", - "result": "manatouched_mutagen", + "//": "second level flasks", + "activity_level": "NO_EXERCISE", "qualities": [ - { "id": "MAGIC_MUTAGEN", "level": 1 }, + { "id": "CONTAIN", "level": 1 }, { "id": "MANA_INFUSE", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, - { "id": "SEPARATE", "level": 1 }, - { "id": "ANALYSIS", "level": 1 } + { "id": "DISTILL", "level": 1 } ], - "components": [ [ [ "mana_dust", 5 ] ], [ [ "mana_potion", 1 ], [ "mana_infused_blood", 2 ] ], [ [ "mutagen", 1 ] ] ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "skill_used": "chemistry", - "difficulty": 4, + "difficulty": 3, "skills_required": [ "spellcraft", 4 ], "proficiencies": [ { "proficiency": "prof_alchemy" } ], - "time": "3 h", - "batch_time_factors": [ 80, 5 ], + "time": "120 m", + "batch_time_factors": [ 60, 2 ], "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_POTIONS", - "autolearn": true - }, - { - "type": "recipe", - "activity_level": "fake", "result": "cats_grace_potion", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", - "skill_used": "chemistry", - "skills_required": [ "spellcraft", 5 ], - "difficulty": 5, - "time": "60 m", - "batch_time_factors": [ 50, 4 ], - "book_learn": [ [ "alchemy_basic", 4 ] ], - "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], - "tools": [ - [ [ "surface_heat", 10, "LIST" ] ], - [ - [ "rune_alchemist", -1 ], - [ "rune_magus", -1 ], - [ "rune_magus_weapon", -1 ], - [ "rune_magus_weapon_adept", -1 ] - ] - ], - "proficiencies": [ { "proficiency": "prof_alchemy" } ], + "book_learn": [ [ "alchemy_basic", 3 ], [ "alchemy_master", 3 ] ], "components": [ - [ [ "potion_starter", 5 ] ], - [ [ "hairball", 2 ] ], - [ - [ "catfood", 1 ], - [ "fish", 1 ], - [ "salted_fish", 1 ], - [ "fish_cooked", 1 ], - [ "fish_smoked", 1 ], - [ "dry_fish", 1 ], - [ "rehydrated_fish", 1 ], - [ "fish_canned", 1 ], - [ "fish_pickled", 1 ], - [ "fish_fried", 1 ], - [ "lutefisk", 1 ] - ], - [ [ "adderall", 10 ], [ "meth", 6 ], [ "prozac", 15 ] ] + [ [ "potion_starter_superior", 1 ] ], + [ [ "fern_flower", 2 ] ], + [ [ "glowing_mushroom", 4 ], [ "mossling_fur", 4 ] ], + [ [ "wood_barnacle", 4 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "copy-from": "cats_grace_potion", "result": "ogres_strength_potion", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", - "skill_used": "chemistry", - "skills_required": [ "spellcraft", 5 ], - "proficiencies": [ { "proficiency": "prof_alchemy" } ], - "difficulty": 5, - "time": "60 m", - "batch_time_factors": [ 50, 4 ], - "book_learn": [ [ "alchemy_basic", 4 ] ], - "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], - "tools": [ - [ [ "surface_heat", 10, "LIST" ] ], - [ - [ "rune_alchemist", -1 ], - [ "rune_magus", -1 ], - [ "rune_magus_weapon", -1 ], - [ "rune_magus_weapon_adept", -1 ] - ] - ], - "components": [ [ [ "potion_starter", 5 ] ], [ [ "sinew", 40 ] ], [ [ "adrenal_gland_large", 2 ] ] ] + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter_superior", 1 ] ], [ [ "fern_flower", 2 ] ], [ [ "olieribos", 4 ] ], [ [ "wood_barnacle", 4 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "copy-from": "cats_grace_potion", "result": "eagles_sight_potion", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", - "skill_used": "chemistry", - "skills_required": [ "spellcraft", 5 ], - "proficiencies": [ { "proficiency": "prof_alchemy" } ], - "difficulty": 5, - "time": "60 m", - "batch_time_factors": [ 50, 4 ], - "book_learn": [ [ "alchemy_basic", 4 ] ], - "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], - "tools": [ - [ [ "surface_heat", 10, "LIST" ] ], - [ - [ "rune_alchemist", -1 ], - [ "rune_magus", -1 ], - [ "rune_magus_weapon", -1 ], - [ "rune_magus_weapon_adept", -1 ] - ] - ], - "components": [ - [ [ "potion_starter", 5 ] ], - [ - [ "egg_bird", 5 ], - [ "egg_bird_unfert", 5 ], - [ "egg_grouse", 5 ], - [ "egg_duck", 3 ], - [ "egg_crow", 5 ], - [ "egg_raven", 5 ], - [ "egg_bluejay", 5 ], - [ "egg_cardinal", 5 ], - [ "egg_robin", 5 ], - [ "egg_sparrow", 7 ], - [ "egg_chicken", 5 ], - [ "egg_pheasant", 5 ], - [ "egg_cockatrice", 5 ], - [ "egg_turkey", 3 ], - [ "egg_goose_canadian", 2 ] - ], - [ [ "feather", 20 ], [ "down_feather", 20 ] ], - [ - [ "liver", 3 ], - [ "veggy_canned", 3 ], - [ "veggy_salted", 5 ], - [ "carrot", 3 ], - [ "irradiated_carrot", 3 ], - [ "pumpkin", 4 ], - [ "irradiated_pumpkin", 4 ], - [ "raw_dandelion", 6 ], - [ "zucchini", 4 ], - [ "irradiated_zucchini", 4 ], - [ "rose_hips", 6 ] - ] - ] + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter_superior", 1 ] ], [ [ "fern_flower", 2 ] ], [ [ "dragon_nail", 4 ] ], [ [ "wood_barnacle", 4 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "copy-from": "cats_grace_potion", "result": "foxs_cunning_potion", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", - "skill_used": "chemistry", - "skills_required": [ "spellcraft", 5 ], - "proficiencies": [ { "proficiency": "prof_alchemy" } ], - "difficulty": 5, - "time": "60 m", - "batch_time_factors": [ 50, 4 ], - "book_learn": [ [ "alchemy_basic", 4 ] ], - "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], - "tools": [ - [ [ "surface_heat", 10, "LIST" ] ], - [ - [ "rune_alchemist", -1 ], - [ "rune_magus", -1 ], - [ "rune_magus_weapon", -1 ], - [ "rune_magus_weapon_adept", -1 ] - ] - ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], "components": [ - [ [ "potion_starter", 5 ] ], - [ [ "brain", 2 ], [ "brain_cooked", 2 ] ], - [ - [ "adderall", 10 ], - [ "caff_gum", 30 ], - [ "chaw", 10 ], - [ "cig", 20 ], - [ "cigar", 5 ], - [ "handrolled_cig", 20 ] - ] + [ [ "potion_starter_superior", 1 ] ], + [ [ "fern_flower", 2 ] ], + [ [ "golden_reed_stalk", 4 ] ], + [ [ "wood_barnacle", 4 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "copy-from": "cats_grace_potion", + "result": "flask_resistance", + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter", 4 ] ], [ [ "wood_barnacle", 2 ] ], [ [ "olieribos", 2 ] ], [ [ "moly_tuber", 2 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cats_grace_potion", + "result": "flask_max_mana", + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter", 2 ] ], [ [ "golden_reed_stalk", 2 ] ], [ [ "funnelcap_chunk", 6 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cats_grace_potion", + "result": "flask_fireball", + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter", 2 ] ], [ [ "dragon_nail", 2 ] ], [ [ "glowing_mushroom", 4 ] ], [ [ "funnelcap_chunk", 6 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cats_grace_potion", + "book_learn": [ [ "alchemy_illegal", 5 ] ], + "//": "if you read this, ping me to remind me to check does inheritance rewrite book_learn, or does it summarise the values. thank you", + "result": "flask_confusion", + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter", 2 ] ], [ [ "funnelcap_chunk", 6 ] ], [ [ "glowing_mushroom", 2 ] ], [ [ "kampuch", 1 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cats_grace_potion", + "result": "flask_spear", + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter", 2 ] ], [ [ "dragon_nail", 3 ] ], [ [ "funnelcap_chunk", 5 ] ], [ [ "moly_tuber", 1 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cats_grace_potion", + "result": "flask_shadow_field", + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter", 2 ] ], [ [ "glowing_mushroom", 3 ] ], [ [ "moly_tuber", 2 ] ], [ [ "golden_reed_stalk", 2 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cats_grace_potion", + "result": "flask_sludge_field", + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter", 2 ] ], [ [ "kampuch", 2 ] ], [ [ "golden_reed_stalk", 1 ] ], [ [ "funnelcap_chunk", 8 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cats_grace_potion", + "result": "alchemist_bomb", + "book_learn": [ [ "alchemy_basic", 4 ], [ "alchemy_master", 4 ] ], + "using": [ [ "mana_energy_weak", 3 ] ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter", 3 ] ] ] + }, + { + "type": "recipe", + "copy-from": "cats_grace_potion", + "result": "mana_potion", + "using": [ [ "mana_energy_weak", 3 ] ], + "tools": [ [ [ "surface_heat", 20, "LIST" ] ], [ [ "mortar_pestle", -2 ] ] ], + "components": [ [ [ "potion_starter", 1 ] ] ], + "autolearn": true + }, + { + "type": "recipe", + "copy-from": "cats_grace_potion", "result": "twisted_restore_potion", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", - "skill_used": "chemistry", - "skills_required": [ "spellcraft", 4 ], - "proficiencies": [ { "proficiency": "prof_alchemy" } ], - "difficulty": 4, - "time": "60 m", - "result_mult": 5, - "batch_time_factors": [ 50, 4 ], "book_learn": [ [ "necro_basic", 3 ] ], - "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], "tools": [ - [ [ "surface_heat", 10, "LIST" ] ], + [ [ "surface_heat", 20, "LIST" ] ], [ [ "rune_alchemist", -1 ], [ "rune_animist", -1 ], @@ -309,21 +213,152 @@ [ "rune_animist_weapon_adept", -1 ] ] ], - "components": [ [ [ "potion_starter", 5 ] ], [ [ "edible_blood", 3, "LIST" ] ], [ [ "slime_scrap", 4 ], [ "meat_tainted", 12 ] ] ] + "components": [ [ [ "potion_starter", 5 ] ], [ [ "edible_blood", 3, "LIST" ] ], [ [ "meat_tainted", 12 ] ] ], + "charges": 5 }, { "type": "recipe", - "activity_level": "fake", - "result": "twisted_restore_potion_improved", - "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_POTIONS", + "//": "third level flasks", + "activity_level": "NO_EXERCISE", + "qualities": [ + { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, + { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 } + ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], "skill_used": "chemistry", + "difficulty": 5, "skills_required": [ "spellcraft", 6 ], "proficiencies": [ { "proficiency": "prof_alchemy" } ], - "difficulty": 6, - "time": "60 m", - "result_mult": 5, - "batch_time_factors": [ 50, 4 ], + "time": "240 m", + "batch_time_factors": [ 40, 2 ], + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_POTIONS", + "result": "flask_healing", + "book_learn": [ [ "alchemy_master", 5 ] ], + "components": [ + [ [ "potion_starter_superior", 1 ] ], + [ [ "horn_moss_capsule", 3 ] ], + [ [ "funnelcap_chunk", 8 ] ], + [ [ "wood_barnacle", 3 ] ] + ] + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "flask_stamina", + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "components": [ + [ [ "potion_starter_superior", 2 ] ], + [ [ "glowing_mushroom", 2 ] ], + [ [ "kampuch", 1 ] ], + [ [ "horn_moss_capsule", 3 ], [ "gnome_eye", 1 ] ], + [ [ "wood_barnacle", 2 ] ] + ] + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "flask_excitement", + "using": [ [ "mana_energy_weak", 2 ] ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "components": [ [ [ "potion_starter_superior", 2 ] ], [ [ "wood_barnacle", 2 ] ], [ [ "olieribos", 2 ] ], [ [ "moonflowers", 1 ] ] ] + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "flask_regeneration", + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "components": [ + [ [ "potion_starter_superior", 3 ] ], + [ [ "wood_barnacle", 4 ], [ "bracken_eye", 1 ] ], + [ [ "horn_moss_capsule", 3 ] ], + [ [ "moonflowers", 1 ] ] + ] + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "flask_mana_regen", + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "using": [ [ "mana_energy_weak", 1 ] ], + "components": [ [ [ "potion_starter_superior", 2 ] ], [ [ "wood_barnacle", 4 ] ], [ [ "golden_reed_stalk", 2 ] ] ] + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "flask_mood", + "book_learn": [ [ "alchemy_illegal", 5 ] ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "components": [ [ [ "potion_starter_superior", 1 ] ], [ [ "whiskflower", 4 ] ], [ [ "wood_barnacle", 3 ] ], [ [ "moonflowers", 1 ] ] ] + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "flask_charm", + "book_learn": [ [ "alchemy_illegal", 5 ] ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "components": [ [ [ "potion_starter_superior", 2 ] ], [ [ "moonflowers", 2 ] ], [ [ "moly_tuber", 4 ] ] ] + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "flask_night_vision", + "book_learn": [ [ "alchemy_master", 5 ] ], + "using": [ [ "mana_energy_weak", 1 ] ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "components": [ + [ [ "potion_starter_superior", 2 ] ], + [ [ "moonflowers", 2 ] ], + [ [ "wood_barnacle", 2 ] ], + [ [ "fern_flower", 2 ] ], + [ [ "glowing_mushroom", 5 ], [ "gnome_eye", 1 ] ] + ] + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "flask_toxin", + "book_learn": [ [ "alchemy_illegal", 5 ], [ "necro_basic", 5 ] ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "components": [ + [ [ "potion_starter_superior", 1 ] ], + [ [ "kampuch", 3 ] ], + [ [ "moonflowers", 2 ] ], + [ [ "golden_reed_stalk", 2 ] ], + [ [ "dragon_nail", 2 ] ] + ] + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "flask_venom", + "book_learn": [ [ "alchemy_illegal", 5 ], [ "necro_basic", 5 ] ], + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "mortar_pestle", -3 ] ] ], + "components": [ + [ [ "potion_starter_superior", 1 ] ], + [ [ "kampuch", 2 ] ], + [ [ "moonflowers", 2 ] ], + [ [ "golden_reed_stalk", 2 ] ], + [ [ "moly_tuber", 2 ] ] + ] + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "mana_potion_greater", + "tools": [ [ [ "surface_heat", 30, "LIST" ] ], [ [ "rune_alchemist", -1 ] ] ], + "using": [ [ "mana_energy_strong", 1 ], [ "mana_energy_weak", 3 ] ], + "components": [ [ [ "potion_starter_superior", 1 ] ] ], + "autolearn": true + }, + { + "type": "recipe", + "copy-from": "flask_healing", + "result": "twisted_restore_potion_improved", + "proficiencies": [ { "proficiency": "prof_alchemy" } ], "book_learn": [ [ "necro_basic", 5 ] ], "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 } ], "tools": [ @@ -333,30 +368,103 @@ "components": [ [ [ "potion_starter", 5 ] ], [ [ "edible_blood", 5, "LIST" ] ], - [ [ "slime_scrap", 5 ], [ "meat_tainted", 15 ] ], - [ [ "bandages", 5 ], [ "bandages_makeshift_bleached", 7 ], [ "bandages_makeshift_boiled", 7 ] ] - ] + [ [ "meat_tainted", 15 ] ], + [ [ "horn_moss_capsule", 5 ] ] + ], + "charges": 5 }, { "type": "recipe", - "activity_level": "fake", - "result": "alchemist_bomb", + "//": "fourth level flasks", + "activity_level": "NO_EXERCISE", "qualities": [ - { "id": "CONCENTRATE", "level": 1 }, { "id": "CONTAIN", "level": 1 }, + { "id": "MANA_INFUSE", "level": 2 }, + { "id": "CONCENTRATE", "level": 1 }, { "id": "MANA_FOCUS", "level": 1 }, + { "id": "FINE_DISTILL", "level": 1 }, { "id": "MAGIC_CAULDRON", "level": 1 } ], - "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], - "components": [ [ [ "potion_starter", 6 ] ], [ [ "crystallized_mana", 25 ] ] ], - "proficiencies": [ { "proficiency": "prof_alchemy", "required": true } ], - "time": "30 m", + "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], "skill_used": "chemistry", - "batch_time_factors": [ 65, 4 ], - "difficulty": 6, - "skills_required": [ "spellcraft", 4 ], - "book_learn": [ [ "alchemy_basic", 4 ] ], + "difficulty": 5, + "skills_required": [ "spellcraft", 7 ], + "proficiencies": [ { "proficiency": "prof_alchemy" } ], + "time": "480 m", + "batch_time_factors": [ 20, 2 ], "category": "CC_ENCHANTED", - "subcategory": "CSC_ENCHANTED_OTHER" + "subcategory": "CSC_ENCHANTED_POTIONS", + "result": "flask_speed", + "book_learn": [ [ "alchemy_master", 7 ] ], + "components": [ + [ [ "potion_starter_superior", 3 ] ], + [ [ "moonflowers", 2 ] ], + [ [ "glowing_mushroom", 4 ] ], + [ [ "wood_barnacle", 2 ] ], + [ [ "golden_reed_stalk", 2 ] ] + ] + }, + { + "type": "recipe", + "copy-from": "flask_speed", + "result": "flask_teleport_rand", + "book_learn": [ [ "alchemy_illegal", 6 ] ], + "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], + "using": [ [ "mana_energy_strong", 1 ] ], + "components": [ [ [ "potion_starter_superior", 3 ] ], [ [ "sojourners_flower", 2 ] ], [ [ "dragon_nail", 4 ] ] ] + }, + { + "type": "recipe", + "copy-from": "flask_speed", + "result": "flask_teleport", + "book_learn": [ [ "alchemy_illegal", 6 ] ], + "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], + "using": [ [ "mana_energy_strong", 2 ] ], + "components": [ + [ [ "potion_starter_superior", 2 ] ], + [ [ "sojourners_flower", 3 ] ], + [ [ "dragon_nail", 2 ] ], + [ [ "moonflowers", 2 ] ] + ] + }, + { + "type": "recipe", + "copy-from": "flask_speed", + "result": "flask_clairvoyance", + "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], + "components": [ + [ [ "potion_starter_superior", 3 ] ], + [ [ "sojourners_flower", 2 ] ], + [ [ "dragon_nail", 2 ] ], + [ [ "glowing_mushroom", 6 ] ], + [ [ "moonflowers", 1 ], [ "bracken_eye", 1 ] ] + ] + }, + { + "type": "recipe", + "copy-from": "flask_speed", + "result": "flask_invisibility", + "book_learn": [ [ "alchemy_illegal", 6 ] ], + "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], + "components": [ + [ [ "potion_starter_superior", 3 ] ], + [ [ "glowing_mushroom", 2 ] ], + [ [ "moonflowers", 2 ] ], + [ [ "funnelcap_chunk", 15 ], [ "mossling_fur", 20 ] ], + [ [ "wood_barnacle", 4 ] ] + ] + }, + { + "type": "recipe", + "copy-from": "flask_speed", + "result": "flask_feather", + "tools": [ [ [ "surface_heat", 40, "LIST" ] ], [ [ "mortar_pestle", -4 ] ] ], + "components": [ + [ [ "potion_starter_superior", 2 ] ], + [ [ "glowing_mushroom", 8 ] ], + [ [ "moonflowers", 2 ] ], + [ [ "funnelcap_chunk", 20 ] ], + [ [ "wood_barnacle", 5 ] ] + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/recipe_vehicle.json b/data/Mainline_mods/Mods/Magiclysm/recipes/recipe_vehicle.json index 6fa863730..f02bbd617 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/recipe_vehicle.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/recipe_vehicle.json @@ -14,7 +14,7 @@ "using": [ [ "welding_standard", 20 ] ], "proficiencies": [ { "proficiency": "prof_metalworking", "required": false, "learning_time_multiplier": 0.5 }, - { "proficiency": "prof_welding_basic", "required": false, "fail_multiplier": 1.5 } + { "proficiency": "prof_welding_basic", "required": false, "skill_penalty": 0.5 } ], "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 2 }, { "id": "CHISEL", "level": 2 } ], "components": [ [ [ "orichalcum_frame", 1 ] ] ] diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/tailoring.json b/data/Mainline_mods/Mods/Magiclysm/recipes/tailoring.json index 67312c465..790fe8532 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/tailoring.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/tailoring.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "parabolan_felt_patch", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", diff --git a/data/Mainline_mods/Mods/Magiclysm/recipes/weapons.json b/data/Mainline_mods/Mods/Magiclysm/recipes/weapons.json index 3124ee75e..5283f117f 100644 --- a/data/Mainline_mods/Mods/Magiclysm/recipes/weapons.json +++ b/data/Mainline_mods/Mods/Magiclysm/recipes/weapons.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "rune_magus_weapon", "//": "Forging and water included for glass heat-tempering process", "category": "CC_ENCHANTED", @@ -13,7 +13,7 @@ "autolearn": true, "using": [ [ "forging_standard", 2 ] ], "qualities": [ { "id": "CHISEL", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "tools": [ [ [ "water", -1 ] ], [ [ "tongs", -1 ] ] ], + "tools": [ [ [ "water", -1 ] ], [ [ "metalworking_tongs", -1 ] ] ], "proficiencies": [ { "proficiency": "prof_glassblowing" } ], "components": [ [ [ "q_staff", 1 ] ], @@ -24,7 +24,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "rune_magus_weapon_adept", "//": "This recipes uses cut to represent the carving, alchemy for the infusion of the mana and to make life difficult", "category": "CC_ENCHANTED", @@ -36,7 +36,7 @@ "autolearn": true, "using": [ [ "forging_standard", 2 ] ], "qualities": [ { "id": "CHISEL", "level": 2 }, { "id": "MANA_INFUSE", "level": 2 }, { "id": "CUT", "level": 1 } ], - "tools": [ [ [ "water", -1 ] ], [ [ "tongs", -1 ] ] ], + "tools": [ [ [ "water", -1 ] ], [ [ "metalworking_tongs", -1 ] ] ], "proficiencies": [ { "proficiency": "prof_carving" }, { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 3 } ], "components": [ [ [ "enchanted_wood", 1 ] ], @@ -48,7 +48,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "rune_biomancer_weapon", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -69,7 +69,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "rune_biomancer_weapon_adept", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -121,7 +121,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "result": "rune_animist_weapon", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -138,12 +138,12 @@ { "id": "MANA_INFUSE", "level": 1 } ], "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], + "tools": [ [ [ "metalworking_tongs", -1 ] ], [ [ "swage", -1 ] ] ], "components": [ [ [ "2x4", 1 ], [ "stick", 1 ] ], [ [ "rune_animist", 1 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "result": "rune_animist_weapon_adept", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -164,12 +164,12 @@ { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], + "tools": [ [ [ "metalworking_tongs", -1 ] ], [ [ "swage", -1 ] ] ], "components": [ [ [ "rune_animist_weapon", 1 ] ], [ [ "twisted_restore_potion", 1 ] ], [ [ "blood", 5 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "rune_druid_weapon", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -183,7 +183,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "result": "rune_technomancer_weapon", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -203,12 +203,12 @@ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing", "required": false, "time_multiplier": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], + "tools": [ [ [ "metalworking_tongs", -1 ] ], [ [ "swage", -1 ] ] ], "components": [ [ [ "rune_technomancer", 1 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "result": "rune_technomancer_weapon_adept", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -236,7 +236,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "rune_stormshaper_weapon", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -258,7 +258,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "rune_stormshaper_weapon_adept", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -273,19 +273,19 @@ "components": [ [ [ "rune_stormshaper_weapon", 1 ] ], [ [ "scrap_copper", 10 ], [ "copper", 1000 ] ], - [ [ "gold", 100 ] ], + [ [ "gold_small", 100 ] ], [ [ "cordage_short", 2, "LIST" ], [ "filament", 40, "LIST" ], [ "duct_tape", 40 ] ], [ [ "rune_stormshaper", 1 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "BRISK_EXERCISE", "result": "rune_earthshaper_weapon", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", "skill_used": "fabrication", - "skills_required": [ [ "spellcraft", 2 ], [ "bashing", 2 ] ], + "skills_required": [ [ "spellcraft", 2 ], [ "unarmed", 2 ] ], "difficulty": 4, "time": "360 m", "autolearn": true, @@ -295,7 +295,7 @@ { "result": "rune_kelvinist_weapon", "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", "skill_used": "fabrication", @@ -314,13 +314,13 @@ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing", "required": false, "time_multiplier": 2.5 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], + "tools": [ [ [ "metalworking_tongs", -1 ] ], [ [ "swage", -1 ] ] ], "components": [ [ [ "2x4", 1 ], [ "stick", 2 ] ], [ [ "fur", 2 ], [ "leather", 2 ] ], [ [ "rune_kelvinist", 1 ] ] ] }, { "result": "rune_kelvinist_ice_adept_weapon", "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", "skill_used": "fabrication", @@ -340,7 +340,7 @@ { "proficiency": "prof_blacksmithing", "required": false, "time_multiplier": 2.5 }, { "proficiency": "prof_alchemy", "required": false, "time_multiplier": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], + "tools": [ [ [ "metalworking_tongs", -1 ] ], [ [ "swage", -1 ] ] ], "components": [ [ [ "2x4", 1 ], [ "stick", 2 ] ], [ [ "fur", 2 ], [ "leather", 2 ] ], @@ -350,7 +350,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "animist_doll_zombie", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -358,7 +358,6 @@ "skills_required": [ [ "spellcraft", 4 ] ], "difficulty": 4, "time": "120 m", - "result_mult": 3, "book_learn": [ [ "necro_basic", 3 ] ], "qualities": [ { "id": "SEW", "level": 1 }, { "id": "CUT_FINE", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], "tools": [ @@ -375,11 +374,12 @@ [ [ "sinew", 60 ] ], [ [ "bone", 1 ], [ "bone_human", 1 ], [ "bone_tainted", 2 ] ], [ [ "needle_bone", 1 ] ] - ] + ], + "charges": 3 }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "animist_doll_skeleton", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -387,7 +387,6 @@ "skills_required": [ [ "spellcraft", 5 ] ], "difficulty": 5, "time": "180 m", - "result_mult": 3, "book_learn": [ [ "necro_basic", 4 ] ], "qualities": [ { "id": "SEW", "level": 1 }, @@ -409,11 +408,12 @@ [ [ "sinew", 60 ] ], [ [ "bone", 4 ], [ "bone_human", 4 ], [ "bone_tainted", 8 ] ], [ [ "needle_bone", 1 ] ] - ] + ], + "charges": 3 }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "animist_doll_decayed_pouncer", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -421,7 +421,6 @@ "skills_required": [ [ "spellcraft", 7 ] ], "difficulty": 7, "time": "210 m", - "result_mult": 3, "book_learn": [ [ "necro_basic", 6 ] ], "qualities": [ { "id": "SEW", "level": 1 }, { "id": "CUT_FINE", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], "tools": [ [ [ "rune_animist", -1 ], [ "rune_animist_weapon", -1 ], [ "rune_animist_weapon_adept", -1 ] ] ], @@ -437,35 +436,50 @@ [ [ "sinew", 60 ] ], [ [ "bone", 1 ], [ "bone_human", 1 ], [ "bone_tainted", 2 ] ], [ [ "needle_bone", 1 ] ] - ] + ], + "charges": 3 }, { "type": "recipe", - "activity_level": "fake", - "result": "shotcestus", + "activity_level": "MODERATE_EXERCISE", + "result": "flaming_fist", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", - "skill_used": "mechanics", - "difficulty": 4, - "skills_required": [ [ "spellcraft", 4 ], [ "bashing", 2 ], [ "shotgun", 2 ] ], + "skill_used": "spellcraft", + "difficulty": 6, + "skills_required": [ [ "spellcraft", 6 ], [ "unarmed", 3 ] ], "time": "4 h 30 m", - "book_learn": [ [ "techno_basic", 4 ] ], + "book_learn": [ [ "book_mythological", 6 ] ], + "qualities": [ + { "id": "HAMMER", "level": 3 }, + { "id": "SAW_M", "level": 2 }, + { "id": "SAW_M_FINE", "level": 1 }, + { "id": "MANA_INFUSE", "level": 1 } + ], + "components": [ [ [ "leather", 4 ] ], [ [ "rune_kelvinist", 6 ] ], [ [ "scrap", 8 ] ] ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "gauntlet_pounding", + "category": "CC_ENCHANTED", + "subcategory": "CSC_ENCHANTED_WEAPONS", + "skill_used": "spellcraft", + "difficulty": 6, + "skills_required": [ [ "spellcraft", 6 ], [ "unarmed", 3 ] ], + "time": "4 h 30 m", + "book_learn": [ [ "book_mythological", 6 ] ], "qualities": [ { "id": "HAMMER", "level": 3 }, - { "id": "CUT_FINE", "level": 1 }, { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, - { "id": "SCREW_FINE", "level": 1 }, { "id": "MANA_INFUSE", "level": 1 } ], - "tools": [ [ [ "rune_technomancer", -1 ], [ "rune_technomancer_weapon", -1 ], [ "rune_technomancer_weapon_adept", -1 ] ] ], - "byproducts": [ [ "splinter", 4 ] ], - "//": "Splinters from stock", - "components": [ [ [ "leather", 4 ] ], [ [ "pipe_double_shotgun", 1 ], [ "shotgun_d", 1 ] ], [ [ "scrap", 8 ] ] ] + "components": [ [ [ "leather", 8 ] ], [ [ "rune_earthshaper", 12 ] ], [ [ "scrap", 16 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "EXTRA_EXERCISE", "result": "mjolnir", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_BASHING", @@ -476,7 +490,7 @@ "book_learn": [ [ "book_mythological", 10 ] ], "using": [ [ "forging_standard", 3 ] ], "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], + "tools": [ [ [ "metalworking_tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing", "required": false, "time_multiplier": 3 }, @@ -493,7 +507,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "EXTRA_EXERCISE", "result": "gungnir", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_PIERCING", @@ -510,12 +524,12 @@ { "proficiency": "prof_almetallurgy" } ], "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], + "tools": [ [ [ "metalworking_tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], "components": [ [ [ "spear_steel", 1 ] ], [ [ "gold_small", 1 ] ], [ [ "silver_small", 2 ] ], [ [ "orichalcum_ingot", 2 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "EXTRA_EXERCISE", "result": "gram", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_CUTTING", @@ -532,12 +546,12 @@ { "proficiency": "prof_almetallurgy" } ], "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], - "components": [ [ [ "jian", 1 ] ], [ [ "gold_small", 1 ] ], [ [ "orichalcum_ingot", 2 ] ] ] + "tools": [ [ [ "metalworking_tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], + "components": [ [ [ "broadsword", 1 ] ], [ [ "gold_small", 20 ] ], [ [ "orichalcum_ingot", 2 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "EXTRA_EXERCISE", "result": "ichaival", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_RANGED", @@ -554,7 +568,7 @@ { "proficiency": "prof_almetallurgy" } ], "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 }, { "id": "CUT", "level": 2 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], + "tools": [ [ [ "metalworking_tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], "components": [ [ [ "stick_long", 1 ], [ "2x4", 1 ] ], [ [ "cordage_superior", 2, "LIST" ] ], @@ -564,7 +578,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "EXTRA_EXERCISE", "result": "laevateinn", "category": "CC_WEAPON", "subcategory": "CSC_WEAPON_CUTTING", @@ -581,12 +595,12 @@ { "proficiency": "prof_almetallurgy" } ], "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "CHISEL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], + "tools": [ [ [ "metalworking_tongs", -1 ] ], [ [ "anvil", -1 ] ], [ [ "swage", -1 ] ] ], "components": [ [ [ "i_staff", 1 ] ], [ [ "gold_small", 1 ] ], [ [ "orichalcum_ingot", 1 ] ] ] }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "EXTRA_EXERCISE", "result": "arrow_odin", "category": "CC_AMMO", "subcategory": "CSC_AMMO_ARROWS", @@ -604,7 +618,7 @@ "time": "30 m", "book_learn": [ [ "book_mythological", 9 ] ], "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "CUT", "level": 2 }, { "id": "ANVIL", "level": 3 } ], - "tools": [ [ [ "tongs", -1 ] ] ], + "tools": [ [ [ "metalworking_tongs", -1 ] ] ], "components": [ [ [ "orichalcum_ingot", 1 ] ], [ [ "adhesive", 1, "LIST" ], [ "filament", 10, "LIST" ] ], @@ -630,7 +644,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "magi_staff_minor", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -645,7 +659,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "magi_staff_lesser", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -661,7 +675,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "magi_staff_greater", "category": "CC_ENCHANTED", "subcategory": "CSC_ENCHANTED_WEAPONS", @@ -680,7 +694,7 @@ { "id": "CHISEL", "level": 3 } ], "proficiencies": [ { "proficiency": "prof_carving" }, { "proficiency": "prof_alchemy" }, { "proficiency": "prof_almetallurgy" } ], - "tools": [ [ [ "rune_alchemist", -1 ], [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], + "tools": [ [ [ "rune_alchemist", -1 ], [ "metalworking_tongs", -1 ] ], [ [ "swage", -1 ] ] ], "components": [ [ [ "enchanted_wood", 1 ] ], [ [ "bulette_pearl", 1 ] ], [ [ "mithril_ingot", 1 ] ], [ [ "mana_dust", 10 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/requirements/spell_components.json b/data/Mainline_mods/Mods/Magiclysm/requirements/spell_components.json index b2ed45635..b5a544cd0 100644 --- a/data/Mainline_mods/Mods/Magiclysm/requirements/spell_components.json +++ b/data/Mainline_mods/Mods/Magiclysm/requirements/spell_components.json @@ -27,7 +27,13 @@ [ "knife_paring", 1 ], [ "knife_steak", 1 ], [ "throwing_knife", 1 ], - [ "knife_baselard", 1 ] + [ "knife_baselard", 1 ], + [ "magical_throwing_knife", 1 ], + [ "magical_throwing_knife_fire", 1 ], + [ "magical_throwing_knife_cold", 1 ], + [ "magical_throwing_knife_cut", 1 ], + [ "magical_throwing_knife_biological", 1 ], + [ "magical_throwing_knife_pure_special", 1 ] ] ] }, @@ -37,7 +43,7 @@ "//": "Weapon materials and 1000 energy from blood suitable for the Decaying Boneclub spell", "components": [ [ [ "bone", 3 ], [ "bone_demihuman", 3 ], [ "bone_human", 3 ], [ "bone_tainted", 6 ] ], - [ [ "blood", 4 ], [ "blood_tainted", 200 ], [ "dragon_blood", 20 ] ] + [ [ "blood", 4 ], [ "blood_tainted", 1 ], [ "dragon_blood", 20 ] ] ] }, { @@ -64,13 +70,13 @@ "id": "spell_components_causticaura", "type": "requirement", "//": "Strong acids suitable for the Caustic Aura spell", - "components": [ [ [ "acid", 2 ], [ "chem_sulphuric_acid", 2 ], [ "chem_muriatic_acid", 2 ], [ "chem_nitric_acid", 2 ] ] ] + "components": [ [ [ "chem_sulphuric_acid", 2 ], [ "chem_muriatic_acid", 2 ], [ "chem_nitric_acid", 2 ] ] ] }, { "id": "spell_components_shardspray", "type": "requirement", "//": "A kilo of metal fragments suitable for the Shardspray spell", - "components": [ [ [ "scrap", 40 ], [ "copper", 500 ], [ "gold", 200 ], [ "silver", 333 ], [ "lead", 333 ] ] ] + "components": [ [ [ "scrap", 40 ], [ "copper", 500 ], [ "gold_small", 200 ], [ "silver_small", 333 ], [ "lead", 333 ] ] ] }, { "id": "spell_components_nova_flare", @@ -79,10 +85,19 @@ "components": [ [ [ "coal_lump", 30 ], [ "lamp_oil", 5 ] ] ] }, { - "id": "spell_components_freezing_touch", + "id": "spell_components_reactive_armor", "type": "requirement", - "//": "Empower your chilling touch spell with the power of ice cream!", - "components": [ [ [ "icecream_choc", 1 ], [ "icecream", 1 ], [ "icecream_fruit", 1 ], [ "icecream_candy", 1 ] ] ] + "components": [ [ [ "aura_stoneskin", 1 ] ] ] + }, + { + "id": "spell_components_rune_animist", + "type": "requirement", + "components": [ [ [ "rune_animist", 1 ] ] ] + }, + { + "id": "spell_components_rune_animist_3", + "type": "requirement", + "components": [ [ [ "rune_animist", 3 ] ] ] }, { "id": "spell_components_potion_starter", @@ -103,5 +118,60 @@ "id": "spell_components_samsara", "type": "requirement", "components": [ [ [ "rune_druid", 1 ] ] ] + }, + { + "id": "spell_components_druid_bandage", + "type": "requirement", + "//": "Leaves and bark for the Vegetative Poultice spell", + "components": [ + [ + [ "young_leaves", 2 ], + [ "leaves", 2 ], + [ "grape_leaves", 2 ], + [ "fiddlehead_raw", 2 ], + [ "cattail_rhizome", 2 ], + [ "raw_dandelion", 2 ], + [ "juniper", 2 ] + ], + [ [ "alder_bark", 1 ], [ "tanbark", 1 ], [ "birchbark", 1 ], [ "willowbark", 1 ] ] + ] + }, + { + "id": "spell_components_druid_arrow", + "type": "requirement", + "//": "Sticks for the for the Harvest of the Hunter spell", + "components": [ + [ + [ "pine_bough", 2 ], + [ "stick", 1 ], + [ "stick_long", 1 ], + [ "stick_fiber", 2 ], + [ "alder_bark", 5 ], + [ "tanbark", 5 ], + [ "birchbark", 5 ], + [ "willowbark", 5 ] + ] + ] + }, + { + "id": "spell_components_magus_mark", + "type": "requirement", + "components": [ [ [ "crystallized_mana", 10 ] ] ] + }, + { + "id": "spell_components_word_of_recall", + "type": "requirement", + "components": [ [ [ "crystallized_mana", 1 ] ] ] + }, + { + "id": "spell_components_remove_instability", + "type": "requirement", + "components": [ [ [ "purifier", 1 ] ] ] + }, + { + "id": "spell_components_druid_bramble_spear", + "type": "requirement", + "//": "Sticks to turn into a bramble spear", + "components": [ [ [ "stick", 1 ], [ "stick_long", 1 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/scenarios.json b/data/Mainline_mods/Mods/Magiclysm/scenarios.json index b9e62e535..d6aa03ffa 100644 --- a/data/Mainline_mods/Mods/Magiclysm/scenarios.json +++ b/data/Mainline_mods/Mods/Magiclysm/scenarios.json @@ -45,7 +45,8 @@ "novice_technomancer", "novice_stormshaper", "academy_wizard" - ] + ], + "reveal_locale": false }, { "type": "scenario", @@ -56,7 +57,19 @@ "description": "You are an exile, whether because of people shunning you because of who you are or from a personal choice. The dead aren't willing to leave you be.", "start_name": "Exiled", "allowed_locs": [ "sloc_hermit_shack", "sloc_cabin", "sloc_lmoe", "sloc_lighthouse_ground", "sloc_cabin_lake" ], - "professions": [ "druid", "novice_necromancer", "magic_grim_reaper" ] + "professions": [ + "druid", + "novice_necromancer", + "ranger", + "vengpreacher", + "techno_prepper", + "fleshmender", + "moose_rider", + "wild_druid", + "archer_druid", + "magic_grim_reaper" + ], + "reveal_locale": false }, { "copy-from": "alcatraz", @@ -81,5 +94,23 @@ "type": "scenario", "extend": { "professions": [ "whitedeath_expy" ] }, "id": "heli_crash" + }, + { + "copy-from": "presort", + "type": "scenario", + "extend": { "professions": [ "magic_vamp", "biomancer_musician", "magic_knifethrower", "freezing_dancer", "magic_maid" ] }, + "id": "presort" + }, + { + "copy-from": "Mansion", + "type": "scenario", + "extend": { "professions": [ "magic_vamp", "biomancer_musician", "freezing_dancer", "magic_maid", "magic_burglar" ] }, + "id": "Mansion" + }, + { + "copy-from": "Mine_bottom", + "type": "scenario", + "extend": { "professions": [ "magic_miner" ] }, + "id": "Mine_bottom" } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/snippets/e_logs.json b/data/Mainline_mods/Mods/Magiclysm/snippets/e_logs.json new file mode 100644 index 000000000..0281f4e60 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/snippets/e_logs.json @@ -0,0 +1,17 @@ +[ + { + "type": "snippet", + "category": "local_files_simple", + "text": [ + { + "id": "magiclysm_local_files_01", + "text": "IMG_202X0406_221145.jpg\n\nAn image whose grainy quality is indicative of being taken with light-enhancing software correction and image zoom. The image depicts a campfire in the woods as seen from a short distance away, though zoomed in quite far. Several child-sized figures are crouched around the campfire dressed in clothes sized for a human adult, their species unclear. Visible on a spit over the campfire is a human arm." + }, + { + "id": "magiclysm_local_files_02", + "//": "G-slur: Greenskins", + "text": "An archived voice message from a Rhode Island number.\"\n\n\"Gazzak, you there? Dammit, pick up the phone! This fucking quarantine means there's no way I can get back to my place so I'm stuck here for the moment. It's a pretty nice place so I'm not in bad shape yet but no one else here will fucking talk to me. And can you blame them? I met some guy who spat on me and tried to attack me while screaming that g-slurs killed his wife. You've heard the news too, right? Out in the forest in bands like-\" The voice cuts off as indistinct shouting is audible. \"Shit, gotta run. I'll call you back!\"\n\nThere are no further messages." + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/snippets/monster_parrots.json b/data/Mainline_mods/Mods/Magiclysm/snippets/monster_parrots.json new file mode 100644 index 000000000..94684e52a --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/snippets/monster_parrots.json @@ -0,0 +1,51 @@ +[ + { + "type": "speech", + "speaker": [ "mon_mi_go_fleshwarper", "mon_mi_go_nethermancer" ], + "//": "This and below represent the mi-go parroting incantations they've heard from captured human (and elven, dwarven, etc) wizards, not them casting spells using them.", + "sound": "\"Abra-cadabra!\"", + "volume": 20 + }, + { + "type": "speech", + "//~": "The mi-go is parroting a Latin incantation here that should not be translated.", + "speaker": [ "mon_mi_go_fleshwarper", "mon_mi_go_nethermancer" ], + "sound": "\"Per Adonai Elohim, Adonai Jehova, Adonai Sabaoth…\"", + "volume": 20 + }, + { + "type": "speech", + "//~": "The mi-go is parroting a Latin incantation here that should not be translated.", + "speaker": [ "mon_mi_go_fleshwarper", "mon_mi_go_nethermancer" ], + "sound": "\"Metraton on agla mathon, verbum pythonicum, mysterium salamandrae…\"", + "volume": 20 + }, + { + "type": "speech", + "//~": "The mi-go is parroting a Latin incantation here that should not be translated.", + "speaker": [ "mon_mi_go_fleshwarper", "mon_mi_go_nethermancer" ], + "sound": "\"Conventus sylvorum, antra gnomorum, daemonia coeli gad…\"", + "volume": 20 + }, + { + "type": "speech", + "//~": "The mi-go is parroting a Latin incantation here that should not be translated.", + "speaker": [ "mon_mi_go_fleshwarper", "mon_mi_go_nethermancer" ], + "sound": "\"Almousin, gibor, jehosua, evam, zariatnatmik, veni, veni, veni…\"", + "volume": 20 + }, + { + "type": "speech", + "//~": "The mi-go is parroting an incantation here that should not be translated.", + "speaker": [ "mon_mi_go_fleshwarper", "mon_mi_go_nethermancer" ], + "sound": "\"Y'ai 'nh'ngah h'ee-l'geb f'ai throdog uaaah!\"", + "volume": 20 + }, + { + "type": "speech", + "//~": "The mi-go is parroting an incantation here that should not be translated.", + "speaker": [ "mon_mi_go_fleshwarper", "mon_mi_go_nethermancer" ], + "sound": "\"Ogthrod ai'f geb'l-ee'h 'ngah'ng ai'y zhro!\"", + "volume": 20 + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/snippets/newspapers.json b/data/Mainline_mods/Mods/Magiclysm/snippets/newspapers.json index 3bb75390d..a7b0d6fd1 100644 --- a/data/Mainline_mods/Mods/Magiclysm/snippets/newspapers.json +++ b/data/Mainline_mods/Mods/Magiclysm/snippets/newspapers.json @@ -1,4 +1,30 @@ [ + { + "type": "snippet", + "category": "weeks_old_newspaper", + "text": [ + { + "id": "magiclysm_weeks_old_news_1", + "text": "Letter to the Editor:\n\nI am concerned about recent activity among the local goblin population. While the riots have us all on edge, lately many of them seem to be keeping to themselves. My neighbors won't even say hello to me anymore or look at me when I pass them on the street. Sometimes they leave for days at a time, and I swear I've seen fires burning on the hills. There's something odd going on and we don't need any more strangeness with everything else that's wrong with the world lately.\n\nSincerely\nEdward Frost" + } + ] + }, + { + "type": "snippet", + "category": "months_old_newspaper", + "text": [ + { + "id": "magiclysm_months_old_news_1", + "//": "ħ in goblin names represents a voiceless pharyngeal fricative, like the ch in \"loch\" or the Hebrew ח", + "text": "MISSING CHILD: As the search continues for Theodore O'Connor, age 7, missing since last Thursday, his mother placed the blame on a goblin family in their neighborhood. \"They've been lurking around our house for days before Theo disappeared,\" she said during an interview on local television, \"and I just know they had something to do with it. Please bring our Theo back!\" Local community organizer Shazgra k'Morħet denounced the claims, stating, \"I thought we had moved past this kind of blood libel rhetoric, but apparently rising tensions are all it takes for old accusations to resurface. We've all seen the footage of the riots. They're the most multicultural gatherings we've had in modern times.\"" + }, + { + "id": "magiclysm_months_old_news_2", + "//": "My idea here is that the different species cannot have children together but adoption is common, so you could have the adopted son of a human father and a dwarven mother named like \"Eric Johnson, son of Rupert, of Clan Stonehammer\",etc. Hence the secretary's name--elven father, human mother, adopted.", + "text": "Secretary of Thaumaturgy Adam Maerhanar released a statement today stating that all national parks would be closed to the public until further notice due to increased wilderness spirit activity. The notice further stated that the cause was under investigation but an unnamed source indicated it was probably due to natural solar cycles: \"The stars, the sun, the moon, we know these all affect spirits' behavior. Despite existing alongside them for thousands of years, there's still so much we don't know about them.\"" + } + ] + }, { "type": "snippet", "category": "one_year_old_news", @@ -6,6 +32,20 @@ { "id": "magiclysm_one_year_old_news_1", "text": "Yesterday Gregory Hamilton, the local Wizard Enforcer, went on a rampage in the local shopping district. Known for being the most powerful mage in Syracuse, New York, it is unsurprising that he managed to reduce the entire district into a smoking crater. The National Guard took him out with a team of snipers and 5 helicopters. Casualties are unknown, but current estimates are 15,000 and climbing." + }, + { + "id": "magiclysm_one_year_old_news_2", + "text": "Scientists from the only magical research facility in the region reported a breakthrough yesterday. They reported that their research lead, Ander McDowell, has \"Ascended\" to a greater plane of existence. They are still looking into the details, because once Ander did so, they only made one statement before appearing to dissolve into the Ether: \"I've found the answer! It's been Mana all along!\"" + } + ] + }, + { + "type": "snippet", + "category": "many_years_old_newspaper", + "text": [ + { + "id": "magiclysm_many_years_old_news_1", + "text": "Staff at Johns Hopkins University yesterday announced promising results in the long search for a health catalyst spell. While an actual prototype formula has not been released, the draft paper indicates that animal testing showed a five percent decrease in long-term mortality rates in rats suffering from a dozen different types of cancers. \"A true universal healing catalyst spell would really be the Holy Grail\", said Dr. Olivia k'Ħarzag, Director of Thaumaturgical Oncology Research at Johns Hopkins University. \"Modern cancer research's greatest limiting factor is that the most potent biomantic healing spells can only affect the caster. If we can find a way to encourage the body's own defenses that works on a wide scale, even if we can't directly cure the cancer, we could save so many more people.\"" } ] } diff --git a/data/Mainline_mods/Mods/Magiclysm/species.json b/data/Mainline_mods/Mods/Magiclysm/species.json index 9fdf3abf5..02459f9f6 100644 --- a/data/Mainline_mods/Mods/Magiclysm/species.json +++ b/data/Mainline_mods/Mods/Magiclysm/species.json @@ -23,6 +23,12 @@ "description": "a short and cruel humanoid", "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_WEAK" ] }, + { + "type": "SPECIES", + "id": "GOBLIN_FORGE", + "description": "a short and entrepreneurial humanoid", + "anger_triggers": [ "HURT", "FRIEND_ATTACKED" ] + }, { "type": "SPECIES", "id": "ORC", @@ -40,5 +46,34 @@ "id": "OGRE", "description": "a monstrous, powerful humanoid", "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_WEAK" ] + }, + { + "type": "SPECIES", + "id": "RAVENFOLK", + "description": "a corvid-like humanoid", + "anger_triggers": [ "FRIEND_ATTACKED" ], + "fear_triggers": [ "FIRE" ] + }, + { + "type": "SPECIES", + "id": "AIR_SPIRIT", + "description": "A magical being of wind and rain.", + "anger_triggers": [ "HURT", "FRIEND_ATTACKED" ], + "bleeds": "fd_cold_air1" + }, + { + "type": "SPECIES", + "id": "FOREST_SPIRIT", + "description": "A magical being of the forest.", + "flags": [ "NEVER_WANDER", "PATH_AVOID_FIRE" ], + "fear_triggers": [ "FIRE" ], + "bleeds": "fd_blood_veggy" + }, + { + "type": "SPECIES", + "id": "EARTH_SPIRIT", + "description": "A magical being of rock and stone.", + "flags": [ "NEVER_WANDER", "NO_FUNG_DMG" ], + "anger_triggers": [ "FRIEND_ATTACKED" ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/ter_fur_transform/ter_fur_transform.json b/data/Mainline_mods/Mods/Magiclysm/ter_fur_transform/ter_fur_transform.json index 9f63bb182..2f6fc184d 100644 --- a/data/Mainline_mods/Mods/Magiclysm/ter_fur_transform/ter_fur_transform.json +++ b/data/Mainline_mods/Mods/Magiclysm/ter_fur_transform/ter_fur_transform.json @@ -102,6 +102,28 @@ ], "furniture": [ { "result": "f_null", "valid_flags": [ "TRANSPARENT", "WALL" ] } ] }, + { + "type": "ter_furn_transform", + "id": "earthshaper_turning_earth", + "terrain": [ + { + "result": "t_dirtmound", + "valid_terrain": [ "t_dirt", "t_dirtfloor", "t_grass", "t_grass_long", "t_grass_tall", "t_grass_dead", "t_grass_white", "t_pit_shallow" ], + "message": "The ground churns as a long straight furrow suitable for planting appears." + } + ] + }, + { + "type": "ter_furn_transform", + "id": "earthshaper_boulder", + "furniture": [ + { + "result": "f_boulder_earthshaper", + "valid_furniture": [ "f_null" ], + "message": "The ground shakes, and a section of unnaturally smooth stone rises to the surface." + } + ] + }, { "type": "ter_furn_transform", "id": "druidic_renewal", @@ -182,5 +204,93 @@ "message": "There's a rippling in the air and a blast of cold air, then the crystal forms." } ] + }, + { + "type": "ter_furn_transform", + "id": "earthshaper_granite_aegis_to_stone", + "terrain": [ + { + "result": "t_rock_smooth", + "valid_terrain": [ + "t_rock_floor_no_roof", + "t_rock_floor", + "t_dirt", + "t_dirtfloor", + "t_dirtfloor_no_roof", + "t_dirt_underground", + "t_grass", + "t_grass_long", + "t_grass_tall", + "t_grass_dead", + "t_grass_white", + "t_grass_golf", + "t_pit_shallow", + "t_sand", + "t_sand_underground", + "t_clay", + "t_claymound", + "t_claymound_underground", + "t_dirtmound", + "t_sandmound", + "t_mud", + "t_mud_underground", + "t_forestfloor", + "t_moss", + "t_moss_underground", + "t_region_soil", + "t_puddle_underground", + "t_pit_shallow", + "t_concrete_y", + "t_concrete", + "t_thconc_y_olight", + "t_thconc_warning", + "t_thconc_y", + "t_thconc_r", + "t_thconc_floor", + "t_strconc_floor", + "t_strconc_floor_olight", + "t_strconc_floor_no_roof", + "t_railroad_rubble" + ], + "message": "A wall of smooth stone rises up around you!" + } + ] + }, + { + "type": "ter_furn_transform", + "id": "earthshaper_granite_aegis_to_stone_safe", + "terrain": [ { "result": "t_dirtmound", "valid_terrain": [ "t_rock_smooth" ], "message": "" } ] + }, + { + "type": "ter_furn_transform", + "id": "earthshaper_granite_aegis_from_stone", + "terrain": [ { "result": "t_dirtmound", "valid_terrain": [ "t_rock_smooth" ], "message": "The stone wall crumbles to dust." } ] + }, + { + "type": "ter_furn_transform", + "id": "druid_summoned_brambles", + "furniture": [ + { + "result": "f_druid_brambles", + "valid_furniture": [ + "f_null", + "f_cattails", + "t_grass_tall", + "t_grass_long", + "f_burdock", + "f_lotus", + "f_japanese_knotweed", + "f_golden_reed", + "f_barnacle_weed", + "f_lilypad", + "f_whiskflower", + "f_bluebell", + "f_lily", + "f_salsify", + "f_wild_sarsaparilla" + ], + "message": "The ground churns as thick, tangled brambles burst forth and grow in moments." + } + ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/terrain.json b/data/Mainline_mods/Mods/Magiclysm/terrain.json index 02610694a..41abdd0c9 100644 --- a/data/Mainline_mods/Mods/Magiclysm/terrain.json +++ b/data/Mainline_mods/Mods/Magiclysm/terrain.json @@ -2,6 +2,7 @@ { "type": "terrain", "id": "t_tree_burnt", + "looks_like": "t_tree_dead", "name": "burnt tree", "description": "This tree looks like it has been burnt badly, but it is somehow still standing.", "symbol": "7", @@ -21,7 +22,8 @@ { "type": "terrain", "id": "t_webbed_corpse", - "name": "burnt tree", + "looks_like": "t_tree_dead", + "name": "dry cocoon", "description": "This is a large cocoon-like object that looks to be the vague shape of some creature. You don't want to know how long it stayed alive while being sucked dry by these spiders.", "symbol": "7", "color": "light_gray", @@ -47,6 +49,7 @@ "coverage": 100, "roof": "t_flat_roof", "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ], + "connect_groups": "WALL", "connects_to": "WALL" }, { @@ -124,7 +127,6 @@ "coverage": 100, "roof": "t_flat_roof", "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], - "connects_to": "WALL", "bash": { "str_min": 240, "str_max": 560, diff --git a/data/Mainline_mods/Mods/Magiclysm/traits/attunements.json b/data/Mainline_mods/Mods/Magiclysm/traits/attunements.json index 9fd0a022d..7e94f2840 100644 --- a/data/Mainline_mods/Mods/Magiclysm/traits/attunements.json +++ b/data/Mainline_mods/Mods/Magiclysm/traits/attunements.json @@ -51,6 +51,7 @@ "description": "The alchemist comes from the technomancer's skills with unliving matter combined with the animist's grasp on the ambient ley lines. It requires magical talent and lots of time, but is invaluable for creating powerful magical effects in a storable, accessible form.", "prereqs": [ "ANIMIST", "TECHNOMANCER" ], "spells_learned": [ [ "alchemist_make_potion_starter", 5 ], [ "alchemist_make_potion_bomb", 5 ], [ "alchemist_make_potion_trap", 5 ] ], + "integrated_armor": [ "alchemist_pocket" ], "cancels": [ "ARTIFICER", "BIOTEK", @@ -130,8 +131,8 @@ "valid": false, "description": "Animists are known for their blood magic, and being a Biomancer you are able to take it another step further by strengthening your blood. The dark arts have opened to you, and while dangerous, are incredible to behold.", "prereqs": [ "BIOMANCER", "ANIMIST" ], + "enchantments": [ "BLOOD_MAGE" ], "spells_learned": [ [ "banishment_greater", 5 ], [ "demonic_possession", 5 ] ], - "bleed_resist": 200, "cancels": [ "ALCHEMIST", "BIOTEK", @@ -157,7 +158,7 @@ "SOULFIRE", "WITHER_MAGE" ], - "flags": [ "ATTUNEMENT" ] + "flags": [ "ATTUNEMENT", "BLEED_IMMUNE" ] }, { "id": "BOREAL_MAGE", @@ -168,6 +169,7 @@ "purifiable": false, "valid": false, "description": "Named for the auroras that grace the poles of the earth, the Boreal mage specializes in auras that protect ethereally. Boreal mages definitely know their way around cold spells, but their real strength is protection.", + "enchantments": [ "BOREAL_MAGE" ], "prereqs": [ "KELVINIST", "TECHNOMANCER" ], "spells_learned": [ [ "auroral_wave", 5 ], [ "borealmage_auroral_guard", 5 ] ], "cancels": [ @@ -208,6 +210,7 @@ "purifiable": false, "valid": false, "description": "The Cleansing Flame is the fire that burns away the chaff, in preparation for the regrowth of new life.", + "enchantments": [ "CLEANSING_FLAME" ], "spells_learned": [ [ "immolate", 5 ], [ "cleansingflame_hermes_heal", 5 ] ], "prereqs": [ "DRUID", "KELVINIST" ], "cancels": [ @@ -237,7 +240,7 @@ "SOULFIRE", "WITHER_MAGE" ], - "flags": [ "ATTUNEMENT" ] + "flags": [ "ATTUNEMENT", "INFECTION_IMMUNE" ] }, { "id": "CRUSADER", @@ -249,7 +252,7 @@ "valid": false, "description": "The Crusader attunement is a clashing dichotomy of Man and Nature. Utilizing man's propensity for tools and nature's resilience, the Crusader is a juggernaut in armed combat.", "prereqs": [ "DRUID", "TECHNOMANCER" ], - "spells_learned": [ [ "holy_shield", 5 ] ], + "spells_learned": [ [ "holy_shield", 5 ], [ "judgement_sword", 5 ] ], "passive_mods": { "dex_mod": 5 }, "hp_modifier": 1, "cancels": [ @@ -290,10 +293,7 @@ "description": "Stone is superior to flesh. You have allowed this axiom into your life, and work to correct your own weakness with biomancy. The strength of the Earth rushed up to meet you with open arms.", "prereqs": [ "BIOMANCER", "EARTHSHAPER" ], "spells_learned": [ [ "quake", 5 ], [ "rock_blast", 5 ] ], - "armor": [ - { "parts": [ "torso", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "head" ], "cut": 15 } - ], - "passive_mods": { "str_mod": 5 }, + "enchantments": [ "EARTH_ELEMENTAL" ], "cancels": [ "ARTIFICER", "ALCHEMIST", @@ -319,7 +319,7 @@ "VULCANIST", "WITHER_MAGE" ], - "flags": [ "ATTUNEMENT" ] + "flags": [ "ATTUNEMENT", "ELECTRIC_IMMUNE" ] }, { "id": "FIRE_ELEMENTAL", @@ -414,7 +414,7 @@ "description": "The Champion of the Earth, Gaia's Chosen is blessed on all things nature, animate and inanimate.", "enchantments": [ "GAIAS_CHOSEN" ], "prereqs": [ "DRUID", "EARTHSHAPER" ], - "spells_learned": [ [ "gaiaschosen_samsara", 5 ] ], + "spells_learned": [ [ "gaiaschosen_samsara", 5 ], [ "dust_reborn", 5 ], [ "terra_armor", 5 ] ], "cancels": [ "ARTIFICER", "ALCHEMIST", @@ -452,6 +452,7 @@ "valid": false, "description": "The power of a Glacier Mage is backed by a thousand tons of ice and snow, with a brutal might in their spells. While they are skilled with cold spells, their greatest strength is in offense.", "prereqs": [ "EARTHSHAPER", "KELVINIST" ], + "enchantments": [ "GLACIER_MAGE" ], "spells_learned": [ [ "ice_clave", 5 ], [ "frozen_winds", 5 ] ], "cancels": [ "ARTIFICER", @@ -490,6 +491,7 @@ "starting_trait": false, "purifiable": false, "valid": false, + "enchantments": [ "GOLEMANCER" ], "description": "The Golemancer is the ancient myth of the clay golem, made reality from constant use of Animist summons and Earthshaper self-strengthening spells. Takes some traits from the golems they create, such as immunity to slowing effects.", "prereqs": [ "ANIMIST", "EARTHSHAPER" ], "spells_learned": [ [ "golem_push", 5 ], [ "summon_golem_clay", 5 ] ], @@ -530,8 +532,8 @@ "valid": false, "description": "The fundamental Laws of the universe are thought of as the end-all-be-all in magical circles, and the Gravity Mage is a result of mages mucking around with those laws. Unfortunately, this attunement does not give supreme control over gravity as a fundamental force, though the affinity is prominent and comes with some non-negligible benefits.", "prereqs": [ "MAGUS", "EARTHSHAPER" ], - "spells_learned": [ [ "gravitymage_graviton", 5 ] ], - "weight_capacity_modifier": 2, + "spells_learned": [ [ "gravitymage_graviton", 5 ], [ "gravity_mage_leap", 5 ], [ "gravity_mage_melee", 5 ] ], + "enchantments": [ "GRAVITY_MAGE" ], "cancels": [ "ARTIFICER", "ALCHEMIST", @@ -651,8 +653,10 @@ "purifiable": false, "valid": false, "description": "Through the fine manipulation of light, an Illusionist might craft deceptively convincing and dangerous illusions. An Illusionist excels at avoiding direct confrontation, instead relying on decoys and traps to slip by undetected.", - "spells_learned": [ [ "spear_of_light", 5 ] ], + "spells_learned": [ [ "spear_of_light", 5 ], [ "illusionist_hologram", 5 ], [ "illusionist_transposition", 5 ] ], "prereqs": [ "MAGUS", "TECHNOMANCER" ], + "ugliness": -7, + "social_modifiers": { "persuade": 10, "lie": 10, "intimidate": 10 }, "cancels": [ "ARTIFICER", "ALCHEMIST", @@ -689,6 +693,7 @@ "purifiable": false, "valid": false, "description": "", + "enchantments": [ "MAGNETISM_MAGE" ], "prereqs": [ "STORMSHAPER", "EARTHSHAPER" ], "spells_learned": [ [ "railgun", 5 ], [ "magnetismmage_electrolaser", 5 ], [ "robot_disabler_explosion", 5 ] ], "cancels": [ @@ -718,7 +723,7 @@ "VULCANIST", "SOULFIRE" ], - "flags": [ "ATTUNEMENT" ] + "flags": [ "ATTUNEMENT", "ELECTRIC_IMMUNE" ] }, { "id": "PERMAFROST_MAGE", @@ -729,8 +734,9 @@ "purifiable": false, "valid": false, "description": "", + "enchantments": [ "PERMAFROST_MAGE" ], "prereqs": [ "KELVINIST", "MAGUS" ], - "spells_learned": [ [ "cold_energy", 5 ] ], + "spells_learned": [ [ "cold_energy", 5 ], [ "permafrost_mage_ice_age", 5 ] ], "cancels": [ "ARTIFICER", "ALCHEMIST", @@ -892,6 +898,7 @@ "description": "The Soulfire is a phenomena of the caster's spirit binding to a fragment of a spirit of flame. This makes it possible for the Soulfire to use its namesake as an element - much like fire, it does burn, but it burns away at the soul instead of the flesh.", "spells_learned": [ [ "burn_at_both_ends", 5 ], [ "soul_afterburner", 5 ] ], "prereqs": [ "KELVINIST", "ANIMIST" ], + "enchantments": [ "SOULFIRE" ], "cancels": [ "ARTIFICER", "ALCHEMIST", @@ -932,7 +939,7 @@ "description": "You've used your knowledge of Biomancy to change your body into a form befitting a Stormshaper. You can better withstand the power of electricity, and sparks leap from your skin when something hits you. You're beginning to study spells that utilize your body's affinity for the electric.", "prereqs": [ "STORMSHAPER", "BIOMANCER" ], "enchantments": [ "STORM_ELEMENTAL" ], - "spells_learned": [ [ "storm_chain_master", 5 ] ], + "spells_learned": [ [ "storm_chain_master", 5 ], [ "storm_elemental_electric_melee", 5 ] ], "cancels": [ "ARTIFICER", "BIOTEK", @@ -960,7 +967,7 @@ "SOULFIRE", "WITHER_MAGE" ], - "flags": [ "ATTUNEMENT" ] + "flags": [ "ATTUNEMENT", "ELECTRIC_IMMUNE" ] }, { "id": "STORMCALLER", @@ -972,6 +979,7 @@ "valid": false, "description": "A stormcaller is a stormshaper with an additional affinity toward the weather in a localized area. Historians agree that the druid requirement has something to do with the Druid's affinity for nature, just like their ability to summon animals. You will know a stormcaller is in the room if your ears pop and your hair stands straight on end. Stormcallers are not known for their subtlety.", "prereqs": [ "STORMSHAPER", "DRUID" ], + "spells_learned": [ [ "electric_demon", 5 ], [ "electric_turret", 5 ] ], "cancels": [ "ARTIFICER", "BIOTEK", @@ -999,7 +1007,7 @@ "SOULFIRE", "WITHER_MAGE" ], - "flags": [ "ATTUNEMENT" ] + "flags": [ "ATTUNEMENT", "ELECTRIC_IMMUNE" ] }, { "id": "SUN_MAGE", @@ -1052,6 +1060,7 @@ "valid": false, "description": "The barren cold of the world's far reaches flows through the Tundra Mage. They find power in the all-pervasive frost of the North and in the creatures that defy its deathly chill.", "prereqs": [ "DRUID", "KELVINIST" ], + "enchantments": [ "TUNDRA_MAGE" ], "spells_learned": [ [ "cold_snap", 5 ], [ "summon_winter_wolf", 5 ] ], "cancels": [ "ARTIFICER", @@ -1134,6 +1143,7 @@ "description": "One of the most destructive forces on earth, a Volcano Mage takes some aspect of its namesake. Their spells tend to be a little slow, but their resilience in proximity to a volcano is legendary.", "spells_learned": [ [ "lava_bomb_main", 5 ], [ "vulcanist_pyroclastic_flow", 5 ] ], "prereqs": [ "EARTHSHAPER", "KELVINIST" ], + "enchantments": [ "VULCANIST" ], "cancels": [ "ARTIFICER", "ALCHEMIST", @@ -1173,6 +1183,7 @@ "valid": false, "description": "While biomancers focus on both life and death; Wither Mages set their sights on the transitional period between these two stages. They wield entropy and decay hand and hand, using it to enhance their combat prowess to surgical precision. This confluence of abilities are what lead to assassin mages gaining this attunement.", "prereqs": [ "DRUID", "MAGUS" ], + "enchantments": [ "WITHER_MAGE" ], "spells_learned": [ [ "assassin_strike", 5 ], [ "life_drain", 5 ] ], "cancels": [ "ALCHEMIST", diff --git a/data/Mainline_mods/Mods/Magiclysm/traits/classes.json b/data/Mainline_mods/Mods/Magiclysm/traits/classes.json index 084213263..513516343 100644 --- a/data/Mainline_mods/Mods/Magiclysm/traits/classes.json +++ b/data/Mainline_mods/Mods/Magiclysm/traits/classes.json @@ -9,7 +9,7 @@ "purifiable": false, "valid": false, "cancels": [ "ANIMIST" ], - "spells_learned": [ [ "create_rune_magus", 1 ] ] + "spells_learned": [ [ "create_rune_magus", 0 ] ] }, { "type": "mutation", @@ -21,31 +21,34 @@ "purifiable": false, "valid": false, "cancels": [ "MAGUS" ], - "spells_learned": [ [ "create_rune_animist", 1 ] ] + "spells_learned": [ [ "create_rune_animist", 0 ] ], + "moncams": [ [ "mon_watcher_spirit", 30 ] ] }, { "type": "mutation", "id": "KELVINIST", "name": "Kelvinist", "points": 0, - "description": "Disciples of the great Archwizard Lord Kelvin. Kelvinists focus their magic on manipulation and control of the temperature of their environment, leading to spectacularly powerful explosions or bone-chilling cold.", + "description": "Disciples of the great Archwizard Lord Kelvin. Kelvinists focus their magic on manipulation and control of the temperature of their environment, leading to spectacularly powerful explosions or bone-chilling cold. Your powers grant you some immunity from fire that increases with your skills.", "starting_trait": false, "purifiable": false, "valid": false, + "enchantments": [ "KELVINIST" ], "cancels": [ "STORMSHAPER" ], - "spells_learned": [ [ "create_rune_kelvinist", 1 ] ] + "spells_learned": [ [ "create_rune_kelvinist", 0 ] ] }, { "type": "mutation", "id": "STORMSHAPER", "name": "Stormshaper", "points": 0, - "description": "Stormshapers follow ancient arcane disciplines of meditation and harmony with the winds and tides that shape the planet. Through their deep connection to these forces, they can request powerful changes.", + "description": "Stormshapers follow ancient arcane disciplines of meditation and harmony with the winds and tides that shape the planet. Through their deep connection to these forces, they can request powerful changes. Your powers grant you some immunity from electricity that increases with your skills.", "starting_trait": false, "purifiable": false, "valid": false, + "enchantments": [ "STORMSHAPER" ], "cancels": [ "KELVINIST" ], - "spells_learned": [ [ "create_rune_stormshaper", 1 ] ] + "spells_learned": [ [ "create_rune_stormshaper", 0 ] ] }, { "type": "mutation", @@ -57,7 +60,7 @@ "purifiable": false, "valid": false, "cancels": [ "EARTHSHAPER" ], - "spells_learned": [ [ "create_rune_technomancer", 1 ] ] + "spells_learned": [ [ "create_rune_technomancer", 0 ] ] }, { "type": "mutation", @@ -69,7 +72,7 @@ "purifiable": false, "valid": false, "cancels": [ "TECHNOMANCER" ], - "spells_learned": [ [ "create_rune_earthshaper", 1 ] ] + "spells_learned": [ [ "create_rune_earthshaper", 0 ] ] }, { "type": "mutation", @@ -81,7 +84,7 @@ "purifiable": false, "valid": false, "cancels": [ "DRUID" ], - "spells_learned": [ [ "create_rune_biomancer", 1 ] ] + "spells_learned": [ [ "create_rune_biomancer", 0 ] ] }, { "type": "mutation", @@ -93,6 +96,7 @@ "purifiable": false, "valid": false, "cancels": [ "BIOMANCER" ], - "spells_learned": [ [ "create_rune_druid", 1 ] ] + "flags": [ "TREE_COMMUNION_PLUS" ], + "spells_learned": [ [ "create_rune_druid", 0 ] ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/traits/fantasy_species.json b/data/Mainline_mods/Mods/Magiclysm/traits/fantasy_species.json new file mode 100644 index 000000000..6a0c6b76f --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/traits/fantasy_species.json @@ -0,0 +1,140 @@ +[ + { + "type": "profession", + "subtype": "hobby", + "id": "hobby_species_elf", + "name": "Elf (Species)", + "description": "You are one of the Firstborn, called \"alfar\" or \"sidhe\" or, more recently, \"elves\" by the humans. Your people had integrated into human society before the Cataclysm, doing jobs involving animals and nature since modern industry was never to your liking. Had technological development continued, you might have been forced to make some unpleasant compromises, but not as unpleasant as you have during the end of the world.", + "points": 4, + "proficiencies": [ "prof_spotting" ], + "traits": [ + "THRESH_SPECIES_ELF", + "ANIMALEMPATH2", + "ELVEN_BUILD", + "ELFA_NV", + "ELVEN_BEAUTY", + "ELVEN_SLEEP", + "ELFA_EARS", + "ELVEN_HEARING", + "LIGHTSTEP", + "WILDWALKER", + "ANTIJUNK", + "FLIMSY", + "WEAKSTOMACH", + "PALE", + "DISIMMUNE", + "PICKYEATER" + ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "hobby_species_dwarf", + "name": "Dwarf (Species)", + "description": "You are a Child of the Stone, called \"dwarf\" by the humans. The legends tell that long ago, your people were born of stone and mined your way up to the surface world and its light, where you found the other sapient species of Earth. While the scale of the human world was always a bit of a problem, you fit in well due to your people's long tradition of craftsdwarfship and hard work. Now that society has collapsed, maybe you can turn that same drive to rebuilding it.", + "points": 4, + "traits": [ + "THRESH_SPECIES_DWARF", + "DARKSIGHT", + "NIGHTVISION2", + "DWARVEN_BUILD", + "PAINRESIST", + "INFRESIST", + "DISRESISTANT", + "BORN_ARTISAN", + "ALCMET", + "TOLERANCE", + "GOODCARDIO", + "DENSE_BONES", + "TUNNEL_FIGHTER", + "TROGLO", + "HIRSUTE", + "GOURMAND", + "SMELLY", + "HEAVYSLEEPER2" + ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "hobby_species_goblin", + "name": "Goblin (Species)", + "description": "You are a goblin. Before the Cataclysm your people were always a little out of place: the houses weren't designed for you, the shops weren't open when you were awake, and your appearance sometimes gave human or elven children nightmares that you were going to steal them or reminded dwarves of the ancient wars your peoples fought. As it turned out, you weren't what any of them should have been worrying about.", + "points": 4, + "traits": [ + "THRESH_SPECIES_GOBLIN", + "DARKSIGHT", + "GOBLIN_BUILD", + "GOBLIN_TEETH", + "NIGHTVISION3", + "SAPROVORE", + "SNOUT", + "NAILS", + "THICKSKIN", + "PAINREC2", + "GOODCARDIO", + "EATPOISON", + "TUNNEL_FIGHTER", + "NOCTURNAL", + "MOODSWINGS", + "TROGLO2" + ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "hobby_species_lizardfolk", + "name": "Lizardfolk (Species)", + "description": "You are one of the Scaled Ones, called \"lizardfolk\" by the warmbloods. For generations, your tribe served a dragon as its eyes and ears in the outside world, until civilization encroached far enough that even all the dragon's might could not hold it back. You were sent out to integrate into the modern world, but you were only there a few years before human science ended their world. Now, you have to survive in the mess they've created.", + "points": 4, + "skills": [ { "level": 2, "name": "swimming" } ], + "traits": [ + "THRESH_SPECIES_LIZARDFOLK", + "LIZARDFOLK_BUILD", + "SCALES", + "MEMBRANE", + "COLDBLOOD4_LIZ", + "FORKED_TONGUE", + "HISS", + "GILLS", + "ANTIWHEAT", + "ANTIJUNK", + "TAIL_THICK", + "RESISTWARM", + "LIZ_EYE", + "REGEN_LIZ", + "MUZZLE_LONG", + "WEBBED_LIZ_FEET", + "TALONS", + "SLIT_NOSTRILS", + "PRED_LIZ" + ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "hobby_species_ravenfolk", + "name": "Ravenfolk (Species)", + "description": "You are one of the Kor'uru, called \"ravenfolk\" by those who can't make the appropriate clacking sound due to their lack of beak. While your people could not fly without the aid of magic, you were always drawn to explore the world, and had traveled to nearly every country and continent even before modern society made such travel easy. You were well-integrated into society at all levels…and that made you just as vulnerable as everyone else when it fell.", + "points": 4, + "proficiencies": [ "prof_spotting" ], + "traits": [ + "THRESH_SPECIES_RAVENFOLK", + "RAVENFOLK_BUILD", + "WINGS_BIRD", + "DOWN", + "BEAK_RAVEN", + "RAVENFOLK_LEGS", + "PER_UP_3", + "FLEET", + "FEATHERS", + "GOODMEMORY", + "EAGLEEYED", + "TALONS", + "LIGHT_BONES", + "RAVEN_BONES", + "NOMAD", + "HOARDER" + ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/traits/manatouched.json b/data/Mainline_mods/Mods/Magiclysm/traits/manatouched.json index 3f5ae496c..ef13890be 100644 --- a/data/Mainline_mods/Mods/Magiclysm/traits/manatouched.json +++ b/data/Mainline_mods/Mods/Magiclysm/traits/manatouched.json @@ -46,7 +46,7 @@ "type": "mutation", "id": "MANA_SUBTLE_SPELL", "name": { "str": "Subtle Spell" }, - "description": "You no longer need to move your arms to cast spells, due to your ley lines becoming untethered from your arms. Arm encumbrance no longer applies to spell failure chance.", + "description": "You no longer need to move your arms to cast spells, due to your ley lines becoming untethered from your arms. Hand and arm encumbrance no longer applies to spells, and you can cast regardless of wielded objects.", "points": 3, "lumination": [ [ "arm_r", 4 ], [ "arm_l", 4 ] ], "threshreq": [ "THRESH_MANA" ], @@ -58,7 +58,7 @@ "type": "mutation", "id": "MANA_SILENT_SPELL", "name": { "str": "Silent Spell" }, - "description": "You no longer need to use your voice to enforce your will upon the world. Mouth encumbrance no longer applies to spell failure chance.", + "description": "You no longer need to use your voice to enforce your will upon the world. Verbal spells do not require an incantation, and mouth encumbrance no longer applies to spell failure chance.", "points": 3, "lumination": [ [ "mouth", 4 ] ], "threshreq": [ "THRESH_MANA" ], @@ -73,20 +73,21 @@ "passive_mods": { "str_mod": -2 }, "points": -1, "description": "Your body is unnaturally weak. -2 Strength.", - "category": [ "MANATOUCHED", "RAT", "BIRD", "SLIME" ], + "types": [ "STR" ], + "category": [ "MANATOUCHED", "RAT", "BIRD", "SLIME", "SPECIES_ELF" ], "cancels": [ "STR_UP", "STR_UP_2", "STR_UP_3", "STR_UP_4", "STR_ALPHA" ] }, { "id": "STR_UP", "type": "mutation", "copy-from": "STR_UP", - "extend": { "cancels": [ "WEAK" ] } + "extend": { "cancels": [ "WEAK" ], "category": [ "SPECIES_LIZARDFOLK", "SPECIES_DWARF" ] } }, { "id": "STR_UP_2", "type": "mutation", "copy-from": "STR_UP_2", - "extend": { "cancels": [ "WEAK" ] } + "extend": { "cancels": [ "WEAK" ], "category": [ "SPECIES_DWARF" ] } }, { "id": "STR_UP_3", @@ -120,7 +121,7 @@ "type": "mutation", "id": "PALE", "copy-from": "PALE", - "extend": { "category": [ "MANATOUCHED" ] } + "extend": { "category": [ "MANATOUCHED", "SPECIES_ELF" ] } }, { "type": "mutation", @@ -182,8 +183,9 @@ "name": { "str": "Mana Siphon" }, "points": 1, "description": "Violence excites your ley lines. Whenever you hit an enemy in melee, you have a chance of regaining some mana.", - "category": [ "MANATOUCHED", "DRAGON_BLACK" ], - "threshreq": [ "THRESH_MANA", "THRESH_DRAGON_BLACK" ], + "category": [ "MANATOUCHED", "DRAGON_BLACK", "SPECIES_ELF" ], + "threshreq": [ "THRESH_MANA", "THRESH_DRAGON_BLACK", "THRESH_SPECIES_ELF" ], + "types": [ "MANA_SIPHON" ], "changes_to": [ "MANA_SIPHON_2" ], "enchantments": [ "ench_mana_siphon_1" ] }, @@ -196,6 +198,7 @@ "category": [ "MANATOUCHED", "DRAGON_BLACK" ], "threshreq": [ "THRESH_MANA", "THRESH_DRAGON_BLACK" ], "prereqs": [ "MANA_SIPHON_1" ], + "types": [ "MANA_SIPHON" ], "changes_to": [ "MANA_SIPHON_3" ], "enchantments": [ "ench_mana_siphon_2" ] }, @@ -207,6 +210,7 @@ "description": "Violence excites your ley lines. Whenever you hit an enemy in melee, you have a chance of regaining some mana.", "category": [ "MANATOUCHED", "DRAGON_BLACK" ], "threshreq": [ "THRESH_MANA", "THRESH_DRAGON_BLACK" ], + "types": [ "MANA_SIPHON" ], "prereqs": [ "MANA_SIPHON_2" ], "enchantments": [ "ench_mana_siphon_3" ] }, @@ -253,19 +257,19 @@ "type": "mutation", "id": "BADBACK", "copy-from": "BADBACK", - "extend": { "category": [ "MANATOUCHED" ] } + "extend": { "category": [ "MANATOUCHED", "SPECIES_RAVENFOLK" ] } }, { "type": "mutation", "id": "LIGHTWEIGHT", "copy-from": "LIGHTWEIGHT", - "extend": { "category": [ "MANATOUCHED" ] } + "extend": { "category": [ "MANATOUCHED", "SPECIES_RAVENFOLK" ] } }, { "type": "mutation", "id": "LIGHT_BONES", "copy-from": "LIGHT_BONES", - "extend": { "category": [ "MANATOUCHED" ] } + "extend": { "category": [ "MANATOUCHED", "SPECIES_RAVENFOLK" ] } }, { "type": "mutation", @@ -278,14 +282,14 @@ "id": "FASTREADER", "copy-from": "FASTREADER", "valid": true, - "extend": { "category": [ "MANATOUCHED" ] } + "extend": { "category": [ "MANATOUCHED", "SPECIES_RAVENFOLK" ] } }, { "type": "mutation", "id": "GOODMEMORY", "copy-from": "GOODMEMORY", "valid": true, - "extend": { "category": [ "MANATOUCHED" ] } + "extend": { "category": [ "MANATOUCHED", "SPECIES_LIZARDFOLK", "SPECIES_RAVENFOLK" ] } }, { "type": "mutation", @@ -313,6 +317,6 @@ "id": "MORE_PAIN", "copy-from": "MORE_PAIN", "valid": true, - "extend": { "category": [ "MANATOUCHED" ] } + "extend": { "category": [ "MANATOUCHED", "SPECIES_ELF" ] } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/traits/mutation.json b/data/Mainline_mods/Mods/Magiclysm/traits/mutation.json index ff50b6366..9776e2cbd 100644 --- a/data/Mainline_mods/Mods/Magiclysm/traits/mutation.json +++ b/data/Mainline_mods/Mods/Magiclysm/traits/mutation.json @@ -11,6 +11,40 @@ "type": "mutation_type", "id": "MANA_REGEN" }, + { + "type": "mutation_type", + "id": "MANA_SIPHON" + }, + { + "//": "Catch-all dummy trait for Magiclysm mutations.", + "type": "mutation", + "id": "HUMAN_MAGIC", + "name": { "str": "Human Magic" }, + "points": 0, + "player_display": false, + "dummy": true, + "category": [ "HUMAN" ], + "types": [ "MANA_ADD", "MANA_MULT", "MANA_REGEN", "MANA_SIPHON" ], + "cancels": [ + "FASTREADER", + "HOARDER", + "LOVES_BOOKS", + "SAVANT", + "WEAK", + "MIRROR_DISPLACEMENT", + "MANA_CRYST_MANA", + "MANA_SEEKER_BOLTS", + "MANA_SUBTLE_SPELL", + "MANA_SILENT_SPELL", + "MANA_LUM", + "OVERLY_ACID_GUT", + "DRAGON_BREATH_BLACK", + "DRAGON_SPELLS", + "CHIMERIC_BREATH", + "SLIME_BREATH" + ], + "description": "Your body is depressingly mundane." + }, { "type": "mutation", "id": "MANA_ADD1", @@ -20,7 +54,7 @@ "cancels": [ "MANA_SUB1", "MANA_SUB2", "MANA_SUB3" ], "changes_to": [ "MANA_ADD2" ], "types": [ "MANA_ADD" ], - "category": [ "DRAGON_BLACK", "MANATOUCHED" ], + "category": [ "DRAGON_BLACK", "MANATOUCHED", "SPECIES_ELF", "SPECIES_RAVENFOLK" ], "starting_trait": true, "flags": [ "NON_THRESH" ], "mana_modifier": 500 @@ -34,7 +68,7 @@ "cancels": [ "MANA_SUB1", "MANA_SUB2", "MANA_SUB3" ], "changes_to": [ "MANA_ADD3" ], "types": [ "MANA_ADD" ], - "category": [ "DRAGON_BLACK", "MANATOUCHED" ], + "category": [ "DRAGON_BLACK", "MANATOUCHED", "SPECIES_ELF" ], "starting_trait": true, "prereqs": [ "MANA_ADD1" ], "flags": [ "NON_THRESH" ], @@ -62,6 +96,7 @@ "description": "You are able to store a little less mana in your body than usual.", "cancels": [ "MANA_ADD1", "MANA_ADD2", "MANA_ADD3" ], "changes_to": [ "MANA_SUB2" ], + "category": [ "SPECIES_DWARF", "SPECIES_GOBLIN" ], "types": [ "MANA_ADD" ], "flags": [ "NON_THRESH" ], "mana_modifier": -500 @@ -100,7 +135,7 @@ "cancels": [ "BAD_MANA_REGEN1", "BAD_MANA_REGEN2", "BAD_MANA_REGEN3" ], "changes_to": [ "MANA_REGEN2" ], "types": [ "MANA_REGEN" ], - "category": [ "FISH", "ELFA", "ALPHA", "PLANT", "CEPHALOPOD", "MANATOUCHED", "DRAGON_BLACK" ], + "category": [ "FISH", "ELFA", "ALPHA", "PLANT", "CEPHALOPOD", "MANATOUCHED", "DRAGON_BLACK", "SPECIES_ELF", "SPECIES_LIZARDFOLK" ], "starting_trait": true, "flags": [ "NON_THRESH" ], "mana_regen_multiplier": 1.1 @@ -115,7 +150,7 @@ "cancels": [ "BAD_MANA_REGEN1", "BAD_MANA_REGEN2", "BAD_MANA_REGEN3" ], "changes_to": [ "MANA_REGEN3", "MANA_REGEN_MANATOUCHED" ], "types": [ "MANA_REGEN" ], - "category": [ "FISH", "ELFA", "PLANT", "MANATOUCHED", "DRAGON_BLACK" ], + "category": [ "FISH", "ELFA", "PLANT", "MANATOUCHED", "DRAGON_BLACK", "SPECIES_ELF" ], "starting_trait": true, "flags": [ "NON_THRESH" ], "mana_regen_multiplier": 1.25 @@ -129,8 +164,8 @@ "prereqs": [ "MANA_REGEN2" ], "cancels": [ "BAD_MANA_REGEN1", "BAD_MANA_REGEN2", "BAD_MANA_REGEN3" ], "types": [ "MANA_REGEN" ], - "threshreq": [ "THRESH_PLANT", "THRESH_MANA", "THRESH_DRAGON_BLACK" ], - "category": [ "PLANT", "DRAGON_BLACK" ], + "threshreq": [ "THRESH_PLANT", "THRESH_MANA", "THRESH_DRAGON_BLACK", "THRESH_SPECIES_ELF" ], + "category": [ "PLANT", "DRAGON_BLACK", "SPECIES_ELF" ], "flags": [ "NON_THRESH" ], "mana_regen_multiplier": 1.5 }, @@ -143,7 +178,7 @@ "cancels": [ "MANA_REGEN1", "MANA_REGEN2", "MANA_REGEN3" ], "changes_to": [ "BAD_MANA_REGEN2" ], "types": [ "MANA_REGEN" ], - "category": [ "LIZARD", "BEAST", "LUPINE", "URSINE", "CATTLE", "SLIME", "MEDICAL", "CHIMERA" ], + "category": [ "LIZARD", "BEAST", "LUPINE", "URSINE", "CATTLE", "SLIME", "MEDICAL", "CHIMERA", "SPECIES_GOBLIN" ], "starting_trait": true, "flags": [ "NON_THRESH" ], "mana_regen_multiplier": 0.9 @@ -196,7 +231,9 @@ "ALPHA", "ELFA", "MANATOUCHED", - "DRAGON_BLACK" + "DRAGON_BLACK", + "SPECIES_ELF", + "SPECIES_RAVENFOLK" ], "starting_trait": true, "flags": [ "NON_THRESH" ], @@ -211,7 +248,7 @@ "cancels": [ "BAD_MANA_MULT1", "BAD_MANA_MULT2", "BAD_MANA_MULT3" ], "changes_to": [ "MANA_MULT3" ], "types": [ "MANA_MULT" ], - "category": [ "BIRD", "SLIME", "CATTLE", "PLANT", "CEPHALOPOD", "ELFA", "MANATOUCHED", "DRAGON_BLACK" ], + "category": [ "BIRD", "SLIME", "CATTLE", "PLANT", "CEPHALOPOD", "ELFA", "MANATOUCHED", "DRAGON_BLACK", "SPECIES_ELF" ], "prereqs": [ "MANA_MULT1" ], "starting_trait": true, "flags": [ "NON_THRESH" ], @@ -240,7 +277,20 @@ "cancels": [ "MANA_MULT1", "MANA_MULT2", "MANA_MULT3" ], "changes_to": [ "BAD_MANA_MULT2" ], "types": [ "MANA_MULT" ], - "category": [ "BEAST", "FISH", "LUPINE", "INSECT", "TROGLOBITE", "SPIDER", "RAT", "MOUSE", "MEDICAL", "CHIMERA", "RAPTOR" ], + "category": [ + "BEAST", + "FISH", + "LUPINE", + "INSECT", + "TROGLOBITE", + "SPIDER", + "RAT", + "MOUSE", + "MEDICAL", + "CHIMERA", + "RAPTOR", + "SPECIES_DWARF" + ], "starting_trait": true, "flags": [ "NON_THRESH" ], "mana_multiplier": 0.85 @@ -254,7 +304,7 @@ "cancels": [ "MANA_MULT1", "MANA_MULT2", "MANA_MULT3" ], "changes_to": [ "BAD_MANA_MULT3" ], "types": [ "MANA_MULT" ], - "category": [ "BEAST", "INSECT", "TROGLOBITE", "MOUSE", "MEDICAL", "CHIMERA", "RAPTOR" ], + "category": [ "BEAST", "INSECT", "TROGLOBITE", "MOUSE", "MEDICAL", "CHIMERA", "RAPTOR", "SPECIES_DWARF" ], "prereqs": [ "BAD_MANA_MULT1" ], "flags": [ "NON_THRESH" ], "mana_multiplier": 0.65 diff --git a/data/Mainline_mods/Mods/Magiclysm/traits/temporary_demon_traits.json b/data/Mainline_mods/Mods/Magiclysm/traits/temporary_demon_traits.json index d3829771b..90e6e1fde 100644 --- a/data/Mainline_mods/Mods/Magiclysm/traits/temporary_demon_traits.json +++ b/data/Mainline_mods/Mods/Magiclysm/traits/temporary_demon_traits.json @@ -36,8 +36,8 @@ "restricts_gear": [ "foot_l", "foot_r" ], "armor": [ { "parts": [ "foot_l", "foot_r" ], "bash": 1 }, { "parts": [ "leg_l", "leg_r" ], "cut": 1 } ], "attacks": { - "attack_text_u": "You kick %s with your hooves", - "attack_text_npc": "%1$s kicks %2$s with their hooves", + "attack_text_u": "You kick %s with your hooves!", + "attack_text_npc": "%1$s kicks %2$s with their hooves!", "chance": 15, "strength_damage": { "damage_type": "bash", "amount": 3 } } diff --git a/data/Mainline_mods/Mods/Magiclysm/vehicleparts/frames.json b/data/Mainline_mods/Mods/Magiclysm/vehicleparts/frames.json index dffed89eb..1eb64096f 100644 --- a/data/Mainline_mods/Mods/Magiclysm/vehicleparts/frames.json +++ b/data/Mainline_mods/Mods/Magiclysm/vehicleparts/frames.json @@ -1,12 +1,11 @@ [ { "id": "light_orichalcum_frame", - "copy-from": "orichalcum_frame", + "copy-from": "frame_orichalcum", "looks_like": "orichalcum_frame", "type": "vehicle_part", "name": "light orichalcum frame", "item": "light_orichalcum_frame", - "standard_symbols": true, "durability": 600, "description": "A slimmed magical metal framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size.", "breaks_into": "light_orichalcum_frame_break", @@ -15,16 +14,14 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "8 m", "using": "vehicle_weld_removal" }, "repair": { "skills": [ [ "mechanics", 2 ] ], "time": "4 m", "using": [ [ "welding_standard", 4 ] ] } }, - "flags": [ "INITIAL_PART", "MOUNTABLE" ], "damage_reduction": { "all": 30 } }, { "id": "folding_orichalcum_frame", "type": "vehicle_part", + "copy-from": "frame_orichalcum", "name": "foldable orichalcum frame", "item": "fold_orichalcum_frame", - "location": "structure", - "symbol": "h", "durability": 250, "description": "A light metal framework, designed to fold. Other vehicle components can be mounted on it. If all the frames and components of a vehicle are foldable, the vehicle can be folding into a small package and picked up as a normal item.", "folded_volume": "5 L", @@ -34,17 +31,15 @@ "removal": { "skills": [ [ "mechanics", 2 ], [ "spellcraft", 1 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ], [ "spellcraft", 1 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "INITIAL_PART", "MOUNTABLE", "FOLDABLE" ], - "categories": [ "hull" ], "damage_reduction": { "all": 12 } }, { - "abstract": "orichalcum_frame", + "id": "frame_orichalcum", "type": "vehicle_part", + "copy-from": "frame_abstract", "name": "orichalcum frame", "item": "orichalcum_frame", - "location": "structure", - "symbol": "c", + "looks_like": "orichalcum_frame", "durability": 2000, "description": "An expensive magical metal framework. Other vehicle components can be mounted on it, and it can be attached to other frames to increase the vehicle's size.", "breaks_into": "orichalcum_frame_break", @@ -53,69 +48,6 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "10 m", "using": "vehicle_weld_removal" }, "repair": { "skills": [ [ "mechanics", 2 ] ], "time": "5 m", "using": [ [ "welding_standard", 5 ] ] } }, - "flags": [ "MOUNTABLE" ], - "categories": [ "hull" ], "damage_reduction": { "all": 50 } - }, - { - "id": "frame_orichalcum_cover", - "copy-from": "orichalcum_frame", - "type": "vehicle_part", - "symbol": "^" - }, - { - "id": "frame_orichalcum_cross", - "copy-from": "orichalcum_frame", - "type": "vehicle_part", - "symbol": "c", - "extend": { "flags": [ "INITIAL_PART" ] } - }, - { - "id": "frame_orichalcum_horizontal", - "copy-from": "orichalcum_frame", - "type": "vehicle_part", - "symbol": "h" - }, - { - "id": "frame_orichalcum_horizontal_2", - "copy-from": "orichalcum_frame", - "type": "vehicle_part", - "symbol": "=" - }, - { - "id": "frame_orichalcum_ne", - "copy-from": "orichalcum_frame", - "type": "vehicle_part", - "symbol": "u" - }, - { - "id": "frame_orichalcum_nw", - "copy-from": "orichalcum_frame", - "type": "vehicle_part", - "symbol": "y" - }, - { - "id": "frame_orichalcum_se", - "copy-from": "orichalcum_frame", - "type": "vehicle_part", - "symbol": "n" - }, - { - "id": "frame_orichalcum_sw", - "copy-from": "orichalcum_frame", - "type": "vehicle_part", - "symbol": "b" - }, - { - "id": "frame_orichalcum_vertical", - "copy-from": "orichalcum_frame", - "type": "vehicle_part", - "symbol": "j" - }, - { - "id": "frame_orichalcum_vertical_2", - "copy-from": "orichalcum_frame", - "type": "vehicle_part", - "symbol": "H" } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/vehicleparts/vehicle_parts.json b/data/Mainline_mods/Mods/Magiclysm/vehicleparts/vehicle_parts.json index 910438667..851978fce 100644 --- a/data/Mainline_mods/Mods/Magiclysm/vehicleparts/vehicle_parts.json +++ b/data/Mainline_mods/Mods/Magiclysm/vehicleparts/vehicle_parts.json @@ -26,9 +26,9 @@ "type": "vehicle_part", "item": "v2_combustion_magic", "durability": 200, - "epower": -50, - "power": 37300, - "energy_consumption": 124500, + "epower": "-50 W", + "power": "37300 W", + "energy_consumption": "124500 W", "folded_volume": "2 L", "breaks_into": [ { "item": "steel_lump", "count": [ 10, 20 ] }, @@ -40,7 +40,28 @@ "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } }, - "extend": { "flags": [ "FOLDABLE" ] }, - "damage_reduction": { "all": 60 } + "damage_reduction": { "all": 60 }, + "extend": { "flags": [ "NO_INSTALL_HIDDEN" ] } + }, + { + "id": "ap_everburning_sconce", + "type": "vehicle_part", + "name": { "str": "everburning torch sconce" }, + "description": "An everburning torch that has been placed into a sconce for easy attachment to a wall.", + "item": "everburning_sconce", + "categories": [ "lighting" ], + "color": "red", + "broken_color": "blue", + "durability": 20, + "bonus": 60, + "damage_modifier": 10, + "breaks_into": [ + { "item": "splinter", "count": [ 2, 8 ] }, + { "item": "scrap", "count": [ 1, 4 ] }, + { "item": "mtorch_everburning", "count": [ 0, 1 ] } + ], + "flags": [ "WALL_MOUNTED", "HALF_CIRCLE_LIGHT", "APPLIANCE" ], + "requirements": { "removal": { "time": "15 m" } }, + "variants": [ { "symbols": "*", "symbols_broken": "-" } ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/vehicles/summoned_vehicles.json b/data/Mainline_mods/Mods/Magiclysm/vehicles/summoned_vehicles.json index 1a812eaf4..72ec4a726 100644 --- a/data/Mainline_mods/Mods/Magiclysm/vehicles/summoned_vehicles.json +++ b/data/Mainline_mods/Mods/Magiclysm/vehicles/summoned_vehicles.json @@ -15,13 +15,13 @@ "weight": "500 g", "volume": "500 ml", "price": 1, - "bashing": 8, "to_hit": -4, "material": [ "steel" ], "symbol": "]", "color": "light_gray", "diameter": 20, - "width": 10 + "width": 10, + "melee_damage": { "bash": 8 } }, { "id": "magic_motorcycle", @@ -29,10 +29,10 @@ "name": "Mojocycle", "blueprint": [ "o#>o" ], "parts": [ - { "x": 0, "y": 0, "parts": [ "frame_vertical_2", "saddle_motor", "motorcycle_kickstand" ] }, + { "x": 0, "y": 0, "parts": [ "frame#vertical_2", "saddle#motor", "motorcycle_kickstand" ] }, { "x": 1, "y": 0, "parts": [ "frame_handle" ] }, - { "x": -1, "y": 0, "parts": [ "frame_vertical", "wheel_mount_light", "wheel_motorbike" ] }, - { "x": 2, "y": 0, "parts": [ "frame_vertical", "wheel_mount_light_steerable", "wheel_motorbike" ] }, + { "x": -1, "y": 0, "parts": [ "frame#vertical", "wheel_mount_light", "wheel_motorbike" ] }, + { "x": 2, "y": 0, "parts": [ "frame#vertical", "wheel_mount_light_steerable", "wheel_motorbike" ] }, { "x": 0, "y": 0, "parts": [ "controls", "controls_electronic", "vehicle_alarm" ] }, { "x": 0, "y": 0, "parts": [ "horn_car", "engine_vtwin_magic", "alternator_motorbike" ] }, { "x": 1, "y": 0, "parts": [ "headlight", "battery_motorbike" ] }, @@ -42,12 +42,10 @@ { "type": "vehicle_part", "id": "mana_frame", + "copy-from": "frame_abstract", "name": "mana frame", - "symbol": "O", - "categories": [ "movement", "hull" ], + "breaks_into": "EMPTY_GROUP", "color": "magenta", - "broken_symbol": "M", - "broken_color": "red", "damage_modifier": 10, "noise_factor": 1, "fuel_type": "mana", @@ -55,20 +53,13 @@ "item": "mana_wheel", "m2c": 90, "rolling_resistance": 0.45, - "wheel_type": "standard", + "wheel_terrain_modifiers": { "FLAT": [ 0, 4 ], "ROAD": [ 0, 2 ] }, "contact_area": 20, "description": "A shape of pure mana that can float and carry items.", - "size": 150, - "power": 200, - "location": "structure", - "//": "This should not be interactable nor visible as a vehicle part, its part of a summoned magic 'vehicle'", - "requirements": { - "install": { "skills": [ [ "mechanics", 20 ], [ "spellcraft", 1 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] }, - "removal": { "skills": [ [ "mechanics", 20 ], [ "spellcraft", 1 ] ], "time": "30 m", "using": [ [ "vehicle_weld_removal", 1 ] ] }, - "repair": { "skills": [ [ "mechanics", 20 ], [ "spellcraft", 1 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } - }, + "size": "37500 ml", + "power": "200 W", "flags": [ - "INITIAL_PART", + "NO_INSTALL_HIDDEN", "ENGINE", "STABLE", "E_STARTS_INSTANTLY", @@ -99,13 +90,13 @@ "description": "Seeing this is a bug.", "weight": "10 g", "volume": "10 ml", - "bashing": 1, "phase": "solid", "material": [ "mana" ], "flags": [ "PSEUDO", "PERPETUAL" ], "symbol": "?", "color": "magenta", "count": 1, - "ammo_type": "mana" + "ammo_type": "mana", + "melee_damage": { "bash": 1 } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/vehicles/vans_busses.json b/data/Mainline_mods/Mods/Magiclysm/vehicles/vans_busses.json index 21b18c7c2..ff811df62 100644 --- a/data/Mainline_mods/Mods/Magiclysm/vehicles/vans_busses.json +++ b/data/Mainline_mods/Mods/Magiclysm/vehicles/vans_busses.json @@ -13,78 +13,78 @@ [ " o " ] ], "parts": [ - { "x": 0, "y": 0, "parts": [ "frame_orichalcum_cross", "seat", "seatbelt", "hdroof", "controls" ] }, - { "x": 0, "y": 0, "parts": [ "stereo", "dashboard", "vehicle_alarm", "vehicle_clock" ] }, - { "x": 0, "y": 0, "part": "horn_car" }, - { "x": 0, "y": -1, "parts": [ "frame_orichalcum_vertical", "hddoor_left", "hdroof" ] }, - { "x": 0, "y": -1, "part": "plating_steel" }, - { "x": 0, "y": 1, "parts": [ "frame_orichalcum_cross", "hdroof", "box" ] }, - { "x": 0, "y": 2, "parts": [ "frame_orichalcum_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": 0, "y": 3, "parts": [ "frame_orichalcum_vertical", "hddoor_right", "hdroof" ] }, - { "x": 0, "y": 3, "part": "plating_steel" }, - { "x": 1, "y": -1, "parts": [ "frame_orichalcum_nw", "reinforced_windshield_nw", "plating_steel" ] }, - { "x": 1, "y": -2, "part": "wing_mirror_left" }, - { "x": 1, "y": 0, "part": "frame_orichalcum_horizontal" }, - { "x": 1, "y": 0, "parts": [ "reinforced_windshield_horizontal_front", "wide_headlight" ] }, - { "x": 1, "y": 0, "part": "plating_steel" }, - { "x": 1, "y": 1, "part": "frame_orichalcum_horizontal" }, - { "x": 1, "y": 1, "parts": [ "reinforced_windshield_horizontal_front", "plating_steel" ] }, + { "x": 0, "y": 0, "parts": [ "frame_orichalcum#cross", "seat", "seatbelt", "hdroof", "controls" ] }, + { "x": 0, "y": 0, "parts": [ "stereo", "dashboard", "vehicle_alarm" ] }, + { "x": 0, "y": 0, "parts": [ "horn_car" ] }, + { "x": 0, "y": -1, "parts": [ "frame_orichalcum#vertical", "hddoor#left", "hdroof" ] }, + { "x": 0, "y": -1, "parts": [ "plating_steel" ] }, + { "x": 0, "y": 1, "parts": [ "frame_orichalcum#cross", "hdroof", "box" ] }, + { "x": 0, "y": 2, "parts": [ "frame_orichalcum#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": 0, "y": 3, "parts": [ "frame_orichalcum#vertical", "hddoor#right", "hdroof" ] }, + { "x": 0, "y": 3, "parts": [ "plating_steel" ] }, + { "x": 1, "y": -1, "parts": [ "frame_orichalcum#nw", "reinforced_windshield#nw", "plating_steel" ] }, + { "x": 1, "y": -2, "parts": [ "wing_mirror#left" ] }, + { "x": 1, "y": 0, "parts": [ "frame_orichalcum#horizontal" ] }, + { "x": 1, "y": 0, "parts": [ "reinforced_windshield#horizontal_front", "wide_headlight" ] }, + { "x": 1, "y": 0, "parts": [ "plating_steel" ] }, + { "x": 1, "y": 1, "parts": [ "frame_orichalcum#horizontal" ] }, + { "x": 1, "y": 1, "parts": [ "reinforced_windshield#horizontal_front", "plating_steel" ] }, { "x": 1, "y": 1, "parts": [ "diesel_engine_v6", "alternator_truck", "battery_car" ] }, - { "x": 1, "y": 2, "part": "frame_orichalcum_horizontal" }, - { "x": 1, "y": 2, "parts": [ "reinforced_windshield_horizontal_front", "wide_headlight" ] }, - { "x": 1, "y": 2, "part": "plating_steel" }, - { "x": 1, "y": 3, "parts": [ "frame_orichalcum_ne", "reinforced_windshield_ne", "plating_steel" ] }, - { "x": 1, "y": 4, "part": "wing_mirror_right" }, - { "x": 2, "y": -1, "parts": [ "frame_orichalcum_nw", "hdhalfboard_nw", "plating_steel" ] }, + { "x": 1, "y": 2, "parts": [ "frame_orichalcum#horizontal" ] }, + { "x": 1, "y": 2, "parts": [ "reinforced_windshield#horizontal_front", "wide_headlight" ] }, + { "x": 1, "y": 2, "parts": [ "plating_steel" ] }, + { "x": 1, "y": 3, "parts": [ "frame_orichalcum#ne", "reinforced_windshield#ne", "plating_steel" ] }, + { "x": 1, "y": 4, "parts": [ "wing_mirror#right" ] }, + { "x": 2, "y": -1, "parts": [ "frame_orichalcum#nw", "hdhalfboard#nw", "plating_steel" ] }, { "x": 2, "y": -1, "parts": [ "wheel_mount_medium_steerable", "wheel_wide" ] }, - { "x": 2, "y": 0, "parts": [ "frame_orichalcum_horizontal", "hdhalfboard_horizontal_front" ] }, + { "x": 2, "y": 0, "parts": [ "frame_orichalcum#horizontal", "hdhalfboard#horizontal_front" ] }, { "x": 2, "y": 0, "parts": [ "plating_steel", "headlight_reinforced" ] }, - { "x": 2, "y": 1, "parts": [ "frame_orichalcum_horizontal", "hdhalfboard_horizontal_front" ] }, - { "x": 2, "y": 1, "part": "plating_steel" }, - { "x": 2, "y": 2, "parts": [ "frame_orichalcum_horizontal", "hdhalfboard_horizontal_front" ] }, + { "x": 2, "y": 1, "parts": [ "frame_orichalcum#horizontal", "hdhalfboard#horizontal_front" ] }, + { "x": 2, "y": 1, "parts": [ "plating_steel" ] }, + { "x": 2, "y": 2, "parts": [ "frame_orichalcum#horizontal", "hdhalfboard#horizontal_front" ] }, { "x": 2, "y": 2, "parts": [ "plating_steel", "headlight_reinforced" ] }, - { "x": 2, "y": 3, "parts": [ "frame_orichalcum_ne", "hdhalfboard_ne", "plating_steel" ] }, + { "x": 2, "y": 3, "parts": [ "frame_orichalcum#ne", "hdhalfboard#ne", "plating_steel" ] }, { "x": 2, "y": 3, "parts": [ "wheel_mount_medium_steerable", "wheel_wide" ] }, - { "x": -1, "y": -1, "parts": [ "frame_orichalcum_vertical", "hdboard_nw", "hdroof" ] }, + { "x": -1, "y": -1, "parts": [ "frame_orichalcum#vertical", "hdboard#nw", "hdroof" ] }, { "x": -1, "y": -1, "parts": [ "plating_steel", { "part": "tank", "fuel": "diesel" } ] }, - { "x": -1, "y": 0, "parts": [ "frame_orichalcum_cross", "hdboard_horizontal_front", "hdroof" ] }, - { "x": -1, "y": 0, "part": "plating_steel" }, - { "x": -1, "y": 1, "parts": [ "frame_orichalcum_cross", "hdboard_horizontal_front", "hdroof" ] }, - { "x": -1, "y": 1, "part": "plating_steel" }, - { "x": -1, "y": 2, "parts": [ "frame_orichalcum_cross", "hdboard_horizontal_front", "hdroof" ] }, - { "x": -1, "y": 2, "part": "plating_steel" }, - { "x": -1, "y": 3, "parts": [ "frame_orichalcum_vertical", "hdboard_ne", "hdroof" ] }, + { "x": -1, "y": 0, "parts": [ "frame_orichalcum#cross", "hdboard#horizontal_front", "hdroof" ] }, + { "x": -1, "y": 0, "parts": [ "plating_steel" ] }, + { "x": -1, "y": 1, "parts": [ "frame_orichalcum#cross", "hdboard#horizontal_front", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "plating_steel" ] }, + { "x": -1, "y": 2, "parts": [ "frame_orichalcum#cross", "hdboard#horizontal_front", "hdroof" ] }, + { "x": -1, "y": 2, "parts": [ "plating_steel" ] }, + { "x": -1, "y": 3, "parts": [ "frame_orichalcum#vertical", "hdboard#ne", "hdroof" ] }, { "x": -1, "y": 3, "parts": [ "plating_steel", { "part": "tank", "fuel": "diesel" } ] }, - { "x": -2, "y": -1, "parts": [ "frame_orichalcum_vertical", "hdboard_vertical_left", "hdroof" ] }, - { "x": -2, "y": -1, "part": "plating_steel" }, - { "x": -2, "y": 0, "parts": [ "frame_orichalcum_cross", "trunk", "hdroof" ] }, - { "x": -2, "y": 1, "parts": [ "frame_orichalcum_cross", "hdroof", "aisle_vertical" ] }, - { "x": -2, "y": 2, "parts": [ "frame_orichalcum_cross", "hdroof", "aisle_horizontal" ] }, - { "x": -2, "y": 3, "parts": [ "frame_orichalcum_vertical", "hddoor_right", "hdroof" ] }, - { "x": -2, "y": 3, "part": "plating_steel" }, - { "x": -3, "y": -1, "parts": [ "frame_orichalcum_vertical", "hdboard_vertical_left", "hdroof" ] }, - { "x": -3, "y": -1, "part": "plating_steel" }, - { "x": -3, "y": 0, "parts": [ "frame_orichalcum_cross", "trunk", "hdroof" ] }, - { "x": -3, "y": 1, "parts": [ "frame_orichalcum_cross", "hdroof", "aisle_vertical" ] }, - { "x": -3, "y": 2, "parts": [ "frame_orichalcum_cross", "hdroof", "seat", "seatbelt" ] }, - { "x": -3, "y": 3, "parts": [ "frame_orichalcum_vertical", "hdboard_vertical_right" ] }, + { "x": -2, "y": -1, "parts": [ "frame_orichalcum#vertical", "hdboard#vertical_left", "hdroof" ] }, + { "x": -2, "y": -1, "parts": [ "plating_steel" ] }, + { "x": -2, "y": 0, "parts": [ "frame_orichalcum#cross", "trunk", "hdroof" ] }, + { "x": -2, "y": 1, "parts": [ "frame_orichalcum#cross", "hdroof", "aisle#vertical" ] }, + { "x": -2, "y": 2, "parts": [ "frame_orichalcum#cross", "hdroof", "aisle#horizontal" ] }, + { "x": -2, "y": 3, "parts": [ "frame_orichalcum#vertical", "hddoor#right", "hdroof" ] }, + { "x": -2, "y": 3, "parts": [ "plating_steel" ] }, + { "x": -3, "y": -1, "parts": [ "frame_orichalcum#vertical", "hdboard#vertical_left", "hdroof" ] }, + { "x": -3, "y": -1, "parts": [ "plating_steel" ] }, + { "x": -3, "y": 0, "parts": [ "frame_orichalcum#cross", "trunk", "hdroof" ] }, + { "x": -3, "y": 1, "parts": [ "frame_orichalcum#cross", "hdroof", "aisle#vertical" ] }, + { "x": -3, "y": 2, "parts": [ "frame_orichalcum#cross", "hdroof", "seat", "seatbelt" ] }, + { "x": -3, "y": 3, "parts": [ "frame_orichalcum#vertical", "hdboard#vertical_right" ] }, { "x": -3, "y": 3, "parts": [ "hdroof", "plating_steel" ] }, - { "x": -4, "y": -1, "parts": [ "frame_orichalcum_vertical", "hdboard_vertical_left", "hdroof" ] }, - { "x": -4, "y": -1, "part": "plating_steel" }, - { "x": -4, "y": 0, "parts": [ "frame_orichalcum_cross", "trunk", "hdroof" ] }, - { "x": -4, "y": 1, "parts": [ "frame_orichalcum_cross", "hdroof", "aisle_vertical" ] }, - { "x": -4, "y": 2, "parts": [ "frame_orichalcum_cross", "hdroof", "trunk" ] }, - { "x": -4, "y": 3, "parts": [ "frame_orichalcum_vertical", "hdboard_vertical_right" ] }, + { "x": -4, "y": -1, "parts": [ "frame_orichalcum#vertical", "hdboard#vertical_left", "hdroof" ] }, + { "x": -4, "y": -1, "parts": [ "plating_steel" ] }, + { "x": -4, "y": 0, "parts": [ "frame_orichalcum#cross", "trunk", "hdroof" ] }, + { "x": -4, "y": 1, "parts": [ "frame_orichalcum#cross", "hdroof", "aisle#vertical" ] }, + { "x": -4, "y": 2, "parts": [ "frame_orichalcum#cross", "hdroof", "trunk" ] }, + { "x": -4, "y": 3, "parts": [ "frame_orichalcum#vertical", "hdboard#vertical_right" ] }, { "x": -4, "y": 3, "parts": [ "hdroof", "plating_steel" ] }, - { "x": -5, "y": -1, "parts": [ "frame_orichalcum_sw", "hdboard_sw", "hdroof", "plating_steel" ] }, + { "x": -5, "y": -1, "parts": [ "frame_orichalcum#sw", "hdboard#sw", "hdroof", "plating_steel" ] }, { "x": -5, "y": -1, "parts": [ "wheel_mount_medium", "wheel_wide" ] }, - { "x": -5, "y": 0, "parts": [ "frame_orichalcum_horizontal", "hdboard_horizontal_rear", "hdroof" ] }, - { "x": -5, "y": 0, "part": "plating_steel" }, - { "x": -5, "y": 1, "parts": [ "frame_orichalcum_horizontal", "hddoor_opaque_rear", "hdroof" ] }, - { "x": -5, "y": 1, "part": "plating_steel" }, - { "x": -5, "y": 2, "parts": [ "frame_orichalcum_horizontal", "hdboard_horizontal_rear", "beeper" ] }, + { "x": -5, "y": 0, "parts": [ "frame_orichalcum#horizontal", "hdboard#horizontal_rear", "hdroof" ] }, + { "x": -5, "y": 0, "parts": [ "plating_steel" ] }, + { "x": -5, "y": 1, "parts": [ "frame_orichalcum#horizontal", "hddoor_opaque#rear", "hdroof" ] }, + { "x": -5, "y": 1, "parts": [ "plating_steel" ] }, + { "x": -5, "y": 2, "parts": [ "frame_orichalcum#horizontal", "hdboard#horizontal_rear", "beeper" ] }, { "x": -5, "y": 2, "parts": [ "hdroof", "muffler", "plating_steel" ] }, - { "x": -5, "y": 3, "parts": [ "frame_orichalcum_se", "hdboard_se", "hdroof", "plating_steel" ] }, + { "x": -5, "y": 3, "parts": [ "frame_orichalcum#se", "hdboard#se", "hdroof", "plating_steel" ] }, { "x": -5, "y": 3, "parts": [ "wheel_mount_medium", "wheel_wide" ] } ], "items": [ diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/elf_workshop.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/elf_workshop.json new file mode 100644 index 000000000..59f653796 --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/elf_workshop.json @@ -0,0 +1,89 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": "elf_workshop", + "object": { + "fill_ter": "t_metal_floor", + "rows": [ + "111111111111111111111111", + "1fa.....fa..........jsw1", + "1ms......m....d....r.ct1", + "1d...................ct1", + "1bsw.........c........d1", + "1dsw........ctc......af1", + "1............c.........3", + "1msa...................1", + "1d.f..................d1", + "1......................3", + "1bsw..................b1", + "1....d............j....1", + "1...ws............sw...1", + "1......................1", + "1......................3", + "1......................1", + "1...ws............sw...1", + "1......................1", + "1...ws............sw...1", + "1......................1", + "1...........m..........1", + "1f.........sa.........f1", + "1a.sm......f.......ms.a1", + "111111111111111111111111" + ], + "terrain": { "3": "t_rdoor_c", "1": "t_strconc_wall", ".": "t_metal_floor" }, + "furniture": { + "a": "f_anvil", + "t": "f_table", + "b": "f_tablesaw", + "c": "f_chair", + "d": "f_drill_press", + "j": "f_jointer", + "r": "f_router", + "w": "f_workbench", + "m": "f_workbench", + "s": "f_stool", + "f": "f_demon_forge" + }, + "place_monsters": [ { "monster": "GROUP_WORKSHOP", "x": [ 3, 5 ], "y": [ 4, 23 ], "density": 0.5, "repeat": [ 1, 6 ] } ], + "place_loot": [ + { "group": "tools_anvil", "x": [ 0, 23 ], "y": [ 0, 20 ], "chance": 75, "repeat": [ 1, 2 ] }, + { "item": "mithril_ingot", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 10 }, + { "item": "scrap_copper", "x": [ 0, 22 ], "y": [ 0, 21 ], "chance": 40 }, + { "group": "tools_anvil", "x": [ 0, 13 ], "y": [ 0, 22 ], "chance": 25 }, + { "item": "clamp", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 50, "repeat": [ 1, 3 ] }, + { "item": "metal_file", "x": [ 0, 23 ], "y": [ 0, 15 ], "chance": 50 }, + { "item": "pin_reamer", "x": [ 0, 23 ], "y": [ 0, 21 ], "chance": 25 }, + { "item": "mithril_ingot", "x": [ 0, 15 ], "y": [ 0, 21 ], "chance": 10 }, + { "item": "scrap_copper", "x": [ 0, 23 ], "y": [ 0, 12 ], "chance": 80, "repeat": [ 1, 3 ] }, + { "item": "misc_repairkit", "x": [ 0, 23 ], "y": [ 0, 14 ], "chance": 25 }, + { "item": "hammer", "x": [ 0, 23 ], "y": [ 0, 17 ], "chance": 90 }, + { "item": "sandpaper", "x": [ 0, 3 ], "y": [ 0, 3 ], "chance": 90 }, + { "item": "clamp", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 90, "repeat": [ 2, 4 ] }, + { "item": "xacto", "x": [ 0, 23 ], "y": [ 0, 13 ], "chance": 10 }, + { "item": "alumentum", "x": [ 0, 23 ], "y": [ 0, 21 ], "chance": 25 } + ] + } + }, + { + "type": "overmap_special", + "id": "elf_workshop", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "elf_workshop_north" }, + { "point": [ 0, 0, 1 ], "overmap": "elf_workshop_roof_north" } + ], + "locations": [ "wilderness" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 13 ], + "occurrences": [ 0, 2 ] + }, + { + "type": "overmap_terrain", + "id": [ "elf_workshop", "elf_workshop_roof" ], + "name": "elf workshop", + "sym": "W", + "color": "red", + "see_cost": 6, + "flags": [ "RISK_HIGH" ] + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/elf_workshop_roof.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/elf_workshop_roof.json new file mode 100644 index 000000000..de87272ac --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/elf_workshop_roof.json @@ -0,0 +1,36 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "elf_workshop_roof" ], + "object": { + "rows": [ + "||||||||||||||||||||||||", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "|......................|", + "||||||||||||||||||||||||" + ], + "terrain": { "|": "t_strconc_wall_halfway", ".": "t_metal_floor_no_roof" } + } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/forge_of_wonders.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/forge_of_wonders.json index 35f31ba72..0171b0ff8 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/forge_of_wonders.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/forge_of_wonders.json @@ -39,11 +39,11 @@ " #..........ZZZZZz...................................##...........##.X$$$$$$$$$$$$$$$$$$$$$$$$$$$$X.# ", " |...........@.@............4...................2....##...........##.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.# ", " |...................................................##...........##.....4...............4..........# ", - " |...................................#####|||##########||&&&&&&&||##################|||############## ", - " |...................................# +++++++ ", - " |...................................# 55555555 2 ", - " #...................................# 2 +++++++ ", - " #.......................4...........# ++++++++ 2 ", + " |.£££££.............................#####|||##########||&&&&&&&||##################|||############## ", + " |.£___£.............................# +++++++ ", + " |.£___€.............................# 55555555 2 ", + " #.£___£.............................# 2 +++++++ ", + " #.£££££.................4...........# ++++++++ 2 ", " #...................................# ++++++++ Y ", " #.........2.........................# +++++++++ ", " #...................................# +++++++++ + + + ", @@ -77,7 +77,8 @@ { "class": "forge_lord_pirate", "x": 16, "y": 9 }, { "class": "forge_lord_pirate", "x": 16, "y": 6 }, { "class": "forge_lord_pirate", "x": 14, "y": 6 }, - { "class": "forge_lord_librarian", "x": 23, "y": 43 } + { "class": "forge_lord_librarian", "x": 23, "y": 43 }, + { "class": "forge_lord_diviner", "x": 13, "y": 19 } ], "place_monsters": [ { "monster": "GROUP_STOCKED_POND", "x": [ 77, 82 ], "y": [ 32, 42 ], "density": 0.3, "repeat": [ 1, 3 ] }, @@ -145,10 +146,13 @@ "+": "t_railroad_rubble", "5": "t_bollard", "6": "t_vault_vent", - "7": "t_vault_vent" + "7": "t_vault_vent", + "£": [ "t_magiconc_floor", "t_safe_shopper" ], + "€": [ "t_magiconc_floor", "t_safe_shopper" ], + "_": [ "t_magiconc_floor", "t_safe_shopper" ] }, "furniture": { - "h": "f_demon_forge", + "h": "f_demon_forge_forge_lord", "@": "f_logstool", "c": "f_orrery", "Y": [ [ "f_boulder_small", 5 ], "f_boulder_medium", "f_boulder_large", "f_glow_boulder" ], @@ -158,7 +162,10 @@ "!": "f_anvil", "f": "f_table", "2": "f_everburning_candelabra", - "7": "f_bookcase" + "7": "f_bookcase", + "£": "f_canvas_wall", + "€": "f_canvas_door", + "_": "f_groundsheet" }, "items": { "!": { "item": "magic_smith", "chance": 40, "repeat": [ 1, 2 ] }, diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/house_technomancer.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/house_technomancer.json index ffb24c32f..1e40e200c 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/house_technomancer.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/house_technomancer.json @@ -162,22 +162,22 @@ "rows": [ " ", " ", - " |22223 ", - " ||....32223 |22222222223 ", - " 5.........3 |..........3 ", - " |......=..3 |222|..........3 ", - " |.........3 |.......=......3 ", - " |.........3 |..............3 ", - " |...&.....3222223 |..............3 ", - " |............~..33 |---|..........3 ", - " |................33 |......N...3 ", - " |.....X.....oooo..33 5..:.......3 ", - " |...........ooooo..3 |..........3 ", - " |...........oooo...3 |----------3 ", - " |.................33 ", - " |................33 ", - " |......N........33 ", - " |--------------53 ", + " ------ ", + " --....----- ------------ ", + " 5.........- -..........- ", + " -......=..- -----..........- ", + " -.........- -.......=......- ", + " -.........- -..............- ", + " -...&.....------- -..............- ", + " -............~..-- -----..........- ", + " -................-- -......N...- ", + " -.....X.....oooo..-- 5..:.......- ", + " -...........ooooo..- -..........- ", + " -...........oooo...- ------------ ", + " -.................-- ", + " -................-- ", + " -......N........-- ", + " ---------------5- ", " ", " ", " ", diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/labs/microlab.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/labs/microlab.json new file mode 100644 index 000000000..0f1b35f1a --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/labs/microlab.json @@ -0,0 +1,72 @@ +[ + { + "type": "mapgen", + "nested_mapgen_id": "microlab_generic_tile", + "//": "XEDRA magical research location", + "weight": 750, + "method": "json", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + " | cc 2 2 cc | ", + " | |^^| |cccc ", + " ||||||||||||||||||||c ", + " |------------------|6 ", + " |-UUUUdd6- -|r ", + "|||-β h 6- ¢¢¢¢ -||2", + " |-β 2 ¢ØØ¢ -| ", + " |-β 2 ¢ØØ¢ -|c ", + " |-☿h - ¢¢¢¢ -|c ", + " |-BB -ββ☿ -| ", + "2|G---22-------------|||", + " 5 -| ", + " 5 -| ", + "|||-------- --------|||", + " |-dddddd- -llii ~-|c ", + " |-h h h- 2 ~-| ", + " |- - --------| ", + " c|- 3 2 U-|c ", + "|||-dh h- - U-|||", + " c|-6dBBBd- -ββ U-|F ", + " c|------------------|F ", + " c||||||||||||||||||||||", + " cccc|c |^^| | cc ", + " c|c 2 2 | " + ], + "palettes": [ "microlab" ], + "terrain": { "G": "t_card_science", "Ø": "t_rock_floor", "¢": "t_rock_floor" }, + "furniture": { "☿": "f_alembic", "β": "f_magic_bench", "Ø": "f_magic_circle" }, + "place_item": [ + { "item": "spell_scroll_biomancer_remove_instability", "x": 12, "y": 9, "chance": 100 }, + { "item": "candle", "x": 15, "y": 5, "chance": 100 }, + { "item": "candle", "x": 15, "y": 8, "chance": 100 }, + { "item": "candle", "x": 18, "y": 5, "chance": 100 }, + { "item": "candle", "x": 18, "y": 8, "chance": 100 } + ], + "items": { + "B": [ + { "item": "magic_shop_books", "chance": 33, "repeat": [ 1, 3 ] }, + { "item": "magus_items", "chance": 20, "repeat": [ 1, 2 ] } + ], + "β": { "item": "magic_tools_and_loot", "chance": 75 }, + "U": [ + { "item": "magic_shop_clothes", "chance": 20 }, + { "item": "enchanted_worn_items", "chance": 20 }, + { "item": "enchanted_small_items", "chance": 10 } + ], + "l": [ + { "item": "lab_shoes", "chance": 50, "repeat": [ 2, 3 ] }, + { "item": "lab_torso_research_thaumaturge", "chance": 50, "repeat": [ 2, 3 ] }, + { "item": "lab_pants", "chance": 50, "repeat": [ 2, 3 ] }, + { "item": "underwear", "chance": 50, "repeat": [ 2, 3 ] } + ] + }, + "place_monster": [ + { "monster": "mon_feral_lab_magician", "chance": 33, "x": [ 5, 17 ], "y": [ 4, 19 ], "repeat": [ 2, 4 ] }, + { "monster": "mon_feral_lab_magician", "chance": 100, "x": [ 5, 16 ], "y": [ 4, 9 ], "repeat": [ 1, 2 ] }, + { "monster": "mon_feral_radiation_mage", "chance": 100, "x": [ 12, 18 ], "y": [ 4, 9 ] } + ], + "place_monsters": [ { "monster": "GROUP_LAB", "chance": 2, "x": [ 2, 21 ], "y": [ 2, 21 ], "repeat": [ 1, 5 ] } ] + } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_academy.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_academy.json index 46ab93cb2..7d2445029 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_academy.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_academy.json @@ -71,7 +71,10 @@ { "item": "enchanted_worn_items", "chance": 10 }, { "item": "enchanted_combat_items", "chance": 5 } ], - "R": [ { "item": "magic_shop_books", "chance": 40, "repeat": [ 0, 2 ] }, { "item": "spellbook_loot_2", "chance": 10 } ], + "R": [ + { "item": "magic_shop_books", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "spellbook_loot_2", "chance": 10, "repeat": [ 1, 2 ] } + ], "j": [ { "item": "enchanted_small_items", "chance": 5, "repeat": [ 1, 2 ] }, { "item": "enchanted_combat_items", "chance": 1 }, diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_basement.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_basement.json index c3a6dbe17..76cb1ecfb 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_basement.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_basement.json @@ -34,6 +34,7 @@ ], "palettes": [ "standard_domestic_palette" ], "place_traps": [ { "trap": "tr_magic_door", "x": 21, "y": 4 } ], + "place_zones": [ { "type": "ZONE_START_POINT", "faction": "your_followers", "x": [ 13, 20 ], "y": [ 3, 5 ] } ], "place_item": [ { "item": "television", "x": 21, "y": 10 }, { "item": "wizard_photo", "x": 16, "y": 6 } ], "place_loot": [ { "item": "corpse", "x": 2, "y": 6, "chance": 100 }, diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_cabin.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_cabin.json index fe17913c1..4f8c07e77 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_cabin.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_cabin.json @@ -139,20 +139,20 @@ "fill_ter": "t_shingle_flat_roof", "rows": [ " ", - " |22222223 ", - " |.......32223 ", - " |...........3 ", - " ||...&.......3 ", - " ||............3 ", - " ||.............5 ", - " |222|..............3 ", - " |..................33 ", - " |=..................3 ", - " |.........Q.........3 ", - " |-|.................3 ", - " |................33 ", - " |...............33 ", - " |---------------3 ", + " --------- ", + " -.......----- ", + " -...........- ", + " --...&.......- ", + " --............- ", + " --.............5 ", + " -----..............- ", + " -..................-- ", + " -=..................- ", + " -.........~.........- ", + " ---.................- ", + " -................-- ", + " -...............-- ", + " ----------------- ", " ", " ", " ", @@ -164,8 +164,7 @@ " " ], "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" }, - "furniture": { "Q": "f_chimney" } + "terrain": { ".": "t_shingle_flat_roof" } } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_field.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_field.json index 69abdd42b..301564486 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_field.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_field.json @@ -74,7 +74,59 @@ [ "f_sojourners_palm", 5 ], [ "f_whiskflower", 5 ] ] - } + }, + "place_monsters": [ + { "monster": "GROUP_TRIFFID_HERBALISM_SEEDSHAPER", "x": [ 2, 21 ], "y": [ 2, 21 ], "chance": 7, "density": 0.15 }, + { + "monster": "GROUP_TRIFFID_HERBALISM_VINEWEAVER", + "x": [ 2, 21 ], + "y": [ 2, 21 ], + "chance": 7, + "density": 0.15 + }, + { + "monster": "GROUP_TRIFFID_HERBALISM_SEEDSHAPER", + "x": [ 25, 45 ], + "y": [ 2, 21 ], + "chance": 7, + "density": 0.15 + }, + { + "monster": "GROUP_TRIFFID_HERBALISM_VINEWEAVER", + "x": [ 25, 45 ], + "y": [ 2, 21 ], + "chance": 7, + "density": 0.15 + }, + { + "monster": "GROUP_TRIFFID_HERBALISM_SEEDSHAPER", + "x": [ 2, 21 ], + "y": [ 25, 45 ], + "chance": 7, + "density": 0.15 + }, + { + "monster": "GROUP_TRIFFID_HERBALISM_VINEWEAVER", + "x": [ 2, 21 ], + "y": [ 25, 45 ], + "chance": 7, + "density": 0.15 + }, + { + "monster": "GROUP_TRIFFID_HERBALISM_SEEDSHAPER", + "x": [ 25, 45 ], + "y": [ 25, 45 ], + "chance": 7, + "density": 0.15 + }, + { + "monster": "GROUP_TRIFFID_HERBALISM_VINEWEAVER", + "x": [ 25, 45 ], + "y": [ 25, 45 ], + "chance": 7, + "density": 0.15 + } + ] } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_shop.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_shop.json index 17e327f97..488d979aa 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_shop.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/magic_shop.json @@ -52,7 +52,6 @@ "4": "t_gutter_downspout", "^": "t_privacy_fencegate_c", "s": "t_sidewalk", - "?": "t_console_broken", "9": [ "t_tree_blackjack", "t_tree_walnut", @@ -85,6 +84,7 @@ "b": "f_birdbath", "B": "f_bookcase", "Z": "f_bookcase", + "?": "f_console_broken", "y": [ "f_indoor_plant_y", "f_indoor_plant" ], "f": "f_filing_cabinet", "@": "f_sofa", @@ -209,24 +209,24 @@ " ", " ", " ", - " |23 ", - " |.3 ", - " |.53 ", - " |2222|..3 ", - " ||.......3 ", - " ||........3 ", - " ||.........3 ", - " ||..........3 ", - " |..A...:....3 ", - " |...........3 ", - " |...........3 ", - " |.......&...3 ", - " |...........3 ", - " ||..........3 ", - " ||...X.....3 ", - " ||........3 ", - " ||.......3 ", - " |5------3 ", + " --- ", + " -.- ", + " -.5- ", + " ------..- ", + " --.......- ", + " --........- ", + " --.........- ", + " --..........- ", + " -..A...:....- ", + " -...........- ", + " -...........- ", + " -.......&...- ", + " -...........- ", + " --..........- ", + " --...X.....- ", + " --........- ", + " --.......- ", + " -5------- ", " ", " ", " " diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/overmap_specials.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/overmap_specials.json index 7f5b9844d..9d8e437ef 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/overmap_specials.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/overmap_specials.json @@ -233,7 +233,7 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 0, 20 ], "occurrences": [ 1, 2 ], - "spawns": { "group": "GROUP_FOREST", "population": [ 2, 15 ], "radius": [ 1, 3 ] }, + "spawns": { "group": "GROUP_MAGIC_FIELD", "population": [ 2, 15 ], "radius": [ 1, 3 ] }, "flags": [ "UNIQUE" ] }, { @@ -244,6 +244,16 @@ "city_distance": [ 20, -1 ], "city_sizes": [ 0, 20 ], "occurrences": [ 0, 2 ], - "spawns": { "group": "GROUP_FOREST", "population": [ 1, 7 ], "radius": [ 1, 3 ] } + "spawns": { "group": "GROUP_MAGIC_FIELD", "population": [ 1, 7 ], "radius": [ 1, 3 ] } + }, + { + "type": "overmap_special", + "id": "standing_teleport_stones", + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "standing_teleport_stones" } ], + "locations": [ "wilderness" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 66, 100 ], + "flags": [ "UNIQUE" ] } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/overmap_terrain.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/overmap_terrain.json index 630e7d2d4..fde370e10 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/overmap_terrain.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/overmap_terrain.json @@ -489,5 +489,14 @@ "color": "blue", "flags": [ "NO_ROTATE" ], "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "standing_teleport_stones" ], + "name": "ancient ring of stones", + "sym": "O", + "color": "dark_gray", + "flags": [ "NO_ROTATE", "REQUIRES_PREDECESSOR" ], + "see_cost": 5 } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/small_magic_field.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/small_magic_field.json index 3f627d0fa..fece98567 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/small_magic_field.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/small_magic_field.json @@ -50,7 +50,17 @@ [ "f_sojourners_palm", 5 ], [ "f_whiskflower", 5 ] ] - } + }, + "place_monsters": [ + { "monster": "GROUP_TRIFFID_HERBALISM_SEEDSHAPER", "x": [ 2, 21 ], "y": [ 2, 21 ], "chance": 4, "density": 0.15 }, + { + "monster": "GROUP_TRIFFID_HERBALISM_VINEWEAVER", + "x": [ 2, 21 ], + "y": [ 2, 21 ], + "chance": 4, + "density": 0.15 + } + ] } } ] diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/teleport_standing_stones.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/teleport_standing_stones.json new file mode 100644 index 000000000..27cd64dcc --- /dev/null +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/teleport_standing_stones.json @@ -0,0 +1,46 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": "standing_teleport_stones", + "object": { + "fill_ter": "t_region_groundcover", + "fallback_predecessor_mapgen": "field", + "rows": [ + " ", + " ", + " ", + " ", + " S,S ", + " S,,,,,S ", + " S,,,S,S,,,S ", + " ,,,,,,,,,,, ", + " S,,,S,,,S,,,S ", + " ,,,,,,S,,,,,, ", + " S,,,S,mmm,S,,,S ", + " ,,,,,mAm,,,,, ", + " S,,,S,mmm,S,,,S ", + " ,,,,,,S,,,,,, ", + " S,,,S,,,S,,,S ", + " ,,,,,,,,,,, ", + " S,,,S,S,,,S ", + " S,,,,,S ", + " S,S ", + " ", + " ", + " ", + " ", + " " + ], + "terrain": { + ",": [ [ "t_moss", 50 ], [ "t_grass", 25 ], [ "t_dirt", 25 ] ], + "S": [ [ "t_moss", 50 ], [ "t_grass", 25 ], [ "t_dirt", 25 ] ], + "m": [ [ "t_moss", 100 ] ], + "A": [ [ "t_moss", 100 ] ], + " ": "t_null" + }, + "furniture": { "S": [ [ "f_myst_standing_stone", 65 ], [ "f_rubble_rock", 35 ] ], "A": "f_teleport_altar" }, + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + } +] diff --git a/data/Mainline_mods/Mods/Magiclysm/worldgen/used_bookstore.json b/data/Mainline_mods/Mods/Magiclysm/worldgen/used_bookstore.json index e195dd88c..b25926c82 100644 --- a/data/Mainline_mods/Mods/Magiclysm/worldgen/used_bookstore.json +++ b/data/Mainline_mods/Mods/Magiclysm/worldgen/used_bookstore.json @@ -67,19 +67,19 @@ "fill_ter": "t_flat_roof", "rows": [ " ", - " 52222222222222223 ", - " |...............3 ", - " |...............3 ", - " |...............3 ", - " |......A........3 ", - " |...............3 ", - " |...............3 ", - " |............2225 ", - " |............3 ", - " |............3 ", - " |....&.......3 ", - " |............3 ", - " |2222222222223 ", + " 5---------------- ", + " -...............- ", + " -...............- ", + " -...............- ", + " -......A........- ", + " -...............- ", + " -...............- ", + " -............---5 ", + " -............- ", + " -............- ", + " -....&.......- ", + " -............- ", + " -------------- ", " ", " ", " ", diff --git a/data/Mainline_mods/Mods/Megafauna/construction.json b/data/Mainline_mods/Mods/Megafauna/construction.json new file mode 100644 index 000000000..ff5279836 --- /dev/null +++ b/data/Mainline_mods/Mods/Megafauna/construction.json @@ -0,0 +1,13 @@ +[ + { + "type": "construction", + "id": "constr_glypto_shelter", + "group": "build_improvised_shelter", + "category": "CONSTRUCT", + "required_skills": [ [ "survival", 1 ] ], + "time": "30 s", + "components": [ [ [ "glypto_shell", 1 ] ] ], + "pre_terrain": "t_pit_shallow", + "post_terrain": "t_glypto_shelter" + } +] diff --git a/data/Mainline_mods/Mods/Megafauna/furniture_and_terrain/terrain-manufactured.json b/data/Mainline_mods/Mods/Megafauna/furniture_and_terrain/terrain-manufactured.json new file mode 100644 index 000000000..60da151b3 --- /dev/null +++ b/data/Mainline_mods/Mods/Megafauna/furniture_and_terrain/terrain-manufactured.json @@ -0,0 +1,24 @@ +[ + { + "type": "terrain", + "id": "t_glypto_shelter", + "name": "glyptodont-shell shelter", + "description": "Improvised shelter made of a glyptodont shell, providing a little bit of protection against the elements or predators.", + "symbol": "O", + "color": "brown", + "looks_like": "t_leanto", + "move_cost": 2, + "coverage": 60, + "floor_bedding_warmth": 800, + "comfort": 1, + "flags": [ "CONTAINER", "FLAMMABLE_ASH", "REDUCE_SCENT", "INDOORS", "MOUNTABLE", "HIDE_PLACE", "EASY_DECONSTRUCT", "NO_SIGHT" ], + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "whump.", + "ter_set": "t_pit_shallow", + "items": [ { "item": "stick", "count": [ 0, 1 ] }, { "item": "glypto_shell", "count": [ 1, 1 ] } ] + } + } +] diff --git a/data/Mainline_mods/Mods/Megafauna/harvest.json b/data/Mainline_mods/Mods/Megafauna/harvest.json index 86fc000fd..0ad2c7c22 100644 --- a/data/Mainline_mods/Mods/Megafauna/harvest.json +++ b/data/Mainline_mods/Mods/Megafauna/harvest.json @@ -11,13 +11,15 @@ { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, - { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.02 }, + { "drop": "large_bone", "type": "bone", "mass_ratio": 0.13 }, + { "drop": "bone_marrow", "type": "bone", "mass_ratio": 0.005 }, + { "drop": "mammoth_tusk", "scale_num": [ 1, 2 ], "max": 2, "type": "bone" }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, { "drop": "wool_staple", "type": "skin", "mass_ratio": 0.21 }, - { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, - { "drop": "mammoth_tusk", "scale_num": [ 1, 2 ], "max": 2, "type": "bone" }, { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 } ] }, @@ -56,11 +58,80 @@ { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, - { "drop": "bone", "type": "bone", "mass_ratio": 0.15 }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.02 }, + { "drop": "large_bone", "type": "bone", "mass_ratio": 0.13 }, + { "drop": "bone_marrow", "type": "bone", "mass_ratio": 0.005 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, { "drop": "mammoth_tusk", "scale_num": [ 1, 2 ], "max": 2, "type": "bone" }, { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.02 } ] + }, + { + "id": "glyptotherium", + "//": "drops large stomach, shell", + "type": "harvest", + "entries": [ + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.1 }, + { "drop": "large_bone", "type": "bone", "mass_ratio": 0.05 }, + { "drop": "bone_marrow", "type": "bone", "mass_ratio": 0.005 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, + { "drop": "glypto_shell", "scale_num": [ 1, 1 ], "max": 1, "type": "bone" }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.005 } + ] + }, + { + "id": "pelt_megafauna", + "//": "drops large stomach, large bones, pelts", + "type": "harvest", + "entries": [ + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.02 }, + { "drop": "large_bone", "type": "bone", "mass_ratio": 0.13 }, + { "drop": "bone_marrow", "type": "bone", "mass_ratio": 0.005 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, + { "drop": "raw_fur", "type": "skin", "mass_ratio": 0.005 } + ] + }, + { + "id": "leather_megafauna", + "//": "drops large stomach, large bones, leather", + "type": "harvest", + "entries": [ + { "drop": "meat", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.01 }, + { "drop": "lung", "type": "flesh", "mass_ratio": 0.0035 }, + { "drop": "liver", "type": "offal", "mass_ratio": 0.01 }, + { "drop": "animal_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "brain", "type": "flesh", "mass_ratio": 0.005 }, + { "drop": "sweetbread", "type": "flesh", "mass_ratio": 0.002 }, + { "drop": "kidney", "type": "offal", "mass_ratio": 0.002 }, + { "drop": "stomach_large", "scale_num": [ 1, 1 ], "max": 1, "type": "offal" }, + { "drop": "bone", "type": "bone", "mass_ratio": 0.02 }, + { "drop": "large_bone", "type": "bone", "mass_ratio": 0.13 }, + { "drop": "bone_marrow", "type": "bone", "mass_ratio": 0.005 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }, + { "drop": "fat", "type": "flesh", "mass_ratio": 0.07 }, + { "drop": "raw_leather", "type": "skin", "mass_ratio": 0.005 } + ] } ] diff --git a/data/Mainline_mods/Mods/Megafauna/items/animal_products.json b/data/Mainline_mods/Mods/Megafauna/items/animal_products.json index 282598909..f3005048d 100644 --- a/data/Mainline_mods/Mods/Megafauna/items/animal_products.json +++ b/data/Mainline_mods/Mods/Megafauna/items/animal_products.json @@ -15,8 +15,66 @@ "milling": { "into": "meal_bone", "conversion_rate": 4 }, "volume": "80 L", "longest_side": "2500 cm", - "bashing": 45, "to_hit": { "grip": "bad", "length": "short", "surface": "any", "balance": "clumsy" }, - "vitamins": [ [ "calcium", 96 ] ] + "vitamins": [ [ "calcium", 96 ] ], + "melee_damage": { "bash": 45 } + }, + { + "type": "COMESTIBLE", + "id": "egg_auk", + "name": { "str": "great auk egg" }, + "copy-from": "egg_bird", + "description": "An egg laid by a great auk. Prized for its big, nutritious yolk.", + "quench": 9, + "calories": 140, + "volume": "90 ml", + "rot_spawn": "GROUP_EGG_AUK" + }, + { + "type": "COMESTIBLE", + "id": "egg_titanis_walleri", + "name": { "str": "titanis walleri egg" }, + "copy-from": "egg_bird", + "description": "A large egg laid by a titanis walleri. Prized for its big, nutritious yolk.", + "quench": 14, + "calories": 2100, + "volume": "1800 ml", + "rot_spawn": "GROUP_EGG_TITANIS_WALLERI" + }, + { + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "id": "glypto_shell", + "category": "spare_parts", + "name": { "str": "glyptotherium shell" }, + "weight": "110 kg", + "color": "brown", + "symbol": "O", + "description": "A huge shell laboriously carved from a glyptotherium.", + "price": 0, + "price_postapoc": 10, + "material": [ "bone" ], + "volume": "180 L", + "longest_side": "2000 cm" + }, + { + "type": "COMESTIBLE", + "id": "large_bone", + "category": "spare_parts", + "name": { "str": "large bone" }, + "weight": "20 kg", + "color": "white", + "symbol": "I", + "description": "A huge bone of a large creature.", + "comestible_type": "FOOD", + "price": 0, + "price_postapoc": 10, + "material": [ "bone" ], + "milling": { "into": "meal_bone", "conversion_rate": 4 }, + "volume": "36 L", + "longest_side": "2000 cm", + "to_hit": { "grip": "bad", "length": "short", "surface": "any", "balance": "clumsy" }, + "vitamins": [ [ "calcium", 96 ] ], + "melee_damage": { "bash": 35 } } ] diff --git a/data/Mainline_mods/Mods/Megafauna/items/tool/shelters.json b/data/Mainline_mods/Mods/Megafauna/items/tool/shelters.json new file mode 100644 index 000000000..c68962b07 --- /dev/null +++ b/data/Mainline_mods/Mods/Megafauna/items/tool/shelters.json @@ -0,0 +1,52 @@ +[ + { + "id": "mammoth_shelter_kit", + "type": "TOOL", + "name": { "str": "mammoth shelter kit" }, + "description": "This is a small shelter, made of large bones, mammoth tusks, and skins. Use it to place.", + "weight": "1360 g", + "volume": "7500 ml", + "longest_side": "90 cm", + "price": 6500, + "price_postapoc": 500, + "to_hit": -3, + "material": [ "bone", "leather" ], + "symbol": ";", + "color": "brown", + "use_action": { + "type": "deploy_tent", + "radius": 1, + "broken_type": "damaged_shelter_kit", + "wall": "f_skin_wall", + "floor": "f_skin_groundsheet", + "door_opened": "f_skin_door_o", + "door_closed": "f_skin_door" + }, + "melee_damage": { "bash": 4 } + }, + { + "id": "large_mammoth_shelter_kit", + "type": "TOOL", + "name": { "str": "large mammoth shelter kit" }, + "description": "This is a big shelter, made of large bones, mammoth tusks, and skins. Use it to place.", + "weight": "4080 g", + "volume": "22500 ml", + "longest_side": "240 cm", + "price": 12500, + "price_postapoc": 1000, + "to_hit": -3, + "material": [ "bone", "leather" ], + "symbol": ";", + "color": "brown", + "use_action": { + "type": "deploy_tent", + "radius": 2, + "broken_type": "damaged_shelter_kit", + "wall": "f_skin_wall", + "floor": "f_skin_groundsheet", + "door_opened": "f_skin_door_o", + "door_closed": "f_skin_door" + }, + "melee_damage": { "bash": 4 } + } +] diff --git a/data/Mainline_mods/Mods/Megafauna/megafauna_factions.json b/data/Mainline_mods/Mods/Megafauna/megafauna_factions.json index 9023c02a2..ce22499f7 100644 --- a/data/Mainline_mods/Mods/Megafauna/megafauna_factions.json +++ b/data/Mainline_mods/Mods/Megafauna/megafauna_factions.json @@ -4,7 +4,7 @@ "name": "mega_wolf", "base_faction": "animal", "hate": [ "small_animal", "herbivore", "human", "mega_herbivore" ], - "by_mood": [ "felidae" ], + "by_mood": [ "felidae", "mega_bird" ], "neutral": [ "dog" ] }, { @@ -12,7 +12,7 @@ "name": "mega_cat", "base_faction": "animal", "hate": [ "small_animal", "herbivore", "human", "mega_herbivore" ], - "by_mood": [ "fish", "canidae" ], + "by_mood": [ "fish", "canidae", "mega_bird" ], "neutral": [ "cat" ] }, { @@ -28,5 +28,12 @@ "base_faction": "animal", "hate": [ "small_animal", "bee" ], "by_mood": [ "fish", "human", "herbivore" ] + }, + { + "type": "MONSTER_FACTION", + "name": "mega_bird", + "base_faction": "animal", + "hate": [ "small_animal", "herbivore", "mega_herbivore" ], + "by_mood": [ "felidae", "canidae", "fish", "human" ] } ] diff --git a/data/Mainline_mods/Mods/Megafauna/mf_weakpoint_sets.json b/data/Mainline_mods/Mods/Megafauna/mf_weakpoint_sets.json new file mode 100644 index 000000000..419dc9692 --- /dev/null +++ b/data/Mainline_mods/Mods/Megafauna/mf_weakpoint_sets.json @@ -0,0 +1,170 @@ +[ + { + "type": "weakpoint_set", + "id": "wps_megafauna_body", + "weakpoints": [ + { + "id": "head_normal", + "name": "the head", + "armor_mult": { "physical": 0.75 }, + "damage_mult": { "all": 1.25 }, + "crit_mult": { "all": 1.25 }, + "difficulty": { "all": 4 }, + "coverage_mult": { "ranged": 1.2, "stab": 1.5 }, + "coverage": 3, + "effects": [ + { + "effect": "stunned", + "duration": [ 1, 3 ], + "chance": 7, + "message": "The %s is stunned!", + "damage_required": [ 1, 10 ] + }, + { + "effect": "stunned", + "duration": [ 1, 3 ], + "chance": 18, + "message": "The %s is stunned!", + "damage_required": [ 11, 100 ] + }, + { + "effect": "dazed", + "duration": [ 1, 3 ], + "chance": 10, + "message": "The %s is dazed!", + "damage_required": [ 10, 100 ] + } + ] + }, + { + "id": "head_down", + "//": "if animal is downed, hitting the head should be way easier too!", + "name": "the downed %s head", + "armor_mult": { "physical": 0.75 }, + "damage_mult": { "all": 1.25 }, + "crit_mult": { "all": 1.25 }, + "difficulty": { "all": 2 }, + "coverage_mult": { "ranged": 0.3 }, + "coverage": 10, + "required_effects": [ "downed" ], + "effects": [ + { + "effect": "stunned", + "duration": [ 1, 3 ], + "chance": 7, + "message": "The %s is stunned!", + "damage_required": [ 1, 10 ] + }, + { + "effect": "stunned", + "duration": [ 1, 3 ], + "chance": 18, + "message": "The %s is stunned!", + "damage_required": [ 11, 100 ] + }, + { + "effect": "dazed", + "duration": [ 1, 3 ], + "chance": 10, + "message": "The %s is dazed!", + "damage_required": [ 10, 100 ] + } + ] + }, + { + "name": "the belly", + "//": "this should be limited to downed animals and present opport. to hit vitals. hitting belly per se is easier though, esp. with melee", + "armor_mult": { "physical": 0.5 }, + "crit_mult": { "all": 1.2 }, + "difficulty": { "melee": 2, "ranged": 4 }, + "coverage_mult": { "ranged": 0.5 }, + "coverage": 25, + "required_effects": [ "downed" ], + "effects": [ + { + "effect": "nausea", + "permanent": true, + "chance": 10, + "message": "You have ripped the %s bowels! The % is retching.", + "damage_required": [ 5, 25 ] + }, + { + "effect": "winded", + "permanent": true, + "chance": 10, + "message": "You have punctured the %s lungs! The % has trouble breathing.", + "damage_required": [ 5, 25 ] + } + ] + }, + { + "name": "the downed %s eyes", + "//": "downed eye variant. easier to hit with melee, but ranged unchanged", + "armor_mult": { "physical": 0 }, + "coverage": 1, + "crit_mult": { "all": 1.25 }, + "coverage_mult": { "ranged": 0.5 }, + "difficulty": { "ranged": 4, "melee": 3 }, + "effects": [ + { "effect": "blind", "duration": [ 1, 2 ], "chance": 25, "message": "The %s is blinded!", "damage_required": [ 1, 25 ] }, + { + "effect": "blind", + "permanent": true, + "chance": 30, + "message": "The %s's eyes are obliterated!", + "damage_required": [ 26, 100 ] + } + ] + }, + { + "name": "the eyes", + "//": "standing animal, eyes are nigh impossible to hit (with non point weapons. actually, reach weapons, but not possible here, so point it is)", + "armor_mult": { "physical": 0 }, + "coverage": 1, + "crit_mult": { "all": 1.25 }, + "coverage_mult": { "ranged": 0.5 }, + "difficulty": { "ranged": 6, "melee": 10 }, + "effects": [ + { "effect": "blind", "duration": [ 1, 2 ], "chance": 25, "message": "The %s is blinded!", "damage_required": [ 1, 25 ] }, + { + "effect": "blind", + "permanent": true, + "chance": 30, + "message": "The %s's eyes are obliterated!", + "damage_required": [ 26, 100 ] + } + ] + }, + { + "name": "the leg", + "//": "legs are the easiest target, but usually also hardy.", + "crit_mult": { "all": 0.75 }, + "difficulty": { "ranged": 2, "melee": 1 }, + "coverage_mult": { "point": 0.75 }, + "coverage": 8, + "effects": [ + { + "effect": "staggered", + "chance": 25, + "duration": [ 1, 2 ], + "message": "The %s is staggered!", + "damage_required": [ 10, 100 ] + }, + { + "effect": "maimed_leg", + "chance": 14, + "permanent": true, + "message": "You maim one of the %s legs!", + "damage_required": [ 10, 100 ] + }, + { + "effect": "downed", + "chance": 20, + "message": "The %s is knocked down, leaving its vitals unprotected!", + "damage_required": [ 20, 100 ] + } + ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Megafauna/mod_interactions/Defense_Mode/monstergroups.json b/data/Mainline_mods/Mods/Megafauna/mod_interactions/Defense_Mode/monstergroups.json new file mode 100644 index 000000000..762bcba1a --- /dev/null +++ b/data/Mainline_mods/Mods/Megafauna/mod_interactions/Defense_Mode/monstergroups.json @@ -0,0 +1,13 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_MEGAFAUNA_DM", + "default": "mon_direwolf", + "monsters": [ + { "monster": "mon_direwolf_dm", "weight": 10 }, + { "monster": "mon_sabcat_dm", "weight": 10 }, + { "monster": "mon_cave_lion_dm", "weight": 10 }, + { "monster": "mon_titanis_walleri_dm", "weight": 10 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Megafauna/mod_interactions/Defense_Mode/monsters.json b/data/Mainline_mods/Mods/Megafauna/mod_interactions/Defense_Mode/monsters.json new file mode 100644 index 000000000..66ed53433 --- /dev/null +++ b/data/Mainline_mods/Mods/Megafauna/mod_interactions/Defense_Mode/monsters.json @@ -0,0 +1,57 @@ +[ + { + "type": "SPECIES", + "id": "MEGAFAUNA_DM", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "bleeds": "fd_blood" + }, + { + "type": "MONSTER_FACTION", + "name": "megafauna_dm", + "base_faction": "animal" + }, + { + "id": "mon_direwolf_dm", + "copy-from": "mon_direwolf", + "type": "MONSTER", + "default_faction": "megafauna_dm", + "species": [ "MEGAFAUNA_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_sabcat_dm", + "copy-from": "mon_sabcat", + "type": "MONSTER", + "default_faction": "megafauna_dm", + "species": [ "MEGAFAUNA_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_cave_lion_dm", + "copy-from": "mon_cave_lion", + "type": "MONSTER", + "default_faction": "megafauna_dm", + "species": [ "MEGAFAUNA_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_titanis_walleri_dm", + "copy-from": "mon_titanis_walleri", + "type": "MONSTER", + "default_faction": "megafauna_dm", + "species": [ "MEGAFAUNA_DM" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + } +] diff --git a/data/Mainline_mods/Mods/Megafauna/monstergroups/misc.json b/data/Mainline_mods/Mods/Megafauna/monstergroups/misc.json index 53a99e8d6..bf0e786c7 100644 --- a/data/Mainline_mods/Mods/Megafauna/monstergroups/misc.json +++ b/data/Mainline_mods/Mods/Megafauna/monstergroups/misc.json @@ -14,7 +14,9 @@ { "monster": "mon_camelops", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 6 ] }, { "monster": "mon_mammoth", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 5 ] }, { "monster": "mon_mastodon", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 5 ] }, - { "monster": "mon_giant_horse", "weight": 10, "pack_size": [ 3, 8 ] } + { "monster": "mon_giant_horse", "weight": 10, "cost_multiplier": 0, "pack_size": [ 3, 8 ] }, + { "monster": "mon_soergoat", "weight": 10, "cost_multiplier": 0, "pack_size": [ 3, 8 ] }, + { "monster": "mon_american_zebra", "weight": 15, "cost_multiplier": 0, "pack_size": [ 4, 8 ] } ] }, { @@ -55,11 +57,16 @@ { "monster": "mon_turkey", "weight": 10 }, { "monster": "mon_raccoon", "weight": 10 }, { "monster": "mon_opossum", "weight": 10 }, + { "monster": "mon_ferret", "weight": 5 }, { "monster": "mon_sewer_rat", "weight": 10 }, { "monster": "mon_black_rat", "weight": 10 }, { "monster": "mon_rattlesnake", "weight": 10 }, { "monster": "mon_lemming", "weight": 10 }, - { "monster": "mon_giant_horse", "weight": 10 } + { "monster": "mon_giant_horse", "weight": 10 }, + { "monster": "mon_glyptotherium", "weight": 5 }, + { "monster": "mon_soergoat", "weight": 10 }, + { "monster": "mon_auk", "weight": 10 }, + { "monster": "mon_american_zebra", "weight": 10 } ] } ] diff --git a/data/Mainline_mods/Mods/Megafauna/monstergroups/monstergroups_egg.json b/data/Mainline_mods/Mods/Megafauna/monstergroups/monstergroups_egg.json new file mode 100644 index 000000000..d1c4072c6 --- /dev/null +++ b/data/Mainline_mods/Mods/Megafauna/monstergroups/monstergroups_egg.json @@ -0,0 +1,12 @@ +[ + { + "name": "GROUP_EGG_AUK", + "type": "monstergroup", + "monsters": [ { "monster": "mon_auk_chick" } ] + }, + { + "name": "GROUP_EGG_TITANIS_WALLERI", + "type": "monstergroup", + "monsters": [ { "monster": "mon_titanis_walleri_chick" } ] + } +] diff --git a/data/Mainline_mods/Mods/Megafauna/monstergroups/wilderness.json b/data/Mainline_mods/Mods/Megafauna/monstergroups/wilderness.json index f5df0731b..741303fc2 100644 --- a/data/Mainline_mods/Mods/Megafauna/monstergroups/wilderness.json +++ b/data/Mainline_mods/Mods/Megafauna/monstergroups/wilderness.json @@ -22,6 +22,9 @@ { "monster": "mon_scotts_horse", "weight": 15, "cost_multiplier": 0, "pack_size": [ 3, 8 ] }, { "monster": "mon_giant_horse", "weight": 10, "cost_multiplier": 0, "pack_size": [ 3, 8 ] }, { "monster": "mon_camelops", "weight": 15, "cost_multiplier": 0, "pack_size": [ 1, 6 ] }, + { "monster": "mon_glyptotherium", "weight": 5, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_soergoat", "weight": 10, "cost_multiplier": 0, "pack_size": [ 3, 6 ] }, + { "monster": "mon_titanis_walleri", "weight": 3, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, { "monster": "mon_bat", "weight": 50, @@ -483,9 +486,11 @@ }, { "monster": "mon_weasel", "weight": 5, "cost_multiplier": 5 }, { "monster": "mon_weasel", "weight": 15, "cost_multiplier": 5, "conditions": [ "NIGHT" ] }, + { "monster": "mon_ferret", "weight": 4, "cost_multiplier": 5 }, + { "monster": "mon_ferret", "weight": 14, "cost_multiplier": 5, "conditions": [ "NIGHT" ] }, { "monster": "mon_turkey", "weight": 6, "cost_multiplier": 2, "pack_size": [ 1, 18 ] }, { "monster": "mon_turkey", "weight": 9, "cost_multiplier": 2, "pack_size": [ 1, 18 ], "conditions": [ "DAY" ] }, - { "monster": "mon_frog", "weight": 5, "cost_multiplier": 10, "pack_size": [ 1, 3 ] }, + { "group": "GROUP_FROGS_ALL", "weight": 5, "cost_multiplier": 10 }, { "monster": "mon_duck", "weight": 4, @@ -1322,17 +1327,17 @@ "starts": "28 days", "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] }, - { "monster": "mon_nakedmolerat_giant", "weight": 1, "cost_multiplier": 3, "conditions": [ "DUSK", "NIGHT" ] }, { "monster": "mon_mutant_experimental", "weight": 3, "cost_multiplier": 0, "conditions": [ "DUSK", "NIGHT" ] }, { "monster": "mon_mantis_small", "weight": 8, "cost_multiplier": 10 }, { "monster": "mon_lady_bug_giant", "weight": 5, "starts": "90 days", "cost_multiplier": 10 }, { "monster": "mon_aphid", "weight": 15, "pack_size": [ 1, 5 ], "cost_multiplier": 0 }, { "monster": "mon_grasshopper_small", "weight": 15, "pack_size": [ 1, 3 ], "cost_multiplier": 0 }, + { "monster": "mon_locust_small", "weight": 7, "pack_size": [ 3, 9 ], "cost_multiplier": 0 }, { "monster": "mon_antlion_larva", "weight": 7, "cost_multiplier": 10 }, { "monster": "mon_antlion_giant", "weight": 2, "cost_multiplier": 10 }, - { "monster": "mon_stag_beetle_small", "freq": 2, "cost_multiplier": 0, "starts": 168, "ends": 720 }, - { "monster": "mon_stag_beetle_small", "freq": 2, "cost_multiplier": 0, "starts": 168 }, - { "monster": "mon_stag_beetle_giant", "freq": 1, "cost_multiplier": 0, "starts": 720 } + { "monster": "mon_stag_beetle_small", "weight": 2, "cost_multiplier": 0, "starts": 168, "ends": 720 }, + { "monster": "mon_stag_beetle_small", "weight": 2, "cost_multiplier": 0, "starts": 168 }, + { "monster": "mon_stag_beetle_giant", "weight": 1, "cost_multiplier": 0, "starts": 720 } ] }, { @@ -1359,6 +1364,10 @@ { "monster": "mon_giant_horse", "weight": 10, "cost_multiplier": 0, "pack_size": [ 3, 8 ] }, { "monster": "mon_camelops", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 6 ] }, { "monster": "mon_beaver", "weight": 15, "cost_multiplier": 10, "pack_size": [ 1, 3 ] }, + { "monster": "mon_glyptotherium", "weight": 7, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_soergoat", "weight": 12, "cost_multiplier": 0, "pack_size": [ 3, 6 ] }, + { "monster": "mon_auk", "weight": 12, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, + { "monster": "mon_american_zebra", "weight": 15, "cost_multiplier": 0, "pack_size": [ 4, 8 ] }, { "monster": "mon_beaver", "weight": 10, @@ -1452,7 +1461,7 @@ "pack_size": [ 1, 4 ], "conditions": [ "DAWN", "DAY", "SPRING", "SUMMER", "AUTUMN" ] }, - { "monster": "mon_frog", "weight": 5, "cost_multiplier": 10, "pack_size": [ 1, 3 ] }, + { "group": "GROUP_FROGS_ALL", "weight": 5, "cost_multiplier": 10 }, { "monster": "mon_zhark", "weight": 1, "cost_multiplier": 25, "starts": "1 days", "pack_size": [ 1, 3 ] }, { "monster": "mon_zhark", "weight": 2, "cost_multiplier": 25, "starts": "28 days", "pack_size": [ 1, 3 ] }, { "monster": "mon_mutant_carp", "weight": 3, "cost_multiplier": 15, "starts": "7 days" }, @@ -1481,14 +1490,6 @@ "conditions": [ "DAWN", "DUSK" ], "pack_size": [ 1, 3 ] }, - { "monster": "mon_fish_trout", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, - { - "monster": "mon_fish_trout", - "weight": 10, - "cost_multiplier": 8, - "conditions": [ "DAWN", "DUSK" ], - "pack_size": [ 1, 3 ] - }, { "monster": "mon_fish_brown_trout", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, { "monster": "mon_fish_brown_trout", @@ -1521,14 +1522,6 @@ "conditions": [ "DAWN", "DUSK" ], "pack_size": [ 1, 3 ] }, - { "monster": "mon_fish_steelhead_trout", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, - { - "monster": "mon_fish_steelhead_trout", - "weight": 10, - "cost_multiplier": 8, - "conditions": [ "DAWN", "DUSK" ], - "pack_size": [ 1, 3 ] - }, { "monster": "mon_fish_kokanee_salmon", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, { "monster": "mon_fish_kokanee_salmon", @@ -1537,30 +1530,6 @@ "conditions": [ "DAWN", "DUSK" ], "pack_size": [ 1, 3 ] }, - { "monster": "mon_fish_chinook_salmon", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, - { - "monster": "mon_fish_chinook_salmon", - "weight": 10, - "cost_multiplier": 8, - "conditions": [ "DAWN", "DUSK" ], - "pack_size": [ 1, 3 ] - }, - { "monster": "mon_fish_coho_salmon", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, - { - "monster": "mon_fish_coho_salmon", - "weight": 10, - "cost_multiplier": 8, - "conditions": [ "DAWN", "DUSK" ], - "pack_size": [ 1, 3 ] - }, - { "monster": "mon_fish_white_bass", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, - { - "monster": "mon_fish_white_bass", - "weight": 10, - "cost_multiplier": 8, - "conditions": [ "DAWN", "DUSK" ], - "pack_size": [ 1, 3 ] - }, { "monster": "mon_fish_walleye", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, { "monster": "mon_fish_walleye", @@ -1593,22 +1562,6 @@ "conditions": [ "DAWN", "DUSK" ], "pack_size": [ 1, 3 ] }, - { "monster": "mon_fish_longear_sunfish", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, - { - "monster": "mon_fish_longear_sunfish", - "weight": 10, - "cost_multiplier": 8, - "conditions": [ "DAWN", "DUSK" ], - "pack_size": [ 1, 3 ] - }, - { "monster": "mon_fish_redear_sunfish", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, - { - "monster": "mon_fish_redear_sunfish", - "weight": 10, - "cost_multiplier": 8, - "conditions": [ "DAWN", "DUSK" ], - "pack_size": [ 1, 3 ] - }, { "monster": "mon_fish_rock_bass", "weight": 6, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, { "monster": "mon_fish_rock_bass", @@ -1761,7 +1714,6 @@ "conditions": [ "DAWN", "DUSK" ], "pack_size": [ 1, 3 ] }, - { "monster": "mon_fish_blinky", "weight": 5, "cost_multiplier": 3, "pack_size": [ 1, 3 ] }, { "monster": "mon_dragonfly_naiad", "weight": 2, "cost_multiplier": 2, "ends": "7 days" }, { "monster": "mon_dragonfly_naiad", @@ -1796,6 +1748,8 @@ { "monster": "mon_scotts_horse", "weight": 5, "cost_multiplier": 0, "pack_size": [ 3, 8 ] }, { "monster": "mon_giant_horse", "weight": 10, "cost_multiplier": 0, "pack_size": [ 3, 8 ] }, { "monster": "mon_camelops", "weight": 5, "cost_multiplier": 0, "pack_size": [ 1, 6 ] }, + { "monster": "mon_glyptotherium", "weight": 10, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_soergoat", "weight": 5, "cost_multiplier": 0, "pack_size": [ 3, 6 ] }, { "monster": "mon_lemming", "weight": 10, @@ -2164,23 +2118,23 @@ "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] }, { - "monster": "mon_frog", - "freq": 30, + "group": "GROUP_FROGS_ALL", + "weight": 30, "cost_multiplier": 2, "ends": 24, "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] }, { - "monster": "mon_frog", - "freq": 35, + "group": "GROUP_FROGS_ALL", + "weight": 35, "cost_multiplier": 2, "starts": 24, "ends": 95, "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] }, { - "monster": "mon_frog", - "freq": 40, + "group": "GROUP_FROGS_ALL", + "weight": 40, "cost_multiplier": 2, "starts": 95, "ends": 180, @@ -2270,9 +2224,8 @@ { "monster": "mon_bat", "weight": 60, "cost_multiplier": 5, "pack_size": [ 6, 32 ] }, { "monster": "mon_bear", "weight": 10, "cost_multiplier": 10, "pack_size": [ 1, 3 ] }, { "monster": "mon_cougar", "weight": 10, "cost_multiplier": 20, "pack_size": [ 1, 2 ] }, - { "monster": "mon_nakedmolerat_giant", "weight": 6, "cost_multiplier": 3 }, { "monster": "mon_mole_cricket", "weight": 6, "cost_multiplier": 3 }, - { "monster": "mon_stag_beetle_larva", "freq": 4, "cost_multiplier": 5 }, + { "monster": "mon_stag_beetle_larva", "weight": 4, "cost_multiplier": 5 }, { "monster": "mon_direwolf", "weight": 10, "cost_multiplier": 5, "pack_size": [ 1, 4 ] }, { "monster": "mon_cave_lion", "weight": 30, "cost_multiplier": 5, "pack_size": [ 1, 4 ] }, { "monster": "mon_shortface", "weight": 10, "cost_multiplier": 5, "pack_size": [ 1, 1 ] }, diff --git a/data/Mainline_mods/Mods/Megafauna/monsters/fauna_blacklist.json b/data/Mainline_mods/Mods/Megafauna/monsters/fauna_blacklist.json index a843c7341..5458c3978 100644 --- a/data/Mainline_mods/Mods/Megafauna/monsters/fauna_blacklist.json +++ b/data/Mainline_mods/Mods/Megafauna/monsters/fauna_blacklist.json @@ -60,8 +60,7 @@ "mon_dog_auscattle_pup", "mon_dog_samoyed", "mon_dog_samoyed_pup", - "mon_tiger", - "mon_rat_king" + "mon_tiger" ] } ] diff --git a/data/Mainline_mods/Mods/Megafauna/monsters/mf_domestic.json b/data/Mainline_mods/Mods/Megafauna/monsters/mf_domestic.json index 016c7454a..8e1bc12b0 100644 --- a/data/Mainline_mods/Mods/Megafauna/monsters/mf_domestic.json +++ b/data/Mainline_mods/Mods/Megafauna/monsters/mf_domestic.json @@ -8,6 +8,7 @@ "bodytype": "horse", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "600 L", "weight": "600 kg", "hp": 400, @@ -21,10 +22,9 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "stab", "amount": 5.0, "armor_penetration": 2 }, { "damage_type": "bash", "amount": 3.0 } ], "dodge": 2, - "armor_bash": 3, "starting_ammo": { "milk_raw": 12 }, "shearing": [ { "result": "wool_staple", "ratio_volume": 0.1 } ], - "harvest": "mammal_large_wool", + "harvest": "pelt_megafauna", "reproduction": { "baby_monster": "mon_shrubox_calf", "baby_count": 1, "baby_timer": 360 }, "baby_flags": [ "SPRING" ], "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 3 }, @@ -37,7 +37,8 @@ "feed": "The %s seems to like you! It lets you pat its shaggy-haired head and seems friendly.", "pet": "The %s lets you pet its shaggy-haired head, mooing loudly in satisfaction." }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "MILKABLE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "MILKABLE" ], + "armor": { "bash": 5, "cut": 7, "stab": 3 } }, { "id": "mon_shrubox_calf", @@ -48,6 +49,7 @@ "bodytype": "dog", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "90 L", "weight": "90 kg", "hp": 80, @@ -60,7 +62,7 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "bash", "amount": 2.0 } ], "dodge": 2, - "harvest": "mammal_small_wool", + "harvest": "pelt_megafauna", "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FRIEND_ATTACKED" ], "placate_triggers": [ "PLAYER_WEAK" ], "upgrades": { "age_grow": 240, "into": "mon_shrubox" }, @@ -77,6 +79,7 @@ "bodytype": "horse", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "400 L", "weight": "400 kg", "hp": 120, @@ -93,10 +96,9 @@ { "damage_type": "bash", "amount": 4.0, "armor_penetration": 2 } ], "dodge": 2, - "armor_bash": 3, "starting_ammo": { "milk_raw": 8 }, "shearing": [ { "result": "wool_staple", "ratio_volume": 0.2 } ], - "harvest": "mammal_large_wool", + "harvest": "pelt_megafauna", "reproduction": { "baby_monster": "mon_woodox_calf", "baby_count": 1, "baby_timer": 360 }, "baby_flags": [ "SPRING" ], "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 3 }, @@ -109,7 +111,8 @@ "feed": "The %s seems to like you! It lets you pat its shaggy-haired head and seems friendly.", "pet": "The %s lets you pet its shaggy-haired head, mooing loudly in satisfaction." }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "PET_WONT_FOLLOW", "MILKABLE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "PET_WONT_FOLLOW", "MILKABLE" ], + "armor": { "bash": 5, "cut": 7, "stab": 3 } }, { "id": "mon_woodox_calf", @@ -120,6 +123,7 @@ "bodytype": "dog", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "60 L", "weight": "60 kg", "hp": 50, @@ -132,7 +136,7 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "bash", "amount": 3.0 } ], "dodge": 2, - "harvest": "mammal_small_wool", + "harvest": "pelt_megafauna", "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FRIEND_ATTACKED" ], "placate_triggers": [ "PLAYER_WEAK" ], "upgrades": { "age_grow": 240, "into": "mon_woodox" }, @@ -140,6 +144,76 @@ "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 7 }, "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "NO_BREED", "CANPLAY" ] }, + { + "id": "mon_soergoat", + "type": "MONSTER", + "name": { "str_sp": "Mayfield's goat" }, + "description": "Soergelia mayfieldi - a sturdily built ruminant, not unlike a goat but more massively built. It has light-brown wool and two vicious looking horns that are curved forward.", + "default_faction": "mega_herbivore", + "bodytype": "horse", + "categories": [ "WILDLIFE" ], + "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], + "volume": "200 L", + "weight": "200 kg", + "hp": 200, + "speed": 120, + "material": [ "flesh" ], + "symbol": "G", + "color": "brown", + "aggression": -10, + "melee_skill": 4, + "melee_dice": 3, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "stab", "amount": 7.0, "armor_penetration": 2 }, { "damage_type": "bash", "amount": 3.0 } ], + "dodge": 3, + "starting_ammo": { "milk_raw": 6 }, + "shearing": [ { "result": "wool_staple", "ratio_volume": 0.1 } ], + "harvest": "pelt_megafauna", + "reproduction": { "baby_monster": "mon_soergoat_kid", "baby_count": 1, "baby_timer": 360 }, + "baby_flags": [ "SPRING" ], + "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 3 }, + "anger_triggers": [ "HURT", "PLAYER_NEAR_BABY" ], + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FRIEND_ATTACKED", "FIRE" ], + "placate_triggers": [ "PLAYER_WEAK" ], + "special_attacks": [ [ "EAT_CROP", 120 ] ], + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to tolerate you! It cocks its head and stares at you with its strange goat-eyes as you approach.", + "pet": "The %s lets you scratch its big belly, letting of a sonorous bleat in satisfaction." + }, + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "MILKABLE" ], + "armor": { "bash": 3, "cut": 4, "stab": 2 } + }, + { + "id": "mon_soergoat_kid", + "type": "MONSTER", + "name": { "str": "Mayfield's goat kid" }, + "description": "A juvenile Mayfield's goat. It's horns have not grown far yet, and its wool is still short, white, and quite fluffy.", + "default_faction": "herbivore", + "bodytype": "dog", + "categories": [ "WILDLIFE" ], + "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], + "volume": "40 L", + "weight": "40 kg", + "hp": 30, + "speed": 100, + "material": [ "flesh" ], + "symbol": "g", + "color": "white", + "melee_skill": 1, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "bash", "amount": 3.0 } ], + "dodge": 2, + "harvest": "pelt_megafauna", + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FRIEND_ATTACKED" ], + "placate_triggers": [ "PLAYER_WEAK" ], + "upgrades": { "age_grow": 240, "into": "mon_soergoat" }, + "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 7 }, + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "NO_BREED", "CANPLAY" ] + }, { "id": "mon_bison", "type": "MONSTER", @@ -149,6 +223,7 @@ "bodytype": "horse", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "1000 L", "weight": "1000 kg", "hp": 420, @@ -162,10 +237,9 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "stab", "amount": 3.0 }, { "damage_type": "bash", "amount": 5.0, "armor_penetration": 2 } ], "dodge": 2, - "armor_bash": 3, "starting_ammo": { "milk_raw": 6 }, "shearing": [ { "result": "wool_staple", "ratio_volume": 0.15 } ], - "harvest": "mammal_large_wool", + "harvest": "pelt_megafauna", "reproduction": { "baby_monster": "mon_bison_calf", "baby_count": 1, "baby_timer": 275 }, "baby_flags": [ "AUTUMN" ], "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 3 }, @@ -174,7 +248,8 @@ "placate_triggers": [ "PLAYER_WEAK" ], "special_attacks": [ [ "EAT_CROP", 120 ] ], "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "PET_WONT_FOLLOW", "MILKABLE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "PET_WONT_FOLLOW", "MILKABLE" ], + "armor": { "bash": 5, "cut": 7, "stab": 3 } }, { "id": "mon_bison_calf", @@ -185,6 +260,7 @@ "bodytype": "dog", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "160 L", "weight": "160 kg", "hp": 150, @@ -197,7 +273,7 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "bash", "amount": 2.0 } ], "dodge": 2, - "harvest": "mammal_small_wool", + "harvest": "pelt_megafauna", "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FRIEND_ATTACKED", "FIRE" ], "placate_triggers": [ "PLAYER_WEAK" ], "upgrades": { "age_grow": 240, "into": "mon_bison" }, @@ -214,6 +290,7 @@ "bodytype": "horse", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "350 L", "weight": "350 kg", "hp": 120, @@ -227,11 +304,10 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "bash", "amount": 5.0, "armor_penetration": 4 } ], "dodge": 2, - "armor_bash": 2, "anger_triggers": [ "FRIEND_ATTACKED" ], "fear_triggers": [ "SOUND", "FIRE" ], "placate_triggers": [ "PLAYER_WEAK" ], - "harvest": "mammal_large_leather", + "harvest": "leather_megafauna", "starting_ammo": { "milk_raw": 2 }, "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 2 }, "special_attacks": [ [ "EAT_CROP", 60 ] ], @@ -239,7 +315,8 @@ "baby_flags": [ "AUTUMN" ], "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, "mountable_weight_ratio": 0.35, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PET_MOUNTABLE", "PATH_AVOID_DANGER_1", "WARM", "MILKABLE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PET_MOUNTABLE", "PATH_AVOID_DANGER_1", "WARM", "MILKABLE" ], + "armor": { "bash": 3, "cut": 4, "stab": 3 } }, { "id": "mon_scotts_foal", @@ -260,7 +337,7 @@ "melee_damage": [ { "damage_type": "bash", "amount": 1.0 } ], "dodge": 3, "anger_triggers": [ ], - "harvest": "mammal_large_leather", + "harvest": "leather_megafauna", "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 2 }, "special_attacks": [ [ "EAT_CROP", 60 ] ], "upgrades": { "age_grow": 240, "into": "mon_scotts_horse" }, @@ -287,6 +364,7 @@ "bodytype": "horse", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "1000 L", "weight": "1000 kg", "hp": 500, @@ -300,11 +378,10 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "bash", "amount": 12.0, "armor_penetration": 4 } ], "dodge": 2, - "armor_bash": 2, "anger_triggers": [ "FRIEND_ATTACKED" ], "fear_triggers": [ "SOUND", "FIRE" ], "placate_triggers": [ "PLAYER_WEAK" ], - "harvest": "mammal_large_leather", + "harvest": "leather_megafauna", "starting_ammo": { "milk_raw": 4 }, "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 2 }, "special_attacks": [ [ "EAT_CROP", 120 ] ], @@ -312,7 +389,8 @@ "baby_flags": [ "AUTUMN" ], "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, "mountable_weight_ratio": 0.35, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PET_MOUNTABLE", "PATH_AVOID_DANGER_1", "WARM", "MILKABLE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PET_MOUNTABLE", "PATH_AVOID_DANGER_1", "WARM", "MILKABLE" ], + "armor": { "bash": 5, "cut": 7, "stab": 3 } }, { "id": "mon_giant_foal", @@ -333,7 +411,7 @@ "melee_damage": [ { "damage_type": "bash", "amount": 5.0 } ], "dodge": 3, "anger_triggers": [ ], - "harvest": "mammal_large_leather", + "harvest": "leather_megafauna", "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 2 }, "special_attacks": [ [ "EAT_CROP", 60 ] ], "upgrades": { "age_grow": 240, "into": "mon_giant_horse" }, @@ -360,6 +438,7 @@ "bodytype": "horse", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology", "prof_wp_megafauna" ], "volume": "1000 L", "weight": "1000 kg", "hp": 400, @@ -373,11 +452,10 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "bash", "amount": 5.0, "armor_penetration": 2 } ], "dodge": 2, - "armor_bash": 2, "anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], "placate_triggers": [ "PLAYER_WEAK" ], - "harvest": "mammal_large_leather", + "harvest": "pelt_megafauna", "starting_ammo": { "milk_raw": 20 }, "shearing": [ { "result": "wool_staple", "ratio_volume": 0.12 } ], "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 2 }, @@ -385,7 +463,8 @@ "reproduction": { "baby_monster": "mon_camelops_foal", "baby_count": 1, "baby_timer": 360 }, "baby_flags": [ "SUMMER" ], "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PET_MOUNTABLE", "PATH_AVOID_DANGER_1", "WARM", "MILKABLE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PET_MOUNTABLE", "PATH_AVOID_DANGER_1", "WARM", "MILKABLE" ], + "armor": { "bash": 6, "cut": 9, "stab": 4 } }, { "id": "mon_camelops_foal", @@ -406,7 +485,7 @@ "melee_damage": [ { "damage_type": "bash", "amount": 1.0 } ], "dodge": 3, "anger_triggers": [ ], - "harvest": "mammal_large_leather", + "harvest": "pelt_megafauna", "shearing": [ { "result": "wool_staple", "ratio_volume": 0.6 } ], "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 2 }, "special_attacks": [ [ "EAT_CROP", 60 ] ], @@ -424,6 +503,7 @@ "bodytype": "pig", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "50 L", "weight": "40 kg", "hp": 40, @@ -438,8 +518,6 @@ "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 4.0, "armor_penetration": 2 }, { "damage_type": "bash", "amount": 2.0 } ], "dodge": 2, - "armor_bash": 1, - "armor_cut": 1, "harvest": "mammal_small_boar", "reproduction": { "baby_monster": "mon_flathead_piglet", "baby_count": 5, "baby_timer": 135 }, "baby_flags": [ "SPRING", "SUMMER", "AUTUMN" ], @@ -449,7 +527,8 @@ "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "HURT", "FIRE" ], "special_attacks": [ [ "EAT_FOOD", 20 ] ], "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It squeals happily as you pet it." }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE", "CANPLAY" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE", "CANPLAY" ], + "armor": { "bash": 2, "cut": 3, "stab": 2 } }, { "id": "mon_flathead_piglet", @@ -489,7 +568,7 @@ "type": "MONSTER", "copy-from": "mon_peccary_flathead", "name": { "str": "long-nosed peccary", "str_pl": "long-nosed peccaries" }, - "description": "A stocky, short-legged, pig-like animal with coarse brown fur. It just a bit smaller than a wild boar, its distant European cousin, but considerably bigger than its close relative, the flat-headed peccary. Different to the latter, they are solitary and more aggresive, but still appreciate good food.", + "description": "A stocky, short-legged, pig-like animal with coarse brown fur. It just a bit smaller than a wild boar, its distant European cousin, but considerably bigger than its close relative, the flat-headed peccary. Different to the latter, they are solitary and more aggressive, but still appreciate good food.", "volume": "90 L", "weight": "70 kg", "hp": 79, @@ -501,13 +580,12 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6.0, "armor_penetration": 2 }, { "damage_type": "bash", "amount": 4.0 } ], "dodge": 2, - "armor_bash": 2, - "armor_cut": 1, "special_attacks": [ [ "EAT_FOOD", 20 ], { "id": "slam", "cooldown": 10 } ], "anger_triggers": [ "PLAYER_NEAR_BABY", "FRIEND_ATTACKED" ], "fear_triggers": [ "SOUND", "FIRE" ], "reproduction": { "baby_monster": "mon_longnose_piglet", "baby_count": 1, "baby_timer": 200 }, - "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "WARM", "CANPLAY" ] + "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "ANIMAL", "PATH_AVOID_DANGER_1", "PET_MOUNTABLE", "WARM", "CANPLAY" ], + "armor": { "bash": 4, "cut": 6, "stab": 4 } }, { "id": "mon_longnose_piglet", diff --git a/data/Mainline_mods/Mods/Megafauna/monsters/mf_predators.json b/data/Mainline_mods/Mods/Megafauna/monsters/mf_predators.json index 7adad1bdb..bb1defe42 100644 --- a/data/Mainline_mods/Mods/Megafauna/monsters/mf_predators.json +++ b/data/Mainline_mods/Mods/Megafauna/monsters/mf_predators.json @@ -8,6 +8,7 @@ "bodytype": "dog", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology", "prof_wp_megafauna" ], "volume": "118 L", "weight": "110 kg", "hp": 110, @@ -21,8 +22,6 @@ "melee_dice": 4, "melee_dice_sides": 6, "dodge": 3, - "armor_bash": 2, - "armor_cut": 2, "melee_damage": [ { "damage_type": "cut", "amount": 6.0, "armor_penetration": 3 }, { "damage_type": "stab", "amount": 5.0, "armor_penetration": 3 } @@ -53,7 +52,8 @@ "WARM", "CANPLAY", "GROUP_MORALE" - ] + ], + "armor": { "bash": 5, "cut": 10, "stab": 5 } }, { "id": "mon_direwolf_cub", @@ -74,7 +74,7 @@ "melee_damage": [ { "damage_type": "stab", "amount": 4.0 } ], "dodge": 2, "upgrades": { "age_grow": 270, "into": "mon_direwolf" }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "NO_BREED", "WARM", "KEENNOSE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "NO_BREED", "WARM", "CANPLAY", "KEENNOSE" ] }, { "id": "mon_sabcat", @@ -85,6 +85,7 @@ "bodytype": "bear", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology", "prof_wp_megafauna" ], "volume": "250 L", "weight": "250 kg", "hp": 250, @@ -101,16 +102,15 @@ { "damage_type": "cut", "amount": 4.0, "armor_penetration": 1, "armor_multiplier": 1.2, "damage_multiplier": 1.4 }, { "damage_type": "stab", "amount": 8.0, "armor_penetration": 8 } ], + "grab_strength": 35, "special_attacks": [ { "id": "cut_throat" }, { "id": "impale", "cooldown": 10 }, [ "LUNGE", 10 ], - [ "GRAB", 10 ], + { "id": "bite_grab" }, { "type": "leap", "cooldown": 10, "max_range": 4 } ], "dodge": 3, - "armor_bash": 6, - "armor_stab": 4, "vision_day": 30, "vision_night": 15, "tracking_distance": 5, @@ -120,6 +120,7 @@ "harvest": "mammal_fur", "reproduction": { "baby_monster": "mon_sabcat_cub", "baby_count": 2, "baby_timer": 720 }, "baby_flags": [ "SPRING" ], + "dissect": "dissect_feline_sample_single", "petfood": { "food": [ "CATFOOD" ], "feed": "The %s seems to like you! It emits a growling purr as you pet it." }, "flags": [ "SEES", @@ -128,13 +129,15 @@ "GOODHEARING", "KEENNOSE", "ANIMAL", + "GRABS", "PATH_AVOID_DANGER_1", "PATH_AVOID_FIRE", "KEEP_DISTANCE", "WARM", "PET_MOUNTABLE", "CANPLAY" - ] + ], + "armor": { "bash": 6, "cut": 10, "stab": 5 } }, { "id": "mon_sabcat_cub", @@ -181,6 +184,7 @@ "bodytype": "bear", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology", "prof_wp_megafauna" ], "volume": "210 L", "weight": "210 kg", "hp": 210, @@ -195,8 +199,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 8.0, "armor_penetration": 2 } ], "dodge": 4, - "armor_bash": 5, - "armor_stab": 3, "vision_day": 22, "vision_night": 10, "path_settings": { "max_dist": 10 }, @@ -204,6 +206,7 @@ "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "FIRE" ], "harvest": "mammal_fur", + "dissect": "dissect_feline_sample_single", "reproduction": { "baby_monster": "mon_cave_lion_cub", "baby_count": 3, "baby_timer": 720 }, "baby_flags": [ "SPRING" ], "flags": [ @@ -217,7 +220,8 @@ "PATH_AVOID_FIRE", "WARM", "HIT_AND_RUN" - ] + ], + "armor": { "bash": 5, "cut": 10, "stab": 5 } }, { "id": "mon_cave_lion_cub", @@ -263,6 +267,7 @@ "bodytype": "dog", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "8600 ml", "weight": "8600 g", "hp": 16, @@ -305,5 +310,88 @@ "dodge": 2, "upgrades": { "age_grow": 90, "into": "mon_bobcat" }, "flags": [ "NO_BREED", "SEES", "HEARS", "GOODHEARING", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "HIT_AND_RUN" ] + }, + { + "type": "MONSTER", + "id": "mon_titanis_walleri", + "name": { "str": "titanis walleri", "str_pl": "titani walleri" }, + "species": "BIRD", + "default_faction": "mega_bird", + "bodytype": "ostrich", + "symbol": "T", + "color": "blue_green", + "volume": "150 L", + "weight": "150 kg", + "material": "flesh", + "aggression": 0, + "morale": 60, + "speed": 190, + "melee_skill": 8, + "melee_dice": 3, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "cut", "amount": 6.0 } ], + "grab_strength": 5, + "dodge": 3, + "luminance": 0, + "hp": 150, + "special_attacks": [ + { "type": "leap", "cooldown": 5, "max_range": 5, "allow_no_target": true }, + [ "LUNGE", 10 ], + { "id": "bite_grab" }, + { "id": "bio_op_takedown", "cooldown": 20 }, + { "id": "grab_drag", "cooldown": 15, "grab_data": { "drag_distance": 2, "drag_movecost_mod": 0.5 } }, + { "id": "drag_followup", "grab_data": { "drag_distance": 2, "drag_movecost_mod": 0.5 } }, + { "id": "mutant_hoof", "dodgeable": true }, + { "id": "scratch_grab_required", "min_mul": 1, "max_mul": 1.5 } + ], + "description": "A large predatory flightless bird with monstrous beak and strong legs. Truly, the dinosaurs never went extinct, they just grew more feathers.", + "reproduction": { "baby_egg": "egg_titanis_walleri", "baby_count": 1, "baby_timer": 540 }, + "baby_flags": [ "SUMMER" ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "GOODHEARING", + "ANIMAL", + "PATH_AVOID_DANGER_1", + "KEENNOSE", + "WARM", + "HIT_AND_RUN", + "PET_MOUNTABLE", + "CANPLAY", + "GROUP_MORALE" + ], + "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 3 }, + "harvest": "bird_large", + "anger_triggers": [ "PLAYER_WEAK", "HURT", "FRIEND_ATTACKED", "PLAYER_CLOSE" ], + "fear_triggers": [ "FIRE", "FRIEND_DIED" ], + "petfood": { + "food": [ "CATFOOD" ], + "feed": "The %s seems to like you! It clicks its beak a few times and lowers its head, allowing you to pet it.", + "pet": "The %s bows to you, clicking its beak while you pat their massive head." + }, + "categories": [ "WILDLIFE" ], + "armor": { "bash": 3, "cut": 2 } + }, + { + "id": "mon_titanis_walleri_chick", + "type": "MONSTER", + "copy-from": "mon_titanis_walleri", + "name": { "str": "titanis walleri chick" }, + "description": "A juvenile titanis walleri. It is already large for a bird, but it is still far from its parent.", + "default_faction": "mega_bird", + "volume": "36 L", + "weight": "36 kg", + "hp": 35, + "speed": 130, + "symbol": "t", + "morale": 20, + "melee_skill": 2, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 4.0 } ], + "dodge": 3, + "upgrades": { "age_grow": 315, "into": "mon_titanis_walleri" }, + "flags": [ "SEES", "HEARS", "GOODHEARING", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "NO_BREED", "WARM", "KEENNOSE", "CANPLAY" ] } ] diff --git a/data/Mainline_mods/Mods/Megafauna/monsters/mf_wild.json b/data/Mainline_mods/Mods/Megafauna/monsters/mf_wild.json index 507a5f4b4..b0fcafb94 100644 --- a/data/Mainline_mods/Mods/Megafauna/monsters/mf_wild.json +++ b/data/Mainline_mods/Mods/Megafauna/monsters/mf_wild.json @@ -8,6 +8,7 @@ "bodytype": "bear", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], "volume": "100 L", "weight": "100 kg", "hp": 100, @@ -26,13 +27,13 @@ { "damage_type": "bash", "amount": 4.0, "armor_penetration": 2 } ], "dodge": 2, - "armor_bash": 3, - "harvest": "mammal_large_fur", + "harvest": "pelt_megafauna", "anger_triggers": [ "HURT", "PLAYER_NEAR_BABY" ], "fear_triggers": [ "SOUND", "FIRE" ], "reproduction": { "baby_monster": "mon_giant_beaver_cub", "baby_count": 4, "baby_timer": 360 }, "baby_flags": [ "AUTUMN" ], - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "SWIMS", "WARM" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "SWIMS", "WARM" ], + "armor": { "bash": 5, "cut": 10, "stab": 5 } }, { "id": "mon_giant_beaver_cub", @@ -63,6 +64,7 @@ "bodytype": "bear", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology", "prof_wp_megafauna" ], "volume": "1000 L", "weight": "1000 kg", "hp": 800, @@ -81,10 +83,7 @@ ], "special_attacks": [ { "id": "longswipe" }, { "id": "smash" }, [ "EAT_CROP", 5 ], [ "EAT_FOOD", 5 ] ], "dodge": 0, - "armor_bash": 10, - "armor_cut": 8, - "armor_stab": 2, - "harvest": "mammal_large_fur", + "harvest": "pelt_megafauna", "anger_triggers": [ "HURT", "PLAYER_NEAR_BABY" ], "shearing": [ { "result": "wool_staple", "ratio_volume": 0.05 } ], "fear_triggers": [ "FIRE" ], @@ -95,7 +94,8 @@ "feed": "The %s seems to like you! It lets you pat its head, giving off a bassy hum.", "pet": "The %s turns on its back and lets you scratch its huge, moss-overgrown belly." }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "SWIMS", "WARM", "PET_MOUNTABLE", "CANPLAY" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "SWIMS", "WARM", "PET_MOUNTABLE", "CANPLAY" ], + "armor": { "bash": 5, "cut": 15, "stab": 10 } }, { "id": "mon_large_claw_sloth_cub", @@ -127,6 +127,7 @@ "bodytype": "horse", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology", "prof_wp_megafauna" ], "volume": "580 L", "weight": "560 kg", "hp": 540, @@ -134,7 +135,7 @@ "material": [ "flesh" ], "symbol": "S", "color": "brown", - "aggression": 0, + "aggression": -10, "morale": 80, "melee_skill": 6, "melee_dice": 3, @@ -142,8 +143,6 @@ "melee_damage": [ { "damage_type": "stab", "amount": 4.0 }, { "damage_type": "bash", "amount": 8.0, "armor_penetration": 5 } ], "special_attacks": [ { "id": "stag_smash" }, { "id": "mutant_antler" }, [ "EAT_CROP", 20 ] ], "dodge": 2, - "armor_bash": 4, - "armor_cut": 2, "vision_night": 7, "path_settings": { "max_dist": 10 }, "starting_ammo": { "milk_raw": 3 }, @@ -151,14 +150,15 @@ "fear_triggers": [ "FIRE", "SOUND" ], "reproduction": { "baby_monster": "mon_stagmoose_cub", "baby_count": 1, "baby_timer": 360 }, "baby_flags": [ "SPRING", "AUTUMN" ], - "harvest": "mammal_large_fur", + "harvest": "pelt_megafauna", "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 8 }, "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to tolerate you. It cautiously lets you pat its head and seems friendly for now.", "pet": "The %s bows down its massive antlered head to nuzzle your face." }, - "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "MILKABLE", "WARM", "CANPLAY" ] + "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "MILKABLE", "WARM", "CANPLAY" ], + "armor": { "bash": 5, "cut": 5, "stab": 5 } }, { "id": "mon_stagmoose_cub", @@ -195,6 +195,7 @@ "bodytype": "elephant", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology", "prof_wp_megafauna" ], "volume": "1000 L", "weight": "1000 kg", "hp": 600, @@ -212,9 +213,6 @@ { "damage_type": "bash", "amount": 8.0, "armor_penetration": 4 } ], "dodge": 1, - "armor_bash": 10, - "armor_cut": 6, - "armor_stab": 4, "vision_night": 5, "path_settings": { "max_dist": 10 }, "shearing": [ { "result": "wool_staple", "ratio_volume": 0.2 } ], @@ -263,7 +261,8 @@ "DESTROYS", "PUSH_MON", "CANPLAY" - ] + ], + "armor": { "bash": 10, "cut": 15, "stab": 5 } }, { "id": "mon_mammoth_cub", @@ -283,7 +282,6 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "bash", "amount": 4.0, "armor_penetration": 1 } ], "dodge": 1, - "armor_bash": 2, "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FIRE" ], "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 3 }, "harvest": "woolly_mammoth_baby", @@ -303,7 +301,8 @@ "PUSH_MON", "CANPLAY" ], - "upgrades": { "age_grow": 450, "into": "mon_mammoth" } + "upgrades": { "age_grow": 450, "into": "mon_mammoth" }, + "armor": { "cut": 5, "stab": 2, "bash": 5 } }, { "id": "mon_mastodon", @@ -314,6 +313,7 @@ "bodytype": "elephant", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology", "prof_wp_megafauna" ], "volume": "1000 L", "weight": "1000 kg", "hp": 670, @@ -331,9 +331,6 @@ { "damage_type": "bash", "amount": 8.0, "armor_penetration": 6 } ], "dodge": 1, - "armor_bash": 12, - "armor_cut": 2, - "armor_stab": 6, "vision_night": 5, "path_settings": { "max_dist": 10 }, "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY", "MATING_SEASON" ], @@ -378,7 +375,8 @@ "DESTROYS", "PUSH_MON", "CANPLAY" - ] + ], + "armor": { "bash": 15, "cut": 10, "stab": 5 } }, { "id": "mon_mastodon_cub", @@ -398,7 +396,6 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "bash", "amount": 4.0, "armor_penetration": 1 } ], "dodge": 1, - "armor_bash": 2, "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 3 }, "harvest": "mammal_large_leather", @@ -417,7 +414,8 @@ "PUSH_MON", "CANPLAY" ], - "upgrades": { "age_grow": 450, "into": "mon_mastodon" } + "upgrades": { "age_grow": 450, "into": "mon_mastodon" }, + "armor": { "cut": 3, "stab": 2, "bash": 2 } }, { "id": "mon_shortface", @@ -428,6 +426,7 @@ "bodytype": "bear", "categories": [ "WILDLIFE" ], "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology", "prof_wp_megafauna" ], "volume": "1000 L", "weight": "950 kg", "hp": 700, @@ -442,16 +441,13 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 6.0, "armor_penetration": 2 }, { "damage_type": "bash", "amount": 6.0 } ], "dodge": 2, - "armor_bash": 10, - "armor_cut": 6, - "armor_stab": 4, "vision_day": 16, "vision_night": 7, "path_settings": { "max_dist": 10 }, "anger_triggers": [ "HURT", "PLAYER_NEAR_BABY", "PLAYER_CLOSE" ], "fear_triggers": [ "FIRE", "SOUND" ], "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 4 }, - "harvest": "mammal_large_fur", + "harvest": "pelt_megafauna", "reproduction": { "baby_monster": "mon_shortface_cub", "baby_count": 1, "baby_timer": 720 }, "baby_flags": [ "SPRING" ], "special_attacks": [ @@ -463,7 +459,8 @@ "damage_max_instance": [ { "damage_type": "bash", "amount": 40 } ] } ], - "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "BASHES", "PUSH_MON" ] + "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "BASHES", "PUSH_MON" ], + "armor": { "bash": 10, "cut": 15, "stab": 5 } }, { "id": "mon_shortface_cub", @@ -486,6 +483,179 @@ "dodge": 2, "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], "upgrades": { "age_grow": 360, "into": "mon_shortface" }, - "flags": [ "NO_BREED", "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "BASHES", "PUSH_MON" ] + "flags": [ "NO_BREED", "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM" ] + }, + { + "id": "mon_auk", + "type": "MONSTER", + "name": { "str": "great auk" }, + "description": "A large flightless sea bird that bears some resemblance to penguins, although it has a much larger beak. It has a black and white coat with a characteristic white spot around its eyes.", + "default_faction": "small_animal", + "bodytype": "bird", + "categories": [ "WILDLIFE" ], + "species": [ "BIRD" ], + "families": [ "prof_intro_biology", "prof_wp_basic_bird" ], + "volume": "25 L", + "weight": "5000 g", + "hp": 21, + "speed": 100, + "material": [ "flesh" ], + "symbol": "A", + "color": "light_blue", + "aggression": -10, + "morale": 25, + "melee_dice": 1, + "melee_dice_sides": 1, + "melee_damage": [ { "damage_type": "cut", "amount": 1 } ], + "dodge": 3, + "harvest": "bird_large", + "dissect": "dissect_bird_sample_single", + "vision_day": 50, + "fear_triggers": [ "PLAYER_CLOSE", "FRIEND_DIED", "FIRE", "HURT" ], + "reproduction": { "baby_egg": "egg_auk", "baby_count": 1, "baby_timer": 360 }, + "baby_flags": [ "SUMMER" ], + "biosignature": { "biosig_item": "feces_bird", "biosig_timer": 8 }, + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "SWIMS" ] + }, + { + "id": "mon_auk_chick", + "type": "MONSTER", + "copy-from": "mon_chicken_chick", + "description": "A tiny grey-colored chick, it could be from a number of different species.", + "name": { "str": "white chick" }, + "upgrades": { "age_grow": 28, "into": "mon_auk" } + }, + { + "id": "mon_glyptotherium", + "type": "MONSTER", + "name": { "str": "glyptotherium", "str_pl": "glyptotherii" }, + "description": "A huge herbivore that almost resembles a giant tortoise due to its hard outer shell, although it is a close relative to armadillos. Normally, this species prefers much warmer climates. This individual probably lost its way at some point.", + "default_faction": "mega_herbivore", + "bodytype": "bear", + "categories": [ "WILDLIFE" ], + "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology", "prof_wp_megafauna" ], + "volume": "1000 L", + "weight": "1000 kg", + "hp": 600, + "speed": 90, + "material": [ "flesh" ], + "symbol": "G", + "color": "brown", + "aggression": -10, + "morale": 40, + "melee_skill": 8, + "melee_dice": 3, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "bash", "amount": 8.0, "armor_penetration": 1 } ], + "dodge": 2, + "vision_day": 10, + "vision_night": 4, + "path_settings": { "max_dist": 10 }, + "anger_triggers": [ "HURT" ], + "fear_triggers": [ "SOUND" ], + "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 4 }, + "harvest": "glyptotherium", + "reproduction": { "baby_monster": "mon_glyptotherium_young", "baby_count": 1, "baby_timer": 120 }, + "baby_flags": [ "SPRING" ], + "special_attacks": [ + [ "EAT_FOOD", 60 ], + { + "id": "smash", + "cooldown": 20, + "throw_strength": 50, + "damage_max_instance": [ { "damage_type": "bash", "amount": 50 } ] + } + ], + "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "PUSH_MON" ], + "armor": { "bash": 10, "cut": 25, "stab": 20 } + }, + { + "id": "mon_glyptotherium_young", + "type": "MONSTER", + "copy-from": "mon_shortface", + "name": { "str": "glyptotherium young" }, + "description": "A juvenile glyptotherium. Its shell is not quite fully developed, having an almost leathery feel to it.", + "default_faction": "bear", + "volume": "200 L", + "weight": "180 kg", + "hp": 80, + "speed": 80, + "symbol": "g", + "morale": 20, + "aggression": -20, + "melee_skill": 2, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "bash", "amount": 2.0 } ], + "dodge": 3, + "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], + "harvest": "mammal_large_leather", + "upgrades": { "age_grow": 360, "into": "mon_glyptotherium" }, + "flags": [ "NO_BREED", "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM" ], + "armor": { "bash": 4, "cut": 10, "stab": 5 } + }, + { + "id": "mon_american_zebra", + "type": "MONSTER", + "name": { "str": "American zebra" }, + "description": "A hooved grazing mammal with a brown-and-white striped coat. .", + "default_faction": "herbivore", + "bodytype": "horse", + "categories": [ "WILDLIFE" ], + "species": [ "MAMMAL" ], + "families": [ "prof_intro_biology" ], + "volume": "280 L", + "weight": "280 kg", + "hp": 90, + "speed": 180, + "material": [ "flesh" ], + "symbol": "Z", + "color": "white", + "morale": 50, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "bash", "amount": 5.0, "armor_penetration": 4 } ], + "dodge": 2, + "anger_triggers": [ "HURT", "FRIEND_ATTACKED" ], + "fear_triggers": [ "SOUND", "FIRE" ], + "placate_triggers": [ "PLAYER_WEAK" ], + "harvest": "mammal_large_leather", + "starting_ammo": { "milk_raw": 1 }, + "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 2 }, + "special_attacks": [ [ "EAT_CROP", 60 ] ], + "reproduction": { "baby_monster": "mon_zebra_foal", "baby_count": 1, "baby_timer": 360 }, + "baby_flags": [ "AUTUMN" ], + "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, + "mountable_weight_ratio": 0.3, + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PET_MOUNTABLE", "PATH_AVOID_DANGER_1", "WARM", "MILKABLE" ], + "armor": { "bash": 5, "cut": 10, "stab": 5 } + }, + { + "id": "mon_zebra_foal", + "type": "MONSTER", + "name": { "str": "Scott's horse foal" }, + "description": "A juvenile American zebra. It gallops around its parent excitedly, throwing around its head joyously.", + "copy-from": "mon_american_zebra", + "volume": "60 L", + "weight": "60 kg", + "hp": 35, + "speed": 160, + "symbol": "z", + "color": "white", + "morale": 20, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "bash", "amount": 1.0 } ], + "dodge": 3, + "anger_triggers": [ "HURT" ], + "harvest": "mammal_large_leather", + "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 2 }, + "special_attacks": [ [ "EAT_CROP", 60 ] ], + "upgrades": { "age_grow": 240, "into": "mon_american_zebra" }, + "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PET_MOUNTABLE", "PATH_AVOID_DANGER_1", "WARM", "NO_BREED" ] } ] diff --git a/data/Mainline_mods/Mods/Megafauna/proficiencies/mf_weakpoints.json b/data/Mainline_mods/Mods/Megafauna/proficiencies/mf_weakpoints.json new file mode 100644 index 000000000..45732e4ab --- /dev/null +++ b/data/Mainline_mods/Mods/Megafauna/proficiencies/mf_weakpoints.json @@ -0,0 +1,14 @@ +[ + { + "type": "proficiency", + "id": "prof_wp_megafauna", + "category": "prof_weakpoint", + "name": { "str": "Megafaunal Biology" }, + "description": "You are familiar with the general anatomy of megafauna, and can exploit potential weaknesses.", + "required_proficiencies": [ "prof_intro_biology" ], + "can_learn": true, + "time_to_learn": "6 h", + "default_weakpoint_bonus": 4, + "default_weakpoint_penalty": -2 + } +] diff --git a/data/Mainline_mods/Mods/Megafauna/readme.md b/data/Mainline_mods/Mods/Megafauna/readme.md index 627a04a21..8f5779f7b 100644 --- a/data/Mainline_mods/Mods/Megafauna/readme.md +++ b/data/Mainline_mods/Mods/Megafauna/readme.md @@ -14,7 +14,7 @@ The mod aims to provide a more realistic fauna for wilderness/stone age playthro Geographically, species from modern day New England are the focus, again for a more coherent, realistic feel. If evidence is found not too far away in not too different climates (e.g., Great Lakes) thats alright too. If remains of a species have only been found in, e.g., New Mexiko and Texas, they probably wont feature here. **NOTE** -This mod is still work-in-progress, but a basic set of 17 new Pleistocene-era animals is available, should spawn in new games and be generally useful especially for innawood players. +This mod is still work-in-progress, but a basic set of 21 new Pleistocene-era animals is available, should spawn in new games and be generally useful especially for innawood players. **full list of new animals** - woolly mammoths @@ -33,58 +33,66 @@ This mod is still work-in-progress, but a basic set of 17 new Pleistocene-era an - ancient bison - scott's horse - camelops (giant American camel species) +- giant horse +- glyptotherium +- great auk +- Mayfield's goat +- American zebra **domesticated replacements** *Usage* (modern analogue): MEGAFAUNA replacement -*meat/leather production* (pigs) = flat headed peccaries (sligthly smaller, but otherwise sameish use). +*meat/leather production* (pigs) = flat headed peccaries (slightly smaller, but otherwise sameish use). -*wool* (sheep) = mammoths, if you are brave enough. otherwise bison, camelops, oxen, giant sloth and muskox [WIP]. +*wool* (sheep) = mammoths, if you are brave enough. otherwise bison, camelops, oxen, giant sloth, mayfields goat, and muskox [WIP]. -*milk* (cow, goat) = bison, oxen, horse and camelops are milkable, but with varying efficiency. +*milk* (cow, goat) = bison, oxen, horse, Mayfield's goat and camelops are milkable, but with varying efficiency. -*transport* (horse, cow) = long nose peccary, scotts horse, mammoth/Mastodon, bison/ox, camelops are rideable. +*transport* (horse, cow) = long nose peccary, scotts horse, giant horse, mammoth/Mastodon, bison/ox, American zebra, camelops are rideable. -*eggs* (chicken, ducks, geese) = Auks[WIP]; ducks and geese are still in. +*eggs* (chicken, ducks, geese) = Auks; ducks and geese are still in. -*pet* (dogs, cats) = dire wolves and sabre cats are tamable pets, a few other tameable creatures can be petted as well. +*pet* (dogs, cats) = bobcats, dire wolves and sabre cats are tamable pets, a few other tameable creatures can be petted as well. **Development Notes/ToDo** **ToDo** *potential candidates for addition with dubious range, or more research needed, or just more time* -- Soergelia meyfeldis, goatlike (need more research); https://en.wikipedia.org/wiki/Soergelia; -- Great Auk (Pinguinus impennis), much later extinction but everything else fits, so indeed: why not? -- Glyptodonts, possibly (https://en.wikipedia.org/wiki/Glyptodont) -- Harringtonhippus Francesci (https://en.wikipedia.org/wiki/Haringtonhippus) +- [done]Soergelia mayfeldis, goatlike; https://en.wikipedia.org/wiki/Soergelia; +- [done]Great Auk (Pinguinus impennis), much later extinction but everything else fits, so indeed: why not? +- [done]Glyptotherium, possibly (https://en.wikipedia.org/wiki/Glyptotherium) - Horses: - Equus Lambei (https://en.wikipedia.org/wiki/Equus_lambei) - - Hagerman Horse (American Zebra) https://en.wikipedia.org/wiki/Hagerman_horse + - [done]Hagerman Horse (American Zebra) https://en.wikipedia.org/wiki/Hagerman_horse - [done]Giant Horse (equus giganteus) https://en.wikipedia.org/wiki/Equus_giganteus - Haringtonhippus https://de.wikipedia.org/wiki/Haringtonhippus - Homotherium (scimitar-toothed cat) (https://en.wikipedia.org/wiki/Homotherium) - American Cheetah (https://en.wikipedia.org/wiki/American_cheetah) - Tapir veroensis https://en.wikipedia.org/wiki/Tapirus_veroensis -- Ringed Seal https://en.wikipedia.org/wiki/Ringed_seal +- Harbor Seal https://en.wikipedia.org/wiki/Harbor_seal (mainline?) - arctic fox https://en.wikipedia.org/wiki/Arctic_fox +- more ground sloth + - https://en.wikipedia.org/wiki/Nothrotheriops (smaller, 1/3 approx.; social life unclear, but lets say these are herds) + - https://en.wikipedia.org/wiki/Paramylodon (very big as well, solitary) + Possibly also some birds (Titanis/Paracrax/Aiolornis, Auk), if evidence exists and they are cool. -Possibly some kind of goat, maybe extinct pronghorn species? Add new monsters to monster groups/implement spawn: - tweak spawn rates [done] -- consider if spawns should occour in specific types of region (meaning, costum moster groups apart from "forest") [done] +- consider if spawns should occur in specific types of region (meaning, custom monster groups apart from "forest") [done] - extra: make "family" monstergroups that spawn adults and juveniles together in the appropriate season *tests and tweaks* - revamp descriptions (goal is immersive description, not wiki info or strategies how to deal with them) [done] - introduce factions[done] + -introduce more finegrained, species based factions - tweak speed and sizes: -> f.e., panthera atrox apparently bigger than smilodon? -> giant short faced bear might have been quite fast due to characteristically long limbs - -> dire wolf might have been slower than modern wolves due to shorter limbs(theorized that scavanger more than hunter) + -> dire wolf might have been slower than modern wolves due to shorter limbs(theorized that scavenger more than hunter) - tweak reproduction data (gestation times, grow-up-times etc) - add weakpoints - flesh out behaviour (like scent_tracked) @@ -94,13 +102,31 @@ Think of cool stuff to do with animal products, like sabrecat teeth or mammoth t In any case, think about if recipes need to be adjusted for anything. [done]Think about how some of these could fill gaps for farming, like peccaries as substitute for pig/boars, or anything woolly for... wool. [done]Maybe some flavourful special attacks -Think of specials that could fit (mammoth graveyard, sabrecat caves, watering holes with lots of animals, giant sloth burrows) + +Think of specials that could fit: + - mammoth graveyard + - special sabrecat and cave lion caves + - watering holes with lots of animals- + - giant sloth burrows + - rocky islands for auks + - tar pits + +Mutations/Mutagen line fitting the setting: + - Mammoth (look at mastodon in Aftershock?) + - Sabre Cat + - Glyptodon/Armadillo + - Ground sloth + +*Items* +- weapons made from mammoth tusk +- armor/cover made from glyptotherium shell +- unique euqipment for tameables (Sloth saddles, special saddle bags, armor) + *Unlikely, but not unthinkable future additions* More widespread scope both timeframe and geographically (e.g., from coast to coast + 0.2ma range "when modern humans existed") Late Pleistocene Flora Touch mapgen to create more realistic Pleistocene biomes -Mutations/Mutagen line fitting the setting (Mammoth Mutagen, for example) *Issues* - Scotts horse too flimsy to ride (either increase stats a little, or circumvent by introducing giant horses) [done] diff --git a/data/Mainline_mods/Mods/Megafauna/recipes/recipe_others.json b/data/Mainline_mods/Mods/Megafauna/recipes/recipe_others.json new file mode 100644 index 000000000..c51de951f --- /dev/null +++ b/data/Mainline_mods/Mods/Megafauna/recipes/recipe_others.json @@ -0,0 +1,50 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mammoth_shelter_kit", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "skills_required": [ "fabrication", 1 ], + "difficulty": 2, + "time": "4 h", + "autolearn": true, + "qualities": [ { "id": "SEW", "level": 1 }, { "id": "LEATHER_AWL", "level": 1 }, { "id": "CUT", "level": 2 } ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic", "required": false, "time_multiplier": 2, "skill_penalty": 0.5 }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures", "required": false, "time_multiplier": 1.5 }, + { "proficiency": "prof_closures_waterproofing" } + ], + "components": [ + [ [ "large_bone", 8 ], [ "mammoth_tusk", 2 ] ], + [ [ "leather", 64 ], [ "sheet_leather_patchwork", 8 ], [ "tanned_hide", 8 ], [ "tanned_pelt", 8 ] ], + [ [ "filament", 40, "LIST" ] ] + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "large_mammoth_shelter_kit", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_OTHER", + "skill_used": "survival", + "skills_required": [ "fabrication", 3 ], + "difficulty": 4, + "time": "8 h", + "autolearn": true, + "qualities": [ { "id": "SEW", "level": 1 }, { "id": "LEATHER_AWL", "level": 1 }, { "id": "CUT", "level": 2 } ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic", "required": false, "time_multiplier": 2, "skill_penalty": 0.5 }, + { "proficiency": "prof_leatherworking" }, + { "proficiency": "prof_closures", "required": false, "time_multiplier": 1.5 }, + { "proficiency": "prof_closures_waterproofing" } + ], + "components": [ + [ [ "large_bone", 24 ], [ "mammoth_tusk", 6 ] ], + [ [ "leather", 192 ], [ "sheet_leather_patchwork", 24 ], [ "tanned_hide", 24 ], [ "tanned_pelt", 24 ] ], + [ [ "filament", 120, "LIST" ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/Military_Professions/modinfo.json b/data/Mainline_mods/Mods/Military_Professions/modinfo.json index d5eb89411..757c6f4af 100644 --- a/data/Mainline_mods/Mods/Military_Professions/modinfo.json +++ b/data/Mainline_mods/Mods/Military_Professions/modinfo.json @@ -6,6 +6,6 @@ "description": "Numerous military themed professions", "category": "rebalance", "dependencies": [ "dda" ], - "obsolete": false + "obsolete": true } ] diff --git a/data/Mainline_mods/Mods/Military_Professions/npc/NC_ARMY.json b/data/Mainline_mods/Mods/Military_Professions/npc/NC_ARMY.json index 80d30e3ef..82961b7cf 100644 --- a/data/Mainline_mods/Mods/Military_Professions/npc/NC_ARMY.json +++ b/data/Mainline_mods/Mods/Military_Professions/npc/NC_ARMY.json @@ -161,7 +161,11 @@ "type": "item_group", "id": "NC_ARMY_rifle", "subtype": "distribution", - "entries": [ { "item": "m4a1", "prob": 50 }, { "item": "m14ebr", "prob": 35 }, { "item": "m249", "prob": 20 } ] + "entries": [ + { "item": "modular_m4_carbine", "variant": "modular_m4a1", "prob": 50 }, + { "item": "m14ebr", "prob": 35 }, + { "item": "m249", "prob": 20 } + ] }, { "type": "item_group", diff --git a/data/Mainline_mods/Mods/Military_Professions/npc/NC_OPS.json b/data/Mainline_mods/Mods/Military_Professions/npc/NC_OPS.json index c9c06649e..661d70485 100644 --- a/data/Mainline_mods/Mods/Military_Professions/npc/NC_OPS.json +++ b/data/Mainline_mods/Mods/Military_Professions/npc/NC_OPS.json @@ -135,7 +135,7 @@ { "type": "item_group", "id": "NC_OPS_rifle", - "items": [ [ "m4a1", 50 ], [ "m14ebr", 35 ], [ "m249", 20 ], [ "h&k416a5", 50 ], [ "M24", 35 ] ] + "items": [ [ "modular_m4_carbine", 50 ], [ "m14ebr", 35 ], [ "m249", 20 ], [ "modular_m27_assault_rifle", 50 ], [ "M24", 35 ] ] }, { "type": "item_group", diff --git a/data/Mainline_mods/Mods/Military_Professions/prof/army.json b/data/Mainline_mods/Mods/Military_Professions/prof/army.json index 156768fd4..0a36de44d 100644 --- a/data/Mainline_mods/Mods/Military_Professions/prof/army.json +++ b/data/Mainline_mods/Mods/Military_Professions/prof/army.json @@ -24,7 +24,13 @@ "ballistic_vest_esapi" ], "entries": [ - { "item": "m4a1", "ammo-item": "556", "charges": 30, "contents-item": [ "shoulder_strap", "acog_scope", "grip" ] }, + { + "item": "modular_m4_carbine", + "variant": "modular_m4a1", + "ammo-item": "556", + "charges": 30, + "contents-item": [ "shoulder_strap", "acog_scope", "grip" ] + }, { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, { "item": "tacvest", "contents-group": "army_mags_m4" }, { "item": "knife_combat", "container-item": "sheath" }, @@ -129,7 +135,13 @@ "ballistic_vest_esapi" ], "entries": [ - { "item": "m4a1", "ammo-item": "556", "charges": 30, "contents-item": [ "shoulder_strap", "holo_sight", "m203" ] }, + { + "item": "modular_m4_carbine", + "variant": "modular_m4a1", + "ammo-item": "556", + "charges": 30, + "contents-item": [ "shoulder_strap", "holo_sight", "m203" ] + }, { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, { "item": "tacvest", "contents-group": "army_mags_m4" }, { "item": "40x46mm_m433", "charges": 4, "container-item": "grenade_pouch" }, diff --git a/data/Mainline_mods/Mods/Military_Professions/prof/spc.json b/data/Mainline_mods/Mods/Military_Professions/prof/spc.json index 7c31adcf6..6fc36212a 100644 --- a/data/Mainline_mods/Mods/Military_Professions/prof/spc.json +++ b/data/Mainline_mods/Mods/Military_Professions/prof/spc.json @@ -37,7 +37,7 @@ }, { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, { "item": "tacvest", "contents-group": "army_mags_300blk" }, - { "item": "knife_rambo", "container-item": "scabbard" }, + { "group": "knife_rambo_full", "container-item": "scabbard" }, { "item": "XL_holster", "contents-group": "holster_supp_MEU" }, { "item": "legpouch_large", "contents-group": "army_mags_1911" } ] diff --git a/data/Mainline_mods/Mods/MindOverMatter/NewPowerGuide.md b/data/Mainline_mods/Mods/MindOverMatter/NewPowerGuide.md new file mode 100644 index 000000000..c981781d7 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/NewPowerGuide.md @@ -0,0 +1,48 @@ +# Adding New Powers + +When adding powers, keep the following in mind: + +1) Choose a Difficulty, which is important for determining how much Drain the power causes. +2) Make sure to use the "extra_effects" field to apply drain +3) Make sure the power has some element of randomness--unlike magical spells, psionic powers are not completely predictable. The standard formula I've used is generally { "math": [ "( ( (u_val('spell_level', 'spell: [NAME]') * [LEVELED_VALUE]) + [BASE_VALUE]) * ( ( u_val('intelligence') + 10) / 20 ) )" ] }. This makes sure that the power scales appropriately with its level and also that its effects are modified by intelligence: +5% effectiveness for every point of intelligence above 10, -5% for every point below 10. Generally damage, duration, and range are all scaled this way, while maximum level is a simple 1.5 * intelligence. +4) Make sure the power has connections to other powers, either teaching them or being learned by them. +5) If the power is low-level enough that it should be a starting power, add it in to the EOC_Matrix_Awakening and EOC_Portal_Awakening EoCs to make sure that it's learned when awakening, as well as the appropriate professions. +6) Write a practice recipe for the power and add it to the appropriate EOC_learn_recipes EoC. Psionic practice recipes are found in recipes/practice. The numbers within are drawn from spellbook reading XP rates and teach Difficulty 1 2 3 and powers up to level 12, Difficulty 4 and 5 powers up to level 10, and Difficulty 6 and 7 powers up to level 7. +7) Make sure the power is random in some way--existing powers make heavy use of the RANDOM_DAMAGE and RANDOM_DURATION flags so that they're never completely predictable. + +I've tried to keep each particular psionic path balanced in the amount of powers, though the nature of the powers makes any kind of real balance impossible--teleportation is simply better than most other paths simply because it lets you always choose your battles. + +# Maintaining the Theme + +It's deliberate that I use the word "powers" repeatedly in the above description instead of the code terminology of spells--even though game-style psionics were basically an excuse for science fiction authors to include magic into their works, Mind Over Matter powers should feel different than magic. It's very important that new powers fit the theme of using your mind to activate them rather than chanting and making gestures or studying musty tomes. I've tried to go for a moderate level of power--psionics are not subtle and a powerful pyrokinetic can blow up a house, but I've deliberately excluded powers that I felt were too close to magic: see below for limitations. + +# Intelligence Bonuses + +Because of the cascading effects of increased intelligence on the effectiveness of psionic powers, there are deliberately no effects in Mind Over Matter that increase intelligence. + +# Path Capabilities + +Each path should have well-defined capabilities and limitations to prevent thematic dilution: + +Biokinesis Can: Improve base human capabilities, making the psion stronger, faster, tougher, and better in combat. Allow superhuman but understandable feats, such as Sealed System's holding one's breath while fighting in melee combat for minutes at a time or Hardened Skin's turning aside blades. Allow minor temporary alteration of appearance by moving muscles and bones around, just enough to work as a disguise. Replace very simple tools such as hammers or wrenches. Allow the psions to maintain good motor function and vigor into very old age. +Biokinesis Can't: Allow the psion to perform feats that are impossible for human biology, such as breathing chlorine gas without injury, flying, or seeing into the infrared spectrum. Allow the psion to shapeshift in any capacity or use their body parts as replacements for tools such as mining picks or wood saws. Heal the psion. + +Clairsentience Can: See a few seconds into the future. Enhance the psion's mundane senses to see, hear, smell, touch, or taste as well or better than as an animal. Perform feats impossible with mundane senses, such as seeing in complete darkness, or seeing through walls, or hearing radio transmissions, or smelling carbon monoxide. Allow the psion to remove any impediment to the clarity of their senses, such as intoxication, poison or disease, or psychosis. +Clairsentience Can't: Make prophecies or other long-term future predictions. Affect the senses of others. Restore the psion's natural senses if they've been damaged (though the psion can use Clairsentience to overcome whatever natural damage they've suffered). Cure blob psychosis. + +Pyrokinesis Can: Create fire out of nothing, including on nonflammable surfaces. Protect the psion from excessive heat or flames. Create light or glowing patches in the air or around objects or people. Direct fire to move in unnatural ways, or to go through places with no flammable medium to transfer it. Heat the air around the psion to maintain a comfortable temperature. +Pyrokinesis Can't: Make fire solid or flow like liquid. Transform part of the psion's body into "living flame." Create or manipulate cold. Create fire inside objects or people. + +Telekinesis Can: Lift objects or beings and throw them with enough force to cause damage. Speed or slow the movement of objects near the psion enough to protect them from damage (e.g. inertial Barrier). Allow the psion to fly. Perform simple manipulation such as picking up a quarter off a table or taking a gun out of holster. Force another person to move in crude ways, such as dropping a weapon or falling to the floor. +Telekinesis Can't: Create tangible objects or platforms that the psion or another person can pick up and use. Perform complex manipulation such as picking a lock or programming a computer. Force another person to move in natural ways, such as walking smoothly or picking up a coffee cup. + +Telepathy Can: Read the surface thoughts of others. Disrupt their thinking or brain function, possibly leading to permanent injury or death. Improve concentration and thinking efficiency. Take direct control of others' minds. Read the minds of sapient alien species (mi-go, yrax, triffids). Learn information deeper than surface thoughts, in the form of images or dream-like impressions. Make brainwashing or cult recruitment much easier. Protect the psion from telepathic attacks or being noticed by otherworldly entities during a portal storm. Directly edit the psion's own thoughts or memories. Make another person forget the last few minutes (short-term memory only). Influence the attitude of others in small ways, such as changing indifference into willingness to listen or readiness to attack into veiled hostility. +Telepathy Can't: Create permanent personality changes that do not stem from brain damage caused by telepathic attack. Overcome language barriers. Make the psion more intelligent. Read or affect the mind of beings which don't have a conventional mind (zombies, robots, yrax constructs, mycus, some Nether inhabitants). Cure blob psychosis or restore ferals to their former selves. Directly edit another's thoughts or long-term memories. + +Teleportation Can: Allow the psion to move without crossing the intervening distance. "Warp space" such that distances take longer or shorter to traverse than they appear that they should. Teleport objects out of or into people's hands. Teleport the psion to other realities or to the Nether (possible endgame--extremely powerful teleporter just leaves?). Teleport safely to unseen nearby locations. +Teleportation Can't: Teleport only part of a creature, such as teleporting a zombie's head off or a feral's heart out of their chest. Teleport other people, or the psion themselves, into walls or solid rock (the nature of their powers prevents unsafe teleporting). Travel through time. Teleport long distances to places the psion has never seen. + +Vitakinesis Can: Speed up healing to preternatural levels, healing broken bones in days and grievous wounds in hours. Resist disease and poisoning. Cure some deleterious traits such as deafness or blindness, with an appropriate channeling time and recovery period. Regrow lost limbs. Obviate the need for sleep. Transfer diseases to or from other people. Affect the healing rates of others, speeding them up or slowing them down. Extend the psion's lifespan, possibly indefinitely. +Vitakinesis Can't: Instantly close wounds. Cure mutations that change the fundamental shape of the body, such as a tail or paws. Cause serious wounds in others. Extend others' lifespans. Cure blob psychosis or restore ferals to their former selves. + +Matrix technology can overcome a few of the above-listed limitations. diff --git a/data/Mainline_mods/Mods/MindOverMatter/README.md b/data/Mainline_mods/Mods/MindOverMatter/README.md new file mode 100644 index 000000000..a87c357e7 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/README.md @@ -0,0 +1,46 @@ +# Mind Over Matter +A Psionics mod for Cataclysm: Dark Days Ahead + +This mod adds (currently) seven separate psionic power paths to Cataclysm, including: + +1) Biokinesis - Control of the body. Biokinetics can become stronger and faster than an ordinary human, and even change their form in limited ways. (starting profession: Star Athlete) +2) Clairsentience - Extending the senses beyond the body. Clairsentients can see in the dark and through walls, and eventually gain a bird's eye view of their surroundings, as well as perform in combat by anticipating their enemies' movements. (starting profession: Doomseer) +3) Pyrokinesis - Manipulating fire and heat. Pyrokinetics can start fires and protect themselves from heat, and even cover their whole body in raging flames to discourage attack (starting profession: Firestarter) +4) Telekinesis - Moving objects at a distance. Telekinetics can pull objects to them and hurl their enemies away, and even collapse buildings or shield themselves with a barrier of telekinetic force. (starting profession: Test Subject, Project ONYX LIGHTNING) +5) Telepathy - Control of the mind. Telepaths can become more persuasive and shield their presence from their enemies, and a powerful one can seize control of their enemies' minds. (starting profession: Government Interrogater (DECEASED)) +6) Teleportation - Moving without crossing the intervening distance. Teleporters can escape danger and move quickly, and at higher levels they can travel long distances across the ravaged earth or hurl their enemies away to the space between dimensions. (starting profession: Itzcuauhtli Corps Liaison, Yohualli Èhecatl Division) +7) Vitakinesis - Control of health and injury. Vitakinetics can bind their own wounds and speed healing, eventually recovering from even near-crippling injuries. (starting profession: Faith Healer) + +If you would like a random power path, pick the profession "Awakening Psion." + +The goal is for each path to be upgraded through usage, since sitting and studying a book for hours doesn't really fit the fiction of improving psychic powers. Powers are gained progressively, with increasing mastery of lower-tier powers unlocking new ones. Powers are based on a new skill called "metaphysics" which you can learn through recipes found from appropriate books in the world. + +ADVANTAGES + +1) Psionic powers are fast. Many powers take less than 100 moves to use, with high-level powers sometimes taking much less (a level 10 Telekinetic Hand takes only 10 moves!), reflecting that they are as fast as thought. + +2) Powers use Stamina as their power source, meaning that a fully-charged psychic is only a five-minute breather away. +3) Powers are generally very quiet (generally. Pyrokinesis is very loud) + +DISADVANTAGES + +1) Powers use Stamina as their power source. This is also a disadvantage because every power use reduces your ability to run away. +2) All powers require concentration and thus are affected by Focus. It's very difficult to concentrate enough to lift a pursuing boomer if you've just fought off a grappler in close range and there's blood all around you. + +3) Long-term power use is debilitating--powers have a chance to cause Drain, which will gradually reduce your maximum Stamina, Strength, Dexterity, and Perception as well as make you hungry and tired. Drain goes away naturally on its own with rest. (I would have used weariness but that's impossible) + +GAINING POWERS + +The easiest way to gain psionics is to pick a profession that starts with them (or debug them in). There are also some strange crystals you might find in places with a strong connection with the Nether, or which are carried by psychic ferals. Or you could walk out into a portal storm unprotected. + +Listen to the voices. + +Bathe in the energies of the Nether. + +We have such sights to show you. + +WAIT, STAMINA? + +I realize it's a bit counterintuitive that taking Indefatiguable or mutating mouse will make you a better psychic, but this was the best solution I could think of for compatibility. There's no way to implement cooldowns for individual powers and I don't want to use mana and make it regenerate very fast for psychics because that breaks compatibility with every single magic mod out there. Fatigue or Weariness would also fit but it's not currently possible to use Fatigue as a spell power source without adding a custom extra effect for every single power, and not possible to interact with Weariness at all, so until that's an option or there's a way to make a custom power pool, Stamina it is. + +Weariness is still my goal here, but until it's possible to use it in spells Drain (described above) is the substitute. \ No newline at end of file diff --git a/data/Mainline_mods/Mods/MindOverMatter/achievements.json b/data/Mainline_mods/Mods/MindOverMatter/achievements.json new file mode 100644 index 000000000..2b1ce7a44 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/achievements.json @@ -0,0 +1,10 @@ +[ + { + "id": "teleported_offworld", + "type": "achievement", + "name": "Quantum Leapt", + "description": "There's so many worlds out there. Why stick with just one?", + "manually_given": true, + "requirements": [ ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/activity_types.json b/data/Mainline_mods/Mods/MindOverMatter/activity_types.json new file mode 100644 index 000000000..7ba2a8ee3 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/activity_types.json @@ -0,0 +1,10 @@ +[ + { + "id": "ACT_VITAKIN_BANISH_FOLLOWER_ILLNESS", + "type": "activity_type", + "activity_level": "LIGHT_EXERCISE", + "interruptable": false, + "verb": "meditating", + "based_on": "time" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/damage_types.json b/data/Mainline_mods/Mods/MindOverMatter/damage_types.json new file mode 100644 index 000000000..831b0ea18 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/damage_types.json @@ -0,0 +1,202 @@ +[ + { + "id": "psi_telekinetic_damage", + "type": "damage_type", + "physical": false, + "magic_color": "yellow", + "name": "telekinetic", + "skill": "metaphysics", + "derived_from": [ "bash", 0.9 ], + "immune_flags": { "character": [ "TELEKIN_SHIELD" ], "monster": [ "TELEKIN_IMMUNE" ] }, + "ondamage_eocs": [ "EOC_TELEKINETIC_DAMAGE_KNOCKDOWN_CHANCE", "EOC_TELEKINETIC_DAMAGE_STAGGER_CHANCE" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKINETIC_DAMAGE_STAGGER_CHANCE", + "condition": { "and": [ { "x_in_y_chance": { "x": 2, "y": 5 } }, { "math": [ "_damage_taken", ">", "0" ] } ] }, + "effect": [ { "npc_add_effect": "staggered", "duration": "2 s" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKINETIC_DAMAGE_KNOCKDOWN_CHANCE", + "condition": { "and": [ { "x_in_y_chance": { "x": 1, "y": 5 } }, { "math": [ "_damage_taken", ">", "0" ] } ] }, + "effect": [ { "npc_add_effect": "downed", "duration": "1 s" } ] + }, + { + "id": "psi_telekinetic_damage", + "type": "damage_info_order", + "info_display": "detailed", + "verb": "buffeting", + "bionic_info": { "order": 999899, "show_type": false }, + "protection_info": { "order": 999899, "show_type": false }, + "pet_prot_info": { "order": 999899, "show_type": false }, + "melee_combat_info": { "order": 999899, "show_type": false }, + "ablative_info": { "order": 999899, "show_type": false } + }, + { + "id": "psi_telepathic_damage", + "type": "damage_type", + "physical": false, + "magic_color": "white", + "name": "telepathic", + "skill": "metaphysics", + "immune_flags": { "character": [ "TEEPSHIELD" ], "monster": [ "TEEP_IMMUNE" ] }, + "ondamage_eocs": [ + "EOC_TELEPATHIC_DAMAGE_STUN_CHANCE", + "EOC_TELEPATHIC_DAMAGE_DAZED_CHANCE", + "EOC_TELEPATHIC_DAMAGE_KNOCKDOWN_CHANCE", + "EOC_TELEPATHIC_DAMAGE_STUN_HIVE_CHANCE" + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPATHIC_DAMAGE_KNOCKDOWN_CHANCE", + "condition": { + "and": [ + { "x_in_y_chance": { "x": 1, "y": 20 } }, + { "math": [ "_damage_taken", ">", "0" ] }, + { "not": { "npc_has_flag": "HIVE_MIND" } }, + { "not": { "npc_has_flag": "TEEP_IMMUNE" } }, + { "not": { "npc_has_flag": "TEEPSHIELD" } } + ] + }, + "effect": [ { "npc_add_effect": "downed", "duration": "1 s" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPATHIC_DAMAGE_STUN_CHANCE", + "condition": { + "and": [ + { "x_in_y_chance": { "x": 1, "y": 3 } }, + { "math": [ "_damage_taken", ">", "0" ] }, + { "not": { "npc_has_flag": "HIVE_MIND" } }, + { "not": { "npc_has_flag": "TEEP_IMMUNE" } }, + { "not": { "npc_has_flag": "TEEPSHIELD" } } + ] + }, + "effect": [ { "npc_add_effect": "stunned", "duration": "1 s" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPATHIC_DAMAGE_DAZED_CHANCE", + "condition": { + "and": [ + { "x_in_y_chance": { "x": 2, "y": 3 } }, + { "math": [ "_damage_taken", ">", "0" ] }, + { "not": { "npc_has_flag": "HIVE_MIND" } }, + { "not": { "npc_has_flag": "TEEP_IMMUNE" } }, + { "not": { "npc_has_flag": "TEEPSHIELD" } } + ] + }, + "effect": [ { "npc_add_effect": "psi_dazed", "duration": "2 s" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPATHIC_DAMAGE_STUN_HIVE_CHANCE", + "condition": { + "and": [ { "x_in_y_chance": { "x": 1, "y": 6 } }, { "math": [ "_damage_taken", ">", "0" ] }, { "npc_has_flag": "HIVE_MIND" } ] + }, + "effect": [ { "npc_add_effect": "stunned", "duration": "5 s" } ] + }, + { + "id": "psi_telepathic_damage", + "type": "damage_info_order", + "info_display": "detailed", + "verb": "mindblasting", + "bionic_info": { "order": 999900, "show_type": false }, + "protection_info": { "order": 999900, "show_type": false }, + "pet_prot_info": { "order": 999900, "show_type": false }, + "melee_combat_info": { "order": 999900, "show_type": false }, + "ablative_info": { "order": 999900, "show_type": false } + }, + { + "id": "psi_teleporter_teleporting_damage", + "type": "damage_type", + "physical": false, + "magic_color": "blue", + "name": "spacial realignment", + "skill": "metaphysics", + "immune_flags": { "character": [ "DIMENSIONAL_ANCHOR", "TELESTOP" ], "monster": [ "TELEPORT_IMMUNE" ] }, + "ondamage_eocs": [ "EOC_TELEPORTING_DAMAGE_TELEPORT" ] + }, + { + "id": "psi_teleporter_teleporting_damage", + "type": "damage_info_order", + "info_display": "detailed", + "verb": "recalibrating", + "bionic_info": { "order": 999901, "show_type": false }, + "protection_info": { "order": 999901, "show_type": false }, + "pet_prot_info": { "order": 999901, "show_type": false }, + "melee_combat_info": { "order": 999901, "show_type": false }, + "ablative_info": { "order": 999901, "show_type": false } + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORTING_DAMAGE_TELEPORT", + "condition": { + "and": [ + { "math": [ "_damage_taken", ">", "0" ] }, + { "not": { "npc_has_flag": "TELEPORT_IMMUNE" } }, + { "not": { "npc_has_flag": "DIMENSIONAL_ANCHOR" } }, + { "not": { "npc_has_flag": "TELESTOP" } } + ] + }, + "effect": [ { "npc_cast_spell": { "id": "teleport_blink", "min_level": 10 } } ] + }, + { + "id": "psi_enervation_damage", + "type": "damage_type", + "physical": false, + "magic_color": "red_green", + "name": "enervation", + "skill": "metaphysics", + "immune_flags": { "character": [ "LIFESHIELD" ], "monster": [ "ENERVATE_IMMUNE" ] }, + "ondamage_eocs": [ "EOC_ENERVATION_DRAIN" ] + }, + { + "id": "psi_enervation_damage", + "type": "damage_info_order", + "info_display": "detailed", + "verb": "enervating", + "bionic_info": { "order": 999902, "show_type": false }, + "protection_info": { "order": 999902, "show_type": false }, + "pet_prot_info": { "order": 999902, "show_type": false }, + "melee_combat_info": { "order": 999902, "show_type": false }, + "ablative_info": { "order": 999902, "show_type": false } + }, + { + "type": "effect_on_condition", + "id": "EOC_ENERVATION_DRAIN", + "condition": { + "and": [ + { "math": [ "_damage_taken", ">", "0" ] }, + { "not": { "npc_has_flag": "LIFESHIELD" } }, + { "not": { "npc_has_flag": "ENERVATE_IMMUNE" } } + ] + }, + "effect": [ { "run_eocs": "EOC_ENERVATION_DRAIN_2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ENERVATION_DRAIN_2", + "condition": { "math": [ "n_val('mana')", ">=", "150" ] }, + "effect": [ + { "math": [ "n_val('mana')", "-=", "rng( 100,200 )" ] }, + { "npc_message": "You feel a sudden sense of loss.", "type": "bad" } + ], + "false_effect": [ { "run_eocs": "EOC_ENERVATION_DRAIN_3" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ENERVATION_DRAIN_3", + "condition": { "math": [ "n_val('stamina')", ">=", "200" ] }, + "effect": [ + { "math": [ "n_val('stamina')", "-=", "rng( 100,300 )" ] }, + { "npc_message": "For a moment, you feel exhausted.", "type": "bad" } + ], + "false_effect": [ + { "npc_cast_spell": { "id": "eater_drain_health" } }, + { "npc_message": "You feel your life draining away!.", "type": "bad" } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_awakening.json b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_awakening.json new file mode 100644 index 000000000..3dfe7b76f --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_awakening.json @@ -0,0 +1,1191 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_MATRIX_AWAKENING", + "condition": { "u_has_trait": "BIOKINETIC" }, + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. It starts pulsing, first slowly and more rapidly, and your head starts pounding in time with the light. You tear your gaze away but the pounding in your head remains." + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 } + ], + "false_effect": [ { "run_eocs": "EOC_BIOKIN_MATRIX_AWAKENING_2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_MATRIX_AWAKENING_2", + "condition": { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } }, + "effect": [ { "run_eocs": "EOC_BIOKIN_MATRIX_AWAKENING_SUCCESS" } ], + "false_effect": [ { "run_eocs": "EOC_BIOKIN_MATRIX_AWAKENING_FAILURE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_MATRIX_AWAKENING_3", + "condition": { "u_has_trait": "BIOKINETIC" }, + "effect": [ { "run_eocs": "EOC_BIOKIN_MATRIX_AWAKENING_FAILURE" } ], + "false_effect": [ { "run_eocs": "EOC_BIOKIN_MATRIX_AWAKENING_SUCCESS" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_MATRIX_AWAKENING_SUCCESS", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. As it fills your vision, you become aware of the sound of your heartbeat, of the blood rushing through your veins, of the oxygen fueling your muscles. You see the connections between them all and, only partially aware of how you're doing it, you reach out and adjust the flow. Strength and power suddenly fill your body, and as you watch the connections with your inner eye, you see what exactly you did and you know how to do it again. As the light from the crystal fades, leaving it dull and colorless, your vision clears.", + "popup": true + }, + { "u_add_trait": "BIOKINETIC" }, + { "u_add_trait": "BIOKIN_NEEDS" }, + { "queue_eocs": "EOC_BIOKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }, + { "u_add_effect": "effect_biokin_physical", "duration": "5 minutes" }, + { "run_eocs": "EOC_TEACH_BIOKIN_CONTEMPLATE_RECIPES" }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(matrix_awakening_odds(awakening_countup))" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_MATRIX_AWAKENING_FAILURE", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. As it fills your vision, you become aware of the sound of your heartbeat, of the blood rushing through your veins… and then a searing headache crashes through your brain, blotting out all other sensations. You tear your gaze away from the now-dark crystal but the pounding in your head remains.", + "popup": true + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 }, + { "queue_eocs": "EOC_BIOKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_MATRIX_AWAKENING", + "condition": { "u_has_trait": "CLAIRSENTIENT" }, + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. It starts pulsing, first slowly and more rapidly, and your head starts pounding in time with the light. You tear your gaze away but the pounding in your head remains." + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 } + ], + "false_effect": [ { "run_eocs": "EOC_CLAIR_MATRIX_AWAKENING_2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_MATRIX_AWAKENING_2", + "condition": { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } }, + "effect": [ { "run_eocs": "EOC_CLAIR_MATRIX_AWAKENING_SUCCESS" } ], + "false_effect": [ { "run_eocs": "EOC_CLAIR_MATRIX_AWAKENING_FAILURE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_MATRIX_AWAKENING_3", + "condition": { "u_has_trait": "CLAIRSENTIENT" }, + "effect": [ { "run_eocs": "EOC_CLAIR_MATRIX_AWAKENING_FAILURE" } ], + "false_effect": [ { "run_eocs": "EOC_CLAIR_MATRIX_AWAKENING_SUCCESS" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_MATRIX_AWAKENING_SUCCESS", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. You remember your childhood, before the end of the world, and then the memories diverge. You see yourself on an aircraft carrier bridge, looking out the window as a colossal tentacle breaches the surface of the ocean; you stand in a clear white room, watching through a reinforced glass window as your colleague reanimates; you are caught up in the riots and shot by soldiers manning a road block; you are on a camping trip with friends when a nest of pig-sized wasps descend from a formerly-clear sky. Dozens of lives in quick succession, might-have-beens and never-weres, fragments that fade even as you try to grasp each one in succession. When the last one ends, you can see through the crystal, through your hands, through the ground. You can see forever.", + "popup": true + }, + { "u_add_trait": "CLAIRSENTIENT" }, + { "u_add_trait": "CLAIR_SENSES" }, + { "queue_eocs": "EOC_CLAIR_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }, + { "u_add_effect": "effect_clair_clear_sight", "duration": "1 minutes" }, + { "run_eocs": "EOC_TEACH_CLAIR_CONTEMPLATE_RECIPES" }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(matrix_awakening_odds(awakening_countup))" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_MATRIX_AWAKENING_FAILURE", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. You see yourself as you could have been, if you had taken that job, if you had sent that text, if you had moved across the country, but only for a moment before your head starts pounding. You look down at the crystal as its light fades, but the visions do not return.", + "popup": true + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 }, + { "queue_eocs": "EOC_CLAIR_CRYSTAL_DRAINING", "time_in_future": "1 seconds" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PYROKIN_MATRIX_AWAKENING", + "condition": { "u_has_trait": "PYROKINETIC" }, + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. It starts pulsing, first slowly and more rapidly, and your head starts pounding in time with the light. You tear your gaze away but the pounding in your head remains." + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 } + ], + "false_effect": [ { "run_eocs": "EOC_PYROKIN_MATRIX_AWAKENING_2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PYROKIN_MATRIX_AWAKENING_2", + "condition": { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } }, + "effect": [ { "run_eocs": "EOC_PYROKIN_MATRIX_AWAKENING_SUCCESS" } ], + "false_effect": [ { "run_eocs": "EOC_PYROKIN_MATRIX_AWAKENING_FAILURE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PYROKIN_MATRIX_AWAKENING_3", + "condition": { "u_has_trait": "PYROKINETIC" }, + "effect": [ { "run_eocs": "EOC_PYROKIN_MATRIX_AWAKENING_FAILURE" } ], + "false_effect": [ { "run_eocs": "EOC_PYROKIN_MATRIX_AWAKENING_SUCCESS" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PYROKIN_MATRIX_AWAKENING_SUCCESS", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. The crystal begins glowing, the faint light at its core gradually brightening, first shedding light on your surroundings and then throwing everything into sharp relief. As it blazes in your hands, it begins growing slowly warmer. The warmth spreads down your arms and across your entire body, filling it with a comfortable heat, and then the air around you takes on the heat and the light. The air wavers like a summer haze, but even as it sparks and flames dance on the air, you feel only a comfortable warmth. You reach out your free hand, letting the fire play between your fingers, and when the crystal's glow dims and fades into nothingness, you don't even notice it.", + "popup": true + }, + { "u_add_trait": "PYROKINETIC" }, + { "u_add_trait": "PYROGLOW_WEAK" }, + { "u_add_trait": "PYROGLOW_STRONG" }, + { "queue_eocs": "EOC_PYROKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }, + { "u_add_effect": "effect_pyrokinetic_cloak", "duration": "5 minutes" }, + { "u_add_effect": "effect_pyrokinetic_aura", "duration": "5 minutes" }, + { "run_eocs": "EOC_TEACH_PYROKIN_CONTEMPLATE_RECIPES" }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(matrix_awakening_odds(awakening_countup))" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PYROKIN_MATRIX_AWAKENING_FAILURE", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. You feel a pleasant heat in your veins, but as you look down at your hands, the heat turns into a searing pain. The crystal flashes once, the light drives spikes into your brain, and then goes dark.", + "popup": true + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 }, + { "queue_eocs": "EOC_PYROKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_MATRIX_AWAKENING", + "condition": { "u_has_trait": "TELEKINETIC" }, + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. It starts pulsing, first slowly and more rapidly, and your head starts pounding in time with the light. You tear your gaze away but the pounding in your head remains." + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 } + ], + "false_effect": [ { "run_eocs": "EOC_TELEKIN_MATRIX_AWAKENING_2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_MATRIX_AWAKENING_2", + "condition": { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } }, + "effect": [ { "run_eocs": "EOC_TELEKIN_MATRIX_AWAKENING_SUCCESS" } ], + "false_effect": [ { "run_eocs": "EOC_TELEKIN_MATRIX_AWAKENING_FAILURE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_MATRIX_AWAKENING_3", + "condition": { "u_has_trait": "TELEKINETIC" }, + "effect": [ { "run_eocs": "EOC_TELEKIN_MATRIX_AWAKENING_FAILURE" } ], + "false_effect": [ { "run_eocs": "EOC_TELEKIN_MATRIX_AWAKENING_SUCCESS" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_MATRIX_AWAKENING_SUCCESS", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. You release your grasp on the crystal but it doesn't fall. It floats, supported on nothingness, and as you watch it you become aware of the connections between objects. Gravity, attraction and repulsion, reveal themselves--you can see the weakened influence of gravity on the crystal, and with a thought you nudge it slightly. The crystal floats up in the air, stretching the connections between it at the ground, before they adjust to its new place. You tug on the connections, rotating the crystal, moving it from left to right, and as the light within it slowly fades away, you let go and the crystal drops back to your hand.", + "popup": true + }, + { "u_add_trait": "TELEKINETIC" }, + { "u_add_trait": "TELEKINETIC_LIFTER_1" }, + { "queue_eocs": "EOC_TELEKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }, + { "u_add_effect": "effect_telekinetic_armor", "duration": "1 minutes" }, + { "run_eocs": "EOC_TEACH_TELEKIN_CONTEMPLATE_RECIPES" }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(matrix_awakening_odds(awakening_countup))" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_MATRIX_AWAKENING_FAILURE", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. It slowly rises in the air, the light pulsing gently, before it freezes in place. The crystal suddenly starts strobing, each pulse of light a dagger in your brain, and as you grab your temples the now-dark crystal falls to the ground.", + "popup": true + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 }, + { "queue_eocs": "EOC_TELEKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEEP_MATRIX_AWAKENING", + "condition": { "u_has_trait": "TELEPATH" }, + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. It starts pulsing, first slowly and more rapidly, and your head starts pounding in time with the light. You tear your gaze away but the pounding in your head remains." + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 } + ], + "false_effect": [ { "run_eocs": "EOC_TEEP_MATRIX_AWAKENING_2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEEP_MATRIX_AWAKENING_2", + "condition": { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } }, + "effect": [ { "run_eocs": "EOC_TEEP_MATRIX_AWAKENING_SUCCESS" } ], + "false_effect": [ { "run_eocs": "EOC_TEEP_MATRIX_AWAKENING_FAILURE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEEP_MATRIX_AWAKENING_3", + "condition": { "u_has_trait": "TELEPATH" }, + "effect": [ { "run_eocs": "EOC_TEEP_MATRIX_AWAKENING_FAILURE" } ], + "false_effect": [ { "run_eocs": "EOC_TEEP_MATRIX_AWAKENING_SUCCESS" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEEP_MATRIX_AWAKENING_SUCCESS", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. In the light, you can see yourself, standing there holding a glowing crystal, in which you can see another light and a tiny version of yourself in an endless hall of mirrors. Time slows down--you decide to move your hand and you can feel the thought form in your brain and the signal travel through your nerves to your spine and then on your hands, and you watch as the motion finally occurs. The light grows brighter as you stand outside yourself observing your own thoughts, and as you feel your attention being drawn to the light, you reach out, nudge your own mind, your awareness of yourself sharpens into laser focus. As the light and the vision fades, leaving the crystal dull and nearly lifeless, you turn your full attention--FULL attention--to your next task.", + "popup": true + }, + { "u_add_trait": "TELEPATH" }, + { "u_add_trait": "TELEPATHIC_SUGGESTION" }, + { "queue_eocs": "EOC_TELEPATH_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }, + { "u_add_effect": "effect_telepathic_learning_bonus", "duration": "1 minutes" }, + { "run_eocs": "EOC_TEACH_TELEPATH_CONTEMPLATE_RECIPES" }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(matrix_awakening_odds(awakening_countup))" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEEP_MATRIX_AWAKENING_FAILURE", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. In the light, you can see yourself, standing there holding a glowing crystal, and then there's a flare of light and you close your eyes against its intensity. Your head pounds, and when you manage to open your eyes again, the crystal is dark.", + "popup": true + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 }, + { "queue_eocs": "EOC_TELEPATH_CRYSTAL_DRAINING", "time_in_future": "1 seconds" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_MATRIX_AWAKENING", + "condition": { "u_has_trait": "TELEPORTER" }, + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. It starts pulsing, first slowly and more rapidly, and your head starts pounding in time with the light. You tear your gaze away but the pounding in your head remains." + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 } + ], + "false_effect": [ { "run_eocs": "EOC_TELEPORT_MATRIX_AWAKENING_2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_MATRIX_AWAKENING_2", + "condition": { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } }, + "effect": [ { "run_eocs": "EOC_TELEPORT_MATRIX_AWAKENING_SUCCESS" } ], + "false_effect": [ { "run_eocs": "EOC_TELEPORT_MATRIX_AWAKENING_FAILURE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_MATRIX_AWAKENING_3", + "condition": { "u_has_trait": "TELEPORTER" }, + "effect": [ { "run_eocs": "EOC_TELEPORT_MATRIX_AWAKENING_FAILURE" } ], + "false_effect": [ { "run_eocs": "EOC_TELEPORT_MATRIX_AWAKENING_SUCCESS" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_MATRIX_AWAKENING_SUCCESS", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. As the light spreads and illuminates the surrounding terrain, the air shimmers slightly. You can see your bedroom, in the place you've been holed up after the end of the world; you can see a city, with buildings made of greenish soapstone and people whose bodies are faces are merely indistinct shadows; you can see the cafe you always used to hang out in, empty and ruined, with the door back in back thumping rhythmically as something pounds on it; you can see a point of light, floating in the midst of a starry void, and hear a reedy toneless hum. You see the paths that link all four of these places and an infinite number of others, glowing paths that you could easy follow in directions you had never previously known existed. The light in the crystal fades as you set one foot on a path.", + "popup": true + }, + { "u_add_trait": "TELEPORTER" }, + { "u_add_trait": "TELEPORTER_PROTECT" }, + { "queue_eocs": "EOC_TELEPORT_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }, + { + "u_cast_spell": { "id": "teleport_blink_monster", "message": "Reality suddenly warps around you and you are somewhere else!" } + }, + { "run_eocs": "EOC_TEACH_TELEPORT_CONTEMPLATE_RECIPES" }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(matrix_awakening_odds(awakening_countup))" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_MATRIX_AWAKENING_FAILURE", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. As the light spreads and illuminates the surrounding terrain, the air shimmers slightly. Images appear, locations and times, all overlapping in a kaleidoscope of color and sound that makes your head throb. You tear your gaze away from the now-dark crystal but the pounding in your head remains.", + "popup": true + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 }, + { "queue_eocs": "EOC_TELEPORT_CRYSTAL_DRAINING", "time_in_future": "1 seconds" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_MATRIX_AWAKENING", + "condition": { "u_has_trait": "VITAKINETIC" }, + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. It starts pulsing, first slowly and more rapidly, and your head starts pounding in time with the light. You tear your gaze away but the pounding in your head remains." + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 } + ], + "false_effect": [ { "run_eocs": "EOC_VITAKIN_MATRIX_AWAKENING_2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_MATRIX_AWAKENING_2", + "condition": { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } }, + "effect": [ { "run_eocs": "EOC_VITAKIN_MATRIX_AWAKENING_SUCCESS" } ], + "false_effect": [ { "run_eocs": "EOC_VITAKIN_MATRIX_AWAKENING_FAILURE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_MATRIX_AWAKENING_3", + "condition": { "u_has_trait": "VITAKINETIC" }, + "effect": [ { "run_eocs": "EOC_VITAKIN_MATRIX_AWAKENING_FAILURE" } ], + "false_effect": [ { "run_eocs": "EOC_VITAKIN_MATRIX_AWAKENING_SUCCESS" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_MATRIX_AWAKENING_SUCCESS", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. You become aware of your skin, of every cut and bruise and scrape, of the food sitting in your stomach and the air moving in and out of your lungs. You can feel the bits of smoke in the air from the all the fires unleashed by the Cataclysm, the bits of dirt and debris in your wounds, of the char in your food. Not quite knowing how, you reach out and push at it, all the dirt and grime and filth of daily life in the Cataclysm, sealing it away. You instantly feel better, like a weight you didn't realize you were carrying has been taken off your shoulders, and as the light from the crystal dims and goes dark you stand up straight. You're going to be alright.", + "popup": true + }, + { "u_add_trait": "VITAKINETIC" }, + { "u_add_trait": "VITAKINETIC_HEALTH" }, + { "queue_eocs": "EOC_VITAKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }, + { "u_add_effect": "effect_vita_health", "duration": "5 minutes" }, + { "run_eocs": "EOC_TEACH_VITAKIN_CONTEMPLATE_RECIPES" }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(matrix_awakening_odds(awakening_countup))" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_MATRIX_AWAKENING_FAILURE", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. In the light, you can see yourself, standing there holding a glowing crystal, and then there's a flare of light and you close your eyes against its intensity. Your head pounds, and when you manage to open your eyes again, the crystal is dark.", + "popup": true + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 }, + { "queue_eocs": "EOC_VITAKIN_CRYSTAL_DRAINING", "time_in_future": "1 seconds" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DRAINED_MATRIX", + "effect": [ + { + "u_message": "You gaze into the strange crystal and the light slowly grows brighter. You become aware of your skin, of every cut and bruise and scrape, of the food sitting in your stomach and the air moving in and out of your lungs. The sensation grows rapidly until your stomach feels like it will burst and every brush of clothing on your skin is like rasping sandpaper. As the light fades from the crystal, a searing pains fills your head.", + "popup": true + }, + { "u_add_effect": "psionic_overload", "duration": "1 hours" }, + { "u_add_effect": "stunned", "duration": 5 } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CORUSCATING_MATRIX", + "effect": [ + { "queue_eocs": "EOC_CORUSCATING_CRYSTAL_DRAINING", "time_in_future": "1 seconds" }, + { + "weighted_list_eocs": [ + [ "EOC_BIOKIN_MATRIX_AWAKENING_3", { "const": 1 } ], + [ "EOC_CLAIR_MATRIX_AWAKENING_3", { "const": 1 } ], + [ "EOC_PYROKIN_MATRIX_AWAKENING_3", { "const": 1 } ], + [ "EOC_TELEKIN_MATRIX_AWAKENING_3", { "const": 1 } ], + [ "EOC_TEEP_MATRIX_AWAKENING_3", { "const": 1 } ], + [ "EOC_TELEPORT_MATRIX_AWAKENING_3", { "const": 1 } ], + [ "EOC_VITAKIN_MATRIX_AWAKENING_3", { "const": 1 } ] + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_STORM_PSION_AWAKENING_DISTANT", + "global": true, + "recurrence": [ "5 minutes", "10 minutes" ], + "condition": { + "and": [ + "u_is_outside", + { "is_weather": "distant_portal_storm" }, + { "not": { "u_has_worn_with_flag": "PORTAL_PROOF" } }, + { "not": { "u_has_effect": "sleep" } } + ] + }, + "deactivate_condition": { "not": { "is_weather": "distant_portal_storm" } }, + "effect": { + "switch": { "global_val": "var", "var_name": "ps_str" }, + "cases": [ + { + "case": 1, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 100 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 2, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 85 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 3, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 65 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 4, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 55 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 5, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 40 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 6, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 25 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 8, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 20 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 10, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 15 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 15, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 10 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_STORM_PSION_AWAKENING_MEDIUM", + "global": true, + "recurrence": [ "2 minutes", "5 minutes" ], + "condition": { + "and": [ + "u_is_outside", + { "is_weather": "portal_storm" }, + { "not": { "u_has_worn_with_flag": "PORTAL_PROOF" } }, + { "not": { "u_has_effect": "sleep" } } + ] + }, + "deactivate_condition": { "not": { "is_weather": "portal_storm" } }, + "effect": { + "switch": { "global_val": "var", "var_name": "ps_str" }, + "cases": [ + { + "case": 1, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 100 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 2, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 85 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 3, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 65 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 4, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 55 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 5, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 40 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 6, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 25 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 8, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 20 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 10, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 15 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 15, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 10 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_STORM_PSION_AWAKENING_CLOSE", + "global": true, + "recurrence": [ "1 minutes", "2 minutes" ], + "condition": { + "and": [ + "u_is_outside", + { "is_weather": "close_portal_storm" }, + { "not": { "u_has_worn_with_flag": "PORTAL_PROOF" } }, + { "not": { "u_has_effect": "sleep" } } + ] + }, + "deactivate_condition": { "not": { "is_weather": "close_portal_storm" } }, + "effect": { + "switch": { "global_val": "var", "var_name": "ps_str" }, + "cases": [ + { + "case": 1, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 100 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 2, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 85 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 3, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 65 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 4, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 55 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 5, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 40 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 6, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 25 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 8, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 20 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 10, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 15 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + }, + { + "case": 15, + "effect": { + "weighted_list_eocs": [ + [ "EOC_PORTAL_NULL_AWAKENING", { "const": 10 } ], + [ "EOC_PORTAL_BIOKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_CLAIR_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PYRO_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TELEKIN_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_TEEP_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_PORTER_AWAKENING", { "const": 1 } ], + [ "EOC_PORTAL_VITA_AWAKENING", { "const": 1 } ] + ] + } + } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_NULL_AWAKENING", + "effect": [ { "u_message": "" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_BIOKIN_AWAKENING", + "condition": { + "and": [ + { "not": { "u_has_trait": "BIOKINETIC" } }, + { "not": { "u_has_effect": "psionic_awakened" } }, + { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } } + ] + }, + "effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. New strength and vigor suddenly fill you. You stand up straight and tall, heedless of the wind and the kaleidoscoping sky, and clench your fists. You feel like you could take on the world, like you could sprint for an hour without stopping, like you could wrestle one of those giant insects to the ground and pin it, like you could dodge bullets. You unclench your fists and shake your head, but the sense of strength remains.", + "popup": true + }, + { "u_add_trait": "BIOKINETIC" }, + { "u_add_trait": "BIOKIN_NEEDS" }, + { "run_eocs": "EOC_TEACH_BIOKIN_CONTEMPLATE_RECIPES" }, + { "u_add_effect": "psionic_awakened", "duration": { "math": [ "ps_str * u_val('time: 2 h')" ] } }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(portal_storm_awakening_odds(awakening_countup))" ] } + ], + "false_effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. Your head pounds in time with the kaleidoscoping sky as your muscles begin cramping uncontrollably. They suddenly seize up and you collapse to the ground, staring up at the sky, unable to move." + }, + { "u_add_effect": "psionic_overload", "duration": { "math": [ "ps_str * u_val('time: 1 h')" ] } }, + { "u_add_effect": "effect_biokin_overload", "duration": { "math": [ "ps_str * u_val('time: 2 h')" ] } }, + { "u_add_effect": "downed", "duration": { "math": [ "ps_str * u_val('time: 5 s')" ] } }, + { "u_add_effect": "motor_seizure", "duration": { "math": [ "ps_str * u_val('time: 5 s')" ] } }, + { "math": [ "u_val('stamina')", "-=", "4000" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_CLAIR_AWAKENING", + "condition": { + "and": [ + { "not": { "u_has_trait": "CLAIRSENTIENT" } }, + { "not": { "u_has_effect": "psionic_awakened" } }, + { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } } + ] + }, + "effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. You close your eyes but you can still see--at first just a light against your eyelids, then like a train approaching the end of a tunnel, light expands and reveals your surroundings. You can see in all directions. You can see behind and beneath every blade of grass around you, illuminated in the storm's witchlight, for a moment until your awareness snaps back into your body and you reel back with the shock of it. When you open your eyes again, the colors around you are brighter and the sounds are clearer than before.", + "popup": true + }, + { "u_add_trait": "CLAIRSENTIENT" }, + { "u_add_trait": "CLAIR_SENSES" }, + { "run_eocs": "EOC_TEACH_CLAIR_CONTEMPLATE_RECIPES" }, + { "u_add_effect": "psionic_awakened", "duration": { "math": [ "ps_str * u_val('time: 2 h')" ] } }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(portal_storm_awakening_odds(awakening_countup))" ] } + ], + "false_effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. Your head pounds in time with the kaleidoscoping sky as your vision wavers. The sky grows bright, and then dark. Sounds fade away before roaring in your ears, and then the entire world suddenly vanishes, leaving you in silent darkness." + }, + { "u_add_effect": "psionic_overload", "duration": { "math": [ "ps_str * u_val('time: 1 h')" ] } }, + { "u_add_effect": "hallu", "duration": { "math": [ "ps_str * u_val('time: 3 h')" ] } }, + { "u_add_effect": "blind_clair_overload", "duration": { "math": [ "ps_str * u_val('time: 15 s')" ] } }, + { "u_add_effect": "deaf_clair_overload", "duration": { "math": [ "ps_str * u_val('time: 15 s')" ] } }, + { "math": [ "u_val('stamina')", "-=", "4000" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_PYRO_AWAKENING", + "condition": { + "and": [ + { "not": { "u_has_trait": "PYROKINETIC" } }, + { "not": { "u_has_effect": "psionic_awakened" } }, + { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } } + ] + }, + "effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. You stretch out your hand toward the shattering sky and a glow gathers around it as the air itself begins to shine. The glow brightens and then flames arise, dancing on the open area above your palm. You move your hand and the flames move with it, swirling around you, and with a final wave they scatter into the air. The glow fades, but the sensation of heat remains.", + "popup": true + }, + { "u_add_trait": "PYROKINETIC" }, + { "u_add_trait": "PYROGLOW_WEAK" }, + { "u_add_trait": "PYROGLOW_STRONG" }, + { "run_eocs": "EOC_TEACH_PYROKIN_CONTEMPLATE_RECIPES" }, + { "u_add_effect": "psionic_awakened", "duration": { "math": [ "ps_str * u_val('time: 2 h')" ] } }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(portal_storm_awakening_odds(awakening_countup))" ] } + ], + "false_effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. Your head pounds in time with the kaleidoscoping sky as your skin prickles. The air grows warm, then hot, and sweat springs from every pore. The air around you takes on a lambent glow as the heat continues to rise, until your muscles give out and you collapse to your knees." + }, + { "u_add_effect": "psionic_overload", "duration": { "math": [ "ps_str * u_val('time: 1 h')" ] } }, + { "u_add_effect": "effect_pyrokin_overload", "duration": { "math": [ "ps_str * u_val('time: 2 h')" ] } }, + { "u_add_effect": "downed", "duration": { "math": [ "ps_str * u_val('time: 1 s')" ] } }, + { "u_set_field": "fd_hot_air3", "outdoor_only": true }, + { "math": [ "u_val('stamina')", "-=", "4000" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_TELEKIN_AWAKENING", + "condition": { + "and": [ + { "not": { "u_has_trait": "TELEKINETIC" } }, + { "not": { "u_has_effect": "psionic_awakened" } }, + { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } } + ] + }, + "effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. You look around for shelter, but you're out in the open. You reach down toward the ground but the ground starts rising--bits of grass and rock and dirt lifting up and swirling around you. The roar in your head grows louder as you slowly rise off the ground, the debris around you whirling faster and faster, until the your mind suddenly stills and you collapse back to the earth with a thump. The pebbles around start to fall--but one catches your eye, and as you look at it, it stops and hovers in the air for a moment.", + "popup": true + }, + { "u_add_trait": "TELEKINETIC" }, + { "u_add_trait": "TELEKINETIC_LIFTER_1" }, + { "run_eocs": "EOC_TEACH_TELEKIN_CONTEMPLATE_RECIPES" }, + { "u_add_effect": "psionic_awakened", "duration": { "math": [ "ps_str * u_val('time: 2 h')" ] } }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(portal_storm_awakening_odds(awakening_countup))" ] } + ], + "false_effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. Your head pounds in time with the kaleidoscoping sky as you stagger. The very air seems to press down on you, its weight growing steadily more oppressive. Every step takes more effort than a sprint. You concentrate on putting one foot in front of the other but it takes almost all of your concentration to do so." + }, + { "u_add_effect": "psionic_overload", "duration": { "math": [ "ps_str * u_val('time: 1 h')" ] } }, + { "u_add_effect": "effect_telekin_overload", "duration": { "math": [ "ps_str * u_val('time: 30 m')" ] } }, + { "u_add_effect": "downed", "duration": { "math": [ "ps_str * u_val('time: 1 s')" ] } }, + { "math": [ "u_val('stamina')", "-=", "4000" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_TEEP_AWAKENING", + "condition": { + "and": [ + { "not": { "u_has_trait": "TELEPATH" } }, + { "not": { "u_has_effect": "psionic_awakened" } }, + { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } } + ] + }, + "effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. A babble of voices, male, female, neither, both, and some not human at all, speaking to you. The world is rapidly dying. The dead and the fungus and the plants will fight over what remains and there will be nothing left for humanity. Stay out here, where realities converge and walk into a better tomorrow. As the voices blend together, the volume rising, you reach inside your own mind somehow and twist--and are greeted with blessed silence. Though the portal storm still rages, internally you are calm.", + "popup": true + }, + { "u_add_trait": "TELEPATH" }, + { "u_add_trait": "TELEPATHIC_SUGGESTION" }, + { "run_eocs": "EOC_TEACH_TELEPATH_CONTEMPLATE_RECIPES" }, + { "u_add_effect": "psionic_awakened", "duration": { "math": [ "ps_str * u_val('time: 2 h')" ] } }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(portal_storm_awakening_odds(awakening_countup))" ] } + ], + "false_effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. Your head pounds in time with the kaleidoscoping sky as whispers begin. First only a murmur, steadily growing louder and louder until they grow into a cacophony of voices. You hear pleas for mercy, screams of agony, cries of rage and sorrow, all mixed together in an avalache of sound that drives you to your knees as you clutch your ears to shut them out. It doesn't help." + }, + { "u_add_effect": "psionic_overload", "duration": { "math": [ "ps_str * u_val('time: 1 h')" ] } }, + { "u_add_effect": "nightmares", "duration": { "math": [ "ps_str * u_val('time: 4 h')" ] } }, + { "u_add_effect": "disrupted_sleep", "duration": { "math": [ "ps_str * u_val('time: 4 h')" ] } }, + { "u_add_effect": "downed", "duration": { "math": [ "ps_str * u_val('time: 1 s')" ] } }, + { "math": [ "u_val('stamina')", "-=", "4000" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_PORTER_AWAKENING", + "condition": { + "and": [ + { "not": { "u_has_trait": "TELEPORTER" } }, + { "not": { "u_has_effect": "psionic_awakened" } }, + { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } } + ] + }, + "effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. Reality grows thin--you can see the ground beneath your hand. You can see the spaces between molecules, larger by far than the distances at a macro scale. You see the paths you could take to slip between them, to traverse space in an instant without any obstacles in your path. As the distances collapse back and reality grows solid once again, that knowledge remains with you.", + "popup": true + }, + { "u_add_trait": "TELEPORTER" }, + { "u_add_trait": "TELEPORTER_PROTECT" }, + { "run_eocs": "EOC_TEACH_TELEPORT_CONTEMPLATE_RECIPES" }, + { "u_add_effect": "psionic_awakened", "duration": { "math": [ "ps_str * u_val('time: 2 h')" ] } }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(portal_storm_awakening_odds(awakening_countup))" ] } + ], + "false_effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. Your head pounds in time with the kaleidoscoping sky as your vision wavers. The world seems to grow far away, then close, and you stumble as your legs can't seem to tell where the ground is. As you recover and look up, you find yourself somewhere else." + }, + { "u_add_effect": "psionic_overload", "duration": { "math": [ "ps_str * u_val('time: 1 h')" ] } }, + { "u_add_effect": "effect_portal_storm_teleport", "duration": { "math": [ "ps_str * u_val('time: 20 s')" ] } }, + { "u_add_effect": "downed", "duration": { "math": [ "ps_str * u_val('time: 1 s')" ] } }, + { "math": [ "u_val('stamina')", "-=", "4000" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PORTAL_VITA_AWAKENING", + "condition": { + "and": [ + { "not": { "u_has_trait": "VITAKINETIC" } }, + { "not": { "u_has_effect": "psionic_awakened" } }, + { "x_in_y_chance": { "x": { "math": [ "100 - awakening_reducer" ] }, "y": 100 } } + ] + }, + "effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. For a moment, you can feel the blood flowing in your veins, every blood cell traveling through your body on its way to your cells. You can feel the oxygen in your lungs cross through into your blood. The howling of the portal storm pulses in time with your heartbeat for a moment before your awareness fades, but a lingering trace of it remains in the back of your mind.", + "popup": true + }, + { "u_add_trait": "VITAKINETIC" }, + { "u_add_trait": "VITAKINETIC_HEALTH" }, + { "run_eocs": "EOC_TEACH_VITAKIN_CONTEMPLATE_RECIPES" }, + { "u_add_effect": "psionic_awakened", "duration": { "math": [ "ps_str * u_val('time: 2 h')" ] } }, + { "math": [ "awakening_countup", "+=", "1" ] }, + { "math": [ "awakening_reducer", "=", "(portal_storm_awakening_odds(awakening_countup))" ] } + ], + "false_effect": [ + { + "u_message": "A roar fills your mind, louder even than the screaming madness of the portal storm. Your head pounds in time with the kaleidoscoping sky as the beating of your heart thuds in your ears. You can feel the blood rushing through your veins, warmth slowly spreading through your body, and a sensation of heat that gets stronger and stronger until it becomes an feverish itching across your entire body, driving you to your knees." + }, + { "u_add_effect": "psionic_overload", "duration": { "math": [ "ps_str * u_val('time: 1 h')" ] } }, + { "u_add_effect": "flu", "duration": { "math": [ "ps_str * u_val('time: 4 h')" ] } }, + { "u_add_effect": "effect_vitakin_overload", "duration": { "math": [ "ps_str * u_val('time: 2 h')" ] } }, + { "u_add_effect": "downed", "duration": { "math": [ "ps_str * u_val('time: 3 s')" ] } }, + { "math": [ "u_val('stamina')", "-=", "4000" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CHECK_GAMESTART_BIOKIN", + "eoc_type": "EVENT", + "required_event": "game_start", + "condition": { "u_has_trait": "BIOKINETIC" }, + "effect": [ { "math": [ "awakening_countup", "+=", "1" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CHECK_GAMESTART_CLAIR", + "eoc_type": "EVENT", + "required_event": "game_start", + "condition": { "u_has_trait": "CLAIRSENTIENT" }, + "effect": [ { "math": [ "awakening_countup", "+=", "1" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CHECK_GAMESTART_PYROKIN", + "eoc_type": "EVENT", + "required_event": "game_start", + "condition": { "u_has_trait": "PYROKINETIC" }, + "effect": [ { "math": [ "awakening_countup", "+=", "1" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CHECK_GAMESTART_TELEKIN", + "eoc_type": "EVENT", + "required_event": "game_start", + "condition": { "u_has_trait": "TELEKINETIC" }, + "effect": [ { "math": [ "awakening_countup", "+=", "1" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CHECK_GAMESTART_TELEPATH", + "eoc_type": "EVENT", + "required_event": "game_start", + "condition": { "u_has_trait": "TELEPATH" }, + "effect": [ { "math": [ "awakening_countup", "+=", "1" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CHECK_GAMESTART_TELEPORT", + "eoc_type": "EVENT", + "required_event": "game_start", + "condition": { "u_has_trait": "TELEPORTER" }, + "effect": [ { "math": [ "awakening_countup", "+=", "1" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CHECK_GAMESTART_VITAKIN", + "eoc_type": "EVENT", + "required_event": "game_start", + "condition": { "u_has_trait": "VITAKINETIC" }, + "effect": [ { "math": [ "awakening_countup", "+=", "1" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_crafting.json b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_crafting.json new file mode 100644 index 000000000..3b925e2e3 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_crafting.json @@ -0,0 +1,29 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_PSI_PRACTICE_FOCUS_MOD", + "condition": { "compare_num": [ { "u_val": "focus" }, ">=", { "const": 75 } ] }, + "effect": [ { "math": [ "u_val('focus')", "-=", "50" ] } ], + "false_effect": [ { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD_2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PSI_PRACTICE_FOCUS_MOD_2", + "condition": { "compare_num": [ { "u_val": "focus" }, ">=", { "const": 50 } ] }, + "effect": [ { "math": [ "u_val('focus')", "-=", "25" ] } ], + "false_effect": [ { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD_3" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PSI_PRACTICE_FOCUS_MOD_3", + "condition": { "compare_num": [ { "u_val": "focus" }, ">=", { "const": 34 } ] }, + "effect": [ { "math": [ "u_val('focus')", "-=", "10" ] } ], + "false_effect": [ { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD_4" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PSI_PRACTICE_FOCUS_MOD_4", + "condition": { "compare_num": [ { "u_val": "focus" }, ">=", { "const": 30 } ] }, + "effect": [ { "math": [ "u_val('focus')", "-=", "5" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_crystal_draining.json b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_crystal_draining.json new file mode 100644 index 000000000..8d0d48529 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_crystal_draining.json @@ -0,0 +1,74 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_CRYSTAL_DRAINING", + "condition": { "u_has_item": "matrix_crystal_biokinesis" }, + "effect": [ + { "u_consume_item": "matrix_crystal_biokinesis", "count": 1 }, + { "u_spawn_item": "matrix_crystal_drained", "suppress_message": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_CRYSTAL_DRAINING", + "condition": { "u_has_item": "matrix_crystal_clairsentience" }, + "effect": [ + { "u_consume_item": "matrix_crystal_clairsentience", "count": 1 }, + { "u_spawn_item": "matrix_crystal_drained", "suppress_message": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PYROKIN_CRYSTAL_DRAINING", + "condition": { "u_has_item": "matrix_crystal_pyrokinesis" }, + "effect": [ + { "u_consume_item": "matrix_crystal_pyrokinesis", "count": 1 }, + { "u_spawn_item": "matrix_crystal_drained", "suppress_message": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_CRYSTAL_DRAINING", + "condition": { "u_has_item": "matrix_crystal_telekinesis" }, + "effect": [ + { "u_consume_item": "matrix_crystal_telekinesis", "count": 1 }, + { "u_spawn_item": "matrix_crystal_drained", "suppress_message": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPATH_CRYSTAL_DRAINING", + "condition": { "u_has_item": "matrix_crystal_telepathy" }, + "effect": [ + { "u_consume_item": "matrix_crystal_telepathy", "count": 1 }, + { "u_spawn_item": "matrix_crystal_drained", "suppress_message": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_CRYSTAL_DRAINING", + "condition": { "u_has_item": "matrix_crystal_teleportation" }, + "effect": [ + { "u_consume_item": "matrix_crystal_teleportation", "count": 1 }, + { "u_spawn_item": "matrix_crystal_drained", "suppress_message": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_CRYSTAL_DRAINING", + "condition": { "u_has_item": "matrix_crystal_vitakinesis" }, + "effect": [ + { "u_consume_item": "matrix_crystal_vitakinesis", "count": 1 }, + { "u_spawn_item": "matrix_crystal_drained", "suppress_message": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CORUSCATING_CRYSTAL_DRAINING", + "condition": { "u_has_item": "matrix_crystal_coruscating" }, + "effect": [ + { "u_consume_item": "matrix_crystal_coruscating", "count": 1 }, + { "u_spawn_item": "matrix_crystal_drained", "suppress_message": true } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_items.json b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_items.json new file mode 100644 index 000000000..5272f56a5 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_items.json @@ -0,0 +1,42 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_INSTABILITY_CREAM", + "effect": [ + { + "u_message": "You rub the cream on your skin. It's cool and soothing at first, but very soon that feeling is replaced by an overpowering itchiness." + }, + { "u_add_effect": "instability_remover", "duration": "24 hours" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_FORCE_FIELD_GENERATOR_ACTIVATION", + "condition": { "u_has_items": { "item": "matrix_crystal_drained", "count": 1 } }, + "effect": [ + { + "run_eocs": [ + { + "id": "EOC_FORCE_FIELD_GENERATOR_ACTIVATION_2", + "condition": { "math": [ "rng(0,99)", ">=", "3" ] }, + "effect": [ + { "u_consume_item": "matrix_crystal_drained", "count": 1 }, + { "u_message": "The matrix crystal cracks into pieces as the device activates!", "type": "mixed" }, + { + "u_add_effect": "force_field_generated", + "duration": { "math": [ "(u_val('time: 2 s') * rng(1,6)) " ] } + } + ], + "false_effect": [ + { "u_message": "The device makes a whining sound and there is a sharp smell of burnt plastic!", "type": "bad" }, + { "u_consume_item": "matrix_crystal_drained", "count": 1 }, + { "u_consume_item": "force_field_generator", "count": 1 }, + { "u_spawn_item": "force_field_generator_broken", "suppress_message": true } + ] + } + ] + } + ], + "false_effect": [ { "u_message": "Without a matrix crystal to power it, flipping the toggle does nothing.", "type": "bad" } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_learn_recipes.json b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_learn_recipes.json new file mode 100644 index 000000000..746370d87 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_learn_recipes.json @@ -0,0 +1,190 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_TEACH_BIOKIN_CONTEMPLATE_RECIPES", + "effect": [ + { "u_learn_recipe": "practice_biokin_physical_enhance" }, + { "u_learn_recipe": "practice_biokin_overcome_pain" }, + { "u_learn_recipe": "practice_biokin_flexibility" }, + { "u_learn_recipe": "practice_biokin_climate_control" }, + { "u_learn_recipe": "practice_biokin_enhance_mobility" }, + { "u_learn_recipe": "practice_biokin_hammerhand" }, + { "u_learn_recipe": "practice_biokin_armor_skin" }, + { "u_learn_recipe": "practice_biokin_reflex_enhance" }, + { "u_learn_recipe": "practice_biokin_sealed_system" }, + { "u_learn_recipe": "practice_biokin_combat_dance" }, + { "u_learn_recipe": "practice_biokin_perfected_motion" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEACH_CLAIR_CONTEMPLATE_RECIPES", + "effect": [ + { "u_learn_recipe": "practice_clair_night_vision" }, + { "u_learn_recipe": "practice_clair_danger_sense" }, + { "u_learn_recipe": "practice_clair_speed_reading" }, + { "u_learn_recipe": "practice_clair_spot_weakness" }, + { "u_learn_recipe": "practice_clair_ranged_enhance" }, + { "u_learn_recipe": "practice_clair_voyance" }, + { "u_learn_recipe": "practice_clair_dodge_power" }, + { "u_learn_recipe": "practice_clair_clear_sight" }, + { "u_learn_recipe": "practice_clair_see_map" }, + { "u_learn_recipe": "practice_clair_omniscience" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEACH_PYROKIN_CONTEMPLATE_RECIPES", + "effect": [ + { "u_learn_recipe": "practice_pyrokinetic_flash" }, + { "u_learn_recipe": "practice_pyrokinetic_eruption" }, + { "u_learn_recipe": "practice_pyrokinetic_call_flames" }, + { "u_learn_recipe": "practice_pyrokinetic_quell_flames" }, + { "u_learn_recipe": "practice_pyrokinetic_cloak" }, + { "u_learn_recipe": "practice_pyrokinetic_lance" }, + { "u_learn_recipe": "practice_pyrokinetic_thermogenesis" }, + { "u_learn_recipe": "practice_pyrokinetic_flamethrower" }, + { "u_learn_recipe": "practice_pyrokinetic_aura" }, + { "u_learn_recipe": "practice_pyrokinetic_flame_immunity" }, + { "u_learn_recipe": "practice_pyrokinetic_blast" }, + { "u_learn_recipe": "practice_pyrokinetic_aoe_blast" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEACH_TELEKIN_CONTEMPLATE_RECIPES", + "effect": [ + { "u_learn_recipe": "practice_telekinetic_pull" }, + { "u_learn_recipe": "practice_telekinetic_push" }, + { "u_learn_recipe": "practice_telekinetic_momentum" }, + { "u_learn_recipe": "practice_telekinetic_slowfall" }, + { "u_learn_recipe": "practice_telekinetic_wave" }, + { "u_learn_recipe": "practice_telekinetic_strength" }, + { "u_learn_recipe": "practice_telekinetic_hammer" }, + { "u_learn_recipe": "practice_telekinetic_vehicle_lift" }, + { "u_learn_recipe": "practice_telekinetic_shield" }, + { "u_learn_recipe": "practice_telekinetic_explosion" }, + { "u_learn_recipe": "practice_telekinetic_levitation" }, + { "u_learn_recipe": "practice_telekinetic_aegis" }, + { "u_learn_recipe": "improve_telekinesis_lifting_field" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEACH_TELEPATH_CONTEMPLATE_RECIPES", + "effect": [ + { "u_learn_recipe": "practice_telepathic_concentration" }, + { "u_learn_recipe": "practice_telepathic_shield" }, + { "u_learn_recipe": "practice_telepathic_morale" }, + { "u_learn_recipe": "practice_telepathic_blast" }, + { "u_learn_recipe": "practice_telepathic_confusion" }, + { "u_learn_recipe": "practice_telepathic_invisibility" }, + { "u_learn_recipe": "practice_telepathic_scream" }, + { "u_learn_recipe": "practice_telepathic_mind_control" }, + { "u_learn_recipe": "practice_telepathic_network" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEACH_TELEPORT_CONTEMPLATE_RECIPES", + "effect": [ + { "u_learn_recipe": "practice_teleport_blink" }, + { "u_learn_recipe": "practice_teleport_slow" }, + { "u_learn_recipe": "practice_teleport_stride" }, + { "u_learn_recipe": "practice_teleport_phase" }, + { "u_learn_recipe": "practice_teleport_transpose" }, + { "u_learn_recipe": "practice_teleport_displacement" }, + { "u_learn_recipe": "practice_teleport_farstep" }, + { "u_learn_recipe": "practice_teleport_collapse" }, + { "u_learn_recipe": "practice_teleport_gateway" }, + { "u_learn_recipe": "practice_teleport_banish" }, + { "u_learn_recipe": "practice_teleport_breach" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEACH_VITAKIN_CONTEMPLATE_RECIPES", + "effect": [ + { "u_learn_recipe": "practice_vita_health_power" }, + { "u_learn_recipe": "practice_vita_stop_bleeding" }, + { "u_learn_recipe": "practice_vita_healing_touch" }, + { "u_learn_recipe": "practice_vita_hurt_touch" }, + { "u_learn_recipe": "practice_vita_sleeping_trance" }, + { "u_learn_recipe": "practice_vita_pain_split" }, + { "u_learn_recipe": "practice_vita_stop_infection" }, + { "u_learn_recipe": "practice_vita_healing_trance" }, + { "u_learn_recipe": "practice_vita_blood_purge" }, + { "u_learn_recipe": "practice_vita_banish_illness" }, + { "u_learn_recipe": "practice_vita_super_heal" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_RECIPE_TEACHER", + "eoc_type": "EVENT", + "required_event": "game_begin", + "condition": { "u_has_trait": "BIOKINETIC" }, + "effect": [ { "queue_eocs": "EOC_TEACH_BIOKIN_CONTEMPLATE_RECIPES", "time_in_future": [ "10 seconds", "15 seconds" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_RECIPE_TEACHER", + "eoc_type": "EVENT", + "required_event": "game_begin", + "condition": { "u_has_trait": "CLAIRSENTIENT" }, + "effect": [ { "queue_eocs": "EOC_TEACH_CLAIR_CONTEMPLATE_RECIPES", "time_in_future": [ "10 seconds", "15 seconds" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PYROKIN_RECIPE_TEACHER", + "eoc_type": "EVENT", + "required_event": "game_begin", + "condition": { "u_has_trait": "PYROKINETIC" }, + "effect": [ { "queue_eocs": "EOC_TEACH_PYROKIN_CONTEMPLATE_RECIPES", "time_in_future": [ "10 seconds", "15 seconds" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_RECIPE_TEACHER", + "eoc_type": "EVENT", + "required_event": "game_begin", + "condition": { "u_has_trait": "TELEKINETIC" }, + "effect": [ { "queue_eocs": "EOC_TEACH_TELEKIN_CONTEMPLATE_RECIPES", "time_in_future": [ "10 seconds", "15 seconds" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPATH_RECIPE_TEACHER", + "eoc_type": "EVENT", + "required_event": "game_begin", + "condition": { "u_has_trait": "TELEPATH" }, + "effect": [ { "queue_eocs": "EOC_TEACH_TELEPATH_CONTEMPLATE_RECIPES", "time_in_future": [ "10 seconds", "15 seconds" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_RECIPE_TEACHER", + "eoc_type": "EVENT", + "required_event": "game_begin", + "condition": { "u_has_trait": "TELEPORTER" }, + "effect": [ { "queue_eocs": "EOC_TEACH_TELEPORT_CONTEMPLATE_RECIPES", "time_in_future": [ "10 seconds", "15 seconds" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_RECIPE_TEACHER", + "eoc_type": "EVENT", + "required_event": "game_begin", + "condition": { "u_has_trait": "VITAKINETIC" }, + "effect": [ { "queue_eocs": "EOC_TEACH_VITAKIN_CONTEMPLATE_RECIPES", "time_in_future": [ "10 seconds", "15 seconds" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PSI_USB_RAD_RECIPE", + "condition": { "or": [ { "u_has_item": "laptop" }, { "u_has_item": "laptop_screen_lit" } ] }, + "effect": [ + { "u_learn_recipe": "psi_research_rad_powers" }, + { + "u_message": "You plug in the USB and find a series of powerpoint presentations, long technical-looking documents, video files, and other documents. It's going to take a long while to sort through these.", + "type": "neutral" + } + ], + "false_effect": [ { "u_message": "Without a laptop, you can't access the data on the USB", "type": "bad" } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_misc.json b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_misc.json new file mode 100644 index 000000000..731cde040 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_misc.json @@ -0,0 +1,88 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_ZENER_DECK", + "condition": { "math": [ "u_val('spell_level', 'school: CLAIRSENTIENT')", ">=", "10" ] }, + "effect": [ + { + "switch": { "rand": 4 }, + "cases": [ + { + "case": 0, + "effect": [ + { + "u_message": "You draw the hollow circle card, just as you knew you would. You look at it for a moment and put it back in the deck." + } + ] + }, + { + "case": 1, + "effect": [ + { + "u_message": "You draw the three wavy lines card, just as you knew you would. You look at it for a moment and put it back in the deck." + } + ] + }, + { + "case": 2, + "effect": [ + { + "u_message": "You draw the hollow square card, just as you knew you would. You look at it for a moment and put it back in the deck." + } + ] + }, + { + "case": 3, + "effect": [ + { + "u_message": "You draw the five-pointed star card, just as you knew you would. You look at it for a moment and put it back in the deck." + } + ] + }, + { + "case": 4, + "effect": [ + { + "u_message": "You draw the plus symbol card, just as you knew you would. You look at it for a moment and put it back in the deck." + } + ] + } + ] + } + ], + "false_effect": [ + { + "switch": { "rand": 4 }, + "cases": [ + { + "case": 0, + "effect": [ { "u_message": "You draw the hollow circle card, look at it for a moment, and put it back in the deck." } ] + }, + { + "case": 1, + "effect": [ { "u_message": "You draw the three wavy lines card, look at it for a moment, and put it back in the deck." } ] + }, + { + "case": 2, + "effect": [ { "u_message": "You draw the hollow square card, look at it for a moment, and put it back in the deck." } ] + }, + { + "case": 3, + "effect": [ { "u_message": "You draw the five-pointed star card, look at it for a moment, and put it back in the deck." } ] + }, + { + "case": 4, + "effect": [ { "u_message": "You draw the plus symbol card, look at it for a moment, and put it back in the deck." } ] + } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_RESET_TELEPATHIC_STEALING_TIMER", + "recurrence": [ "20 hours", "28 hours" ], + "condition": { "math": [ "telepathically_stole_recently", ">=", "1" ] }, + "effect": [ { "math": [ "telepathically_stole_recently", "=", "0" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_mutations.json b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_mutations.json new file mode 100644 index 000000000..e74459ba8 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_mutations.json @@ -0,0 +1,651 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_TELEKINETIC_LIFTER", + "condition": { "u_has_trait": "TELEKINETIC" }, + "effect": { + "switch": { "u_val": "spell_level", "school": "TELEKINETIC" }, + "cases": [ + { "case": 2, "effect": [ { "u_add_trait": "TELEKINETIC_LIFTER_1" } ] }, + { + "case": 3, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 4, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 5, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 6, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 7, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 8, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 9, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 10, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 11, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 12, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 13, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 14, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 15, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 16, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 17, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 18, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 19, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 20, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 21, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 22, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_21" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 23, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_22" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_21" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 24, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_23" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_22" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_21" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 25, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_24" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_23" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_22" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_21" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 26, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_25" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_24" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_23" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_22" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_21" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 27, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_26" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_25" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_24" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_23" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_22" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_21" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 28, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_27" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_26" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_25" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_24" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_23" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_22" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_21" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 29, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_28" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_27" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_26" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_25" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_24" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_23" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_22" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_21" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 30, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_29" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_28" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_27" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_26" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_25" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_24" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_23" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_22" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_21" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + }, + { + "case": 31, + "effect": [ + { "u_add_trait": "TELEKINETIC_LIFTER_30" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_29" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_28" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_27" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_26" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_25" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_24" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_23" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_22" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_21" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_20" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_19" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_18" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_17" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_16" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_15" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_14" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_13" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_12" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_11" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_10" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_9" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_8" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_7" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_6" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_5" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_4" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_3" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_2" }, + { "u_lose_trait": "TELEKINETIC_LIFTER_1" }, + { "u_message": "You meditate on your lifting field.", "type": "good" } + ] + } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_potions.json b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_potions.json new file mode 100644 index 000000000..7ffb1f0ad --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_potions.json @@ -0,0 +1,161 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_POTION", + "effect": [ + { "u_message": "You drink the concoction." }, + { "u_lose_effect": "effect_biokin_potion_comedown" }, + { "u_add_effect": "effect_biokin_potion", "duration": "30 hours" }, + { "queue_eocs": "EOC_BIOKIN_POTION_COMEDOWN", "time_in_future": [ "12 hours", "30 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_POTION_COMEDOWN", + "effect": [ + { "u_lose_effect": "effect_biokin_potion" }, + { "u_add_effect": "effect_biokin_potion_comedown", "duration": [ "24 hours", "55 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_POTION", + "effect": [ + { "u_message": "You drink the concoction." }, + { "u_lose_effect": "effect_clair_potion_comedown" }, + { "u_add_effect": "effect_clair_potion", "duration": "30 hours" }, + { "queue_eocs": "EOC_CLAIR_POTION_COMEDOWN", "time_in_future": [ "12 hours", "30 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_POTION_COMEDOWN", + "effect": [ + { "u_lose_effect": "effect_clair_potion" }, + { "u_add_effect": "effect_clair_potion_comedown", "duration": [ "24 hours", "55 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PYROKIN_POTION", + "effect": [ + { "u_message": "You drink the concoction." }, + { "u_lose_effect": "effect_pyrokin_potion_comedown" }, + { "u_add_effect": "effect_pyrokin_potion", "duration": "30 hours" }, + { "queue_eocs": "EOC_PYROKIN_POTION_COMEDOWN", "time_in_future": [ "12 hours", "30 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PYROKIN_POTION_COMEDOWN", + "effect": [ + { "u_lose_effect": "effect_pyrokin_potion" }, + { "u_add_effect": "effect_pyrokin_potion_comedown", "duration": [ "24 hours", "55 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_POTION", + "effect": [ + { "u_message": "You drink the concoction." }, + { "u_lose_effect": "effect_telekin_potion_comedown" }, + { "u_add_effect": "effect_telekin_potion", "duration": "30 hours" }, + { "u_add_trait": "TELELIXIRDOWN" }, + { "queue_eocs": "EOC_TELEKIN_POTION_COMEDOWN", "time_in_future": [ "12 hours", "30 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_POTION_COMEDOWN", + "effect": [ + { "u_lose_effect": "effect_telekin_potion" }, + { "u_add_effect": "effect_telekin_potion_comedown", "duration": [ "24 hours", "55 hours" ] }, + { "u_lose_trait": "TELELIXIRDOWN" }, + { "u_lose_trait": "TELELIXIRDOWN_active" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPATH_POTION", + "effect": [ + { "u_message": "You drink the concoction." }, + { "u_lose_effect": "effect_telepath_potion_comedown" }, + { "u_add_effect": "effect_telepath_potion", "duration": "30 hours" }, + { "queue_eocs": "EOC_TELEPATH_POTION_COMEDOWN", "time_in_future": [ "12 hours", "30 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPATH_POTION_COMEDOWN", + "effect": [ + { "u_lose_effect": "effect_telepath_potion" }, + { "u_add_effect": "effect_telepath_potion_comedown", "duration": [ "24 hours", "55 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_POTION", + "effect": [ + { "u_message": "You drink the concoction." }, + { "u_lose_effect": "effect_teleport_potion_comedown" }, + { "u_add_effect": "effect_teleport_potion", "duration": "30 hours" }, + { "queue_eocs": "EOC_TELEPORT_POTION_COMEDOWN", "time_in_future": [ "12 hours", "30 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_POTION_COMEDOWN", + "effect": [ + { "u_lose_effect": "effect_teleport_potion" }, + { "u_add_effect": "effect_teleport_potion_comedown", "duration": [ "24 hours", "55 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_POTION_COMEDOWN_TELEPORT", + "condition": { "u_has_effect": "effect_teleport_potion_comedown" }, + "recurrence": [ "30 minutes", "90 minutes" ], + "deactivate_condition": { "not": { "u_has_effect": "effect_teleport_potion_comedown" } }, + "effect": [ + { + "u_cast_spell": { "id": "teleport_blink_monster", "message": "Reality suddenly warps around you and you are somewhere else!" } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_POTION", + "effect": [ + { "u_message": "You drink the concoction." }, + { "u_lose_effect": "effect_vitakin_potion_comedown" }, + { "u_add_effect": "effect_vitakin_potion", "duration": "30 hours" }, + { "queue_eocs": "EOC_VITAKIN_POTION_COMEDOWN", "time_in_future": [ "12 hours", "30 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_POTION_COMEDOWN", + "effect": [ + { "u_lose_effect": "effect_vitakin_potion" }, + { "u_add_effect": "effect_vitakin_potion_comedown", "duration": [ "24 hours", "55 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DRAIN_RESIST_POTION", + "effect": [ + { "u_message": "You drink the concoction." }, + { "u_lose_effect": "effect_noetic_resilience_comedown" }, + { "u_add_effect": "effect_noetic_resilience", "duration": "30 hours" }, + { "queue_eocs": "EOC_DRAIN_RESIST_POTION_COMEDOWN", "time_in_future": [ "18 hours", "30 hours" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DRAIN_RESIST_POTION_COMEDOWN", + "effect": [ + { "u_lose_effect": "effect_noetic_resilience" }, + { "u_add_effect": "effect_noetic_resilience_comedown", "duration": [ "24 hours", "55 hours" ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_power_effects.json b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_power_effects.json new file mode 100644 index 000000000..392e50727 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_power_effects.json @@ -0,0 +1,74 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_MATRIX_BOOST", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "and": [ { "u_has_trait": "BIOKINETIC" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_BIOKINESIS" } ] }, + "effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: BIOKINETIC')", "=", "4" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_MATRIX_BOOST", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "and": [ { "u_has_trait": "CLAIRSENTIENT" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_CLAIRSENTIENCE" } ] }, + "effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: CLAIRSENTIENT')", "=", "4" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PYRO_MATRIX_BOOST", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "and": [ { "u_has_trait": "PYROKINETIC" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_PYROKINESIS" } ] }, + "effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: PYROKINETIC')", "=", "4" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_MATRIX_BOOST", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "and": [ { "u_has_trait": "TELEKINETIC" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_TELEKINESIS" } ] }, + "effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: TELEKINETIC')", "=", "4" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TEEP_MATRIX_BOOST", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "and": [ { "u_has_trait": "TELEPATH" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_TELEPATHY" } ] }, + "effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: TELEPATH')", "=", "4" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_MATRIX_BOOST", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "and": [ { "u_has_trait": "TELEPORTER" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_TELEPORTATION" } ] }, + "effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: TELEPORTER')", "=", "4" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_MATRIX_BOOST", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "and": [ { "u_has_trait": "VITAKINETIC" }, { "u_has_wielded_with_flag": "MATRIX_CRYSTAL_VITAKINESIS" } ] }, + "effect": [ { "math": [ "u_val('spell_level_adjustment', 'school: VITAKINETIC')", "=", "4" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DRAIN_RESIST_POTION_COMEDOWN_PENALTY", + "eoc_type": "EVENT", + "required_event": "opens_spellbook", + "condition": { "u_has_effect": "effect_noetic_resilience_comedown" }, + "effect": [ + { "math": [ "u_val('spell_level_adjustment', 'school: BIOKINETIC')", "=", "-3" ] }, + { "math": [ "u_val('spell_level_adjustment', 'school: CLAIRSENTIENT')", "=", "-3" ] }, + { "math": [ "u_val('spell_level_adjustment', 'school: PYROKINETIC')", "=", "-3" ] }, + { "math": [ "u_val('spell_level_adjustment', 'school: TELEKINETIC')", "=", "-3" ] }, + { "math": [ "u_val('spell_level_adjustment', 'school: TELEPATH')", "=", "-3" ] }, + { "math": [ "u_val('spell_level_adjustment', 'school: TELEPORTER')", "=", "-3" ] }, + { "math": [ "u_val('spell_level_adjustment', 'school: VITAKINETIC')", "=", "-3" ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_premonition_instances.json b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_premonition_instances.json new file mode 100644 index 000000000..ec92edbf7 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effectoncondition/eoc_premonition_instances.json @@ -0,0 +1,397 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_LIEUTENANT_SPAWN_SHADOW", + "recurrence": [ "4 hours", "4 hours" ], + "//": "Copy EoC: original in json/monsters/zed_lieutenant.json", + "condition": { + "and": [ + { "one_in_chance": 6 }, + { "not": "is_day" }, + { "math": [ "u_Lieutenants_active", ">", "0" ] }, + { "math": [ "u_Shadow_Lurking", ">", "0" ] }, + "u_is_outside", + { + "or": [ { "u_at_om_location": "field" }, { "u_at_om_location": "forest" }, { "u_at_om_location": "forest_thick" } ] + } + ] + }, + "effect": [ + { + "run_eocs": [ + { + "id": "EOC_LIEUTENANT_SPAWN_SHADOW_PREMONITION", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "1" ] }, + "effect": [ + { + "u_message": "The darkness takes on a palpable sense of menace. Something terrible is coming.", + "type": "bad", + "popup": true + }, + { + "queue_eocs": "EOC_LIEUTENANT_SPAWN_SHADOW_ACTUAL", + "time_in_future": { "math": [ "(u_val('spell_level', 'spell: clair_danger_sense') * 5) + 10" ] } + } + ], + "false_effect": [ { "run_eocs": [ "EOC_LIEUTENANT_SPAWN_SHADOW_ACTUAL" ] } ] + } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIEUTENANT_SPAWN_SHADOW_ACTUAL", + "effect": [ + { "u_adjust_var": "Shadow_Lurking", "adjustment": -1 }, + { "u_spawn_monster": "mon_lieutenant_shadow", "real_count": 1, "min_radius": 10, "max_radius": 15 }, + { "u_message": "You shiver as the night closes in…", "type": "bad", "popup": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CAUSE_EARLY_PORTAL_STORM", + "//": "Copy EoC: original in json/portal_storm_effect_on_condition.json", + "global": true, + "condition": { + "not": { + "or": [ + { "is_weather": "portal_storm" }, + { "is_weather": "early_portal_storm" }, + { "math": [ "cause_portal_storm", "==", "1" ] }, + { "math": [ "cause_early_portal_storm", "==", "1" ] } + ] + } + }, + "effect": [ + { + "run_eocs": [ + { + "id": "EOC_CAUSE_EARLY_PORTAL_STORM_PREMONITION", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "1" ] }, + "effect": [ + { + "u_message": "The air hums like a wire stretched taut and on the verge of breaking. Any moment, something is going to snap.", + "type": "bad", + "popup": true + }, + { + "queue_eocs": "EOC_CAUSE_EARLY_PORTAL_STORM_ACTUAL", + "time_in_future": { "math": [ "(u_val('spell_level', 'spell: clair_danger_sense') * 15) + 15" ] } + } + ], + "false_effect": [ { "run_eocs": [ "EOC_CAUSE_EARLY_PORTAL_STORM_ACTUAL" ] } ] + } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CAUSE_EARLY_PORTAL_STORM_ACTUAL", + "effect": [ + { "u_location_variable": { "global_val": "portal_storm_center" }, "min_radius": 30, "max_radius": 75 }, + { "math": [ "cause_early_portal_storm", "=", "1" ] }, + "next_weather", + { "queue_eocs": "EOC_CAUSE_PORTAL_STORM", "time_in_future": [ "30 seconds", "1 minutes" ] }, + { "assign_mission": "MISSION_INVESTIGATE_PORTAL_STORM_CENTER" }, + { + "u_message": "You suddenly register a buzzing in your senses. It's getting louder, and your head starts to throb. Somewhere nearby, a tiny cataclysm has begun (check mission log for details).", + "type": "bad", + "popup": true + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BANDIT_ASSASSIN", + "//": "Copy EoC: original in json/effect_on_condition.json", + "recurrence": [ "60 days", "100 days" ], + "condition": { + "and": [ + { "compare_int": [ { "faction_like": "hells_raiders" }, "<", { "const": -40 } ] }, + { "compare_int": [ { "faction_like": "hells_raiders" }, ">", { "const": -60 } ] }, + { "compare_num": [ { "u_val": "var", "var_name": "bandit_assassins_sent" }, "<=", { "const": 10 } ] }, + { "days_since_cataclysm": 9 }, + { "not": { "is_weather": "portal_storm" } }, + { "not": { "u_near_om_location": "godco_enter", "range": 8 } }, + { "not": { "u_near_om_location": "evac_center_18", "range": 4 } }, + { "not": { "u_near_om_location": "pagan_cult_enter", "range": 4 } }, + { "not": { "u_near_om_location": "lumbermill_0_0_ocu", "range": 4 } }, + { "not": { "u_near_om_location": "smallscrapyard_ocu", "range": 4 } } + ] + }, + "effect": [ + { + "run_eocs": [ + { + "id": "EOC_BANDIT_ASSASSIN_1_PREMONITION", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "1" ] }, + "effect": [ + { + "u_message": "You feel hostile eyes watching you and rapidly getting closer. Someone has it in for you.", + "type": "bad", + "popup": true + }, + { + "queue_eocs": "EOC_BANDIT_ASSASSIN_1_ACTUAL_FAR", + "time_in_future": { "math": [ "(u_val('spell_level', 'spell: clair_danger_sense') * 4) + 5" ] } + } + ], + "false_effect": [ { "run_eocs": [ "EOC_BANDIT_ASSASSIN_1_ACTUAL_NEAR" ] } ] + } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BANDIT_ASSASSIN_1_ACTUAL_NEAR", + "effect": [ + { + "u_spawn_npc": "hells_raiders_assassin", + "real_count": 1, + "outdoor_only": false, + "min_radius": 15, + "max_radius": 25, + "spawn_message": "A rough-looking person steps out of hiding and begins rapidly approaching you." + }, + { "arithmetic": [ { "u_val": "var", "var_name": "bandit_assassins_sent" }, "+=", { "const": 1 } ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BANDIT_ASSASSIN_1_ACTUAL_FAR", + "effect": [ + { + "u_spawn_npc": "hells_raiders_assassin", + "real_count": 1, + "outdoor_only": false, + "min_radius": 25, + "max_radius": 40, + "spawn_message": "A rough-looking person steps out of hiding and begins rapidly approaching you." + }, + { "arithmetic": [ { "u_val": "var", "var_name": "bandit_assassins_sent" }, "+=", { "const": 1 } ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BANDIT_ASSASSIN_2", + "//": "Copy EoC: original in json/effect_on_condition.json", + "recurrence": [ "60 days", "100 days" ], + "condition": { + "and": [ + { "compare_int": [ { "faction_like": "hells_raiders" }, "<", { "const": -60 } ] }, + { "compare_int": [ { "faction_like": "hells_raiders" }, ">", { "const": -90 } ] }, + { "compare_num": [ { "u_val": "var", "var_name": "bandit_assassins_sent" }, "<=", { "const": 10 } ] }, + { "days_since_cataclysm": 15 }, + { "not": { "is_weather": "portal_storm" } }, + { "not": { "u_near_om_location": "godco_enter", "range": 8 } }, + { "not": { "u_near_om_location": "evac_center_18", "range": 4 } }, + { "not": { "u_near_om_location": "pagan_cult_enter", "range": 4 } }, + { "not": { "u_near_om_location": "lumbermill_0_0_ocu", "range": 4 } }, + { "not": { "u_near_om_location": "smallscrapyard_ocu", "range": 4 } } + ] + }, + "effect": [ + { + "run_eocs": [ + { + "id": "EOC_BANDIT_ASSASSIN_2_PREMONITION", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "1" ] }, + "effect": [ + { + "u_message": "You feel hostile eyes watching you and rapidly getting closer. Someone has it in for you.", + "type": "bad", + "popup": true + }, + { + "queue_eocs": "EOC_BANDIT_ASSASSIN_2_ACTUAL_NEAR", + "time_in_future": { "math": [ "(u_val('spell_level', 'spell: clair_danger_sense') * 4) + 5" ] } + } + ], + "false_effect": [ { "run_eocs": [ "EOC_BANDIT_ASSASSIN_2_ACTUAL_FAR" ] } ] + } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BANDIT_ASSASSIN_2_ACTUAL_NEAR", + "effect": [ + { + "u_spawn_npc": "hells_raiders_assassin", + "real_count": 2, + "outdoor_only": false, + "min_radius": 15, + "max_radius": 25, + "spawn_message": "A rough-looking person steps out of hiding and begins rapidly approaching you.", + "spawn_message_plural": "Rough-looking people step out of hiding and begin rapidly approaching you." + }, + { "arithmetic": [ { "u_val": "var", "var_name": "bandit_assassins_sent" }, "+=", { "const": 1 } ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BANDIT_ASSASSIN_2_ACTUAL_FAR", + "effect": [ + { + "u_spawn_npc": "hells_raiders_assassin", + "real_count": 2, + "outdoor_only": false, + "min_radius": 25, + "max_radius": 40, + "spawn_message": "A rough-looking person steps out of hiding and begins rapidly approaching you.", + "spawn_message_plural": "Rough-looking people step out of hiding and begin rapidly approaching you." + }, + { "arithmetic": [ { "u_val": "var", "var_name": "bandit_assassins_sent" }, "+=", { "const": 1 } ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BANDIT_ASSASSIN_3", + "//": "Copy EoC: original in json/effect_on_condition.json", + "recurrence": [ "60 days", "100 days" ], + "condition": { + "and": [ + { "compare_int": [ { "faction_like": "hells_raiders" }, "<", { "const": -90 } ] }, + { "compare_num": [ { "u_val": "var", "var_name": "bandit_assassins_sent" }, "<=", { "const": 10 } ] }, + { "days_since_cataclysm": 21 }, + { "not": { "is_weather": "portal_storm" } }, + { "not": { "u_near_om_location": "godco_enter", "range": 4 } }, + { "not": { "u_near_om_location": "evac_center_18", "range": 4 } }, + { "not": { "u_near_om_location": "pagan_cult_enter", "range": 4 } }, + { "not": { "u_near_om_location": "lumbermill_0_0_ocu", "range": 4 } }, + { "not": { "u_near_om_location": "smallscrapyard_ocu", "range": 4 } } + ] + }, + "effect": [ + { + "run_eocs": [ + { + "id": "EOC_BANDIT_ASSASSIN_3_PREMONITION", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "1" ] }, + "effect": [ + { + "u_message": "You feel several sets of hostile eyes watching you and rapidly getting closer. Someone has it in for you.", + "type": "bad", + "popup": true + }, + { + "queue_eocs": "EOC_BANDIT_ASSASSIN_3_ACTUAL_NEAR", + "time_in_future": { "math": [ "(u_val('spell_level', 'spell: clair_danger_sense') * 4) + 5" ] } + } + ], + "false_effect": [ { "run_eocs": [ "EOC_BANDIT_ASSASSIN_3_ACTUAL_FAR" ] } ] + } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BANDIT_ASSASSIN_3_ACTUAL_NEAR", + "effect": [ + { + "u_spawn_npc": "hells_raiders_assassin", + "real_count": 3, + "outdoor_only": false, + "min_radius": 15, + "max_radius": 25, + "spawn_message": "A rough-looking person steps out of hiding and begins rapidly approaching you.", + "spawn_message_plural": "Rough-looking people step out of hiding and begin rapidly approaching you." + }, + { "arithmetic": [ { "u_val": "var", "var_name": "bandit_assassins_sent" }, "+=", { "const": 1 } ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BANDIT_ASSASSIN_3_ACTUAL_FAR", + "effect": [ + { + "u_spawn_npc": "hells_raiders_assassin", + "real_count": 3, + "outdoor_only": false, + "min_radius": 25, + "max_radius": 40, + "spawn_message": "A rough-looking person steps out of hiding and begins rapidly approaching you.", + "spawn_message_plural": "Rough-looking people step out of hiding and begin rapidly approaching you." + }, + { "arithmetic": [ { "u_val": "var", "var_name": "bandit_assassins_sent" }, "+=", { "const": 1 } ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_OLD_GUARD_ASSASSIN", + "//": "Copy EoC: original in json/effect_on_condition.json", + "recurrence": [ "60 days", "100 days" ], + "condition": { + "and": [ + { "compare_int": [ { "faction_like": "old_guard" }, "<", { "const": -45 } ] }, + { "compare_num": [ { "u_val": "var", "var_name": "government_assassins_sent" }, "<=", { "const": 6 } ] }, + { "days_since_cataclysm": 9 }, + { "not": { "is_weather": "portal_storm" } }, + { "not": { "u_near_om_location": "godco_enter", "range": 8 } }, + { "not": { "u_near_om_location": "evac_center_18", "range": 4 } }, + { "not": { "u_near_om_location": "pagan_cult_enter", "range": 4 } }, + { "not": { "u_near_om_location": "lumbermill_0_0_ocu", "range": 4 } }, + { "not": { "u_near_om_location": "smallscrapyard_ocu", "range": 4 } } + ] + }, + "effect": [ + { + "run_eocs": [ + { + "id": "EOC_OLD_GUARD_ASSASSIN_PREMONITION", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "1" ] }, + "effect": [ + { + "u_message": "You feel several sets of hostile eyes watching you and rapidly getting closer. Someone has it in for you.", + "type": "bad", + "popup": true + }, + { + "queue_eocs": "EOC_OLD_GUARD_ASSASSIN_ACTUAL_NEAR", + "time_in_future": { "math": [ "(u_val('spell_level', 'spell: clair_danger_sense') * 4) + 5" ] } + } + ], + "false_effect": [ { "run_eocs": [ "EOC_OLD_GUARD_ASSASSIN_ACTUAL_FAR" ] } ] + } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_OLD_GUARD_ASSASSIN_ACTUAL_NEAR", + "effect": [ + { + "u_spawn_npc": "old_guard_assassin", + "real_count": 2, + "outdoor_only": false, + "min_radius": 15, + "max_radius": 25, + "spawn_message": "A professional-looking individual steps out of hiding and begins rapidly approaching you.", + "spawn_message_plural": "Professional-looking individuals step out of hiding and begin rapidly approaching you." + }, + { "arithmetic": [ { "u_val": "var", "var_name": "government_assassins_sent" }, "+=", { "const": 2 } ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_OLD_GUARD_ASSASSIN_ACTUAL_FAR", + "effect": [ + { + "u_spawn_npc": "old_guard_assassin", + "real_count": 2, + "outdoor_only": false, + "min_radius": 25, + "max_radius": 40, + "spawn_message": "A professional-looking individual steps out of hiding and begins rapidly approaching you.", + "spawn_message_plural": "Professional-looking individuals step out of hiding and begin rapidly approaching you." + }, + { "arithmetic": [ { "u_val": "var", "var_name": "government_assassins_sent" }, "+=", { "const": 2 } ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effects/effects_edited.json b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_edited.json new file mode 100644 index 000000000..74fc31dc7 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_edited.json @@ -0,0 +1,45 @@ +[ + { + "type": "effect_type", + "id": "taint", + "name": [ "Touched Mind", "Touched Mind", "Tainted Mind", "Badly Tainted Mind" ], + "miss_messages": [ [ "Your sense of reality warps!", 3 ] ], + "speed_name": "Tainted", + "desc": [ + "You are disoriented as strange visions flash through your mind.", + "You are overwhelmed by the disturbing imagery and concepts you're flooded with.", + "You can't comprehend the things around you…", + "You don't know what is and isn't real anymore…" + ], + "rating": "bad", + "max_intensity": 4, + "max_duration": "2 h", + "int_add_val": 1, + "int_dur_factor": "5 m", + "base_mods": { "speed_mod": [ -20 ], "str_mod": [ 0 ], "dex_mod": [ -1 ], "per_mod": [ -2 ], "vomit_chance": [ 20 ] }, + "scaling_mods": { "speed_mod": [ -10 ], "int_mod": [ -2 ], "str_mod": [ -1 ], "dex_mod": [ -1 ], "per_mod": [ -2 ] }, + "limb_score_mods": [ + { "limb_score": "reaction", "modifier": 0.8, "scaling": -0.2 }, + { "limb_score": "block", "modifier": 0.8, "scaling": -0.2 }, + { "limb_score": "vision", "modifier": 0.9, "scaling": -0.1 }, + { "limb_score": "night_vis", "modifier": 0.9, "scaling": -0.1 } + ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ], + "immune_flags": [ "TEEPSHIELD" ] + }, + { + "id": "tindrift", + "type": "effect_type", + "immune_flags": [ "TEEPSHIELD", "TELESTOP" ] + }, + { + "id": "attention", + "type": "effect_type", + "immune_flags": [ "TEEPSHIELD", "TELESTOP" ] + }, + { + "id": "teleglow", + "type": "effect_type", + "immune_flags": [ "TELESTOP" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effects/effects_items.json b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_items.json new file mode 100644 index 000000000..6767d846c --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_items.json @@ -0,0 +1,34 @@ +[ + { + "id": "instability_remover", + "type": "effect_type", + "name": [ "Severe Itching" ], + "desc": [ "You rubbed the cream all over your skin. Hopefully it was a good idea." ], + "apply_message": "Your entire body itches terribly!", + "remove_message": "The itching finally fades away.", + "rating": "mixed", + "max_duration": "24 hours", + "vitamins": [ { "vitamin": "instability", "rate": [ [ -1, -1 ] ], "tick": [ "3 m" ] } ], + "base_mods": { + "speed_mod": [ -10 ], + "str_mod": [ -1 ], + "dex_mod": [ -1 ], + "int_mod": [ -1 ], + "h_mod_min": [ -1 ], + "h_mod_chance": [ 1 ], + "h_mod_chance_bot": [ 5 ], + "h_mod_tick": [ 3600 ] + } + }, + { + "id": "force_field_generated", + "type": "effect_type", + "name": [ "Rippling Air" ], + "desc": [ "The air around you is wavering strangely." ], + "apply_message": "The world takes on a slightly bent look, as though you're a straw inserted into a glass of water.", + "remove_message": "The world snaps back into focus.", + "rating": "good", + "max_duration": "1 minutes", + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "FORCEFIELD", "add": 0.94 } ] } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effects/effects_monster.json b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_monster.json new file mode 100644 index 000000000..a51a32f3f --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_monster.json @@ -0,0 +1,103 @@ +[ + { + "type": "effect_type", + "id": "psi_blind", + "name": [ "Blind" ], + "desc": [ "Range of Sight: 0. You cannot see anything." ], + "removes_effects": [ "glare", "snow_glare", "darkness" ], + "apply_message": "You're blinded!", + "remove_message": "Your sight returns!", + "rating": "bad", + "show_in_info": true, + "limb_score_mods": [ + { "limb_score": "vision", "modifier": 0.0 }, + { "limb_score": "night_vis", "modifier": 0.0 }, + { "limb_score": "reaction", "modifier": 0.2 } + ], + "immune_flags": [ "TEEPSHIELD" ], + "flags": [ "EFFECT_LIMB_SCORE_MOD", "BLIND" ] + }, + { + "type": "effect_type", + "id": "psi_dazed", + "//": "Seperate id to change the apply message.", + "name": [ "Dazed" ], + "desc": [ "You're visibly shaken up, and are having a hard time focusing on what's going on around you." ], + "apply_message": "A roar fills your mind and you stagger!", + "rating": "bad", + "max_intensity": 10, + "max_duration": "10 m", + "int_add_val": 2, + "scaling_mods": { "speed_mod": [ -3 ] }, + "show_in_info": true, + "limb_score_mods": [ + { "limb_score": "balance", "modifier": 0.5 }, + { "limb_score": "reaction", "modifier": 0.35 }, + { "limb_score": "vision", "modifier": 0.75 } + ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "psi_deaf", + "name": [ "Deaf" ], + "desc": [ "You can't hear anything and your head aches from all the noise. You can't converse with NPCs." ], + "apply_message": "Your ears ring!", + "remove_message": "You can hear again!", + "rating": "bad", + "max_intensity": 3, + "int_dur_factor": "300 s", + "base_mods": { "pain_min": [ 1 ], "pain_max_val": [ 10 ], "pain_chance": [ 250 ], "pain_chance_bot": [ 1000 ] }, + "limb_score_mods": [ { "limb_score": "reaction", "modifier": 0.5 } ], + "immune_flags": [ "TEEPSHIELD" ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_riftwalker_teleport", + "name": [ "Dimensionally Unstable" ], + "desc": [ "You feel like you're barely part of the world." ], + "apply_message": "", + "remove_message": "With a jolt you feel more solid again.", + "rating": "bad", + "enchantments": [ "enchant_riftwalker_teleport" ], + "immune_flags": [ "TELESTOP", "DIMENSIONAL_ANCHOR" ] + }, + { + "type": "effect_type", + "id": "effect_vitakinetic_health_down", + "name": [ "Feeling Unwell" ], + "desc": [ "You feel weak and shaky." ], + "apply_message": "", + "remove_message": "The feeling of weakness fades away.", + "rating": "bad", + "max_duration": "12 hours", + "base_mods": { + "str_mod": [ -2 ], + "h_mod_min": [ -2 ], + "h_mod_chance": [ 1 ], + "h_mod_chance_bot": [ 5 ], + "h_mod_tick": [ 600 ], + "healing_rate": [ 0.75 ] + } + }, + { + "type": "effect_type", + "id": "effect_vitakinetic_healing_down", + "name": [ "Feeling Very Unwell" ], + "desc": [ "You feel fatigued and shaky." ], + "apply_message": "", + "remove_message": "The feeling of weakness fades away.", + "rating": "bad", + "max_duration": "18 hours", + "base_mods": { + "str_mod": [ -2 ], + "h_mod_min": [ -2 ], + "h_mod_chance": [ 1 ], + "h_mod_chance_bot": [ 4 ], + "h_mod_tick": [ 500 ], + "healing_rate": [ 0.5 ] + }, + "vitamins": [ { "vitamin": "iron", "rate": [ [ -10, -10 ] ], "tick": [ "1 m" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effects/effects_npc.json b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_npc.json new file mode 100644 index 000000000..01612ed6b --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_npc.json @@ -0,0 +1,8 @@ +[ + { + "type": "effect_type", + "id": "asked_to_vitakinetic_heal", + "name": [ "Asked to heal" ], + "desc": [ "You were asked if you wanted your illness healed and you said no." ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effects/effects_penalty.json b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_penalty.json new file mode 100644 index 000000000..df6198ae5 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_penalty.json @@ -0,0 +1,398 @@ +[ + { + "type": "effect_type", + "id": "effect_disease_psionic_drain", + "name": [ + "Drained", + "Drained", + "Drained", + "Enervated", + "Enervated", + "Enervated", + "Debilitated", + "Debilitated", + "Enfeebled", + "Enfeebled", + "Hollowed Out", + "Hollowed Out" + ], + "desc": [ + "You're a little short of breath and your muscles ache. Your use of psionic powers has taken its toll.", + "You're a little short of breath and your muscles ache. Your use of psionic powers has taken its toll.", + "You're a little short of breath and your muscles ache. Your use of psionic powers has taken its toll.", + "You feel an unnatural tiredness that penetrates to your core. All that psionic channeling is gravely affecting you.", + "You feel an unnatural tiredness that penetrates to your core. All that psionic channeling is gravely affecting you.", + "You feel an unnatural tiredness that penetrates to your core. All that psionic channeling is gravely affecting you.", + "You're having a hard time standing and keeping your eyes open. Your powers have taken the greater part of your energy.", + "You're having a hard time standing and keeping your eyes open. Your powers have taken the greater part of your energy.", + "You can barely stand and your stomach gnaws with hunger. Use of your powers has nearly drained you dry.", + "You can barely stand and your stomach gnaws with hunger. Use of your powers has nearly drained you dry.", + "Simply moving takes almost all of your effort and you have to fight to stay awake. You've very nearly drained your life away.", + "Simply moving takes almost all of your effort and you have to fight to stay awake. You've very nearly drained your life away." + ], + "apply_message": [ + [ "You feel a little tired. All that psionic channeling is starting to wear you down.", "bad" ], + [ "", "bad" ], + [ "", "bad" ], + [ "Your breath catches in your lungs. Use of your powers is really tiring you out.", "bad" ], + [ "", "bad" ], + [ "", "bad" ], + [ "Even standing is an effort. You've really worn yourself out with all this psionic channeling.", "bad" ], + [ "", "bad" ], + [ + "Your muscles ache and your eyes are starting to close on your own. Constant channeling is draining you dry.", + "bad" + ], + [ "", "bad" ], + [ + "It hurts to move. It hurts to breathe. It hurts to think. You need rest and to stop using your powers. Now.", + "bad" + ], + [ "", "bad" ] + ], + "decay_messages": [ + [ "", "good" ], + [ "", "good" ], + [ + "All that's left is a bit of weariness and some slight soreness. You've almost totally recovered from the aftereffects of drain.", + "good" + ], + [ "", "good" ], + [ "", "good" ], + [ + "It's slow but you're recovering. Some more rest and you'll be ready to use your powers freely again.", + "good" + ], + [ "", "good" ], + [ "Your muscles ache less and you feel more energetic. You must be getting your strength back.", "good" ], + [ "", "good" ], + [ "", "good" ], + [ "", "good" ], + [ "", "good" ] + ], + "remove_message": "You take a deep breath as the last of the unnatural tiredness of psionic channeling leaves you.", + "max_intensity": 12, + "base_mods": { + "str_mod": [ -1 ], + "stamina_amount": [ -500 ], + "stamina_min": [ -5 ], + "stamina_chance": [ 30 ], + "stamina_tick": [ 30 ], + "health_amount": [ -1 ], + "health_chance": [ 200 ], + "health_tick": [ 2000 ], + "hunger_min": [ 1 ], + "hunger_chance": [ 100 ], + "hunger_tick": [ 400 ], + "fatigue_min": [ 1 ], + "fatigue_chance": [ 200 ], + "fatigue_tick": [ 500 ] + }, + "scaling_mods": { + "str_mod": [ -0.8 ], + "dex_mod": [ -0.8 ], + "per_mod": [ -0.6 ], + "int_mod": [ -0.3 ], + "stamina_amount": [ -300 ], + "stamina_min": [ -1 ], + "stamina_tick": [ -1 ], + "health_chance": [ -15 ], + "health_tick": [ -165 ], + "hunger_min": [ 0.6 ], + "hunger_chance": [ -4 ], + "hunger_tick": [ -30 ], + "fatigue_min": [ 0.5 ], + "fatigue_chance": [ -15 ], + "fatigue_tick": [ -15 ] + }, + "limb_score_mods": [ + { "limb_score": "lift", "modifier": 1.0, "resist_modifier": 1.0, "scaling": -0.05, "resist_scaling": -0.025 }, + { "limb_score": "manip", "modifier": 0.95, "resist_modifier": 1.0, "scaling": -0.04, "resist_scaling": -0.02 }, + { + "limb_score": "balance", + "modifier": 0.95, + "resist_modifier": 1.0, + "scaling": -0.03, + "resist_scaling": -0.015 + }, + { + "limb_score": "breathing", + "modifier": 0.95, + "resist_modifier": 1.0, + "scaling": -0.035, + "resist_scaling": -0.017 + } + ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "psionic_awakened", + "name": [ "Awakened" ], + "desc": [ "Your exposure to the portal storm has awakened latent psionic powers in you." ], + "rating": "neutral", + "max_duration": "24 hours" + }, + { + "type": "effect_type", + "id": "psionic_overload", + "name": [ + "Headache", + "Headache", + "Headache", + "Bad Headache", + "Bad Headache", + "Splitting Headache", + "Splitting Headache", + "Excuciating Headache", + "Excuciating Headache", + "Pure Agony" + ], + "desc": [ + "Your head is pounding and you feel unwell.", + "Your head is pounding and you feel unwell.", + "Your head is pounding and you feel unwell.", + "Your head throbs and it's hard to see straight.", + "Your head throbs and it's hard to see straight.", + "You can barely think through the pain in your head.", + "You can barely think through the pain in your head.", + "Your skull feels like it's going to explode.", + "Your skull feels like it's going to explode.", + "The agony is the only thing in the world that matters." + ], + "rating": "bad", + "int_add_val": 1, + "max_intensity": 10, + "max_duration": "24 hours", + "base_mods": { + "per_mod": [ -2 ], + "int_mod": [ -2 ], + "pain_chance": [ 10 ], + "pain_min": [ 2 ], + "pain_max": [ 3 ], + "pain_max_val": [ 50 ], + "vomit_chance": [ 25 ], + "hurt_chance": [ -10 ], + "hurt_amount": [ 0 ], + "hurt_tick": [ 200 ] + }, + "scaling_mods": { + "per_mod": [ -1.2 ], + "int_mod": [ -0.6 ], + "pain_min": [ 1 ], + "pain_max": [ 4 ], + "pain_max_val": [ 30 ], + "vomit_chance": [ -2 ], + "hurt_chance": [ 8 ], + "hurt_amount": [ 2, 1 ], + "hurt_tick": [ -15 ] + } + }, + { + "type": "effect_type", + "id": "effect_psi_null", + "name": [ + "Nullified", + "Nullified", + "Nullified", + "Nullified", + "Nullified", + "Nullified", + "Nullified", + "Nullified", + "Nullified", + "Nullified" + ], + "desc": [ + "You can't use your powers.", + "You can't use your powers.", + "You can't use your powers.", + "You can't use your powers.", + "You can't use your powers.", + "You can't use your powers.", + "You can't use your powers.", + "You can't use your powers.", + "You can't use your powers.", + "You can't use your powers." + ], + "apply_message": "You feel a dull pain behind your eyes and a terrible sense of loss.", + "remove_message": "You have a sudden sense of regaining something you had lost.", + "flags": [ "NO_SPELLCASTING" ], + "rating": "bad", + "max_duration": "1 minutes", + "show_intensity": false, + "max_intensity": 10, + "int_decay_step": -2, + "int_add_val": 2, + "int_decay_tick": 1, + "int_decay_remove": true + }, + { + "type": "effect_type", + "id": "effect_psi_neutralized", + "name": [ "Neutralized" ], + "//": "Same as above but it also cancels all active psionic buffs on the target. Should be used very rarely.", + "desc": [ "Something is directly interfering with your use of psionics." ], + "apply_message": "You feel terribly vulnerable.", + "remove_message": "You sense of acute vulnerability fades.", + "removes_effects": [ + "effect_biokin_physical", + "effect_biokin_pkill_1", + "effect_biokin_pkill_2", + "effect_biokin_pkill_3", + "effect_biokin_pkill_4", + "effect_biokin_pkill_5", + "effect_biokin_pkill_6", + "effect_biokin_flexibility", + "effect_biokin_reflex", + "effect_biokin_armor_skin", + "effect_biokin_climate_control", + "effect_biokin_sealed", + "effect_biokin_combat_dance", + "effect_biokin_perfected_motion", + "effect_clair_night_eyes_1", + "effect_clair_night_eyes_2", + "effect_clair_night_eyes_3", + "effect_clair_night_eyes_4", + "effect_clair_night_eyes_5", + "effect_clair_night_eyes_6", + "effect_clair_night_eyes_7", + "effect_clair_night_eyes_8", + "effect_clair_premonition", + "effect_clair_ranged_enhance", + "effect_clair_sense_rads_self", + "effect_clair_dodge", + "effect_clair_clear_sight", + "effect_clair_omniscence", + "effect_pyrokinetic_cloak", + "effect_pyrokinetic_aura", + "effect_telekinetic_momentum", + "effect_telekinetic_slowfall", + "effect_telekinetic_armor", + "effect_telekinetic_levitation", + "effect_telekinetic_aegis", + "effect_telepathic_learning_bonus", + "effect_telepath_invisibility", + "effect_telepath_network_effect", + "effect_teleport_stride", + "effect_vita_health", + "effect_vitakin_purge_rads", + "effect_vitakin_purge_rads_sideeffects", + "effect_vita_super_heal" + ], + "max_duration": "24 hours", + "flags": [ "NO_SPELLCASTING" ] + }, + { + "type": "effect_type", + "id": "effect_biokin_overload", + "name": [ "Weakened" ], + "desc": [ "Your muscles and coordination are impaired." ], + "apply_message": "Your muscles tremble with weakness!", + "remove_message": "New strength fills you!", + "rating": "bad", + "max_intensity": 10, + "base_mods": { "str_mod": [ -2 ], "dex_mod": [ -2 ] }, + "scaling_mods": { "str_mod": [ -1.2 ], "dex_mod": [ -1.2 ] }, + "limb_score_mods": [ + { "limb_score": "lift", "modifier": 0.9, "resist_modifier": 1.0, "scaling": -0.05, "resist_scaling": -0.00125 }, + { "limb_score": "grip", "modifier": 0.8, "resist_modifier": 1.0, "scaling": -0.1, "resist_scaling": -0.025 }, + { "limb_score": "block", "modifier": 0.9, "resist_modifier": 1.0, "scaling": -0.05, "resist_scaling": -0.00125 } + ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "blind_clair_overload", + "//": "This effect and the one below exist so a clairsentient can't cure their powers going haywire using their own powers.", + "name": [ "Blind" ], + "desc": [ "Darkness obscures your vision." ], + "removes_effects": [ "glare", "snow_glare", "darkness" ], + "apply_message": "You're blinded!", + "remove_message": "Your sight returns!", + "rating": "bad", + "show_in_info": true, + "limb_score_mods": [ + { "limb_score": "vision", "modifier": 0.0 }, + { "limb_score": "night_vis", "modifier": 0.0 }, + { "limb_score": "reaction", "modifier": 0.2 } + ], + "flags": [ "BLIND", "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "deaf_clair_overload", + "name": [ "Deaf" ], + "desc": [ "You can't hear anything." ], + "apply_message": "All sound is blotted out!", + "remove_message": "You can hear again!", + "rating": "bad", + "max_intensity": 3, + "int_dur_factor": "100 s", + "limb_score_mods": [ { "limb_score": "reaction", "modifier": 0.9, "scaling": -0.2 } ], + "flags": [ "DEAF", "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_pyrokin_overload", + "name": [ "Feverish" ], + "desc": [ "You feel much too warm." ], + "apply_message": "", + "remove_message": "The air feels much cooler now.", + "rating": "bad", + "base_mods": { "per_mod": [ -2 ], "health_min": [ -1 ], "health_chance": [ 25 ] }, + "enchantments": [ "enchant_pyrokin_fever" ], + "limb_score_mods": [ { "limb_score": "breathing", "modifier": 0.7 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_portal_storm_teleport", + "name": [ "Dimensionally Unstable" ], + "desc": [ "You feel like you're barely part of the world." ], + "//": "Duplicate so teleporters can get teleported during portal storms.", + "apply_message": "", + "remove_message": "With a jolt, you feel more solid again.", + "rating": "bad", + "enchantments": [ "enchant_riftwalker_teleport" ] + }, + { + "type": "effect_type", + "id": "effect_telekin_overload", + "name": [ "Oppressive Weight" ], + "desc": [ "Everything feels so much heavier." ], + "apply_message": "The air itself seems to press down on you!", + "remove_message": "The oppressive weight vanishes.", + "rating": "bad", + "max_intensity": 10, + "enchantments": [ { "values": [ { "value": "CARRY_WEIGHT", "multiply": 0.75 }, { "value": "MOVE_COST", "multiply": 1.5 } ] } ], + "limb_score_mods": [ { "limb_score": "balance", "modifier": 0.7 }, { "limb_score": "reaction", "modifier": 0.7 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_vitakin_overload", + "name": [ "Muscle Weakness" ], + "desc": [ "Your muscles and coordination are impaired." ], + "apply_message": "You feel awful!", + "remove_message": "You don't feel as bad anymore!", + "rating": "bad", + "max_intensity": 10, + "base_mods": { "fatigue_tick": [ 300 ], "fatigue_min": [ 1 ], "health_min": [ -1 ], "health_tick": [ 400 ] }, + "scaling_mods": { "fatigue_min": [ 1 ], "health_min": [ -1 ] }, + "limb_score_mods": [ { "limb_score": "breathing", "modifier": 0.8 }, { "limb_score": "manip", "modifier": 0.8 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_asthma_disease_absorbed", + "name": [ "Difficulty Breathing" ], + "desc": [ "You're having a very hard time taking in enough air." ], + "apply_message": "", + "remove_message": "You can finally breathe freely.", + "rating": "bad", + "base_mods": { "stamina_amount": [ -1000 ] }, + "limb_score_mods": [ { "limb_score": "breathing", "modifier": 0.8 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effects/effects_potions.json b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_potions.json new file mode 100644 index 000000000..02b019783 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_potions.json @@ -0,0 +1,256 @@ +[ + { + "type": "effect_type", + "id": "effect_biokin_potion", + "name": [ "Pink Elixir" ], + "desc": [ "You drank the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's effects fade and are replaced with a gnawing weakness.", + "rating": "good", + "max_duration": "30 hours", + "max_intensity": 1, + "base_mods": { "str_mod": [ 4 ], "dex_mod": [ 4 ], "speed_mod": [ 25 ] }, + "flags": [ "BLEED_IMMUNE", "STEADY" ], + "enchantments": [ + { + "values": [ { "value": "ARMOR_CUT", "add": -4 }, { "value": "ARMOR_BASH", "add": -6 }, { "value": "ARMOR_STAB", "add": -3 } ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_biokin_potion_comedown", + "name": [ "Pink Elixir Aftereffects" ], + "desc": [ "You're suffering the aftereffects of drinking the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's aftereffects finally wear off.", + "rating": "bad", + "max_duration": "55 hours", + "max_intensity": 1, + "base_mods": { + "str_mod": [ -6 ], + "dex_mod": [ -6 ], + "speed_mod": [ -40 ], + "pain_chance": [ 20 ], + "pain_min": [ 1 ], + "pain_max_val": [ 10 ], + "pain_tick": [ 200 ] + }, + "enchantments": [ { "values": [ { "value": "ARMOR_BASH", "add": 4 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_clair_potion", + "name": [ "Gray Elixir" ], + "desc": [ "You drank the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's effects fade and darkness creeps in at the edges of your vision.", + "rating": "good", + "max_duration": "30 hours", + "max_intensity": 1, + "base_mods": { "per_mod": [ 4 ] }, + "flags": [ "SEESLEEP", "SUPER_HEARING", "IMMUNE_HEARING_DAMAGE" ], + "enchantments": [ "enchant_clair_potion" ] + }, + { + "type": "effect_type", + "id": "effect_clair_potion_comedown", + "name": [ "Gray Elixir Aftereffects" ], + "desc": [ "You're suffering the aftereffects of drinking the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's aftereffects finally wear off.", + "rating": "bad", + "max_duration": "55 hours", + "max_intensity": 1, + "base_mods": { "per_mod": [ -6 ], "pain_chance": [ 20 ], "pain_min": [ 1 ], "pain_max_val": [ 10 ], "pain_tick": [ 200 ] }, + "flags": [ "HYPEROPIC", "MYOPIC" ] + }, + { + "type": "effect_type", + "id": "effect_pyrokin_potion", + "name": [ "Red Elixir" ], + "desc": [ "You drank the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's effects fade and are replaced with a burning heat.", + "rating": "good", + "max_duration": "30 hours", + "max_intensity": 1, + "base_mods": { "speed_mod": [ 10 ] }, + "flags": [ "HEATSINK" ], + "enchantments": [ "enchant_pyrokin_potion" ] + }, + { + "type": "effect_type", + "id": "effect_pyrokin_potion_comedown", + "name": [ "Red Elixir Aftereffects" ], + "desc": [ "You're suffering the aftereffects of drinking the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's aftereffects finally wear off.", + "rating": "bad", + "max_duration": "55 hours", + "max_intensity": 1, + "flags": [ "COLDBLOOD" ], + "base_mods": { "pain_chance_bot": [ 200 ], "pain_chance": [ 2, 1 ], "pain_min": [ 1 ], "pain_max_val": [ 10, 5 ] }, + "enchantments": [ { "values": [ { "value": "LUMINATION", "add": 80 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_telekin_potion", + "name": [ "Yellow Elixir" ], + "desc": [ "You drank the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's effects fade and you suddenly feel like something is pressing down on you.", + "rating": "good", + "max_duration": "30 hours", + "max_intensity": 1, + "base_mods": { "str_mod": [ 2 ] }, + "flags": [ "DOWNED_RECOVERY" ], + "enchantments": [ { "values": [ { "value": "CARRY_WEIGHT", "multiply": 1.25 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_telekin_potion_comedown", + "name": [ "Yellow Elixir Aftereffects" ], + "desc": [ "You're suffering the aftereffects of drinking the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's aftereffects finally wear off.", + "rating": "bad", + "max_duration": "55 hours", + "max_intensity": 1, + "base_mods": { + "str_mod": [ -2 ], + "speed_mod": [ -25 ], + "pain_chance": [ 20 ], + "pain_min": [ 1 ], + "pain_max_val": [ 10 ], + "pain_tick": [ 200 ] + }, + "enchantments": [ { "values": [ { "value": "CARRY_WEIGHT", "multiply": 0.75 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_telepath_potion", + "name": [ "White Elixir" ], + "//": "When I get around to modifying dialogue to account for telepaths, I need to make sure to account for this too", + "desc": [ "You drank the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's effects fade and it gets hard to think straight.", + "rating": "good", + "max_duration": "30 hours", + "max_intensity": 1, + "flags": [ "TEEPSHIELD" ], + "enchantments": [ { "values": [ { "value": "LEARNING_FOCUS", "add": 15 }, { "value": "SKILL_RUST_RESIST", "add": 100 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_teleport_potion_comedown", + "name": [ "White Elixir Aftereffects" ], + "desc": [ "You're suffering the aftereffects of drinking the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's aftereffects finally wear off.", + "rating": "bad", + "max_duration": "55 hours", + "max_intensity": 1, + "base_mods": { "int_mod": [ -4 ], "pain_chance": [ 20 ], "pain_min": [ 1 ], "pain_max_val": [ 10 ], "pain_tick": [ 200 ] }, + "enchantments": [ { "values": [ { "value": "LEARNING_FOCUS", "add": -30 }, { "value": "READING_EXP", "add": -1 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_teleport_potion", + "name": [ "Blue Elixir" ], + "desc": [ "You drank the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's effects fade and you suddenly feel stretched, like something unseen is pulling at you.", + "rating": "good", + "max_duration": "30 hours", + "max_intensity": 1, + "flags": [ "FEATHER_FALL" ], + "enchantments": [ "enchant_teleport_potion" ] + }, + { + "type": "effect_type", + "id": "effect_teleport_potion_comedown", + "name": [ "Blue Elixir Aftereffects" ], + "desc": [ "You're suffering the aftereffects of drinking the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's aftereffects finally wear off.", + "rating": "bad", + "max_duration": "55 hours", + "max_intensity": 1, + "removes_effects": [ "DIMENSIONAL_ANCHOR" ], + "base_mods": { + "speed_mod": [ -15 ], + "pain_chance_bot": [ 200 ], + "pain_chance": [ 20 ], + "pain_min": [ 1 ], + "pain_max_val": [ 10 ], + "pain_tick": [ 200 ] + }, + "enchantments": [ "enchant_teleport_potion_comedown" ] + }, + { + "type": "effect_type", + "id": "effect_vitakin_potion", + "name": [ "Green Elixir" ], + "desc": [ "You drank the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's effects fade and you stagger as you suddenly feel faint.", + "rating": "good", + "max_duration": "30 hours", + "max_intensity": 1, + "base_mods": { "healing_rate": [ 4 ] }, + "flags": [ "MEND_ALL", "PARAIMMUNE", "NO_DISEASE", "INFECTION_IMMUNE" ], + "enchantments": [ { "values": [ { "value": "MAX_HP", "multiply": 0.2 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_vitakin_potion_comedown", + "name": [ "Green Elixir Aftereffects" ], + "desc": [ "You're suffering the aftereffects of drinking the concentrated matrix crystal concoction." ], + "apply_message": "", + "remove_message": "The concoction's aftereffects finally wear off.", + "rating": "bad", + "max_duration": "55 hours", + "max_intensity": 1, + "base_mods": { + "healing_rate": [ 0.3 ], + "vomit_chance": [ 100 ], + "vomit_tick": [ 180 ], + "pain_chance": [ 20 ], + "pain_min": [ 1 ], + "pain_max_val": [ 10 ], + "pain_tick": [ 200 ] + } + }, + { + "type": "effect_type", + "id": "effect_noetic_resilience", + "name": [ "Noetic Resilience" ], + "desc": [ "You injected the formula and are now fortified against the unnatural fatigue caused by psionic channeling." ], + "apply_message": "", + "remove_message": "The concoction's effects fade and you feel weak.", + "rating": "good", + "max_duration": "30 hours", + "max_intensity": 1 + }, + { + "type": "effect_type", + "id": "effect_noetic_resilience_comedown", + "name": [ "Noetically Fragile" ], + "desc": [ "Your psionic capacity, and physical stamina, are reduced by the aftereffects of the noetic resilience treatment." ], + "apply_message": "", + "remove_message": "You feel your strength and ability to channel your powers finally return to normal.", + "rating": "bad", + "max_duration": "55 hours", + "max_intensity": 1, + "base_mods": { + "pain_chance": [ 20 ], + "pain_min": [ 1 ], + "pain_max_val": [ 10 ], + "pain_tick": [ 150 ], + "stamina_amount": [ -2500 ], + "stamina_min": [ -250 ], + "stamina_chance": [ 30 ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/effects/effects_psionic.json b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_psionic.json new file mode 100644 index 000000000..e2b6e816a --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/effects/effects_psionic.json @@ -0,0 +1,1250 @@ +[ + { + "type": "effect_type", + "id": "effect_biokin_physical", + "name": [ "Enhanced Prowess" ], + "desc": [ "You are enhancing your physical prowess." ], + "apply_message": "", + "remove_message": "The surge of power fades away.", + "decay_messages": [ + [ "You are growing weaker as your enhanced strength fades.", "bad" ], + [ "The power filling your body is starting to dissipate.", "bad" ] + ], + "rating": "good", + "max_duration": "45 minutes", + "max_intensity": 100, + "dur_add_perc": 10, + "int_dur_factor": "27 s", + "removes_effects": [ "venom_weaken" ], + "enchantments": [ + { + "values": [ + { + "value": "STRENGTH", + "add": { + "math": [ "(1 + ( u_val('spell_level', 'spell: biokin_physical_enhance') / 5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "DEXTERITY", + "add": { + "math": [ "(1 + ( u_val('spell_level', 'spell: biokin_physical_enhance') / 5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_biokin_pkill_1", + "name": [ "Overcoming Minor Pain" ], + "desc": [ "Your powers are slightly lessening the pain you feel." ], + "apply_message": "", + "remove_message": "Your wounds ache once again.", + "decay_messages": [ [ "The pain you've been keeping away is starting to creep back in.", "bad" ] ], + "rating": "good", + "max_duration": "15 minutes", + "max_intensity": 100, + "dur_add_perc": 10, + "int_dur_factor": "9 s", + "base_mods": { "pkill_tick": [ 12 ], "pkill_min": [ 1 ], "pkill_max_val": [ 15 ] } + }, + { + "type": "effect_type", + "id": "effect_biokin_pkill_2", + "name": [ "Overcoming Pain" ], + "desc": [ "Your powers are lessening the pain you feel." ], + "apply_message": "", + "remove_message": "Your wounds ache once again.", + "decay_messages": [ [ "The pain you've been keeping away is starting to creep back in.", "bad" ] ], + "rating": "good", + "max_duration": "20 minutes", + "max_intensity": 100, + "dur_add_perc": 10, + "int_dur_factor": "12 s", + "base_mods": { "pkill_tick": [ 10 ], "pkill_min": [ 2 ], "pkill_max_val": [ 30 ] } + }, + { + "type": "effect_type", + "id": "effect_biokin_pkill_3", + "name": [ "Overcoming Pain" ], + "desc": [ "Your powers are lessening the pain you feel." ], + "apply_message": "", + "remove_message": "Your wounds ache once again.", + "decay_messages": [ [ "The pain you've been keeping away is starting to creep back in.", "bad" ] ], + "rating": "good", + "max_duration": "25 minutes", + "max_intensity": 100, + "dur_add_perc": 10, + "int_dur_factor": "15 s", + "base_mods": { "pkill_tick": [ 10 ], "pkill_min": [ 3 ], "pkill_max_val": [ 50 ] } + }, + { + "type": "effect_type", + "id": "effect_biokin_pkill_4", + "name": [ "Overcoming Major Pain" ], + "desc": [ "Your powers are greatly lessening the pain you feel." ], + "apply_message": "", + "remove_message": "Your wounds ache once again.", + "decay_messages": [ [ "The pain you've been keeping away is starting to creep back in.", "bad" ] ], + "rating": "good", + "max_duration": "30 minutes", + "max_intensity": 100, + "dur_add_perc": 10, + "int_dur_factor": "18 s", + "base_mods": { "pkill_tick": [ 8 ], "pkill_min": [ 4 ], "pkill_max_val": [ 75 ] } + }, + { + "type": "effect_type", + "id": "effect_biokin_pkill_5", + "name": [ "Overcoming Major Pain" ], + "desc": [ "Your powers are greatly lessening the pain you feel." ], + "apply_message": "", + "remove_message": "Your wounds ache once again.", + "decay_messages": [ [ "The pain you've been keeping away is starting to creep back in.", "bad" ] ], + "rating": "good", + "max_duration": "40 minutes", + "max_intensity": 100, + "dur_add_perc": 10, + "int_dur_factor": "21 s", + "base_mods": { "pkill_tick": [ 8 ], "pkill_min": [ 5 ], "pkill_max_val": [ 100 ] } + }, + { + "type": "effect_type", + "id": "effect_biokin_pkill_6", + "name": [ "Overcoming Extreme Pain" ], + "desc": [ "Your powers are enormously lessening the pain you feel." ], + "apply_message": "", + "remove_message": "Your wounds ache once again.", + "decay_messages": [ [ "The pain you've been keeping away is starting to creep back in.", "bad" ] ], + "rating": "good", + "max_duration": "45 minutes", + "max_intensity": 100, + "dur_add_perc": 10, + "int_dur_factor": "24 s", + "base_mods": { "pkill_tick": [ 6 ], "pkill_min": [ 6 ], "pkill_max_val": [ 130 ] } + }, + { + "type": "effect_type", + "id": "effect_biokin_flexibility", + "name": [ "Flexibility" ], + "desc": [ "You are enhancing your range of motion." ], + "apply_message": "", + "remove_message": "Your joints creak as your limbs lose their flexibility.", + "rating": "good", + "max_duration": "1 minutes", + "dur_add_perc": 1, + "removes_effects": [ "grabbed" ], + "limb_score_mods": [ + { "limb_score": "reaction", "modifier": 2.0 }, + { "limb_score": "block", "modifier": 1.2 }, + { "limb_score": "crawl", "modifier": 1.5 } + ], + "enchantments": [ + { + "values": [ + { + "value": "FALL_DAMAGE", + "multiply": { + "math": [ "( -0.2 + ( u_val('spell_level', 'spell: biokin_flexibility') * -0.02) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ], + "flags": [ "DOWNED_RECOVERY", "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_biokin_reflex", + "name": [ "Enhanced Reflexes" ], + "desc": [ "You are enhancing your speed and senses." ], + "apply_message": "", + "remove_message": "The world speeds up again.", + "decay_messages": [ [ "Your enhanced speed is nearly gone.", "bad" ], [ "Your movements are gradually becoming slower.", "bad" ] ], + "rating": "good", + "max_duration": "30 minutes", + "max_intensity": 39, + "dur_add_perc": 10, + "int_dur_factor": "47 s", + "removes_effects": [ "blind", "deaf" ], + "enchantments": [ + { + "values": [ + { + "value": "PERCEPTION", + "add": { + "math": [ "( 1 + ( u_val('spell_level', 'spell: biokin_reflex_enhance') / 5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "SPEED", + "add": { + "math": [ "( 5 + ( u_val('spell_level', 'spell: biokin_physical_enhance') ) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_biokin_armor_skin", + "name": [ "Hardened Skin" ], + "desc": [ "Your skin is more resilient thanks to psionic energy." ], + "apply_message": "", + "remove_message": "The tingling fades away.", + "decay_messages": [ + [ "The minor scratches you've gotten slowly start to ache as your powers fade.", "bad" ], + [ "The tingle across your skin is starting to lessen.", "bad" ] + ], + "rating": "good", + "max_duration": "30 minutes", + "max_intensity": 62, + "dur_add_perc": 10, + "int_dur_factor": "29 s", + "blocks_effects": [ "bleed", "hypovolemia", "dermatik" ], + "enchantments": [ + { + "values": [ + { "value": "ARMOR_CUT", "add": { "math": [ "( -4 * ( ( u_val('intelligence') + 10) / 20 ) )" ] } }, + { "value": "ARMOR_BASH", "add": { "math": [ "( -6 * ( ( u_val('intelligence') + 10) / 20 ) )" ] } }, + { "value": "ARMOR_STAB", "add": { "math": [ "( -3 * ( ( u_val('intelligence') + 10) / 20 ) )" ] } }, + { + "value": "PAIN", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: biokin_armor_skin') * -0.02) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_biokin_climate_control", + "name": [ "Climate Controlled" ], + "desc": [ "You are better at dealing with extremes of heat and cold." ], + "apply_message": "", + "remove_message": "The temperature feels uncomfortable again.", + "decay_messages": [ + [ "The temperature is really starting to get to you.", "bad" ], + [ "Your adaptation to extreme temperatures is fading.", "bad" ] + ], + "rating": "good", + "max_duration": "4 hours", + "max_intensity": 128, + "dur_add_perc": 33, + "int_dur_factor": "122 s", + "enchantments": [ + { + "values": [ + { + "value": "CLIMATE_CONTROL_HEAT", + "add": { + "math": [ + "( ( ( u_val('spell_level', 'spell: biokin_climate_control') * 7.5 ) + 15 ) * ( ( u_val('intelligence') + 10) / 20 ) )" + ] + } + }, + { + "value": "CLIMATE_CONTROL_CHILL", + "add": { + "math": [ + "( ( ( u_val('spell_level', 'spell: biokin_climate_control') * 7.5 ) + 15 ) * ( ( u_val('intelligence') + 10) / 20 ) )" + ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_biokin_sealed", + "name": [ "Sealed System" ], + "desc": [ "You are protected from the dangers of the world." ], + "apply_message": "", + "remove_message": "You let out your breath in a rush.", + "decay_messages": [ + [ "You need to take a new breath, and soon!", "bad" ], + [ "Your lungs are straining with the effort of holding your breath.", "bad" ] + ], + "rating": "good", + "max_duration": "8 minutes", + "max_intensity": 50, + "dur_add_perc": 10, + "int_dur_factor": "9 s", + "blocks_effects": [ + "smoke_eyes", + "smoke_lungs", + "teargas", + "boomered", + "migo_atmosphere", + "fetid_goop", + "relax_gas", + "spores", + "dermatik", + "tpollen", + "poison", + "badpoison" + ], + "removes_effects": [ "bleed" ], + "//": "Gills here because they're holding their breath", + "flags": [ "NO_SCENT", "ELECTRIC_IMMUNE", "RAD_RESIST", "GILLS", "WALK_UNDERWATER" ] + }, + { + "type": "effect_type", + "id": "effect_biokin_combat_dance", + "name": [ "Combat Dance" ], + "desc": [ "You are a dynamo of death." ], + "apply_message": "", + "remove_message": "Your movements return to normal.", + "decay_messages": [ + [ "Your enhanced combat prowess is nearly gone.", "bad" ], + [ "The rush of power filling you is beginning to ebb.", "bad" ] + ], + "rating": "good", + "max_duration": "10 minutes", + "max_intensity": 25, + "dur_add_perc": 10, + "int_dur_factor": "24 s", + "removes_effects": [ "stunned", "dazed" ], + "enchantments": [ + { + "values": [ + { + "value": "ATTACK_SPEED", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: biokin_combat_dance') * -0.02) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { "value": "MOVE_COST", "multiply": -0.1 }, + { "value": "RECOIL_MODIFIER", "add": -30 }, + { + "value": "MELEE_DAMAGE", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: biokin_combat_dance') * 0.02) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "PAIN", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: biokin_combat_dance') * -0.03) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_biokin_perfected_motion", + "name": [ "Perfected Motion" ], + "desc": [ "You feel like you can outrun a locomotive." ], + "apply_message": "", + "remove_message": "The world returns to normal speed.", + "decay_messages": [ [ "Your movements are slower and slower now.", "bad" ], [ "The world begins speeding up around you.", "bad" ] ], + "rating": "good", + "max_duration": "1 minutes", + "max_intensity": 18, + "dur_add_perc": 10, + "int_dur_factor": "3 s", + "enchantments": [ + { + "values": [ + { + "value": "MOVE_COST", + "multiply": { + "math": [ + "( -0.5 + ( u_val('spell_level', 'spell: biokin_perfected_motion') * -0.015) * ( ( u_val('intelligence') + 10) / 20 ) )" + ] + } + } + ] + } + ], + "flags": [ "HARDTOHIT", "UNCANNY_DODGE" ] + }, + { + "type": "effect_type", + "id": "effect_clair_night_eyes_1", + "name": [ "Night Eyes" ], + "desc": [ "You can sense your surroundings in the dark." ], + "apply_message": "", + "remove_message": "The darkness hides your surroundings again.", + "decay_messages": [ + [ "The shadows are growing darker and darker to your sight.", "bad" ], + [ "Darkness begins to creep across your vision.", "bad" ] + ], + "rating": "good", + "max_duration": " 120 minutes", + "max_intensity": 106, + "dur_add_perc": 10, + "int_dur_factor": "68 s", + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 3 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_clair_night_eyes_2", + "name": [ "Night Eyes" ], + "desc": [ "You can sense your surroundings in the dark." ], + "apply_message": "", + "remove_message": "The darkness hides your surroundings again.", + "decay_messages": [ + [ "The shadows are growing darker and darker to your sight.", "bad" ], + [ "Darkness begins to creep across your vision.", "bad" ] + ], + "rating": "good", + "max_duration": " 120 minutes", + "max_intensity": 106, + "dur_add_perc": 10, + "int_dur_factor": "68 s", + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 5 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_clair_night_eyes_3", + "name": [ "Night Eyes" ], + "desc": [ "You can sense your surroundings in the dark." ], + "apply_message": "", + "remove_message": "The darkness hides your surroundings again.", + "decay_messages": [ + [ "The shadows are growing darker and darker to your sight.", "bad" ], + [ "Darkness begins to creep across your vision.", "bad" ] + ], + "rating": "good", + "max_duration": " 120 minutes", + "max_intensity": 106, + "dur_add_perc": 10, + "int_dur_factor": "68 s", + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 7 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_clair_night_eyes_4", + "name": [ "Night Eyes" ], + "desc": [ "You can sense your surroundings in the dark." ], + "apply_message": "", + "remove_message": "The darkness hides your surroundings again.", + "decay_messages": [ + [ "The shadows are growing darker and darker to your sight.", "bad" ], + [ "Darkness begins to creep across your vision.", "bad" ] + ], + "rating": "good", + "max_duration": " 120 minutes", + "max_intensity": 106, + "dur_add_perc": 10, + "int_dur_factor": "68 s", + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 9 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_clair_night_eyes_5", + "name": [ "Night Eyes" ], + "desc": [ "You can sense your surroundings in the dark." ], + "apply_message": "", + "remove_message": "The darkness hides your surroundings again.", + "decay_messages": [ + [ "The shadows are growing darker and darker to your sight.", "bad" ], + [ "Darkness begins to creep across your vision.", "bad" ] + ], + "rating": "good", + "max_duration": " 120 minutes", + "max_intensity": 106, + "dur_add_perc": 10, + "int_dur_factor": "68 s", + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 11 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_clair_night_eyes_6", + "name": [ "Night Eyes" ], + "desc": [ "You can sense your surroundings in the dark." ], + "apply_message": "", + "remove_message": "The darkness hides your surroundings again.", + "decay_messages": [ + [ "The shadows are growing darker and darker to your sight.", "bad" ], + [ "Darkness begins to creep across your vision.", "bad" ] + ], + "rating": "good", + "max_duration": " 120 minutes", + "max_intensity": 106, + "dur_add_perc": 10, + "int_dur_factor": "68 s", + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 13 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_clair_night_eyes_7", + "name": [ "Night Eyes" ], + "desc": [ "You can sense your surroundings in the dark." ], + "apply_message": "", + "remove_message": "The darkness hides your surroundings again.", + "decay_messages": [ + [ "The shadows are growing darker and darker to your sight.", "bad" ], + [ "Darkness begins to creep across your vision.", "bad" ] + ], + "rating": "good", + "max_duration": " 120 minutes", + "max_intensity": 106, + "dur_add_perc": 10, + "int_dur_factor": "68 s", + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 15 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_clair_night_eyes_8", + "name": [ "Night Eyes" ], + "desc": [ "You can sense your surroundings in the dark." ], + "apply_message": "", + "remove_message": "The darkness hides your surroundings again.", + "decay_messages": [ + [ "The shadows are growing darker and darker to your sight.", "bad" ], + [ "Darkness begins to creep across your vision.", "bad" ] + ], + "rating": "good", + "max_duration": " 120 minutes", + "max_intensity": 106, + "dur_add_perc": 10, + "int_dur_factor": "68 s", + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 17 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_clair_premonition", + "name": [ "Sensing Danger" ], + "desc": [ "You know there's something out there." ], + "apply_message": "", + "remove_message": "The sense of danger fades away, but you know the danger remains.", + "decay_messages": [ + [ "You're getting less and less sure where your enemies are.", "bad" ], + [ "Your awareness of danger is fading.", "bad" ] + ], + "rating": "good", + "max_duration": "30 minutes", + "max_intensity": 58, + "dur_add_perc": 10, + "int_dur_factor": "31 s", + "enchantments": [ + { + "values": [ + { + "value": "MOTION_VISION_RANGE", + "add": { "math": [ "( ( u_val('spell_level', 'spell: clair_danger_sense') * 2) * ( ( u_val('intelligence') + 10) / 20 ) )" ] } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_clair_weak_point", + "name": [ "Weaknesses Discerned" ], + "desc": [ "Your vulnerabilities have been laid open." ], + "apply_message": "", + "rating": "bad", + "max_duration": "1 minutes", + "enchantments": [ + { + "values": [ + { + "value": "ARMOR_CUT", + "add": { + "math": [ "( ( u_val('spell_level', 'spell: clair_spot_weakness') * 0.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_BASH", + "add": { + "math": [ "( ( u_val('spell_level', 'spell: clair_spot_weakness') * 0.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_STAB", + "add": { + "math": [ "( ( u_val('spell_level', 'spell: clair_spot_weakness') * 0.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_BULLET", + "add": { + "math": [ "( ( u_val('spell_level', 'spell: clair_spot_weakness') * 0.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_ELEC", + "add": { + "math": [ "( ( u_val('spell_level', 'spell: clair_spot_weakness') * 0.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_HEAT", + "add": { + "math": [ "( ( u_val('spell_level', 'spell: clair_spot_weakness') * 0.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_COLD", + "add": { + "math": [ "( ( u_val('spell_level', 'spell: clair_spot_weakness') * 0.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_clair_ranged_enhance", + "name": [ "Dead Aim" ], + "desc": [ "Your powers make aiming much easier for you." ], + "apply_message": "", + "remove_message": "The world lurches as apparent distances snap back into place.", + "decay_messages": [ [ "Your range of vision is narrowing rapidly.", "bad" ], [ "Your enhanced sight is fading.", "bad" ] ], + "rating": "good", + "max_duration": "30 minutes", + "max_intensity": 46, + "dur_add_perc": 15, + "int_dur_factor": "41 s", + "enchantments": [ + { + "values": [ + { + "value": "RANGE", + "add": { + "math": [ "(1 + ( u_val('spell_level', 'spell: clair_ranged_enhance') * 0.5 ) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "WEAPON_DISPERSION", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: clair_ranged_enhance') * -0.025) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_clair_sense_rads_self", + "name": [ "Sensing Radiation" ], + "desc": [ "You can detect environmental radiation." ], + "apply_message": "", + "remove_message": "Your radiation sense is gone.", + "decay_messages": [ + [ "The ambient glow of radiation is almost invisible now.", "bad" ], + [ "Your ability to sense radiation is fading.", "bad" ] + ], + "rating": "good", + "max_duration": "6 hours", + "max_intensity": 198, + "dur_add_perc": 10, + "int_dur_factor": "109 s", + "enchantments": [ "enchant_clair_sense_rads" ] + }, + { + "type": "effect_type", + "id": "effect_clair_dodge", + "name": [ "Anticipating Attack" ], + "desc": [ "You can see your enemies' attacks in advance." ], + "apply_message": "", + "remove_message": "The images fade away.", + "decay_messages": [ + [ "The images of your enemies' actions are almost invisible now.", "bad" ], + [ "Your vision of your enemies' actions is becoming indistinct.", "bad" ] + ], + "rating": "good", + "max_duration": "15 minutes", + "max_intensity": 38, + "dur_add_perc": 10, + "int_dur_factor": "24 s", + "blocks_effects": [ "grabbed" ], + "enchantments": [ + { + "values": [ + { + "value": "BONUS_DODGE", + "add": { + "math": [ "(1 + ( u_val('spell_level', 'spell: clair_dodge_power') / 6) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "BONUS_BLOCK", + "add": { + "math": [ "(1 + ( u_val('spell_level', 'spell: clair_dodge_power') / 6) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ], + "flags": [ "UNCANNY_DODGE" ] + }, + { + "type": "effect_type", + "id": "effect_clair_clear_sight", + "name": [ "Truesight" ], + "desc": [ "Your powers allow you to see the true shape of reality." ], + "apply_message": "", + "remove_message": "The world seems wrapped in gauze compared to before.", + "decay_messages": [ + [ "Your enhanced clarity is almost gone.", "bad" ], + [ "You are growing less sure about the true nature of the world.", "bad" ] + ], + "rating": "good", + "max_duration": "15 minutes", + "max_intensity": 43, + "dur_add_perc": 40, + "int_dur_factor": "21 s", + "removes_effects": [ + "dazed", + "stunned", + "darkness", + "visuals", + "hallu", + "blind", + "hallucination_attacks", + "deaf", + "weed_high", + "High", + "drunk", + "no_sight", + "glare", + "snow_glare", + "venom_blind" + ] + }, + { + "type": "effect_type", + "id": "effect_clair_omniscence", + "name": [ "Omniscience" ], + "desc": [ "You can see forever." ], + "apply_message": "", + "remove_message": "Your senses snap back to your physical body.", + "rating": "good", + "flags": [ "SUPER_CLAIRVOYANCE" ], + "vitamins": [ { "vitamin": "vitamin_psionic_drain", "rate": [ [ 1, 1 ] ], "tick": [ "2 s" ] } ] + }, + { + "type": "effect_type", + "id": "effect_pyrokinetic_flash", + "name": [ "Blind" ], + "desc": [ "Range of Sight: 0. You cannot see anything." ], + "removes_effects": [ "glare", "snow_glare", "darkness" ], + "apply_message": "You're blinded!", + "remove_message": "Your sight returns!", + "rating": "bad", + "max_duration": "15 minutes", + "show_in_info": true, + "flags": [ "BLIND" ] + }, + { + "type": "effect_type", + "id": "effect_pyrokinetic_cloak", + "name": [ "Cloak of Warmth" ], + "desc": [ "The air around you has its temperature controlled." ], + "apply_message": "", + "remove_message": "A cool breeze hits your skin.", + "decay_messages": [ + [ "The warm air you've surrounded yourself with is nearly spent.", "bad" ], + [ "The air around you is slowing beginning to cool.", "bad" ] + ], + "rating": "good", + "max_duration": "60 minutes", + "max_intensity": 77, + "dur_add_perc": 10, + "int_dur_factor": "46 s", + "enchantments": [ "enchant_pyrokin_cloak" ] + }, + { + "type": "effect_type", + "id": "effect_pyrokinetic_aura", + "name": [ "Blazing Aura" ], + "desc": [ "You are surrounded by flames." ], + "apply_message": "", + "remove_message": "The flames surrounding you gutter out.", + "decay_messages": [ [ "The flames around you spark fitfully.", "bad" ], [ "Your aura of flames is beginning to fade.", "bad" ] ], + "rating": "good", + "max_duration": "15 minutes", + "max_intensity": 31, + "dur_add_perc": 10, + "int_dur_factor": "29 s", + "enchantments": [ "enchant_pyrokinetic_aura" ] + }, + { + "type": "effect_type", + "id": "effect_pyrokinetic_flame_immunity", + "name": [ "Flame Immunity" ], + "desc": [ "You are completely immune to fire." ], + "apply_message": "", + "rating": "good", + "max_duration": "30 minutes", + "max_intensity": 95, + "dur_add_perc": 10, + "int_dur_factor": "19 s", + "enchantments": [ { "values": [ { "value": "CLIMATE_CONTROL_CHILL", "add": 1000 }, { "value": "ARMOR_HEAT", "multiply": -1.0 } ] } ], + "flags": [ "HEAT_IMMUNE" ] + }, + { + "type": "effect_type", + "id": "effect_telekinetic_momentum", + "name": [ "Altered Momentum" ], + "desc": [ "Your powers are affecting movement around you; dangerous objects are slowed and your own speed is increased." ], + "apply_message": "", + "remove_message": "Nearby movement returns to normal.", + "decay_messages": [ + [ "Nearby momentum has nearly returned to normal.", "bad" ], + [ "Your alterations to movement around you are fading.", "bad" ] + ], + "rating": "good", + "max_duration": "15 minutes", + "max_intensity": 41, + "dur_add_perc": 20, + "int_dur_factor": "22 s", + "enchantments": [ + { + "values": [ + { + "value": "ARMOR_CUT", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: telekinetic_momentum') * -0.005 ) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_BASH", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: telekinetic_momentum') * -0.01 ) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_STAB", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: telekinetic_momentum') * -0.005 ) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_BULLET", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: telekinetic_momentum') * -0.02 ) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "MOVE_COST", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: telekinetic_momentum') * -0.01 ) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ATTACK_SPEED", + "multiply": { + "math": [ "( ( u_val('spell_level', 'spell: telekinetic_momentum') * -0.01 ) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_telekinetic_slowfall", + "name": [ "Slowfall" ], + "desc": [ "The ground isn't as eager to receive you." ], + "apply_message": "", + "remove_message": "You suddenly feel much heavier.", + "max_duration": "60 seconds", + "dur_add_perc": 10, + "enchantments": [ + { + "values": [ + { + "value": "FALL_DAMAGE", + "multiply": { + "math": [ "( -0.5 + ( u_val('spell_level', 'spell: telekinetic_slowfall') * -0.04) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ], + "limb_score_mods": [ { "limb_score": "swim", "modifier": 3.0 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_telekinetic_armor", + "name": [ "Inertial Barrier" ], + "desc": [ "A barrier of telekinetic force is protecting you." ], + "//": "The logic is that this works the reverse of the way mundane physics does--the wider the area of the force applied against it, the weaker it is.", + "apply_message": "", + "remove_message": "The barrier of force around you falls apart.", + "decay_messages": [ + [ "The barrier around you is nearly gone.", "bad" ], + [ "You can feel the barrier around you losing its integrity.", "bad" ] + ], + "rating": "good", + "max_duration": "60 minutes", + "max_intensity": 112, + "dur_add_perc": 10, + "int_dur_factor": "32 s", + "flags": [ "TELEKIN_SHIELD" ], + "enchantments": [ + { + "values": [ + { + "value": "ARMOR_CUT", + "add": { + "math": [ "( -3 + ( u_val('spell_level', 'spell: telekinetic_shield') * -1) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_BASH", + "add": { + "math": [ "( -2 + ( u_val('spell_level', 'spell: telekinetic_shield') * -0.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_STAB", + "add": { + "math": [ "( -5 + ( u_val('spell_level', 'spell: telekinetic_shield') * -1.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "ARMOR_BULLET", + "add": { + "math": [ "( -8 + ( u_val('spell_level', 'spell: telekinetic_shield') * -2.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_telekinetic_levitation", + "name": [ "Levitation" ], + "desc": [ "You are floating in defiance of gravity." ], + "apply_message": "", + "remove_message": "Your feet touch the ground once again.", + "decay_messages": [ [ "You are sinking despite your best efforts.", "bad" ], [ "You wobble briefly downward before recovering.", "bad" ] ], + "rating": "good", + "max_duration": "68 seconds", + "max_intensity": 34, + "dur_add_perc": 10, + "int_dur_factor": "2 s", + "flags": [ "LEVITATION" ], + "vitamins": [ { "vitamin": "vitamin_psionic_drain", "rate": [ [ 1, 1 ] ], "tick": [ "5 s" ] } ] + }, + { + "type": "effect_type", + "id": "effect_telekinetic_aegis", + "name": [ "Aegis" ], + "desc": [ "You are nearly invincible." ], + "apply_message": "", + "remove_message": "The air loses its structure and you are vulnerable once again.", + "rating": "good", + "max_duration": "20 seconds", + "removes_effects": [ "grabbed" ], + "enchantments": [ + { + "values": [ + { "value": "ARMOR_CUT", "add": -100000 }, + { "value": "ARMOR_BASH", "add": -100000 }, + { "value": "ARMOR_STAB", "add": -100000 }, + { "value": "ARMOR_BULLET", "add": -100000 } + ] + } + ], + "limb_score_mods": [ { "limb_score": "lift", "modifier": 0.51 }, { "limb_score": "grip", "modifier": 0.25 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD", "EFFECT_IMPEDING" ] + }, + { + "type": "effect_type", + "id": "effect_telepathic_learning_bonus", + "name": [ "Trance State" ], + "desc": [ "You are in a focused mental state, increasing the ease of learning." ], + "apply_message": "", + "remove_message": "You shake your head as you become aware of the outside world again.", + "decay_messages": [ + [ "Your enhanced concentration is fading like a dream.", "bad" ], + [ "The outside world is impinging itself on your awareness.", "bad" ] + ], + "rating": "good", + "max_duration": "180 minutes", + "max_intensity": 100, + "dur_add_perc": 10, + "int_dur_factor": "95 s", + "enchantments": [ + { + "values": [ + { + "value": "LEARNING_FOCUS", + "add": { + "math": [ "( ( u_val('spell_level', 'spell: telepathic_concentration') * 2.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { "value": "MOVE_COST", "multiply": 3 } + ] + } + ], + "flags": [ "MYOPIC" ] + }, + { + "type": "effect_type", + "id": "effect_telepath_invisibility", + "name": [ "Obscurity" ], + "desc": [ "You are hiding your presence from your enemies." ], + "apply_message": "", + "remove_message": "You are again visible and vulnerable.", + "decay_messages": [ + [ "Your veil of obscurity is nearly gone.", "bad" ], + [ "You notice nearby enemies glancing in your direction.", "bad" ] + ], + "rating": "good", + "max_duration": "100 seconds", + "max_intensity": 14, + "dur_add_perc": 10, + "int_dur_factor": "7 s", + "flags": [ "INVISIBLE", "NO_SCENT" ] + }, + { + "type": "effect_type", + "id": "effect_telepathic_psi_armor", + "name": [ "Psychic Shield" ], + "desc": [ "Your mind is warded against psychic attack." ], + "apply_message": "", + "remove_message": "Your thoughts are once again unguarded.", + "decay_messages": [ + [ "The barrier around your thoughts is nearly gone.", "bad" ], + [ "The shield guarding your mind is growing thinner.", "bad" ] + ], + "rating": "good", + "max_duration": "10 minutes", + "max_intensity": 17, + "dur_add_perc": 10, + "int_dur_factor": "35 s", + "removes_effects": [ "taint", "tindrift", "hallu", "hallucination_attacks", "visuals", "fearparalyze", "amigara" ], + "flags": [ "PORTAL_PROOF", "TEEPSHIELD" ] + }, + { + "type": "effect_type", + "id": "effect_telepath_network_effect", + "name": [ "Telepathic Network" ], + "desc": [ "You are in constant communication with your allies, looking out for each other in combat." ], + "//": "Ideally this would directly increase Perception and the Dodge, Melee, and Marksmanship skills, in some proportion to the target's current skill vs. the highest skill among the group. The below is currently what is possible.", + "apply_message": "", + "remove_message": "Silence fills your mind.", + "decay_messages": [ + [ "The inner voices of your allies are only a whisper now.", "bad" ], + [ "The inner voices of your allies begin to fade.", "bad" ] + ], + "rating": "good", + "max_duration": "30 minutes", + "max_intensity": 59, + "dur_add_perc": 10, + "int_dur_factor": "31 s", + "enchantments": [ + { + "values": [ + { + "value": "BONUS_DODGE", + "add": { + "math": [ "(1 + ( u_val('spell_level', 'spell: telepathic_network') / 12) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "BONUS_BLOCK", + "add": { + "math": [ "(1 + ( u_val('spell_level', 'spell: telepathic_network') / 12) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "PERCEPTION", + "add": { + "math": [ "( ( ( u_val('spell_level', 'spell: telepathic_network') * 0.2) + 1) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "RANGE", + "add": { + "math": [ "( ( ( u_val('spell_level', 'spell: telepathic_network') * 0.25) + 3) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + }, + { + "value": "EVASION", + "multiply": { + "math": [ + "( ( ( u_val('spell_level', 'spell: telepathic_network') * 0.005) + 0.05) * ( ( u_val('intelligence') + 10) / 20 ) )" + ] + } + }, + { + "value": "RANGED_DAMAGE", + "multiply": { + "math": [ + "( ( ( u_val('spell_level', 'spell: telepathic_network') * 0.005) + 0.05) * ( ( u_val('intelligence') + 10) / 20 ) )" + ] + } + }, + { + "value": "MELEE_DAMAGE", + "multiply": { + "math": [ + "( ( ( u_val('spell_level', 'spell: telepathic_network') * 0.005) + 0.05) * ( ( u_val('intelligence') + 10) / 20 ) )" + ] + } + }, + { + "value": "COMBAT_CATCHUP", + "multiply": { + "math": [ "( ( ( u_val('spell_level', 'spell: telepathic_network') * 0.25) + 1.5) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ], + "flags": [ "UNCANNY_DODGE" ] + }, + { + "type": "effect_type", + "id": "effect_teleport_slow", + "name": [ "Stutterstepping" ], + "desc": [ "Your steps aren't taking you as far as your eyes tell you they should." ], + "apply_message": "The air ripples and you stumble.", + "remove_message": "Your eyes and your legs agree with each other again.", + "rating": "bad", + "max_duration": 3000, + "dur_add_perc": 5, + "base_mods": { "speed_mod": [ -40 ] }, + "immune_flags": [ "DIMENSIONAL_ANCHOR", "TELESTOP", "TELEPORT_IMMUNE" ] + }, + { + "type": "effect_type", + "id": "effect_teleport_stride", + "name": [ "Extended Stride" ], + "desc": [ "Every step takes you further than your eyes tell you it should." ], + "apply_message": "", + "remove_message": "Your steps are normal once again.", + "decay_messages": [ [ "Your warped movement are almost gone.", "bad" ], [ "Your steps are no longer taking you quite so far.", "bad" ] ], + "rating": "good", + "max_duration": "10 minutes", + "max_intensity": 16, + "dur_add_perc": 10, + "int_dur_factor": "37 s", + "enchantments": [ + { + "values": [ + { + "value": "MOVE_COST", + "multiply": { + "math": [ "( ( ( u_val('spell_level', 'spell: teleport_stride') * -0.02 ) - 0.05 ) * ( ( u_val('intelligence') + 10) / 20 ) )" ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_vita_health", + "name": [ "Healthy Glow" ], + "desc": [ "You feel amazing." ], + "apply_message": "", + "remove_message": "The surge of vitality leaves you in a rush.", + "decay_messages": [ + [ "All of the day's hardships seem like they're catching up to you.", "bad" ], + [ "The vitality your powers gave you is starting to fade.", "bad" ] + ], + "rating": "good", + "max_duration": "120 minutes", + "max_intensity": 97, + "dur_add_perc": 10, + "int_dur_factor": "73 s", + "blocks_effects": [ "scurvy", "redcells_anemia", "anemia", "toxin_buildup", "common_cold", "flu" ], + "removes_effects": [ "asthma" ], + "base_mods": { "health_min": [ 1 ], "health_chance": [ 50 ], "h_mod_min": [ 2 ], "h_mod_chance": [ 50 ], "healing_rate": [ 2 ] } + }, + { + "type": "effect_type", + "id": "effect_vitakin_hurt", + "name": [ "Enervating Touch" ], + "desc": [ "This reduces monsters' regeneration. It's a bug if you have it." ], + "rating": "bad", + "max_duration": "1 minutes" + }, + { + "type": "effect_type", + "id": "effect_vitakin_purge_rads", + "name": [ "Radiation Purge" ], + "desc": [ "You are using your powers to cleanse yourself of radiation." ], + "rating": "good", + "base_mods": { "rad_min": [ -1 ], "rad_chance": [ 1 ], "rad_tick": [ 60 ] } + }, + { + "type": "effect_type", + "id": "effect_vitakin_purge_rads_sideeffects", + "name": [ "Radiation Purge Side Effects" ], + "desc": [ "You are using your powers to cleanse yourself of radiation, but there are some side effects." ], + "rating": "bad", + "max_intensity": 10, + "base_mods": { + "str_mod": [ 0 ], + "dex_mod": [ 0 ], + "per_mod": [ 0 ], + "stamina_amount": [ -2000 ], + "pain_min": [ 1 ], + "pain_chance": [ 10 ], + "pain_tick": [ 60 ], + "health_min": [ 0 ], + "health_chance": [ 1000 ], + "health_tick": [ 60 ], + "fatigue_min": [ 0 ], + "fatigue_chance": [ 500 ], + "fatigue_tick": [ 60 ], + "vomit_chance": [ 1000 ], + "vomit_tick": [ 60 ] + }, + "scaling_mods": { + "stamina_amount": [ -1500 ], + "str_mod": [ -1 ], + "dex_mod": [ -1 ], + "per_mod": [ -0.7 ], + "pain_chance": [ -1 ], + "health_min": [ -1 ], + "health_chance": [ -135 ], + "fatigue_min": [ 0.6 ], + "fatigue_chance": [ -65 ], + "vomit_chance": [ -150 ] + } + }, + { + "type": "effect_type", + "id": "effect_vita_super_heal", + "desc": [ "You are healing extraordinarily quickly." ], + "apply_message": "", + "remove_message": "Your body aches as your preternatural healing slows to a stop.", + "rating": "good", + "removes_effects": [ "bleed" ], + "enchantments": [ + { + "intermittent_activation": { + "effects": [ + { + "frequency": "30 seconds", + "spell_effects": [ { "id": "vita_super_heal_healing" }, { "id": "vita_super_heal_drain" } ] + } + ] + } + } + ], + "flags": [ "BLEED_IMMUNE" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/emits.json b/data/Mainline_mods/Mods/MindOverMatter/emits.json new file mode 100644 index 000000000..3aece2248 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/emits.json @@ -0,0 +1,67 @@ +[ + { + "id": "emit_pyrokinetic_summon_heat_1", + "type": "emit", + "field": "fd_pyrokinetic_summon_heat_1", + "intensity": 3, + "qty": 50 + }, + { + "id": "emit_pyrokinetic_summon_heat_2", + "type": "emit", + "field": "fd_pyrokinetic_summon_heat_2", + "intensity": 3, + "qty": 50 + }, + { + "id": "emit_pyrokinetic_summon_heat_3", + "type": "emit", + "field": "fd_pyrokinetic_summon_heat_3", + "intensity": 3, + "qty": 50 + }, + { + "id": "emit_pyrokinetic_summon_heat_4", + "type": "emit", + "field": "fd_pyrokinetic_summon_heat_4", + "intensity": 3, + "qty": 50 + }, + { + "id": "emit_pyrokin_cloak", + "type": "emit", + "field": "fd_pyrokinetic_warmth", + "intensity": 3, + "qty": 20 + }, + { + "id": "emit_pyrokin_fever", + "type": "emit", + "field": "fd_pyrokinetic_heat", + "intensity": 3, + "qty": 20 + }, + { + "id": "emit_cold_nether_water", + "type": "emit", + "field": "fd_cold_air2", + "intensity": 3, + "qty": 25, + "chance": 50 + }, + { + "id": "emit_cold_deep_nether_water", + "type": "emit", + "field": "fd_cold_air_nether_deep", + "intensity": 3, + "qty": 25, + "chance": 50 + }, + { + "id": "emit_anti_psi", + "type": "emit", + "field": "fd_nullifying_field", + "intensity": 3, + "qty": 120 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/enchantments/enchantment_item.json b/data/Mainline_mods/Mods/MindOverMatter/enchantments/enchantment_item.json new file mode 100644 index 000000000..7f5639757 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/enchantments/enchantment_item.json @@ -0,0 +1,21 @@ +[ + { + "type": "enchantment", + "id": "telekin_ritual_summon_strength_enchant", + "condition": "ALWAYS", + "has": "HELD", + "values": [ + { + "value": "STRENGTH", + "add": { + "math": [ + "((((u_val('spell_level', 'spell: telekinetic_pull')) + u_val('spell_level', 'spell: telekinetic_push')) + u_val('spell_level', 'spell: telekinetic_wave')) + u_val('spell_level', 'spell: telekinetic_momentum'))" + ] + } + }, + { "value": "ATTACK_SPEED", "multiply": 10 }, + { "value": "BONUS_DODGE", "add": -5 }, + { "value": "BONUS_BLOCK", "add": -5 } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/enchantments/enchantments_baneful.json b/data/Mainline_mods/Mods/MindOverMatter/enchantments/enchantments_baneful.json new file mode 100644 index 000000000..519c4f99b --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/enchantments/enchantments_baneful.json @@ -0,0 +1,24 @@ +[ + { + "type": "enchantment", + "id": "enchant_riftwalker_teleport", + "condition": "ALWAYS", + "has": "HELD", + "intermittent_activation": { "effects": [ { "frequency": "3 seconds", "spell_effects": [ { "id": "teleport_blink_monster" } ] } ] } + }, + { + "type": "enchantment", + "id": "enchant_pyrokin_fever", + "condition": "ALWAYS", + "has": "HELD", + "emitter": "emit_pyrokin_fever", + "values": [ { "value": "LUMINATION", "add": 50 } ] + }, + { + "type": "enchantment", + "id": "enchant_teleport_potion_comedown", + "condition": "ALWAYS", + "has": "HELD", + "intermittent_activation": { "effects": [ { "frequency": "130 minutes", "spell_effects": [ { "id": "teleport_blink_monster" } ] } ] } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/enchantments/enchantments_player.json b/data/Mainline_mods/Mods/MindOverMatter/enchantments/enchantments_player.json new file mode 100644 index 000000000..ed1538072 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/enchantments/enchantments_player.json @@ -0,0 +1,123 @@ +[ + { + "type": "enchantment", + "id": "enchant_clair_potion", + "condition": "ALWAYS", + "has": "HELD", + "values": [ { "value": "BONUS_DODGE", "add": 1 } ], + "intermittent_activation": { "effects": [ { "frequency": "2 seconds", "spell_effects": [ { "id": "clair_potion_clairvoyance" } ] } ] } + }, + { + "id": "clair_potion_clairvoyance", + "type": "SPELL", + "name": "[Ψ]Gray Potion Clairvoyance", + "description": "The clairvoyance effect from the elixir. If you have it it's a bug.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "IGNORE_WALLS", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "shape": "blast", + "difficulty": 4, + "max_level": 1, + "min_aoe": 20, + "max_aoe": 20, + "field_id": "fd_clairvoyant", + "min_field_intensity": 1, + "max_field_intensity": 1, + "min_duration": 200, + "max_duration": 200 + }, + { + "type": "enchantment", + "id": "enchant_pyrokin_cloak", + "condition": "ALWAYS", + "has": "HELD", + "emitter": "emit_pyrokin_cloak", + "values": [ + { + "value": "CLIMATE_CONTROL_CHILL", + "add": { "math": [ "( ( u_val('spell_level', 'spell: pyrokinetic_cloak') * 10) * ( ( u_val('intelligence') + 10) / 20 ) )" ] } + }, + { + "value": "CLIMATE_CONTROL_HEAT", + "add": { "math": [ "( ( u_val('spell_level', 'spell: pyrokinetic_cloak') * 10) * ( ( u_val('intelligence') + 10) / 20 ) )" ] } + }, + { + "value": "ARMOR_HEAT", + "add": { "math": [ "( ( u_val('spell_level', 'spell: pyrokinetic_cloak') * -10) * ( ( u_val('intelligence') + 10) / 20 ) )" ] } + }, + { + "value": "ARMOR_COLD", + "add": { "math": [ "( ( u_val('spell_level', 'spell: pyrokinetic_cloak') * -3) * ( ( u_val('intelligence') + 10) / 20 ) )" ] } + } + ] + }, + { + "type": "enchantment", + "id": "enchant_clair_sense_rads", + "condition": "ALWAYS", + "has": "HELD", + "intermittent_activation": { "effects": [ { "frequency": "10 seconds", "spell_effects": [ { "id": "clair_sense_rads_outside_spawn_item" } ] } ] } + }, + { + "type": "enchantment", + "id": "enchant_pyrokinetic_aura", + "condition": "ALWAYS", + "has": "HELD", + "hit_you_effect": [ { "id": "pyro_aura_attack", "hit_self": false } ], + "hit_me_effect": [ { "id": "pyro_aura_attacked", "hit_self": false } ], + "emitter": "emit_pyrokin_fever", + "values": [ { "value": "LUMINATION", "add": 50 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 40 } ] + }, + { + "id": "pyro_aura_attack", + "type": "SPELL", + "name": "Pyrokinetic aura stabbing", + "description": "Do fire damage to a monster that you attack.", + "valid_targets": [ "hostile" ], + "flags": [ "RANDOM_DAMAGE", "IGNITE_FLAMMABLE" ], + "shape": "blast", + "effect": "attack", + "damage_type": "heat", + "min_damage": 5, + "max_damage": 15, + "min_range": 1, + "max_range": 1 + }, + { + "id": "pyro_aura_attacked", + "type": "SPELL", + "name": "Pyrokinetic aura thorns", + "description": "Do fire damage to a monster that attacked you.", + "valid_targets": [ "hostile" ], + "flags": [ "RANDOM_DAMAGE", "IGNITE_FLAMMABLE" ], + "shape": "blast", + "effect": "attack", + "damage_type": "heat", + "min_damage": 5, + "max_damage": 30, + "min_range": 1, + "max_range": 1 + }, + { + "type": "enchantment", + "id": "enchant_pyrokin_potion", + "condition": "ALWAYS", + "has": "HELD", + "values": [ { "value": "ARMOR_HEAT", "add": -50 } ], + "hit_me_effect": [ { "id": "pyro_aura_attacked", "hit_self": false } ] + }, + { + "type": "enchantment", + "id": "enchant_teleport_potion", + "condition": "ALWAYS", + "has": "HELD", + "hit_you_effect": [ + { + "id": "teleport_slow_monster", + "hit_self": false, + "min_level": 1, + "message": "The air around your enemy warps slightly." + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/fields.json b/data/Mainline_mods/Mods/MindOverMatter/fields.json new file mode 100644 index 000000000..894c44701 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/fields.json @@ -0,0 +1,134 @@ +[ + { + "id": "fd_pyrokinetic_summon_heat_1", + "type": "field_type", + "intensity_levels": [ + { "name": "heated air", "sym": "&", "convection_temperature_mod": 2 }, + { "color": "yellow", "convection_temperature_mod": 3 }, + { "color": "red", "convection_temperature_mod": 6 } + ], + "decay_amount_factor": 5, + "percent_spread": 10, + "outdoor_age_speedup": "40 minutes", + "priority": -1, + "half_life": "20 minutes", + "phase": "gas" + }, + { + "id": "fd_pyrokinetic_summon_heat_2", + "type": "field_type", + "intensity_levels": [ + { "name": "heated air", "sym": "&", "convection_temperature_mod": 4 }, + { "color": "yellow", "convection_temperature_mod": 8 }, + { "color": "red", "convection_temperature_mod": 16 } + ], + "decay_amount_factor": 5, + "percent_spread": 10, + "outdoor_age_speedup": "40 minutes", + "priority": -1, + "half_life": "20 minutes", + "phase": "gas" + }, + { + "id": "fd_pyrokinetic_summon_heat_3", + "type": "field_type", + "intensity_levels": [ + { "name": "heated air", "sym": "&", "convection_temperature_mod": 10 }, + { "color": "yellow", "convection_temperature_mod": 20 }, + { "color": "red", "convection_temperature_mod": 40 } + ], + "decay_amount_factor": 5, + "percent_spread": 10, + "outdoor_age_speedup": "40 minutes", + "priority": -1, + "half_life": "20 minutes", + "phase": "gas" + }, + { + "id": "fd_pyrokinetic_summon_heat_4", + "type": "field_type", + "intensity_levels": [ + { "name": "heated air", "sym": "&", "convection_temperature_mod": 16 }, + { "color": "yellow", "convection_temperature_mod": 38 }, + { "color": "red", "convection_temperature_mod": 75 } + ], + "decay_amount_factor": 5, + "percent_spread": 10, + "outdoor_age_speedup": "40 minutes", + "priority": -1, + "half_life": "20 minutes", + "phase": "gas" + }, + { + "id": "fd_pyrokinetic_heat", + "type": "field_type", + "intensity_levels": [ + { "name": "overheated air", "sym": "&", "convection_temperature_mod": 12 }, + { "color": "yellow", "convection_temperature_mod": 22 }, + { "color": "red", "convection_temperature_mod": 45 } + ], + "decay_amount_factor": 5, + "percent_spread": 10, + "outdoor_age_speedup": "40 minutes", + "priority": -1, + "half_life": "20 minutes", + "phase": "gas" + }, + { + "id": "fd_pyrokinetic_warmth", + "type": "field_type", + "intensity_levels": [ + { "name": "heated air", "sym": "&", "convection_temperature_mod": 7 }, + { "color": "yellow", "convection_temperature_mod": 13 }, + { "color": "red", "convection_temperature_mod": 26 } + ], + "decay_amount_factor": 5, + "percent_spread": 10, + "outdoor_age_speedup": "2 minutes", + "priority": -1, + "half_life": "1 minutes", + "phase": "gas" + }, + { + "id": "fd_cold_air_nether_deep", + "type": "field_type", + "intensity_levels": [ + { "name": "chill air", "sym": "&", "convection_temperature_mod": -12 }, + { "color": "blue", "convection_temperature_mod": -28 }, + { "color": "cyan", "convection_temperature_mod": -40 } + ], + "decay_amount_factor": 5, + "percent_spread": 10, + "outdoor_age_speedup": "100 minutes", + "priority": -1, + "half_life": "50 minutes", + "phase": "gas" + }, + { + "id": "fd_nullifying_field", + "type": "field_type", + "intensity_levels": [ + { + "name": "droning hum", + "effects": [ + { + "effect_id": "effect_psi_null", + "body_part": "mouth", + "intensity": 10, + "min_duration": "100 seconds", + "max_duration": "350 seconds", + "immune_inside_vehicle": false + } + ] + }, + { "//": "repeat last entry" }, + { "//": "repeat last entry" } + ], + "decay_amount_factor": 5, + "gas_absorption_factor": 15, + "percent_spread": 5, + "priority": 8, + "half_life": "1 minutes", + "phase": "gas" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/furniture_and_terrain/appliance_lighting.json b/data/Mainline_mods/Mods/MindOverMatter/furniture_and_terrain/appliance_lighting.json new file mode 100644 index 000000000..66a945a22 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/furniture_and_terrain/appliance_lighting.json @@ -0,0 +1,25 @@ +[ + { + "id": "ap_standing_pyrokinetic_lamp", + "type": "vehicle_part", + "name": { "str": "standing matrix lamp" }, + "item": "standing_pyrokinetic_lamp", + "variants": [ { "symbols": "*", "symbols_broken": "-" } ], + "categories": [ "lighting" ], + "color": "red", + "broken_color": "green", + "durability": 20, + "description": "An lamp enhanced with matrix technology.", + "bonus": 150, + "damage_modifier": 10, + "epower": "-4 W", + "looks_like": "atomic_lamp", + "breaks_into": [ + { "item": "cable", "charges": [ 1, 4 ] }, + { "item": "steel_chunk", "count": [ 0, 2 ] }, + { "item": "scrap", "count": [ 1, 2 ] } + ], + "flags": [ "CIRCLE_LIGHT", "APPLIANCE", "ENABLED_DRAINS_EPOWER", "CTRL_ELECTRONIC" ], + "requirements": { "removal": { "time": "6 m" } } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/furniture_and_terrain/furniture.json b/data/Mainline_mods/Mods/MindOverMatter/furniture_and_terrain/furniture.json new file mode 100644 index 000000000..482347320 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/furniture_and_terrain/furniture.json @@ -0,0 +1,81 @@ +[ + { + "type": "furniture", + "id": "f_telepathic_amplifier", + "name": "strange electronic chair", + "description": "A bulky machine with a chair and a hat-like mechanism designed to fit over the wearer's head, like something you would find in a hair salon. You have no idea how to operate it, but you could scavenge it for parts.", + "symbol": "#", + "color": "white", + "looks_like": "f_MRI", + "move_cost_mod": 1, + "coverage": 25, + "required_str": 13, + "deconstruct": { + "items": [ + { "item": "processor", "count": [ 1, 2 ] }, + { "item": "RAM", "count": [ 4, 8 ] }, + { "item": "cable", "charges": [ 4, 6 ] }, + { "item": "small_lcd_screen", "count": [ 1, 2 ] }, + { "item": "e_scrap", "count": [ 10, 16 ] }, + { "item": "circuit", "count": [ 6, 10 ] }, + { "item": "power_supply", "count": [ 2, 4 ] }, + { "item": "amplifier", "count": [ 2, 4 ] }, + { "item": "plastic_chunk", "count": [ 10, 12 ] }, + { "item": "scrap", "count": [ 6, 8 ] }, + { "item": "matrix_crystal_telepath_dust", "count": [ 5, 15 ] }, + { "item": "matrix_crystal_telepathy", "count": [ 0, 1 ] } + ] + }, + "bash": { + "str_min": 8, + "str_max": 150, + "sound": "crunch!", + "sound_fail": "whack!", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 }, + { "item": "matrix_crystal_telepath_dust", "count": [ 10, 25 ] } + ] + } + }, + { + "type": "furniture", + "id": "f_nether_crystal_structure", + "name": "glowing crystal", + "description": "An irregular chunk of glowing crystal. The fitful glow sheds no illumination on the nearby terrain.", + "symbol": "#", + "color": "black", + "move_cost_mod": -1, + "looks_like": "f_boulder_large", + "coverage": 75, + "required_str": 32, + "flags": [ "NOITEM", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 25, + "str_max": 100, + "sound": "crystal shattering!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "items": [ + { "item": "matrix_shard", "count": [ 4, 20 ] }, + { "item": "matrix_crystal_biokin_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_clair_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_pyrokin_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_telekin_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_telepath_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_teleport_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_vitakin_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_drained_dust", "count": [ 3, 6 ] } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/furniture_and_terrain/terrain.json b/data/Mainline_mods/Mods/MindOverMatter/furniture_and_terrain/terrain.json new file mode 100644 index 000000000..acd7ba2e3 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/furniture_and_terrain/terrain.json @@ -0,0 +1,166 @@ +[ + { + "type": "terrain", + "id": "t_nether_stone", + "name": "black stone", + "description": "A perfectly smooth patch of black stone, like carved and polished obsidian.", + "looks_like": "t_nether_glass_floor", + "symbol": " ", + "color": "black", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAT", "ROAD" ] + }, + { + "type": "terrain", + "id": "t_nether_water_sh", + "name": "black water", + "description": "An expanse of some sort of black liquid. The air nearby is chill, and its surface is perfectly smooth and undisturbed by ripples or wind. You have no idea how deep it is.", + "symbol": "~", + "looks_like": "t_nether_glass_floor", + "color": "black", + "move_cost": 6, + "emissions": [ "emit_cold_nether_water" ], + "flags": [ "TRANSPARENT", "LIQUID", "NO_SCENT", "SWIMMABLE", "MURKY" ], + "connect_groups": "WATER", + "connects_to": "WATER" + }, + { + "type": "terrain", + "id": "t_nether_water_dp", + "name": "black water", + "description": "An expanse of some sort of black liquid. The air nearby is chill, and its surface is perfectly smooth and undisturbed by ripples or wind. You have no idea how deep it is.", + "symbol": "~", + "looks_like": "t_nether_glass_floor", + "color": "black", + "move_cost": 10, + "emissions": [ "emit_cold_deep_nether_water" ], + "flags": [ "TRANSPARENT", "LIQUID", "NO_SCENT", "SWIMMABLE", "DEEP_WATER", "MURKY" ], + "connect_groups": "WATER", + "connects_to": "WATER" + }, + { + "type": "terrain", + "id": "t_grass_alien_2", + "name": "alien grass", + "description": "An area of something that almost looks like grass. The blades are rolled up into curls, similar to ferns, but they seem to all unroll at once and then roll up again in a steady pattern. They're a color you can only describe as \"purplish-yellow\".", + "symbol": ".", + "color": "magenta", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE", "ROUGH" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_grass_alien_3", + "name": "alien grass", + "description": "An area of something that almost looks like grass. The blades are less than an inch high and a blue so dark it's almost black. When you look closer, many blades seemed to be fused together at the top, forming small clusters.", + "symbol": ".", + "color": "dark_gray", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE", "ROUGH" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_grass_alien_4", + "name": "alien grass", + "looks_like": "t_grass_long", + "description": "An area of something that almost looks like grass. It's the familiar green of terrestrial grass, but each blade has a large pink bulb at the top that bobs and moves in the breeze.", + "symbol": ".", + "color": "green", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE", "DIGGABLE", "FLAT", "PLOWABLE" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_vines_alien_1", + "name": "alien vines", + "description": "An area of something that almost looks like vines, or perhaps tree roots. A thick ropy cluster of white tendrils streaked with red, twining around each other and branching off in all directions before meeting up in new clusters. Sometimes, one of the vines twitches.", + "symbol": ".", + "color": "white", + "move_cost": 4, + "flags": [ "TRANSPARENT", "FLAMMABLE", "DIGGABLE", "FLAT", "PLOWABLE", "ROUGH" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_moss_alien_1", + "name": "alien moss", + "description": "An area of something that almost looks like moss. It's a pale bluish color and clumps of it seem to be very slowly moving across the ground.", + "symbol": ".", + "color": "light_cyan", + "move_cost": 1, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT", "PLOWABLE" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_moss_alien_2", + "name": "alien moss", + "description": "An area of something that almost looks like moss. It's close to an inch thick, a dark yellowish-red, and glistens wetly.", + "symbol": ".", + "color": "red", + "move_cost": 1, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAMMABLE", "FLAT", "PLOWABLE", "PAINFUL" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 40, "str_max": 100, "str_min_supported": 100, "bash_below": true } + }, + { + "type": "terrain", + "id": "t_tree_small_alien_1", + "name": "alien tree", + "looks_like": "t_tree_dead", + "description": "A short tree, or something that's vaguely shaped like one. It has long, needle-like leaves that twitch rhythmically and its dark reddish-purple bark(?) has a scale-like pattern, with glowing nodules irregularly spaced along its trunk. Bluish-green globules hang from the end of some of the branches.", + "symbol": "7", + "color": "magenta", + "light_emitted": 10, + "transforms_into": "t_tree_small_alien_1_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "id": "alien_tree_harv" } ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { "str_min": 40, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_grass_alien_2" } + }, + { + "type": "terrain", + "id": "t_tree_small_alien_1_harvested", + "name": "alien tree", + "looks_like": "t_tree_dead", + "description": "A tall alien plant. It has long, needle-like leaves that twitch rhythmically and its dark reddish-purple bark(?) has a scale-like pattern, with glowing nodules irregularly spaced along its trunk.", + "symbol": "7", + "color": "light_gray", + "light_emitted": 10, + "examine_action": "harvested_plant", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "bash": { "str_min": 40, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_grass_alien_2" } + }, + { + "type": "terrain", + "id": "t_tree_small_alien_2", + "name": "alien tree", + "looks_like": "t_bamboo_tall", + "description": "A tall, thin alien plant. From a distance it seems more like a column than a tree, but when you get closer you can see that it's made up of a series of of broad, serrated leaves all folded so closely together that they form a single stalk.", + "symbol": "7", + "color": "dark_gray", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { "str_min": 40, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_moss_alien_2" } + }, + { + "type": "terrain", + "id": "t_tree_small_alien_3", + "name": "alien tree", + "looks_like": "t_tree_fungal_young", + "description": "A large alien plant. It looks like a series of bulbous mushrooms that have all grown together at the base, rising into a flaring series of branches that curve up before hanging down and ending in reddish-brown spheres.", + "symbol": "7", + "color": "light_red", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { "str_min": 40, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_grass_alien" } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/harvests.json b/data/Mainline_mods/Mods/MindOverMatter/harvests.json new file mode 100644 index 000000000..9a161cc39 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/harvests.json @@ -0,0 +1,7 @@ +[ + { + "id": "alien_tree_harv", + "type": "harvest", + "entries": [ { "drop": "alien_tree_1_fruit", "base_num": [ 1, 4 ], "scale_num": [ 0, 0.5 ] } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/hobbies.json b/data/Mainline_mods/Mods/MindOverMatter/hobbies.json new file mode 100644 index 000000000..dbec649c8 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/hobbies.json @@ -0,0 +1,74 @@ +[ + { + "type": "profession", + "id": "meditation", + "name": "Meditation", + "description": "You make a habit of clearing your thoughts and finding your center, even amidst the chaos of the world.", + "copy-from": "meditation", + "points": 4, + "skills": [ { "level": 3, "name": "metaphysics" } ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "newly_biokinetic", + "name": "Newly-Awakened Biokinetic", + "description": "Something happened during the storms that raged during the Cataclysm, and now you can do things that would have once seemed impossible. You feel in better shape than you ever have in your life, like you could run a mile and climb a mountain and then wake up and do it again. You'll probably need it.", + "points": 3, + "traits": [ "BIOKINETIC", "BIOKIN_NEEDS" ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "newly_clairsentient", + "name": "Newly-Awakened Clairsentient", + "description": "Something happened during the storms that raged during the Cataclysm, and now you can do things that would have once seemed impossible. You can read much faster and can see much better in the dark, and even in total darkness you no longer have any hesitation about moving. At least once you avoided zombies on the other side of a wall that you didn't hear and couldn't see, but you you just knew they were there.", + "points": 3, + "traits": [ "CLAIRSENTIENT", "CLAIR_SENSES" ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "newly_pyrokinetic", + "name": "Newly-Awakened Pyrokinetic", + "description": "Something happened during the storms that raged during the Cataclysm, and now you can do things that would have once seemed impossible. With just a thought, you can start a fire or make light radiate from the very air. It's already saved your life once when you burned a zombie while scavenging in a ruined house to ash. Sure, the house burned down too, but you'll definitely get more control as time goes on, right?", + "points": 5, + "traits": [ "PYROKINETIC", "PYROGLOW_WEAK", "PYROGLOW_STRONG" ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "newly_telekinetic", + "name": "Newly-Awakened Telekinetic", + "description": "Something happened during the storms that raged during the Cataclysm, and now you can do things that would have once seemed impossible. You can lift things with your mind. Mostly just small things, but during the chaos a group of rioters jumped you and you hurled them off of you just by thinking about it. This will definitely come in handy.", + "points": 4, + "traits": [ "TELEKINETIC", "TELEKINETIC_LIFTER_1" ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "newly_telepath", + "name": "Newly-Awakened Telepath", + "description": "Something happened during the storms that raged during the Cataclysm, and now you can do things that would have once seemed impossible. The crazies were bad enough during the riots, but once you were stopped by a police officer whose bloodshot eyes told you that he wasn't going to let you off with a warning. But you could somehow hear his thoughts, a chaotic jumble of rage and hunger and fear, you just…nudged them a little bit, and he wandered off and left you alone. It doesn't work the same way with the zombies, but you can't have everything.", + "points": 3, + "traits": [ "TELEPATH", "TELEPATHIC_SUGGESTION" ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "newly_teleporter", + "name": "Newly-Awakened Teleporter", + "description": "Something happened during the storms that raged during the Cataclysm, and now you can do things that would have once seemed impossible. You were fleeing down a side street when you heard a crash above you. You looked up and saw something hurtling through the air down toward you, you closed your eyes and wished you were anywhere but where you were, and then…you were. Indoors, in a house near the street, and you went out the back door and made good your escape. You're very, very good at escaping now.", + "points": 6, + "traits": [ "TELEPORTER", "TELEPORTER_PROTECT" ] + }, + { + "type": "profession", + "subtype": "hobby", + "id": "newly_vitakinetic", + "name": "Newly-Awakened Vitakinetic", + "description": "Something happened during the storms that raged during the Cataclysm, and now you can do things that would have once seemed impossible. You broke your leg when you got caught a riot, and when things got really bad you were positive you were going to die. But somehow, after only a few days your leg didn't seem to hurt nearly as much anymore. By the end of the week you could walk on it, and by now it's like nothing ever happened. It's not going to help you fight the zombies but it'll sure help you recover afterward.", + "points": 3, + "traits": [ "VITAKINETIC", "VITAKINETIC_HEALTH" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/itemgroups/books.json b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/books.json new file mode 100644 index 000000000..876b9611b --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/books.json @@ -0,0 +1,92 @@ +[ + { + "type": "item_group", + "subtype": "distribution", + "id": "dist_meditation_books_begin", + "items": [ + { "item": "manual_meditation", "variant": "manual_meditation_1", "prob": 3 }, + { "item": "manual_meditation", "variant": "manual_meditation_2", "prob": 3 }, + { "item": "manual_meditation", "variant": "manual_meditation_3", "prob": 3 }, + { "item": "manual_meditation", "variant": "manual_meditation_4", "prob": 3 } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "dist_meditation_books_int", + "items": [ + { "item": "manual_meditation_int", "variant": "manual_meditation_int_1", "prob": 1 }, + { "item": "manual_meditation_int", "variant": "manual_meditation_int_2", "prob": 1 }, + { "item": "manual_meditation_int", "variant": "manual_meditation_int_3", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "homebooks", + "copy-from": "homebooks", + "extend": { + "items": [ { "group": "dist_meditation_books_begin", "prob": 8 }, { "group": "dist_meditation_books_int", "prob": 4 } ] + } + }, + { + "id": "SUS_book_nonf_pulp_newage", + "type": "item_group", + "copy-from": "SUS_book_nonf_pulp_newage", + "extend": { + "items": [ { "group": "dist_meditation_books_begin", "prob": 1 }, { "group": "dist_meditation_books_int", "prob": 1 } ] + } + }, + { + "id": "SUS_book_nonf_soft_psych", + "type": "item_group", + "copy-from": "SUS_book_nonf_soft_psych", + "extend": { + "items": [ { "group": "dist_meditation_books_begin", "prob": 1 }, { "group": "dist_meditation_books_int", "prob": 1 } ] + } + }, + { + "type": "item_group", + "id": "lab_bookshelves", + "copy-from": "lab_bookshelves", + "extend": { + "items": [ { "group": "dist_meditation_books_begin", "prob": 6 }, { "group": "dist_meditation_books_int", "prob": 4 } ] + } + }, + { + "type": "item_group", + "id": "mansion_books", + "copy-from": "mansion_books", + "extend": { + "items": [ { "group": "dist_meditation_books_begin", "prob": 10 }, { "group": "dist_meditation_books_int", "prob": 5 } ] + } + }, + { + "type": "item_group", + "id": "science", + "copy-from": "science", + "extend": { + "items": [ + { "item": "manual_meditation_int", "variant": "manual_meditation_int_1", "prob": 6 }, + { "item": "manual_meditation_int", "variant": "manual_meditation_int_3", "prob": 3 }, + { "item": "manual_psionics_advan", "prob": 3 } + ] + } + }, + { + "type": "item_group", + "id": "chem_lab", + "copy-from": "chem_lab", + "extend": { "items": [ { "item": "manual_psionics_advan", "prob": 2 } ] } + }, + { + "type": "item_group", + "id": "textbooks_school", + "copy-from": "textbooks_school", + "extend": { + "items": [ + { "item": "manual_meditation", "variant": "manual_meditation_1", "prob": 5 }, + { "item": "manual_meditation", "variant": "manual_meditation_2", "prob": 3 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/itemgroups/clothing.json b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/clothing.json new file mode 100644 index 000000000..74ee72e09 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/clothing.json @@ -0,0 +1,11 @@ +[ + { + "type": "item_group", + "id": "wallets_phavian", + "items": [ + { "group": "wallet_phavian_leather_full", "prob": 50 }, + { "group": "wallet_phavian_full", "prob": 25 }, + { "group": "wallet_phavian_stylish_full", "prob": 25 } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/itemgroups/feral_deathdrops.json b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/feral_deathdrops.json new file mode 100644 index 000000000..3a1c3927a --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/feral_deathdrops.json @@ -0,0 +1,219 @@ +[ + { + "type": "item_group", + "subtype": "collection", + "id": "feral_humans_death_drops_bio", + "entries": [ + { "group": "default_zombie_clothes", "prob": 100 }, + { "group": "wallets", "prob": 80 }, + { "item": "knee_pads", "prob": 3, "damage": [ 1, 4 ] }, + { "group": "homebooks", "prob": 5 }, + { "item": "thermos", "prob": 15 }, + { "group": "default_zombie_items_bags_small", "prob": 50 }, + { "group": "default_zombie_items_pockets", "count": [ 1, 2 ], "prob": 50 }, + { "group": "feral_humans_crystal_drops_bio", "prob": 30 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "feral_humans_death_drops_clair", + "entries": [ + { "group": "default_zombie_clothes", "prob": 100 }, + { "group": "wallets", "prob": 80 }, + { "group": "homebooks", "prob": 5 }, + { "group": "default_zombie_items_bags_small", "prob": 50 }, + { "group": "default_zombie_items_pockets", "count": [ 1, 2 ], "prob": 50 }, + { "group": "feral_humans_crystal_drops_clair", "prob": 30 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "feral_humans_death_drops_pyro", + "entries": [ + { "group": "default_zombie_clothes", "prob": 100 }, + { "group": "wallets", "prob": 80 }, + { "item": "knee_pads", "prob": 3, "damage": [ 1, 4 ] }, + { "group": "homebooks", "prob": 5 }, + { "item": "lighter", "count": [ 1, 3 ], "prob": 80, "charges-min": 12, "charges-max": 74 }, + { "group": "default_zombie_items_bags_small", "prob": 50 }, + { "group": "default_zombie_items_pockets", "count": [ 1, 2 ], "prob": 50 }, + { "group": "feral_humans_crystal_drops_pyro", "prob": 30 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "feral_humans_death_drops_telekin", + "entries": [ + { "group": "default_zombie_clothes", "prob": 100 }, + { "group": "wallets", "prob": 80 }, + { "item": "rock", "prob": 80, "count": [ 1, 3 ] }, + { "group": "homebooks", "prob": 5 }, + { "group": "default_zombie_items_bags_small", "prob": 50 }, + { "group": "default_zombie_items_pockets", "count": [ 1, 2 ], "prob": 50 }, + { "group": "feral_humans_crystal_drops_telekin", "prob": 30 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "feral_humans_death_drops_teep", + "entries": [ + { "group": "default_zombie_clothes", "prob": 100 }, + { "group": "wallets", "prob": 80 }, + { "group": "homebooks", "prob": 5 }, + { "group": "default_zombie_items_bags_small", "prob": 50 }, + { "group": "tools_common_small", "count": [ 1, 2 ], "prob": 10 }, + { "group": "default_zombie_items_pockets", "count": [ 1, 2 ], "prob": 50 }, + { "group": "feral_humans_crystal_drops_teep", "prob": 30 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "feral_humans_death_drops_porter", + "entries": [ + { "group": "default_zombie_clothes", "prob": 100 }, + { "group": "wallets", "prob": 80 }, + { "group": "homebooks", "prob": 5 }, + { "group": "default_zombie_items_bags_small", "prob": 50 }, + { "group": "tools_common_small", "count": [ 1, 2 ], "prob": 10 }, + { "group": "default_zombie_items_pockets", "count": [ 1, 2 ], "prob": 50 }, + { "group": "feral_humans_crystal_drops_porter", "prob": 30 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "feral_humans_death_drops_vita", + "entries": [ + { "group": "default_zombie_clothes", "prob": 100 }, + { "group": "wallets", "prob": 80 }, + { "item": "knee_pads", "damage": [ 0, 4 ], "prob": 3 }, + { "group": "homebooks", "prob": 5 }, + { "item": "thermos", "prob": 5 }, + { "group": "default_zombie_items_bags_small", "prob": 50 }, + { "group": "default_zombie_items_pockets", "count": [ 1, 2 ], "prob": 50 }, + { "group": "feral_humans_crystal_drops_vita", "prob": 30 } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "feral_humans_crystal_drops_bio", + "entries": [ { "item": "matrix_crystal_drained", "prob": 70 }, { "item": "matrix_crystal_biokinesis", "prob": 30 } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "feral_humans_crystal_drops_clair", + "entries": [ { "item": "matrix_crystal_drained", "prob": 70 }, { "item": "matrix_crystal_clairsentience", "prob": 30 } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "feral_humans_crystal_drops_pyro", + "entries": [ { "item": "matrix_crystal_drained", "prob": 70 }, { "item": "matrix_crystal_pyrokinesis", "prob": 30 } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "feral_humans_crystal_drops_telekin", + "entries": [ { "item": "matrix_crystal_drained", "prob": 70 }, { "item": "matrix_crystal_telekinesis", "prob": 30 } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "feral_humans_crystal_drops_teep", + "entries": [ { "item": "matrix_crystal_drained", "prob": 70 }, { "item": "matrix_crystal_telepathy", "prob": 30 } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "feral_humans_crystal_drops_porter", + "entries": [ { "item": "matrix_crystal_drained", "prob": 70 }, { "item": "matrix_crystal_teleportation", "prob": 30 } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "feral_humans_crystal_drops_vita", + "entries": [ { "item": "matrix_crystal_drained", "prob": 70 }, { "item": "matrix_crystal_vitakinesis", "prob": 30 } ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "feral_scientists_death_drops_psychic", + "entries": [ + { "item": "scalpel", "prob": 100, "damage": [ 1, 3 ] }, + { "item": "psionic_serum_base", "prob": 40, "container-item": "flask_glass" }, + { "group": "lab_shoes", "damage": [ 1, 4 ] }, + { "group": "lab_torso", "damage": [ 1, 4 ] }, + { "group": "lab_pants", "damage": [ 1, 4 ] }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { "group": "wallets", "damage": [ 1, 4 ] }, + { + "collection": [ + { "group": "harddrugs", "prob": 25 }, + { "group": "psi_lab", "prob": 65 }, + { "item": "lab_postit_psi", "prob": 15 }, + { "group": "electronics", "prob": 40 }, + { "group": "radio", "prob": 15 }, + { "group": "textbooks", "prob": 25 }, + { "group": "feral_humans_crystal_drops_telekin", "prob": 50 }, + { "group": "feral_humans_crystal_drops_teep", "prob": 50 }, + { "group": "collection_force_field_and_note", "prob": 2 } + ] + }, + { "group": "wallets_phavian", "damage": [ 1, 4 ], "prob": 15 } + ] + }, + { + "id": "feral_security_death_drops_psychic", + "type": "item_group", + "subtype": "collection", + "magazine": 100, + "ammo": 20, + "entries": [ + { "item": "heavy_flashlight", "prob": 75, "damage": [ 2, 4 ] }, + { "item": "tazer", "prob": 50, "damage": [ 2, 4 ] }, + { "item": "grenade_inferno", "prob": 20 }, + { "group": "cop_gloves", "prob": 30, "damage": [ 1, 4 ] }, + { "group": "security_pants", "damage": [ 1, 4 ] }, + { "group": "security_shoes", "prob": 70, "damage": [ 1, 4 ] }, + { "group": "security_torso", "prob": 70, "damage": [ 1, 4 ] }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { "group": "clothing_glasses", "prob": 5 }, + { "group": "clothing_watch", "prob": 5 }, + { "group": "wallets", "damage": [ 1, 4 ] }, + { "group": "feral_humans_crystal_drops_bio", "prob": 25 }, + { "group": "feral_humans_crystal_drops_clair", "prob": 25 }, + { "group": "feral_humans_crystal_drops_vita", "prob": 25 }, + { "group": "dist_shield_belts", "prob": 25, "damage": [ 1, 4 ] } + ] + }, + { + "id": "feral_security_captain_death_drops_psychic", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "item": "grenade_inferno", "prob": 20 }, + { "group": "cop_gloves", "prob": 30, "damage": [ 1, 4 ] }, + { "group": "security_pants", "damage": [ 1, 4 ] }, + { "group": "security_shoes", "prob": 70, "damage": [ 1, 4 ] }, + { "group": "security_torso", "prob": 70, "damage": [ 1, 4 ] }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { "group": "clothing_glasses", "prob": 5 }, + { "group": "clothing_watch", "prob": 5 }, + { "group": "wallets", "damage": [ 1, 4 ] }, + { "group": "feral_humans_crystal_drops_bio", "prob": 40 }, + { "group": "feral_humans_crystal_drops_clair", "prob": 40 }, + { "group": "feral_humans_crystal_drops_vita", "prob": 25 }, + { "item": "phavian_psionic_martial_power_book", "prob": 8 }, + { "group": "dist_psionic_shield_belts", "prob": 60, "damage": [ 1, 4 ] }, + { "item": "id_science_visitor_phavian", "prob": 33 } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/itemgroups/lore.json b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/lore.json new file mode 100644 index 000000000..cc69590a0 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/lore.json @@ -0,0 +1,26 @@ +[ + { + "id": "lab_files_psi", + "type": "item_group", + "subtype": "distribution", + "items": [ { "item": "lab_postit_portal", "prob": 3 }, { "item": "lab_postit_psi", "prob": 3 } ] + }, + { + "id": "dist_lab_file_phavian_memo", + "type": "item_group", + "subtype": "distribution", + "items": [ { "item": "lab_file_phavian_memo_item", "prob": 1 } ] + }, + { + "id": "dist_lab_file_matrix_research", + "type": "item_group", + "subtype": "distribution", + "items": [ { "item": "lab_file_matrix_research_item", "prob": 1 } ] + }, + { + "id": "dist_lab_file_phavian_internal", + "type": "item_group", + "subtype": "distribution", + "items": [ { "item": "lab_file_phavian_memo_item", "prob": 1 }, { "item": "lab_file_matrix_research_item", "prob": 3 } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/itemgroups/matrix_materials.json b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/matrix_materials.json new file mode 100644 index 000000000..c33f5abdd --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/matrix_materials.json @@ -0,0 +1,162 @@ +[ + { + "type": "item_group", + "subtype": "distribution", + "id": "dist_matrix_crystals", + "items": [ + [ "matrix_crystal_biokinesis", 10 ], + [ "matrix_crystal_clairsentience", 10 ], + [ "matrix_crystal_pyrokinesis", 10 ], + [ "matrix_crystal_telekinesis", 10 ], + [ "matrix_crystal_telepathy", 10 ], + [ "matrix_crystal_teleportation", 10 ], + [ "matrix_crystal_vitakinesis", 10 ], + [ "matrix_crystal_coruscating", 1 ] + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "dist_matrix_crystals_rare", + "items": [ + [ "null", 50 ], + [ "matrix_crystal_biokinesis", 5 ], + [ "matrix_crystal_clairsentience", 5 ], + [ "matrix_crystal_pyrokinesis", 5 ], + [ "matrix_crystal_telekinesis", 5 ], + [ "matrix_crystal_telepathy", 5 ], + [ "matrix_crystal_teleportation", 5 ], + [ "matrix_crystal_vitakinesis", 5 ], + [ "matrix_crystal_coruscating", 1 ] + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "dist_matrix_crystals_50_50", + "items": [ + [ "matrix_crystal_drained", 7 ], + [ "matrix_crystal_biokinesis", 1 ], + [ "matrix_crystal_clairsentience", 1 ], + [ "matrix_crystal_pyrokinesis", 1 ], + [ "matrix_crystal_telekinesis", 1 ], + [ "matrix_crystal_telepathy", 1 ], + [ "matrix_crystal_teleportation", 1 ], + [ "matrix_crystal_vitakinesis", 1 ] + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "collection_matrix_dust", + "items": [ + { "item": "matrix_crystal_biokin_dust", "prob": 30, "container-item": "test_tube" }, + { "item": "matrix_crystal_clair_dust", "prob": 30, "container-item": "test_tube" }, + { "item": "matrix_crystal_pyrokin_dust", "prob": 30, "container-item": "test_tube" }, + { "item": "matrix_crystal_telekin_dust", "prob": 30, "container-item": "test_tube" }, + { "item": "matrix_crystal_telepath_dust", "prob": 30, "container-item": "test_tube" }, + { "item": "matrix_crystal_teleport_dust", "prob": 30, "container-item": "test_tube" }, + { "item": "matrix_crystal_vitakin_dust", "prob": 30, "container-item": "test_tube" }, + { "item": "matrix_crystal_drained_dust", "prob": 80, "container-item": "test_tube" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "distribution_matrix_dust", + "items": [ + { "item": "matrix_crystal_biokin_dust", "prob": 1, "container-item": "test_tube" }, + { "item": "matrix_crystal_clair_dust", "prob": 1, "container-item": "test_tube" }, + { "item": "matrix_crystal_pyrokin_dust", "prob": 1, "container-item": "test_tube" }, + { "item": "matrix_crystal_telekin_dust", "prob": 1, "container-item": "test_tube" }, + { "item": "matrix_crystal_telepath_dust", "prob": 1, "container-item": "test_tube" }, + { "item": "matrix_crystal_teleport_dust", "prob": 1, "container-item": "test_tube" }, + { "item": "matrix_crystal_vitakin_dust", "prob": 1, "container-item": "test_tube" }, + { "item": "matrix_crystal_drained_dust", "prob": 1, "container-item": "test_tube" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "matrix_crystal_biokin_dust_group", + "items": [ + { "item": "matrix_crystal_biokin_dust", "prob": 3, "container-item": "test_tube" }, + { "item": "matrix_crystal_biokin_dust_refined", "prob": 1, "container-item": "test_tube" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "matrix_crystal_clair_dust_group", + "items": [ + { "item": "matrix_crystal_clair_dust", "prob": 3, "container-item": "test_tube" }, + { "item": "matrix_crystal_clair_dust_refined", "prob": 1, "container-item": "test_tube" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "matrix_crystal_pyrokin_dust_group", + "items": [ + { "item": "matrix_crystal_pyrokin_dust", "prob": 3, "container-item": "test_tube" }, + { "item": "matrix_crystal_pyrokin_dust_refined", "prob": 1, "container-item": "test_tube" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "matrix_crystal_telekin_dust_group", + "items": [ + { "item": "matrix_crystal_telekin_dust", "prob": 3, "container-item": "test_tube" }, + { "item": "matrix_crystal_telekin_dust_refined", "prob": 1, "container-item": "test_tube" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "matrix_crystal_telepath_dust_group", + "items": [ + { "item": "matrix_crystal_telepath_dust", "prob": 3, "container-item": "test_tube" }, + { "item": "matrix_crystal_telepath_dust_refined", "prob": 1, "container-item": "test_tube" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "matrix_crystal_teleport_dust_group", + "items": [ + { "item": "matrix_crystal_teleport_dust", "prob": 3, "container-item": "test_tube" }, + { "item": "matrix_crystal_teleport_dust_refined", "prob": 1, "container-item": "test_tube" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "matrix_shard_group", + "items": [ { "item": "matrix_shard", "prob": 1 } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "matrix_crystal_vitakin_dust_group", + "items": [ + { "item": "matrix_crystal_vitakin_dust", "prob": 3, "container-item": "test_tube" }, + { "item": "matrix_crystal_vitakin_dust_refined", "prob": 1, "container-item": "test_tube" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "matrix_crystal_drained_dust", + "items": [ + { "item": "matrix_crystal_drained_dust", "prob": 1, "container-item": "test_tube" }, + { "item": "matrix_crystal_drained_dust_refined", "prob": 1, "container-item": "test_tube" } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "matrix_crystal_drained_group", + "items": [ [ "matrix_crystal_drained", 50 ], [ "null", 50 ] ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/itemgroups/matrix_technology_labs.json b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/matrix_technology_labs.json new file mode 100644 index 000000000..e8126c964 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/matrix_technology_labs.json @@ -0,0 +1,149 @@ +[ + { + "type": "item_group", + "subtype": "distribution", + "id": "psi_lab", + "items": [ + { "item": "water_clean", "prob": 150, "charges-min": 1, "container-item": "bottle_plastic", "sealed": false }, + { "item": "ether", "prob": 50, "charges-min": 100 }, + { "item": "chem_aluminium_powder", "prob": 25, "container-item": "flask_glass" }, + { "item": "chem_zinc_powder", "prob": 25, "container-item": "flask_glass" }, + { "group": "distribution_matrix_dust", "prob": 80 }, + { "item": "laptop", "prob": 10, "charges": [ 0, 500 ] }, + { "item": "eink_tablet_pc", "prob": 20, "charges": [ 0, 100 ] }, + { "item": "memory_card_unread", "prob": 50 }, + { "item": "file", "prob": 50 }, + { "item": "camera_pro", "prob": 20 }, + { "item": "deck_of_cards", "prob": 15 }, + { "item": "magic_8_ball", "prob": 10 }, + { "item": "cards_magic", "prob": 5 }, + { "group": "psi_testing_materials", "prob": 50 }, + { "item": "apron_plastic", "prob": 30 }, + { "item": "apron_cotton", "prob": 10 }, + { "item": "chemistry_set", "prob": 4, "charges": [ 0, 500 ] }, + { "item": "salt_water", "prob": 20, "charges-min": 1 }, + { "item": "usb_drive", "prob": 5 }, + { "item": "wrapped_rad_badge", "prob": 10 }, + { "item": "rad_monitor", "prob": 2, "charges": [ 0, 50 ] }, + { "item": "chem_sulphuric_acid", "prob": 20, "container-item": "bottle_glass" }, + { "item": "chem_muriatic_acid", "prob": 15, "container-item": "bottle_glass" }, + { "item": "chem_nitric_acid", "prob": 15, "container-item": "bottle_glass" }, + { "item": "mortar_pestle", "prob": 20 }, + { "item": "blindfold", "prob": 10 }, + { "item": "syringe", "prob": 12 }, + { "item": "matrix_crystal_drained", "prob": 15 }, + { "group": "dist_matrix_crystals", "prob": 5 }, + { "item": "matrix_channeling_tool", "prob": 4 }, + { "item": "manual_meditation", "prob": 20 }, + { "item": "manual_meditation_int", "prob": 12 }, + { "item": "manual_psionics_advan", "prob": 4 }, + { "item": "phavian_report_psionic_drain", "prob": 3 }, + { "group": "psionic_recipes_beginner", "prob": 5 }, + { "group": "psionic_recipes_tools", "prob": 5 }, + { "group": "psionic_recipes_medicine", "prob": 2 }, + { "group": "psionic_recipes_powers", "prob": 2 }, + { "group": "psionic_recipes_advanced", "prob": 1 } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "dist_matrix_tools", + "items": [ [ "null", 50 ], [ "matrix_channeling_tool", 25 ], [ "matrix_aligning_tool", 10 ] ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "dist_shield_belts", + "items": [ + { "item": "psionic_shield_belt_broken", "prob": 3, "charges": [ 0, 15 ] }, + { "item": "psionic_shield_belt", "prob": 1, "charges": [ 0, 90 ] } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "dist_fire_shield_belts", + "items": [ + { "item": "psionic_fire_shield_belt_broken", "prob": 3, "charges": [ 0, 15 ] }, + { "item": "psionic_fire_shield_belt", "prob": 1, "charges": [ 0, 300 ] } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "dist_pulse_rifles_heavy_prototype", + "items": [ { "item": "mom_pulse_rifle", "prob": 1 }, { "item": "mom_pulse_rifle_prototype", "prob": 4 } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "dist_psionic_shield_belts", + "groups": [ [ "dist_fire_shield_belts", 1 ], [ "dist_shield_belts", 1 ] ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "collection_force_field_and_note", + "items": [ { "item": "force_field_generator", "prob": 1 }, { "item": "lab_file_OS647_P_item", "prob": 1 } ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "psi_lab_no_recipes", + "items": [ + { "item": "water_clean", "prob": 150, "charges-min": 1, "container-item": "bottle_plastic", "sealed": false }, + { "item": "ether", "prob": 50, "charges-min": 100 }, + { "item": "chem_aluminium_powder", "prob": 25, "container-item": "flask_glass" }, + { "item": "chem_zinc_powder", "prob": 25, "container-item": "flask_glass" }, + { "group": "distribution_matrix_dust", "prob": 80 }, + { "item": "laptop", "prob": 10, "charges": [ 0, 500 ] }, + { "item": "eink_tablet_pc", "prob": 20, "charges": [ 0, 100 ] }, + { "item": "memory_card_unread", "prob": 50 }, + { "item": "file", "prob": 50 }, + { "item": "camera_pro", "prob": 20 }, + { "item": "deck_of_cards", "prob": 15 }, + { "item": "magic_8_ball", "prob": 10 }, + { "item": "cards_magic", "prob": 5 }, + { "group": "psi_testing_materials", "prob": 50 }, + { "item": "chemistry_set", "prob": 4, "charges": [ 0, 500 ] }, + { "item": "apron_plastic", "prob": 30 }, + { "item": "apron_cotton", "prob": 10 }, + { "item": "salt_water", "prob": 20, "charges-min": 1 }, + { "item": "usb_drive", "prob": 5 }, + { "item": "wrapped_rad_badge", "prob": 10 }, + { "item": "rad_monitor", "prob": 2, "charges": [ 0, 50 ] }, + { "item": "chem_sulphuric_acid", "prob": 20, "container-item": "bottle_glass" }, + { "item": "chem_muriatic_acid", "prob": 15, "container-item": "bottle_glass" }, + { "item": "chem_nitric_acid", "prob": 15, "container-item": "bottle_glass" }, + { "item": "mortar_pestle", "prob": 20 }, + { "item": "blindfold", "prob": 10 }, + { "item": "syringe", "prob": 12 }, + { "item": "matrix_crystal_drained", "prob": 15 } + ] + }, + { + "id": "psi_testing_materials", + "type": "item_group", + "subtype": "distribution", + "items": [ + { "item": "cards_zener", "prob": 30 }, + { "item": "file", "prob": 50 }, + { "item": "deck_of_cards", "prob": 30 }, + { "item": "pen", "prob": 30 }, + { "item": "blue_pen", "prob": 20 }, + { "item": "green_pen", "prob": 20 }, + { "item": "red_pen", "prob": 30 }, + { "item": "envelope", "prob": 30 }, + { "item": "paper", "prob": 40 }, + { "item": "blindfold", "prob": 20 }, + { "item": "coin_quarter", "prob": 5 }, + { "item": "coin_dime", "prob": 2 }, + { "item": "coin_penny", "prob": 3 }, + { "item": "camera", "prob": 2, "charges": [ 0, 150 ] }, + { "item": "camera", "container-item": "camera_bag", "prob": 1, "charges": [ 0, 150 ] }, + { "item": "camera_pro", "prob": 1, "charges": [ 0, 150 ] }, + { "item": "camera_pro", "container-item": "camera_bag", "prob": 1, "charges": [ 0, 150 ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/itemgroups/recipes.json b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/recipes.json new file mode 100644 index 000000000..f27c7edb5 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/recipes.json @@ -0,0 +1,54 @@ +[ + { + "type": "item_group", + "subtype": "distribution", + "id": "psionic_recipes_beginner", + "items": [ + [ "schematics_matrix_crystal_ground", 3 ], + [ "schematics_reactant_liquid_base", 3 ], + [ "schematics_matrix_channeling", 2 ], + [ "schematics_matrix_aligning", 1 ] + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "psionic_recipes_advanced", + "items": [ + [ "phavian_report_psionic_drain", 15 ], + [ "schematics_noetic_resilience", 5 ], + [ "schematics_instability_remover", 5 ], + [ "schematics_psionic_purifier", 1 ] + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "psionic_recipes_powers", + "items": [ [ "phavian_psionic_martial_power_book", 1 ] ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "psionic_recipes_weapons", + "items": [ [ "schematics_grenade_inferno", 1 ] ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "psionic_recipes_armor", + "items": [ [ "schematics_anchoring_crown", 1 ] ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "psionic_recipes_tools", + "items": [ [ "schematics_everglow_lamp", 1 ] ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "psionic_recipes_medicine", + "items": [ [ "schematics_instability_remover", 5 ], [ "schematics_noetic_resilience", 3 ], [ "schematics_psionic_purifier", 1 ] ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/itemgroups/zombie_deathdrops.json b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/zombie_deathdrops.json new file mode 100644 index 000000000..eeb5f2109 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/itemgroups/zombie_deathdrops.json @@ -0,0 +1,24 @@ +[ + { + "id": "mon_zombie_scientist_phavian_death_drops", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "group": "lab_shoes", "damage": [ 1, 4 ] }, + { "group": "lab_torso", "damage": [ 1, 4 ] }, + { "group": "lab_pants", "damage": [ 1, 4 ] }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { + "collection": [ + { "group": "dissection", "prob": 25 }, + { "group": "electronics", "prob": 40 }, + { "group": "radio", "prob": 15 }, + { "group": "psi_lab", "prob": 60 }, + { "group": "textbooks", "prob": 25 }, + { "item": "lab_postit_psi", "prob": 15 } + ] + }, + { "group": "wallets_phavian", "damage": [ 1, 4 ], "prob": 5 } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/ammo.json b/data/Mainline_mods/Mods/MindOverMatter/items/ammo.json new file mode 100644 index 000000000..3ff8d8fc4 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/ammo.json @@ -0,0 +1,50 @@ +[ + { + "type": "ammunition_type", + "id": "mom_pulse_rifle_ammo", + "name": "Pulse rifle charge", + "default": "mom_pulse_rifle_ammo" + }, + { + "type": "ammunition_type", + "id": "psionic_charge_power", + "name": "matrix charge", + "default": "psionic_charge_power" + }, + { + "id": "mom_pulse_rifle_ammo", + "type": "AMMO", + "name": { "str_sp": "LV429 pulse shot" }, + "description": "A charge for the LV429.", + "weight": "1 g", + "volume": "1 ml", + "price": 160, + "price_postapoc": 800, + "material": [ "superalloy", "steel" ], + "symbol": "=", + "color": "red", + "count": 1, + "stack_size": 1, + "ammo_type": "mom_pulse_rifle_ammo", + "range": 40, + "dispersion": 0, + "recoil": 0, + "damage": { "damage_type": "heat", "amount": 55, "armor_penetration": 5 } + }, + { + "type": "AMMO", + "id": "psionic_charge_power", + "category": "spare_parts", + "price": 1000, + "name": { "str_sp": "matrix charge" }, + "symbol": "=", + "color": "white", + "description": "Power charge for matrix technology.", + "flags": [ "TRADER_AVOID", "ZERO_WEIGHT" ], + "weight": "0 mg", + "volume": "0 ml", + "ammo_type": "psionic_charge_power", + "material": [ "nether_crystal" ], + "count": 100 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/armor/belt.json b/data/Mainline_mods/Mods/MindOverMatter/items/armor/belt.json new file mode 100644 index 000000000..01051601d --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/armor/belt.json @@ -0,0 +1,177 @@ +[ + { + "id": "psionic_shield_belt", + "type": "TOOL_ARMOR", + "name": { "str": "shield belt" }, + "description": "A simple synthetic fabric belt with a box to the right of the belt loop. The box has a toggleable switch and a stylized shield with Ψ and the XEDRA logo inside it.", + "weight": "350 g", + "volume": "500 ml", + "price": 10000, + "price_postapoc": 500, + "material": [ "nylon", "steel", "nether_crystal" ], + "symbol": "[", + "looks_like": "leather_belt", + "color": "yellow", + "material_thickness": 1.5, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "psionic_charge_power": 90 } } ], + "use_action": [ + { + "type": "transform", + "msg": "You flip the switch on the box and a red LED lights up.", + "target": "psionic_shield_belt_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The switch clicks but nothing happens.", + "need_worn": true, + "menu_text": "Flip the switch" + } + ], + "flags": [ "BELTED", "OVERSIZE", "NONCONDUCTIVE", "NO_REPAIR", "COMBAT_TOGGLEABLE", "NO_UNLOAD" ], + "armor": [ + { + "encumbrance": 2, + "coverage": 50, + "covers": [ "torso" ], + "specifically_covers": [ "torso_waist" ], + "volume_encumber_modifier": 0.35 + } + ], + "relic_data": { "charge_info": { "recharge_type": "periodic", "time": "60 s", "regenerate_ammo": true } }, + "//": "Recharge time is 60 seconds due to bug #48019, making it actually 30 seconds. Reduce to 30 seconds if that ever gets fixed." + }, + { + "id": "psionic_shield_belt_on", + "type": "TOOL_ARMOR", + "name": { "str": "shield belt (active)", "str_pl": "shield belts (active)" }, + "copy-from": "psionic_shield_belt", + "turns_per_charge": 1, + "revert_to": "psionic_shield_belt", + "use_action": [ + { + "ammo_scale": 0, + "target": "psionic_shield_belt", + "msg": "You flip the switch on the box and the red LED turns off.", + "menu_text": "Flip the switch", + "type": "transform" + } + ], + "extend": { "flags": [ "NO_TAKEOFF" ] }, + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ALWAYS", + "values": [ + { "value": "ARMOR_CUT", "add": -15 }, + { "value": "ARMOR_BASH", "add": -8 }, + { "value": "ARMOR_STAB", "add": -20 }, + { "value": "ARMOR_BULLET", "add": -40 } + ] + } + ] + } + }, + { + "id": "psionic_shield_belt_broken", + "type": "TOOL_ARMOR", + "name": { "str": "shield belt" }, + "copy-from": "psionic_shield_belt", + "description": "A simple synthetic fabric belt with a box to the right of the belt loop. The box has a toggleable switch and a stylized shield with Ψ and the XEDRA logo inside it. It also has a large crack across it and rattles when moved.", + "use_action": [ + { + "type": "transform", + "msg": "You flip the switch on the box, but nothing happens.", + "target": "psionic_shield_belt_broken", + "need_worn": true, + "menu_text": "Flip the switch" + } + ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "psionic_charge_power": 90 } } ], + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "psionic_fire_shield_belt", + "type": "TOOL_ARMOR", + "name": { "str": "suppression belt" }, + "description": "A simple synthetic fabric belt with a box to the right of the belt loop. The box has a toggleable switch and a stylized flame with a large circle and line superimposed over it and a Ψ behind the XEDRA logo inside it.", + "weight": "350 g", + "volume": "500 ml", + "price": 10000, + "price_postapoc": 500, + "material": [ "nylon", "steel", "nether_crystal" ], + "symbol": "[", + "looks_like": "leather_belt", + "color": "red", + "material_thickness": 1.5, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "psionic_charge_power": 300 } } ], + "use_action": [ + { + "type": "transform", + "msg": "You flip the switch on the box and a red LED lights up.", + "target": "psionic_fire_shield_belt_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The switch clicks but nothing happens.", + "need_worn": true, + "menu_text": "Flip the switch" + } + ], + "flags": [ "BELTED", "OVERSIZE", "NONCONDUCTIVE", "NO_REPAIR", "COMBAT_TOGGLEABLE", "NO_UNLOAD" ], + "armor": [ + { + "encumbrance": 2, + "coverage": 50, + "covers": [ "torso" ], + "specifically_covers": [ "torso_waist" ], + "volume_encumber_modifier": 0.35 + } + ], + "relic_data": { "charge_info": { "recharge_type": "periodic", "time": "30 s", "regenerate_ammo": true } }, + "//": "Recharge time is 30 seconds due to bug #48019, making it actually 15 seconds. Reduce to 15 seconds if that ever gets fixed." + }, + { + "id": "psionic_fire_shield_belt_on", + "type": "TOOL_ARMOR", + "name": { "str": "suppression belt (active)", "str_pl": "suppression belts (active)" }, + "copy-from": "psionic_fire_shield_belt", + "turns_per_charge": 1, + "revert_to": "psionic_fire_shield_belt", + "use_action": [ + { + "ammo_scale": 0, + "target": "psionic_fire_shield_belt", + "msg": "You flip the switch on the box and the red LED turns off.", + "menu_text": "Flip the switch", + "type": "transform" + } + ], + "extend": { "flags": [ "NO_TAKEOFF" ] }, + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "ARMOR_HEAT", "add": -80 }, { "value": "CLIMATE_CONTROL_CHILL", "add": 400 } ] + } + ] + } + }, + { + "id": "psionic_fire_shield_belt_broken", + "type": "TOOL_ARMOR", + "copy-from": "psionic_fire_shield_belt", + "name": { "str": "suppression belt" }, + "description": "A simple synthetic fabric belt with a box to the right of the belt loop. The box has a toggleable switch and a stylized flame with a large circle and line superimposed over it and a Ψ behind the XEDRA logo inside it. It also has a large crack across it and rattles when moved.", + "use_action": [ + { + "type": "transform", + "msg": "You flip the switch on the box, but nothing happens.", + "target": "psionic_fire_shield_belt_broken", + "need_worn": true, + "menu_text": "Flip the switch" + } + ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "psionic_charge_power": 300 } } ], + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/armor/head.json b/data/Mainline_mods/Mods/MindOverMatter/items/armor/head.json new file mode 100644 index 000000000..5b92e90a1 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/armor/head.json @@ -0,0 +1,20 @@ +[ + { + "id": "psionic_anchoring_crown", + "type": "ARMOR", + "name": { "str": "anchoring crown" }, + "description": "A thin steel circlet studded with chunks of matrix crystal. Your skin prickles slightly where the crown touches it.", + "weight": "80 g", + "volume": "100 ml", + "price": 5000, + "price_postapoc": 25, + "material": [ { "type": "steel", "portion": 9 }, { "type": "nether_crystal" } ], + "looks_like": "crown_golden", + "symbol": "[", + "color": "blue", + "material_thickness": 1, + "flags": [ "DIMENSIONAL_ANCHOR" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "mutations": [ "ANCHORCROWN_NOSPELL" ] } ] }, + "armor": [ { "encumbrance": 1, "coverage": 20, "covers": [ "head" ], "specifically_covers": [ "head_crown" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/books.json b/data/Mainline_mods/Mods/MindOverMatter/items/books.json new file mode 100644 index 000000000..d1ca7427d --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/books.json @@ -0,0 +1,147 @@ +[ + { + "id": "manual_meditation", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Meditation and You", "str_pl": "copies of Meditation and You" }, + "description": "A description of simple meditation and breathing techniques, intended for a beginner.", + "weight": "1454 g", + "volume": "1250 ml", + "price": 2500, + "price_postapoc": 150, + "melee_damage": { "bash": 3 }, + "material": [ "paper" ], + "symbol": "?", + "looks_like": "book_nonf_hard_psych_moodalm", + "color": "white", + "skill": "metaphysics", + "required_level": 0, + "max_level": 0, + "intelligence": 8, + "time": "15 m", + "fun": 1, + "variants": [ + { + "id": "manual_meditation_1", + "name": { "str": "Zen Mind, Beginner's Mind", "str_pl": "copies of Zen Mind, Beginner's Mind" }, + "description": "This is a transcription of lectures given by Suzuki Shunryū, a Buddhist monk who founded the first Zen Buddhist monastery in the United States, containing discussion about Zen meditation and practice.", + "weight": 1 + }, + { + "id": "manual_meditation_2", + "name": { + "str": "How to Meditate: A Practical Guide to Making Friends with Your Mind", + "str_pl": "copies of How to Meditate: A Practical Guide to Making Friends with Your Mind" + }, + "description": "A book on meditation written for a general audience, containing simple techniques on breathing and mindfulness.", + "weight": 1 + }, + { + "id": "manual_meditation_3", + "name": { + "str": "The Wandering Mind: What Medieval Monks Tell Us about Distraction", + "str_pl": "copies of The Wandering Mind: What Medieval Monks Tell Us about Distraction" + }, + "description": "A history of monastic attempts at finding calm and peace in the midst of a profane world. There are far fewer daily distractions now than pre-Cataclysm but there's still some useful techniques you could gain here.", + "weight": 1 + }, + { + "id": "manual_meditation_4", + "name": { + "str": "The Miracle of Mindfulness: An Introduction to the Practice of Meditation", + "str_pl": "copies of The Miracle of Mindfulness: An Introduction to the Practice of Meditation" + }, + "description": "A translation of a letter written by Thich Nhat Hanh to collegues in Viet Nam, this book focues on mindfulness and breathwork.", + "weight": 1 + } + ] + }, + { + "id": "manual_meditation_int", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Secrets of the Zen Masters", "str_pl": "copies of Secrets of the Zen Masters" }, + "description": "This book purports to contain hidden tips that will make you serene and calm in the face of the most grievous calamities. Cataclysms, one might say.", + "copy-from": "manual_meditation", + "//": "Advanced meditation is controversial but I have to make the distinction somewhere.", + "required_level": 3, + "max_level": 3, + "intelligence": 9, + "time": "20 m", + "fun": 0, + "variants": [ + { + "id": "manual_meditation_int_1", + "name": { + "str": "The Mind Illuminated: A Complete Meditation Guide Integrating Buddhist Wisdom and Brain Science for Greater Mindfulness", + "str_pl": "copies of The Mind Illuminated: A Complete Meditation Guide Integrating Buddhist Wisdom and Brain Science for Greater Mindfulness" + }, + "description": "Written by a neuroscientist and meditator pratitioner, this book offers a ten-step meditation program that combines science with traditional meditation techniques.", + "weight": 1 + }, + { + "id": "manual_meditation_int_2", + "name": { + "str": "Mastering the Core Teachings of the Buddha: An Unusually Hardcore Dharma Book", + "str_pl": "copies of Mastering the Core Teachings of the Buddha: An Unusually Hardcore Dharma Book" + }, + "description": "This book argues that meditation is not an eternal progression but can be mastered just like any other skill, and it will tell you how to do it.", + "weight": 1 + }, + { + "id": "manual_meditation_int_3", + "name": { + "str": "Not Always So: Practicing the True Spirit of Zen", + "str_pl": "copies of Not Always So: Practicing the True Spirit of Zen" + }, + "description": "A continuation of the lessons expounded on in \"Zen Mind, Beginner's Mind\", this book contains a myriad of parables and koans to help the student grasp the nature of meditation.", + "weight": 1 + } + ] + }, + { + "id": "manual_psionics_advan", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Lab Journal-Otomo", "str_pl": "copies of Lab Journal-Otomo" }, + "description": "This notebook is mostly a series of fanciful speculations about something the author alternately calls \"Matrix Mechanics,\", \"Dimensional Metaphysics,\" or \"Netherium Mathematics,\" sometimes using more than one in the same sentence. Most of it is incoherent, but there is some experimental data about \"Conscious redirection of nether energy\" that catches your eye.", + "copy-from": "recipe_lab_cvd", + "skill": "metaphysics", + "required_level": 4, + "max_level": 4, + "intelligence": 12, + "time": "35 m", + "fun": -1 + }, + { + "id": "phavian_report_psionic_drain", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Report: Drain Channeling Protocol PGS38", "str_pl": "copies of Report: Drain Channeling Protocol PGS38" }, + "description": "A formal report on a process to reduce the fatiguing effects of long-term psionic use. It describes a special meditation technique, performed with the aid of a matrix crystal, though it does warn that the process: \"puts extreme stress on the focus object. Further refinement is required.\"", + "copy-from": "recipe_lab_elec", + "skill": "metaphysics", + "required_level": 6, + "max_level": 6, + "intelligence": 12, + "time": "35 m", + "fun": -2 + }, + { + "id": "phavian_psionic_martial_power_book", + "type": "BOOK", + "category": "manuals", + "name": { + "str": "Training Manual: VERDANT HAND Combat Protocol", + "str_pl": "copies of Training Manual: VERDANT HAND Combat Protocol" + }, + "description": "A formal report with a mostly-blank cover page, stamped with the Project PHAVIAN logo at the top and a red \"VERDANT HAND - EYES ONLY\" centered underneath. Contrary to your initial assumption, it is not a martial arts training manual. Instead, it describes a series of meditations and visualization exercises designed to \"increase the subject's unarmed combat prowess fivefold\". There are several charts showing the results of a VERDANT HAND combatant against training opponents armed with weapons or firearms at various engagement distances. It's clearly still not as good as just having a rifle, but the data look pretty promising if you can get these exercises down.", + "copy-from": "recipe_lab_elec", + "skill": "unarmed", + "required_level": 2, + "max_level": 3, + "intelligence": 8, + "time": "12 m", + "fun": 1 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/chemicals.json b/data/Mainline_mods/Mods/MindOverMatter/items/chemicals.json new file mode 100644 index 000000000..8571ed28b --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/chemicals.json @@ -0,0 +1,22 @@ +[ + { + "id": "psionic_serum_base", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "name": { "str": "psychoreactive catalyst" }, + "description": "A thick liquid, mixed with ground matrix crystal and ready to be catalyzed. In total darkness, it glows very faintly.", + "material": [ "alien_liquid", "nether_crystal", "water" ], + "weight": "30 g", + "volume": "25 ml", + "charges": 1, + "phase": "liquid", + "price": 10, + "price_postapoc": 1, + "container": "flask_glass", + "flags": [ "TRADER_AVOID" ], + "symbol": "~", + "color": "black", + "freezing_point": -8, + "use_action": [ "POISON" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/clothing/wallets.json b/data/Mainline_mods/Mods/MindOverMatter/items/clothing/wallets.json new file mode 100644 index 000000000..13525e397 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/clothing/wallets.json @@ -0,0 +1,65 @@ +[ + { + "type": "item_group", + "subtype": "collection", + "id": "wallet_phavian_leather_full", + "//": "copy-from: wallet_leather_full ", + "container-item": "wallet_leather", + "on_overflow": "discard", + "items": [ + { "item": "cash_card", "prob": 100, "charges-min": 0, "charges-max": 50000 }, + { "group": "banknotes", "prob": 80, "count": [ 1, 20 ] }, + { "group": "coins", "prob": 80, "count": [ 1, 10 ] }, + { "item": "id_science", "prob": 100 }, + { "item": "id_science_visitor_phavian", "prob": 100 }, + { "item": "id_science_visitor_1", "prob": 15 }, + { "group": "discount_cards", "prob": 40, "count": [ 1, 3 ] }, + { "item": "condom", "prob": 10 }, + { "item": "labmap", "prob": 30 }, + { "item": "wallet_photo", "prob": 20 }, + [ "scorecard", 20 ] + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "wallet_phavian_full", + "//": "copy-from: wallet_full ", + "container-item": "wallet", + "on_overflow": "discard", + "items": [ + { "item": "cash_card", "prob": 100, "charges-min": 0, "charges-max": 50000 }, + { "item": "id_science", "prob": 100 }, + { "item": "id_science_visitor_phavian", "prob": 100 }, + { "item": "id_science_visitor_1", "prob": 15 }, + { "group": "banknotes", "prob": 80, "count": [ 1, 20 ] }, + { "group": "coins", "prob": 80, "count": [ 1, 10 ] }, + { "group": "discount_cards", "prob": 40, "count": [ 1, 3 ] }, + { "item": "condom", "prob": 10 }, + { "item": "labmap", "prob": 20 }, + { "item": "wallet_photo", "prob": 20 }, + [ "scorecard", 20 ] + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "wallet_phavian_stylish_full", + "//": "copy-from: wallet_stylish_full ", + "container-item": "wallet_stylish", + "on_overflow": "discard", + "items": [ + { "item": "id_science", "prob": 100 }, + { "item": "id_science_visitor_phavian", "prob": 100 }, + { "item": "id_science_visitor_1", "prob": 15 }, + { "item": "cash_card", "prob": 100, "charges-min": 10000, "charges-max": 50000 }, + { "group": "banknotes", "prob": 80, "count": [ 1, 20 ] }, + { "group": "coins", "prob": 80, "count": [ 1, 10 ] }, + { "group": "discount_cards", "prob": 60, "count": [ 2, 5 ] }, + { "item": "condom", "prob": 10 }, + { "item": "labmap", "prob": 20 }, + { "item": "wallet_photo", "prob": 20 }, + [ "scorecard", 5 ] + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/comestibles.json b/data/Mainline_mods/Mods/MindOverMatter/items/comestibles.json new file mode 100644 index 000000000..94498725d --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/comestibles.json @@ -0,0 +1,200 @@ +[ + { + "id": "matrix_crystal_biokin_dust_potion", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "name": { "str_sp": "pink crystalline elixir" }, + "description": "Refined matrix crystal mixed directly into water. The liquid has a faint pink glow.", + "material": [ "water" ], + "weight": "255 g", + "volume": "250 ml", + "charges": 1, + "price": 50, + "price_postapoc": 1, + "symbol": "~", + "color": "pink", + "phase": "liquid", + "container": "bottle_plastic", + "sealed": false, + "quench": 50, + "ammo_data": { "ammo_type": "water" }, + "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE", "NO_AUTO_CONSUME" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Drink the concoction.", + "effect_on_conditions": [ "EOC_BIOKIN_POTION" ] + } + }, + { + "id": "matrix_crystal_clair_dust_potion", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "name": { "str_sp": "gray crystalline elixir" }, + "description": "Refined matrix crystal mixed directly into water. The liquid has a faint grayish glow.", + "material": [ "water" ], + "weight": "255 g", + "volume": "250 ml", + "charges": 1, + "price": 50, + "price_postapoc": 1, + "symbol": "~", + "color": "dark_gray", + "phase": "liquid", + "container": "bottle_plastic", + "sealed": false, + "quench": 50, + "ammo_data": { "ammo_type": "water" }, + "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE", "NO_AUTO_CONSUME" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Drink the concoction.", + "effect_on_conditions": [ "EOC_CLAIR_POTION" ] + } + }, + { + "id": "matrix_crystal_pyrokin_dust_potion", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "name": { "str_sp": "red crystalline elixir" }, + "description": "Refined matrix crystal mixed directly into water. The liquid has a faint red glow.", + "material": [ "water" ], + "weight": "255 g", + "volume": "250 ml", + "charges": 1, + "price": 50, + "price_postapoc": 1, + "symbol": "~", + "color": "red", + "phase": "liquid", + "container": "bottle_plastic", + "sealed": false, + "quench": 50, + "ammo_data": { "ammo_type": "water" }, + "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE", "NO_AUTO_CONSUME" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Drink the concoction.", + "effect_on_conditions": [ "EOC_PYROKIN_POTION" ] + } + }, + { + "id": "matrix_crystal_telekin_dust_potion", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "name": { "str_sp": "yellow crystalline elixir" }, + "description": "Refined matrix crystal mixed directly into water. The liquid has a faint yellow glow.", + "material": [ "water" ], + "weight": "255 g", + "volume": "250 ml", + "charges": 1, + "price": 50, + "price_postapoc": 1, + "symbol": "~", + "color": "yellow", + "phase": "liquid", + "container": "bottle_plastic", + "sealed": false, + "quench": 50, + "ammo_data": { "ammo_type": "water" }, + "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE", "NO_AUTO_CONSUME" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Drink the concoction.", + "effect_on_conditions": [ "EOC_TELEKIN_POTION" ] + } + }, + { + "id": "matrix_crystal_telepath_dust_potion", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "name": { "str_sp": "white crystalline elixir" }, + "description": "Refined matrix crystal mixed directly into water. The liquid has a faint white glow.", + "material": [ "water" ], + "weight": "255 g", + "volume": "250 ml", + "charges": 1, + "price": 50, + "price_postapoc": 1, + "symbol": "~", + "color": "white", + "phase": "liquid", + "container": "bottle_plastic", + "sealed": false, + "quench": 50, + "ammo_data": { "ammo_type": "water" }, + "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE", "NO_AUTO_CONSUME" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Drink the concoction.", + "effect_on_conditions": [ "EOC_TELEPATH_POTION" ] + } + }, + { + "id": "matrix_crystal_teleport_dust_potion", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "name": { "str_sp": "blue crystalline elixir" }, + "description": "Refined matrix crystal mixed directly into water. The liquid has a faint blue glow.", + "material": [ "water" ], + "weight": "255 g", + "volume": "250 ml", + "charges": 1, + "price": 50, + "price_postapoc": 1, + "symbol": "~", + "color": "blue", + "phase": "liquid", + "container": "bottle_plastic", + "sealed": false, + "quench": 50, + "ammo_data": { "ammo_type": "water" }, + "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE", "NO_AUTO_CONSUME" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Drink the concoction.", + "effect_on_conditions": [ "EOC_TELEPORT_POTION" ] + } + }, + { + "id": "matrix_crystal_vitakin_dust_potion", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "name": { "str_sp": "green crystalline elixir" }, + "description": "Refined matrix crystal mixed directly into water. The liquid has a faint green glow.", + "material": [ "water" ], + "weight": "255 g", + "volume": "250 ml", + "charges": 1, + "price": 50, + "price_postapoc": 1, + "symbol": "~", + "color": "green", + "phase": "liquid", + "container": "bottle_plastic", + "sealed": false, + "quench": 50, + "ammo_data": { "ammo_type": "water" }, + "flags": [ "EATEN_COLD", "NUTRIENT_OVERRIDE", "NO_AUTO_CONSUME" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Drink the concoction.", + "effect_on_conditions": [ "EOC_VITAKIN_POTION" ] + } + }, + { + "type": "COMESTIBLE", + "id": "alien_tree_1_fruit", + "name": { "str": "alien fruit" }, + "description": "A bluish-green ovoid globule, firm to the touch but looking more like gelatin than something you plucked from a tree. It has a strong acrid odor.", + "weight": "220 g", + "volume": "232 ml", + "color": "magenta", + "spoils_in": "6 hours", + "comestible_type": "FOOD", + "symbol": "%", + "quench": 5, + "calories": 20, + "fun": -6, + "vitamins": [ [ "mutant_toxin", 800 ] ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/files_and_post_it.json b/data/Mainline_mods/Mods/MindOverMatter/items/files_and_post_it.json new file mode 100644 index 000000000..040da8985 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/files_and_post_it.json @@ -0,0 +1,183 @@ +[ + { + "type": "GENERIC", + "id": "lab_postit_psi", + "category": "books", + "symbol": ",", + "color": "white", + "name": { "str": "post-it note" }, + "snippet_category": "lab_postit_psi", + "description": "A bright yellow post-it note.", + "price": 0, + "price_postapoc": 0, + "material": [ "paper" ], + "flags": [ "TRADER_AVOID" ], + "weight": "12 mg", + "volume": "1 ml", + "copy-from": "lab_postit_bio" + }, + { + "type": "GENERIC", + "id": "lab_file_biokinesis_item", + "name": { "str": "report (biokinesis)", "str_pl": "copies of report (biokinesis)" }, + "category": "books", + "description": "A folder full of what appear to be transcripts of experimental results or reports. Most of it is rather trivial, but certain passages catch your eye…", + "snippet_category": "lab_file_biokinesis", + "weight": "15 g", + "to_hit": -3, + "color": "white", + "symbol": ",", + "material": [ "paper" ], + "volume": "50 ml", + "flags": [ "TRADER_AVOID" ], + "copy-from": "file" + }, + { + "type": "GENERIC", + "id": "lab_file_telekinesis_item", + "name": { "str": "report (telekinesis)", "str_pl": "copies of report (telekinesis)" }, + "category": "books", + "description": "A folder full of what appear to be transcripts of experimental results or reports. Most of it is rather trivial, but certain passages catch your eye…", + "snippet_category": "lab_file_telekinesis", + "weight": "15 g", + "to_hit": -3, + "color": "white", + "symbol": ",", + "material": [ "paper" ], + "volume": "50 ml", + "flags": [ "TRADER_AVOID" ], + "copy-from": "file" + }, + { + "type": "GENERIC", + "id": "lab_file_telepathy_item", + "name": { "str": "report (telepathy)", "str_pl": "copies of report (telepathy)" }, + "category": "books", + "description": "A folder full of what appear to be transcripts of experimental results or reports. Most of it is rather trivial, but certain passages catch your eye…", + "snippet_category": "lab_file_telepathy", + "weight": "15 g", + "to_hit": -3, + "color": "white", + "symbol": ",", + "material": [ "paper" ], + "volume": "50 ml", + "flags": [ "TRADER_AVOID" ], + "copy-from": "file" + }, + { + "type": "GENERIC", + "id": "lab_file_vitakinesis_item", + "name": { "str": "report (vitakinesis)", "str_pl": "copies of report (vitakinesis)" }, + "category": "books", + "description": "A folder full of what appear to be transcripts of experimental results or reports. Most of it is rather trivial, but certain passages catch your eye…", + "snippet_category": "lab_file_vitakinesis", + "weight": "15 g", + "to_hit": -3, + "color": "white", + "symbol": ",", + "material": [ "paper" ], + "volume": "50 ml", + "flags": [ "TRADER_AVOID" ], + "copy-from": "file" + }, + { + "type": "GENERIC", + "id": "lab_file_matrix_research_item", + "name": { "str": "report (matrix technology)", "str_pl": "copies of report (matrix technology)" }, + "category": "books", + "description": "A folder full of what appear to be transcripts of experimental results or reports. Most of it is rather trivial, but certain passages catch your eye…", + "snippet_category": "lab_file_matrix_research", + "weight": "15 g", + "to_hit": -3, + "color": "white", + "symbol": ",", + "material": [ "paper" ], + "volume": "50 ml", + "flags": [ "TRADER_AVOID" ], + "copy-from": "file" + }, + { + "type": "GENERIC", + "id": "lab_file_OS647_P_item", + "name": { "str": "OS647-P Proposal Response", "str_pl": "copies of OS647-P Proposal Response" }, + "category": "books", + "description": "A note written on official XEDRA letterhead.", + "snippet_category": "lab_file_OS647_P", + "weight": "15 g", + "to_hit": -3, + "color": "white", + "symbol": ",", + "material": [ "paper" ], + "volume": "50 ml", + "flags": [ "TRADER_AVOID" ], + "copy-from": "file" + }, + { + "type": "GENERIC", + "id": "lab_file_phavian_memo_item", + "name": { "str": "Project PHAVIAN memo", "str_pl": "copies of Project PHAVIAN memo" }, + "category": "books", + "description": "A note written on official XEDRA letterhead.", + "snippet_category": "lab_file_phavian_memo", + "weight": "15 g", + "to_hit": -3, + "color": "white", + "symbol": ",", + "material": [ "paper" ], + "volume": "50 ml", + "flags": [ "TRADER_AVOID" ], + "copy-from": "file" + }, + { + "type": "GENERIC", + "id": "id_science_visitor_phavian", + "symbol": ",", + "color": "red", + "name": { "str": "visitor's pass", "str_pl": "visitor's passes" }, + "copy-from": "card_plastic_abstract", + "description": "A visitor's pass to some sort of facility. The reverse side describes the protocol for using it; this could grant one-time access at a card reader, if you can find one. It also lists the addresses of nearby facilities; activate it to add their locations to your map. There is a prominent symbol stamped on it with the word \"PHAVIAN\" underneath.", + "price": 60000, + "flags": [ "CREDIT_CARD_SHAPED", "SCIENCE_CARD_VISITOR" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "5 g", + "volume": "5 ml", + "longest_side": "84 mm", + "to_hit": -3, + "category": "keys", + "use_action": { + "type": "reveal_map", + "radius": 90, + "message": "You add the facilities to your map.", + "terrain": [ + { "om_terrain": "road", "om_terrain_match_type": "PREFIX" }, + "psi_phavian_lab_blockA0", + "psi_phavian_lab_blockA1", + "psi_phavian_lab_blockB0", + "psi_phavian_lab_blockB1", + "psi_phavian_lab_blockC0", + "psi_phavian_lab_blockC1", + "psi_phavian_lab_blockC2", + "psi_phavian_lab_blockD0", + "psi_phavian_lab_blockD1", + "psi_phavian_lab_blockE0", + "psi_phavian_lab_blockE1", + "psi_phavian_lab_blockA2", + "psi_phavian_lab_blockA3", + "psi_phavian_lab_blockA4", + "psi_phavian_lab_blockB2", + "psi_phavian_lab_blockB3", + "psi_phavian_lab_blockB4", + "psi_phavian_lab_blockC4", + "psi_phavian_lab_blockD2", + "psi_phavian_lab_blockD3", + "psi_phavian_lab_blockD4", + "psi_phavian_lab_blockE2", + "psi_phavian_lab_blockE3", + "psi_phavian_lab_blockE4", + "office_cubical_phavian", + "office_cubical_phavian_basement" + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/matrix_crystals.json b/data/Mainline_mods/Mods/MindOverMatter/items/matrix_crystals.json new file mode 100644 index 000000000..d0f94b7d1 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/matrix_crystals.json @@ -0,0 +1,295 @@ +[ + { + "type": "TOOL", + "id": "matrix_crystal_biokinesis", + "name": { "str_sp": "strange crystal, pink" }, + "description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing pink light in its depths. Holding it, you feel more capable.", + "color": "pink", + "symbol": "+", + "volume": "10 ml", + "weight": "150 g", + "longest_side": "21 mm", + "material": [ "nether_crystal" ], + "looks_like": "art_crystal", + "flags": [ "MATRIX_CRYSTAL_BIOKINESIS" ], + "use_action": { + "type": "effect_on_conditions", + "description": "The pink glow calls to you.", + "effect_on_conditions": [ "EOC_BIOKIN_MATRIX_AWAKENING" ] + } + }, + { + "type": "GENERIC", + "id": "matrix_crystal_biokin_dust", + "name": { "str_sp": "crystalline dust, pink" }, + "description": "A bit of crystalline dust with a faint pink shimmer.", + "color": "pink", + "symbol": "=", + "volume": "1 ml", + "weight": "15 g", + "material": [ "powder_nonflam" ], + "looks_like": "material_quicklime" + }, + { + "type": "GENERIC", + "id": "matrix_crystal_biokin_dust_refined", + "name": { "str_sp": "refined matrix crystal powder, pink" }, + "description": "Concentrated matrix crystal dust. It glitters pink even in complete darkness.", + "color": "pink", + "symbol": "=", + "volume": "1 ml", + "weight": "5 g", + "material": [ "powder_nonflam" ], + "looks_like": "material_quicklime" + }, + { + "type": "TOOL", + "id": "matrix_crystal_clairsentience", + "name": { "str_sp": "strange crystal, gray" }, + "copy-from": "matrix_crystal_biokinesis", + "description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing gray light in its depths. Holding it, you feel more perceptive.", + "color": "dark_gray", + "flags": [ "MATRIX_CRYSTAL_CLAIRSENTIENCE" ], + "use_action": { + "type": "effect_on_conditions", + "description": "The gray glow calls to you.", + "effect_on_conditions": [ "EOC_CLAIR_MATRIX_AWAKENING" ] + } + }, + { + "type": "GENERIC", + "id": "matrix_crystal_clair_dust", + "name": { "str_sp": "crystalline dust, gray" }, + "copy-from": "matrix_crystal_biokin_dust", + "description": "A bit of crystalline dust with a faint gray shimmer.", + "color": "dark_gray" + }, + { + "type": "GENERIC", + "id": "matrix_crystal_clair_dust_refined", + "name": { "str_sp": "refined matrix crystal powder, gray" }, + "description": "Concentrated matrix crystal dust. It glitters gray even in complete darkness.", + "copy-from": "matrix_crystal_biokin_dust_refined", + "color": "dark_gray" + }, + { + "type": "TOOL", + "id": "matrix_crystal_pyrokinesis", + "name": { "str_sp": "strange crystal, red" }, + "copy-from": "matrix_crystal_biokinesis", + "description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing red light in its depths. Holding it, you feel hot.", + "color": "red", + "flags": [ "MATRIX_CRYSTAL_PYROKINESIS" ], + "use_action": { + "type": "effect_on_conditions", + "description": "The red glow calls to you.", + "effect_on_conditions": [ "EOC_PYROKIN_MATRIX_AWAKENING" ] + } + }, + { + "type": "GENERIC", + "id": "matrix_crystal_pyrokin_dust", + "name": { "str_sp": "crystalline dust, red" }, + "copy-from": "matrix_crystal_biokin_dust", + "description": "A bit of crystalline dust with a faint red shimmer.", + "color": "red" + }, + { + "type": "GENERIC", + "id": "matrix_crystal_pyrokin_dust_refined", + "name": { "str_sp": "refined matrix crystal powder, red" }, + "description": "Concentrated matrix crystal dust. It glitters red even in complete darkness.", + "copy-from": "matrix_crystal_biokin_dust_refined", + "color": "red" + }, + { + "type": "TOOL", + "id": "matrix_crystal_telekinesis", + "name": { "str_sp": "strange crystal, yellow" }, + "copy-from": "matrix_crystal_biokinesis", + "description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing yellow light in its depths. Holding it, you feel lighter.", + "color": "yellow", + "flags": [ "MATRIX_CRYSTAL_TELEKINESIS" ], + "use_action": { + "type": "effect_on_conditions", + "description": "The yellow glow calls to you.", + "effect_on_conditions": [ "EOC_TELEKIN_MATRIX_AWAKENING" ] + } + }, + { + "type": "GENERIC", + "id": "matrix_crystal_telekin_dust", + "name": { "str_sp": "crystalline dust, yellow" }, + "copy-from": "matrix_crystal_biokin_dust", + "description": "A bit of crystalline dust with a faint yellow shimmer.", + "color": "yellow" + }, + { + "type": "GENERIC", + "id": "matrix_crystal_telekin_dust_refined", + "name": { "str_sp": "refined matrix crystal powder, yellow" }, + "description": "Concentrated matrix crystal dust. It glitters yellow even in complete darkness.", + "copy-from": "matrix_crystal_biokin_dust_refined", + "color": "yellow" + }, + { + "type": "TOOL", + "id": "matrix_crystal_telepathy", + "name": { "str_sp": "strange crystal, white" }, + "copy-from": "matrix_crystal_biokinesis", + "description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing white light in its depths. Holding it, you feel pensive.", + "color": "white", + "flags": [ "MATRIX_CRYSTAL_TELEPATHY" ], + "use_action": { + "type": "effect_on_conditions", + "description": "The white glow calls to you.", + "effect_on_conditions": [ "EOC_TEEP_MATRIX_AWAKENING" ] + } + }, + { + "type": "GENERIC", + "id": "matrix_crystal_telepath_dust", + "name": { "str_sp": "crystalline dust, white" }, + "copy-from": "matrix_crystal_biokin_dust", + "description": "A bit of crystalline dust with a faint white shimmer.", + "color": "white" + }, + { + "type": "GENERIC", + "id": "matrix_crystal_telepath_dust_refined", + "name": { "str_sp": "refined matrix crystal powder, white" }, + "description": "Concentrated matrix crystal dust. It glitters white even in complete darkness.", + "copy-from": "matrix_crystal_biokin_dust_refined", + "color": "white" + }, + { + "type": "TOOL", + "id": "matrix_crystal_teleportation", + "name": { "str_sp": "strange crystal, blue" }, + "copy-from": "matrix_crystal_biokinesis", + "description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing blue light in its depths. Holding it, you feel more mobile.", + "color": "blue", + "flags": [ "MATRIX_CRYSTAL_TELEPORTATION" ], + "use_action": { + "type": "effect_on_conditions", + "description": "The blue glow calls to you.", + "effect_on_conditions": [ "EOC_TELEPORT_MATRIX_AWAKENING" ] + } + }, + { + "type": "GENERIC", + "id": "matrix_crystal_teleport_dust", + "name": { "str_sp": "crystalline dust, blue" }, + "copy-from": "matrix_crystal_biokin_dust", + "description": "A bit of crystalline dust with a faint blue shimmer.", + "color": "blue" + }, + { + "type": "GENERIC", + "id": "matrix_crystal_teleport_dust_refined", + "name": { "str_sp": "refined matrix crystal powder, blue" }, + "description": "Concentrated matrix crystal dust. It glitters blue even in complete darkness.", + "copy-from": "matrix_crystal_biokin_dust_refined", + "color": "blue" + }, + { + "type": "TOOL", + "id": "matrix_crystal_vitakinesis", + "name": { "str_sp": "strange crystal, green" }, + "copy-from": "matrix_crystal_biokinesis", + "description": "A strange-looking, surprisingly-heavy crystal with a faintly-glowing green light in its depths. Holding it, you feel healthier.", + "color": "green", + "flags": [ "MATRIX_CRYSTAL_VITAKINESIS" ], + "use_action": { + "type": "effect_on_conditions", + "description": "The green glow calls to you.", + "effect_on_conditions": [ "EOC_VITAKIN_MATRIX_AWAKENING" ] + } + }, + { + "type": "GENERIC", + "id": "matrix_crystal_vitakin_dust", + "name": { "str_sp": "crystalline dust, green" }, + "copy-from": "matrix_crystal_biokin_dust", + "description": "A bit of crystalline dust with a faint green shimmer.", + "color": "green" + }, + { + "type": "GENERIC", + "id": "matrix_crystal_vitakin_dust_refined", + "name": { "str_sp": "refined matrix crystal powder, green" }, + "description": "Concentrated matrix crystal dust. It glitters green even in complete darkness.", + "copy-from": "matrix_crystal_biokin_dust_refined", + "color": "green" + }, + { + "type": "TOOL", + "id": "matrix_crystal_drained", + "name": { "str_sp": "strange crystal, black" }, + "description": "A strange-looking, surprisingly-heavy crystal. In total darkness, there is a faint light visible in its depths.", + "color": "black", + "symbol": "+", + "volume": "10 ml", + "weight": "150 g", + "longest_side": "21 mm", + "material": [ "nether_crystal" ], + "looks_like": "art_crystal", + "use_action": { + "type": "effect_on_conditions", + "description": "The faint light calls to you.", + "effect_on_conditions": [ "EOC_DRAINED_MATRIX" ] + } + }, + { + "type": "GENERIC", + "id": "matrix_crystal_drained_dust", + "name": { "str_sp": "crystalline dust, black" }, + "copy-from": "matrix_crystal_biokin_dust", + "description": "A bit of crystalline dust that seems to absorb light.", + "color": "black" + }, + { + "type": "GENERIC", + "id": "matrix_crystal_drained_dust_refined", + "name": { "str_sp": "refined matrix crystal powder, black" }, + "description": "Concentrated matrix crystal dust. It seems to completely absorb any light that falls on it.", + "copy-from": "matrix_crystal_biokin_dust_refined", + "color": "black" + }, + { + "type": "TOOL", + "id": "matrix_crystal_coruscating", + "name": { "str_sp": "strange crystal, coruscating" }, + "description": "A strange-looking, surprisingly-heavy crystal. In total darkness, multicolored lights churn and swirl within its depths.", + "copy-from": "matrix_crystal_biokinesis", + "color": "brown", + "flags": [ "MATRIX_CRYSTAL_CORUSCATING" ], + "use_action": { + "type": "effect_on_conditions", + "description": "The coruscating light calls to you.", + "effect_on_conditions": [ "EOC_CORUSCATING_MATRIX" ] + } + }, + { + "type": "TOOL", + "id": "matrix_shard", + "symbol": ",", + "color": "white", + "name": { "str": "strange crystal shard" }, + "category": "other", + "description": "A very heavy chunk of a strange crystalline outcropping. You could use it as a weapon, but you might want to wear gloves.", + "material": [ "nether_crystal" ], + "weight": "450 g", + "volume": "30 ml", + "melee_damage": { "cut": 6 }, + "use_action": { + "type": "place_trap", + "trap": "tr_glass", + "moves": 150, + "practice": 2, + "done_message": "You carefully place the shards on the ground, ready to be cracked by something passing by." + }, + "flags": [ "HURT_WHEN_WIELDED", "TRADER_AVOID" ], + "to_hit": -1 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/medical.json b/data/Mainline_mods/Mods/MindOverMatter/items/medical.json new file mode 100644 index 000000000..a155417fe --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/medical.json @@ -0,0 +1,70 @@ +[ + { + "id": "psionic_instability_remover", + "name": { "str": "morphic resilience cream" }, + "description": "An extremely thick cream that will \"enhance your resilience to the deleterious effects of XE037 overexposure\" if you rub it on your skin. It smells like nail polish somehow gone rotten, and even touching it makes your fingertips itch terribly.", + "type": "COMESTIBLE", + "comestible_type": "MED", + "weight": "265 g", + "volume": "250 ml", + "price": 3000, + "price_postapoc": 3000, + "fun": -3, + "symbol": "q", + "container": "bottle_plastic_small", + "color": "blue", + "flags": [ "EATEN_COLD" ], + "phase": "solid", + "use_action": { + "type": "effect_on_conditions", + "description": "Rub the cream on your skin.", + "effect_on_conditions": [ "EOC_INSTABILITY_CREAM" ] + } + }, + { + "id": "psionic_purifier_vita", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": { "str": "morphic reversion serum" }, + "description": "A faintly-glowing green liquid, the document you found told you that this would \"restore your morphology to baseline\", whatever that means.", + "weight": "20 g", + "volume": "10ml", + "charges": 1, + "price": 1200000, + "price_postapoc": 3000, + "material": [ "nether_crystal", "alien_liquid" ], + "phase": "liquid", + "container": "flask_glass", + "symbol": "!", + "color": "green", + "vitamins": [ ], + "healthy": -4, + "flags": [ "SINGLE_USE" ], + "use_action": [ "PURIFY_SMART" ] + }, + { + "id": "psi_noetic_resilience_treatment", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": { "str": "noetic resilience treatment" }, + "description": "A clear liquid, designed to alleviate some of the deleterious effects of excessive psionic channeling.", + "weight": "20 g", + "volume": "10ml", + "charges": 1, + "price": 1200000, + "price_postapoc": 3000, + "material": [ "nether_crystal", "alien_liquid" ], + "phase": "liquid", + "container": "flask_glass", + "symbol": "!", + "color": "white", + "vitamins": [ ], + "healthy": -4, + "flags": [ "SINGLE_USE" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Inject the concoction.", + "effect_on_conditions": [ "EOC_DRAIN_RESIST_POTION" ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/misc.json b/data/Mainline_mods/Mods/MindOverMatter/items/misc.json new file mode 100644 index 000000000..05281694d --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/misc.json @@ -0,0 +1,59 @@ +[ + { + "id": "cards_zener", + "type": "GENERIC", + "category": "other", + "name": { "str": "deck of Zener cards", "str_pl": "decks of Zener cards" }, + "description": "A deck of Zener cards, used pre-Catalcysm to test for psychic ability.", + "weight": "23 g", + "volume": "29 ml", + "price": 1314, + "price_postapoc": 2, + "material": [ "cardboard" ], + "symbol": ",", + "color": "magenta", + "flags": [ "NO_REPAIR" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Pick a card. Any card.", + "effect_on_conditions": [ "EOC_ZENER_DECK" ] + } + }, + { + "id": "force_field_generator", + "type": "TOOL", + "category": "other", + "name": { "str": "device labeled OS647-P", "str_pl": "devices labeled OS647-P" }, + "description": "A small plastic device about the size of two smartphones stacked on top of each other, with a toggle on one end and \"OS647-P\" written prominently on one side above the XEDRA logo. There is an indentation on the other side the right size to contain a matrix crystal.", + "weight": "500 g", + "volume": "200 ml", + "material": [ + { "type": "aluminum", "portion": 65 }, + { "type": "plastic", "portion": 25 }, + { "type": "nether_crystal", "portion": 10 } + ], + "symbol": "[", + "color": "dark_gray", + "use_action": { + "type": "effect_on_conditions", + "description": "Insert a black matrix crystal and flip the toggle.", + "effect_on_conditions": [ "EOC_FORCE_FIELD_GENERATOR_ACTIVATION" ] + } + }, + { + "id": "force_field_generator_broken", + "type": "TOOL", + "category": "other", + "name": { "str": "device labeled OS647-P", "str_pl": "devices labeled OS647-P" }, + "description": "A small plastic device about the size of two smartphones stacked on top of each other, with a toggle on one end and \"OS647-P\" written prominently on one side above the XEDRA logo. Parts of the device seem melted and the toggle no longer moves.", + "weight": "496 g", + "volume": "200 ml", + "material": [ + { "type": "aluminum", "portion": 65 }, + { "type": "plastic", "portion": 25 }, + { "type": "nether_crystal", "portion": 10 } + ], + "symbol": "[", + "color": "dark_gray" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/psions_summon_items.json b/data/Mainline_mods/Mods/MindOverMatter/items/psions_summon_items.json new file mode 100644 index 000000000..dad92902b --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/psions_summon_items.json @@ -0,0 +1,1379 @@ +[ + { + "id": "biokin_hammerhand_item", + "type": "TOOL", + "name": { "str_sp": "hammerhand" }, + "description": "You can perform many common handy tasks with your bare hands.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "symbol": "$", + "color": "pink", + "flags": [ + "UNBREAKABLE", + "ZERO_WEIGHT", + "ALLOWS_NATURAL_ATTACKS", + "INTEGRATED", + "PADDED", + "PERSONAL", + "SEMITANGIBLE", + "ONLY_ONE", + "NO_DROP" + ], + "qualities": [ + [ "WRENCH", 1 ], + [ "SCREW", 1 ], + [ "HAMMER", 3 ], + [ "HAMMER_FINE", 1 ], + [ "HAMMER_SOFT", 1 ], + [ "CHISEL_WOOD", 1 ], + [ "PRYING_NAIL", 1 ], + [ "PRY", 2 ] + ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "biokin_enhance_mobility_item_1", + "type": "ARMOR", + "name": { "str_sp": "enhanced mobility" }, + "description": "Your powers give you greater range of motion even in heavy clothing or armor.", + "weight": "0g", + "volume": "0ml", + "symbol": "o", + "color": "pink", + "flags": [ + "AURA", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ZERO_WEIGHT", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] }, + "armor": [ + { + "encumbrance": -2, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, + { + "id": "biokin_enhance_mobility_item_2", + "type": "ARMOR", + "name": { "str_sp": "enhanced mobility" }, + "description": "Your powers give you greater range of motion even in heavy clothing or armor.", + "weight": "0g", + "volume": "0ml", + "symbol": "o", + "color": "pink", + "flags": [ + "AURA", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ZERO_WEIGHT", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] }, + "armor": [ + { + "encumbrance": -4, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, + { + "id": "biokin_enhance_mobility_item_3", + "type": "ARMOR", + "name": { "str_sp": "enhanced mobility" }, + "description": "Your powers give you greater range of motion even in heavy clothing or armor.", + "weight": "0g", + "volume": "0ml", + "symbol": "o", + "color": "pink", + "flags": [ + "AURA", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ZERO_WEIGHT", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] }, + "armor": [ + { + "encumbrance": -8, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, + { + "id": "biokin_enhance_mobility_item_4", + "type": "ARMOR", + "name": { "str_sp": "enhanced mobility" }, + "description": "Your powers give you greater range of motion even in heavy clothing or armor.", + "weight": "0g", + "volume": "0ml", + "symbol": "o", + "color": "pink", + "flags": [ + "AURA", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ZERO_WEIGHT", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] }, + "armor": [ + { + "encumbrance": -12, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, + { + "id": "biokin_enhance_mobility_item_5", + "type": "ARMOR", + "name": { "str_sp": "enhanced mobility" }, + "description": "Your powers give you greater range of motion even in heavy clothing or armor.", + "weight": "0g", + "volume": "0ml", + "symbol": "o", + "color": "pink", + "flags": [ + "AURA", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ZERO_WEIGHT", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] }, + "armor": [ + { + "encumbrance": -16, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, + { + "id": "biokin_enhance_mobility_item_6", + "type": "ARMOR", + "name": { "str_sp": "enhanced mobility" }, + "description": "Your powers give you greater range of motion even in heavy clothing or armor.", + "weight": "0g", + "volume": "0ml", + "symbol": "o", + "color": "pink", + "flags": [ + "AURA", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ZERO_WEIGHT", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] }, + "armor": [ + { + "encumbrance": -20, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, + { + "id": "clair_sense_rad_item", + "type": "ARMOR", + "name": { "str": "radiation sense" }, + "description": "You can see ambient radiation as a faint, sinister glow.", + "weight": "0 g", + "volume": "0 ml", + "price": 0, + "price_postapoc": 0, + "symbol": "[", + "color": "dark_gray", + "flags": [ "RAD_DETECT", "PERSONAL", "ZERO_WEIGHT" ], + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "pyrokinetic_fire_tool", + "type": "TOOL", + "name": { "str": "pyrokinetic fire" }, + "description": "Dancing flames hovering over your hand. You can use this to provide heat and light when necessary.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "symbol": "$", + "color": "red", + "flags": [ "UNBREAKABLE", "ZERO_WEIGHT", "LIGHT_20", "FIRE" ], + "qualities": [ [ "BLOW_HOT_AIR", 1 ] ], + "use_action": [ { "type": "firestarter", "moves": 30 }, { "type": "HEAT_FOOD" } ], + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "pyrokinetic_torch_weld", + "type": "TOOL", + "name": { "str": "pyrokinetic lance" }, + "description": "A thin, searing beam, almost too bright to look at. You can use this to weld or cut through things.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "symbol": "$", + "color": "red", + "flags": [ "UNBREAKABLE", "ZERO_WEIGHT", "LIGHT_50", "FIRE" ], + "qualities": [ [ "WELD", 2 ] ], + "use_action": [ { "type": "firestarter", "moves": 10 }, { "type": "OXYTORCH" } ], + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "telekinetic_container_1", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "2 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_2", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "5 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_3", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "8 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_4", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "12 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_5", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "17 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_6", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "23 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_7", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "30 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_8", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "38 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_9", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "47 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_10", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "57 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_11", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "68 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_12", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "80 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_13", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "93 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_14", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "107 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_15", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "122 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_16", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "138 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_17", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "155 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_18", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "173 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_19", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "192 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_20", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "212 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_21", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "233 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_22", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "255 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_23", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "278 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_24", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "302 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_25", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "327 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_26", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "353 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_27", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "380 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_28", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "408 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_29", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "437 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekinetic_container_30", + "type": "TOOL", + "name": { "str": "lifting field" }, + "description": "You can lift one thing with your powers, removing its effect on your encumbrance.", + "weight": "0 g", + "volume": "0 L", + "price": 1, + "price_postapoc": 1, + "material": [ "telekinetic_force" ], + "symbol": "[", + "looks_like": "ragpouch", + "color": "yellow", + "flags": [ "INTEGRATED", "UNBREAKABLE", "AURA", "NO_SALVAGE", "TARDIS", "ZERO_WEIGHT" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "10000 L", + "max_contains_weight": "467 kg", + "max_item_length": "2000 cm", + "moves": 10, + "weight_multiplier": 0.0, + "volume_multiplier": 0.0, + "volume_encumber_modifier": 0 + } + ] + }, + { + "id": "telekin_ritual_summon_strength_item", + "type": "GENERIC", + "name": { "str": "Enhanced Strength" }, + "description": "You are focusing your concentration on moving very heavy objects.", + "weight": "0 g", + "volume": "0 ml", + "price": 1, + "price_postapoc": 1, + "symbol": "0", + "color": "yellow", + "flags": [ "ONLY_ONE", "ZERO_WEIGHT", "TRADER_AVOID" ], + "relic_data": { "passive_effects": [ { "id": "telekin_ritual_summon_strength_enchant" } ] } + }, + { + "id": "telekin_lifting_jack_1", + "looks_like": "jack_makeshift", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "description": "Using your powers, you can lift up a vehicle just enough to allow you to change the wheels.", + "material": [ "telekinetic_force" ], + "symbol": ";", + "color": "yellow", + "weight": "0 g", + "volume": "0 L", + "flags": [ "ZERO_WEIGHT" ], + "qualities": [ [ "JACK", 1 ], [ "LIFT", 1 ] ], + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "telekin_lifting_jack_2", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 2 ], [ "LIFT", 2 ] ] + }, + { + "id": "telekin_lifting_jack_3", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 3 ], [ "LIFT", 3 ] ] + }, + { + "id": "telekin_lifting_jack_4", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 4 ], [ "LIFT", 4 ] ] + }, + { + "id": "telekin_lifting_jack_5", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 5 ], [ "LIFT", 5 ] ] + }, + { + "id": "telekin_lifting_jack_6", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 6 ], [ "LIFT", 6 ] ] + }, + { + "id": "telekin_lifting_jack_7", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 7 ], [ "LIFT", 7 ] ] + }, + { + "id": "telekin_lifting_jack_8", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 8 ], [ "LIFT", 8 ] ] + }, + { + "id": "telekin_lifting_jack_9", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 9 ], [ "LIFT", 9 ] ] + }, + { + "id": "telekin_lifting_jack_10", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 10 ], [ "LIFT", 10 ] ] + }, + { + "id": "telekin_lifting_jack_11", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 11 ], [ "LIFT", 11 ] ] + }, + { + "id": "telekin_lifting_jack_12", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 12 ], [ "LIFT", 12 ] ] + }, + { + "id": "telekin_lifting_jack_13", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 13 ], [ "LIFT", 13 ] ] + }, + { + "id": "telekin_lifting_jack_14", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 14 ], [ "LIFT", 14 ] ] + }, + { + "id": "telekin_lifting_jack_15", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 15 ], [ "LIFT", 15 ] ] + }, + { + "id": "telekin_lifting_jack_16", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 16 ], [ "LIFT", 16 ] ] + }, + { + "id": "telekin_lifting_jack_17", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 17 ], [ "LIFT", 17 ] ] + }, + { + "id": "telekin_lifting_jack_18", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 18 ], [ "LIFT", 18 ] ] + }, + { + "id": "telekin_lifting_jack_19", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 19 ], [ "LIFT", 19 ] ] + }, + { + "id": "telekin_lifting_jack_20", + "looks_like": "jack_makeshift", + "copy-from": "telekin_lifting_jack_1", + "type": "TOOL", + "name": { "str": "telekinetic jack" }, + "qualities": [ [ "JACK", 20 ], [ "LIFT", 20 ] ] + }, + { + "id": "vita_bandage_01", + "type": "GENERIC", + "name": { "str": "Vitakinetic Wound Staunching" }, + "looks_like": "bandage", + "description": "The power to stop bleeding", + "//": "relic-data exists to make the item purple so it stands out in the inventory. Shouldn't clutter the inventory or the purple item space since the summon lasts 5 turns max.", + "weight": "0 g", + "volume": "0 ml", + "price": 1, + "price_postapoc": 1, + "symbol": "!", + "color": "magenta", + "flags": [ "NO_INGEST", "EDIBLE_FROZEN", "ONLY_ONE", "ZERO_WEIGHT", "TRADER_AVOID", "SINGLE_USE" ], + "use_action": { "type": "heal", "bandages_power": 1, "bleed": 7, "move_cost": 0 }, + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "vita_bandages_02", + "type": "GENERIC", + "name": { "str": "Vitakinetic Wound Staunching" }, + "looks_like": "bandage", + "description": "The power to stop bleeding", + "//": "relic-data exists to make the item purple so it stands out in the inventory. Shouldn't clutter the inventory or the purple item space since the summon lasts 5 turns max.", + "weight": "0 g", + "volume": "0 ml", + "price": 1, + "price_postapoc": 1, + "symbol": "!", + "color": "magenta", + "flags": [ "NO_INGEST", "EDIBLE_FROZEN", "ONLY_ONE", "ZERO_WEIGHT", "TRADER_AVOID", "SINGLE_USE" ], + "use_action": { "type": "heal", "bandages_power": 2, "bleed": 14, "move_cost": 0 }, + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "vita_bandages_03", + "type": "GENERIC", + "name": { "str": "Vitakinetic Wound Staunching" }, + "looks_like": "bandage", + "description": "The power to stop bleeding", + "//": "relic-data exists to make the item purple so it stands out in the inventory. Shouldn't clutter the inventory or the purple item space since the summon lasts 5 turns max.", + "weight": "0 g", + "volume": "0 ml", + "price": 1, + "price_postapoc": 1, + "symbol": "!", + "color": "magenta", + "flags": [ "NO_INGEST", "EDIBLE_FROZEN", "ONLY_ONE", "ZERO_WEIGHT", "TRADER_AVOID", "SINGLE_USE" ], + "use_action": { "type": "heal", "bandages_power": 3, "bleed": 20, "move_cost": 0 }, + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "vita_disinfectant_01", + "type": "GENERIC", + "name": { "str": "Vitakinetic Disinfectant" }, + "looks_like": "bandage", + "description": "The power to stop infections", + "//": "relic-data exists to make the item purple so it stands out in the inventory. Shouldn't clutter the inventory or the purple item space since the summon lasts 5 turns max.", + "weight": "0 g", + "volume": "0 ml", + "price": 1, + "price_postapoc": 1, + "symbol": "!", + "color": "magenta", + "flags": [ "NO_INGEST", "EDIBLE_FROZEN", "ONLY_ONE", "ZERO_WEIGHT", "TRADER_AVOID", "SINGLE_USE" ], + "use_action": [ { "type": "heal", "bite": 0.5, "disinfectant_power": 1, "infect": 0.4, "move_cost": 0 } ], + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "vita_disinfectant_02", + "type": "GENERIC", + "name": { "str": "Vitakinetic Disinfectant" }, + "looks_like": "bandage", + "description": "The power to stop infections", + "//": "relic-data exists to make the item purple so it stands out in the inventory. Shouldn't clutter the inventory or the purple item space since the summon lasts 5 turns max.", + "weight": "0 g", + "volume": "0 ml", + "price": 1, + "price_postapoc": 1, + "symbol": "!", + "color": "magenta", + "flags": [ "NO_INGEST", "EDIBLE_FROZEN", "ONLY_ONE", "ZERO_WEIGHT", "TRADER_AVOID", "SINGLE_USE" ], + "use_action": [ { "type": "heal", "bite": 0.7, "disinfectant_power": 2, "infect": 0.6, "move_cost": 0 } ], + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + }, + { + "id": "vita_disinfectant_03", + "type": "GENERIC", + "name": { "str": "Vitakinetic Disinfectant" }, + "looks_like": "bandage", + "description": "The power to stop infections", + "//": "relic-data exists to make the item purple so it stands out in the inventory. Shouldn't clutter the inventory or the purple item space since the summon lasts 5 turns max.", + "weight": "0 g", + "volume": "0 ml", + "price": 1, + "price_postapoc": 1, + "symbol": "!", + "color": "magenta", + "flags": [ "NO_INGEST", "EDIBLE_FROZEN", "ONLY_ONE", "ZERO_WEIGHT", "TRADER_AVOID", "SINGLE_USE" ], + "use_action": [ { "type": "heal", "bite": 0.9, "disinfectant_power": 3, "infect": 0.8, "move_cost": 0 } ], + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/schematics.json b/data/Mainline_mods/Mods/MindOverMatter/items/schematics.json new file mode 100644 index 000000000..76dda865e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/schematics.json @@ -0,0 +1,162 @@ +[ + { + "id": "schematics_matrix_channeling", + "type": "BOOK", + "name": { "str_sp": "matrix channeling array schematics" }, + "description": "This is a series of technical design documents for a \"matrix channeling array\" designed to \"allow an attuned mathematician to direct a stronger level of Netherum energy\". It sounds like nonsense, but the document does have the XEDRA seal stamped on it.", + "copy-from": "schematics_generic", + "skill": "fabrication", + "required_level": 3, + "max_level": 3, + "intelligence": 10, + "time": "45 m", + "symbol": "ç", + "color": "blue" + }, + { + "id": "schematics_matrix_aligning", + "type": "BOOK", + "name": { "str_sp": "crystalline focusing assembly schematics" }, + "description": "This is a series of technical design documents for a focusing assembly designed to \"enhance the precision of Netherum mathematics\".", + "copy-from": "schematics_generic", + "skill": "fabrication", + "required_level": 5, + "max_level": 5, + "intelligence": 11, + "time": "45 m", + "symbol": "ç", + "color": "white" + }, + { + "id": "schematics_matrix_crystal_ground", + "type": "BOOK", + "name": { "str_sp": "refined matrix crystal schematics" }, + "description": "A series of technical documents for further refining ground matrix crystal, separating out the inert parts from the \"Netherically active\" parts.", + "copy-from": "schematics_generic", + "skill": "chemistry", + "required_level": 5, + "max_level": 5, + "intelligence": 10, + "time": "45 m", + "symbol": "ç", + "color": "blue" + }, + { + "id": "schematics_anchoring_crown", + "type": "BOOK", + "name": { "str_sp": "anchoring crown schematics" }, + "description": "This is a series of technical design documents for using matrix crystals to shield the wearer from excess Netherum energies with the drawback of also shutting down any psionic ability they have while worn.", + "copy-from": "schematics_generic", + "skill": "fabrication", + "required_level": 3, + "max_level": 3, + "intelligence": 10, + "time": "45 m", + "symbol": "ç", + "color": "blue" + }, + { + "id": "schematics_grenade_inferno", + "type": "BOOK", + "name": { "str_sp": "inferno grenade schematics" }, + "description": "This is a hand-written design document to enhance the normal explosive power of a grenade using matrix crystal dust. In pen below is the note \"EXTREMELY DANGEROUS\".", + "copy-from": "schematics_generic", + "skill": "fabrication", + "required_level": 5, + "max_level": 5, + "intelligence": 10, + "time": "45 m", + "symbol": "ç", + "color": "red" + }, + { + "id": "schematics_everglow_lamp", + "type": "BOOK", + "name": { "str_sp": "everglow matrix lamp schematics" }, + "description": "This is a series of design documents to use ground matrix crystals to greatly enhance the power efficiency of a lamp.", + "copy-from": "schematics_generic", + "skill": "electronics", + "required_level": 3, + "max_level": 3, + "intelligence": 10, + "time": "45 m", + "symbol": "ç", + "color": "blue" + }, + { + "id": "schematics_reactant_liquid_base", + "type": "BOOK", + "name": { "str_sp": "psychoreactive catalyst specifications" }, + "description": "A chemical formula for mixing ground matrix crystals with other metals and dissolving them in liquid. There's a long list of possible applications for the resulting compound, almost all of which would have seemed like pure fantasy if you hadn't lived through the end of the world.", + "copy-from": "schematics_generic", + "skill": "chemistry", + "required_level": 5, + "max_level": 5, + "intelligence": 12, + "time": "45 m", + "symbol": "ç", + "color": "green" + }, + { + "id": "schematics_instability_remover", + "type": "BOOK", + "name": { "str_sp": "morphic resilience cream schematics" }, + "description": "This document details a series of steps for making a cream which will \"enchance the subject's resilience to the deleterious effects of XE037 overexposure, allowing more rapid experimentation and reducing the need for subject acquisition\". It's stamped with a XEDRA symbol in the corner with \"Project PHAVIAN\" written at the top.", + "copy-from": "schematics_generic", + "skill": "chemistry", + "required_level": 7, + "max_level": 7, + "intelligence": 10, + "time": "60 m", + "symbol": "ç", + "color": "green" + }, + { + "id": "schematics_psionic_purifier", + "type": "BOOK", + "name": { "str_sp": "morphic reversion serum schematics" }, + "description": "A series of steps to create a serum that will \"Eliminate the undesirable effects of XE037 overexposure\". It is designed to be injected in the recipient.", + "copy-from": "schematics_generic", + "skill": "chemistry", + "required_level": 8, + "max_level": 8, + "intelligence": 12, + "time": "60 m", + "symbol": "ç", + "color": "green" + }, + { + "id": "schematics_noetic_resilience", + "type": "BOOK", + "name": { "str_sp": "noetic resilience treatment schematics" }, + "description": "A technical document outlining a treatment for \"noetic enervation\". After the outline of the treatment is a note, dated two weeks before the end of the world, that while it showed great promise in initial trials the side effects require further study before it can be recommended for widespread usage.", + "copy-from": "schematics_generic", + "skill": "chemistry", + "required_level": 6, + "max_level": 6, + "intelligence": 12, + "time": "60 m", + "symbol": "ç", + "color": "white" + }, + { + "type": "TOOL", + "id": "psi_usb_rad_recipes", + "symbol": ",", + "color": "white", + "name": { "str": "USB drive (Phavian)", "str_pl": "USB drives (Phavian)" }, + "description": "A USB thumb drive with the XEDRA logo over a large Ψ symbol printed on it. You'd bet there's something important on here.", + "price": "12 USD", + "price_postapoc": 10, + "material": [ "plastic", "aluminum" ], + "weight": "4536 mg", + "volume": "4 ml", + "longest_side": "5 cm", + "to_hit": { "grip": "bad", "length": "hand", "surface": "any", "balance": "clumsy" }, + "use_action": { + "type": "effect_on_conditions", + "description": "Use a laptop to access the data.", + "effect_on_conditions": [ "EOC_PSI_USB_RAD_RECIPE" ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/teleporter_start_items.json b/data/Mainline_mods/Mods/MindOverMatter/items/teleporter_start_items.json new file mode 100644 index 000000000..a30dbffeb --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/teleporter_start_items.json @@ -0,0 +1,67 @@ +[ + { + "id": "mom_fusion_pistol", + "looks_like": "glock_17", + "type": "GUN", + "name": { "str": "Ch47 Fusion Pistol" }, + "description": "The standard-issue officer's sidearm for the Imperial Navy, guaranteed manufactured on Tlalticpactli itself by scions of the Huey Calpulli, the Ch47 replaced the earlier Ch41 and is widely renowned for its accuracy and ease of maintenance. This particular Ch47 even bears an eagle and snake on the grip, indicating it was produced in a factory in Anáhuac. Hopefully it'll make a good melee weapon as well.", + "to_hit": -2, + "melee_damage": { "bash": 5 }, + "reload_noise_volume": 5, + "weight": "800 g", + "volume": "1 L", + "longest_side": "250 mm", + "symbol": "(", + "color": "red", + "skill": "pistol", + "material": [ "superalloy", "steel" ], + "dispersion": 150, + "durability": 10, + "loudness": 20, + "reload": 200, + "range": 45, + "ammo_effects": [ "PLASMA", "PLASMA_BUBBLE", "INCENDIARY" ], + "ammo": [ "mom_fusion_ammo" ], + "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "mom_fusion_mag" ] } ], + "flags": [ "NEVER_JAMS", "NON_FOULING", "NEEDS_NO_LUBE" ] + }, + { + "id": "mom_fusion_mag", + "type": "MAGAZINE", + "name": { "str": "Ch47 power pack" }, + "description": "A power pack for the Ch47.", + "weight": "40 g", + "volume": "20 ml", + "material": [ "superalloy" ], + "price": 10000, + "price_postapoc": 1, + "symbol": "#", + "color": "red", + "ammo_type": [ "mom_fusion_ammo" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "mom_fusion_ammo": 40 } } ] + }, + { + "id": "mom_fusion_ammo", + "type": "AMMO", + "name": { "str_sp": "Ch47 power cartridges" }, + "description": "Power cartridges for the Ch47. You had better make every shot count, because there's no way you're finding any more of these.", + "weight": "20 g", + "volume": "192 ml", + "price": 160, + "price_postapoc": 800, + "flags": [ "IRREPLACEABLE_CONSUMABLE" ], + "material": [ "superalloy", "steel" ], + "symbol": "=", + "color": "red", + "count": 40, + "stack_size": 40, + "ammo_type": "mom_fusion_ammo", + "damage": { "damage_type": "heat", "amount": 60, "armor_penetration": 30 } + }, + { + "type": "ammunition_type", + "id": "mom_fusion_ammo", + "name": "Ch47 fusion shot", + "default": "mom_fusion_ammo" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/tools/crafting_tools.json b/data/Mainline_mods/Mods/MindOverMatter/items/tools/crafting_tools.json new file mode 100644 index 000000000..ce5583c85 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/tools/crafting_tools.json @@ -0,0 +1,36 @@ +[ + { + "id": "matrix_channeling_tool", + "type": "TOOL", + "name": { "str": "matrix channeling array" }, + "description": "A set of matrix crystals arranged together to direct Netherium energy. You're not entirely sure all the crystals are actually touching the metal assembly you soldered around them.", + "weight": "2500 g", + "volume": "500 ml", + "longest_side": "15 cm", + "price": 2000, + "price_postapoc": 50, + "to_hit": -2, + "melee_damage": { "bash": 2 }, + "material": [ "nether_crystal", "steel" ], + "symbol": "[", + "color": "white", + "qualities": [ [ "MATRIX_CHANNEL", 1 ] ] + }, + { + "id": "matrix_aligning_tool", + "type": "TOOL", + "name": { "str": "crystalline focusing assembly", "str_pl": "crystalline focusing assemblies" }, + "description": "A precise arrangement of cut crystal pieces from the crystal outgrowths left by the portal storms. The air in the center shimmers like a summer heat gaze when you look through the focal point of the apparatus.", + "weight": "4000 g", + "volume": "750 ml", + "longest_side": "25 cm", + "price": 3000, + "price_postapoc": 40, + "to_hit": -2, + "melee_damage": { "bash": 5 }, + "material": [ "nether_crystal", "steel" ], + "symbol": "[", + "color": "light_gray", + "qualities": [ [ "MATRIX_FOCUS", 1 ] ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/tools/lighting.json b/data/Mainline_mods/Mods/MindOverMatter/items/tools/lighting.json new file mode 100644 index 000000000..f908a0787 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/tools/lighting.json @@ -0,0 +1,111 @@ +[ + { + "id": "pyrokinetic_flashlight", + "type": "TOOL", + "name": { "str": "everglow matrix flashlight (off)", "str_pl": "everglow matrix flashlights (off)" }, + "description": "A household flashlight enhanced with matrix technology. It is slighly dimmer but will last significantly longer.", + "material": [ "plastic", "aluminum", "nether_crystal" ], + "symbol": ";", + "color": "blue", + "weight": "280 g", + "volume": "270 ml", + "longest_side": "14 cm", + "price": 1500, + "price_postapoc": 500, + "charges_per_use": 1, + "ammo": [ "battery" ], + "flags": [ "BELT_CLIP", "WATER_BREAK_ACTIVE" ], + "use_action": { + "type": "transform", + "msg": "You turn the flashlight on.", + "target": "pyrokinetic_flashlight_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The flashlight's batteries are dead." + }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_LIGHT", "BATTERY_ULTRA_LIGHT" ], + "default_magazine": "light_disposable_cell" + } + ] + }, + { + "id": "pyrokinetic_flashlight_on", + "copy-from": "pyrokinetic_flashlight", + "type": "TOOL", + "name": { "str": "everglow matrix flashlight (on)", "str_pl": "everglow matrix flashlights (on)" }, + "power_draw": "2 W", + "revert_to": "pyrokinetic_flashlight", + "use_action": { + "menu_text": "Turn off", + "type": "transform", + "msg": "You turn the flashlight off.", + "target": "pyrokinetic_flashlight", + "ammo_scale": 0 + }, + "flags": [ "LIGHT_225", "CHARGEDIM", "TRADER_AVOID", "BELT_CLIP", "WATER_BREAK" ] + }, + { + "id": "pyrokinetic_lamp", + "type": "TOOL", + "name": { "str": "everglow matrix lamp (covered)", "str_pl": "everglow matrix lamps (covered)" }, + "description": "Powered by matrix technology, this lamp will shed a reddish light for far longer than a standard battery-powered lamp. Activate to open the lid.", + "weight": "1438 g", + "volume": "1 L", + "price": 175000, + "price_postapoc": 4000, + "to_hit": -2, + "melee_damage": { "bash": 8 }, + "material": [ "plastic", "aluminum", "nether_crystal" ], + "symbol": ",", + "color": "red", + "use_action": { + "type": "transform", + "target": "pyrokinetic_lamp_on", + "active": true, + "need_charges": 1, + "need_charges_msg": "The lamp's batteries are dead.", + "msg": "You open the lamp's cover.", + "menu_text": "Open cover" + }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_LIGHT", "BATTERY_ULTRA_LIGHT" ], + "default_magazine": "light_disposable_cell" + } + ], + "flags": [ "LEAK_DAM", "ALLOWS_REMOTE_USE", "WATER_BREAK_ACTIVE" ] + }, + { + "id": "pyrokinetic_lamp_on", + "type": "TOOL", + "name": { "str": "everglow matrix lamp (uncovered)", "str_pl": "everglow matrix lamps (uncovered)" }, + "copy-from": "pyrokinetic_lamp", + "description": "Powered by matrix technology, this lamp will shed a reddish light for far longer than a standard battery-powered lamp. Activate to close the lid.", + "power_draw": "2 W", + "use_action": { "type": "transform", "target": "pyrokinetic_lamp", "msg": "You close the lamp's cover.", "menu_text": "Close cover" }, + "flags": [ "LIGHT_150", "LEAK_DAM", "ALLOWS_REMOTE_USE", "CHARGEDIM", "TRADER_AVOID", "WATER_BREAK" ] + }, + { + "type": "GENERIC", + "id": "standing_pyrokinetic_lamp", + "name": { "str": "disconnected standing matrix lamp" }, + "description": "A tall floor lamp that provides illumination when plugged into a power outlet. This lamp is enhanced with matrix technology.", + "weight": "2500 g", + "to_hit": -1, + "material": [ "plastic", "steel" ], + "volume": "2 L", + "longest_side": "170 cm", + "melee_damage": { "bash": 5 }, + "price": 9000, + "price_postapoc": 500, + "symbol": "L", + "color": "white", + "looks_like": "f_floor_lamp" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/tools/nether_items.json b/data/Mainline_mods/Mods/MindOverMatter/items/tools/nether_items.json new file mode 100644 index 000000000..f070b439e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/tools/nether_items.json @@ -0,0 +1,18 @@ +[ + { + "type": "TOOL", + "id": "chaos_stone", + "name": { "str_sp": "compressed chaos" }, + "color": "magenta", + "use_action": { + "type": "effect_on_conditions", + "description": "Seems like chaos in solid form.", + "effect_on_conditions": [ "EOC_CAUSE_PORTAL_STORM" ] + }, + "volume": "250 ml", + "weight": "10 g", + "symbol": "@", + "description": "This defies easy description, it feels solid but the surface is yielding. Looking at it you are reminded of the electric tingle in the air before a portal storm.", + "flags": [ "SINGLE_USE" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/items/weapons.json b/data/Mainline_mods/Mods/MindOverMatter/items/weapons.json new file mode 100644 index 000000000..605cecb95 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/items/weapons.json @@ -0,0 +1,114 @@ +[ + { + "id": "grenade_inferno", + "type": "TOOL", + "category": "weapons", + "name": { "str": "inferno grenade" }, + "description": "This is an inferno grenade, designed to channel Netherum energy to increase its incendiary power. Once you throw it, you will have five seconds to get away before it explodes into a raging firestorm.", + "weight": "230 g", + "volume": "270 ml", + "price": 2000, + "price_postapoc": 1500, + "to_hit": -1, + "melee_damage": { "bash": 6 }, + "material": [ "steel", "nether_crystal" ], + "symbol": "*", + "color": "red", + "use_action": { + "need_wielding": true, + "target": "grenade_inferno_act", + "msg": "You pull the pin on the grenade.", + "target_timer": "5 seconds", + "active": true, + "menu_text": "Pull pin", + "type": "transform" + }, + "flags": [ "BOMB", "ACT_IN_FIRE", "GRENADE" ] + }, + { + "id": "grenade_inferno_act", + "type": "TOOL", + "category": "weapons", + "name": { "str": "active inferno grenade" }, + "description": "This is an active inferno grenade. Better throw it!", + "weight": "230 g", + "volume": "270 ml", + "price": 0, + "price_postapoc": 0, + "to_hit": -1, + "melee_damage": { "bash": 6 }, + "material": [ "steel", "nether_crystal" ], + "symbol": "*", + "color": "red", + "countdown_action": { + "type": "explosion", + "fields_radius": 5, + "do_flashbang": true, + "fields_type": "fd_fire", + "fields_min_intensity": 2, + "fields_max_intensity": 3 + }, + "revert_to": "canister_empty", + "flags": [ "ACT_IN_FIRE", "BOMB", "TRADER_AVOID", "DANGEROUS" ] + }, + { + "id": "mom_pulse_rifle", + "looks_like": "ar15", + "type": "GUN", + "reload_noise_volume": 10, + "name": { "str": "LV429 Pulse Rifle" }, + "description": "The LV429 fires a series of extremely short high-energy laser pulses, more like bullets than a traditional laser beam, greatly reducing dwell time and increasing weapon effectiveness. Matrix crystal technology has made the weapon compact enough to be man-portable and provided it with enough power for essentially unlimited combat operations, but heat dissipation is still a problem, preventing it from being fired more than once every few seconds.", + "weight": "4350 g", + "volume": "3 L", + "longest_side": "965 mm", + "price": 1600000, + "price_postapoc": 6500, + "to_hit": -1, + "melee_damage": { "bash": 12 }, + "material": [ "steel", "plastic", "nether_crystal" ], + "symbol": "(", + "color": "cyan", + "skill": "rifle", + "range": 35, + "dispersion": 10, + "overheat_threshold": 100, + "cooling_value": 4, + "heat_per_shot": 21, + "recoil": 0, + "durability": 4, + "modes": [ [ "DEFAULT", "semi-auto", 1 ] ], + "loudness": 5, + "reload": 0, + "clip_size": 1, + "valid_mod_locations": [ + [ "emitter", 1 ], + [ "grip", 1 ], + [ "rail", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "stock accessory", 1 ], + [ "underbarrel", 1 ] + ], + "ammo": [ "mom_pulse_rifle_ammo" ], + "ammo_effects": [ "LASER", "INCENDIARY" ], + "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE", "NO_REPAIR", "OVERHEATS" ], + "faults": [ "fault_overheat_explosion", "fault_overheat_melting" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "mom_pulse_rifle_ammo": 1 } } ], + "relic_data": { "charge_info": { "recharge_type": "periodic", "time": "8 s", "regenerate_ammo": true } }, + "//": "Recharge time is 8 seconds due to bug #48019, making it actually 4 seconds. Reduce to 4 seconds if that ever gets fixed." + }, + { + "id": "mom_pulse_rifle_prototype", + "looks_like": "ar15", + "type": "GUN", + "copy-from": "mom_pulse_rifle", + "name": { "str": "LV429-P Pulse Rifle" }, + "description": "The LV429 fires a series of extremely short high-energy laser pulses, more like bullets than a traditional laser beam, greatly reducing dwell time and increasing weapon effectiveness. Matrix crystal technology has made the weapon compact enough to be man-portable and provided it with enough power for essentially unlimited operation. This is a prototype, obvious from the bright red coloration of the barrel and grip, as well as the word \"prototype\" written in large letters on the stock and the flammable symbol next to it.", + "overheat_threshold": 100, + "cooling_value": 5, + "heat_per_shot": 21, + "relic_data": { "charge_info": { "recharge_type": "periodic", "time": "2 s", "regenerate_ammo": true } }, + "//": "Recharge time is 8 seconds due to bug #48019, making it actually 1 second. Reduce to 1 seconds if that ever gets fixed." + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/jmath.json b/data/Mainline_mods/Mods/MindOverMatter/jmath.json new file mode 100644 index 000000000..043b996fa --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/jmath.json @@ -0,0 +1,92 @@ +[ + { + "type": "jmath_function", + "id": "int_to_level", + "num_args": 1, + "return": "(u_val('intelligence') * 1.5) * (_0)" + }, + { + "type": "jmath_function", + "id": "scaling_factor", + "num_args": 1, + "return": "( ( _0 + 10) / 20 )" + }, + { + "type": "jmath_function", + "id": "matrix_awakening_odds", + "num_args": 1, + "return": "(100 - (100 * (e ^ (_0 / -1.7) ) ) )" + }, + { + "type": "jmath_function", + "id": "portal_storm_awakening_odds", + "num_args": 1, + "return": "(100 - (100 * (e ^ (_0 / -3) ) ) )" + }, + { + "type": "jmath_function", + "id": "contemplation_factor", + "num_args": 1, + "return": "(u_val('focus') * 18) * (_0)" + }, + { + "type": "jmath_function", + "id": "difficulty_one_contemplation", + "num_args": 1, + "return": "_0 * 49417" + }, + { + "type": "jmath_function", + "id": "difficulty_two_contemplation", + "num_args": 1, + "return": "_0 * 49417" + }, + { + "type": "jmath_function", + "id": "difficulty_three_contemplation", + "num_args": 1, + "return": "_0 * 49417" + }, + { + "type": "jmath_function", + "id": "difficulty_four_contemplation", + "num_args": 1, + "return": "_0 * 35278" + }, + { + "type": "jmath_function", + "id": "difficulty_five_contemplation", + "num_args": 1, + "return": "_0 * 35278" + }, + { + "type": "jmath_function", + "id": "difficulty_six_contemplation", + "num_args": 1, + "return": "_0 * 20513" + }, + { + "type": "jmath_function", + "id": "difficulty_seven_contemplation", + "num_args": 1, + "return": "_0 * 20513" + }, + { + "type": "jmath_function", + "id": "difficulty_eight_contemplation", + "num_args": 1, + "return": "_0 * 13722" + }, + { + "type": "jmath_function", + "id": "difficulty_nine_contemplation", + "num_args": 1, + "return": "_0 * 13722" + }, + { + "type": "jmath_function", + "id": "difficulty_ten_contemplation", + "num_args": 1, + "return": "_0 * 13722" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/json_flags.json b/data/Mainline_mods/Mods/MindOverMatter/json_flags.json new file mode 100644 index 000000000..5d66374bd --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/json_flags.json @@ -0,0 +1,87 @@ +[ + { + "id": "LIFESHIELD", + "type": "json_flag", + "info": "You are immune to life drain." + }, + { + "id": "TELEKIN_SHIELD", + "type": "json_flag", + "//": "Immune to telekinetic damage" + }, + { + "id": "TEEPSHIELD", + "type": "json_flag", + "info": "You are immune to telepathy." + }, + { + "id": "TELESTOP", + "type": "json_flag", + "info": "You are immune to forcible teleportation." + }, + { + "id": "MATRIX_CRYSTAL_BIOKINESIS", + "type": "json_flag", + "info": "This is a matrix crystal attuned to biokinesis." + }, + { + "id": "MATRIX_CRYSTAL_CLAIRSENTIENCE", + "type": "json_flag", + "info": "This is a matrix crystal attuned to clairsentience." + }, + { + "id": "MATRIX_CRYSTAL_PYROKINESIS", + "type": "json_flag", + "info": "This is a matrix crystal attuned to pyrokinesis." + }, + { + "id": "MATRIX_CRYSTAL_TELEKINESIS", + "type": "json_flag", + "info": "This is a matrix crystal attuned to telekinesis." + }, + { + "id": "MATRIX_CRYSTAL_TELEPATHY", + "type": "json_flag", + "info": "This is a matrix crystal attuned to telepathy." + }, + { + "id": "MATRIX_CRYSTAL_TELEPORTATION", + "type": "json_flag", + "info": "This is a matrix crystal attuned to teleportation." + }, + { + "id": "MATRIX_CRYSTAL_VITAKINESIS", + "type": "json_flag", + "info": "This is a matrix crystal attuned to vitakinesis." + }, + { + "id": "MATRIX_CRYSTAL_CORUSCATING", + "type": "json_flag", + "info": "This is a matrix crystal with an unclear attunement." + }, + { + "id": "ENERVATE_IMMUNE", + "type": "monster_flag", + "//": "Immune to cellular breakdown" + }, + { + "id": "TELEKIN_IMMUNE", + "type": "monster_flag", + "//": "Immune to telekinetic damage" + }, + { + "id": "HIVE_MIND", + "type": "monster_flag", + "//": "This monster is part of a hive mind" + }, + { + "id": "TEEP_IMMUNE", + "type": "monster_flag", + "//": "Immune to telepathic damage" + }, + { + "id": "TELEPORT_IMMUNE", + "type": "monster_flag", + "//": "Immune to forcible teleportation" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/lore_spoilers.md b/data/Mainline_mods/Mods/MindOverMatter/lore_spoilers.md new file mode 100644 index 000000000..bf51295ea --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/lore_spoilers.md @@ -0,0 +1,15 @@ +# LORE + +When the government began noticing that some XEDRA explorers of alternate dimensions returned with anomalous capabilities, Project PHAVIAN was founded to study these in full. Within the year, this led to the discovery of latent psychic powers in a portion of humanity. On Earth these were minor, almost trivial--the ability to always find lost keys or know the next sentence someone is going to say moments before they do are useful powers, but not lifechanging--but exposure to extra-dimensional energy seemed to increase psionic power. A PHAVIAN test subject who on Earth could manipulate a quarter to make sure it always landed heads up could sometimes throw large objects on the other side of a portal, or even lift a person. Soon after, it was discovered that specific crystalline formations found in extra-dimensional locations had the effect of amplifying psionic power even further, and that exposure to these crystals could awaken powers in previously mundane individuals. + +Soon after that, the world ended. The weakening of dimensional barriers has made psionic power much stronger on Earth, but there's no longer anyone around to conduct any experiments on it. It's just one more method that survivors use in the wake of the Cataclysm. + +# PROJECT PHAVIAN + +Project PHAVIAN was adequately funded by XEDRA but never more than that, because unlike the various mutagen projects or portal research, they were unable to demonstrate that their areas of expertise produced satisfactory results on Earth. A Project ONYX LIGHTNING test candidate using a matrix crystal could lift and throw a person hard enough to seriously injure or kill them while on some portal immersion dives, but back on Earth they could lift maybe a couple kilograms and move it at an average person's walking pace, and without a matrix crystal they might be able to only lift a dozen grams or only affect the momentum of objects already in motion. Project PHAVIAN never discovered exactly what it was that limited psionic potential, but the current state of psionics on post-Cataclysm Earth is entirely a result of the dimensional weakening brought about by the portal storms. + +Project PHAVIAN found more success using matrix crystals in technological research, and at the end of the year before the cataclysm occurred that's where most of their R&D time and money was going toward. The discovery of treatments for XE037 overexposure early the next year pushed Project PHAVIAN into prominence since they could finally directly connect their research with that of with other XEDRA teams, but the lockouts and the cataclysm soon afterward came before any real progress could be made. Given more time, it's possible that matrix technology could have reduced or even eliminated the downsides of the various advanced mutagen lines, or provided a way for safe portal travel without risk of XE037 contamination, but just like the mutagen research teams they did not have that time. + +# HUMAN ASCENSION + +While more non-psions died in the Cataclysm than psions, thanks to the latter receiving accurate hunches or a tree branch suddenly falling on a pursuing zombie or a more dramatic awakening of their powers thanks to the massive portal storm that blanketed the globe, the proportion of humanity with psionic potential is small. Phavian's testing led to estimates of 3%, though they later revised that to "indeterminate" thanks to the ability of matrix crystals to awaken powers in individuals who had failed all psionic aptitude tests. At the time of game start, the majority of psions are feral. \ No newline at end of file diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/alien_flora_varieties.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/alien_flora_varieties.json new file mode 100644 index 000000000..54f7db6d6 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/alien_flora_varieties.json @@ -0,0 +1,328 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_alien_grass", + "object": { + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "place_nested": [ { "chunks": [ "grass_location_1" ], "x": [ 2, 13 ], "y": [ 2, 13 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "grass_location_1", + "object": { + "mapgensize": [ 9, 9 ], + "rows": [ + " GGGGG ", + " GGGGGGG ", + "GGGGGGGGG", + "GGGGGGGGG", + "GGGGGGGGG", + "GGGGGGGGG", + "GGGGGGGGG", + " GGGGGGG ", + " GGGGG " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "G": [ [ "t_grass_alien", 1 ], [ "t_null", 1 ] ], " ": "t_null" } + } + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_alien_grass_2", + "object": { + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "place_nested": [ { "chunks": [ "grass_location_2" ], "x": [ 2, 10 ], "y": [ 2, 10 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "grass_location_2", + "object": { + "mapgensize": [ 12, 12 ], + "rows": [ + " GGGG ", + " GGGGGG ", + " GGGGGGGG ", + " GGGGGGGGGG ", + "GGGGGGGGGGGG", + "GGGGGGGGGGGG", + "GGGGGGGGGGGG", + "GGGGGGGGGGGG", + " GGGGGGGGGG ", + " GGGGGGGG ", + " GGGGGG ", + " GGGG " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "G": [ [ "t_grass_alien_2", 2 ], [ "t_tree_small_alien_1", 1 ], [ "t_null", 1 ] ], " ": "t_null" } + } + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_alien_grass_3", + "object": { + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "place_nested": [ { "chunks": [ "grass_location_3" ], "x": [ 2, 13 ], "y": [ 2, 13 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "grass_location_3", + "object": { + "mapgensize": [ 9, 9 ], + "rows": [ + " GGGGG ", + " GGGGGGG ", + "GGGGGGGGG", + "GGGGGGGGG", + "GGGGGGGGG", + "GGGGGGGGG", + "GGGGGGGGG", + " GGGGGGG ", + " GGGGG " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "G": [ [ "t_grass_alien_3", 1 ], [ "t_moss_alien_1", 1 ], [ "t_null", 1 ] ], " ": "t_null" } + } + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_alien_grass_4", + "object": { + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "place_nested": [ { "chunks": [ "grass_location_4" ], "x": [ 2, 12 ], "y": [ 2, 12 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "grass_location_4", + "object": { + "mapgensize": [ 10, 10 ], + "rows": [ + " GGGG ", + " GGGGGG ", + " GGGGGGGG ", + "GGGGGGGGGG", + "GGGGGGGGGG", + "GGGGGGGGGG", + "GGGGGGGGGG", + " GGGGGGGG ", + " GGGGGG ", + " GGGG " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "G": [ [ "t_tree_small_alien_2", 1 ], [ "t_moss_alien_2", 1 ], [ "t_null", 1 ] ], " ": "t_null" } + } + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_alien_grass_5", + "object": { + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "place_nested": [ { "chunks": [ "grass_location_5" ], "x": [ 2, 10 ], "y": [ 2, 10 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "grass_location_5", + "object": { + "mapgensize": [ 12, 12 ], + "rows": [ + " GGGG ", + " GGGGGG ", + " GGGGGGGG ", + " GGGGGGGGGG ", + "GGGGGGGGGGGG", + "GGGGGGGGGGGG", + "GGGGGGGGGGGG", + "GGGGGGGGGGGG", + " GGGGGGGGGG ", + " GGGGGGGG ", + " GGGGGG ", + " GGGG " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "G": [ [ "t_tree_small_alien_3", 1 ], [ "t_vines_alien_1", 1 ], [ "t_null", 1 ] ], " ": "t_null" } + } + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_alien_grove", + "object": { + "rows": [ + ".............GGGGG......", + "......GGGGGGGGGGGGGG....", + "....GGGGGGGGGGGGGGGGGG..", + "...GGGGGGGGGGGGGGGGGGGG.", + "...GGGGGGGGGGGGGGGGDDGG.", + "..GGGGGGGGGGGGGDGGGGDDD.", + ".GGGGGGGGGGGGGGDDGGDDD..", + ".GGGGGGGGGGGGGGGGDDDGDD.", + ".GGGGGGGGGGGGGGGDGGDDDD.", + ".GGGGGGGGGGGGGGDDGDDDDD.", + "GGGGGGGGGGGGGDGGDDDDDDDD", + "GGGGGGGGGGGGDDDGDDDDDDDD", + "GGGGGGGDDGGDDDGGDDDDDDDD", + "GGGGGGGDDDDDDDDDDDDDDDDD", + ".GGGGGGGGGDDDDDDDDDDDDD.", + ".GGGGGGGDDDDDDDDDDDDDDD.", + ".GGGDGDGDDDDDDDDDDDDDD..", + ".GGDGDDDGDDDDDDDDDDDDD..", + "..GGDDDGGDDDDDDDDDDDDD..", + "..GGGDDDDDDDDDDDDDDDDD..", + "...DDDDDDDDDDDDDDDDDD...", + ".....DDDDDDDDDDDDDDD....", + ".......DDDDDDDDDDDD.....", + "..........DDDDDD........" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "G": [ [ "t_grass_alien_2", 2 ], [ "t_tree_small_alien_1", 1 ], [ "t_null", 1 ] ], + "D": [ [ "t_tree_small_alien_3", 3 ], [ "t_vines_alien_1", 3 ], [ "t_null", 2 ] ], + ".": "t_null" + } + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/glass_and_crystal.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/glass_and_crystal.json new file mode 100644 index 000000000..1b8ff8acd --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/glass_and_crystal.json @@ -0,0 +1,97 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_glass_and_crystal", + "object": { + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "place_nested": [ { "chunks": [ "glass_and_crystal_chunk" ], "x": [ 2, 15 ], "y": [ 2, 15 ] } ], + "monsters": { " ": { "monster": "GROUP_CRYSTAL_FIELD", "chance": 1, "density": 0.0001 } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "glass_and_crystal_chunk", + "object": { + "mapgensize": [ 9, 9 ], + "rows": [ + " GGG ", + " GGGCGGG ", + " GGCCCGG ", + "GGCCCCCGG", + "GCCCNCCCG", + "GGCCCCCGG", + " GGCCCGG ", + " GGGCGGG ", + " GGG " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "c": "t_nether_stone", "C": "t_nether_stone", "G": [ [ "t_nether_stone", 2 ], [ "t_null", 2 ] ], " ": "t_null" }, + "furniture": { "C": [ [ "f_nether_crystal_structure", 1 ], [ "f_null", 1 ] ] }, + "nested": { "N": { "chunks": [ "glass_and_crystal_chunk_center" ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "glass_and_crystal_chunk_center", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "X": "t_nether_stone" }, + "items": { "X": { "item": "dist_matrix_crystals", "chance": 100 } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "glass_and_crystal_chunk_center", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "X": "t_nether_stone" }, + "furniture": { "X": "f_nether_crystal_structure" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "glass_and_crystal_chunk_center", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "X": "t_nether_stone" }, + "place_fields": [ { "field": "fd_fatigue", "x": 0, "y": 0, "intensity": 3 } ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/nether_pond.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/nether_pond.json new file mode 100644 index 000000000..85e7308a6 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/nether_pond.json @@ -0,0 +1,67 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_nether_pond", + "object": { + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "place_nested": [ { "chunks": [ "nether_pond_chunk" ], "x": [ 2, 11 ], "y": [ 2, 11 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "nether_pond_chunk", + "object": { + "mapgensize": [ 12, 12 ], + "rows": [ + " SS ", + " SSSS ", + " SSssSS ", + " SSsddsSS ", + " SSsdDDdsSS ", + "SSsdDDDDdsSS", + "SSsdDDDDdsSS", + " SSsdDDdsSS ", + " SSsddsSS ", + " SSssSS ", + " SSSS ", + " SS " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "D": "t_nether_water_dp", + "d": [ [ "t_nether_water_dp", 1 ], [ "t_nether_water_sh", 1 ] ], + "s": [ [ "t_nether_water_dp", 1 ], [ "t_nether_water_sh", 4 ] ], + "S": [ [ "t_nether_water_sh", 1 ], [ "t_null", 1 ] ], + " ": "t_null" + } + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/phavian_scientists.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/phavian_scientists.json new file mode 100644 index 000000000..70ce8c601 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/map_extras/phavian_scientists.json @@ -0,0 +1,77 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_phavian_science", + "object": { + "rows": [ + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "-----------1---------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + " ", + " " + ], + "monsters": { + " ": { "monster": "GROUP_NETHER_CAPTURED", "chance": 1, "density": 0.0001 }, + "-": { "monster": "GROUP_NETHER_CAPTURED", "chance": 1, "density": 0.0001 } + }, + "nested": { + "-": { "chunks": [ [ "corpse_blood_gibs_phavian_science_3x3", 1 ], [ "null", 150 ] ] }, + "1": { "chunks": [ "corpse_blood_gibs_phavian_science_3x3" ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "corpse_blood_gibs_phavian_science_3x3", + "object": { + "mapgensize": [ 3, 3 ], + "place_items": [ { "item": "map_extra_phavian_science", "x": [ 0, 2 ], "y": [ 0, 2 ], "chance": 100 } ], + "place_fields": [ { "field": "fd_blood", "x": [ 0, 2 ], "y": [ 0, 2 ] }, { "field": "fd_gibs_flesh", "x": [ 0, 2 ], "y": [ 0, 2 ] } ] + } + }, + { + "type": "item_group", + "subtype": "collection", + "id": "map_extra_phavian_science", + "//": "Nested group to damage the container-item", + "entries": [ { "group": "map_extra_phavian_science_corpse", "prob": 100, "damage": [ 3, 4 ] } ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "map_extra_phavian_science_corpse", + "container-item": "corpse_generic_human", + "//": "Half the time a wallet with an id card, all the time a lab coat", + "entries": [ + { "group": "wallets_phavian", "prob": 50 }, + { "item": "coat_lab", "damage": [ 1, 3 ] }, + { "group": "psi_lab" }, + { "group": "lab_pants", "damage": [ 1, 3 ] }, + { "group": "socks_unisex", "damage": [ 1, 3 ] }, + { "group": "lab_shoes", "damage": [ 1, 3 ] }, + { "group": "lab_torso", "damage": [ 1, 3 ] }, + { "group": "underwear", "damage": [ 1, 3 ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/matrix_room.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/matrix_room.json new file mode 100644 index 000000000..037f35371 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/matrix_room.json @@ -0,0 +1,63 @@ +[ + { + "type": "mapgen", + "method": "json", + "weight": 333, + "nested_mapgen_id": "microlab_distorted_chunk", + "object": { + "mapgensize": [ 12, 12 ], + "rows": [ + "| ..... ||.", + "|..... ...", + " |.C...C...", + " ....,.C..", + " ..| ..C. ", + " Cc....| ", + " .CC.. . |", + " | , .C..", + ". ,, ..|", + ".. .. . ", + ",. .. CC ", + "| " + ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "palettes": [ "microlab_matrix_chunk" ] + } + }, + { + "type": "palette", + "id": "microlab_matrix_chunk", + "remove_all": { + "!": { }, + "2": { }, + ":": { }, + "X": { }, + "3": { }, + "4": { }, + "ó": { }, + "R": { }, + ">": { }, + "<": { }, + ";": { } + }, + "terrain": { + ".": [ "t_strconc_floor", "t_nether_glass_floor" ], + "c": [ "t_strconc_floor", "t_nether_glass_floor" ], + ",": [ "t_nether_glass_floor", "t_strconc_floor_glimmer" ], + "!": "t_door_locked_interior", + "-": "t_wall_metal", + "|": "t_concrete_wall", + "2": "t_door_glass_frosted_lab_c", + ":": "t_door_glass_c", + "=": "t_wall_glass", + "(": "t_reinforced_glass", + "X": "t_door_metal_locked", + "3": "t_door_metal_c", + "4": "t_door_metal_pickable", + "C": "t_nether_glass_floor", + "R": "t_railing" + }, + "furniture": { "C": "f_nether_crystal_structure" }, + "items": { "c": { "item": "dist_matrix_crystals", "chance": 100 } } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/nested/office_phavian_modular.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/nested/office_phavian_modular.json new file mode 100644 index 000000000..445d89786 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/nested/office_phavian_modular.json @@ -0,0 +1,910 @@ +[ + { + "type": "palette", + "id": "office_phavian_palette", + "terrain": { + "ꞝ": "t_carpet_linoleum_gray_green", + ".": "t_linoleum_white", + ":": "t_reinforced_glass", + "=": "t_door_glass_frosted_lab_c", + "|": "t_concrete_wall", + "+": "t_door_c" + }, + "furniture": { + "-": "f_room_divider", + "&": "f_trashcan", + "c": "f_chair", + "d": "f_desk", + "l": "f_locker", + "p": "f_drill_press", + "t": "f_table", + "y": [ "f_indoor_plant", "f_indoor_plant_y" ], + "ɱ": "f_console_broken", + "ç": "f_lab_bench", + "A": "f_stool", + "B": "f_bunkbed", + "C": "f_counter", + "E": "f_electron_microscope", + "I": "f_filing_cabinet", + "M": "f_machinery_electronic", + "S": "f_sink", + "U": "f_utility_shelf", + "Y": "f_rack_coat", + "Ŧ": "f_telepathic_amplifier", + "Ɱ": "f_machinery_heavy" + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room south of the hall, door in the upper left. This is a meeting room.", + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "....dddd", + "..ꞝccꞝ.d", + "..cttc.&", + "..cttc..", + "..cttc..", + "..cttc..", + "..ꞝccꞝ..", + "y......y" + ], + "palettes": [ "office_phavian_palette" ], + "terrain": { "t": "t_carpet_linoleum_gray_green", "c": "t_carpet_linoleum_gray_green" }, + "place_item": [ + { "item": "water_clean", "x": 4, "y": 0, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "water_clean", "x": 5, "y": 0, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "water_clean", "x": 6, "y": 0, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "water_clean", "x": 7, "y": 0, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "water_clean", "x": 7, "y": 1, "chance": 30, "repeat": [ 1, 2 ] } + ], + "items": { + "d": [ { "item": "office_supplies", "chance": 50, "repeat": [ 1, 2 ] } ], + "t": { "item": "office_supplies", "chance": 20 }, + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 0, 7 ], "y": [ 0, 7 ], "repeat": [ 1, 3 ], "chance": 50 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This is a meeting room.", + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "y......y", + "..ꞝccꞝ..", + "..cttc..", + "..cttc..", + "..cttc..", + "&.cttc..", + "d.ꞝccꞝ..", + "dddd...." + ], + "palettes": [ "office_phavian_palette" ], + "terrain": { "t": "t_carpet_linoleum_gray_green", "c": "t_carpet_linoleum_gray_green" }, + "place_item": [ + { "item": "water_clean", "x": 0, "y": 6, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "water_clean", "x": 0, "y": 7, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "water_clean", "x": 1, "y": 7, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "water_clean", "x": 2, "y": 7, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "water_clean", "x": 3, "y": 7, "chance": 30, "repeat": [ 1, 2 ] } + ], + "items": { + "d": [ { "item": "office_supplies", "chance": 50, "repeat": [ 1, 2 ] } ], + "t": { "item": "office_supplies", "chance": 20 }, + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 0, 7 ], "y": [ 0, 7 ], "repeat": [ 1, 3 ], "chance": 50 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room south of the hall, door in the upper left. This is a presentation room.", + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "..cccc.t", + "..dddd.t", + ".......&", + "..cccc..", + "..dddd..", + "........", + ".......t", + "..ddddɱt" + ], + "palettes": [ "office_phavian_palette" ], + "place_item": [ + { "item": "water_clean", "x": 7, "y": 0, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "water_clean", "x": 7, "y": 1, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "television", "x": 3, "y": 7, "chance": 100 }, + { "item": "television", "x": 4, "y": 7, "chance": 100 } + ], + "items": { "t": { "item": "office_supplies", "chance": 40 }, "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } }, + "place_monster": [ { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 0, 7 ], "y": [ 0, 7 ], "repeat": [ 1, 3 ], "chance": 50 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This is a presentation room.", + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "tɱdddd..", + "t.......", + "........", + "..dddd..", + "..cccc..", + "&.......", + "t.dddd..", + "t.cccc.." + ], + "palettes": [ "office_phavian_palette" ], + "place_item": [ + { "item": "water_clean", "x": 0, "y": 6, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "water_clean", "x": 0, "y": 7, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "television", "x": 3, "y": 0, "chance": 100 }, + { "item": "television", "x": 4, "y": 0, "chance": 100 } + ], + "items": { "t": { "item": "office_supplies", "chance": 40 }, "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } }, + "place_monster": [ { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 0, 7 ], "y": [ 0, 7 ], "repeat": [ 1, 3 ], "chance": 50 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the upper left. This is a general office room for writing reports", + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "&.ll-dɱd", + "....-.c&", + "d...-..I", + "ɱc.....d", + "I.....cɱ", + "--....--", + "&c..c.cɱ", + "ddɱIɱ&dd" + ], + "palettes": [ "office_phavian_palette" ], + "terrain": { + ".": "t_carpet_linoleum_white_purple", + "c": "t_carpet_linoleum_white_purple", + "&": "t_carpet_linoleum_white_purple", + "-": "t_carpet_linoleum_white_purple" + }, + "items": { + "d": [ + { "item": "SUS_office_desk", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "I": { "item": "SUS_office_filing_cabinet", "chance": 80 }, + "l": [ { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] } ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 1, 3 ], "chance": 60 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This is a general office room for writing reports", + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "dd&ɱIɱdd", + "ɱc.c..c&", + "--....--", + "ɱc.....I", + "d.....cɱ", + "I..-...d", + "&c.-....", + "dɱd-ll.&" + ], + "palettes": [ "office_phavian_palette" ], + "terrain": { + ".": "t_carpet_linoleum_white_purple", + "c": "t_carpet_linoleum_white_purple", + "&": "t_carpet_linoleum_white_purple", + "-": "t_carpet_linoleum_white_purple" + }, + "items": { + "d": [ + { "item": "SUS_office_desk", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "I": { "item": "SUS_office_filing_cabinet", "chance": 80 }, + "l": [ { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] } ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 1, 3 ], "chance": 60 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room south of the hall, door in the upper left. This is a matrix crystal analysis room.", + "weight": 900, + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "..&lçççɱ", + "......cc", + "...çç...", + "C.AççA..", + "C..ɱɱ...", + "ɱ......U", + "çc..c..U", + "çE.ççUUU" + ], + "palettes": [ "office_phavian_palette" ], + "place_item": [ + { "item": "matrix_channeling_tool", "x": 3, "y": 2, "chance": 25 }, + { "item": "matrix_channeling_tool", "x": 3, "y": 3, "chance": 25 }, + { "item": "matrix_channeling_tool", "x": 4, "y": 2, "chance": 25 }, + { "item": "matrix_channeling_tool", "x": 4, "y": 3, "chance": 25 } + ], + "items": { + "l": [ { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] } ], + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "E": [ { "item": "dist_matrix_crystals_50_50", "chance": 80 } ], + "U": { "item": "psi_lab", "chance": 70, "repeat": [ 1, 3 ] }, + "ç": { "item": "psi_lab", "chance": 20 }, + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 1, 3 ], "chance": 50 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This is a matrix crystal analysis room.", + "weight": 900, + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "UUUçç.Eç", + "U..c..cç", + "U......ɱ", + "...ɱɱ..C", + "..AççA.C", + "...çç...", + "cc......", + "ɱçççl&.." + ], + "palettes": [ "office_phavian_palette" ], + "place_item": [ + { "item": "matrix_channeling_tool", "x": 3, "y": 4, "chance": 25 }, + { "item": "matrix_channeling_tool", "x": 3, "y": 5, "chance": 25 }, + { "item": "matrix_channeling_tool", "x": 4, "y": 4, "chance": 25 }, + { "item": "matrix_channeling_tool", "x": 4, "y": 5, "chance": 25 } + ], + "items": { + "l": [ { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] } ], + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "E": [ { "item": "dist_matrix_crystals_50_50", "chance": 80 } ], + "U": { "item": "psi_lab", "chance": 70, "repeat": [ 1, 3 ] }, + "ç": { "item": "psi_lab", "chance": 20 }, + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 1, 3 ], "chance": 50 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room south of the hall, door in the upper left. This is a manufactory.", + "weight": 800, + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "..&llSĆĆ", + "........", + ":::==:::", + "&......C", + "U..CC..C", + "U..CC..p", + "U..MM..C", + "U......C" + ], + "palettes": [ "office_phavian_palette" ], + "furniture": { "Ć": "f_counter" }, + "place_item": [ + { "item": "force_field_generator_broken", "x": 3, "y": 4, "chance": 50 }, + { "item": "force_field_generator", "x": 3, "y": 4, "chance": 10 } + ], + "items": { + "l": [ + { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "hardware_clothing", "chance": 60, "repeat": [ 1, 5 ] }, + { "item": "decontamination_room", "chance": 10, "repeat": [ 1, 3 ] } + ], + "C": [ + { "item": "psi_lab", "chance": 10, "repeat": [ 1, 3 ] }, + { "item": "supplies_electronics", "chance": 40, "repeat": [ 1, 4 ] }, + { "item": "hardware", "chance": 20, "repeat": [ 1, 3 ] } + ], + "U": [ + { "item": "psi_lab", "chance": 40, "repeat": [ 1, 3 ] }, + { "item": "supplies_electronics", "chance": 60, "repeat": [ 1, 4 ] }, + { "item": "hardware", "chance": 30, "repeat": [ 1, 5 ] } + ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ { "monster": "mon_zombie_technician", "x": [ 1, 6 ], "y": [ 3, 7 ], "repeat": [ 2, 4 ], "chance": 50 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This is a manufactory.", + "weight": 800, + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "C......U", + "C..MM..U", + "p..CC..U", + "C..CC..U", + "C......&", + ":::==:::", + "........", + "ĆĆSll&.." + ], + "palettes": [ "office_phavian_palette" ], + "furniture": { "Ć": "f_counter" }, + "place_item": [ + { "item": "force_field_generator_broken", "x": 4, "y": 3, "chance": 50 }, + { "item": "force_field_generator", "x": 4, "y": 3, "chance": 10 } + ], + "items": { + "l": [ + { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "hardware_clothing", "chance": 60, "repeat": [ 1, 5 ] }, + { "item": "decontamination_room", "chance": 10, "repeat": [ 1, 3 ] } + ], + "C": [ + { "item": "psi_lab", "chance": 10, "repeat": [ 1, 3 ] }, + { "item": "supplies_electronics", "chance": 40, "repeat": [ 1, 4 ] }, + { "item": "hardware", "chance": 20, "repeat": [ 1, 3 ] } + ], + "U": [ + { "item": "psi_lab", "chance": 40, "repeat": [ 1, 3 ] }, + { "item": "supplies_electronics", "chance": 60, "repeat": [ 1, 4 ] }, + { "item": "hardware", "chance": 30, "repeat": [ 1, 5 ] } + ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ { "monster": "mon_zombie_technician", "x": [ 1, 6 ], "y": [ 0, 4 ], "repeat": [ 2, 4 ], "chance": 50 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room south of the hall, door in the upper left. This is a bedroom for crashing in.", + "weight": 750, + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "..y&|9CS", + "....+..T", + "Y...||||", + "B.B..B.B", + "B.B..B.B", + "l......l", + "B.B..B.B", + "B.BllB.B" + ], + "palettes": [ "office_phavian_palette" ], + "toilets": { "T": { } }, + "furniture": { "9": "f_shower" }, + "items": { + "l": [ + { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "underwear_womens", "chance": 20, "repeat": [ 1, 4 ] }, + { "item": "underwear_mens", "chance": 35, "repeat": [ 1, 4 ] }, + { "item": "clothing_work_pants", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "dress_shoes", "chance": 15, "repeat": [ 1, 2 ] }, + { "item": "shirts", "chance": 15, "repeat": [ 1, 3 ] } + ], + "C": [ { "item": "SUS_bathroom_medicine", "chance": 100 }, { "item": "SUS_bathroom_cabinet", "chance": 50 } ], + "S": { "item": "SUS_bathroom_sink", "chance": 100, "repeat": [ 1, 2 ] }, + "Y": { "item": "jackets", "chance": 33, "repeat": [ 1, 2 ] }, + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 3, 6 ], "chance": 70 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This is a bedroom for crashing in.", + "weight": 750, + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "B.BllB.B", + "B.B..B.B", + "l......l", + "B.B..B.B", + "B.B..B.B", + "||||...Y", + "T..+....", + "SC9|&y.." + ], + "palettes": [ "office_phavian_palette" ], + "toilets": { "T": { } }, + "furniture": { "9": "f_shower" }, + "items": { + "l": [ + { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "underwear_womens", "chance": 20, "repeat": [ 1, 4 ] }, + { "item": "underwear_mens", "chance": 35, "repeat": [ 1, 4 ] }, + { "item": "clothing_work_pants", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "dress_shoes", "chance": 15, "repeat": [ 1, 2 ] }, + { "item": "shirts", "chance": 15, "repeat": [ 1, 3 ] } + ], + "C": [ { "item": "SUS_bathroom_medicine", "chance": 100 }, { "item": "SUS_bathroom_cabinet", "chance": 50 } ], + "S": { "item": "SUS_bathroom_sink", "chance": 100, "repeat": [ 1, 2 ] }, + "Y": { "item": "jackets", "chance": 33, "repeat": [ 1, 2 ] }, + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 3, 6 ], "chance": 70 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room south of the hall, door in the upper left. This room is for biokinetic testing.", + "weight": 750, + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "..&llSCC", + "........", + "........", + "d...V.HɃ", + "ɱc......", + "d...V.HɃ", + "ɱc......", + "d...V.HɃ" + ], + "furniture": { "H": [ "f_treadmill", "f_treadmill_mechanical" ], "V": "f_exercise", "Ƀ": "f_bigmirror" }, + "palettes": [ "office_phavian_palette" ], + "place_items": [ + { "item": "matrix_crystal_biokin_dust_group", "x": 0, "y": 3, "chance": 45, "repeat": [ 1, 3 ] }, + { "item": "matrix_crystal_vitakin_dust_group", "x": 0, "y": 3, "chance": 45, "repeat": [ 1, 3 ] }, + { "item": "matrix_crystal_biokin_dust_group", "x": 0, "y": 5, "chance": 45, "repeat": [ 1, 3 ] }, + { "item": "matrix_crystal_vitakin_dust_group", "x": 0, "y": 5, "chance": 45, "repeat": [ 1, 3 ] }, + { "item": "matrix_crystal_biokin_dust_group", "x": 0, "y": 7, "chance": 45, "repeat": [ 1, 3 ] }, + { "item": "matrix_crystal_vitakin_dust_group", "x": 0, "y": 7, "chance": 45, "repeat": [ 1, 3 ] } + ], + "place_item": [ + { "item": "matrix_crystal_biokinesis", "x": 0, "y": 5, "chance": 25 }, + { "item": "matrix_crystal_vitakinesis", "x": 0, "y": 5, "chance": 10 }, + { "item": "lab_file_biokinesis_item", "x": 0, "y": 3, "chance": 20 }, + { "item": "lab_file_vitakinesis_item", "x": 0, "y": 3, "chance": 20 } + ], + "items": { + "l": [ { "item": "boxing_clothes", "chance": 40, "repeat": [ 1, 8 ] } ], + "d": [ + { "item": "office_supplies", "chance": 60, "repeat": [ 1, 2 ] }, + { "item": "psi_lab", "chance": 30, "repeat": [ 0, 2 ] } + ] + }, + "place_monster": [ + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 2, 4 ], "chance": 60 }, + { "group": "GROUP_FERAL_BIOKINETIC", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 1, 2 ], "chance": 60 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This room is for biokinetic testing.", + "weight": 750, + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "ɃH.V...d", + "......cɱ", + "ɃH.V...d", + "......cɱ", + "ɃH.V...d", + "........", + "........", + "CCSll&.." + ], + "furniture": { "H": [ "f_treadmill", "f_treadmill_mechanical" ], "V": "f_exercise", "Ƀ": "f_bigmirror" }, + "palettes": [ "office_phavian_palette" ], + "place_items": [ + { "item": "matrix_crystal_biokin_dust_group", "x": 7, "y": 2, "chance": 45, "repeat": [ 1, 3 ] }, + { "item": "matrix_crystal_vitakin_dust_group", "x": 7, "y": 2, "chance": 45, "repeat": [ 1, 3 ] }, + { "item": "matrix_crystal_biokin_dust_group", "x": 7, "y": 4, "chance": 45, "repeat": [ 1, 3 ] }, + { "item": "matrix_crystal_vitakin_dust_group", "x": 7, "y": 4, "chance": 45, "repeat": [ 1, 3 ] }, + { "item": "matrix_crystal_biokin_dust_group", "x": 7, "y": 6, "chance": 45, "repeat": [ 1, 3 ] }, + { "item": "matrix_crystal_vitakin_dust_group", "x": 7, "y": 6, "chance": 45, "repeat": [ 1, 3 ] } + ], + "place_item": [ + { "item": "matrix_crystal_biokinesis", "x": 7, "y": 2, "chance": 25 }, + { "item": "matrix_crystal_vitakinesis", "x": 7, "y": 2, "chance": 10 }, + { "item": "lab_file_biokinesis_item", "x": 7, "y": 4, "chance": 20 }, + { "item": "lab_file_vitakinesis_item", "x": 7, "y": 4, "chance": 20 } + ], + "items": { + "l": [ { "item": "boxing_clothes", "chance": 40, "repeat": [ 1, 8 ] } ], + "d": [ + { "item": "office_supplies", "chance": 60, "repeat": [ 1, 2 ] }, + { "item": "psi_lab", "chance": 30, "repeat": [ 0, 2 ] } + ] + }, + "place_monster": [ + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 2, 4 ], "chance": 60 }, + { "group": "GROUP_FERAL_BIOKINETIC", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 1, 2 ], "chance": 60 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room south of the hall, door in the upper left. This room is for clairsentient/telepathic testing.", + "weight": 750, + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "..&llSCC", + "........", + "........", + "ɱc..P...", + "đ...P...", + "U.dcPcd.", + "đ...P...", + "ɱc..P..." + ], + "furniture": { "P": "f_curtain", "đ": "f_desk" }, + "palettes": [ "office_phavian_palette" ], + "place_item": [ + { "item": "deck_of_cards", "x": 2, "y": 5, "chance": 60 }, + { "item": "cards_zener", "x": 2, "y": 5, "chance": 80 }, + { "item": "pen", "x": 2, "y": 5, "chance": 60 }, + { "item": "blue_pen", "x": 2, "y": 5, "chance": 60 }, + { "item": "green_pen", "x": 2, "y": 5, "chance": 60 }, + { "item": "red_pen", "x": 2, "y": 5, "chance": 60 }, + { "item": "envelope", "x": 2, "y": 5, "chance": 60, "repeat": [ 1, 4 ] }, + { "item": "paper", "x": 2, "y": 5, "repeat": [ 2, 10 ], "chance": 90 }, + { "item": "pen", "x": 6, "y": 5, "chance": 100 }, + { "item": "paper", "x": 6, "y": 5, "repeat": [ 2, 10 ], "chance": 90 }, + { "item": "lab_file_telepathy_item", "x": 0, "y": 6, "chance": 40 } + ], + "items": { + "U": [ { "item": "cleaning", "chance": 70, "repeat": [ 1, 3 ] }, { "item": "novels", "chance": 100, "repeat": [ 1, 3 ] } ], + "đ": { "item": "SUS_office_desk", "chance": 30, "repeat": [ 1, 3 ] } + }, + "place_monster": [ + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 2, 4 ], "chance": 60 }, + { "group": "GROUP_FERAL_CLAIRSENTIENT", "x": 5, "y": [ 3, 6 ], "repeat": [ 1, 2 ], "chance": 80 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This room is for clairsentient/telepathic testing.", + "weight": 750, + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "...P..cɱ", + "...P...đ", + ".dcPcd.U", + "...P...đ", + "...P..cɱ", + "........", + "........", + "CCSll&.." + ], + "furniture": { "P": "f_curtain", "đ": "f_desk" }, + "palettes": [ "office_phavian_palette" ], + "place_item": [ + { "item": "deck_of_cards", "x": 5, "y": 2, "chance": 60 }, + { "item": "pen", "x": 5, "y": 2, "chance": 60 }, + { "item": "blue_pen", "x": 5, "y": 2, "chance": 60 }, + { "item": "green_pen", "x": 5, "y": 2, "chance": 60 }, + { "item": "red_pen", "x": 5, "y": 2, "chance": 60 }, + { "item": "envelope", "x": 5, "y": 2, "chance": 60, "repeat": [ 1, 4 ] }, + { "item": "paper", "x": 5, "y": 2, "repeat": [ 2, 10 ], "chance": 90 }, + { "item": "pen", "x": 1, "y": 2, "chance": 100 }, + { "item": "paper", "x": 1, "y": 2, "repeat": [ 2, 10 ], "chance": 90 }, + { "item": "lab_file_telepathy_item", "x": 7, "y": 1, "chance": 40 } + ], + "items": { + "U": [ { "item": "cleaning", "chance": 70, "repeat": [ 1, 3 ] }, { "item": "novels", "chance": 100, "repeat": [ 1, 3 ] } ], + "đ": { "item": "SUS_office_desk", "chance": 30, "repeat": [ 1, 3 ] } + }, + "place_monster": [ + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 2, 4 ], "chance": 60 }, + { "group": "GROUP_FERAL_CLAIRSENTIENT", "x": 1, "y": [ 0, 3 ], "repeat": [ 1, 2 ], "chance": 80 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room south of the hall, door in the upper left. This is a telepathic amplifier.", + "weight": 650, + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "..&llSCC", + "........", + ":::==:::", + "ɱ.....Aɱ", + "A......ç", + "...ɱŦ..ç", + "U..Aɱ..S", + "UU.....U" + ], + "palettes": [ "office_phavian_palette" ], + "place_items": [ { "item": "matrix_crystal_telepath_dust_group", "x": 7, "y": 4, "chance": 40, "repeat": [ 1, 3 ] } ], + "items": { + "l": [ { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] } ], + "U": [ { "item": "psi_lab", "chance": 50, "repeat": [ 1, 3 ] }, { "item": "SUS_bathroom_medicine", "chance": 100 } ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 1, 3 ], "chance": 60 }, + { "group": "GROUP_FERAL_TELEPATH", "x": 5, "y": 5, "chance": 80 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This is a telepathic amplifier.", + "weight": 650, + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "U.....UU", + "S..ɱA..U", + "ç..Ŧɱ...", + "ç......A", + "ɱA.....ɱ", + ":::==:::", + "........", + "CCSll&.." + ], + "palettes": [ "office_phavian_palette" ], + "place_items": [ { "item": "matrix_crystal_telepath_dust_group", "x": 0, "y": 3, "chance": 40, "repeat": [ 1, 3 ] } ], + "items": { + "l": [ { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] } ], + "U": [ { "item": "psi_lab", "chance": 50, "repeat": [ 1, 3 ] }, { "item": "SUS_bathroom_medicine", "chance": 100 } ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 1, 3 ], "chance": 60 }, + { "group": "GROUP_FERAL_TELEPATH", "x": 2, "y": 2, "chance": 80 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room south of the hall, door in the upper left. This is a weapons lab", + "weight": 450, + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "..&l....", + "........", + "...çç...", + "...ⱮⱮ..ç", + "C..Aɱ..è", + "C......M", + "CA....cɱ", + "C.....UU" + ], + "palettes": [ "office_phavian_palette" ], + "furniture": { "è": "f_lab_bench" }, + "place_item": [ + { "item": "grenade_inferno", "x": 7, "y": 3, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "grenade_inferno", "x": 7, "y": 4, "chance": 60, "repeat": [ 1, 3 ] }, + { "item": "schematics_grenade_inferno", "x": 7, "y": 7, "chance": 60 } + ], + "items": { + "è": [ + { "item": "psi_lab", "chance": 20, "repeat": [ 1, 3 ] }, + { "item": "dist_pulse_rifles_heavy_prototype", "chance": 40 } + ], + "l": [ { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] } ], + "U": [ { "item": "psi_lab", "chance": 50, "repeat": [ 1, 3 ] } ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ + { "monster": "mon_zombie_technician", "x": [ 0, 7 ], "y": [ 0, 7 ], "repeat": [ 2, 4 ], "chance": 60 }, + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 1, 2 ], "chance": 50 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This is a weapons lab", + "weight": 450, + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "UU.....C", + "ɱc....AC", + "M......C", + "è..ɱA..C", + "ç..ⱮⱮ...", + "...çç...", + "........", + "....l&.." + ], + "furniture": { "è": "f_lab_bench" }, + "palettes": [ "office_phavian_palette" ], + "place_item": [ + { "item": "grenade_inferno", "x": 0, "y": 4, "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "grenade_inferno", "x": 0, "y": 3, "chance": 60, "repeat": [ 1, 3 ] }, + { "item": "schematics_grenade_inferno", "x": 0, "y": 0, "chance": 60 } + ], + "items": { + "è": [ + { "item": "psi_lab", "chance": 20, "repeat": [ 1, 3 ] }, + { "item": "dist_pulse_rifles_heavy_prototype", "chance": 40 } + ], + "l": [ { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] } ], + "U": [ { "item": "psi_lab", "chance": 50, "repeat": [ 1, 3 ] } ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ + { "monster": "mon_zombie_technician", "x": [ 0, 7 ], "y": [ 0, 7 ], "repeat": [ 2, 4 ], "chance": 60 }, + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 1, 2 ], "chance": 50 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room south of the hall, door in the upper left. This is an anomalous materials lab", + "weight": 500, + "nested_mapgen_id": "office_phavian_lab_DN8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "..&llSCC", + "........", + ":::==:::", + "c......U", + "E..çç..U", + "ç.Sɱɱ..ç", + "U.....Sç", + "UU.cɱçɱç" + ], + "palettes": [ "office_phavian_palette" ], + "place_item": [ + { "item": "escape_stone", "x": 3, "y": 4, "chance": 30 }, + { "item": "vortex_stone", "x": 4, "y": 4, "chance": 30 }, + { "item": "calming_stone", "x": 0, "y": 4, "chance": 30 }, + { "item": "chaos_stone", "x": 7, "y": 6, "chance": 30 } + ], + "items": { + "l": [ + { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "decontamination_room", "chance": 40, "repeat": [ 1, 3 ] } + ], + "U": [ { "item": "psi_lab", "chance": 50, "repeat": [ 1, 3 ] } ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ + { "group": "GROUP_NETHER", "x": [ 0, 7 ], "y": [ 3, 7 ], "repeat": [ 0, 4 ], "chance": 70 }, + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 2, 4 ], "chance": 50 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab room north of the hall, door in the lower right. This is an anomalous materials lab", + "weight": 500, + "nested_mapgen_id": "office_phavian_lab_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "çɱçɱc.UU", + "çS.....U", + "ç..ɱɱS.ç", + "U..çç..E", + "U......c", + ":::==:::", + "........", + "CCSll&.." + ], + "palettes": [ "office_phavian_palette" ], + "place_item": [ + { "item": "escape_stone", "x": 4, "y": 3, "chance": 30 }, + { "item": "vortex_stone", "x": 3, "y": 3, "chance": 30 }, + { "item": "calming_stone", "x": 7, "y": 3, "chance": 30 }, + { "item": "chaos_stone", "x": 0, "y": 1, "chance": 30 } + ], + "items": { + "l": [ + { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + { "item": "decontamination_room", "chance": 40, "repeat": [ 1, 3 ] } + ], + "U": [ { "item": "psi_lab", "chance": 50, "repeat": [ 1, 3 ] } ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ + { "group": "GROUP_NETHER", "x": [ 0, 7 ], "y": [ 0, 4 ], "repeat": [ 0, 4 ], "chance": 70 }, + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 2, 4 ], "chance": 50 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "//": "A nested map for the Phavian secret office lab security room, near the keylocked entrance, door to the south.", + "nested_mapgen_id": "office_phavian_security_DS8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + "ddɱdd&.l", + "dc..c..l", + "ɱc.....l", + "d......l", + "&.......", + "..ɱc....", + "..dddd..", + "y......y" + ], + "palettes": [ "office_phavian_palette" ], + "items": { + "d": [ { "item": "office_supplies", "chance": 50, "repeat": [ 1, 2 ] } ], + "l": [ + { "item": "cop_armory", "chance": 40, "repeat": [ 2, 3 ] }, + { "item": "security_torso", "chance": 20, "repeat": [ 1, 2 ] }, + { "item": "security_pants", "chance": 20, "repeat": [ 1, 2 ] }, + { "item": "security_shoes", "chance": 20, "repeat": [ 1, 2 ] } + ], + "&": { "item": "trash", "chance": 75, "repeat": [ 1, 2 ] } + }, + "place_monster": [ + { "group": "GROUP_LAB_BASIC_SECURITY", "x": [ 0, 7 ], "y": [ 0, 7 ], "repeat": [ 3, 6 ], "chance": 65 }, + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 6 ], "y": [ 1, 6 ], "repeat": [ 2, 4 ], "chance": 40 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/phavian_office.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/phavian_office.json new file mode 100644 index 000000000..2d5f184fc --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/phavian_office.json @@ -0,0 +1,263 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "office_cubical_phavian" ], + "weight": 50000, + "object": { + "fill_ter": "t_floor", + "rows": [ + "ssssssssssssssssssssssss", + "s||wwww|| ss ||wwww||s", + "s|.....^|$$ss$$|III..o|s", + "s|.HttH.|||++|||..H..o|s", + "s|.HttH.w.....^|.xdd.o|s", + "s|.HttH.w......+..h..o|s", + "s|.HttH.w..cccc|Y....^|s", + "s|^.....+..c.h.|||||+||s", + "s||||||||..c...|S.T|II|s", + "s|I.Y...+....II|...||||s", + "s|I..H..|..||||||+||l.|s", + "s|Ixddd^|..aVVe...+.l>|s", + "s||||||||.........|||||s", + "s|Ih................hI|s", + "s|ddx-....IIII^...-ddx|s", + "s|----..--------I.----|s", + "s|Ih...Y-ddxddx-....hI|s", + "s|ddx-..-Ih..h....-ddx|s", + "s|----..--------..----|s", + "s|Ih......h..hI-....hI|s", + "s|ddx-^I-xddxdd-.Y-ddx|s", + "s||||||||||||||||||||||s", + "ssssssssssssss$$s$$ss4ss", + "ssssssssssssssssssssssss" + ], + "terrain": { + " ": "t_region_groundcover_urban", + "$": "t_region_shrub_decorative", + "|": "t_wall_w", + "w": "t_window", + "s": "t_concrete", + "+": "t_door_c", + "D": "t_door_locked", + "4": "t_gutter_downspout", + ">": "t_ladder_down" + }, + "furniture": { + "-": "f_room_divider", + "d": "f_desk", + "x": "f_console_broken", + "I": "f_filing_cabinet", + "a": "f_trashcan", + "c": "f_counter", + "Y": "f_rack_coat", + "S": "f_sink", + "^": [ "f_indoor_plant", "f_indoor_plant_y" ], + "R": "f_utility_shelf", + "e": "f_fridge", + "H": "f_armchair", + "l": "f_locker", + "o": "f_bookcase", + "t": "f_table" + }, + "vendingmachines": { "V": { "lootable": true } }, + "toilets": { "T": { } }, + "items": { + "e": { "item": "SUS_fridge_breakroom", "chance": 55, "repeat": [ 2, 3 ] }, + "l": { "item": "SUS_janitors_closet", "chance": 100 }, + "d": { "item": "SUS_office_desk", "chance": 20 }, + "I": { "item": "SUS_office_filing_cabinet", "chance": 80 }, + "R": [ + { "item": "office_supplies", "chance": 80, "repeat": [ 1, 2 ] }, + { "item": "cleaning", "chance": 70, "repeat": [ 2, 4 ] } + ], + "Y": { "item": "jackets", "chance": 33, "repeat": [ 1, 2 ] }, + "a": { "item": "trash", "chance": 60, "repeat": [ 1, 2 ] }, + "o": { "item": "novels", "chance": 80, "repeat": [ 4, 8 ] } + }, + "vehicles": { "h": { "vehicle": "swivel_chair", "chance": 100 } }, + "place_monster": [ { "group": "GROUP_ZOMBIE", "x": [ 0, 23 ], "y": [ 0, 23 ], "repeat": [ 6, 10 ], "chance": 60 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "office_cubical_phavian_roof", + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " -------- -------- ", + " -......- -......- ", + " -......--------......- ", + " -..U.................- ", + " -........oooo........- ", + " -........oooo....M...- ", + " -..Z.....oooo........- ", + " -........oooo........- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " --------------------5- ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "nested": { + "U": { "chunks": [ "roof_2x2_infrastructure" ] }, + "M": { "chunks": [ "roof_2x2_infrastructure_1" ] }, + "Z": { "chunks": [ "roof_2x2_infrastructure_2" ] } + }, + "place_nested": [ + { + "chunks": [ + [ "null", 20 ], + [ "roof_2x2_utilities_b", 15 ], + [ "roof_2x2_utilities_c", 50 ], + [ "roof_2x2_utilities_d", 30 ], + [ "roof_2x2_utilities", 40 ] + ], + "x": [ 4, 17 ], + "y": [ 10, 19 ] + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "office_cubical_phavian_basement" ], + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + "s||||sssssssssssssssssss", + "s|>>|||||||||||||||||||s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|è,|........|........|s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|,,||||||⁷-⁷|⁷⁷-⁷⁷||||s", + "s|,,,,è,,,,,,,,,,,,¥,<|s", + "s|,,,,,,,,,,,,,è,,,=,,|s", + "s|,,|⁷-⁷||||||⁷-⁷||||||s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|è9|........|........|s", + "s|,9|........|........|s", + "s|+||........|........|s", + "s|,,|........|........|s", + "s|S,|........|........|s", + "s|JT|||||||||||||||||||s", + "s||||sssssssssssssssssss" + ], + "terrain": { + "<": "t_ladder_up", + ">": "t_stairs_down", + ",": "t_strconc_floor", + ".": "t_linoleum_white", + "ꞝ": "t_carpet_concrete_green", + "è": "t_strconc_floor_olight", + "¥": "t_card_science", + "=": "t_door_metal_locked", + "|": "t_concrete_wall", + "-": "t_reinforced_door_glass_lab_c", + "⁷": "t_reinforced_glass", + "+": "t_door_c", + "s": "t_soil" + }, + "vendingmachines": { "V": { "lootable": true } }, + "toilets": { "T": { } }, + "furniture": { "9": "f_metal_bench", "S": "f_sink", "J": "f_counter" }, + "place_nested": [ + { "chunks": [ "office_phavian_lab_DN8x8" ], "x": 14, "y": 14 }, + { "chunks": [ "office_phavian_lab_DN8x8" ], "x": 5, "y": 14 }, + { "chunks": [ "office_phavian_lab_DS8x8" ], "x": 5, "y": 2 }, + { "chunks": [ "office_phavian_security_DS8x8" ], "x": 14, "y": 2 } + ], + "place_monster": [ + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 2, 3 ], "y": [ 1, 22 ], "repeat": [ 2, 5 ], "chance": 60 }, + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 2, 18 ], "y": [ 11, 12 ], "repeat": [ 2, 5 ], "chance": 60 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "office_cubical_phavian_subbasement" ], + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + "s||||sssssssssssssssssss", + "s|<<|||||||||||||||||||s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|è,|........|........|s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|,,|........|........|s", + "s|,,||||||⁷-⁷||||||⁷-⁷|s", + "s|,,,,,,,,,,,,,,è,,,,,|s", + "s|,,è,,,,,,,,,,,,,,,,,|s", + "||-|||⁷-⁷||||||⁷-⁷||||||", + "|RꞝꞝF|........|........|", + "|RꞝꞝS|........|........|", + "|RꞝꞝJ|........|........|", + "|Rꞝꞝꞝ|........|........|", + "||--⁷|........|........|", + "|....|........|........|", + "|.hh.|........|........|", + "|.ff.|........|........|", + "|.hh.|||||||||||||||||||", + "||||||ssssssssssssssssss" + ], + "terrain": { + "<": "t_stairs_up", + ",": "t_strconc_floor", + ".": "t_linoleum_white", + "f": "t_carpet_concrete_green", + "h": "t_carpet_concrete_green", + "R": "t_carpet_concrete_green", + "ꞝ": "t_carpet_concrete_green", + "è": "t_strconc_floor_olight", + "¥": "t_card_science", + "=": "t_door_metal_locked", + "|": "t_concrete_wall", + "-": "t_reinforced_door_glass_lab_c", + "⁷": "t_reinforced_glass", + "s": "t_rock" + }, + "furniture": { "f": "f_table", "h": "f_chair", "R": "f_bookcase", "F": "f_fridge", "S": "f_sink" }, + "items": { + "F": { "item": "SUS_fridge_breakroom", "chance": 55, "repeat": [ 2, 3 ] }, + "J": { "item": "dishes_dining", "chance": 30 }, + "R": { "item": "lab_bookshelves", "chance": 60, "repeat": [ 1, 3 ] } + }, + "place_nested": [ + { "chunks": [ "office_phavian_lab_DS8x8" ], "x": 5, "y": 2 }, + { "chunks": [ "office_phavian_lab_DS8x8" ], "x": 14, "y": 2 }, + { "chunks": [ "office_phavian_lab_DN8x8" ], "x": 6, "y": 14 }, + { "chunks": [ "office_phavian_lab_DN8x8" ], "x": 15, "y": 14 } + ], + "place_monster": [ + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 2, 18 ], "y": [ 11, 12 ], "repeat": [ 2, 5 ], "chance": 60 }, + { "group": "GROUP_PHAVIAN_OFFICE", "x": [ 1, 4 ], "y": [ 14, 22 ], "repeat": [ 2, 5 ], "chance": 60 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_basement.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_basement.json new file mode 100644 index 000000000..b46f9d119 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_basement.json @@ -0,0 +1,74 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "psi_phavian_lab_basementD1_hidden_lab_stairs", "psi_phavian_lab_basementE1" ] ], + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "#########||||||||||||||||||#####################", + "#########|eeee|b <||> *|#####################", + "#########|eeee|b <||> |#####################", + "#########|eeee@b* |||||mm||||||||||############", + "#########|eeeem |bbb| m........|############", + "#########||||||||mm|...|mm|||m||||.|############", + "#########|f..d.w| 1...1 |wd.*.f|.|############", + "#########|l....s} ... }s....l|.|############", + "#########|l....s} *1bbb1* }s....l|.|############", + "#########|l.*.dx| ... |xd...l|.|############", + "#########||m|||||:::::::::||||||||.|############", + "#########|l........................|############", + "#########|||||||||||||||||||||||||||############", + "################################################", + "################################################", + "################################################", + "################################################" + ], + "terrain": { + "|": "t_strconc_wall", + "#": "t_soil", + "<": "t_stairs_up", + ">": "t_stairs_down", + "@": "t_elevator_control_off", + "}": "t_window_bars", + ":": "t_reinforced_glass", + "*": "t_thconc_floor_olight", + "e": "t_elevator", + "m": "t_door_metal_c", + "w": "t_gates_control_brick" + }, + "furniture": { + "&": "f_trashcan", + "1": [ "f_indoor_plant", "f_indoor_plant_y" ], + "b": "f_sofa", + "c": "f_chair", + "d": "f_desk", + "f": "f_fridge", + "l": "f_locker", + "s": "f_stool", + "U": "f_utility_shelf", + "x": "f_console_broken" + }, + "items": { + "d": { "item": "office", "chance": 60, "repeat": [ 2, 6 ] }, + "f": [ + { "item": "snacks", "chance": 60, "repeat": [ 2, 10 ] }, + { "item": "fridgesnacks", "chance": 60, "repeat": [ 2, 10 ] } + ], + "l": [ + { "item": "guns_pistol_rare", "chance": 10, "repeat": [ 1, 2 ] }, + { "item": "mags_pistol_rare", "chance": 20, "repeat": 5 }, + { "item": "ammo_pistol_rare", "chance": 20, "repeat": [ 5, 10 ] } + ] + }, + "monsters": { "s": { "monster": "GROUP_LAB_SECURITY", "chance": 50 }, ".": { "monster": "GROUP_LAB_SECURITY", "chance": 15 } } + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_nested.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_nested.json new file mode 100644 index 000000000..d9255a262 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_nested.json @@ -0,0 +1,2500 @@ +[ + { + "//": "4x4 fancy office upstairs on West side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_W4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "H dd", + "H cd", + " d", + " BBB" + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 fancy office upstairs on West side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_W4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "HHBB", + "H d", + " cd", + " ix" + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 fancy office upstairs on West side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_W4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "HH i", + "H d", + " cd", + " dd" + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 fancy office upstairs on East side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_E4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "dd H", + "dc H", + "d ", + "BBB " + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 fancy office upstairs on East side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_E4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "BBHH", + "d H", + "dc ", + "xi " + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 fancy office upstairs on East side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_E4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "i HH", + "d H", + "dc ", + "dd " + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on west side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SWdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "dddd", + "i c ", + " ", + " HHH" + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on west side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SWdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "B cd", + "B d", + "i d", + " cd" + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on west side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SWdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "ddiB", + "dc i", + " cd", + " dd" + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with entirely nether water", + "type": "mapgen", + "weight": 500, + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SWdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ", + " ", + " " + ], + "terrain": { " ": "t_nether_water_sh" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on west side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SWdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "BBHH", + "i ", + " cd", + " xdd" + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on west side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SWdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "dddd", + "cddc", + " ", + " iBB" + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on east side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SEdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "dddd", + "ic ", + "B ", + "BBB " + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on east side", + "type": "mapgen", + "method": "json", + "weight": 150, + "nested_mapgen_id": "psi_phavian_lab_office_SEdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "dðdd", + "ic ", + "B ", + "BBB " + ], + "items": { + "d": [ { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, { "item": "electronics", "chance": 15 } ], + "ð": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "collection_force_field_and_note", "chance": 100 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on East side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SEdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "dc B", + "d B", + "d i", + "dc " + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on East side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SEdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "Bidd", + "i cd", + "dc ", + "dd " + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on East side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SEdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "HHBB", + " i", + "dc ", + "ddx " + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "4x4 upstairs office with south wall door on East side", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_SEdoor4x4", + "object": { + "mapgensize": [ 4, 4 ], + "rotation": [ 0, 3 ], + "rows": [ + "dddd", + "cddc", + " ", + "BBi " + ], + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "furniture": { "i": "f_filing_cabinet" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 offices", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "dB rB", + "dc B", + "Bf ", + "dc ", + "dx " + ], + "terrain": { " ": "t_floor", "f": "t_floor", "r": "t_floor", "H": "t_floor", "d": "t_floor", "c": "t_floor", "B": "t_floor" }, + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "r": { "item": "tools_science", "chance": 80 }, + "f": { "item": "fridgesnacks", "chance": 50, "repeat": 4 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 offices", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "xddBl", + "dc ", + " ", + "dc ", + "ddd " + ], + "terrain": { + " ": "t_floor", + "f": "t_floor", + "r": "t_floor", + "H": "t_floor", + "d": "t_floor", + "c": "t_floor", + "l": "t_floor", + "s": "t_floor", + "B": "t_floor" + }, + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "r": { "item": "tools_science", "chance": 80 }, + "f": { "item": "fridgesnacks", "chance": 50, "repeat": 4 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 single office", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + " rHHH", + " H", + "x ", + "dc ", + "ddBB " + ], + "terrain": { " ": "t_floor", "r": "t_floor", "H": "t_floor", "d": "t_floor", "c": "t_floor", "B": "t_floor" }, + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "r": { "item": "tools_science", "chance": 80 }, + "f": { "item": "fridgesnacks", "chance": 50, "repeat": 4 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 single office", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "dx B", + "dc B", + "f ", + " c", + "dHH " + ], + "terrain": { + " ": "t_carpet_concrete_red", + "f": "t_carpet_concrete_red", + "r": "t_carpet_concrete_red", + "H": "t_carpet_concrete_red", + "d": "t_carpet_concrete_red", + "c": "t_carpet_concrete_red", + "B": "t_carpet_concrete_red" + }, + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "r": { "item": "tools_science", "chance": 80 }, + "f": { "item": "fridgesnacks", "chance": 50, "repeat": 4 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 three-seat office", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_office_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "dxBdd", + "ds cx", + "B ", + "dc ", + "ddB " + ], + "terrain": { + " ": "t_linoleum_gray", + "r": "t_linoleum_gray", + "d": "t_linoleum_gray", + "c": "t_linoleum_gray", + "s": "t_linoleum_gray", + "B": "t_linoleum_gray" + }, + "items": { + "d": [ + { "item": "office", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "electronics", "chance": 15 }, + { "item": "dist_lab_file_phavian_internal", "chance": 3 } + ], + "H": { "item": "bed", "chance": 15 }, + "i": { "item": "office", "chance": 95 }, + "r": { "item": "tools_science", "chance": 80 }, + "f": { "item": "fridgesnacks", "chance": 50, "repeat": 4 }, + "B": [ + { "item": "magazines", "chance": 75, "repeat": [ 1, 5 ] }, + { "item": "lab_bookshelves", "chance": 55, "repeat": [ 1, 3 ] } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 meeting room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_meeting_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ctc ", + " txt ", + " ctc ", + " " + ], + "terrain": { " ": "t_floor", "c": "t_floor", "t": "t_floor" }, + "items": { + "t": [ + { "item": "office", "chance": 15, "repeat": 2 }, + { "item": "electronics", "chance": 5 }, + { "item": "dist_lab_file_phavian_memo", "chance": 3 } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 meeting room with nether water", + "type": "mapgen", + "weight": 400, + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_meeting_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ctc ", + " txt ", + " ctc ", + " " + ], + "terrain": { " ": "t_nether_water_sh", "c": "t_nether_water_sh", "t": "t_nether_water_sh" }, + "items": { + "t": [ + { "item": "office", "chance": 15, "repeat": 2 }, + { "item": "electronics", "chance": 5 }, + { "item": "dist_lab_file_phavian_memo", "chance": 3 } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 three-seat office", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_meeting_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + " ccc ", + "ctttc", + " ", + "ctttc", + " ccc " + ], + "terrain": { " ": "t_floor", "c": "t_floor", "t": "t_floor" }, + "items": { + "t": [ + { "item": "office", "chance": 15, "repeat": 2 }, + { "item": "electronics", "chance": 5 }, + { "item": "dist_lab_file_phavian_memo", "chance": 3 } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 three-seat office", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_meeting_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + " c ", + " ctc ", + " ctc ", + " ctc ", + " c " + ], + "terrain": { " ": "t_floor", "c": "t_floor", "t": "t_floor" }, + "items": { + "t": [ + { "item": "office", "chance": 15, "repeat": 2 }, + { "item": "electronics", "chance": 5 }, + { "item": "dist_lab_file_phavian_memo", "chance": 3 } + ] + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 three-seat office", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_meeting_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "xx1xx", + "cc cc", + " ", + "cc cc", + "xx1xx" + ], + "terrain": { " ": "t_floor", "c": "t_floor", "t": "t_floor", "1": "t_floor" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "5x5 lab front room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_2partworkspace_front_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "bb f", + "Hs f", + " ", + "os ", + "bbbbS" + ], + "items": { + "b": { "item": "psi_lab", "chance": 30, "repeat": [ 1, 2 ] }, + "f": { "item": "supplies_reagents_lab", "chance": 60, "repeat": [ 1, 5 ] }, + "S": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "5x5 lab front room catalytic fluid cracking workspace", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_2partworkspace_front_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "bb f", + "Us f", + " ", + "os ", + "bbbbS" + ], + "furniture": { "U": "f_catalytic_cracking_reactor" }, + "items": { + "b": { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + "f": { "item": "supplies_fluid_catalytic_lab", "chance": 60, "repeat": [ 1, 5 ] }, + "S": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "5x5 lab front room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_2partworkspace_front_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "bb bb", + "Hs sH", + " ", + " ", + "fCSCh" + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "psi_lab_no_recipes", "chance": 15, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 60, "repeat": [ 1, 5 ] }, + "S": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "5x5 lab front room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_2partworkspace_front_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "bb dd", + "bs cx", + " ", + "bs f", + "bbSDC" + ], + "items": { + "b": { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + "f": { "item": "supplies_reagents_lab", "chance": 60, "repeat": [ 1, 5 ] }, + "S": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "5x5 lab front room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_2partworkspace_front_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "F h", + "s S ", + " b ", + " sbs ", + "fbbbf" + ], + "items": { + "b": { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + "f": { "item": "supplies_reagents_lab", "chance": 60, "repeat": [ 1, 5 ] }, + "F": { "item": "dissection", "chance": 60, "repeat": [ 1, 3 ] }, + "S": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "5x5 lab back room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_2partworkspace_back_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "bbSbb", + "bs sb", + " ", + " s ", + "Fbhf8" + ], + "items": { + "b": { "item": "psi_lab", "chance": 30, "repeat": [ 1, 2 ] }, + "f": { "item": "supplies_reagents_lab", "chance": 60, "repeat": [ 1, 5 ] }, + "F": { "item": "dissection", "chance": 60, "repeat": [ 1, 3 ] }, + "S": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "5x5 lab back room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_2partworkspace_back_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "bFSFb", + "fs sf", + " ", + " sHs ", + "bbMbb" + ], + "items": { + "b": { "item": "psi_lab", "chance": 30, "repeat": [ 1, 2 ] }, + "f": { "item": "supplies_reagents_lab", "chance": 60, "repeat": [ 1, 5 ] }, + "F": { "item": "dissection", "chance": 60, "repeat": [ 1, 3 ] }, + "S": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "5x5 lab back room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_2partworkspace_back_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "bbSbb", + "Fs sF", + " ", + "#=#sb", + "N #bb" + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "psi_lab_no_recipes", "chance": 15, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 60, "repeat": [ 1, 5 ] }, + "F": { "item": "dissection", "chance": 60, "repeat": [ 1, 3 ] }, + "S": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "5x5 lab back room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_2partworkspace_back_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "dc|cd", + "|-|-|", + " ", + "|-|-|", + "dc|cd" + ], + "items": { + "d": [ + { "item": "office", "chance": 50, "repeat": [ 2, 5 ] }, + { "item": "tools_science", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "dist_lab_file_matrix_research", "chance": 3 } + ] + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "5x5 lab back room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_2partworkspace_back_5x5", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + "bbMbb", + "SsGsF", + " ", + "fsHsb", + "bbMbb" + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "psi_lab_no_recipes", "chance": 15, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 60, "repeat": [ 1, 5 ] }, + "F": { "item": "dissection", "chance": 60, "repeat": [ 1, 3 ] }, + "S": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "8x8 lobby cafe", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_cafe_8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rotation": [ 0, 3 ], + "rows": [ + "rrf%%%%%", + "r%%%%%%%", + "CCCCvvv%", + " sss ", + "s s ", + "ts sts ", + " s s ", + " sts " + ], + "terrain": { "r": "t_linoleum_white", "f": "t_linoleum_white" }, + "furniture": { "v": "f_glass_fridge" }, + "items": { + "v": { "item": "coffee_shop", "chance": 90, "repeat": [ 2, 10 ] }, + "C": { "item": "coffee_shop", "chance": 80, "repeat": [ 2, 8 ] }, + "r": { "item": "magazines", "chance": 80, "repeat": [ 2, 10 ] } + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "8x8 lobby cafe with alien overgrowth", + "type": "mapgen", + "method": "json", + "weight": 500, + "nested_mapgen_id": "psi_phavian_lab_cafe_8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rotation": [ 0, 3 ], + "rows": [ + "rrf%%%%%", + "r%%%%%%%", + "CCCCvvv%", + " sss ", + "s s ", + "ts sts ", + " s s ", + " sts " + ], + "terrain": { + "r": "t_linoleum_white", + "f": "t_linoleum_white", + " ": [ [ "t_grass_alien", 3 ], [ "t_tree_small_alien_1", 1 ], [ "t_strconc_floor", 3 ] ], + "s": [ [ "t_grass_alien", 3 ], [ "t_tree_small_alien_1", 1 ], [ "t_strconc_floor", 3 ] ], + "t": [ [ "t_grass_alien", 3 ], [ "t_tree_small_alien_1", 1 ], [ "t_strconc_floor", 3 ] ], + "%": [ [ "t_grass_alien", 1 ], [ "t_tree_small_alien_1", 1 ], [ "t_linoleum_white", 3 ] ] + }, + "furniture": { "v": "f_glass_fridge" }, + "items": { + "v": { "item": "coffee_shop", "chance": 90, "repeat": [ 2, 10 ] }, + "C": { "item": "coffee_shop", "chance": 80, "repeat": [ 2, 8 ] }, + "r": { "item": "magazines", "chance": 80, "repeat": [ 2, 10 ] } + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "8x8 lobby comfy seating area", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_cafe_8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rotation": [ 0, 3 ], + "rows": [ + "HHH HH", + "Httc ctH", + "Httc ctH", + " cc ctH", + " cc c ", + "Httc ", + "Httc ", + "HHc " + ], + "furniture": { "c": [ "f_armchair", "f_armchair", "f_null", "f_null", "f_null", "f_null" ] }, + "items": { "t": { "item": "magazines", "chance": 20 } }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "8x8 lobby comfy seating area", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_cafe_8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rotation": [ 0, 3 ], + "rows": [ + "HHBHHBHH", + " ", + "HHH ", + "ttH Htt", + " HHH", + " c ", + "ctc ctc", + " c " + ], + "furniture": { "c": "f_armchair" }, + "items": { "t": { "item": "magazines", "chance": 20 } }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "8x8 lobby juice bar", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_cafe_8x8", + "object": { + "mapgensize": [ 8, 8 ], + "rotation": [ 0, 3 ], + "rows": [ + "tt tt tt", + "ss ss ss", + " ", + " ssss ", + " CCCC ", + " %%%C ", + " x%%% ", + " Cffr " + ], + "furniture": { "f": "f_glass_fridge" }, + "items": { + "f": { "item": "fridgesnacks", "chance": 90, "repeat": [ 2, 15 ] }, + "C": { "item": "produce", "chance": 80, "repeat": [ 2, 8 ] }, + "r": { "item": "magazines", "chance": 80, "repeat": [ 2, 10 ] } + }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "11x11 round meeting room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_room_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ccccc ", + " ctttttc ", + " cttxtxttc ", + " ctx xtc ", + " ctt ttc ", + " ctx xtc ", + " cttxtxttc ", + " ctttttc ", + " ccccc ", + " " + ], + "items": { "c": { "item": "office", "chance": 8 }, "t": { "item": "electronics", "chance": 15 } }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "11x11 round meeting room filled with the black seas of infinity", + "type": "mapgen", + "method": "json", + "weight": 400, + "nested_mapgen_id": "psi_phavian_lab_room_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ccccc ", + " ctttttc ", + " cttxtxttc ", + " ctx xtc ", + " ctt ttc ", + " ctx xtc ", + " cttxtxttc ", + " ctttttc ", + " ccccc ", + " " + ], + "terrain": { "c": "t_nether_water_sh", "t": "t_nether_water_sh", "x": "t_nether_water_sh", " ": "t_nether_water_sh" }, + "items": { "c": { "item": "office", "chance": 8 }, "t": { "item": "electronics", "chance": 15 } }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "11x11 room where everything has been eaten by nether water", + "type": "mapgen", + "method": "json", + "weight": 500, + "nested_mapgen_id": "psi_phavian_lab_room_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "terrain": { " ": "t_nether_water_sh", "X": "t_nether_water_sh" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "11x11 small lecture room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_room_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " dc dc dc ", + "% dc dc dc ", + "% dc dc dc ", + "% dc dc dc ", + "% ", + "% dc dc dc ", + "% dc dc dc ", + "% dc dc dc ", + " dc dc dc ", + " " + ], + "terrain": { "%": "t_carpet_concrete_yellow" }, + "items": { "d": { "item": "office", "chance": 8 } }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "11x11 computer lab", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_room_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " cxxc cxxc ", + " cxxc cxxc ", + " cxxc cxxc ", + " cxxc cxxc ", + " ", + " cxxc cxxc ", + " cxxc cxxc ", + " cxxc cxxc ", + " cxxc cxxc ", + " " + ], + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "11x11 presentation room", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_room_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + " %%%%%s%%% ", + " %r%%Cx% ", + " ", + " cccc cccc ", + " cccc cccc ", + " cccc cccc ", + " cccc cccc ", + " cccc cccc ", + " cccc cccc ", + " cccc cccc ", + " " + ], + "terrain": { + " ": "t_carpet_concrete_red", + "c": "t_carpet_concrete_red", + "%": "t_floor", + "r": "t_floor", + "s": "t_floor", + "C": "t_floor" + }, + "items": { "c": { "item": "office", "chance": 10 }, "C": { "item": "office", "chance": 45 } }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "11x11 room with water and air filters", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "lab_utility_room_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "AACtttUc ", + "t ", + "AACtttU U", + "t U", + "AACtttU U", + "#########m#", + "WWW UUUU ", + "WWW ", + "PP ", + "SSmSSmSSm ", + "SSPSSPSSm " + ], + "terrain": { + " ": "t_strconc_floor", + "A": "t_strconc_floor", + "c": "t_strconc_floor", + "C": "t_strconc_floor", + "m": "t_strconc_floor", + "P": "t_sewage_pipe", + "t": "t_strconc_floor", + "S": "t_strconc_floor", + "U": "t_strconc_floor", + "W": "t_strconc_floor" + }, + "furniture": { + "A": "f_air_filter", + "C": "f_air_compressor", + "m": "f_machinery_heavy", + "t": "f_standing_tank", + "S": "f_standing_tank", + "U": "f_utility_shelf", + "W": "f_water_purifier" + }, + "mapping": { + "U": { + "items": [ + { "item": "tools_lighting_industrial", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "hardware_plumbing", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "hardware", "chance": 60, "repeat": [ 1, 2 ] }, + { "item": "tools_common", "chance": 60, "repeat": [ 1, 3 ] } + ] + } + }, + "place_liquids": [ + { "liquid": "water_clean", "repeat": [ 200, 600 ], "x": [ 0, 1 ], "y": [ 9, 10 ] }, + { "liquid": "water_clean", "repeat": [ 200, 600 ], "x": [ 3, 4 ], "y": [ 9, 10 ] }, + { "liquid": "water_clean", "repeat": [ 200, 600 ], "x": [ 6, 7 ], "y": [ 9, 10 ] } + ], + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "11x11 room with furnaces and maintenance", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "lab_furnace_room_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "FFAFFAFF ", + "FF FF FF ", + " U", + "###########", + "CCBCD uuuuu", + "C u u u", + "T u u u", + "C u u u", + "R ", + "C ", + "CCLCUUUUU " + ], + "terrain": { + " ": "t_strconc_floor", + "#": "t_brick_wall", + "A": "t_strconc_floor", + "B": "t_strconc_floor", + "C": "t_strconc_floor", + "D": "t_strconc_floor", + "F": "t_strconc_floor", + "L": "t_strconc_floor", + "m": "t_strconc_floor", + "R": "t_strconc_floor", + "T": "t_strconc_floor", + "u": "t_strconc_floor", + "U": "t_strconc_floor" + }, + "furniture": { + "A": "f_air_filter", + "B": "f_bandsaw", + "C": "f_counter", + "D": "f_drill_press", + "F": "f_home_furnace", + "L": "f_heavy_lathe", + "m": "f_machinery_heavy", + "R": "f_router", + "T": "f_tablesaw", + "u": "f_utility_shelf", + "U": "f_utility_shelf" + }, + "mapping": { + "U": { + "items": [ + { "item": "tools_lighting_industrial", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "tools_electronics", "chance": 20 }, + { "item": "tools_carpentry", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "tools_earthworking", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "tools_construction", "chance": 10 } + ] + }, + "u": { + "items": [ + { "item": "hardware", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "electronics", "chance": 40 }, + { "item": "hardware_bulk", "chance": 70 } + ] + }, + "C": { + "items": [ + { "item": "tools_carpentry", "chance": 5 }, + { "item": "tools_earthworking", "chance": 4 }, + { "item": "tools_common", "chance": 4 } + ] + } + } + } + }, + { + "//": "11x11 large lab workspace, doors left side bottom", + "//2": "analytical lab with GC/HPLC/MS and NMR", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_workspace_Wdoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "ffC|bNb|FFb", + " | |ssb", + "::=|::=| S", + " U", + "GM MH U", + "bs sbbs b", + "bs sbbs b", + "bb& So a", + "#### S", + "Ull#e C", + " = &CC" + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "psi_lab_no_recipes", "chance": 15, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors left side bottom", + "//2": "biolab with decon shower", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_workspace_Wdoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "ffC|hhh|Cff", + " | | ", + "::=|A=A|:=:", + "S S", + "bs Sbs sb", + "F Fb o", + "F sbE F", + "bs sb", + "####e#=####", + "Ull### llll", + " =H= &" + ], + "furniture": { "H": "f_shower" }, + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "distribution_matrix_dust", "chance": 15, "repeat": [ 1, 3 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "F": { "item": "dissection", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors left side bottom", + "//2": "biolab with imaging equipment", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_workspace_Wdoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "ffC|c O|c 0", + " | I| I", + "::-|-::|-::", + " ", + " xx b", + "S sx sb", + "bs & b", + "bbF& SC", + "####e#=####", + "Ull### llll", + " =H= &" + ], + "furniture": { "H": "f_shower" }, + "place_item": [ { "item": "matrix_crystal_biokinesis", "x": 10, "y": 0, "chance": 30 } ], + "items": { + "b": [ + { "item": "tools_science", "chance": 15, "repeat": [ 1, 2 ] }, + { "item": "psi_lab_no_recipes", "chance": 15, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "F": { "item": "dissection", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors left side bottom", + "//2": "lab with small sub-rooms", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_workspace_Wdoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "bbFbbbbHMob", + "bs sS s sS", + "f &b", + "#####-#####", + "bbbS# #f bb", + "Fs - - sb", + "bbb&# #& Sb", + "##### #####", + "llUSC #8Hbb", + "f & - sb", + " #f &S" + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "distribution_matrix_dust", "chance": 15, "repeat": [ 1, 3 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "F": { "item": "dissection", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors right side bottom", + "//2": "microbio lab with EM and shakers", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_workspace_Edoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "bbi|hhh|ffC", + "Fs | | ", + "b |A=A|=::", + "Fs ", + "b Eb ob", + "b sbbs sb", + "b sbbs sb", + "a So &bb", + "S ####", + "S e#Ull", + "CC& = " + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "distribution_matrix_dust", "chance": 15, "repeat": [ 1, 3 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors right side bottom, black glass and crystal", + "//2": "microbio lab with EM and shakers", + "weight": 500, + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_workspace_Edoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "bbi|hhh|ffC", + "Fs | | ", + "b |A=A|=::", + "Fs ", + "b Eb ob", + "b sbbs sb", + "b sbbs sb", + "a So &bb", + "S ####", + "S e#Ull", + "CC& = " + ], + "terrain": { + "_": [ [ "t_nether_glass_floor", 10 ], [ "t_nether_crystal_structure", 1 ], [ "t_null", 2 ] ], + "s": [ [ "t_nether_glass_floor", 2 ], [ "t_null", 1 ] ], + "b": [ [ "t_nether_glass_floor", 2 ], [ "t_null", 1 ] ], + "U": [ [ "t_nether_glass_floor", 1 ], [ "t_null", 2 ] ], + "l": [ [ "t_nether_glass_floor", 1 ], [ "t_null", 2 ] ] + }, + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "distribution_matrix_dust", "chance": 15, "repeat": [ 1, 3 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors left side bottom", + "//2": "lab with small sub-rooms", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_workspace_Wdoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "bbFbbbbHMbb", + "bs sS s sS", + "f &b", + "#####-#####", + "bS f# #Sbbb", + "bs - - sF", + "F &# #&obb", + "bHSC# #####", + "##### #& Gb", + "llU#& - sb", + " - #S Fb" + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "distribution_matrix_dust", "chance": 15, "repeat": [ 1, 3 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "F": { "item": "dissection", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors right side bottom", + "//2": "lab with small sub-rooms", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_workspace_Edoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "bbFbbbbHMbb", + "bs sS s sS", + "f &b", + "#####-#####", + "bbbS# #f Sb", + "Fs - - sb", + "bbo&# #& F", + "##### #CSHb", + "bG &# #####", + "bs - &#Ull", + "bF S# - " + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "distribution_matrix_dust", "chance": 10, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "F": { "item": "dissection", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors right side bottom", + "//2": "big analytical lab with most tools", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_workspace_Edoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "bFFb|N |ffC", + "bssb|:-| ", + "S |-:|", + "bs bMH &b", + "b bs sb", + "b sb F", + "bs bbo sb", + "S &SC Sbb", + "b ####", + "bs &#Ull", + "bbG - " + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "distribution_matrix_dust", "chance": 10, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors right side bottom", + "//2": "some sort of engineering lab with lots of computers and stuff", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_workspace_Edoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "555555555dd", + " cx", + ":A:A:-:A:A:", + " ", + "f E &", + "bx bs xb", + "bs sb sb", + " xbx b", + "F Ul", + "bs ", + "bbb& CSC& " + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "electronics", "chance": 30, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "F": { "item": "electronics", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] } + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors right side bottom", + "//2": "psionic research lab, nether corrupted", + "type": "mapgen", + "method": "json", + "weight": 600, + "nested_mapgen_id": "psi_phavian_lab_workspace_Edoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "5555bbbbbbb", + "N__X_ś_X___", + "x___xEx____", + "ȼ________ȼx", + ":A:A:-:A:A:", + "i==e===== b", + "i========sb", + "dc==sb===xb", + "F sb Ul", + "bs ", + "bbb& CSC& " + ], + "terrain": { + "_": [ [ "t_nether_glass_floor", 5 ], [ "t_nether_crystal_structure", 1 ] ], + "X": "t_nether_glass_floor", + "E": "t_nether_glass_floor", + "ȼ": "t_nether_glass_floor", + "ś": "t_nether_glass_floor", + "=": [ [ "t_nether_glass_floor", 1 ], [ "t_strconc_floor", 1 ] ] + }, + "furniture": { "ȼ": "f_counter", "ś": "f_stool" }, + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "electronics", "chance": 30, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "F": { "item": "electronics", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, + "E": [ { "item": "matrix_crystal_drained_group", "chance": 100 } ] + }, + "nested": { "X": { "chunks": [ [ "portal_field_concrete_floor", 1 ], [ "null", 25 ] ] } }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors right side bottom", + "//2": "psionic research lab, with possible matrix crystal", + "type": "mapgen", + "method": "json", + "weight": 500, + "nested_mapgen_id": "psi_phavian_lab_workspace_Edoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "5555bbbbbbb", + "N s ", + "x xEx ", + "c cx", + ":A:A:-:A:A:", + "i e b", + "i sb", + "dc sb xb", + "F sb Ul", + "bs ", + "bbb& CSC& " + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "electronics", "chance": 30, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "F": { "item": "electronics", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, + "E": [ { "item": "matrix_crystal_drained_group", "chance": 85 }, { "item": "dist_matrix_crystals", "chance": 50 } ] + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors left side bottom", + "//2": "psionic research lab, with possible matrix crystal", + "type": "mapgen", + "method": "json", + "weight": 500, + "nested_mapgen_id": "psi_phavian_lab_workspace_Wdoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "bbbbbbb5555", + " s N", + " xEx x", + "xc c", + ":A:A:-:A:A:", + "b e i", + "bs i", + "bx bs cd", + "lU bs F", + " sb", + " &CSC &bbb" + ], + "items": { + "b": [ + { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "electronics", "chance": 30, "repeat": [ 1, 2 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "F": { "item": "electronics", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "U": { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] }, + "l": { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, + "E": [ { "item": "matrix_crystal_drained_group", "chance": 85 }, { "item": "dist_matrix_crystals", "chance": 50 } ] + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors left side bottom", + "//2": "lab with small sub-rooms", + "type": "mapgen", + "method": "json", + "weight": 500, + "nested_mapgen_id": "psi_phavian_lab_workspace_Wdoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "BbbbUUUdddd", + "Bc c cd", + "B 1 & &d", + "#####-#####", + "bbbS# #BBdd", + "Es - - cd", + "bbb&# #&1Sd", + "##### #####", + "lllSC #bbbb", + "f & - sb", + " #f1&S" + ], + "items": { + "b": { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + "B": [ + { "item": "psionic_recipes_beginner", "chance": 25 }, + { "item": "psionic_recipes_armor", "chance": 5 }, + { "item": "psionic_recipes_medicine", "chance": 5 }, + { "item": "lab_bookshelves", "chance": 50, "repeat": [ 1, 3 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "d": [ + { "item": "tools_electronics", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "supplies_metal", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "supplies_metal_precious", "chance": 15, "repeat": [ 1, 2 ] }, + { "item": "matrix_crystal_drained_group", "chance": 40, "repeat": [ 1, 3 ] } + ], + "U": [ + { "item": "tools_electronics", "chance": 40, "repeat": [ 1, 3 ] }, + { "item": "supplies_metal", "chance": 30, "repeat": [ 1, 4 ] }, + { "item": "supplies_metal_precious", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "distribution_matrix_dust", "chance": 35, "repeat": [ 1, 4 ] } + ], + "l": [ { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] } ], + "E": [ { "item": "matrix_crystal_drained_group", "chance": 55 }, { "item": "dist_matrix_crystals", "chance": 10 } ] + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "11x11 large lab workspace, doors right side bottom", + "//2": "lab with small sub-rooms", + "type": "mapgen", + "method": "json", + "weight": 500, + "nested_mapgen_id": "psi_phavian_lab_workspace_Edoor_11x11", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + "ddddUUUbbbB", + "dc c cB", + "d& & 1 B", + "#####-#####", + "BBdd# #Sbbb", + "dc - - sE", + "dS1&# #&bbb", + "##### #####", + "bbbb# CSUll", + "bs - & f", + "S&1f# " + ], + "items": { + "b": { "item": "tools_science", "chance": 30, "repeat": [ 1, 2 ] }, + "B": [ + { "item": "psionic_recipes_beginner", "chance": 20 }, + { "item": "psionic_recipes_armor", "chance": 5 }, + { "item": "psionic_recipes_medicine", "chance": 5 }, + { "item": "lab_bookshelves", "chance": 50, "repeat": [ 1, 3 ] } + ], + "f": { "item": "supplies_reagents_lab", "chance": 70, "repeat": [ 2, 5 ] }, + "C": { "item": "cleaning", "chance": 30, "repeat": [ 1, 2 ] }, + "d": [ + { "item": "tools_electronics", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "supplies_metal", "chance": 30, "repeat": [ 1, 2 ] }, + { "item": "supplies_metal_precious", "chance": 15, "repeat": [ 1, 2 ] }, + { "item": "matrix_crystal_drained_group", "chance": 40, "repeat": [ 1, 3 ] } + ], + "U": [ + { "item": "tools_electronics", "chance": 40, "repeat": [ 1, 3 ] }, + { "item": "supplies_metal", "chance": 30, "repeat": [ 1, 4 ] }, + { "item": "supplies_metal_precious", "chance": 25, "repeat": [ 1, 3 ] }, + { "item": "distribution_matrix_dust", "chance": 35, "repeat": [ 1, 4 ] } + ], + "l": [ { "item": "lab_torso", "chance": 40, "repeat": [ 1, 8 ] }, { "item": "lab_shoes", "chance": 40, "repeat": [ 1, 8 ] } ], + "E": [ { "item": "matrix_crystal_drained_group", "chance": 55 }, { "item": "dist_matrix_crystals", "chance": 10 } ] + }, + "palettes": [ "lab_workspace_palette" ] + } + }, + { + "//": "12x12 lobby centerpiece", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_centerpiece_12x12", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ]]]]]]]] ", + " ]]~~~~~~]] ", + "]]~~..i.~~]]", + "]~~.bI#B.~~]", + "]~.i####I.~]", + "]~.bB#|##i~]", + "]~.b##|#I.~]", + "]~i.I###b.~]", + "]~~..#IBi~~]", + "]]~~.I..~~]]", + " ]]~~~~~~]] ", + " ]]]]]]]] " + ], + "terrain": { + "~": "t_water_sh", + ".": [ "t_grass", "t_grass_long", "t_grass_tall" ], + "#": "t_rock_wall", + "B": "t_grass", + "b": "t_grass", + "I": [ "t_tree_maple", "t_tree_dead_warped" ], + "i": [ "t_tree_young", "t_tree_dead_warped" ] + }, + "furniture": { "B": "f_boulder_medium", "b": "f_boulder_small" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "12x12 lobby centerpiece", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_centerpiece_12x12", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + "]]]] bbbbb", + "].~] ]]]]b", + "]iB] ]i.]b", + "]]]] ]~I]b", + " ]]]]b", + "b]]]]] ", + "b]B~~] ", + "b].I.] ]]]]", + "b]~~B] ]~.]", + "b]]]]] ]BI]", + "bbbbbb ]]]]", + " bbbb" + ], + "terrain": { + "~": "t_water_sh", + ".": [ "t_grass", "t_grass_long", "t_grass_tall" ], + "#": "t_rock_wall", + "B": "t_grass", + "I": [ "t_tree_maple", "t_tree_dead_warped" ], + "i": [ "t_tree_young", "t_tree_dead_warped" ] + }, + "furniture": { "B": "f_boulder_small" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "12x12 lobby centerpiece", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_centerpiece_12x12", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ]]]]]]]] ", + " ]]bbbbbb]] ", + "]]........]]", + "]b..~~~~..b]", + "]b.~~~~~~.b]", + "]b.~~SS~~.b]", + "]b.~~SS~~.b]", + "]b.~~~~~~.b]", + "]b..~~~~..b]", + "]]........]]", + " ]]bbbbbb]] ", + " ]]]]]]]] " + ], + "terrain": { "b": "t_grass", "S": "t_sidewalk", "~": "t_water_sh" }, + "furniture": { "S": "f_statue" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "12x12 lobby centerpiece", + "type": "mapgen", + "weight": 500, + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_centerpiece_12x12", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + " ]]]]]]]] ", + " ]]bbbbbb]] ", + "]]........]]", + "]b..~~~~..b]", + "]b.~X~~X~.b]", + "]b.~~SS~~.b]", + "]b.~~SS~~.b]", + "]b.~X~~X~.b]", + "]b..~~~~..b]", + "]]........]]", + " ]]bbbbbb]] ", + " ]]]]]]]] " + ], + "terrain": { "b": "t_grass", "S": "t_sidewalk", "~": "t_nether_water_sh" }, + "furniture": { "S": "f_statue" }, + "nested": { "X": { "chunks": [ [ "portal_field_nether_water", 1 ], [ "null", 20 ] ] } }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "//": "12x12 lobby centerpiece", + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "psi_phavian_lab_centerpiece_12x12", + "object": { + "mapgensize": [ 12, 12 ], + "rotation": [ 0, 3 ], + "rows": [ + "bbbb]]]]bbbb", + "b||b %% b||b", + "b||b %% b||b", + "bbbb %% bbbb", + "] :%%: ]", + "]%%%%DF%%%%]", + "]%%%%FD%%%%]", + "] :%%: ]", + "bbbb %% bbbb", + "b||b %% b||b", + "b||b %% b||b", + "bbbb]]]]bbbb" + ], + "terrain": { "b": "t_sidewalk" }, + "furniture": { "S": "f_statue" }, + "palettes": [ "lab_surface_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_f_crate", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "//": "Places a crate, 25% chance of being pre-opened.", + "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] }, + "place_items": [ { "item": "supplies_reagents_lab", "x": 0, "y": 0, "chance": 90, "repeat": [ 5, 20 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_f_crate", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "//": "Places a crate, 25% chance of being pre-opened.", + "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] }, + "place_items": [ { "item": "tools_science", "x": 0, "y": 0, "chance": 90, "repeat": [ 5, 10 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_f_crate", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "//": "Places a crate, 25% chance of being pre-opened.", + "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] }, + "place_items": [ { "item": "electronics", "x": 0, "y": 0, "chance": 90, "repeat": [ 1, 10 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_f_crate", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "//": "Places a crate, 25% chance of being pre-opened.", + "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] }, + "place_items": [ { "item": "hardware_bulk", "x": 0, "y": 0, "chance": 90, "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_f_crate", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "//": "Places a crate, 25% chance of being pre-opened.", + "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] }, + "place_items": [ { "item": "produce", "x": 0, "y": 0, "chance": 90, "repeat": [ 5, 10 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_f_crate", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "//": "Places a crate, 25% chance of being pre-opened.", + "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] }, + "place_items": [ { "item": "supplies_samples_lab", "x": 0, "y": 0, "chance": 90, "repeat": [ 10, 20 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_f_crate", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "//": "Places a crate, 25% chance of being pre-opened.", + "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] }, + "place_items": [ { "item": "snacks", "x": 0, "y": 0, "chance": 50, "repeat": [ 5, 10 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_f_crate", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "//": "Places a crate, 25% chance of being pre-opened.", + "furniture": { "X": [ [ "f_cardboard_box", 2 ], [ "f_crate_c", 3 ], "f_crate_o" ] }, + "place_items": [ { "item": "hospital_lab", "x": 0, "y": 0, "chance": 90, "repeat": [ 5, 10 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_hall_clutter", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "furniture": { "X": "f_counter" }, + "place_items": [ { "item": "snacks", "x": 0, "y": 0, "chance": 60, "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_hall_clutter", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "furniture": { "X": "f_fridge" }, + "place_items": [ + { "item": "fridge", "x": 0, "y": 0, "chance": 60, "repeat": [ 1, 5 ] }, + { "item": "fridgesnacks", "x": 0, "y": 0, "chance": 60, "repeat": [ 1, 5 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_hall_clutter", + "object": { "mapgensize": [ 1, 1 ], "rows": [ "X" ], "furniture": { "X": [ "f_IV_pole", "f_desk", "f_counter" ] } } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_hall_clutter", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "terrain": { "X": [ "t_grass_alien" ] }, + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_hall_clutter", + "object": { "mapgensize": [ 1, 1 ], "rows": [ "X" ], "furniture": { "X": [ "f_autoclave", "f_console_broken", "f_centrifuge" ] } } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_hall_clutter", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "furniture": { "X": [ "f_machinery_old", "f_machinery_light", "f_machinery_electronic" ] } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_hall_clutter", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "furniture": { "X": "f_glass_cabinet" }, + "place_items": [ { "item": "lab_bookshelves", "x": 0, "y": 0, "chance": 70, "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "surface_sub_hall_clutter", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "X" ], + "furniture": { "X": "f_glass_cabinet" }, + "place_items": [ { "item": "distribution_matrix_dust", "x": 0, "y": 0, "chance": 50, "repeat": [ 1, 5 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "portal_field_nether_water", + "object": { + "mapgensize": [ 1, 1 ], + "place_terrain": [ { "ter": "t_nether_water_sh", "x": 0, "y": 0 } ], + "place_fields": [ { "field": "fd_fatigue", "x": 0, "y": 0, "intensity": 3 } ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "portal_field_concrete_floor", + "object": { + "mapgensize": [ 1, 1 ], + "place_terrain": [ { "ter": "t_strconc_floor", "x": 0, "y": 0 } ], + "place_fields": [ { "field": "fd_fatigue", "x": 0, "y": 0, "intensity": 3 } ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "portal_field_floor", + "object": { + "mapgensize": [ 1, 1 ], + "place_terrain": [ { "ter": "t_floor", "x": 0, "y": 0 } ], + "place_fields": [ { "field": "fd_fatigue", "x": 0, "y": 0, "intensity": 3 } ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_roof.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_roof.json new file mode 100644 index 000000000..1af85ddad --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_roof.json @@ -0,0 +1,169 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ + "psi_phavian_lab_block5A0", + "psi_phavian_lab_block5B0", + "psi_phavian_lab_block5C0", + "psi_phavian_lab_block5D0", + "psi_phavian_lab_block5E0" + ], + [ + "psi_phavian_lab_block5A1", + "psi_phavian_lab_block5B1", + "psi_phavian_lab_block5C1", + "psi_phavian_lab_block5D1", + "psi_phavian_lab_block5E1" + ], + [ + "psi_phavian_lab_block5A2", + "psi_phavian_lab_block5B2", + "psi_phavian_lab_block5C2", + "psi_phavian_lab_block5D2", + "psi_phavian_lab_block5E2" + ], + [ + "psi_phavian_lab_block5A3", + "psi_phavian_lab_block5B3", + "psi_phavian_lab_block5C3", + "psi_phavian_lab_block5D3", + "psi_phavian_lab_block5E3" + ], + [ + "psi_phavian_lab_block5A4", + "psi_phavian_lab_block5B4", + "psi_phavian_lab_block5C4", + "psi_phavian_lab_block5D4", + "psi_phavian_lab_block5E4" + ] + ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "..........._________________________________................................_________________________________...........", + "..........._____________________AA__________................................__________AA_____________________...........", + "...........__(__________________pp__________................................__________pp__________________(__...........", + "..........._____________________pp__________................................__________pp_____________________...........", + "...........______________>______aa__________................................__________aa______>______________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "...........___((_____________________ ((___................................___((_____________________ ((___...........", + "...........___((pppV_______________Vppp((___................................___((pppV_______________Vppp((___...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "...........___AA_______________________AA___................................___AA_______________________AA___...........", + "...........___AApppa_______v_______apppAA___................................___AApppa_______v_______apppAA___...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "...........___((_____________________ ((___................................_________________________________...........", + "...........___((ppp_________________ppp((___................................___((_____________________ ((___...........", + "..........._________________________________................................___((ppp_________________ppp((___...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "...........___AA_______________________AA___................................_________________________________...........", + "...........___AApppa_______v_______apppAA___................................___AA_______________________AA___...........", + "..........._________________________________................................___AApppa_______v_______apppAA___...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "...........___AA_______________________AA___................................___AA_______________________AA___...........", + "...........___AApppa_______v_______apppAA___................................___AApppa_______v_______apppAA___...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "..........._________________________________................................_________________________________...........", + "...........__________________________________..............................__________________________________...........", + "...........________________________________V________________________________V________________________________...........", + "...........____________________________________((______________________((____________________________________...........", + "...........____________________________________((______________________((____________________________________...........", + "...........__________________________________________________________________________________________________...........", + "...........________________________________________________AA________________________________________________...........", + "..........._____________________________________________pppAAppp_____________________________________________...........", + "..........._____________________________________________p______p_____________________________________________...........", + "..........._((______________________________________v__aa______aa__v______________________________________((_...........", + "..........._((pppV_____________________________________aa______aa_____________________________________Vppp((_...........", + "...........__________________________________________________________________________________________________...........", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................" + ], + "palettes": [ "lab_upstairs_palette" ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_z1.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_z1.json new file mode 100644 index 000000000..b14d4a8fb --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_z1.json @@ -0,0 +1,243 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ + "psi_phavian_lab_blockA0", + "psi_phavian_lab_blockB0", + "psi_phavian_lab_blockC0", + "psi_phavian_lab_blockD0", + "psi_phavian_lab_blockE0" + ], + [ + "psi_phavian_lab_blockA1", + "psi_phavian_lab_blockB1", + "psi_phavian_lab_blockC1", + "psi_phavian_lab_blockD1", + "psi_phavian_lab_blockE1" + ], + [ + "psi_phavian_lab_blockA2", + "psi_phavian_lab_blockB2", + "psi_phavian_lab_blockC2", + "psi_phavian_lab_blockD2", + "psi_phavian_lab_blockE2" + ], + [ + "psi_phavian_lab_blockA3", + "psi_phavian_lab_blockB3", + "psi_phavian_lab_blockC3", + "psi_phavian_lab_blockD3", + "psi_phavian_lab_blockE3" + ], + [ + "psi_phavian_lab_blockA4", + "psi_phavian_lab_blockB4", + "psi_phavian_lab_blockC4", + "psi_phavian_lab_blockD4", + "psi_phavian_lab_blockE4" + ] + ], + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + "................................................#!!!!!!!!|________......................................................", + "................................................#________/________......................................................", + "#################################################________/________|:|||#################################################", + "#.............................................../________/________| Cl|]____,,____,,_____,,_____,,____,,____,,____]....#", + "#.............................................../________/________}s |]____,,____,,_____,,_____,,____,,____,,____]....#", + "#.............................................../________/________|xx |]____,,____,,_____,,_____,,____,,____,,____]....#", + "#.............................................../________/________|||m|]____,,____,,_____,,_____,,____,,____,,____]....#", + "#..............................................._________|!!!!!!!!|]]]]]____,,____,,_____,,_____,,____,,____,,____]]]]]#", + "#..........]]]]]]]]]]]]]]]]]]]]]]]]]]]]]........____________________________,,____,,_____,,_____,,____,,____,,____,,__,#", + "#..........]*********************'*****]........____________________________,,____,,_____,,_____,,____,,____,,____,_,__#", + "#..........]****************~***''*???*]........__________________________________________________________________,__,_#", + "#..........]*****???????****~~**'***??*]........__________________________________________________________________,,__,#", + "#..........]'''****????***~~~~**'**???*]........__________________________________________________________________,_,__#", + "#..........]**''*********~~~~~**'******]........__________________________________________________________________,__,_#", + "#..........]***'**********~~~~*''******]........____________________________,,____,,_____,,_____,,____,,____,,____,,__,#", + "#..........]***''*&bbb*****~~**'****???]........____________________________,,____,,_____,,_____,,____,,____,,____,_,__#", + "#..........]****''''''****~~~**'??????*]........____________________________,,____,,_____,,_____,,____,,____,,____,__,_#", + "#..........]****???**''''']]''''''''***]........____________________________,,____,,_____,,_____,,____,,____,,____,,__,#", + "#..........]*???????***~~~~~~b'****'''']........____________________________,,____,,_____,,_____,,____,,____,,____,_,__#", + "#..........]***?????****~~~~.b'*???****]........____________________________,,____,,_____,,_____,,____,,____,,____,__,_#", + "#..........]****???****~~~~**&'***??***]........____________________________,,____,,_____,,_____,,____,,____,,____,___,#", + "#..........]**????**~~~~~****''****??**]........________________________,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#", + "#..........]*********~~~~'''''****??***]........____________________________________________________________,..........#", + "#..........]*********~~*''*******???***]........____________________________________________________________,..........#", + "#..........]************'******?????***].......]____________________________________________________________,..........#", + "#..........]************'**************]......]]____________________________________________________________,..........#", + "#..........]]]]]]]]]]]]]]]]]]]]]]]]]]]]].....]]_____________________________________________________________,..........#", + "#...........................................]]______________________________________________________________,..........#", + "#..........................................]]_______________________________________________________________,..........#", + "#..........]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],,,,,,,_________________]]]]]]]]]]]]]]]]]]]]]]]]]]],,,,,,,,]]..........#", + "#..........]| ######################### |]***],,,,,,,_________________]***]| ###################__,__,__|]..........#", + "#..........] : #&T#T&# : ]***]_________________,,,,,,,]***] #|||||||||||#&T#T&#,__,__,_ ]..........#", + "#..........] : # # # : ]***]_________________,,,,,,,]***] #|eeee|b <>|# # #_,__,__, ]..........#", + "#..........]| # # S#S # # |]***]________________________]***]| #|eeee|b <>|# S#S #__,__,__|]..........#", + "#..........] : #+###+# : ]***]________________________]***] #|eeee@b |#+###+#,__,__,_ ]..........#", + "#..........] : - <| cx#H+ :..........^", + "^..........#llllllll ##### SCS&SCS&SCS&SC:................................#l l|eeee|b ><| ##### &SCS&SCS#..........^", + "^..........#########mm#<#<#++###############................................#l l|eeee@b |##<#<#++#########..........^", + "^..........# #E > > # #................................#l l|eeeem |# > > E# #..........^", + "^..........: # # :................................#|||||||||||##M## # :..........^", + "^..........# = # #................................############# = #..........^", + "^..........: # %%% # :................................: = %%% # :..........^", + "^..........# # % % # #................................#lllllllllll# % % # #..........^", + "^..........############# % % # :................................############# % % #############..........^", + "^..........# : # % % # #................................# : # % % # : #..........^", + "^..........: : # % % # :................................: : # % % # : :..........^", + "^..........# = = % % # #................................# = = % % = = #..........^", + "^..........: : # % % # :................................: : # % % # : :..........^", + "^..........# : # % % = #................................# : # % % # : #..........^", + "^..........############# % % E############:................................#############E % % ############:..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# = % % = #................................# = % % = #..........^", + "^..........#############E % % #############................................############# % % E#############..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# = % % = #................................# = % % = #..........^", + "^..........############# % % E#############................................#############E % % #############..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :................................: # % % # :..........^", + "^..........# # % % # #................................# # % % # #..........^", + "^..........: # % % # :............::::::::............: # % % # :..........^", + "^..........# # % % # #.........::::''''''::::.........# # % % # #..........^", + "^..........: # % % # :.......:::'''''''''''':::.......: # % % # :..........^", + "^..........# # % % # #......::''''''''''''''''::......# # % % # #..........^", + "^..........: # % % # :.....::''''''''''''''''''::.....: # % % # :..........^", + "^..........# # % % # #.....:'''''''''''''''''''':.....# # % % # #..........^", + "^..........: # % % # ######:'''''''''''''''''''':###### # % % # :..........^", + "^..........# = % % = # :'''''''''''''''''''''': # = % % = #..........^", + "^..........#############E % % ############# :'''''''''''''''''''''': ############# % % E#############..........^", + "^..........# # % % #lllllslllll# :'''''''''''''''''''''': #lllllslllll# % % # #..........^", + "^..........: # % % = # :'''''''''''''''''''''': # = % % # :..........^", + "^..........# # % % #############-####''''''''''''''''''''''####-############# % % # #..........^", + "^..........: # % % !''''''''''''''''''''''! hhhhd1dhhhh % % # :..........^", + "^..........# # % % !''''''''''''''''''''''! hdd ddh % % # #..........^", + "^..........: # % % bttb bttb !''''''''''''''''''''''! % % # :..........^", + "^..........# # % % bttb bttb !''''''''''''''''''''''! hhh 1 hh % % # #..........^", + "^..........: # % % bttb bttb !''''''''''''''''''''''! hd h hd % % # :..........^", + "^..........# # % % !''''''''''''''''''''''! h dh % % # #..........^", + "^..........: # % % !''''''''''''''''''''''! 1 hhhh dh % % # :..........^", + "^..........# = % % bttb bttb !''''''''''''''''''''''! 1hh % % = #..........^", + "^..........############# % % bttb bttb !''''''''''''''''''''''! 1 % % #############..........^", + "^..........# : # % % bttb bttb !!''''''''''''''''''''!! hh dh hh % % # : #..........^", + "^..........: : # % % && && !!''''''''''''''''''!! hd hh hd % % # : :..........^", + "^..........# = = % % !!!!!!!!!!!!!!!!!!!! % % = = #..........^", + "^..........: : # % % % % # : :..........^", + "^..........# : # %%%%%%%%%%%%%%%%%%%%%%%%%%%%>>%%%%%%%%>>%%%%%%%%%%%%%%%%%%%%%%%%%%%% # : #..........^", + "^..........############# % % <|>%%%%%%%%>|< % % #############..........^", + "^..........: = %%%%%%%%%%%%%%%%%%%%%%%%%%%<<%%%%%%%%%%<<%%%%%%%%%%%%%%%%%%%%%%%%%%% = :..........^", + "^..........#+#+# # # #+#+#..........^", + "^..........#T#T#S&#E E#&S#T#T#..........^", + "^..........#########=###########=###########=### ###=###########=###########=#########..........^", + "^..........# : # : # : # # : # : # : #..........^", + "^..........: : # : # : # # : # : # : :..........^", + "^..........# = # = # = # #--#--# #--#--# # = # = # = #..........^", + "^..........: : # : # : # :ee@ee: :ee@ee: # : # : # : :..........^", + "^..........# : # : # : #DF&:ee:ee:1bb1:ee:ee:&FD# : # : # : #..........^", + "^..........##:#:###:#:###:#:###:#:###:#:###:#:#####|::|::|#::#|::|::|###################################:#:##..........^", + "^..........]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]..........^", + "^......................................................................................................................^", + "^......................................................................................................................^", + "^......................................................................................................................^", + "^......................................................................................................................^", + "^......................................................................................................................^", + "^......................................................................................................................^", + "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" + ], + "items": { + "&": [ { "item": "tools_science", "chance": 5 }, { "item": "trash", "chance": 50, "repeat": [ 1, 2 ] } ], + "f": [ { "item": "SUS_fridge_breakroom", "chance": 60 }, { "item": "fridgesnacks", "chance": 60, "repeat": [ 2, 10 ] } ], + "l": [ + { "item": "lab_shoes", "chance": 70, "repeat": 2 }, + { "item": "lab_pants", "chance": 70, "repeat": 2 }, + { "item": "lab_torso", "chance": 70, "repeat": 2 } + ], + "L": { "item": "cleaning", "chance": 70, "repeat": [ 1, 8 ] }, + "t": [ { "item": "snacks", "chance": 5 }, { "item": "dining", "chance": 10 } ] + }, + "palettes": [ "lab_upstairs_palette" ], + "place_nested": [ + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 45, 47 ] }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 48, 57 ], "repeat": 6 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 60, 69 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 84, 93 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 36, 45 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 48, 57 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 59, 69 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 89, "y": [ 45, 47 ] }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 89, "y": [ 48, 57 ], "repeat": 6 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 89, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 45, 47 ] }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 48, 57 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 59, 69 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 84, 93 ], "repeat": 7 }, + { "chunks": [ "psi_phavian_lab_office_5x5" ], "x": 12, "y": 36 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 18, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 12, "y": 42 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 72 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 84 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 36 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 72 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 18, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 12, "y": 96 }, + { "chunks": [ "psi_phavian_lab_office_5x5" ], "x": 103, "y": 36 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 83, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 77, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 97, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 103, "y": 42 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 77, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 77, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 77, "y": 72 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 72 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 84 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 97, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 103, "y": 96 }, + { "chunks": [ "psi_phavian_lab_office_W4x4" ], "x": 44, "y": 82 }, + { "chunks": [ "psi_phavian_lab_office_E4x4" ], "x": 72, "y": 82 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 18, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 12, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 30, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 24, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 42, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 36, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 73, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 79, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 85, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 91, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 97, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 103, "y": 106 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_z3.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_z3.json new file mode 100644 index 000000000..8d60df85b --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_z3.json @@ -0,0 +1,255 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ + "psi_phavian_lab_block3A0", + "psi_phavian_lab_block3B0", + "psi_phavian_lab_block3C0", + "psi_phavian_lab_block3D0", + "psi_phavian_lab_block3E0" + ], + [ + "psi_phavian_lab_block3A1", + "psi_phavian_lab_block3B1", + "psi_phavian_lab_block3C1", + "psi_phavian_lab_block3D1", + "psi_phavian_lab_block3E1" + ], + [ + "psi_phavian_lab_block3A2", + "psi_phavian_lab_block3B2", + "psi_phavian_lab_block3C2", + "psi_phavian_lab_block3D2", + "psi_phavian_lab_block3E2" + ], + [ + "psi_phavian_lab_block3A3", + "psi_phavian_lab_block3B3", + "psi_phavian_lab_block3C3", + "psi_phavian_lab_block3D3", + "psi_phavian_lab_block3E3" + ], + [ + "psi_phavian_lab_block3A4", + "psi_phavian_lab_block3B4", + "psi_phavian_lab_block3C4", + "psi_phavian_lab_block3D4", + "psi_phavian_lab_block3E4" + ] + ], + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "...........#########::######################................................######################::#########...........", + "...........#llllllfC st#LL#T#T#T#T#H#H#H#H#................................#l cx#H+ #T#T#T#T#...........", + "...........: st# #+#+#+#+#+#+#+#+#................................#l l|||||||M||| cx### #+#+#+#+#...........", + "...........: st#& :................................#l l|eeee|b <>| cx#H+ :...........", + "...........#llllllll ##### SCS&SCS&SCS&SC:................................#l l|eeee|b <>| ##### &SCS&SCS#...........", + "...........#########mm#>#>#++###############................................#l l|eeee@b |##>#>#++#########...........", + "...........# # < < E# #................................#l l|eeeem |# < < E# #...........", + "...........: # # :................................#|||||||||||##M## # :...........", + "...........# = # #................................############# = #...........", + "...........: # %%% # :................................: = %%% # :...........", + "...........# # % % # #................................#lllllllllll# % % # #...........", + "...........############# % % # :................................############# % % #############...........", + "...........# : # % % # #................................# : # % % # : #...........", + "...........: : # % % # :................................: : # % % # : :...........", + "...........# = = % % # #................................# = = % % = = #...........", + "...........: : # % % # :................................: : # % % # : :...........", + "...........# : # % % = #................................# : # % % # : #...........", + "...........#############E % % 1############:................................#############1 % % E############:...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# = % % = #................................# = % % = #...........", + "...........#############1 % % E#############................................#############E % % 1#############...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# = % % = #................................# = % % = #...........", + "...........#############E % % 1#############................................#############1 % % E#############...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :............________............: # % % # :...........", + "...........# # % % # #.........___,,,,,,,,___.........# # % % # #...........", + "...........: # % % # :.......__,,,,,,,,,,,,,,__.......: # % % # :...........", + "...........# # % % # #......_,,,,,,,,,,,,,,,,,,_......# # % % # #...........", + "...........: # % % # :....._,,,,,,,,,,,,,,,,,,,,_.....: # % % # :...........", + "...........# # % % # #....._,,,,,,,,,,,,,,,,,,,,_.....# # % % # #...........", + "...........: # % % # #::::#::::#::::#::#::::#::::#::::# # % % # :...........", + "...........# = % % = # # # #bb# # # # = % % = #...........", + "...........#############1 % % E############# # # # # # # #############E % % 1#############...........", + "...........# # % % #lllllslllll# # # # # # # #lllllslllll# % % # #...........", + "...........: # % % = # # # - - # # # = % % # :...........", + "...........# # % % #############-####-######### #########-####-############# % % # #...........", + "...........: # % % = 1# # # #1 = % % # :...........", + "...........# # % % = 1# # # #1 = % % # #...........", + "...........: # % % b##################### # # #####################b % % # :...........", + "...........# # % % b# # # # # - - # # # # #b % % # #...........", + "...........: # % % b# # # # ###### ###### # # # #b % % # :...........", + "...........# # % % b# # # # # # # # # # # #b % % # #...........", + "...........: # % % b# # # # # # # # # # # #b % % # :...........", + "...........# = % % b#-####-####-####-#### # # ####-####-####-####-#b % % = #...........", + "...........#############1 % % h# - - #h % % 1#############...........", + "...........# : # % % bttb bttb bttb h######==######h bttb bttb bttb % % # : #...........", + "...........: : # % % bttb bttb bttb hhh1 1hhh bttb bttb bttb % % # : :...........", + "...........# = = % % bttb bttb bttb bttb bttb bttb % % = = #...........", + "...........: : # % % % % # : :...........", + "...........# : # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # : #...........", + "...........############# % % >|%%%%%%%%%%|> % % #############...........", + "...........: = %%%%%%%%%%%%%%%%%%%%%%%%%%%>>%%%%%%%%%%>>%%%%%%%%%%%%%%%%%%%%%%%%%%% = :...........", + "...........#+#+# #1 1# #+#+#...........", + "...........#T#T#S&#E E#&S#T#T#...........", + "...........#########=###########=###########=### ###=###########=###########=#########...........", + "...........# : # : # : # # : # : # : #...........", + "...........: : # : # : # # : # : # : :...........", + "...........# = # = # = # #--#--# #--#--# # = # = # = #...........", + "...........: : # : # : # :ee@ee: :ee@ee: # : # : # : :...........", + "...........# : # : # : #DF&:ee:ee:1bb1:ee:ee:&FD# : # : # : #...........", + "...........##:#:###:#:###:#:###:#:###:#:###:#:#####|::|::|#::#|::|::|###################################:#:##...........", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................" + ], + "items": { + "&": [ { "item": "tools_science", "chance": 5 }, { "item": "trash", "chance": 50, "repeat": [ 1, 2 ] } ], + "f": [ { "item": "SUS_fridge_breakroom", "chance": 60 }, { "item": "fridgesnacks", "chance": 60, "repeat": [ 2, 10 ] } ], + "l": [ + { "item": "lab_shoes", "chance": 70, "repeat": 2 }, + { "item": "lab_pants", "chance": 70, "repeat": 2 }, + { "item": "lab_torso", "chance": 70, "repeat": 2 } + ], + "L": { "item": "cleaning", "chance": 70, "repeat": [ 1, 8 ] }, + "t": [ { "item": "snacks", "chance": 5 }, { "item": "dining", "chance": 10 } ] + }, + "palettes": [ "lab_upstairs_palette" ], + "place_nested": [ + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 45, 47 ] }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 48, 57 ], "repeat": 6 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 60, 69 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 84, 93 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 36, 45 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 48, 57 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 59, 69 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 89, "y": [ 45, 47 ] }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 89, "y": [ 48, 57 ], "repeat": 6 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 89, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 48, 57 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 59, 69 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 84, 93 ], "repeat": 7 }, + { "chunks": [ "psi_phavian_lab_office_5x5" ], "x": 12, "y": 36 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 18, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 12, "y": 42 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 72 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 84 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 36 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 72 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 18, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 12, "y": 96 }, + { "chunks": [ "psi_phavian_lab_office_5x5" ], "x": 103, "y": 36 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 83, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 77, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 97, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 103, "y": 42 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 77, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 77, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 77, "y": 72 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 72 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 84 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 97, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 103, "y": 96 }, + { "chunks": [ "psi_phavian_lab_office_SWdoor4x4" ], "x": 44, "y": 82 }, + { "chunks": [ "psi_phavian_lab_office_SWdoor4x4" ], "x": 49, "y": 82 }, + { "chunks": [ "psi_phavian_lab_office_SWdoor4x4" ], "x": 34, "y": 90 }, + { "chunks": [ "psi_phavian_lab_office_SWdoor4x4" ], "x": 39, "y": 90 }, + { "chunks": [ "psi_phavian_lab_office_SWdoor4x4" ], "x": 44, "y": 90 }, + { "chunks": [ "psi_phavian_lab_office_SWdoor4x4" ], "x": 49, "y": 90 }, + { "chunks": [ "psi_phavian_lab_office_SEdoor4x4" ], "x": 54, "y": 82 }, + { "chunks": [ "psi_phavian_lab_office_SEdoor4x4" ], "x": 54, "y": 87 }, + { "chunks": [ "psi_phavian_lab_office_SEdoor4x4" ], "x": 54, "y": 92 }, + { "chunks": [ "psi_phavian_lab_office_SWdoor4x4" ], "x": 62, "y": 82 }, + { "chunks": [ "psi_phavian_lab_office_SWdoor4x4" ], "x": 62, "y": 87 }, + { "chunks": [ "psi_phavian_lab_office_SWdoor4x4" ], "x": 62, "y": 92 }, + { "chunks": [ "psi_phavian_lab_office_SEdoor4x4" ], "x": 67, "y": 82 }, + { "chunks": [ "psi_phavian_lab_office_SEdoor4x4" ], "x": 72, "y": 82 }, + { "chunks": [ "psi_phavian_lab_office_SEdoor4x4" ], "x": 67, "y": 90 }, + { "chunks": [ "psi_phavian_lab_office_SEdoor4x4" ], "x": 72, "y": 90 }, + { "chunks": [ "psi_phavian_lab_office_SEdoor4x4" ], "x": 77, "y": 90 }, + { "chunks": [ "psi_phavian_lab_office_SEdoor4x4" ], "x": 82, "y": 90 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 18, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 12, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 30, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 24, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 42, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 36, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 73, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 79, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 85, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 91, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 97, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 103, "y": 106 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_z4.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_z4.json new file mode 100644 index 000000000..10c576163 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen/psi_surface_lab/psi_lab_surface_z4.json @@ -0,0 +1,243 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ + "psi_phavian_lab_block4A0", + "psi_phavian_lab_block4B0", + "psi_phavian_lab_block4C0", + "psi_phavian_lab_block4D0", + "psi_phavian_lab_block4E0" + ], + [ + "psi_phavian_lab_block4A1", + "psi_phavian_lab_block4B1", + "psi_phavian_lab_block4C1", + "psi_phavian_lab_block4D1", + "psi_phavian_lab_block4E1" + ], + [ + "psi_phavian_lab_block4A2", + "psi_phavian_lab_block4B2", + "psi_phavian_lab_block4C2", + "psi_phavian_lab_block4D2", + "psi_phavian_lab_block4E2" + ], + [ + "psi_phavian_lab_block4A3", + "psi_phavian_lab_block4B3", + "psi_phavian_lab_block4C3", + "psi_phavian_lab_block4D3", + "psi_phavian_lab_block4E3" + ], + [ + "psi_phavian_lab_block4A4", + "psi_phavian_lab_block4B4", + "psi_phavian_lab_block4C4", + "psi_phavian_lab_block4D4", + "psi_phavian_lab_block4E4" + ] + ], + "object": { + "fill_ter": "t_strconc_floor", + "rows": [ + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "...........#########::####::################................................######################::#########...........", + "...........#llllllfC st#L C#T#T#T#H#H#H#H#................................#l cx#H+ #T#T#T#T#...........", + "...........: st#L &#+#+#+#+#+#+#+#................................#l l|||||||m||| cx### #+#+#+#+#...........", + "...........: st### :................................#l l|eeee|b > | ###H+ :...........", + "...........#llllllll st#<# SCS&SCS&SCS&SC:................................#l l|eeee|b > | #<### &SCS&SCS#...........", + "...........#########mm###m#++###############................................#l l|eeee@b |##m###++#########...........", + "...........# # > > E# #................................#l l|eeeem |# > > E# #...........", + "...........: # # :................................#|||||||||||##m## # :...........", + "...........# = # #................................############# = #...........", + "...........: # %%% # :................................: = %%% # :...........", + "...........# # % % # #................................#lllllllllll# % % # #...........", + "...........############# % % # :................................############# % % #############...........", + "...........# : # % % # #................................# : # % % # : #...........", + "...........: : # % % # :................................: : # % % # : :...........", + "...........# = = % % # #................................# = = % % = = #...........", + "...........: : # % % # :................................: : # % % # : :...........", + "...........# : # % % = #................................# : # % % # : #...........", + "...........#############E % % 1############:................................#############1 % % E############:...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# = % % = #................................# = % % = #...........", + "...........#############1 % % E#############................................#############E % % 1#############...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# = % % = #................................# = % % = #...........", + "...........#############E % % 1#############................................#############1 % % E#############...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :................................: # % % # :...........", + "...........# # % % # #................................# # % % # #...........", + "...........: # % % # :________________________________: # % % # :...........", + "...........# = % % = #________________________________# = % % = #...........", + "...........#############1 % % E#############________________________________#############E % % 1#############...........", + "...........# # % % # #________________________________# # % % # #...........", + "...........: # % % # :________________________________: # % % # :...........", + "...........# # % % # #________________________________# # % % # #...........", + "...........: # % % # :________________________________: # % % # :...........", + "...........# # % % # #________________________________# # % % # #...........", + "...........: # % % # :________________________________: # % % # :...........", + "...........# # % % # #________________________________# # % % # #...........", + "...........: # % % # :________________________________: # % % # :...........", + "...........# # % % # #________________________________# # % % # #...........", + "...........: # % % # :________________________________: # % % # :...........", + "...........# = % % = #________________________________# = % % = #...........", + "...........#############E % % 1#############________________________________#############1 % % E#############...........", + "...........# : # % % # : #________________________________# : # % % # : #...........", + "...........: : # % % # : :________________________________: : # % % # : :...........", + "...........# = = % % = = #___,,,,,,,,,,,,,,,,,,,,,,,,,,___# = = % % = = #...........", + "...........: : # % % # : :___,,,,,,,,,,,,,,,,,,,,,,,,,,___: : # % % # : :...........", + "...........# : # % % # : #___,,,,,,,,,,,,,,,,,,,,,,,,,,___# : # % % # : #...........", + "...........############# % % ##############______________,,______________############## % % #############...........", + "...........: = % % 1#:::::::::::#__,,__#:::::::::::#1 % % = :...........", + "...........#+#+# #1 %%% bttb :__,,__: bttb %%% 1# #+#+#...........", + "...........#T#T#S&#E bttb :__,,__: bttb E#&S#T#T#...........", + "...........#########=###########=###########=### bttb :__,,__: bttb ###=###########=###########=#########...........", + "...........# : # : # : # ##_,,_## # : # : # : #...........", + "...........: : # : # : # :_,,_: # : # : # : :...........", + "...........# = # = # = #& #--#--#_,,_#--#--# &# = # = # = #...........", + "...........: : # : # : #F :ee@ee:_,,_:ee@ee: F# : # : # : :...........", + "...........# : # : # : #D :ee:ee:_,,_:ee:ee: D# : # : # : #...........", + "...........##:#:###:#:###:#:###:#:###:#:###:#:#####|::|::|____|::|::|###################################:#:##...........", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................", + "........................................................................................................................" + ], + "items": { + "&": [ { "item": "tools_science", "chance": 5 }, { "item": "trash", "chance": 50, "repeat": [ 1, 2 ] } ], + "f": [ { "item": "SUS_fridge_breakroom", "chance": 60 }, { "item": "fridgesnacks", "chance": 60, "repeat": [ 2, 10 ] } ], + "l": [ + { "item": "lab_shoes", "chance": 70, "repeat": 2 }, + { "item": "lab_pants", "chance": 70, "repeat": 2 }, + { "item": "lab_torso", "chance": 70, "repeat": 2 } + ], + "L": { "item": "cleaning", "chance": 70, "repeat": [ 1, 8 ] }, + "t": [ { "item": "snacks", "chance": 5 }, { "item": "dining", "chance": 10 } ] + }, + "palettes": [ "lab_upstairs_palette" ], + "place_nested": [ + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 45, 47 ] }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 48, 57 ], "repeat": 6 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 60, 69 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 24, "y": [ 84, 93 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 36, 45 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 48, 57 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 59, 69 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 30, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 89, "y": [ 45, 47 ] }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 89, "y": [ 48, 57 ], "repeat": 6 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 89, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 48, 57 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 59, 69 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 72, 81 ], "repeat": 7 }, + { "chunks": [ "surface_sub_hall_clutter" ], "x": 95, "y": [ 84, 93 ], "repeat": 7 }, + { "chunks": [ "psi_phavian_lab_office_5x5" ], "x": 12, "y": 36 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 18, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 12, "y": 42 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 72 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 12, "y": 84 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 36 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 72 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 32, "y": 84 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 18, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 12, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 32, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 38, "y": 96 }, + { "chunks": [ "psi_phavian_lab_office_5x5" ], "x": 103, "y": 36 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 83, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 77, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 97, "y": 42 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 103, "y": 42 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 77, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 77, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 77, "y": 72 }, + { "chunks": [ "psi_phavian_lab_workspace_Edoor_11x11" ], "x": 77, "y": 84 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 48 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 60 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 72 }, + { "chunks": [ "psi_phavian_lab_workspace_Wdoor_11x11" ], "x": 97, "y": 84 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 83, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 77, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 103, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 97, "y": 96 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 18, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 12, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 30, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 24, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 42, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 36, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 73, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 79, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 85, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 91, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_front_5x5" ], "x": 97, "y": 106 }, + { "chunks": [ "psi_phavian_lab_2partworkspace_back_5x5" ], "x": 103, "y": 106 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mapgen_palettes/survivor_palette.json b/data/Mainline_mods/Mods/MindOverMatter/mapgen_palettes/survivor_palette.json new file mode 100644 index 000000000..a5e65bc7c --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mapgen_palettes/survivor_palette.json @@ -0,0 +1,76 @@ +[ + { + "type": "palette", + "id": "house_survivor_palette", + "//": "Overwrite of survivor house palette containing some matrix crystls and products", + "palettes": [ "standard_domestic_palette" ], + "remove_all": { "f": { }, "m": { }, "F": { }, "6": { } }, + "furniture": { + "f": "f_table", + "m": "f_glass_fridge", + "F": "f_fridge", + "6": "f_rack_wood", + ":": "f_sandbag_wall", + "¶": "f_sandbag_wall" + }, + "terrain": { + "+": [ [ "t_door_c", 3 ], [ "t_door_o", 3 ], [ "t_door_b", 1 ], [ "t_door_frame", 1 ], "t_door_boarded" ], + "*": [ [ "t_door_boarded", 5 ], [ "t_rdoor_boarded", 2 ], "t_rdoor_b", "t_door_b", "t_door_frame" ], + "o": [ + [ "t_window_boarded", 7 ], + [ "t_window_boarded_noglass", 5 ], + [ "t_window_reinforced", 3 ], + [ "t_window_reinforced_noglass", 2 ], + "t_window_frame", + "t_window_empty" + ] + }, + "items": { + "f": [ + { "item": "groce_condiment", "chance": 10, "repeat": [ 1, 2 ] }, + { "item": "dining", "chance": 10 }, + { "item": "cannedfood", "chance": 20, "repeat": [ 1, 2 ] } + ], + "m": { "item": "SUS_fridge_survivor", "chance": 48 }, + "F": { "item": "SUS_fridge_survivor", "chance": 60 }, + "J": [ { "item": "cannedfood", "chance": 50, "repeat": [ 1, 2 ] } ], + "6": [ + { "item": "SUS_pantry", "chance": 12 }, + { "item": "cannedfood", "chance": 10, "repeat": [ 1, 2 ] }, + { "item": "matrix_shard_group", "chance": 5, "repeat": [ 1, 2 ] }, + { "item": "collection_matrix_dust", "chance": 2, "repeat": [ 1, 2 ] }, + { "item": "dist_matrix_crystals_rare", "chance": 5 } + ] + }, + "nested": { + "¶": { "chunks": [ [ "destroyed_glass_door_wall", 50 ], [ "null", 50 ] ] }, + ":": { "chunks": [ [ "destroyed_glass_door_wall", 50 ], [ "null", 50 ] ] } + }, + "mapping": { + "÷": { + "traps": [ + [ "tr_nailboard", 3 ], + [ "tr_tripwire", 3 ], + [ "tr_bubblewrap", 2 ], + [ "tr_beartrap", 2 ], + [ "tr_shotgun_2", 1 ], + [ "tr_shotgun_2_1", 1 ], + [ "tr_shotgun_1", 1 ], + [ "tr_null", 4 ] + ] + }, + " ": { + "item": [ + { "item": "can_food", "chance": 4 }, + { "item": "can_medium", "chance": 1 }, + { "item": "can_food_big", "chance": 1 }, + { "item": "jar_glass_sealed", "chance": 1 }, + { "item": "jar_3l_glass_sealed", "chance": 1 }, + { "item": "can_drink", "chance": 1 }, + { "item": "bottle_glass", "chance": 1 }, + { "item": "bottle_plastic", "chance": 1 } + ] + } + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/materials.json b/data/Mainline_mods/Mods/MindOverMatter/materials.json new file mode 100644 index 000000000..c6cdadc11 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/materials.json @@ -0,0 +1,32 @@ +[ + { + "type": "material", + "id": "telekinetic_force", + "name": "Telekinetic Force", + "density": 1.5, + "specific_heat_liquid": 0.82, + "specific_heat_solid": 0.45, + "latent_heat": 273, + "soft": true, + "chip_resist": 6, + "resist": { "bash": 3, "cut": 4, "acid": 4, "heat": 0, "bullet": 6, "electric": 2 }, + "breathability": "SECOND_SKIN", + "dmg_adj": [ "damaged", "strained", "fractured", "eradicated" ], + "bash_dmg_verb": "rippled", + "cut_dmg_verb": "pierced" + }, + { + "type": "material", + "id": "nether_crystal", + "name": "Netherum Crystal", + "density": 15, + "specific_heat_liquid": 0.52, + "specific_heat_solid": 0.52, + "latent_heat": 5200, + "chip_resist": 100, + "resist": { "bash": 5, "cut": 5, "acid": 100, "heat": 10, "bullet": 2, "electric": 100 }, + "dmg_adj": [ "marked", "chipped", "cracked", "shattered" ], + "bash_dmg_verb": "chipped", + "cut_dmg_verb": "scratched" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/modinfo.json b/data/Mainline_mods/Mods/MindOverMatter/modinfo.json new file mode 100644 index 000000000..ad2564a57 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/modinfo.json @@ -0,0 +1,12 @@ +[ + { + "type": "MOD_INFO", + "id": "mindovermatter", + "name": "Mind Over Matter", + "authors": [ "StandingStorm" ], + "maintainers": [ "StandingStorm" ], + "description": "Psionic powers for Cataclysm", + "category": "content", + "dependencies": [ "dda" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/monstergroups.json b/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/monstergroups.json new file mode 100644 index 000000000..d992b8d15 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/monstergroups.json @@ -0,0 +1,15 @@ +[ + { + "name": "GROUP_FERAL_PSYCHIC_DM", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_feral_human_bio_dm", "weight": 1, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_clair_dm", "weight": 1 }, + { "monster": "mon_feral_human_pyrokin_dm", "weight": 1, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_telekin_dm", "weight": 1, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_teep_dm", "weight": 1 }, + { "monster": "mon_feral_human_porter_dm", "weight": 1 }, + { "monster": "mon_feral_human_vita_dm", "weight": 1 } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/monsters.json b/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/monsters.json new file mode 100644 index 000000000..88e26488e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/monsters.json @@ -0,0 +1,72 @@ +[ + { + "id": "mon_feral_human_bio_dm", + "copy-from": "mon_feral_human_bio", + "type": "MONSTER", + "species": [ "HUMAN" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_feral_human_clair_dm", + "copy-from": "mon_feral_human_clair", + "type": "MONSTER", + "species": [ "HUMAN" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_feral_human_pyrokin_dm", + "copy-from": "mon_feral_human_pyrokin", + "type": "MONSTER", + "species": [ "HUMAN" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_feral_human_telekin_dm", + "copy-from": "mon_feral_human_telekin", + "type": "MONSTER", + "species": [ "HUMAN" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_feral_human_teep_dm", + "copy-from": "mon_feral_human_teep", + "type": "MONSTER", + "species": [ "HUMAN" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_feral_human_porter_dm", + "copy-from": "mon_feral_human_porter", + "type": "MONSTER", + "species": [ "HUMAN" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_feral_human_vita_dm", + "copy-from": "mon_feral_human_vita", + "type": "MONSTER", + "species": [ "HUMAN" ], + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/overmap_specials.json b/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/overmap_specials.json new file mode 100644 index 000000000..771d89fe5 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/overmap_specials.json @@ -0,0 +1,16 @@ +[ + { + "type": "overmap_special", + "id": "dm_office_cubical_phavian", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "office_cubical_phavian_north" }, + { "point": [ 0, 0, 1 ], "overmap": "office_cubical_phavian_roof_north" }, + { "point": [ 0, 0, -1 ], "overmap": "office_cubical_phavian_basement_north" }, + { "point": [ 0, 0, -2 ], "overmap": "office_cubical_phavian_subbasement_north" } + ], + "locations": [ "land" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/scenarios.json b/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/scenarios.json new file mode 100644 index 000000000..f8cfb6070 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/modinteractions/Defense_Mode/scenarios.json @@ -0,0 +1,14 @@ +[ + { + "copy-from": "defense_mode_fortified", + "type": "scenario", + "extend": { "allowed_locs": [ "sloc_phavian_office" ] }, + "id": "defense_mode_fortified" + }, + { + "type": "start_location", + "id": "sloc_phavian_office", + "name": "Office?", + "terrain": [ "office_cubical_phavian" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monstergroups/monstergroups_edited.json b/data/Mainline_mods/Mods/MindOverMatter/monstergroups/monstergroups_edited.json new file mode 100644 index 000000000..43bf98b5a --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monstergroups/monstergroups_edited.json @@ -0,0 +1,188 @@ +[ + { + "name": "GROUP_PARK_SCENIC", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_feral_human_bio", "weight": 2, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_clair", "weight": 3 }, + { "monster": "mon_feral_human_pyrokin", "weight": 1, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_telekin", "weight": 2, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_teep", "weight": 3 }, + { "monster": "mon_feral_human_porter", "weight": 1 }, + { "monster": "mon_feral_human_vita", "weight": 2 } + ] + }, + { + "name": "GROUP_PARK_DOG", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_feral_human_bio", "weight": 2, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_clair", "weight": 3 }, + { "monster": "mon_feral_human_pyrokin", "weight": 1, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_telekin", "weight": 2, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_teep", "weight": 3 }, + { "monster": "mon_feral_human_porter", "weight": 1 }, + { "monster": "mon_feral_human_vita", "weight": 2 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ZOMBIE", + "monsters": [ + { "monster": "mon_feral_human_bio", "weight": 1, "cost_multiplier": 4 }, + { "monster": "mon_feral_human_clair", "weight": 1, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_pyrokin", "weight": 1, "cost_multiplier": 5 }, + { "monster": "mon_feral_human_telekin", "weight": 1, "cost_multiplier": 4 }, + { "monster": "mon_feral_human_teep", "weight": 1, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_porter", "weight": 1, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_vita", "weight": 1, "cost_multiplier": 3 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_PREPPER_HOUSE", + "monsters": [ + { "monster": "mon_feral_human_bio", "weight": 10, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_clair", "weight": 15 }, + { "monster": "mon_feral_human_pyrokin", "weight": 5, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_telekin", "weight": 10, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_teep", "weight": 15 }, + { "monster": "mon_feral_human_porter", "weight": 5 }, + { "monster": "mon_feral_human_vita", "weight": 15 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_CHURCH_ZOMBIE", + "monsters": [ + { "monster": "mon_feral_human_clair", "weight": 15, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_vita", "weight": 15 } + ] + }, + { + "name": "GROUP_MANSION", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_feral_human_clair", "weight": 2, "cost_multiplier": 10 }, + { "monster": "mon_feral_human_teep", "weight": 1, "cost_multiplier": 10 } + ] + }, + { + "name": "FERAL_HUMANS", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_feral_human_bio", "weight": 1, "cost_multiplier": 4 }, + { "monster": "mon_feral_human_clair", "weight": 1, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_pyrokin", "weight": 1, "cost_multiplier": 6 }, + { "monster": "mon_feral_human_telekin", "weight": 1, "cost_multiplier": 5 }, + { "monster": "mon_feral_human_teep", "weight": 1, "cost_multiplier": 4 }, + { "monster": "mon_feral_human_porter", "weight": 1, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_vita", "weight": 1, "cost_multiplier": 3 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_CENTRAL_LAB", + "monsters": [ + { "monster": "mon_feral_scientist_psychic", "weight": 10, "cost_multiplier": 10 }, + { "monster": "mon_feral_security_psychic", "weight": 12, "cost_multiplier": 4 }, + { "monster": "mon_feral_security_captain_psychic", "weight": 6, "cost_multiplier": 10 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 50 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 20, "pack_size": [ 1, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB", + "monsters": [ + { "monster": "mon_feral_scientist_psychic", "weight": 15, "cost_multiplier": 10 }, + { "monster": "mon_feral_security_psychic", "weight": 12, "cost_multiplier": 4 }, + { "monster": "mon_feral_security_captain_psychic", "weight": 6, "cost_multiplier": 10 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 50 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 20, "pack_size": [ 1, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB_SURFACE", + "monsters": [ + { "monster": "mon_feral_scientist_psychic", "weight": 10, "cost_multiplier": 10 }, + { "monster": "mon_feral_security_psychic", "weight": 12, "cost_multiplier": 4 }, + { "monster": "mon_feral_security_captain_psychic", "weight": 6, "cost_multiplier": 10 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 50 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 20, "pack_size": [ 1, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_MICROLAB", + "monsters": [ + { "monster": "mon_feral_scientist_psychic", "weight": 2, "cost_multiplier": 10 }, + { "monster": "mon_feral_security_psychic", "weight": 12, "cost_multiplier": 4 }, + { "monster": "mon_feral_security_captain_psychic", "weight": 6, "cost_multiplier": 10 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 60 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 5, "pack_size": [ 1, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB_BASIC_SECURITY", + "monsters": [ + { "monster": "mon_feral_security_psychic", "weight": 5, "cost_multiplier": 4 }, + { "monster": "mon_feral_security_captain_psychic", "weight": 2, "cost_multiplier": 10 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DISTORTED_MICROLAB", + "monsters": [ + { "monster": "mon_feral_scientist_psychic", "weight": 20, "cost_multiplier": 1 }, + { "monster": "mon_feral_human_porter3", "weight": 35, "cost_multiplier": 1 }, + { "monster": "mon_nether_eater", "weight": 60, "cost_multiplier": 1 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB_RESEARCHERS", + "monsters": [ + { "monster": "mon_feral_scientist_psychic", "weight": 10, "cost_multiplier": 5 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 150 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 5, "pack_size": [ 1, 2 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_NETHER_FATIGUE_FIELD", + "monsters": [ { "monster": "mon_nether_eater", "weight": 100, "cost_multiplier": 0 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_NETHER", + "monsters": [ { "monster": "mon_nether_eater", "weight": 120, "cost_multiplier": 0 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_NETHER_PORTAL", + "monsters": [ { "monster": "mon_nether_eater", "weight": 200, "cost_multiplier": 0 } ] + }, + { + "name": "GROUP_CIVILIANS_STANDARD", + "type": "monstergroup", + "monsters": [ { "group": "GROUP_CIVILIANS_PSYCHIC_FERAL", "weight": 10, "cost_multiplier": 2 } ] + }, + { + "name": "GROUP_BEARS", + "type": "monstergroup", + "monsters": [ { "monster": "mon_bandersnatch", "weight": 20, "starts": "45 days", "cost_multiplier": 5 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_CAVE", + "monsters": [ { "monster": "mon_hidebehind", "weight": 10, "starts": "45 days", "cost_multiplier": 5 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_WILDERNESS_FOREST_MAMMAL_WINTER", + "monsters": [ { "monster": "mon_hidebehind", "weight": 1, "starts": "45 days", "cost_multiplier": 10 } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monstergroups/monstergroups_new.json b/data/Mainline_mods/Mods/MindOverMatter/monstergroups/monstergroups_new.json new file mode 100644 index 000000000..043388893 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monstergroups/monstergroups_new.json @@ -0,0 +1,179 @@ +[ + { + "name": "GROUP_FERAL_PSYCHIC", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_feral_human_bio", "weight": 1, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_clair", "weight": 1 }, + { "monster": "mon_feral_human_pyrokin", "weight": 1, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_telekin", "weight": 1, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_teep", "weight": 1 }, + { "monster": "mon_feral_human_porter", "weight": 1 }, + { "monster": "mon_feral_human_vita", "weight": 1 } + ] + }, + { + "name": "GROUP_FERAL_BIOKINETIC", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_feral_human_bio", "weight": 25 }, + { "monster": "mon_feral_human_bio2", "weight": 8 }, + { "monster": "mon_feral_human_bio3", "weight": 1 } + ] + }, + { + "name": "GROUP_FERAL_CLAIRSENTIENT", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_feral_human_clair", "weight": 25 }, + { "monster": "mon_feral_human_clair2", "weight": 8 }, + { "monster": "mon_feral_human_clair3", "weight": 1 } + ] + }, + { + "name": "GROUP_FERAL_TELEPATH", + "type": "monstergroup", + "monsters": [ { "monster": "mon_feral_human_teep", "weight": 25 }, { "monster": "mon_feral_human_teep2", "weight": 8 } ] + }, + { + "name": "GROUP_CRYSTAL_FIELD", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_feral_human_bio", "weight": 60, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_clair", "weight": 60 }, + { "monster": "mon_feral_human_pyrokin", "weight": 60, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_telekin", "weight": 60, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_teep", "weight": 60 }, + { "monster": "mon_feral_human_porter", "weight": 60 }, + { "monster": "mon_feral_human_vita", "weight": 60 }, + { "monster": "mon_gelatin", "weight": 40 }, + { "monster": "mon_darkman", "weight": 15, "cost_multiplier": 0 }, + { "monster": "mon_gozu", "weight": 60, "cost_multiplier": 0 }, + { "monster": "mon_flying_polyp", "weight": 60, "cost_multiplier": 0 }, + { "monster": "mon_hunting_horror", "weight": 60, "cost_multiplier": 0 }, + { "monster": "mon_unseen_hunter", "weight": 60, "cost_multiplier": 2 }, + { "monster": "mon_flaming_eye", "weight": 25, "cost_multiplier": 10 }, + { "monster": "mon_kreck", "weight": 60, "cost_multiplier": 5 }, + { "monster": "mon_gracke", "weight": 100 }, + { "monster": "mon_mi_go", "weight": 60 }, + { "monster": "mon_mi_go_slaver", "weight": 50, "cost_multiplier": 2, "starts": "210 hours" }, + { "monster": "mon_mi_go_myrmidon", "weight": 10, "cost_multiplier": 4, "starts": "210 hours" }, + { "monster": "mon_nether_eater", "weight": 60 } + ] + }, + { + "name": "GROUP_CRYSTAL_FIELD_PSYCHOACTIVE", + "type": "monstergroup", + "monsters": [ { "monster": "mon_swarm_structure", "weight": 60, "cost_multiplier": 2 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB_RESEARCH", + "default": "mon_zombie_scientist_phavian", + "monsters": [ + { "monster": "mon_feral_labsecurity_9mm", "weight": 18, "cost_multiplier": 8 }, + { "monster": "mon_feral_labsecurity_flashlight", "weight": 18, "cost_multiplier": 2 }, + { "monster": "mon_feral_scientist_scalpel", "weight": 20, "cost_multiplier": 0 }, + { "monster": "mon_feral_scientist_psychic", "weight": 5, "cost_multiplier": 5 }, + { "monster": "mon_feral_security_captain_psychic", "weight": 8, "cost_multiplier": 10 }, + { "monster": "mon_feral_security_psychic", "weight": 25, "cost_multiplier": 5 }, + { "group": "GROUP_FERAL_PSYCHIC", "weight": 25, "cost_multiplier": 3 }, + { "monster": "mon_zombie_labsecurity", "weight": 400, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_scientist", "weight": 100 }, + { "monster": "mon_zombie_scientist", "weight": 40, "pack_size": [ 1, 5 ] }, + { "monster": "mon_zombie_scientist_phavian", "weight": 300 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 150, "pack_size": [ 1, 5 ] }, + { "monster": "mon_zombie_technician", "weight": 100, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_tool", "weight": 25 }, + { "monster": "mon_zombie_hazmat", "weight": 200 }, + { "monster": "mon_zombie_necro", "weight": 15, "cost_multiplier": 5 }, + { "monster": "mon_zombie_electric", "weight": 50, "cost_multiplier": 2 }, + { "monster": "mon_science_bot", "weight": 80, "cost_multiplier": 5 }, + { "monster": "mon_secubot", "weight": 1, "cost_multiplier": 5 }, + { "monster": "mon_zombie", "weight": 100, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_fat", "weight": 20, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_tough", "weight": 40, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_brute", "weight": 10, "cost_multiplier": 5 }, + { "monster": "mon_zombie_crawler", "weight": 50 }, + { "monster": "mon_manhack", "weight": 200 }, + { "monster": "mon_manhack", "weight": 45, "pack_size": [ 2, 3 ] }, + { "monster": "mon_mutant_experimental", "weight": 3 }, + { "monster": "mon_skitterbot", "weight": 85 }, + { "monster": "mon_skitterbot", "weight": 85, "pack_size": [ 2, 3 ] }, + { "monster": "mon_skitterbot", "weight": 10, "pack_size": [ 8, 12 ] }, + { "monster": "mon_blob_small", "weight": 10, "pack_size": [ 1, 4 ] }, + { "monster": "mon_zombie_armored", "weight": 5, "cost_multiplier": 5 }, + { "monster": "mon_zombie_brute_shocker", "weight": 5, "cost_multiplier": 5 }, + { "monster": "mon_lab_rat", "weight": 50, "cost_multiplier": 20, "pack_size": [ 4, 8 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_PHAVIAN_OFFICE", + "default": "mon_zombie_scientist_phavian", + "monsters": [ + { "monster": "mon_feral_labsecurity_9mm", "weight": 18, "cost_multiplier": 8 }, + { "monster": "mon_feral_labsecurity_flashlight", "weight": 18, "cost_multiplier": 2 }, + { "monster": "mon_feral_scientist_scalpel", "weight": 20, "cost_multiplier": 0 }, + { "monster": "mon_feral_scientist_psychic", "weight": 5, "cost_multiplier": 5 }, + { "monster": "mon_feral_security_captain_psychic", "weight": 8, "cost_multiplier": 8 }, + { "monster": "mon_feral_security_psychic", "weight": 25, "cost_multiplier": 5 }, + { "monster": "mon_feral_human_bio", "weight": 10, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_clair", "weight": 10 }, + { "monster": "mon_feral_human_pyrokin", "weight": 10, "cost_multiplier": 3 }, + { "monster": "mon_feral_human_telekin", "weight": 10, "cost_multiplier": 2 }, + { "monster": "mon_feral_human_teep", "weight": 10 }, + { "monster": "mon_feral_human_porter", "weight": 10 }, + { "monster": "mon_feral_human_vita", "weight": 10 }, + { "monster": "mon_zombie_labsecurity", "weight": 400, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_scientist_phavian", "weight": 300 }, + { "monster": "mon_zombie_scientist_phavian", "weight": 150, "pack_size": [ 1, 5 ] }, + { "monster": "mon_zombie_technician", "weight": 100, "cost_multiplier": 2 }, + { "monster": "mon_zombie_hazmat", "weight": 50 }, + { "monster": "mon_zombie_necro", "weight": 5, "cost_multiplier": 5 }, + { "monster": "mon_zombie_electric", "weight": 50, "cost_multiplier": 2 }, + { "monster": "mon_zombie", "weight": 100, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_fat", "weight": 20, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_tough", "weight": 40, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_brute", "weight": 10, "cost_multiplier": 5 }, + { "monster": "mon_zombie_crawler", "weight": 50 }, + { "monster": "mon_lab_rat", "weight": 50, "cost_multiplier": 20, "pack_size": [ 4, 8 ] } + ] + }, + { + "name": "GROUP_CIVILIANS_PSYCHIC_FERAL", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_civilian_biokinetic", "weight": 1, "cost_multiplier": 0, "ends": "3 days" }, + { "monster": "mon_civilian_clairsentient", "weight": 1, "cost_multiplier": 0, "ends": "3 days" }, + { "monster": "mon_civilian_pyrokinetic", "weight": 1, "cost_multiplier": 0, "ends": "3 days" }, + { "monster": "mon_civilian_telekinetic", "weight": 1, "cost_multiplier": 0, "ends": "3 days" }, + { "monster": "mon_civilian_telepath", "weight": 1, "cost_multiplier": 0, "ends": "3 days" }, + { "monster": "mon_civilian_teleporter", "weight": 1, "cost_multiplier": 0, "ends": "3 days" }, + { "monster": "mon_civilian_vitakinetic", "weight": 1, "cost_multiplier": 0, "ends": "3 days" } + ] + }, + { + "name": "GROUP_NETHER_BREACH", + "type": "monstergroup", + "//": "Weights slightly adjusted from base Nether group, additional things added", + "monsters": [ + { "monster": "mon_blank", "weight": 135, "cost_multiplier": 0 }, + { "monster": "mon_flying_polyp", "weight": 80, "cost_multiplier": 0 }, + { "monster": "mon_hunting_horror", "weight": 150, "cost_multiplier": 0 }, + { "monster": "mon_gracke", "weight": 150, "cost_multiplier": 0 }, + { "monster": "mon_unseen_hunter", "weight": 80, "cost_multiplier": 0 }, + { "monster": "mon_yugg", "weight": 50, "cost_multiplier": 0 }, + { "monster": "mon_gelatin", "weight": 120, "cost_multiplier": 0 }, + { "monster": "mon_breather_hub", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_nether_leech", "weight": 80, "cost_multiplier": 0 }, + { "monster": "mon_flaming_eye", "weight": 120, "cost_multiplier": 0 }, + { "monster": "mon_kreck", "weight": 210, "cost_multiplier": 0 }, + { "monster": "mon_nether_eater", "weight": 120, "cost_multiplier": 0 }, + { "monster": "mon_hanging_roper", "weight": 60, "cost_multiplier": 0 }, + { "monster": "mon_gozu", "weight": 120, "cost_multiplier": 0 }, + { "monster": "mon_darkman", "weight": 15, "cost_multiplier": 0 }, + { "monster": "mon_shoggoth", "weight": 5, "cost_multiplier": 0 } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monstergroups/zombie_upgrades.json b/data/Mainline_mods/Mods/MindOverMatter/monstergroups/zombie_upgrades.json new file mode 100644 index 000000000..000043cee --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monstergroups/zombie_upgrades.json @@ -0,0 +1,18 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_ZOMBIE_UPGRADE", + "monsters": [ { "monster": "mon_zombie_blank", "weight": 30 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_ZOMBIE_BLANK_UPGRADE", + "default": "mon_zombie_blank", + "monsters": [ + { "monster": "mon_zombie_blank", "weight": 450 }, + { "monster": "mon_zombie_nullpsi", "weight": 400 }, + { "monster": "mon_zombie_psi_void", "weight": 140 }, + { "monster": "mon_zombie_master", "weight": 10 } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/animal_psychics.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/animal_psychics.json new file mode 100644 index 000000000..c5e8157e6 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/animal_psychics.json @@ -0,0 +1,43 @@ +[ + { + "id": "mon_hidebehind", + "copy-from": "mon_cougar", + "type": "MONSTER", + "looks_like": "mon_cougar", + "name": { "str": "hidebehind" }, + "//~": "Named after the American folkloric monster.", + "description": "Even looking directly at this cougar and knowing that it is there, a part of your brain simply refuses to see it. It flickers in and out of sight in a way that makes your eyes hurt, and if you turn your attention away from it even for a moment, it disappears completely.", + "vision_night": 18, + "morale": 80, + "extend": { "flags": [ "CAMOUFLAGE", "NIGHT_INVISIBILITY" ] } + }, + { + "id": "mon_bandersnatch", + "copy-from": "mon_bear", + "type": "MONSTER", + "looks_like": "mon_bear", + "name": { "str": "bandersnatch", "str_pl": "bandersnatches" }, + "description": "An American black bear. A large omnivorous scavenger, it has powerful claws and jaws, and is an effective ambush hunter. This one is distinguished from its fellows by its intent expression, its lack of caution in your presence, and the fact that it's hovering six inches off the ground.", + "aggression": 0, + "grab_strength": 50, + "fear_triggers": [ "SOUND" ], + "anger_triggers": [ "PLAYER_WEAK", "HURT", "PLAYER_CLOSE", "FRIEND_ATTACKED", "PLAYER_NEAR_BABY" ], + "regenerates": 1, + "special_attacks": [ + [ "EAT_FOOD", 20 ], + { "type": "bite", "cooldown": 15, "infection_chance": 44 }, + { + "id": "ranged_pull", + "cooldown": 20, + "hit_dmg_u": "%1$s growls and a powerful forces seizes your %2$s and drags you in!", + "hit_dmg_npc": "%1$s growls and is dragged towards it!", + "miss_msg_u": "", + "miss_msg_npc": "", + "no_dmg_msg_u": "", + "no_dmg_msg_npc": "" + } + ], + "armor": { "bash": 10, "electric": 1, "bullet": 40, "psi_telekinetic_damage": 35 }, + "extend": { "flags": [ "CLIMBS" ] } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/civilian_psychics.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/civilian_psychics.json new file mode 100644 index 000000000..3bbee2b98 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/civilian_psychics.json @@ -0,0 +1,198 @@ +[ + { + "id": "mon_civilian_biokinetic", + "type": "MONSTER", + "name": { "str": "bellicose brawler" }, + "description": "This bloodshot-eyed berserker hurls themselves at the zombie horde. Despite their crude technique, they are moving faster than you've ever seen a human move, and some of their attacks send the zombies flying.", + "copy-from": "mon_civilian_clairsentient", + "chat_topics": [ "TALK_CIVILIAN_FIGHTER" ], + "diff": 10, + "aggro_character": false, + "symbol": "@", + "color": "pink", + "hp": 85, + "speed": 110, + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 5, + "vision_day": 10, + "vision_night": 1, + "melee_damage": [ { "damage_type": "bash", "amount": 4 } ], + "dodge": 3, + "upgrades": { "half_life": 2, "into": "mon_feral_human_bio" }, + "special_attacks": [ + { "id": "smash", "attack_upper": true, "throw_strength": 40, "cooldown": 10 }, + { "id": "bio_op_takedown", "cooldown": 20 } + ] + }, + { + "id": "mon_civilian_clairsentient", + "type": "MONSTER", + "name": { "str": "agitated augur" }, + "description": "This individual looks wildly all around them, constantly muttering to themselves the entire time.", + "looks_like": "mon_dementia", + "default_faction": "human", + "bodytype": "human", + "species": [ "HUMAN" ], + "material": [ "flesh" ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "chat_topics": [ "TALK_CIVILIAN_PANIC" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 75, + "speed": 90, + "symbol": "@", + "color": "dark_gray", + "aggression": -50, + "morale": -50, + "vision_day": 20, + "vision_night": 20, + "melee_dice": 1, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 3 } ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "diff": 0, + "dodge": 4, + "death_function": { "effect": { "id": "death_guilt", "min_level": 6 } }, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "upgrades": { "half_life": 2, "into": "mon_feral_human_clair" }, + "special_attacks": [ [ "PARROT_AT_DANGER", 2 ] ], + "death_drops": "default_zombie_death_drops", + "zombify_into": "mon_zombie", + "flags": [ "SEES", "HEARS", "WARM", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1", "CONVERSATION" ] + }, + { + "id": "mon_civilian_pyrokinetic", + "type": "MONSTER", + "name": { "str": "furious firestarter" }, + "description": "The air around this person wavers slightly like summer heat, and flames occasionally flicker around their upraised hand. There is a focused look in their eyes, and they seem to think they can kill every zombie in sight with their powers.", + "copy-from": "mon_civilian_clairsentient", + "chat_topics": [ "TALK_CIVILIAN_PYROKINETIC" ], + "diff": 3, + "aggro_character": false, + "symbol": "@", + "color": "red", + "aggression": 100, + "morale": 100, + "melee_skill": 2, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "heat", "amount": 4 } ], + "vision_day": 10, + "vision_night": 1, + "dodge": 1, + "upgrades": { "half_life": 2, "into": "mon_feral_human_pyrokin" }, + "special_attacks": [ + [ "PARROT_AT_DANGER", 10 ], + { + "id": "psi_civilian_pyrokinetic_flameblast", + "type": "spell", + "spell_data": { "id": "pyrokinetic_eruption_monster", "min_level": 0 }, + "cooldown": 10, + "monster_message": "%1$s summons a blast of flame!" + } + ] + }, + { + "id": "mon_civilian_telekinetic", + "type": "MONSTER", + "name": { "str": "panic-stricken psychokinetic" }, + "description": "They stare around at the monsters nearby, occasionally making throwing motions with their hands. Sometimes, when they make a throwing motion, one of the zombies is hurled through the air.", + "copy-from": "mon_civilian_clairsentient", + "chat_topics": [ "TALK_CIVILIAN_TELEKINETIC" ], + "diff": 3, + "aggro_character": false, + "symbol": "@", + "color": "yellow", + "aggression": 100, + "morale": 100, + "melee_skill": 2, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "bash", "amount": 4 } ], + "vision_day": 10, + "vision_night": 1, + "dodge": 1, + "upgrades": { "half_life": 2, "into": "mon_feral_human_telekin" }, + "special_attacks": [ + { + "id": "smash", + "move_cost": 100, + "cooldown": 10, + "damage_max_instance": [ { "damage_type": "bash", "amount": 10, "armor_penetration": 10 } ], + "hitsize_min": 12, + "range": 4, + "throw_strength": 40, + "blockable": false, + "effects_require_dmg": false, + "hit_dmg_u": "%1$s stares at you and a powerful force hurls you through the air!", + "hit_dmg_npc": "%1$s stares at and a powerful force hurls them through the air!", + "miss_msg_u": "%s stares at you, and you feel a crushing pressure for a moment before the feeling vanishes!", + "miss_msg_npc": "%s stares at but nothing happens!" + } + ] + }, + { + "id": "mon_civilian_telepath", + "type": "MONSTER", + "name": { "str": "manic mutterer" }, + "description": "Holding their head in their hands, they barely seem aware of the world around them, but they still try to escape the zombies. Looking at them, you feel an eerie sensation like fingers scratching at your mind.", + "path_settings": { "max_dist": 30, "allow_open_doors": false, "avoid_traps": false, "avoid_sharp": false }, + "symbol": "@", + "color": "green", + "diff": 0, + "vision_day": 10, + "vision_night": 0, + "dodge": 1, + "copy-from": "mon_civilian_clairsentient", + "upgrades": { "half_life": 2, "into": "mon_feral_human_teep" }, + "special_attacks": [ [ "PARROT_AT_DANGER", 5 ] ] + }, + { + "id": "mon_civilian_teleporter", + "type": "MONSTER", + "name": { "str": "jittery jumper" }, + "description": "This person looks vacantly around them with a blank expression on their face. Then, in an instant, they are gone.", + "path_settings": { "max_dist": 30, "allow_open_doors": false, "avoid_traps": false, "avoid_sharp": false }, + "speed": 90, + "diff": 0, + "symbol": "@", + "color": "blue", + "copy-from": "mon_civilian_clairsentient", + "vision_day": 10, + "vision_night": 1, + "dodge": 1, + "upgrades": { "half_life": 2, "into": "mon_feral_human_porter" }, + "special_attacks": [ + { + "id": "psi_civilian_teleport_blink", + "type": "spell", + "spell_data": { "id": "teleport_blink_monster", "min_level": 0 }, + "cooldown": 5, + "monster_message": "%1$s suddenly vanishes!" + } + ] + }, + { + "id": "mon_civilian_vitakinetic", + "type": "MONSTER", + "name": { "str": "confused curer" }, + "description": "This person mutters to themselves, glancing to and fro with bloodshot eyes. They seem remarkably unscathed for someone in the midst of the apocalypse.", + "path_settings": { "max_dist": 30, "allow_open_doors": false, "avoid_traps": false, "avoid_sharp": false }, + "hp": 90, + "speed": 90, + "symbol": "@", + "color": "green", + "diff": 0, + "copy-from": "mon_civilian_clairsentient", + "regenerates": 5, + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -3 ] ], + "vision_day": 10, + "vision_night": 1, + "dodge": 1, + "upgrades": { "half_life": 2, "into": "mon_feral_human_vita" }, + "special_attacks": [ [ "PARROT_AT_DANGER", 10 ] ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/death_effects.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/death_effects.json new file mode 100644 index 000000000..150544e28 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/death_effects.json @@ -0,0 +1,133 @@ +[ + { + "id": "death_explosion_oneineight", + "type": "SPELL", + "name": { "str": "Pyrokinetic Burner Death" }, + "valid_targets": [ "ally", "ground", "hostile" ], + "description": "1/4 chance to burst into flames.", + "flags": [ "WONDER", "NO_EXPLOSION_SFX" ], + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_conflagration", "hit_self": true } + ] + }, + { + "id": "death_explosion_oneinfour", + "type": "SPELL", + "name": { "str": "Pyrokinetic Inferno Death" }, + "valid_targets": [ "ally", "ground", "hostile" ], + "description": "1/2 chance to burst into flames.", + "flags": [ "WONDER", "NO_EXPLOSION_SFX" ], + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_conflagration", "hit_self": true } + ] + }, + { + "id": "death_telekeinetic_hit_oneinfive", + "type": "SPELL", + "name": { "str": "Telekinetic Death" }, + "valid_targets": [ "ally", "ground", "hostile" ], + "description": "1/5 chance to knock targets down.", + "flags": [ "WONDER" ], + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_knockdown", "hit_self": true } + ] + }, + { + "id": "death_telekeinetic_hit_oneinthree", + "type": "SPELL", + "name": { "str": "Telekinetic Death" }, + "valid_targets": [ "ally", "ground", "hostile" ], + "description": "1/3 chance to knock targets down.", + "flags": [ "WONDER" ], + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ { "id": "death_fakespell" }, { "id": "death_fakespell" }, { "id": "death_knockdown", "hit_self": true } ] + }, + { + "id": "death_knockdown", + "type": "SPELL", + "name": { "str": "Telekinetic Wave" }, + "valid_targets": [ "ally", "ground", "hostile" ], + "description": "Knocks everyone near the feral telekinetic down.", + "flags": [ "NO_EXPLOSION_SFX", "SILENT", "RANDOM_DURATION" ], + "shape": "blast", + "effect": "attack", + "effect_str": "downed", + "min_aoe": 6, + "min_duration": 100, + "max_duration": 300 + }, + { + "id": "death_psychic_scream", + "type": "SPELL", + "name": { "str": "Psychic Scream" }, + "valid_targets": [ "ally", "ground", "hostile" ], + "description": "Possibly stuns and blinds if the player is near the telepath when they die.", + "flags": [ "NO_EXPLOSION_SFX", "SILENT", "IGNORE_WALLS", "PERCENTAGE_DAMAGE" ], + "shape": "blast", + "effect": "attack", + "damage_type": "psi_telepathic_damage", + "max_level": 30, + "min_damage": 5, + "max_damage": 15, + "damage_increment": 0.5, + "min_aoe": 1, + "max_aoe": 30, + "aoe_increment": 1 + }, + { + "id": "teleport_summon_monster", + "type": "SPELL", + "name": "[Ψ]Breach Monster", + "description": "Summons Nether creatures when the target dies. It's a bug if you have it.", + "message": "The air nearby fractures and something comes through!", + "valid_targets": [ "self", "ally", "hostile", "ground" ], + "flags": [ + "RANDOM_DAMAGE", + "RANDOM_AOE", + "SPAWN_GROUP", + "PERMANENT", + "HOSTILE_SUMMON", + "SPAWN_WITH_DEATH_DROPS", + "NO_EXPLOSION_SFX" + ], + "effect": "summon", + "effect_str": "GROUP_NETHER_BREACH", + "shape": "blast", + "max_level": 10, + "min_damage": 1, + "max_damage": 3, + "min_range": 3, + "min_aoe": 2, + "max_aoe": 6, + "min_duration": 9999999999999999999 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/feral_lab_psychics.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/feral_lab_psychics.json new file mode 100644 index 000000000..be939287c --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/feral_lab_psychics.json @@ -0,0 +1,156 @@ +[ + { + "id": "mon_feral_scientist_psychic", + "type": "MONSTER", + "name": { "str": "Dr. Brain" }, + "description": "An ordinary-looking scientist lost amid the carnage, were it not for the bloodshot eyes, the enlarged cranium, and the fact that the zombies ignore them. Bits of paper and chemistry equipment lazily float in the air near them.", + "//": "This is supposed to be a rare boss kind of monster, with both telepathic and telekinetic abililites, but no tougher than a normal zombie.", + "default_faction": "science", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 85, + "speed": 100, + "material": [ "flesh" ], + "symbol": "@", + "color": "magenta", + "aggression": 30, + "morale": 100, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], + "armor": { "bash": 15, "cut": 10, "bullet": 35, "stab": 5 }, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 2, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "path_settings": { "max_dist": 30, "avoid_traps": true, "avoid_sharp": true }, + "vision_day": 50, + "vision_night": 3, + "death_drops": "feral_scientists_death_drops_psychic", + "zombify_into": "mon_zombie_scientist", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT", "PLAYER_CLOSE" ], + "special_attacks": [ + [ "PARROT_AT_DANGER", 15 ], + { + "id": "psi_drbrain_flashbang", + "type": "spell", + "spell_data": { "id": "telepathic_confusion_monster", "min_level": 5 }, + "cooldown": 12, + "monster_message": "A roar fills %3$s's mind and the world is blotted out!" + }, + { + "id": "psi_drbrain_blast", + "type": "spell", + "spell_data": { "id": "telepathic_blast_monster", "min_level": 4 }, + "cooldown": 10, + "monster_message": "%1$s stares at %3$s!" + }, + { + "id": "psi_drbrain_mindhammer", + "type": "spell", + "spell_data": { "id": "telekinetic_hammer_monster", "min_level": 6 }, + "cooldown": 12, + "monster_message": "%1$s hammers %3$s with psionic force!" + }, + { + "id": "smash", + "move_cost": 80, + "cooldown": 8, + "damage_max_instance": [ { "damage_type": "psi_telekinetic_damage", "amount": 20, "armor_penetration": 10 } ], + "hitsize_min": 12, + "range": 8, + "throw_strength": 100, + "blockable": false, + "effects_require_dmg": false, + "hit_dmg_u": "%1$s stares at you and a powerful force hurls you through the air!", + "hit_dmg_npc": "%1$s stares at and a powerful force hurls them through the air!", + "miss_msg_u": "%s stares at you, and you feel a crushing pressure for a moment before the feeling vanishes!", + "miss_msg_npc": "%s stares at but nothing happens!" + }, + [ "PULL_METAL_WEAPON", 8 ] + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "TEEP_IMMUNE" + ] + }, + { + "id": "mon_feral_security_psychic", + "type": "MONSTER", + "name": "feral security guard, Ψ Division", + "description": "A security guard gone feral, or so you thought. As you look closer, you notice the relatively-normal appearance, the clear eyes, and the patch on their uniform with a Ψ shape in front of the logo of XEDRA. The zombies around them ignore them as they move smoothly and purposefully through the ruins.", + "default_faction": "science", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 120, + "speed": 110, + "material": [ "flesh" ], + "color": "pink", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 6 } ], + "attack_cost": 85, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 5, + "armor": { "bash": 8, "cut": 6, "stab": 6, "bullet": 10 }, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 35, + "vision_night": 7, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_security_death_drops_psychic", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "special_attacks": [ + [ "PARROT_AT_DANGER", 15 ], + { "id": "smash", "attack_upper": true, "throw_strength": 50, "cooldown": 15 }, + [ "BIO_OP_DISARM", 15 ], + { "id": "bio_op_takedown", "cooldown": 20 } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "STUN_IMMUNE" + ] + }, + { + "id": "mon_feral_security_captain_psychic", + "type": "MONSTER", + "copy-from": "mon_feral_human_bio3", + "name": "feral security captain, Ψ Division", + "looks_like": "chud", + "description": "A feral security guard with a military-style uniform, bearing the XEDRA logo and some kind of rank insignia. Their movements are precise, controlled, and inhumanly smooth, and while their eyes are still bloodshot, they have a spark lacking in most ferals you've seen.", + "death_drops": "feral_security_captain_death_drops_psychic" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/feral_psychics.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/feral_psychics.json new file mode 100644 index 000000000..9e82abb50 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/feral_psychics.json @@ -0,0 +1,1234 @@ +[ + { + "id": "mon_feral_human_bio", + "type": "MONSTER", + "name": "feral adept", + "description": "This feral human moves with a disturbing fluid grace. Despite that, they bear the same crazed expression as all the others.", + "//": "Additional HP, speed, armor, and vision distance due to biokinetic powers", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 95, + "speed": 110, + "material": [ "flesh" ], + "symbol": "@", + "color": "pink", + "aggression": 30, + "morale": 100, + "melee_skill": 5, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "bash", "amount": 3 } ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 3, + "armor": { "bash": 5, "cut": 3, "stab": 3, "bullet": 3 }, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 33, + "vision_night": 4, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_bio", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "upgrades": { "half_life": 45, "into": "mon_feral_human_bio2" }, + "special_attacks": [ { "id": "smash", "attack_upper": true, "throw_strength": 30, "cooldown": 15 }, [ "BIO_OP_DISARM", 10 ] ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS" + ] + }, + { + "id": "mon_feral_human_bio2", + "type": "MONSTER", + "name": { "str": "feral dervish", "str_pl": "feral dervishes" }, + "description": "Despite their appearance, this creature moves too quickly and smoothly to be truly human. Bloodshot eyes are the only indicator that they are not some kind of perfectly precise android.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 120, + "speed": 125, + "material": [ "flesh" ], + "color": "pink", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 8, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "bash", "amount": 6 } ], + "attack_cost": 80, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 5, + "armor": { "bash": 8, "cut": 6, "acid": 6, "bullet": 10 }, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 35, + "vision_night": 7, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_bio", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "upgrades": { "half_life": 45, "into": "mon_feral_human_bio3" }, + "special_attacks": [ + { "id": "smash", "attack_upper": true, "throw_strength": 50, "cooldown": 10 }, + [ "BIO_OP_DISARM", 10 ], + { "id": "bio_op_takedown", "cooldown": 15 } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "STUN_IMMUNE" + ] + }, + { + "id": "mon_feral_human_bio3", + "type": "MONSTER", + "name": "human whirlwind", + "description": "With inhumanly precise movements, this feral moves toward you. They are clearly still alive, but their mouth is closed and their chest does not rise or fall. As you watch, they suddenly blur into rapid motion.", + "//": "NO_BREATHE here is due to the biokinetic Sealed System power.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 135, + "speed": 135, + "material": [ "flesh" ], + "color": "pink", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 8, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "bash", "amount": 8 } ], + "attack_cost": 75, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 5, + "armor": { "bash": 8, "cut": 6, "acid": 6, "bullet": 10 }, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 35, + "vision_night": 7, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_bio", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "special_attacks": [ + [ "PARROT_AT_DANGER", 10 ], + { "id": "smash", "attack_upper": true, "throw_strength": 50, "cooldown": 10 }, + { + "type": "leap", + "cooldown": 5, + "move_cost": 50, + "allow_no_target": true, + "max_range": 5, + "message": "%1$s moves so quickly your eyes can barely follow them!" + }, + [ "BIO_OP_DISARM", 10 ], + { "id": "bio_op_takedown", "cooldown": 15 } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "NO_BREATHE", + "STUN_IMMUNE" + ] + }, + { + "id": "mon_feral_human_clair", + "type": "MONSTER", + "name": "feral seer", + "description": "This feral human completely lacks the crazed look most of their compatriots have. Instead, they fix their bloodshot eyes straight at you, seeming to gaze right into your soul.", + "//": "Speed bonus here, like HARDTOSHOOT below, does not represent faster physical movement but rather foreseeing the player's actions", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 105, + "material": [ "flesh" ], + "color": "dark_gray", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 5, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 35, + "vision_night": 35, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_clair", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "upgrades": { "half_life": 45, "into": "mon_feral_human_clair2" }, + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "GOODHEARING", + "HARDTOSHOOT" + ] + }, + { + "id": "mon_feral_human_clair2", + "type": "MONSTER", + "name": { "str": "feral visionary", "str_pl": "feral visionaries" }, + "description": "By the time you see this feral, they have already noticed you. They stare straight at you, regardless of obstruction or any obstacle in between.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "dark_gray", + "symbol": "@", + "aggression": 30, + "morale": 110, + "melee_skill": 6, + "melee_dice": 3, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 8, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 40, + "vision_night": 40, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_clair", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "upgrades": { "half_life": 45, "into": "mon_feral_human_clair3" }, + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "GOODHEARING", + "HARDTOSHOOT", + "ALL_SEEING" + ] + }, + { + "id": "mon_feral_human_clair3", + "type": "MONSTER", + "name": "pattern screamer", + "description": "This feral's eyes are closed, but they move with no hesitation, effortlessly avoiding all obstances in their path. When you look at them, you hear a static crackling, just on the threshold of inaudibility.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "dark_gray", + "symbol": "@", + "aggression": 40, + "morale": 110, + "melee_skill": 6, + "melee_dice": 3, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 10, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 45, + "vision_night": 45, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_clair", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "special_attacks": [ + { + "id": "psi_pattern_scream", + "type": "spell", + "spell_data": { "id": "telepathic_shrieking_monster", "min_level": 3 }, + "cooldown": 15, + "monster_message": "Static fills your hearing for a moment, blotting out all other sounds!" + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "GOODHEARING", + "HARDTOSHOOT", + "ALL_SEEING" + ] + }, + { + "id": "mon_feral_human_pyrokin", + "type": "MONSTER", + "name": "feral burner", + "description": "This feral human looks a little more composed than most, but only a little. Their clothes are singed and the air around them shimmers like a summer heat haze.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "red", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 3, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "heat", "amount": 4 } ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 2, + "armor": { "heat": 15 }, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_pyro", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "death_function": { "effect": { "id": "death_explosion_oneineight", "hit_self": true } }, + "upgrades": { "half_life": 45, "into": "mon_feral_human_pyrokin2" }, + "special_attacks": [ + { + "id": "psi_pyrokin1_flameblast", + "type": "spell", + "spell_data": { "id": "pyrokinetic_eruption_monster", "min_level": 3 }, + "cooldown": 10, + "monster_message": "%1$s summons a blast of flame!" + }, + { + "id": "psi_pyrokin1_flashbang", + "type": "spell", + "spell_data": { "id": "pyrokinetic_flash_monster", "min_level": 1 }, + "cooldown": 15, + "monster_message": "The air erupts into an eye-searing flash!" + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PRIORITIZE_TARGETS", + "FIREPROOF" + ] + }, + { + "id": "mon_feral_human_pyrokin2", + "type": "MONSTER", + "name": "feral inferno", + "description": "Through a cloud of smoke and fire, you can see a human form. Their body is barely visible through the flames.", + "//": "I kind of want them to emit flames as well as smoke, but testing shows that leads to basically everything burning uncontrollable and entire hordes of zombies dying. Their pyrokinesis already causes enough havoc. Change once fire is no longer the most deadly post-Cataclysm weapon.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "red", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "heat", "amount": 8 } ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 3, + "armor": { "heat": 30 }, + "harvest": "human", + "emit_fields": [ { "emit_id": "emit_smoke_stream", "delay": "8 s" } ], + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_pyro", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "death_function": { "effect": { "id": "death_explosion_oneinfour", "hit_self": true } }, + "luminance": 50, + "upgrades": { "half_life": 45, "into": "mon_feral_human_pyrokin2" }, + "special_attacks": [ + [ "PARROT_AT_DANGER", 10 ], + { + "id": "psi_pyrokin2_flameblast", + "type": "spell", + "spell_data": { "id": "pyrokinetic_eruption_monster", "min_level": 6 }, + "cooldown": 10, + "monster_message": "%1$s summons a blast of flame!" + }, + { + "id": "psi_pyrokin1_flangbang", + "type": "spell", + "spell_data": { "id": "pyrokinetic_flash_monster", "min_level": 4 }, + "cooldown": 15, + "monster_message": "The air erupts into an eye-searing flash!" + }, + { + "id": "psi_pyrokin2_flamebomb", + "type": "spell", + "spell_data": { "id": "pyrokinetic_blast_monster", "min_level": 4 }, + "cooldown": 15, + "monster_message": "%1$s gestures and summons a conflagration!" + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PRIORITIZE_TARGETS", + "FIREY" + ] + }, + { + "id": "mon_feral_human_pyrokin3", + "type": "MONSTER", + "name": "unending conflagration", + "description": "Occasionally through the fire and smoke, you can see a human form. Their flesh blackens and withers in the heat, then the burns retreat and healthy skin replaces it, over and over again.", + "//": "No ballistic armor because the temperature to melt a bullet after being fired but before it hits you is apparently over 100 million degrees.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 105, + "speed": 100, + "material": [ "flesh" ], + "color": "red", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "heat", "amount": 10 } ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 3, + "armor": { "heat": 50 }, + "regenerates": 15, + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -7 ] ], + "bleed_rate": 0, + "harvest": "human", + "emit_fields": [ { "emit_id": "emit_smoke_stream", "delay": "8 s" } ], + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_pyro", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "death_function": { + "effect": { "id": "death_conflagration", "hit_self": true }, + "message": "%1$s screams and the flames around them burst outward!" + }, + "luminance": 200, + "special_attacks": [ + [ "PARROT_AT_DANGER", 10 ], + { + "id": "psi_pyrokin3_flameblast", + "type": "spell", + "spell_data": { "id": "pyrokinetic_eruption_monster", "min_level": 7 }, + "cooldown": 10, + "monster_message": "%1$s summons a blast of flame!" + }, + { + "id": "psi_pyrokin3_flashbang", + "type": "spell", + "spell_data": { "id": "pyrokinetic_flash_monster", "min_level": 5 }, + "cooldown": 15, + "monster_message": "The air erupts into an eye-searing flash!" + }, + { + "id": "psi_pyrokin3_flamebomb", + "type": "spell", + "spell_data": { "id": "pyrokinetic_blast_monster", "min_level": 6 }, + "cooldown": 15, + "monster_message": "%1$s gestures and summons a conflagration!" + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PRIORITIZE_TARGETS", + "FIREY" + ] + }, + { + "id": "mon_feral_human_telekin", + "type": "MONSTER", + "name": "feral PKer", + "description": "Though they still have a maniacal expression, this feral human is distinguished by the rocks floating in the around around them.", + "//": "I'm making an assumption here that feral psychics have access to powers that survivor psychics don't, because their lack of mental inhibitions due to their feral state means their powers are less constrained. That's why feral telekinetics do more damage despite not having weapons.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "yellow", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 3, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "armor": { "bash": 8, "cut": 5, "stab": 3, "bullet": 15, "psi_telekinetic_damage": 10 }, + "death_drops": "feral_humans_death_drops_telekin", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "death_function": { + "effect": { "id": "death_telekeinetic_hit_oneinfive", "hit_self": true }, + "message": "As the %1$s dies, a wave of force explodes outward!" + }, + "upgrades": { "half_life": 45, "into": "mon_feral_human_telekin2" }, + "starting_ammo": { "rock": 6 }, + "special_attacks": [ + { + "id": "psi_telekin1_telegrab", + "type": "spell", + "spell_data": { "id": "telekinetic_pull_monster", "min_level": 2 }, + "cooldown": 15, + "monster_message": "%1$s stares at %3$s and %3$s is lifted up and pulled towards them!" + }, + { + "type": "gun", + "cooldown": 5, + "move_cost": 50, + "gun_type": "feral_human_thrown_rock", + "ammo_type": "rock", + "no_ammo_sound": "", + "fake_skills": [ [ "throw", 6 ] ], + "fake_str": 11, + "require_targeting_player": false, + "ranges": [ [ 2, 10, "DEFAULT" ] ], + "description": "%1$s makes a throwing motion and one of the rocks around them suddenly launches like a bullet!" + }, + { + "id": "smash", + "move_cost": 80, + "cooldown": 10, + "damage_max_instance": [ { "damage_type": "psi_telekinetic_damage", "amount": 15, "armor_penetration": 10 } ], + "hitsize_min": 12, + "range": 6, + "throw_strength": 60, + "blockable": false, + "effects_require_dmg": false, + "hit_dmg_u": "%1$s stares at you and a powerful force hurls you through the air!", + "hit_dmg_npc": "%1$s stares at and a powerful force hurls them through the air!", + "miss_msg_u": "%s stares at you, and you feel a crushing pressure for a moment before the feeling vanishes!", + "miss_msg_npc": "%s stares at but nothing happens!" + }, + [ "PULL_METAL_WEAPON", 15 ] + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "PUSH_VEH", + "PUSH_MON" + ] + }, + { + "id": "mon_feral_human_telekin2", + "type": "MONSTER", + "name": "feral mindhand", + "description": "Hovering half a meter off the ground, this feral human is surrounded by a whirling cloud of rock, dust, splintered wood, and various household objects.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "yellow", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "bash", "amount": 4 } ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 3, + "armor": { "bash": 15, "cut": 10, "stab": 5, "bullet": 35 }, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_telekin", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "death_function": { + "effect": { "id": "death_telekeinetic_hit_oneinthree", "hit_self": true }, + "message": "As the %1$s dies, a wave of force explodes outward!" + }, + "special_attacks": [ + { + "id": "psi_telekin2_telegrab", + "type": "spell", + "spell_data": { "id": "telekinetic_pull_monster", "min_level": 3 }, + "cooldown": 10, + "monster_message": "%1$s stares at %3$s and %3$s is lifted up and pulled towards them!" + }, + { + "id": "psi_telekin2_mindhammer", + "type": "spell", + "spell_data": { "id": "telekinetic_hammer_monster", "min_level": 4 }, + "cooldown": 10, + "monster_message": "%1$s hammers %3$s with psionic force!" + }, + { + "id": "smash", + "move_cost": 80, + "cooldown": 8, + "damage_max_instance": [ { "damage_type": "psi_telekinetic_damage", "amount": 25, "armor_penetration": 10 } ], + "hitsize_min": 12, + "range": 8, + "throw_strength": 100, + "blockable": false, + "hit_dmg_u": "%1$s stares at you and a powerful force hurls you through the air!", + "hit_dmg_npc": "%1$s stares at and a powerful force hurls them through the air!", + "miss_msg_u": "%s stares at you, and you feel a crushing pressure for a moment before the feeling vanishes!", + "miss_msg_npc": "%s stares at but nothing happens!" + }, + [ "PULL_METAL_WEAPON", 10 ] + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "FLIES", + "PUSH_VEH", + "PUSH_MON", + "TELEKIN_IMMUNE" + ] + }, + { + "id": "mon_feral_human_teep", + "type": "MONSTER", + "name": "feral esper", + "description": "This feral human lacks the crazed look most of their kind have. Instead, their gaze is unfocused, as though listening to voices only they can hear.", + "//": "Additional dodge due to reading the player's mind", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "white", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 4, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 4, + "armor": { "psi_telepathic_damage": 20 }, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_teep", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "death_function": { + "effect": { "id": "death_psychic_scream", "hit_self": true, "min_level": 5 }, + "message": "As the %1$s dies, a scream fills your mind!" + }, + "upgrades": { "half_life": 45, "into": "mon_feral_human_teep2" }, + "special_attacks": [ + { + "id": "psi_telepath1_scream", + "type": "spell", + "spell_data": { "id": "telepathic_confusion_monster", "min_level": 3 }, + "cooldown": 10, + "monster_message": "A roar fills %3$s's mind and the world is blotted out!" + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS" + ] + }, + { + "id": "mon_feral_human_teep2", + "type": "MONSTER", + "name": "feral brainburner", + "description": "Before you see them, you can feel it--a sensation like spiders crawling along your brain. As you shudder, this feral human looks at you and smiles slightly.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "white", + "symbol": "@", + "aggression": 30, + "morale": 100, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 4, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 6, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_teep", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "death_function": { + "effect": { "id": "death_psychic_scream", "hit_self": true, "min_level": 10 }, + "message": "As the %1$s dies, a scream fills your mind!" + }, + "special_attacks": [ + [ "PARROT_AT_DANGER", 10 ], + { + "id": "psi_telepath2_scream", + "type": "spell", + "spell_data": { "id": "telepathic_confusion_monster", "min_level": 3 }, + "cooldown": 8, + "monster_message": "A roar fills %3$s's mind and the world is blotted out!" + }, + { + "id": "psi_telepath2_blast", + "type": "spell", + "spell_data": { "id": "telepathic_blast_monster", "min_level": 2 }, + "cooldown": 10, + "monster_message": "%1$s stares at %3$s!" + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "TEEP_IMMUNE" + ] + }, + { + "id": "mon_feral_human_porter", + "type": "MONSTER", + "name": "feral jumper", + "description": "What was once empty air suddenly contains this feral human. They have the same crazed expression as their fellows, but their gaze is focused on more distant locations.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "blue", + "symbol": "@", + "aggression": 30, + "morale": 25, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 3, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 50, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_porter", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "upgrades": { "half_life": 45, "into": "mon_feral_human_porter2" }, + "special_attacks": [ + { + "id": "psi_teleport1_slow", + "type": "spell", + "spell_data": { "id": "teleport_slow_monster", "min_level": 2 }, + "cooldown": 15, + "monster_message": "%1$s looks at %3$s and the world lurches." + }, + { + "type": "leap", + "cooldown": 8, + "allow_no_target": true, + "max_range": 8, + "message": "%1$s vanishes and reappears elsewhere!" + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "CLIMBS", + "HARDTOSHOOT", + "TELEPORT_IMMUNE" + ] + }, + { + "id": "mon_feral_human_porter2", + "type": "MONSTER", + "name": "feral slider", + "description": "Every time you blink, this feral human is in a different place. They are always in motion without actually crossing the intervening space.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "blue", + "symbol": "@", + "aggression": 30, + "morale": 25, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 3, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 40, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_porter", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "upgrades": { "half_life": 45, "into": "mon_feral_human_porter3" }, + "special_attacks": [ + { + "id": "psi_teleport2_slow", + "type": "spell", + "spell_data": { "id": "teleport_slow_monster", "min_level": 4 }, + "cooldown": 10, + "monster_message": "%1$s glances at %3$s and the world lurches." + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "teleport_touch", + "move_cost": 80, + "cooldown": 15, + "accuracy": 5, + "damage_max_instance": [ { "damage_type": "psi_teleporter_teleporting_damage", "amount": 2, "armor_penetration": 10 } ], + "blockable": false, + "hit_dmg_u": "%1$s touches you and the world shifts around you!", + "hit_dmg_npc": "%1$s touches and the world shifts around them!", + "miss_msg_u": "%s reaches for you but you avoid their touch!", + "miss_msg_npc": "%s reaches for but they dodge!" + }, + { + "type": "leap", + "cooldown": 2, + "move_cost": 50, + "allow_no_target": true, + "max_range": 12, + "message": "%1$s vanishes and reappears elsewhere!" + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "CLIMBS", + "HARDTOSHOOT", + "TELEPORT_IMMUNE" + ] + }, + { + "id": "mon_feral_human_porter3", + "type": "MONSTER", + "name": "ephemeral riftwalker", + "description": "This feral barely seems to exist in the real world. They constantly vanish and reappear, weird light and strange mist following in their wake.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "color": "blue", + "symbol": "@", + "aggression": 30, + "morale": 25, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 3, + "harvest": "human", + "emit_fields": [ { "emit_id": "emit_plasma", "delay": "1 s" } ], + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 40, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_porter", + "death_function": { + "effect": { "id": "teleport_summon_monster", "hit_self": true }, + "message": "As the %1$s dies, the air warps around them!" + }, + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "luminance": 25, + "special_attacks": [ + [ "PARROT_AT_DANGER", 10 ], + { + "type": "monster_attack", + "attack_type": "melee", + "id": "teleport_touch", + "move_cost": 65, + "cooldown": 10, + "accuracy": 6, + "damage_max_instance": [ { "damage_type": "psi_teleporter_teleporting_damage", "amount": 2, "armor_penetration": 10 } ], + "blockable": false, + "hit_dmg_u": "%1$s touches you and the world warps around you!", + "hit_dmg_npc": "%1$s touches and the world warps around them!", + "miss_msg_u": "%s reaches for you but you avoid their touch!", + "miss_msg_npc": "%s reaches for but they dodge!" + }, + { + "id": "psi_teleport3_slow", + "type": "spell", + "spell_data": { "id": "teleport_slow_monster", "min_level": 6 }, + "cooldown": 10, + "monster_message": "%1$s glances at %3$s and the world lurches." + }, + { + "id": "psi_teleport3_instability", + "type": "spell", + "spell_data": { "id": "teleport_blink_attack_monster", "min_level": 4 }, + "cooldown": 20, + "monster_message": "%1$s touches %3$s and the world around %3$s wavers." + }, + { + "type": "leap", + "cooldown": 1, + "move_cost": 50, + "allow_no_target": true, + "max_range": 16, + "message": "%1$s vanishes and reappears elsewhere!" + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "CLIMBS", + "HARDTOSHOOT", + "TELEPORT_IMMUNE" + ] + }, + { + "id": "mon_feral_human_vita", + "type": "MONSTER", + "name": "feral mender", + "description": "Other than the intense expression, this feral human looks to be the picture of health. They could have starred in a healthcare advertisement before the Cataclysm.", + "//": "HP and regeneration due to vitakinetic powers", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 125, + "speed": 100, + "material": [ "flesh" ], + "color": "green", + "symbol": "@", + "aggression": 30, + "morale": 45, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 3, + "regen_morale": true, + "armor": { "bash": 5, "cut": 3, "stab": 3, "bullet": 5 }, + "regenerates": 10, + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ], + "bleed_rate": 0, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_vita", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "upgrades": { "half_life": 45, "into": "mon_feral_human_vita2" }, + "special_attacks": [ + { + "id": "psi_vitakin1_weakness", + "type": "spell", + "spell_data": { "id": "vitakinetic_health_down", "min_level": 4 }, + "cooldown": 15, + "monster_message": "%1$s touches %3$s." + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "NO_FUNG_DMG" + ] + }, + { + "id": "mon_feral_human_vita2", + "type": "MONSTER", + "name": "feral regenerator", + "description": "This feral human doesn't even have bloodshot eyes. Their skin positively glows, and as you watch them brush past a jagged chunk of wood to get to you, the wound they receive immediately stops bleeding and rapidly begins to close.", + "default_faction": "zombie", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 150, + "speed": 100, + "material": [ "flesh" ], + "color": "green", + "symbol": "@", + "aggression": 30, + "morale": 45, + "melee_skill": 3, + "melee_dice": 1, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 3, + "regen_morale": true, + "armor": { "bash": 5, "cut": 3, "stab": 3, "bullet": 5 }, + "regenerates": 20, + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -10 ] ], + "bleed_rate": 0, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "feral_humans_death_drops_vita", + "zombify_into": "mon_zombie_survivor", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "special_attacks": [ + { + "id": "psi_vitakin2_weakness", + "type": "spell", + "spell_data": { "id": "vitakinetic_healing_down", "min_level": 4 }, + "cooldown": 15, + "monster_message": "%1$s touches %3$s." + } + ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "PATH_AVOID_DANGER_1", + "PATH_AVOID_FIRE", + "PRIORITIZE_TARGETS", + "NO_FUNG_DMG" + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/monster_eoc_spells.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/monster_eoc_spells.json new file mode 100644 index 000000000..4358235d2 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/monster_eoc_spells.json @@ -0,0 +1,97 @@ +[ + { + "id": "eater_drain_monster", + "type": "SPELL", + "name": "[Ψ]Essence Drain", + "description": "Eater's draining attack. It's a bug if you have it.", + "valid_targets": [ "hostile" ], + "message": "", + "flags": [ "CONCENTRATE", "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], + "difficulty": 1, + "max_level": 20, + "effect": "attack", + "damage_type": "psi_enervation_damage", + "shape": "blast", + "min_range": 30, + "min_damage": 1, + "max_damage": 1 + }, + { + "type": "effect_on_condition", + "id": "EOC_EATER_DRAIN", + "condition": { "compare_num": [ { "u_val": "mana" }, ">=", { "const": 150 } ] }, + "effect": [ { "u_cast_spell": { "id": "eater_drain_mana" } }, { "u_message": "You feel a sudden emptiness.", "type": "bad" } ], + "false_effect": [ { "run_eocs": "EOC_EATER_DRAIN_2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_EATER_DRAIN_2", + "condition": { "compare_num": [ { "u_val": "stamina" }, ">=", { "const": 200 } ] }, + "effect": [ + { "u_cast_spell": { "id": "eater_drain_stamina" } }, + { "u_message": "For a moment, you feel exhausted.", "type": "bad" } + ], + "false_effect": [ + { "u_cast_spell": { "id": "eater_drain_health" } }, + { "u_message": "You feel your life draining away!", "type": "bad" } + ] + }, + { + "id": "eater_drain_mana", + "type": "SPELL", + "name": "[Ψ]Eater Drain Mana", + "description": "Eater's spell to drain mana. It's a bug if you have it.", + "valid_targets": [ "self" ], + "flags": [ "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], + "effect": "recover_energy", + "effect_str": "MANA", + "shape": "blast", + "max_level": 1, + "min_damage": -150, + "min_range": 30 + }, + { + "id": "eater_drain_stamina", + "type": "SPELL", + "name": "[Ψ]Eater Drain Stamina", + "description": "Eater's spell to drain stamina. It's a bug if you have it.", + "valid_targets": [ "self" ], + "flags": [ "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], + "effect": "recover_energy", + "effect_str": "STAMINA", + "extra_effects": [ { "id": "eater_drain_fatigue", "hit_self": false, "max_level": 3 } ], + "shape": "blast", + "max_level": 1, + "min_damage": -200, + "min_range": 30 + }, + { + "id": "eater_drain_fatigue", + "type": "SPELL", + "name": "[Ψ]Eater Drain Fatigue", + "description": "Eater's spell to drain fatigue. It's a bug if you have it.", + "valid_targets": [ "self" ], + "flags": [ "NO_PROJECTILE", "NO_EXPLOSION_SFX" ], + "effect": "recover_energy", + "effect_str": "FATIGUE", + "shape": "blast", + "max_level": 1, + "min_damage": -2, + "min_range": 30 + }, + { + "id": "eater_drain_health", + "type": "SPELL", + "name": "[Ψ]Eater Drain Stamina", + "description": "Eater's spell to drain health. It's a bug if you have it.", + "valid_targets": [ "self" ], + "flags": [ "NO_PROJECTILE", "NO_EXPLOSION_SFX", "RANDOM_DAMAGE" ], + "effect": "attack", + "shape": "blast", + "damage_type": "pure", + "max_level": 1, + "min_damage": 1, + "max_damage": 2, + "min_range": 30 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/monster_overrides.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/monster_overrides.json new file mode 100644 index 000000000..666e66622 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/monster_overrides.json @@ -0,0 +1,494 @@ +[ + { + "id": "mon_zombie_crawler_pupa_decoy", + "copy-from": "mon_zombie_crawler_pupa_decoy", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ] + }, + { + "id": "mon_zombie_crawler_pupa", + "copy-from": "mon_zombie_crawler_pupa", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ] + }, + { + "id": "mon_zombie_pupa_decoy", + "copy-from": "mon_zombie_pupa_decoy", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ] + }, + { + "id": "mon_zombie_pupa", + "copy-from": "mon_zombie_pupa", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ] + }, + { + "id": "mon_brute_pupa_decoy", + "copy-from": "mon_brute_pupa_decoy", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ] + }, + { + "id": "mon_brute_pupa", + "copy-from": "mon_brute_pupa", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ] + }, + { + "id": "mon_hulk_pupa_decoy", + "copy-from": "mon_hulk_pupa_decoy", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ] + }, + { + "id": "mon_hulk_pupa", + "copy-from": "mon_hulk_pupa", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ] + }, + { + "id": "mon_zombie_pupa_decoy_shady", + "copy-from": "mon_zombie_pupa_decoy_shady", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -2 ] ] + }, + { + "id": "mon_zombie_pupa_shady", + "copy-from": "mon_zombie_pupa_shady", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -2 ] ] + }, + { + "id": "mon_zombie_medical_pupa", + "copy-from": "mon_zombie_medical_pupa", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ] + }, + { + "id": "mon_zombie_pupa_medical_decoy", + "copy-from": "mon_zombie_pupa_medical_decoy", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -5 ] ] + }, + { + "id": "mon_mutant_evolved", + "copy-from": "mon_mutant_evolved", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -1 ] ] + }, + { + "id": "mon_devourer_lab_sec", + "copy-from": "mon_devourer_lab_sec", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -1 ] ] + }, + { + "id": "mon_sludge_crawler", + "copy-from": "mon_sludge_crawler", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -25 ] ] + }, + { + "id": "mon_frog_mega", + "copy-from": "mon_frog_mega", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -2 ] ] + }, + { + "id": "mon_zombie_regenerating", + "copy-from": "mon_zombie_regenerating", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -6 ] ] + }, + { + "id": "mon_zombie_medical_regenerating", + "copy-from": "mon_zombie_medical_regenerating", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -6 ] ] + }, + { + "id": "mon_frog_mother", + "copy-from": "mon_frog_mother", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -20 ] ] + }, + { + "id": "mon_zombie_nemesis", + "copy-from": "mon_zombie_nemesis", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -7 ] ] + }, + { + "id": "mon_shoggoth", + "copy-from": "mon_shoggoth", + "type": "MONSTER", + "regeneration_modifiers": [ [ "effect_vitakin_hurt", -25 ] ], + "extend": { "flags": [ "TEEP_IMMUNE" ] }, + "armor": { "bash": 10, "cut": 30, "bullet": 24, "electric": 4, "psi_telekinetic_damage": 20 } + }, + { + "id": "mon_fleshy_shambler", + "copy-from": "mon_fleshy_shambler", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_jabberwock", + "copy-from": "mon_jabberwock", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_flesh_golem", + "copy-from": "mon_flesh_golem", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_amigara_horror", + "copy-from": "mon_amigara_horror", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_breather", + "copy-from": "mon_breather", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_shrapnel_swarm", + "copy-from": "mon_shrapnel_swarm", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_structural_spur", + "copy-from": "mon_structural_spur", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_dog_thing", + "copy-from": "mon_dog_thing", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_flaming_eye", + "copy-from": "mon_flaming_eye", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] }, + "armor": { "bash": 4, "psi_telekinetic_damage": 20 } + }, + { + "id": "mon_flying_polyp", + "copy-from": "mon_flying_polyp", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] }, + "armor": { "bash": 8, "electric": 3, "psi_telekinetic_damage": 15 } + }, + { + "id": "mon_headless_dog_thing", + "copy-from": "mon_headless_dog_thing", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_hound_tindalos", + "copy-from": "mon_hound_tindalos", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] }, + "armor": { "cut": 50, "bullet": 40, "electric": 1, "psi_telekinetic_damage": 50 } + }, + { + "id": "mon_hound_tindalos_afterimage", + "copy-from": "mon_hound_tindalos_afterimage", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] }, + "armor": { "cut": 50, "bullet": 40, "electric": 1, "psi_telekinetic_damage": 50 } + }, + { + "id": "mon_hunting_horror", + "copy-from": "mon_hunting_horror", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_shadow", + "copy-from": "mon_shadow", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE", "TELEKIN_IMMUNE" ] } + }, + { + "id": "mon_shadow_snake", + "copy-from": "mon_shadow_snake", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE", "TELEKIN_IMMUNE" ] } + }, + { + "id": "mon_thing", + "copy-from": "mon_thing", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_yugg", + "copy-from": "mon_yugg", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_vortex", + "copy-from": "mon_vortex", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_archunk_weak", + "copy-from": "mon_archunk_weak", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_hanging_roper", + "copy-from": "mon_hanging_roper", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_carrion_grub", + "copy-from": "mon_carrion_grub", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_nether_spearfisher", + "copy-from": "mon_nether_spearfisher", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_nether_leech", + "copy-from": "mon_nether_leech", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_nether_fish", + "copy-from": "mon_nether_fish", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_teke_mouse", + "copy-from": "mon_teke_mouse", + "type": "MONSTER", + "armor": { "bash": 15, "cut": 3, "bullet": 26, "psi_telekinetic_damage": 25 } + }, + { + "id": "mon_fungaloid_tower", + "copy-from": "mon_fungaloid_tower", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_fungaloid_queen", + "copy-from": "mon_fungaloid_queen", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_fungaloid_seeder", + "copy-from": "mon_fungaloid_seeder", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_fungal_wall", + "copy-from": "mon_fungal_wall", + "type": "MONSTER", + "extend": { "flags": [ "TEEP_IMMUNE" ] } + }, + { + "id": "mon_fungal_hedgerow", + "copy-from": "mon_fungal_hedgerow", + "type": "MONSTER", + "armor": { "bash": 10, "cut": 10, "bullet": 8, "electric": 4, "psi_telepathic_damage": 15 } + }, + { + "id": "mon_fungal_blossom", + "copy-from": "mon_fungal_blossom", + "type": "MONSTER", + "armor": { "bash": 4, "cut": 4, "bullet": 3, "electric": 4, "psi_telepathic_damage": 10 } + }, + { + "id": "mon_fungal_tendril", + "copy-from": "mon_fungal_tendril", + "type": "MONSTER", + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 4, "psi_telepathic_damage": 10 } + }, + { + "id": "mon_fungaloid", + "copy-from": "mon_fungaloid", + "type": "MONSTER", + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 4, "psi_telepathic_damage": 20 } + }, + { + "id": "mon_fungaloid_young", + "copy-from": "mon_fungaloid_young", + "type": "MONSTER", + "armor": { "bash": 4, "cut": 4, "bullet": 3, "electric": 3, "psi_telepathic_damage": 15 } + }, + { + "id": "mon_fungaloid_shambler", + "copy-from": "mon_fungaloid_shambler", + "type": "MONSTER", + "armor": { "bash": 4, "cut": 10, "stab": 20, "acid": 3, "bullet": 20, "electric": 3, "psi_telepathic_damage": 30 } + }, + { + "id": "mon_ant_fungus", + "copy-from": "mon_ant_fungus", + "type": "MONSTER", + "armor": { "bash": 1, "cut": 1, "bullet": 1, "electric": 2, "psi_telepathic_damage": 4 } + }, + { + "id": "mon_zombie_child_fungus", + "copy-from": "mon_zombie_child_fungus", + "type": "MONSTER", + "armor": { "electric": 3, "psi_telepathic_damage": 4 } + }, + { + "id": "mon_zombie_fungus", + "copy-from": "mon_zombie_fungus", + "type": "MONSTER", + "armor": { "bash": 3, "electric": 5, "psi_telepathic_damage": 6 } + }, + { + "id": "mon_fungal_raptor", + "copy-from": "mon_fungal_raptor", + "type": "MONSTER", + "armor": { "psi_telepathic_damage": 2 } + }, + { + "id": "mon_boomer_fungus", + "copy-from": "mon_boomer_fungus", + "type": "MONSTER", + "armor": { "bash": 2, "electric": 4, "psi_telepathic_damage": 3 } + }, + { + "id": "mon_fungal_wretch", + "copy-from": "mon_fungal_wretch", + "type": "MONSTER", + "armor": { "electric": 1, "psi_telepathic_damage": 4 } + }, + { + "id": "mon_spider_fungus", + "copy-from": "mon_spider_fungus", + "type": "MONSTER", + "armor": { "bash": 2, "cut": 6, "bullet": 5, "electric": 2, "psi_telepathic_damage": 2 } + }, + { + "id": "mon_skeleton_hulk_fungus", + "copy-from": "mon_skeleton_hulk_fungus", + "type": "MONSTER", + "armor": { "bash": 20, "cut": 45, "bullet": 36, "electric": 8, "psi_telepathic_damage": 50 } + }, + { + "id": "mon_skeleton_brute_fungus", + "copy-from": "mon_skeleton_brute_fungus", + "type": "MONSTER", + "armor": { "bash": 0, "electric": 5, "psi_telepathic_damage": 4 } + }, + { + "id": "mon_skeleton_fungus", + "copy-from": "mon_skeleton_fungus", + "type": "MONSTER", + "armor": { "bash": 0, "electric": 5, "psi_telepathic_damage": 2 } + }, + { + "id": "mon_zombie_gasbag_fungus", + "copy-from": "mon_zombie_gasbag_fungus", + "type": "MONSTER", + "armor": { "electric": 4, "psi_telepathic_damage": 1 } + }, + { + "id": "mon_feral_cop_fungal_infected", + "copy-from": "mon_feral_cop_fungal_infected", + "type": "MONSTER", + "armor": { "bash": 8, "cut": 12, "stab": 9, "bullet": 14, "electric": 2, "psi_telepathic_damage": 10 } + }, + { + "id": "mon_feral_human_axe_fungal_infected", + "copy-from": "mon_feral_human_axe_fungal_infected", + "type": "MONSTER", + "armor": { "psi_telepathic_damage": 8 } + }, + { + "id": "mon_feral_human_axe_fungal_corpse", + "copy-from": "mon_feral_human_axe_fungal_corpse", + "type": "MONSTER", + "armor": { "psi_telepathic_damage": 8 } + }, + { + "id": "mon_feral_human_pipe_fungal_infected", + "copy-from": "mon_feral_human_pipe_fungal_infected", + "type": "MONSTER", + "armor": { "psi_telepathic_damage": 8 } + }, + { + "id": "mon_feral_human_pipe_fungal_corpse", + "copy-from": "mon_feral_human_pipe_fungal_corpse", + "type": "MONSTER", + "armor": { "psi_telepathic_damage": 8 } + }, + { + "id": "mon_feral_human_crowbar_fungal_infected", + "copy-from": "mon_feral_human_crowbar_fungal_infected", + "type": "MONSTER", + "armor": { "psi_telepathic_damage": 8 } + }, + { + "id": "mon_feral_human_crowbar_fungal_corpse", + "copy-from": "mon_feral_human_crowbar_fungal_corpse", + "type": "MONSTER", + "armor": { "psi_telepathic_damage": 8 } + }, + { + "id": "mon_mi_go", + "copy-from": "mon_mi_go", + "type": "MONSTER", + "armor": { "bash": 4, "cut": 12, "bullet": 10, "electric": 2, "psi_telepathic_damage": 25 } + }, + { + "id": "mon_mi_go_scout", + "copy-from": "mon_mi_go_scout", + "type": "MONSTER", + "armor": { "bash": 4, "cut": 5, "bullet": 4, "electric": 2, "psi_telepathic_damage": 25 } + }, + { + "id": "mon_mi_go_guard", + "copy-from": "mon_mi_go_guard", + "type": "MONSTER", + "armor": { "bash": 17, "cut": 22, "bullet": 18, "electric": 4, "psi_telepathic_damage": 70 } + }, + { + "id": "mon_mi_go_slaver", + "copy-from": "mon_mi_go_slaver", + "type": "MONSTER", + "armor": { "bash": 4, "cut": 12, "bullet": 10, "electric": 3, "psi_telepathic_damage": 35 } + }, + { + "id": "mon_mi_go_surgeon", + "copy-from": "mon_mi_go_surgeon", + "type": "MONSTER", + "armor": { "bash": 5, "cut": 13, "bullet": 10, "electric": 3, "psi_telepathic_damage": 32 } + }, + { + "id": "mon_mi_go_myrmidon", + "copy-from": "mon_mi_go_myrmidon", + "type": "MONSTER", + "armor": { "bash": 19, "cut": 27, "bullet": 22, "electric": 6, "psi_telepathic_damage": 120 } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/monster_special_attacks.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/monster_special_attacks.json new file mode 100644 index 000000000..ec884f943 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/monster_special_attacks.json @@ -0,0 +1,16 @@ +[ + { + "type": "monster_attack", + "attack_type": "melee", + "id": "teleport_touch", + "move_cost": 80, + "cooldown": 15, + "accuracy": 5, + "damage_max_instance": [ { "damage_type": "psi_teleporter_teleporting_damage", "amount": 2, "armor_penetration": 10 } ], + "blockable": false, + "hit_dmg_u": "%1$s touches you and the world warps around you!", + "hit_dmg_npc": "%1$s touches and the world warps around them!", + "miss_msg_u": "%s reaches for you but you avoid their touch!", + "miss_msg_npc": "%s reaches for but they dodge!" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/monsters_spells.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/monsters_spells.json new file mode 100644 index 000000000..8f872466e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/monsters_spells.json @@ -0,0 +1,373 @@ +[ + { + "id": "nether_banish_monster", + "type": "SPELL", + "name": "Nether Banish Monster", + "description": "A spell for the zombie null to try to banish nether monsters. It's a bug if you have it.", + "teachable": false, + "valid_targets": [ "hostile" ], + "targeted_monster_species": [ "NETHER" ], + "flags": [ "SILENT", "RANDOM_DAMAGE", "NO_EXPLOSION_SFX" ], + "effect": "banishment", + "shape": "blast", + "min_damage": 100, + "max_damage": 600, + "min_range": 10, + "max_range": 10 + }, + { + "id": "nether_banish_monster_greater", + "type": "SPELL", + "name": "Greater Nether Banish Monster", + "description": "A spell for the nether-void to try to banish nether monsters. It's a bug if you have it.", + "teachable": false, + "valid_targets": [ "hostile" ], + "targeted_monster_species": [ "NETHER" ], + "flags": [ "SILENT", "RANDOM_DAMAGE", "NO_EXPLOSION_SFX" ], + "effect": "banishment", + "shape": "blast", + "min_damage": 300, + "max_damage": 1000, + "min_range": 10, + "max_range": 10 + }, + { + "id": "delete_nullifying_fields_monster", + "type": "SPELL", + "name": "Delete Nullifying Fields Monster", + "description": "This cleans up the nullifying fields after a zombie null dies. It's a bug if you have it.", + "valid_targets": [ "ground" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "effect": "ter_transform", + "effect_str": "ter_null_zombie_delete_fields", + "shape": "blast", + "max_level": 1, + "min_aoe": 12, + "max_aoe": 12 + }, + { + "id": "pyrokinetic_eruption_monster", + "type": "SPELL", + "name": "[Ψ]Fountain of Flames Monster", + "description": "Cause a burst of flames at the target location.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "CONCENTRATE", "LOUD", "NO_PROJECTILE", "IGNITE_FLAMMABLE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "damage_type": "heat", + "difficulty": 1, + "max_level": 20, + "min_damage": 10, + "max_damage": 30, + "damage_increment": 1, + "min_range": 1, + "max_range": 3, + "range_increment": 0.15, + "energy_source": "STAMINA", + "base_energy_cost": 1500, + "final_energy_cost": 200, + "energy_increment": -216, + "base_casting_time": 100, + "final_casting_time": 100, + "sound_type": "combat", + "sound_description": "a crackle" + }, + { + "id": "pyrokinetic_flash_monster", + "type": "SPELL", + "name": "[Ψ]Brilliant Flash Monster", + "description": "By strongly exciting the air at a particular point, you produce a burst of light.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_PROJECTILE", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "blind", + "shape": "blast", + "difficulty": 1, + "max_level": 20, + "min_range": 4, + "max_range": 15, + "range_increment": 1.83, + "min_aoe": 1, + "max_aoe": 5, + "aoe_increment": 0.2, + "min_duration": 100, + "max_duration": 1000, + "duration_increment": 10, + "energy_source": "STAMINA", + "base_energy_cost": 500, + "final_energy_cost": 25, + "energy_increment": -80, + "base_casting_time": 150, + "final_casting_time": 50, + "casting_time_increment": -17 + }, + { + "id": "pyrokinetic_blast_monster", + "type": "SPELL", + "name": "[Ψ]Conflagration Monster", + "description": "Create an expanding fireball that catches multiple targets in its wake.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "CONCENTRATE", "LOUD", "NO_PROJECTILE", "IGNITE_FLAMMABLE", "RANDOM_DAMAGE", "RANDOM_AOE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "damage_type": "heat", + "difficulty": 1, + "max_level": 20, + "min_damage": 10, + "max_damage": 30, + "damage_increment": 1, + "min_range": 3, + "max_range": 10, + "range_increment": 1, + "min_aoe": 1, + "max_aoe": 6, + "aoe_increment": 0.15, + "energy_source": "STAMINA", + "base_energy_cost": 3500, + "final_energy_cost": 300, + "energy_increment": -320, + "base_casting_time": 150, + "final_casting_time": 35, + "casting_time_increment": -11.5, + "sound_type": "combat" + }, + { + "id": "telekinetic_pull_monster", + "type": "SPELL", + "name": "[Ψ]Far Hand Monster", + "description": "Pull a target or set of items to you.", + "message": "You reach out and pull your target to you.", + "valid_targets": [ "hostile" ], + "spell_class": "TELEKINETIC", + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_LEGS" ], + "effect": "pull_target", + "shape": "blast", + "difficulty": 1, + "damage_type": "psi_telekinetic_damage", + "max_level": 20, + "min_range": 2, + "max_range": 20, + "range_increment": 1.5 + }, + { + "id": "telekinetic_hammer_monster", + "type": "SPELL", + "name": "[Ψ]Mindhammer Monster", + "description": "Smash a single target with a fist of telekinetic force.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "NO_PROJECTILE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "damage_type": "psi_telekinetic_damage", + "difficulty": 1, + "max_level": 20, + "min_damage": 10, + "max_damage": 40, + "damage_increment": 1, + "min_range": 3, + "max_range": 10, + "range_increment": 0.875, + "sound_type": "combat", + "sound_description": "a thud" + }, + { + "id": "telepathic_confusion_monster", + "type": "SPELL", + "name": "[Ψ]Sensory Deprivation Monster", + "description": "Disconnect a target's brain from its senses, leaving it blinded and confused.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "NO_PROJECTILE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "difficulty": 1, + "max_level": 20, + "effect": "attack", + "effect_str": "stunned", + "extra_effects": [ + { "id": "telepathic_deprivation_monster", "hit_self": false, "max_level": 3 }, + { "id": "telepathic_deafening_monster", "hit_self": false, "max_level": 3 } + ], + "shape": "blast", + "min_duration": 100, + "max_duration": 400, + "duration_increment": 1, + "min_range": 3, + "max_range": 15, + "range_increment": 1 + }, + { + "id": "telepathic_deprivation_monster", + "type": "SPELL", + "name": "[Ψ]Sensory Deprivation Monster", + "description": "By shutting off a target's senses, you can prevent them from seeing anything.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_PROJECTILE", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "psi_blind", + "shape": "blast", + "difficulty": 1, + "max_level": 20, + "min_range": 4, + "max_range": 15, + "range_increment": 1.83, + "min_duration": 100, + "max_duration": 1000, + "duration_increment": 10 + }, + { + "id": "telepathic_deafening_monster", + "type": "SPELL", + "name": "[Ψ]Sensory Deafening Monster", + "description": "By shutting off a target's senses, you can prevent them from hearing anything.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_PROJECTILE", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "psi_deaf", + "shape": "blast", + "difficulty": 1, + "max_level": 20, + "min_range": 4, + "max_range": 15, + "range_increment": 1.83, + "min_duration": 100, + "max_duration": 1000, + "duration_increment": 10 + }, + { + "id": "telepathic_blast_monster", + "type": "SPELL", + "name": "[Ψ]Synaptic Overload Monster", + "description": "Short-circuit and overwhelm a target's brain, causing extreme damage or death. Does not affect targets without working brains.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "NO_PROJECTILE", "SILENT", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS", "PERCENTAGE_DAMAGE" ], + "difficulty": 1, + "max_level": 20, + "effect": "attack", + "shape": "blast", + "affected_body_parts": [ "head" ], + "damage_type": "psi_telepathic_damage", + "min_damage": 10, + "max_damage": 40, + "damage_increment": 1, + "duration_increment": 1, + "min_range": 5, + "max_range": 20, + "range_increment": 2.5 + }, + { + "id": "telepathic_shrieking_monster", + "type": "SPELL", + "name": "[Ψ]Telepathic Shrieking Monster", + "description": "Causes noise at target location.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "NO_PROJECTILE", "RANDOM_DAMAGE" ], + "difficulty": 1, + "max_level": 20, + "effect": "noise", + "shape": "blast", + "min_damage": 10, + "max_damage": 50, + "min_range": 25, + "sound_type": "activity", + "sound_description": "static" + }, + { + "id": "teleport_slow_monster", + "type": "SPELL", + "name": "[Ψ]Stutterstep Monster", + "description": "Manipulate space to increase relative distance around the target, reducing their speed.", + "valid_targets": [ "ground", "hostile" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_teleport_slow", + "shape": "blast", + "difficulty": 1, + "max_level": 20, + "min_range": 4, + "max_range": 15, + "range_increment": 1.83, + "min_duration": 200, + "max_duration": 1000, + "duration_increment": 50, + "energy_source": "STAMINA", + "base_energy_cost": 1200, + "final_energy_cost": 200, + "energy_increment": -166.67, + "base_casting_time": 80, + "final_casting_time": 35, + "casting_time_increment": -7.5 + }, + { + "id": "teleport_blink_attack_monster", + "type": "SPELL", + "name": "[Ψ]Force Blink Monster", + "description": "Teleport target.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "effect_str": "effect_riftwalker_teleport", + "shape": "blast", + "difficulty": 1, + "max_level": 20, + "min_range": 1, + "min_duration": 1000, + "base_casting_time": 50, + "final_casting_time": 0, + "casting_time_increment": -4 + }, + { + "id": "teleport_blink_monster", + "type": "SPELL", + "name": "[Ψ]Blink Monster effect", + "description": "The blink you cast if a riftwalker hits you. It's a bug if you have it.", + "valid_targets": [ "none" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_AOE" ], + "effect": "short_range_teleport", + "shape": "blast", + "difficulty": 1, + "max_level": 20, + "min_aoe": 1, + "max_aoe": 5, + "aoe_increment": 0.25, + "min_range": 10, + "base_casting_time": 50, + "final_casting_time": 0, + "casting_time_increment": -4 + }, + { + "id": "vitakinetic_health_down", + "type": "SPELL", + "name": "[Ψ]Draining Touch Monster", + "description": "Drain Target's Health Mod. It's a bug if you have it.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "effect_str": "effect_vitakinetic_health_down", + "damage_type": "psi_enervation_damage", + "shape": "blast", + "difficulty": 1, + "max_level": 20, + "min_range": 1, + "min_damage": 1, + "max_damage": 1, + "min_duration": 1080000, + "base_casting_time": 50 + }, + { + "id": "vitakinetic_healing_down", + "type": "SPELL", + "name": "[Ψ]Draining Touch 2 Monster", + "description": "Drain Target's Health Mod and reduce healing. It's a bug if you have it.", + "valid_targets": [ "hostile" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "effect_str": "effect_vitakinetic_healing_down", + "damage_type": "psi_enervation_damage", + "shape": "blast", + "difficulty": 1, + "max_level": 20, + "min_range": 1, + "min_damage": 1, + "max_damage": 1, + "min_duration": 1620000, + "base_casting_time": 50 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/nether.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/nether.json new file mode 100644 index 000000000..0f8abbb6a --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/nether.json @@ -0,0 +1,52 @@ +[ + { + "id": "mon_nether_eater", + "type": "MONSTER", + "name": { "str": "eater" }, + "description": "A thicket of opalescent diaphanous fronds, lazily waving in the air, with parts of them constantly vanishing and reappearing. The central core, if it exists, is obscured by their constant motion. There are no obvious sensory organs, but as you approach the motion of the fronds changes slightly.", + "//": "This is like a flaming eye in that it flies and spams an attack, but different in that it's nearly immune to bullets but otherwise very fragile and its primary attack starts off as harmless (only draining mana) and progresses through stamina and then health. The function is to make areas with eaters more dangerous, but eaters themselves only become very dangerous if there are a lot of them or you're too busy killing other things while they drain you.", + "default_faction": "nether", + "species": [ "NETHER" ], + "diff": 15, + "volume": "41500 ml", + "weight": "26500 g", + "hp": 30, + "speed": 100, + "material": [ "wind" ], + "symbol": "E", + "color": "red", + "morale": 100, + "aggression": 100, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "dodge": 6, + "armor": { "stab": 10, "bullet": 100 }, + "bleed_rate": 0, + "vision_day": 30, + "vision_night": 40, + "tracking_distance": 15, + "harvest": "exempt", + "special_attacks": [ + { + "type": "spell", + "spell_data": { "id": "eater_drain_monster", "min_level": 5 }, + "cooldown": 3, + "monster_message": "The eater's fronds lazily drift to and fro." + } + ], + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s melts away." }, + "flags": [ + "SEES", + "WARM", + "FLIES", + "NO_BREATHE", + "NOHEAD", + "NO_FUNG_DMG", + "KEEP_DISTANCE", + "PATH_AVOID_DANGER_2", + "ACIDPROOF", + "HARDTOSHOOT", + "NOGIB", + "TEEP_IMMUNE" + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/psi_summons.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/psi_summons.json new file mode 100644 index 000000000..9f4ef56d1 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/psi_summons.json @@ -0,0 +1,47 @@ +[ + { + "id": "mon_pyrokin_hotair_1", + "type": "MONSTER", + "name": "warm air", + "description": "A patch of warm air, heated by pyrokinesis.", + "looks_like": "fd_biolum", + "default_faction": "player", + "species": [ "UNKNOWN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 1, + "speed": 0, + "symbol": "@", + "color": "cyan", + "aggression": -99, + "morale": 2, + "luminance": 15, + "dodge": 6, + "harvest": "exempt", + "emit_fields": [ { "emit_id": "emit_pyrokinetic_summon_heat_1", "delay": "1 s" } ], + "special_attacks": [ [ "DISAPPEAR", 200 ] ], + "death_function": { "message": "The %s disappears.", "corpse_type": "NO_CORPSE" }, + "flags": [ "FLIES", "NO_BREATHE", "NOT_HALLUCINATION", "HARDTOSHOOT", "IMMOBILE" ] + }, + { + "id": "mon_pyrokin_hotair_2", + "type": "MONSTER", + "copy-from": "mon_pyrokin_hotair_1", + "luminance": 30, + "emit_fields": [ { "emit_id": "emit_pyrokinetic_summon_heat_2", "delay": "1 s" } ] + }, + { + "id": "mon_pyrokin_hotair_3", + "type": "MONSTER", + "copy-from": "mon_pyrokin_hotair_1", + "luminance": 50, + "emit_fields": [ { "emit_id": "emit_pyrokinetic_summon_heat_3", "delay": "1 s" } ] + }, + { + "id": "mon_pyrokin_hotair_4", + "type": "MONSTER", + "copy-from": "mon_pyrokin_hotair_1", + "luminance": 80, + "emit_fields": [ { "emit_id": "emit_pyrokinetic_summon_heat_4", "delay": "1 s" } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/species_overrides.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/species_overrides.json new file mode 100644 index 000000000..b3124d235 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/species_overrides.json @@ -0,0 +1,63 @@ +[ + { + "type": "SPECIES", + "id": "NETHER_EMANATION", + "description": "a reflection of another dimension", + "fear_triggers": [ "HURT" ], + "flags": [ "TEEP_IMMUNE" ] + }, + { + "type": "SPECIES", + "id": "LEECH_PLANT", + "description": "a leech plant", + "fear_triggers": [ "HURT", "FIRE" ], + "flags": [ "TEEP_IMMUNE" ] + }, + { + "type": "SPECIES", + "id": "WORM", + "description": "a worm", + "footsteps": "rustle.", + "fear_triggers": [ "HURT" ], + "bleeds": "fd_blood_invertebrate", + "flags": [ "TEEP_IMMUNE" ] + }, + { + "type": "SPECIES", + "id": "ZOMBIE", + "description": "a zombie", + "footsteps": "shuffling.", + "bleeds": "fd_blood", + "flags": [ "TEEP_IMMUNE" ] + }, + { + "type": "SPECIES", + "id": "ROBOT", + "description": "a robot", + "footsteps": "mechanical whirring.", + "bleeds": "fd_mechanical_fluid", + "flags": [ "TEEP_IMMUNE" ] + }, + { + "type": "SPECIES", + "id": "FUNGUS", + "description": "a fungus", + "fear_triggers": [ "HURT", "FIRE" ], + "flags": [ "HIVE_MIND" ] + }, + { + "type": "SPECIES", + "id": "MIGO", + "description": "a creature from the mi-go homeworld", + "fear_triggers": [ "HURT" ], + "flags": [ "HIVE_MIND" ] + }, + { + "type": "SPECIES", + "id": "SLIME", + "description": "a slime", + "footsteps": "plop.", + "bleeds": "fd_slime", + "flags": [ "TEEP_IMMUNE" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/monsters/zombies.json b/data/Mainline_mods/Mods/MindOverMatter/monsters/zombies.json new file mode 100644 index 000000000..b64e3717e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/monsters/zombies.json @@ -0,0 +1,276 @@ +[ + { + "id": "mon_zombie_scientist_phavian", + "copy-from": "mon_zombie_scientist", + "type": "MONSTER", + "name": { "str": "zombie scientist" }, + "death_drops": "mon_zombie_scientist_phavian_death_drops" + }, + { + "id": "mon_zombie_blank", + "type": "MONSTER", + "name": { "str": "zombie blank" }, + "description": "This zombie looks fairly ordinary, other than walking more quickly than the standard shambling. But there's something subtly wrong about it. When you look directly at it, gray static flickers on the edge of your vision and you hear a very low droning hum.", + "default_faction": "zombie", + "bodytype": "human", + "species": [ "ZOMBIE", "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 100, + "speed": 100, + "material": [ "flesh" ], + "symbol": "Z", + "color": "dark_gray_white", + "scents_tracked": [ "sc_human", "sc_fetid" ], + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "dodge": 3, + "bleed_rate": 50, + "vision_night": 5, + "emit_fields": [ { "emit_id": "emit_anti_psi", "delay": "1 s" } ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "harvest": "zombie_humanoid", + "grab_strength": 20, + "special_attacks": [ { "id": "grab" }, { "id": "bite_humanoid", "cooldown": 5 }, { "id": "scratch_humanoid" } ], + "death_drops": "default_zombie_death_drops", + "death_function": { "effect": { "id": "delete_nullifying_fields_monster", "hit_self": true } }, + "burn_into": "mon_zombie_scorched", + "fungalize_into": "mon_zombie_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_ZOMBIE_BLANK_UPGRADE" }, + "flags": [ + "SEES", + "HEARS", + "STUMBLES", + "WARM", + "GRABS", + "BASHES", + "GROUP_BASH", + "POISON", + "NO_BREATHE", + "REVIVES", + "PUSH_MON", + "FILTHY", + "FIREPROOF", + "ENERVATE_IMMUNE", + "TELEPORT_IMMUNE", + "TEEP_IMMUNE", + "TELEKIN_IMMUNE" + ], + "//": "Heat armor is needed to make it immune to pyrokinesis.", + "armor": { + "electric": 1, + "heat": 999, + "psi_telekinetic_damage": 999, + "psi_telepathic_damage": 999, + "psi_teleporter_teleporting_damage": 999, + "psi_enervation_damage": 999 + } + }, + { + "id": "mon_zombie_nullpsi", + "type": "MONSTER", + "name": { "str": "zombie null" }, + "description": "This zombie's limbs are elongated and its torso is stretched, causing it to occasionally drop on all fours to skitter faster than a normal walk. When you look directly at it, gray static flickers on the edge of your vision and you hear a very low droning hum.", + "default_faction": "zombie", + "bodytype": "human", + "species": [ "ZOMBIE", "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 110, + "speed": 120, + "material": [ "flesh" ], + "symbol": "Z", + "color": "dark_gray_white", + "scents_tracked": [ "sc_human", "sc_fetid" ], + "aggression": 100, + "morale": 100, + "melee_skill": 5, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "dodge": 4, + "bleed_rate": 50, + "vision_night": 5, + "emit_fields": [ { "emit_id": "emit_anti_psi", "delay": "1 s" } ], + "weakpoints": [ + { "name": "the head", "armor_mult": { "physical": 0.5 }, "coverage": 3 }, + { "name": "the eye", "armor_mult": { "physical": 0 }, "coverage": 1 }, + { "name": "the leg", "armor_mult": { "physical": 0.75 }, "coverage": 3 } + ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "harvest": "zombie_humanoid", + "grab_strength": 40, + "special_attacks": [ + { "id": "grab" }, + { "id": "bite_humanoid", "cooldown": 5 }, + { + "id": "scratch", + "cooldown": 15, + "damage_max_instance": [ { "damage_type": "bash", "amount": 6, "armor_multiplier": 0.8 } ], + "effects": [ { "id": "effect_psi_neutralized", "duration": 15 } ], + "hit_dmg_u": "%1$s strikes at your %2$s!", + "hit_dmg_npc": "%1$s strikes at !", + "miss_msg_u": "%1$s strikes at you, but you dodge!", + "miss_msg_npc": "%1$s tries to strike at , but they dodge!", + "no_dmg_msg_u": "%1$s strikes at your %2$s, but fails to penetrate armor.", + "no_dmg_msg_npc": "%1$s tries to strike at , but fails to penetrate armor." + }, + { + "type": "leap", + "cooldown": 15, + "max_range": 3, + "min_consider_range": 2, + "max_consider_range": 4, + "message": "%1$s drops to all fours for a burst of speed!" + }, + { + "id": "zombie_null_nether_banish_monster", + "type": "spell", + "spell_data": { "id": "nether_banish_monster" }, + "cooldown": 20, + "monster_message": "%1$s looks at %3$s and the static on the edge of your vision flickers." + } + ], + "death_drops": "default_zombie_death_drops", + "death_function": { "effect": { "id": "delete_nullifying_fields_monster", "hit_self": true } }, + "burn_into": "mon_zombie_scorched", + "upgrades": { "half_life": 45, "into": "mon_zombie_psi_void" }, + "fungalize_into": "mon_zombie_fungus", + "flags": [ + "SEES", + "HEARS", + "STUMBLES", + "WARM", + "GRABS", + "BASHES", + "GROUP_BASH", + "POISON", + "NO_BREATHE", + "REVIVES", + "PUSH_MON", + "FILTHY", + "FIREPROOF", + "ENERVATE_IMMUNE", + "TELEPORT_IMMUNE", + "TEEP_IMMUNE", + "TELEKIN_IMMUNE" + ], + "//": "Heat armor is needed to make it immune to pyrokinesis.", + "armor": { + "electric": 1, + "heat": 999, + "psi_telekinetic_damage": 999, + "psi_telepathic_damage": 999, + "psi_teleporter_teleporting_damage": 999, + "psi_enervation_damage": 999 + } + }, + { + "id": "mon_zombie_psi_void", + "type": "MONSTER", + "name": { "str": "nether-void" }, + "description": "Thoughts of old creepy Internet memes arise unbidden as you see this zombie. It's almost ten feet fall but incredibly thin, with spindly legs and with arms that hang down almost all the way to the ground. Occasionally, it drops on all fours to clamber with uncanny speed over some bit of rubble. When you look directly at it, gray static flickers on the edge of your vision and you hear a very low droning hum.", + "default_faction": "zombie", + "bodytype": "human", + "species": [ "ZOMBIE", "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 110, + "speed": 140, + "material": [ "flesh" ], + "symbol": "Z", + "color": "dark_gray_white", + "scents_tracked": [ "sc_human", "sc_fetid" ], + "aggression": 100, + "morale": 100, + "melee_skill": 5, + "melee_dice": 2, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 2 } ], + "dodge": 5, + "bleed_rate": 50, + "vision_night": 5, + "emit_fields": [ { "emit_id": "emit_anti_psi", "delay": "1 s" } ], + "weakpoints": [ + { "name": "the head", "armor_mult": { "physical": 0.5 }, "coverage": 3 }, + { "name": "the eye", "armor_mult": { "physical": 0 }, "coverage": 1 }, + { "name": "the leg", "armor_mult": { "physical": 0.75 }, "coverage": 3 } + ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "harvest": "zombie_humanoid", + "grab_strength": 50, + "special_attacks": [ + { "id": "ranged_pull", "range": 3 }, + { "id": "grab_drag", "cooldown": 3 }, + { "id": "drag_followup" }, + { "id": "bite_humanoid", "cooldown": 5 }, + { + "id": "scratch", + "cooldown": 12, + "damage_max_instance": [ { "damage_type": "bash", "amount": 6, "armor_multiplier": 0.8 } ], + "effects": [ { "id": "effect_psi_neutralized", "duration": 30 } ], + "hit_dmg_u": "%1$s strikes at your %2$s!", + "hit_dmg_npc": "%1$s strikes at !", + "miss_msg_u": "%1$s strikes at you, but you dodge!", + "miss_msg_npc": "%1$s tries to strike at , but they dodge!", + "no_dmg_msg_u": "%1$s strikes at your %2$s, but fails to penetrate armor.", + "no_dmg_msg_npc": "%1$s tries to strike at , but fails to penetrate armor." + }, + { + "type": "leap", + "cooldown": 15, + "max_range": 4, + "min_consider_range": 2, + "max_consider_range": 6, + "message": "%1$s drops to all fours for a burst of speed!" + }, + { + "id": "zombie_void_nether_banish_monster", + "type": "spell", + "spell_data": { "id": "nether_banish_monster_greater" }, + "cooldown": 15, + "monster_message": "%1$s looks at %3$s and the static on the edge of your vision creeps inward for a moment." + } + ], + "death_drops": "default_zombie_death_drops", + "death_function": { "effect": { "id": "delete_nullifying_fields_monster", "hit_self": true } }, + "burn_into": "mon_zombie_scorched", + "fungalize_into": "mon_zombie_fungus", + "flags": [ + "SEES", + "HEARS", + "STUMBLES", + "WARM", + "GRABS", + "BASHES", + "GROUP_BASH", + "POISON", + "CLIMBS", + "SLUDGEPROOF", + "NO_BREATHE", + "REVIVES", + "PUSH_MON", + "PRIORITIZE_TARGETS", + "FILTHY", + "FIREPROOF", + "ENERVATE_IMMUNE", + "TELEPORT_IMMUNE", + "TEEP_IMMUNE", + "TELEKIN_IMMUNE" + ], + "//": "Heat armor is needed to make it immune to pyrokinesis.", + "armor": { + "electric": 1, + "heat": 999, + "psi_telekinetic_damage": 999, + "psi_telepathic_damage": 999, + "psi_teleporter_teleporting_damage": 999, + "psi_enervation_damage": 999 + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/morale_types.json b/data/Mainline_mods/Mods/MindOverMatter/morale_types.json new file mode 100644 index 000000000..50f7f8d8e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/morale_types.json @@ -0,0 +1,7 @@ +[ + { + "id": "morale_telepathy", + "type": "morale_type", + "text": "Thought-Editing" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mutations/npc_mutations.json b/data/Mainline_mods/Mods/MindOverMatter/mutations/npc_mutations.json new file mode 100644 index 000000000..0215d0a8a --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mutations/npc_mutations.json @@ -0,0 +1,12 @@ +[ + { + "type": "mutation", + "id": "NPC_TELEPATHY_IMMUNE", + "name": { "str": "NPC Telepathy immunity" }, + "points": 99, + "valid": false, + "description": "For NPCs that should be immune to telepathy.", + "purifiable": false, + "flags": [ "TEEPSHIELD" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mutations/psi_passives.json b/data/Mainline_mods/Mods/MindOverMatter/mutations/psi_passives.json new file mode 100644 index 000000000..01ee40e2f --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mutations/psi_passives.json @@ -0,0 +1,515 @@ +[ + { + "type": "mutation", + "id": "NO_PSIONICS", + "name": { "str": "Headblind" }, + "description": "You have a normal human (lack of) capacity for psionic powers.", + "player_display": false, + "points": 0, + "dummy": true, + "category": [ "HUMAN" ], + "cancels": [ + "BIOKIN_NEEDS", + "CLAIR_SENSES", + "PYROGLOW_WEAK", + "PYROGLOW_STRONG", + "TELEKINETIC_CARRY", + "TELEPATHIC_SUGGESTION", + "TELEPORTER_PROTECT", + "VITAKINETIC_HEALTH" + ] + }, + { + "type": "mutation", + "id": "BIOKIN_NEEDS", + "name": { "str": "Efficient System" }, + "points": 0, + "description": "Thanks to your powers, you need less food and drink than the average person and are more efficient at processing it.", + "vitamins_absorb_multi": [ [ "all", [ [ "vitA", 1.05 ], [ "vitB", 1.05 ], [ "vitC", 1.05 ], [ "calcium", 1.05 ], [ "iron", 1.05 ] ] ] ], + "player_display": true, + "purifiable": false, + "enchantments": [ + { + "values": [ + { "value": "HUNGER", "multiply": { "math": [ "(-0.03 - (0.015 * u_val('spell_level', 'school: BIOKINETIC')))" ] } }, + { + "value": "THIRST", + "multiply": { "math": [ "(-0.03 - (0.015 * u_val('spell_level', 'school: BIOKINETIC')))" ] } + }, + { + "value": "METABOLISM", + "multiply": { "math": [ "(-0.03 - (0.015 * u_val('spell_level', 'school: BIOKINETIC')))" ] } + } + ] + } + ] + }, + { + "type": "mutation", + "id": "CLAIR_SENSES", + "name": { "str": "Psionic Senses" }, + "points": 0, + "description": "Your powers enhance your mundane senses and allow you to detect creatures from beyond.", + "hearing_modifier": 1.2, + "flags": [ "ENHANCED_VISION", "WATCH" ], + "player_display": true, + "purifiable": false, + "enchantments": [ + { + "values": [ + { "value": "SIGHT_RANGE_NETHER", "add": { "math": [ "(2 + (1.5 * u_val('spell_level', 'school: CLAIRSENTIENT')))" ] } } + ] + } + ] + }, + { + "type": "mutation", + "id": "PYROGLOW_WEAK", + "name": { "str": "Pyrokinetic Radiance [soft]" }, + "points": 0, + "description": "You can make the air around you emit light.", + "active": true, + "player_display": true, + "purifiable": false, + "cost": 0, + "transform": { + "target": "PYROGLOW_WEAK_A", + "msg_transform": "The air around you starts glowing softly.", + "active": true, + "moves": 10 + } + }, + { + "type": "mutation", + "id": "PYROGLOW_WEAK_A", + "name": { "str": "Pyrokinetic Radiance [soft] (on)" }, + "description": "The air around you is emitting light.", + "copy-from": "PYROGLOW_WEAK", + "valid": false, + "transform": { "target": "PYROGLOW_WEAK", "msg_transform": "The air around you loses its radiance.", "active": false, "moves": 10 }, + "enchantments": [ { "values": [ { "value": "LUMINATION", "add": 20 } ] } ] + }, + { + "type": "mutation", + "id": "PYROGLOW_STRONG", + "name": { "str": "Pyrokinetic Radiance [bright]" }, + "points": 0, + "description": "You can make the air around you emit a strong light.", + "active": true, + "player_display": true, + "purifiable": false, + "cost": 0, + "transform": { + "target": "PYROGLOW_STRONG_A", + "msg_transform": "The air around you starts glowing brightly.", + "active": true, + "moves": 10 + } + }, + { + "type": "mutation", + "id": "PYROGLOW_STRONG_A", + "name": { "str": "Pyrokinetic Radiance [bright] (on)" }, + "description": "The air around you is emitting a bright light.", + "copy-from": "PYROGLOW_STRONG", + "valid": false, + "transform": { "target": "PYROGLOW_STRONG", "msg_transform": "The air around you loses its radiance.", "active": false, "moves": 10 }, + "enchantments": [ + { + "values": [ { "value": "LUMINATION", "add": { "math": [ "(50 + (20 * u_val('spell_level', 'school: PYROKINETIC')))" ] } } ] + } + ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_1", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_1" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_2", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_2" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_3", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_3" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_4", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_4" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_5", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_5" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_6", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_6" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_7", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_7" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_8", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_8" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_9", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_9" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_10", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_10" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_11", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_11" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_12", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_12" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_13", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_13" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_14", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_14" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_15", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_15" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_16", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_16" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_17", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_17" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_18", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_18" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_19", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_19" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_20", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_20" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_21", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_21" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_22", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_22" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_23", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_23" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_24", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_24" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_25", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_25" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_26", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_26" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_27", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_27" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_28", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_28" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_29", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_29" ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_LIFTER_30", + "name": { "str": "Lifting Hand" }, + "points": 0, + "description": "With a modicum of concentration you can carry a single item with your powers. As your powers increase, you may meditate on it to expand its capacity.", + "valid": false, + "player_display": true, + "purifiable": false, + "integrated_armor": [ "telekinetic_container_30" ] + }, + { + "type": "mutation", + "id": "TELEPATHIC_SUGGESTION", + "name": { "str": "Telepathic Suggestion" }, + "points": 0, + "description": "You are subtly influencing the minds of the people you speak to.", + "social_modifiers": { "lie": 15, "persuade": 15, "intimidate": 15 }, + "valid": false, + "player_display": true, + "purifiable": false, + "enchantments": [ + { + "values": [ + { "value": "SOCIAL_INTIMIDATE", "add": { "math": [ "(5 + (1.5 * u_val('spell_level', 'school: TELEPATHIC')))" ] } }, + { "value": "SOCIAL_LIE", "add": { "math": [ "(5 + (1.5 * u_val('spell_level', 'school: TELEPATHIC')))" ] } }, + { + "value": "SOCIAL_PERSUADE", + "add": { "math": [ "(5 + (1.5 * u_val('spell_level', 'school: TELEPATHIC')))" ] } + } + ] + } + ] + }, + { + "type": "mutation", + "id": "TELEPORTER_PROTECT", + "name": { "str": "Spacial Recalibration" }, + "points": 0, + "description": "You can keep otherworldly eyes off you to some extent, and you will sometimes instinctively teleport to avoid danger.", + "flags": [ "TELESTOP" ], + "valid": false, + "player_display": true, + "purifiable": false, + "enchantments": [ + { + "values": [ { "value": "EVASION", "add": { "math": [ "(0.01 + (0.005 * u_val('spell_level', 'school: TELEPORTER')))" ] } } ] + } + ] + }, + { + "type": "mutation", + "id": "VITAKINETIC_HEALTH", + "name": { "str": "Bloom of Vitality" }, + "points": 0, + "description": "Your psionic powers speed your healing slightly and increase your overall resilience, and any broken limbs you have mend straight and true.", + "vitamin_rates": [ [ "mutant_toxin", 180 ] ], + "flags": [ "MEND_ALL" ], + "valid": false, + "player_display": true, + "purifiable": false, + "enchantments": [ + { + "values": [ + { "value": "REGEN_HP", "multiply": { "math": [ "(0.1 + (0.01 * u_val('spell_level', 'school: VITAKINETIC')))" ] } }, + { + "value": "MAX_HP", + "multiply": { "math": [ "(0.05 + (0.01 * u_val('spell_level', 'school: VITAKINETIC')))" ] } + } + ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mutations/temporary.json b/data/Mainline_mods/Mods/MindOverMatter/mutations/temporary.json new file mode 100644 index 000000000..d3a86534f --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mutations/temporary.json @@ -0,0 +1,91 @@ +[ + { + "id": "TELELIXIRDOWN", + "type": "mutation", + "name": { "str": "Elixir PK Surge" }, + "description": "Thanks to the crystalline elixir, you can lash out with unfocused surges of telekinetic power.", + "points": 5, + "visibility": 0, + "ugliness": 0, + "active": true, + "player_display": true, + "transform": { "target": "TELELIXIRDOWN_active", "msg_transform": "You unleash your powers.", "active": true, "moves": 10 } + }, + { + "id": "TELELIXIRDOWN_active", + "type": "mutation", + "name": { "str": "Elixir PK Surge (active)" }, + "copy-from": "TELELIXIRDOWN", + "description": "You are lashing out with your elixir-forged telekinetic powers.", + "fatigue": true, + "cost": 1, + "time": "1 m", + "activated_eocs": [ "EOC_TELELIXIR_CAST" ], + "transform": { "target": "TELELIXIRDOWN", "msg_transform": "You rein your powers back in for now.", "active": false, "moves": 10 } + }, + { + "type": "effect_on_condition", + "id": "EOC_TELELIXIR_CAST", + "condition": { "u_has_trait": "TELELIXIRDOWN_active" }, + "deactivate_condition": { "not": { "u_has_trait": "TELELIXIRDOWN_active" } }, + "recurrence": [ "2 seconds", "5 seconds" ], + "effect": [ + { "u_cast_spell": { "id": "telelixir_random", "message": "Your crystal-fueled powers activate!" }, "targeted": true } + ] + }, + { + "id": "telelixir_random", + "type": "SPELL", + "name": "[Ψ]Telelixir Random Choice", + "description": "Part of the Telekinetic Elixir spell that chooses another spell to cast. It's a bug if you have it.", + "flags": [ "WONDER", "NO_PROJECTILE", "RANDOM_TARGET", "NO_EXPLOSION_SFX" ], + "valid_targets": [ "hostile" ], + "message": "", + "effect": "none", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_range": 8, + "max_range": 15, + "extra_effects": [ { "id": "telelixir_slam" }, { "id": "telelixir_push" } ] + }, + { + "id": "telelixir_slam", + "type": "SPELL", + "name": "[Ψ]Telelixir Slam", + "description": "One spell for the telekinetic elixir mutation. It's a bug if you have it.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS" ], + "message": "", + "effect": "attack", + "effect_str": "downed", + "shape": "blast", + "difficulty": 1, + "min_duration": 200 + }, + { + "id": "telelixir_push", + "type": "SPELL", + "name": "[Ψ]Telelixir Shove", + "description": "One spell for the telekinetic elixir mutation. It's a bug if you have it.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "message": "", + "effect": "directed_push", + "shape": "blast", + "difficulty": 1, + "min_damage": 3, + "max_damage": 8 + }, + { + "id": "ANCHORCROWN_NOSPELL", + "type": "mutation", + "name": { "str": "Psionic negation" }, + "description": "The anchor crown you're wearing is shutting down your psionic powers.", + "points": 5, + "visibility": 0, + "ugliness": 0, + "player_display": true, + "flags": [ "NO_SPELLCASTING" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/mutations/traits.json b/data/Mainline_mods/Mods/MindOverMatter/mutations/traits.json new file mode 100644 index 000000000..8b534ad1f --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/mutations/traits.json @@ -0,0 +1,93 @@ +[ + { + "type": "mutation", + "id": "BIOKINETIC", + "name": "Awakened Biokinetic", + "points": 0, + "description": "Mental control over bodily processes.", + "starting_trait": false, + "purifiable": false, + "valid": false, + "spells_learned": [ [ "biokin_physical_enhance", 2 ], [ "biokin_overcome_pain", 2 ], [ "biokin_flexibility", 2 ] ] + }, + { + "type": "mutation", + "id": "CLAIRSENTIENT", + "name": "Awakened Clairsentient", + "points": 0, + "description": "The ability to extend the senses beyond the body.", + "starting_trait": false, + "purifiable": false, + "valid": false, + "spells_learned": [ [ "clair_night_vision", 2 ], [ "clair_danger_sense", 2 ], [ "clair_speed_reading", 2 ] ] + }, + { + "type": "mutation", + "id": "PYROKINETIC", + "name": "Awakened Pyrokinetic", + "points": 0, + "description": "Mental control of heat and flame.", + "starting_trait": false, + "purifiable": false, + "valid": false, + "spells_learned": [ [ "pyrokinetic_eruption", 2 ], [ "pyrokinetic_flash", 2 ], [ "pyrokinetic_quell_flames", 2 ] ] + }, + { + "type": "mutation", + "id": "TELEPATH", + "name": "Awakened Telepath", + "points": 0, + "description": "The ability to read thoughts and influence others' minds.", + "starting_trait": false, + "purifiable": false, + "valid": false, + "spells_learned": [ + [ "telepathic_concentration", 2 ], + [ "telepathic_shield", 2 ], + [ "telepathic_concentration_end", 1 ], + [ "telepathic_morale", 2 ] + ] + }, + { + "type": "mutation", + "id": "TELEKINETIC", + "name": "Awakened Telekinetic", + "points": 0, + "description": "Mental control over the motion of objects and people at a distance.", + "starting_trait": false, + "purifiable": false, + "valid": false, + "spells_learned": [ [ "telekinetic_pull", 2 ], [ "telekinetic_push", 2 ], [ "telekinetic_momentum", 2 ] ] + }, + { + "type": "mutation", + "id": "TELEPORTER", + "name": "Awakened Teleporter", + "points": 0, + "description": "The ability to move without crossing the intervening space, as well as some control over space itself.", + "starting_trait": false, + "purifiable": false, + "valid": false, + "spells_learned": [ [ "teleport_blink", 2 ], [ "teleport_slow", 2 ], [ "teleport_transpose", 2 ] ] + }, + { + "type": "mutation", + "id": "VITAKINETIC", + "name": "Awakened Vitakinetic", + "points": 0, + "description": "Mental control over health and vitality.", + "starting_trait": false, + "purifiable": false, + "valid": false, + "spells_learned": [ [ "vita_stop_bleeding", 2 ], [ "vita_health_power", 2 ], [ "vita_hurt_touch", 2 ] ] + }, + { + "type": "mutation", + "id": "KI_STRIKE", + "name": { "str": "VERDANT HAND Combat Protocols" }, + "points": 2, + "description": "Who needs weapons? Thanks to your biokinesis, you deal more melee damage while fighting barehanded and without gloves. This damage improves as your unarmed skill increases.", + "starting_trait": false, + "valid": false + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/Rubik.json b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/Rubik.json new file mode 100644 index 000000000..7a206b1c9 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/Rubik.json @@ -0,0 +1,67 @@ +[ + { + "id": [ "TALK_EXODII_MERCHANT_New", "TALK_EXODII_MERCHANT_Talk" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Premonition] *Determine if is a threat*", + "topic": "TALK_EXODII_MERCHANT_danger_sense", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "2" ] } + } + ] + }, + { + "id": [ "TALK_EXODII_MERCHANT_danger_sense" ], + "type": "talk_topic", + "dynamic_line": "&You extend your senses, alert for danger, and are surprised that at the result. There is danger here, but it's muted, and certainly Rubik doesn't bear you any malice. If any place is safe in the hell that the Earth has become, this is it.", + "responses": [ { "text": "…", "topic": "TALK_EXODII_MERCHANT_Talk" } ] + }, + { + "id": [ + "TALK_EXODII_MERCHANT_New", + "TALK_EXODII_MERCHANT_Talk", + "TALK_EXODII_MERCHANT_Exodus", + "TALK_EXODII_MERCHANT_Exodus2", + "TALK_EXODII_MERCHANT_Exodus3", + "TALK_EXODII_MERCHANT_Survival2" + ], + "type": "talk_topic", + "responses": [ + { + "text": "[Telepathy] *Read 's mind*", + "topic": "TALK_EXODII_MERCHANT_scan", + "condition": { "u_has_trait": "TELEPATH" } + } + ] + }, + { + "id": [ "TALK_EXODII_MERCHANT_scan" ], + "type": "talk_topic", + "dynamic_line": "&You weren't expecting to be able to understand Rubik's thoughts. Whatever language it is he speaks, this \"Anglic\", the resemblance to English is clearly a fortunate coincidence. But you are surprised that your telepathic scan doesn't pick up anything at all. Just a faint static hum, rising and falling in an irregular pattern.", + "responses": [ + { "text": "*Withdraw from 's mind*.", "topic": "TALK_EXODII_MERCHANT_Talk" }, + { + "text": "[Telepathy 10+] *Go deeper*.", + "topic": "TALK_EXODII_MERCHANT_deep_scan", + "condition": { "math": [ "u_val('spell_level', 'school: TELEPATH')", ">=", "10" ] } + } + ] + }, + { + "id": [ "TALK_EXODII_MERCHANT_deep_scan" ], + "type": "talk_topic", + "dynamic_line": "&Your awareness of the outside world fades as you fall into Rubik's mind.\n\nYou see a young boy in a thriving metropolis, doing odd jobs for spare coins, playing in the alleys with his friends, coming home at dusk for supper. You see a young man running from a group of zombies. You see this castle, or near enough--some towers are missing, some missing towers are there, but obviously the same--and its denizens fending off an attack from a group of winged things. You see a conversation in a language you've never heard before among a group of Exodii, before everyone files into rooms, secures themselves with restraints, and there's a brief moment of searing pain and then darkness, filled with static and bursts of light half-glimpsed in your peripheral vision.\n\nYou see worlds. World after world, in a procession over…decades? Centuries? You can't tell; you have no sense of time during the vision. Most worlds were less advanced than the Earth, and the few survivors fought the dead with human wave tactics and trench warfare, or lines of musketeers, or archers from behind the trees. Sometimes, doughty warriors clad in iron or bronze hurled themselves at the enemy with sword and shield in hand, until they fell and their corpses rose again. In one world, the survivors fought with powered armor and particle-beam weapons. But on every world, slowly, inexorably, the dead or the fungus or the walking trees ground down the defenders until humanity was on the brink of extinction and, with a few survivors in tow, the Exodii powered up their jump devices and continued the Long Retreat.\n\nIn the end, not once, in a dozen or a hundred or you know not how many worlds, was there anything left to save.", + "responses": [ { "text": "*Withdraw from his mind*.", "topic": "TALK_EXODII_MERCHANT_Post_Scan" } ] + }, + { + "id": [ "TALK_EXODII_MERCHANT_Post_Scan" ], + "type": "talk_topic", + "dynamic_line": "&Rubik is looking at you oddly. Whatever he had been saying before, he's stopped.", + "responses": [ + { + "text": "Sorry, I must have zoned out for a moment there. It's been a long day. You were saying?", + "topic": "TALK_EXODII_MERCHANT_Talk" + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/follower_dialogue.json b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/follower_dialogue.json new file mode 100644 index 000000000..148d0101e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/follower_dialogue.json @@ -0,0 +1,260 @@ +[ + { + "id": [ "TALK_FRIEND" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Telepathy] *Read 's mind*", + "topic": "TALK_FRIEND_FOLLOWER_scan", + "condition": { "u_has_trait": "TELEPATH" } + }, + { + "text": "[Vitakinesis] I noticed that you're sick.", + "topic": "TALK_FRIEND_VITAKINETIC_CURE", + "condition": { + "and": [ + { + "or": [ + { "npc_has_trait": "ASTHMA" }, + { "npc_has_trait": "CHEMIMBALANCE" }, + { "npc_has_trait": "SCHIZOPHRENIC" }, + { "npc_has_trait": "JITTERY" }, + { "npc_has_trait": "MOODSWINGS" }, + { "npc_has_trait": "WEAKENING" }, + { "npc_has_trait": "NARCOLEPTIC" } + ] + }, + { "u_has_trait": "VITAKINETIC" } + ] + } + } + ] + }, + { + "id": [ "TALK_FRIEND_FOLLOWER_scan" ], + "type": "talk_topic", + "dynamic_line": [ "", "" ], + "responses": [ { "text": "…", "topic": "TALK_FRIEND" } ] + }, + { + "id": [ "TALK_FRIEND_VITAKINETIC_CURE" ], + "type": "talk_topic", + "dynamic_line": [ + "And?", + "Yeah, it is what it is.", + "Those storms at the end of world… I was fine before them.", + "You noticed, did you?" + ], + "responses": [ + { + "text": "I can cure your illness for you.", + "condition": { "and": [ { "not": "is_by_radio" }, { "not": { "npc_has_trait": "HALLUCINATION" } } ] }, + "trial": { + "type": "CONDITION", + "condition": { + "or": [ + { "npc_need": "thirst", "amount": 80 }, + { "npc_need": "hunger", "amount": 160 }, + { "npc_need": "fatigue", "level": "TIRED" }, + "u_driving", + "npc_driving" + ] + } + }, + "success": { "topic": "TALK_DENY_VITAKINETIC_HEALING" }, + "failure": { "topic": "TALK_PERSUADE_VITAKINETIC_HEALING" } + } + ] + }, + { + "id": "TALK_DENY_VITAKINETIC_HEALING", + "type": "talk_topic", + "dynamic_line": { + "u_driving": "We'll talk about that after you're done operating that vehicle.", + "no": { + "npc_driving": "I don't want to talk about that while I'm operating a vehicle!", + "no": { + "npc_need": "thirst", + "amount": 80, + "no": { + "npc_need": "hunger", + "amount": 160, + "no": { + "npc_need": "fatigue", + "level": "TIRED", + "no": { + "npc_has_effect": "asked_to_vitakinetic_heal", + "no": "I have some reason to refuse healing.", + "yes": "I already told you no. Let it go." + }, + "yes": "I'm too tired, let me rest first." + }, + "yes": "I'm too hungry, give me something to eat." + }, + "yes": "I'm too thirsty, give me something to drink." + } + } + }, + "responses": [ { "text": "Ah, okay.", "topic": "TALK_NONE" } ] + }, + { + "id": "TALK_PERSUADE_VITAKINETIC_HEALING", + "type": "talk_topic", + "dynamic_line": "You're going to what? How are you going to do that?", + "responses": [ + { + "text": "You've seen what I can do, right? Let me try. (Note: By doing this you will absorb 's disease into yourself.)", + "trial": { "type": "PERSUADE", "difficulty": 0, "mod": [ [ "TRUST", 6 ], [ "VALUE", 2 ], [ "ANGER", -6 ] ] }, + "success": { "topic": "TALK_ACCEPT_VITAKINETIC_HEALING" }, + "failure": { + "topic": "TALK_DENY_VITAKINETIC_HEALING", + "effect": { "npc_add_effect": "asked_to_vitakinetic_heal", "duration": 86400 } + } + }, + { "text": "Never mind then.", "topic": "TALK_NONE" }, + { "text": "Forget it, let's get going.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_DENY_VITAKINETIC_HEALING", + "type": "talk_topic", + "dynamic_line": "I don't think so. I know there are zombies out there and the world is all fucked up, but I'd rather keep that fucked-up-ness as far away from me as possible. No offense.", + "responses": [ { "text": "Alright, if you insist.", "topic": "TALK_DONE" } ] + }, + { + "id": "TALK_ACCEPT_VITAKINETIC_HEALING", + "type": "talk_topic", + "dynamic_line": [ + "Alright, it can't be worse than what I'm already going through.", + "Sure, I'll try anything at this point.", + "Okay. The medicine's going to run out someday and then I'll really be fucked. If this works…" + ], + "responses": [ + { + "text": "Hold still. *Remove 's asthma*", + "topic": "TALK_DONE", + "condition": { + "and": [ + { "npc_has_trait": "ASTHMA" }, + { "not": { "u_has_trait": "ASTHMA" } }, + { "not": { "u_has_bionics": "bio_synlungs" } } + ] + }, + "effect": [ + { "npc_lose_trait": "ASTHMA" }, + { "u_add_trait": "ASTHMA" }, + { + "u_message": "You touch and reach out with your powers, looking for the illness within them. You soon find it, a shadow over their lungs, and draw it into yourself.", + "popup": true + }, + { "u_assign_activity": "ACT_VITAKIN_BANISH_FOLLOWER_ILLNESS", "duration": "10 minutes" } + ] + }, + { + "text": "Hold still. *Remove 's asthma*", + "topic": "TALK_DONE", + "condition": { + "and": [ + { "npc_has_trait": "ASTHMA" }, + { "not": { "u_has_effect": "effect_asthma_disease_absorbed" } }, + { "u_has_bionics": "bio_synlungs" } + ] + }, + "effect": [ + { "npc_lose_trait": "ASTHMA" }, + { "u_add_effect": "effect_asthma_disease_absorbed", "duration": "60 days" }, + { + "u_message": "You touch and reach out with your powers, looking for the illness within them. You soon find it, a shadow over their lungs, and draw it into yourself. It tries to find purchase in your lungs, but it can't; plastic and steel are immune to the weaknesses of the flesh. Denied purchase there, it settles into the surrounding tissue.", + "popup": true + }, + { "u_assign_activity": "ACT_VITAKIN_BANISH_FOLLOWER_ILLNESS", "duration": "10 minutes" } + ] + }, + { + "text": "Hold still. *Remove 's chemical imbalance*", + "topic": "TALK_DONE", + "condition": { "and": [ { "npc_has_trait": "CHEMIMBALANCE" }, { "not": { "u_has_trait": "CHEMIMBALANCE" } } ] }, + "effect": [ + { "npc_lose_trait": "CHEMIMBALANCE" }, + { "u_add_trait": "CHEMIMBALANCE" }, + { + "u_message": "You touch and reach out with your powers, looking for the illness within them. You soon find it, a shadow over their mind, and draw it into yourself.", + "popup": true + }, + { "u_assign_activity": "ACT_VITAKIN_BANISH_FOLLOWER_ILLNESS", "duration": "15 minutes" } + ] + }, + { + "text": "Hold still. *Remove 's kaluptic psychosis*", + "topic": "TALK_DONE", + "condition": { "and": [ { "npc_has_trait": "SCHIZOPHRENIC" }, { "not": { "u_has_trait": "SCHIZOPHRENIC" } } ] }, + "effect": [ + { "npc_lose_trait": "SCHIZOPHRENIC" }, + { "u_add_trait": "SCHIZOPHRENIC" }, + { + "u_message": "You touch and reach out with your powers, looking for the illness within them. You soon find it, a shadow over their mind, and draw it into yourself.", + "popup": true + }, + { "u_assign_activity": "ACT_VITAKIN_BANISH_FOLLOWER_ILLNESS", "duration": "30 minutes" } + ] + }, + { + "text": "Hold still. *Remove 's muscle jitters*", + "topic": "TALK_DONE", + "condition": { "npc_has_trait": "JITTERY" }, + "effect": [ + { "npc_lose_trait": "JITTERY" }, + { "u_add_trait": "JITTERY" }, + { + "u_message": "You touch and reach out with your powers, looking for the illness within them. You soon find it, a shadow over their limbs, and draw it into yourself.", + "popup": true + }, + { "u_assign_activity": "ACT_VITAKIN_BANISH_FOLLOWER_ILLNESS", "duration": "15 minutes" } + ] + }, + { + "text": "Hold still. *Remove 's mood swings*", + "topic": "TALK_DONE", + "condition": { "and": [ { "npc_has_trait": "MOODSWINGS" }, { "not": { "u_has_trait": "MOODSWINGS" } } ] }, + "effect": [ + { "npc_lose_trait": "MOODSWINGS" }, + { "u_add_trait": "MOODSWINGS" }, + { + "u_message": "You touch and reach out with your powers, looking for the illness within them. You soon find it, a shadow over their mind, and draw it into yourself.", + "popup": true + }, + { "u_assign_activity": "ACT_VITAKIN_BANISH_FOLLOWER_ILLNESS", "duration": "20 minutes" } + ] + }, + { + "text": "Hold still. *Remove 's weakening sickness*", + "topic": "TALK_DONE", + "condition": { "npc_has_trait": "WEAKENING" }, + "effect": [ + { "npc_lose_trait": "WEAKENING" }, + { "u_add_trait": "WEAKENING" }, + { + "u_message": "You touch and reach out with your powers, looking for the illness within them. You soon find it, a shadow over their entire body, and draw it into yourself.", + "popup": true + }, + { "u_assign_activity": "ACT_VITAKIN_BANISH_FOLLOWER_ILLNESS", "duration": "20 minutes" } + ] + }, + { + "text": "Hold still. *Remove 's narcolepsy*", + "topic": "TALK_DONE", + "condition": { "and": [ { "npc_has_trait": "NARCOLEPTIC" }, { "not": { "u_has_trait": "NARCOLEPTIC" } } ] }, + "effect": [ + { "npc_lose_trait": "NARCOLEPTIC" }, + { "u_add_trait": "NARCOLEPTIC" }, + { + "u_message": "You touch and reach out with your powers, looking for the illness within them. You soon find it, a shadow over their mind, and draw it into yourself.", + "popup": true + }, + { "u_assign_activity": "ACT_VITAKIN_BANISH_FOLLOWER_ILLNESS", "duration": "10 minutes" } + ] + }, + { "text": "Actually, maybe now's not the best time.", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/generic_dialogue.json b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/generic_dialogue.json new file mode 100644 index 000000000..0623f5e60 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/generic_dialogue.json @@ -0,0 +1,233 @@ +[ + { + "id": "TALK_STOLE_ITEM", + "type": "talk_topic", + "responses": [ + { + "text": "[Telepathy Check] What are you talking about? This is mine.", + "condition": { "u_has_trait": "TELEPATH" }, + "switch": true, + "trial": { + "type": "CONDITION", + "condition": { + "and": [ + { + "roll_contested": { "math": [ "u_val('spell_level', 'school: TELEPATH')" ] }, + "difficulty": { "math": [ "n_val('intelligence')" ] }, + "die_size": 5 + }, + { "math": [ "telepathically_stole_recently", "<=", "15" ] } + ] + } + }, + "success": { "topic": "TALK_TELEPATHY_ALLOW_KEEP_ITEM" }, + "failure": { "topic": "TALK_DISALLOW_KEEP_ITEM" } + } + ] + }, + { + "id": "TALK_TELEPATHY_ALLOW_KEEP_ITEM", + "type": "talk_topic", + "dynamic_line": [ + "Oh, I…I don't know what I was thinking. I…sorry.", + "It is? Oh, it…it is. Right. Right.", + "I…I thought that…never mind.", + "But you…no, I thought…I just…", + "What? But that's…we've had…how did you…" + ], + "responses": [ + { + "text": "That's right.", + "topic": "TALK_DONE", + "effect": [ "remove_stolen_status", { "math": [ "telepathically_stole_recently", "+=", "rand(5)" ] } ] + } + ] + }, + { + "id": "TALK_MUG_TELEKINESIS_USED", + "type": "talk_topic", + "dynamic_line": { + "npc_male": [ + "*'s weapon flies out of his hands.\n\n\" ! You some kind of witch?", + "*'s weapon flies out of his hands and he lets out a startled yelp." + ], + "no": [ + "*'s weapon flies out of her hands.\n\n\" ! You some kind of witch?", + "*'s weapon flies out of her hands and she lets out a startled yelp." + ] + }, + "responses": [ + { + "text": "Get out of here before I do worse.", + "trial": { "type": "INTIMIDATE", "difficulty": 10, "mod": [ [ "FEAR", 3 ] ] }, + "success": { "topic": "TALK_DONE", "effect": "flee" }, + "failure": { "topic": "TALK_DONE", "effect": "hostile" } + } + ] + }, + { + "id": [ "TALK_MUG", "TALK_STRANGER_AGGRESSIVE" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Telekinesis Check] *Try to rip their weapon out of their hands*.", + "condition": { "u_has_trait": "TELEKINETIC" }, + "trial": { + "type": "CONDITION", + "condition": { + "roll_contested": { "math": [ "u_val('spell_level', 'school: TELEKINETIC')" ] }, + "difficulty": { "math": [ "n_val('strength')" ] }, + "die_size": 5 + } + }, + "success": { "topic": "TALK_MUG_TELEKINESIS_USED", "effect": "drop_weapon", "opinion": { "fear": 3 } }, + "failure": { "topic": "TALK_DONE", "effect": [ "hostile", { "u_message": "Your telekinesis attempt failed!", "type": "bad" } ] } + }, + { + "text": "[Brilliant Flash Check] *blind *", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_flash')", ">=", "1" ] }, + { "not": { "npc_has_worn_with_flag": "FLASH_PROTECTION" } } + ] + }, + "trial": { + "type": "CONDITION", + "condition": { + "roll_contested": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_flash')" ] }, + "difficulty": { "math": [ "n_val('perception')" ] }, + "die_size": 10 + } + }, + "success": { + "topic": "TALK_DONE", + "effect": [ "hostile", { "npc_add_effect": "blind", "duration": "10 s" }, { "npc_add_effect": "stunned", "duration": "2 s" } ] + }, + "failure": { + "topic": "TALK_DONE", + "effect": [ "hostile", { "u_message": " looks away as the air erupts in a burst of light!", "type": "bad" } ] + } + }, + { + "text": "[Mood Stablization Check] You don't want to hurt me.", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_morale')", ">=", "1" ] }, + { "not": { "npc_has_trait": "NPC_TELEPATHY_IMMUNE" } } + ] + }, + "trial": { + "type": "CONDITION", + "condition": { + "roll_contested": { "math": [ "u_val('spell_level', 'spell: telepathic_morale')" ] }, + "difficulty": { "math": [ "n_val('intelligence')" ] }, + "die_size": 10 + } + }, + "success": { "topic": "TALK_STRANGER_NEUTRAL", "effect": "stranger_neutral", "opinion": { "trust": 3, "fear": -1 } }, + "failure": { "topic": "TALK_DONE", "effect": [ "hostile", { "u_message": "Your telepathy attempt failed!", "type": "bad" } ] } + }, + { + "text": "[Sensory Deprivation Check] *Shut off 's senses*.", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_confusion')", ">=", "1" ] }, + "trial": { + "type": "CONDITION", + "condition": { + "roll_contested": { "math": [ "u_val('spell_level', 'spell: telepathic_confusion')" ] }, + "difficulty": { "math": [ "n_val('perception')" ] }, + "die_size": 10 + } + }, + "success": { + "topic": "TALK_DONE", + "effect": [ + "hostile", + { "npc_add_effect": "blind", "duration": "10 s" }, + { "npc_add_effect": "deaf", "duration": "10 s", "intensity": 3 } + ] + }, + "failure": { + "topic": "TALK_DONE", + "effect": [ "hostile", { "u_message": "You failed to affect 's senses!", "type": "bad" } ] + } + }, + { + "text": "[Synaptic Overload Check] *Attack 's mind*.", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_blast')", ">=", "1" ] }, + "trial": { + "type": "CONDITION", + "condition": { + "roll_contested": { "math": [ "u_val('spell_level', 'spell: telepathic_blast')" ] }, + "difficulty": { "math": [ "n_val('intelligence')" ] }, + "die_size": 10 + } + }, + "success": { + "topic": "TALK_DONE", + "effect": [ + "hostile", + { + "npc_set_hp": { "math": [ "(80 - (6 * (u_val('spell_level', 'spell: telepathic_blast'))))" ] }, + "target_part": "head" + }, + { "npc_add_effect": "stunned", "duration": "2 s" } + ] + }, + "failure": { + "topic": "TALK_DONE", + "effect": [ "hostile", { "u_message": " repelled your attack on their mind!", "type": "bad" } ] + } + } + ] + }, + { + "id": "TALK_STRANGER_SCARED", + "type": "talk_topic", + "responses": [ + { + "text": "[Mood Stablization Check] I'm not going to hurt you.", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_morale')", ">=", "1" ] }, + { "not": { "npc_has_trait": "NPC_TELEPATHY_IMMUNE" } } + ] + }, + "trial": { + "type": "CONDITION", + "condition": { + "roll_contested": { "math": [ "u_val('spell_level', 'spell: telepathic_morale')" ] }, + "difficulty": { "math": [ "n_val('intelligence')" ] }, + "die_size": 10 + } + }, + "success": { "topic": "TALK_STRANGER_NEUTRAL", "effect": "stranger_neutral", "opinion": { "trust": 3, "fear": -1 } }, + "failure": { "topic": "TALK_DONE", "effect": [ "flee", { "u_message": "Your telepathy attempt failed!", "type": "bad" } ] } + } + ] + }, + { + "id": "TALK_STRANGER_WARY", + "type": "talk_topic", + "responses": [ + { + "text": "[Mood Stablization Check] I'm not going to hurt you.", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_morale')", ">=", "1" ] }, + { "not": { "npc_has_trait": "NPC_TELEPATHY_IMMUNE" } } + ] + }, + "trial": { + "type": "CONDITION", + "condition": { + "roll_contested": { "math": [ "u_val('spell_level', 'spell: telepathic_morale')" ] }, + "difficulty": { "math": [ "n_val('intelligence')" ] }, + "die_size": 10 + } + }, + "success": { "topic": "TALK_STRANGER_NEUTRAL", "effect": "stranger_neutral", "opinion": { "trust": 3, "fear": -1 } }, + "failure": { "topic": "TALK_DONE", "effect": [ "flee", { "u_message": "Your telepathy attempt failed!", "type": "bad" } ] } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/portal_future_you.json b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/portal_future_you.json new file mode 100644 index 000000000..9ba6de3ce --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/portal_future_you.json @@ -0,0 +1,97 @@ +[ + { + "id": [ "TALK_PORTAL_STORM_WHAT_ARE_YOU", "TALK_PORTAL_STORM_DO_FOR_ME", "TALK_PORTAL_STORM_WHAT_DO_YOU_GET" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Premonition] *Determine if the voice is a threat*", + "topic": "TALK_PORTAL_STORM_DANGER_SENSE_FAIL", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", "<=", "7" ] } + }, + { + "text": "[Premonition 8+] *Determine if the voice is a threat*", + "topic": "TALK_PORTAL_STORM_DANGER_SENSE_SUCCEED", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">", "7" ] } + } + ] + }, + { + "id": [ "TALK_PORTAL_STORM_WHAT_ARE_YOU", "TALK_PORTAL_STORM_DO_FOR_ME", "TALK_PORTAL_STORM_WHAT_DO_YOU_GET" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Telepath] *Read the voice's mind(?)*", + "topic": "TALK_PORTAL_STORM_telepathy", + "condition": { "u_has_trait": "TELEPATH" } + } + ] + }, + { + "id": [ "TALK_PORTAL_STORM_telepathy" ], + "type": "talk_topic", + "dynamic_line": "&You reach out to the voice's location(?) and try to touch its thoughts. In an instant, your mind is filled by a babble of your *own* thoughts, at exactly the moment you think them, which then repeat again as you realize what is happening and your thoughts about the experience are reflected back at you and your brain is filled with an agonizing cacophony until you break the connection.", + "responses": [ + { + "text": "Well, that was a mistake.", + "topic": "TALK_PORTAL_STORM_CONVERSATION", + "effect": [ { "math": [ "u_pain()", "+=", "5" ] } ] + } + ] + }, + { + "id": [ "TALK_PORTAL_STORM_DANGER_SENSE_FAIL" ], + "type": "talk_topic", + "dynamic_line": "&You extend your senses, alert for danger, and are immediately almost blinded. In the heart of the portal storm, there's danger everywhere. In the air and ground, in the things half-glimpsed that vanish when you look at them, and in yourself, just waiting for the right conditions to be unleashed. If there's anything sinister in the voice's offer, you cannot tell.", + "responses": [ { "text": "*Close your inner eye*", "topic": "TALK_PORTAL_STORM_CONVERSATION" } ] + }, + { + "id": [ "TALK_PORTAL_STORM_DANGER_SENSE_SUCCEED" ], + "type": "talk_topic", + "dynamic_line": "&You extend your senses, alert for danger. Shutting out the ever-present danger of the post-Cataclysmic world and the portal storm, you focus on the voice. There is danger there, but not directly. Whatever the outcome of its offer, it is not meant as a trap.", + "responses": [ { "text": "*Close your inner eye*", "topic": "TALK_PORTAL_STORM_CONVERSATION" } ] + }, + { + "id": [ "TALK_PORTAL_STORM_WHAT_DO_YOU_GET" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Clarity 3+] *Is the voice lying?*", + "topic": "TALK_PORTAL_STORM_CLARITY", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_clear_sight')", ">=", "3" ] } + } + ] + }, + { + "id": "TALK_PORTAL_STORM_CLARITY", + "type": "talk_topic", + "dynamic_line": "&You open your inner eye and in its light you see the truth. This *is* you. Was you. Might be you. You know it like you know yourself. Whatever game it's playing, its intentions are not malicious. They are your own.", + "responses": [ + { "text": "What do I need to do?", "topic": "TALK_PORTAL_STORM_I_NEED_TO_DO" }, + { "text": "Leave me alone.", "topic": "TALK_PORTAL_STORM_IGNORE" } + ] + }, + { + "id": "TALK_PORTAL_STORM_I_NEED_TO_DO", + "type": "talk_topic", + "responses": [ + { + "text": "[Gateway 8+] Thanks, but here I can leave without your help. Be seeing you. (End your story)", + "topic": "TALK_PORTAL_STORM_TELEPORT_OUT", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_gateway')", ">=", "8" ] }, + "effect": { "give_achievement": "teleported_offworld" } + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PORTAL_STORM_TELEPORT_OUT", + "dynamic_line": "&Normally you need to have been to your destination to teleport to it, but here in the heart of the chaos you can sense other worlds. Other times. An endless torrent of possibility, flowing continuously around and over and through you. None of it lasts long enough for you to get a good glimpse, but almost anywhere has to be better than here. With a simple act of will, you reach out and grasp one chance as it floats by, open a doorway, and leave your dying world behind.\n\nAnd what happens to you afterwards, well, that's another story.", + "responses": [ + { + "text": "That's what life's about: making the right choice at the right time.", + "topic": "TALK_DONE", + "effect": [ "u_die" ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/portal_interdimensional_traveler.json b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/portal_interdimensional_traveler.json new file mode 100644 index 000000000..942c1fe3c --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/portal_interdimensional_traveler.json @@ -0,0 +1,19 @@ +[ + { + "id": [ "TALK_PORTAL_PERSON_2" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Telepath] *Read the strange person's mind*", + "topic": "TALK_PORTAL_TRAVELER_telepathy", + "condition": { "u_has_trait": "TELEPATH" } + } + ] + }, + { + "id": [ "TALK_PORTAL_TRAVELER_telepathy" ], + "type": "talk_topic", + "dynamic_line": "«Jasz vata aralas mat! On de farah shatan! Mazeh jast ond!»", + "responses": [ { "text": "Well, that didn't help either.", "topic": "TALK_DONE" } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/refugee_guards_generic.json b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/refugee_guards_generic.json new file mode 100644 index 000000000..9c06ec08a --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/refugee_guards_generic.json @@ -0,0 +1,118 @@ +[ + { + "id": [ "TALK_GUARD" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Premonition] *Determine if is a threat*", + "topic": "TALK_GUARD_GENERIC_REFUGEE_danger_sense", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "2" ] } + }, + { + "text": "[Telepathy] *Read 's mind*", + "topic": "TALK_GUARD_GENERIC_REFUGEE_scan", + "condition": { "u_has_trait": "TELEPATH" } + } + ] + }, + { + "id": [ "TALK_GUARD_GENERIC_REFUGEE_danger_sense" ], + "type": "talk_topic", + "dynamic_line": "&A quick check reveals nothing out of the ordinary. To , you're just another face in the crowd.", + "responses": [ { "text": "…", "topic": "TALK_GUARD" } ] + }, + { + "id": [ "TALK_GUARD_GENERIC_REFUGEE_scan" ], + "type": "talk_topic", + "dynamic_line": [ "", "", "", "" ], + "responses": [ { "text": "…", "topic": "TALK_GUARD" } ] + }, + { + "id": [ "TALK_EVAC_GUARD1" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Premonition] *Determine if is a threat*", + "topic": "TALK_EVAC_GUARD1_danger_sense", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "2" ] } + }, + { + "text": "[Telepathy] *Read 's mind*", + "topic": "TALK_EVAC_GUARD1_scan", + "condition": { "u_has_trait": "TELEPATH" } + } + ] + }, + { + "id": [ "TALK_EVAC_GUARD1_danger_sense" ], + "type": "talk_topic", + "dynamic_line": "&You open your senses, alert for danger, but don't sense anything. bears you no ill will at all.", + "responses": [ { "text": "…", "topic": "TALK_EVAC_GUARD1" } ] + }, + { + "id": [ "TALK_EVAC_GUARD1_scan" ], + "type": "talk_topic", + "dynamic_line": [ + "«Oh great. Another one.»", + "«Idle hands make a waste of time.»", + { + "is_day": [ "«We need to post sentries outside that'll turn some of these people away.»" ], + "no": [ "«We really should start locking the doors at night so these people can't get in.»" ] + }, + { + "days_since_cataclysm": 60, + "yes": [ + { "u_male": [ "«Wow, I'm amazed he's lived this long.»" ], "no": [ "«Wow, I'm amazed she's lived this long.»" ] } + ], + "no": [ + { + "u_male": [ "«No point in learning his name. He'll probably be dead soon anyway.»" ], + "no": [ "«No point in learning her name. She'll probably be dead soon anyway.»" ] + } + ] + } + ], + "responses": [ { "text": "…", "topic": "TALK_EVAC_GUARD1" } ] + }, + { + "id": [ "TALK_EVAC_GUARD2" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Premonition] *Determine if is a threat*", + "topic": "TALK_EVAC_GUARD2_danger_sense", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "2" ] } + }, + { + "text": "[Telepathy] *Read 's mind*", + "topic": "TALK_EVAC_GUARD2_scan", + "condition": { "u_has_trait": "TELEPATH" } + } + ] + }, + { + "id": [ "TALK_EVAC_GUARD2_danger_sense" ], + "type": "talk_topic", + "dynamic_line": "&You open your senses, alert for danger, but don't sense anything. is sincere in their friendliness, or least isn't hiding a dagger behind their back.", + "responses": [ { "text": "…", "topic": "TALK_GUARD" } ] + }, + { + "id": [ "TALK_EVAC_GUARD2_scan" ], + "type": "talk_topic", + "dynamic_line": [ + "«Not bad playing tour guide. Better than having to fight.»", + { + "is_day": [ "«Another day after . One foot in front of the other.»" ], + "no": [ + "«So tired. That's what I get for drawing the night shift.»", + "«At least in here I can see them coming. If I were out there…»" + ] + }, + { + "u_male": [ "«How much did it take to get here? What has he lost?»" ], + "no": [ "«How much did it take to get here? What has she lost?»" ] + } + ], + "responses": [ { "text": "…", "topic": "TALK_EVAC_GUARD2" } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/refugee_guards_traitor.json b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/refugee_guards_traitor.json new file mode 100644 index 000000000..b0e3b268f --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/npcs/dialogue/refugee_guards_traitor.json @@ -0,0 +1,325 @@ +[ + { + "id": [ "TALK_EVAC_GUARD3" ], + "type": "talk_topic", + "responses": [ + { + "text": "[Premonition] *Determine if is a threat*", + "topic": "TALK_EVAC_GUARD3_danger_sense", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "2" ] } + }, + { + "text": "[Telepathy] *Read 's mind*", + "topic": "TALK_EVAC_GUARD3_scan", + "condition": { "u_has_trait": "TELEPATH" } + }, + { + "text": "It's you.", + "topic": "TALK_EVAC_GUARD3_direct_accusation", + "condition": { "u_has_var": "deep_scanned_evac_guard_3", "type": "dialogue", "context": "refugee_center_traitor", "value": "yes" } + } + ] + }, + { + "id": [ "TALK_EVAC_GUARD3_danger_sense" ], + "type": "talk_topic", + "dynamic_line": "&You barely open up your senses before you're met with an overpowering sense of menace. isn't planning to kill you at this exact second but that could change at any moment.", + "responses": [ { "text": "…", "topic": "TALK_EVAC_GUARD3" } ] + }, + { + "id": "TALK_EVAC_GUARD3_scan", + "type": "talk_topic", + "dynamic_line": [ + "«Just what I need. Come on, leave me alone.»", + "«How am I supposed to…ugh, just go away.»", + "«Who does this asshole think he is?»" + ], + "responses": [ + { "text": "…", "topic": "TALK_EVAC_GUARD3" }, + { + "text": "[Telepathy 8+] *Go deeper*.", + "topic": "TALK_EVAC_GUARD3_deep_scan", + "condition": { "math": [ "u_val('spell_level', 'school: TELEPATH')", ">=", "8" ] } + } + ] + }, + { + "id": [ "TALK_EVAC_GUARD3_deep_scan" ], + "type": "talk_topic", + "dynamic_line": "&It's only a moment, but that's enough. You are looking from behind a tree onto a road where a crude roadblock has been set up. There's a refugee bus, one of the same ones parked outside the refugee center, stopped at the roadblock, and as the driver gets out to look at the roadblock, there's a loud crack and two spots of red appear on his chest and leg. As he begins to fall and the people in the bus start screaming, the raiders emerge from the trees, already running with guns raised.", + "responses": [ + { + "text": "*Withdraw from 's mind*.", + "effect": { "u_add_var": "deep_scanned_evac_guard_3", "type": "dialogue", "context": "refugee_center_traitor", "value": "yes" }, + "topic": "TALK_EVAC_GUARD3_post_scan" + } + ] + }, + { + "id": [ "TALK_EVAC_GUARD3_post_scan" ], + "type": "talk_topic", + "dynamic_line": "&Only a few moments have passed. hasn't noticed anything amiss.", + "responses": [ + { "text": "…", "topic": "TALK_EVAC_GUARD3" }, + { + "text": "It's you.", + "topic": "TALK_EVAC_GUARD3_direct_accusation", + "condition": { "u_has_var": "deep_scanned_evac_guard_3", "type": "dialogue", "context": "refugee_center_traitor", "value": "yes" } + } + ] + }, + { + "id": [ "TALK_EVAC_GUARD3_direct_accusation" ], + "type": "talk_topic", + "dynamic_line": "What the hell are you talking about?", + "responses": [ + { + "text": "He was only a child, , and you killed him. Do you remember the blood on his Superman shirt?", + "topic": "TALK_EVAC_GUARD3_witch", + "opinion": { "fear": 4 } + } + ] + }, + { + "id": [ "TALK_EVAC_GUARD3_witch" ], + "type": "talk_topic", + "dynamic_line": "I didn't tell you my na-\" 's face goes white. \"What the fuck! You some kind of freak?", + "responses": [ + { + "text": "It's over. Give up.", + "topic": "TALK_EVAC_GUARD3_DEAD", + "effect": { "npc_change_faction": "hells_raiders" } + } + ] + }, + { + "id": "TALK_EVAC_GUARD3_DEAD", + "type": "talk_topic", + "responses": [ + { + "text": "[Telekinesis Check] *Try to rip 's weapon away*", + "condition": { "u_has_trait": "TELEKINETIC" }, + "switch": false, + "trial": { + "type": "CONDITION", + "condition": { + "roll_contested": { "math": [ "u_val('spell_level', 'school: TELEKINETIC')" ] }, + "difficulty": { "math": [ "n_val('strength')" ] }, + "die_size": 5 + } + }, + "success": { "topic": "TALK_EVAC_GUARD3_WEAPON_TELEKIN_DISAMED", "effect": "drop_weapon", "opinion": { "fear": 3 } }, + "failure": { "topic": "TALK_DONE", "effect": [ "hostile" ] } + }, + { + "text": "[Brilliant Flash Check] *blind *", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_flash')", ">=", "1" ] }, + { "not": { "npc_has_worn_with_flag": "FLASH_PROTECTION" } } + ] + }, + "switch": true, + "trial": { + "type": "CONDITION", + "condition": { + "roll_contested": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_flash')" ] }, + "difficulty": { "math": [ "n_val('perception')" ] }, + "die_size": 10 + } + }, + "success": { + "topic": "TALK_DONE", + "effect": [ "hostile", { "npc_add_effect": "blind", "duration": "10 s" }, { "npc_add_effect": "stunned", "duration": "2 s" } ] + }, + "failure": { "topic": "TALK_DONE", "effect": [ "hostile", { "u_message": "Your telepathy attempt failed!", "type": "bad" } ] } + }, + { + "text": "[Sensory Deprivation Check] *Shut off 's senses*.", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_confusion')", ">=", "1" ] }, + "switch": false, + "trial": { + "type": "CONDITION", + "condition": { + "and": [ + { + "roll_contested": { "math": [ "u_val('spell_level', 'spell: telepathic_confusion')" ] }, + "difficulty": { "math": [ "n_val('perception')" ] }, + "die_size": 10 + }, + { "not": { "npc_has_trait": "NPC_TELEPATHY_IMMUNE" } } + ] + } + }, + "success": { + "topic": "TALK_DONE", + "effect": [ "hostile", { "npc_add_effect": "blind", "duration": "10 s" }, { "npc_add_effect": "deaf", "duration": "10 s" } ] + }, + "failure": { + "topic": "TALK_DONE", + "effect": [ "hostile", { "u_message": "You failed to affect 's senses!", "type": "bad" } ] + } + }, + { + "text": "[Synaptic Overload Check] *Attack 's mind*.", + "condition": { "and": [ { "math": [ "u_val('spell_level', 'spell: telepathic_blast')", ">=", "1" ] } ] }, + "switch": false, + "trial": { + "type": "CONDITION", + "condition": { + "and": [ + { + "roll_contested": { "math": [ "u_val('spell_level', 'spell: telepathic_blast')" ] }, + "difficulty": { "math": [ "n_val('intelligence')" ] }, + "die_size": 10 + }, + { "not": { "npc_has_trait": "NPC_TELEPATHY_IMMUNE" } } + ] + } + }, + "success": { + "topic": "TALK_DONE", + "effect": [ + "hostile", + { + "npc_set_hp": { "math": [ "(80 - (6 * (u_val('spell_level', 'spell: telepathic_blast'))))" ] }, + "target_part": "head" + }, + { "npc_add_effect": "stunned", "duration": "2 s" } + ] + }, + "failure": { + "topic": "TALK_DONE", + "effect": [ "hostile", { "u_message": " repelled your attack on their mind!", "type": "bad" } ] + } + }, + { + "text": "[Transposition Check] *Teleport away 's weapon*.", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_transpose')", ">=", "1" ] }, + "switch": false, + "trial": { + "type": "CONDITION", + "condition": { + "roll_contested": { "math": [ "u_val('spell_level', 'spell: teleport_transpose')" ] }, + "difficulty": 10, + "die_size": 10 + } + }, + "success": { + "topic": "TALK_EVAC_GUARD3_WEAPON_TELEPORT_DISAMED", + "effect": [ + { "npc_remove_item_with": "spear_knife_proper" }, + { "npc_remove_item_with": "spear_pipe" }, + { "npc_remove_item_with": "spear_homemade_halfpike" }, + { "npc_remove_item_with": "makeshift_glaive" }, + { "npc_remove_item_with": "modular_m4_carbine" }, + { "npc_remove_item_with": "aksemi" }, + { "npc_remove_item_with": "ar15_50short" }, + { "npc_remove_item_with": "ar15_223short" }, + { "npc_remove_item_with": "mp40" }, + { "npc_remove_item_with": "modular_m16a4" } + ], + "opinion": { "fear": 5 } + }, + "failure": { + "topic": "TALK_DONE", + "effect": [ "hostile", { "u_message": "You failed to teleport 's weapon!", "type": "bad" } ] + } + }, + { + "text": "[Oubliette Check] *Banish to another dimension*.", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_banish')", ">=", "1" ] }, + "switch": false, + "trial": { + "type": "CONDITION", + "condition": { "roll_contested": { "math": [ "u_val('spell_level', 'spell: teleport_banish')" ] }, "difficulty": 15, "die_size": 10 } + }, + "success": { + "topic": "TALK_DONE", + "effect": [ + { "npc_add_effect": "stunned", "duration": "2 s" }, + { "queue_eocs": [ "EOC_REMOVE_REFUGEE_CENTER_TRAITOR_BANISHED" ], "time_in_future": "0 seconds" }, + { "finish_mission": "MISSION_OLD_GUARD_REP_2", "step": 1 }, + { + "u_message": " seems ready to attack you but suddenly freezes in place. For a moment, caught between worlds, they stare straight ahead. As the cold and the darkness of a teleport begin to overtake them and the air around them wavers like summer heat, they open their mouth to scream.\n\nAnd then, they are gone.", + "popup": true + } + ] + }, + "failure": { "topic": "TALK_DONE", "effect": [ "hostile", { "u_message": "You failed to teleport !", "type": "bad" } ] } + } + ] + }, + { + "id": "TALK_EVAC_GUARD3_WEAPON_TELEPORT_DISAMED", + "type": "talk_topic", + "dynamic_line": "*stares at you with eyes wide as their weapon vanishes into thin air. Their mouth works silently but no sounds come out.", + "responses": [ + { + "text": "Get out of here or you'll be next.", + "trial": { "type": "INTIMIDATE", "difficulty": 8, "mod": [ [ "FEAR", 6 ] ] }, + "success": { "topic": "TALK_EVAC_GUARD3_SUCCESS_TELEPORT_LEAVE", "effect": [ "flee", { "npc_change_faction": "old_guard" } ] }, + "failure": { "topic": "TALK_DONE", "effect": "hostile" } + } + ] + }, + { + "id": "TALK_EVAC_GUARD3_WEAPON_TELEKIN_DISAMED", + "type": "talk_topic", + "dynamic_line": "*starts as the weapon is ripped out of their hands and falls to the floor. \"Holy shit! What the fuck?!\"", + "responses": [ + { + "text": "Leave or I'll do the same to you.", + "trial": { "type": "INTIMIDATE", "difficulty": 10, "mod": [ [ "FEAR", 5 ] ] }, + "success": { "topic": "TALK_EVAC_GUARD3_SUCCESS_TELEKIN_LEAVE", "effect": [ "flee", { "npc_change_faction": "old_guard" } ] }, + "failure": { "topic": "TALK_DONE", "effect": "hostile" } + } + ] + }, + { + "id": "TALK_EVAC_GUARD3_SUCCESS_TELEKIN_LEAVE", + "type": "talk_topic", + "dynamic_line": "Alright, alright, I'm leaving. Holy shit.", + "responses": [ + { + "text": "Good.", + "topic": "TALK_DONE", + "effect": [ + { "queue_eocs": [ "EOC_REMOVE_REFUGEE_CENTER_TRAITOR_BANISHED" ], "time_in_future": "4 seconds" }, + { "finish_mission": "MISSION_OLD_GUARD_REP_2", "step": 1 } + ] + }, + { + "text": "I changed my mind. You're better off in the ground.", + "topic": "TALK_DONE", + "effect": [ "hostile", { "npc_change_faction": "hells_raiders" } ] + } + ] + }, + { + "id": "TALK_EVAC_GUARD3_SUCCESS_TELEPORT_LEAVE", + "type": "talk_topic", + "dynamic_line": "*immediately backs away. They never turn their back on you, but in a few moments they go out the door and are gone.", + "responses": [ + { + "text": "…", + "topic": "TALK_DONE", + "effect": [ + { "queue_eocs": [ "EOC_REMOVE_REFUGEE_CENTER_TRAITOR_BANISHED" ], "time_in_future": "4 seconds" }, + { "finish_mission": "MISSION_OLD_GUARD_REP_2", "step": 1 } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_REMOVE_REFUGEE_CENTER_TRAITOR_BANISHED", + "effect": [ { "mapgen_update": "remove_refugee_center_traitor_because_banished", "om_terrain": "evac_center_19" } ] + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "remove_refugee_center_traitor_because_banished", + "object": { "remove_npcs": [ { "class": "evac_guard3", "x": 0, "y": 0 } ] } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/npcs/psi_civilians.json b/data/Mainline_mods/Mods/MindOverMatter/npcs/psi_civilians.json new file mode 100644 index 000000000..ced5b4e31 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/npcs/psi_civilians.json @@ -0,0 +1,32 @@ +[ + { + "type": "talk_topic", + "id": "TALK_CIVILIAN_PYROKINETIC", + "dynamic_line": [ "Hahaha!! Burn! BURN!!", "&They cackle loudly as flames burst from their outstretched hand.", "All will burn!" ], + "responses": [ + { "text": "How are you doing that?", "topic": "TALK_CIVILIAN_PYROKINETIC_HOW" }, + { "text": "*Back away slowly*", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_CIVILIAN_PYROKINETIC_HOW", + "dynamic_line": [ "Isn't it beautiful? BURN THEM ALL!", "The flames have chosen me!" ], + "responses": [ { "text": "*Back away slowly*", "topic": "TALK_DONE" } ] + }, + { + "type": "talk_topic", + "id": "TALK_CIVILIAN_TELEKINETIC", + "dynamic_line": [ "Get out of here!", "No, no no! Go away!" ], + "responses": [ + { "text": "How are you doing that?", "topic": "TALK_CIVILIAN_TELEKINETIC_HOW" }, + { "text": "*Back away slowly*", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_CIVILIAN_TELEKINETIC_HOW", + "dynamic_line": [ "*doesn't look at you at all. They just keep yelling at the horde." ], + "responses": [ { "text": "*Back away slowly*", "topic": "TALK_DONE" } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/obsolete/contemplation_notes.json b/data/Mainline_mods/Mods/MindOverMatter/obsolete/contemplation_notes.json new file mode 100644 index 000000000..e2149bf63 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/obsolete/contemplation_notes.json @@ -0,0 +1,166 @@ +[ + { + "type": "GENERIC", + "id": "biokin_recipe_note", + "category": "books", + "symbol": ",", + "color": "white", + "name": { "str": "extremely important note" }, + "description": "A scrap of paper. A series of formulae are written on it.", + "price": 0, + "price_postapoc": 0, + "looks_like": "survnote", + "material": [ "paper" ], + "flags": [ "TRADER_AVOID" ], + "weight": "3 g", + "volume": "10 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Study the formulae.", + "effect_on_conditions": [ "EOC_READ_BIOKIN_CONTEMPLATE_RECIPES_NOTE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_READ_BIOKIN_CONTEMPLATE_RECIPES_NOTE", + "effect": [ + { + "u_message": "You study the note and contemplate ways that you might improve your powers (check practice recipes).", + "type": "good" + }, + { "run_eocs": [ "EOC_TEACH_BIOKIN_CONTEMPLATE_RECIPES" ] } + ] + }, + { + "type": "GENERIC", + "id": "clair_recipe_note", + "name": { "str": "extremely important note" }, + "copy-from": "biokin_recipe_note", + "use_action": { + "type": "effect_on_conditions", + "description": "Study the formulae.", + "effect_on_conditions": [ "EOC_READ_CLAIR_CONTEMPLATE_RECIPES_NOTE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_READ_CLAIR_CONTEMPLATE_RECIPES_NOTE", + "effect": [ + { + "u_message": "You study the note and contemplate ways that you might improve your powers (check practice recipes).", + "type": "good" + }, + { "run_eocs": [ "EOC_TEACH_CLAIR_CONTEMPLATE_RECIPES" ] } + ] + }, + { + "type": "GENERIC", + "id": "pyrokin_recipe_note", + "name": { "str": "extremely important note" }, + "copy-from": "biokin_recipe_note", + "use_action": { + "type": "effect_on_conditions", + "description": "Study the formulae.", + "effect_on_conditions": [ "EOC_READ_PYRO_CONTEMPLATE_RECIPES_NOTE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_READ_PYRO_CONTEMPLATE_RECIPES_NOTE", + "effect": [ + { + "u_message": "You study the note and contemplate ways that you might improve your powers (check practice recipes).", + "type": "good" + }, + { "run_eocs": [ "EOC_TEACH_PYROKIN_CONTEMPLATE_RECIPES" ] } + ] + }, + { + "type": "GENERIC", + "id": "telekin_recipe_note", + "name": { "str": "extremely important note" }, + "copy-from": "biokin_recipe_note", + "use_action": { + "type": "effect_on_conditions", + "description": "Study the formulae.", + "effect_on_conditions": [ "EOC_READ_TELEKIN_CONTEMPLATE_RECIPES_NOTE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_READ_TELEKIN_CONTEMPLATE_RECIPES_NOTE", + "effect": [ + { + "u_message": "You study the note and contemplate ways that you might improve your powers (check practice recipes).", + "type": "good" + }, + { "run_eocs": [ "EOC_TEACH_TELEKIN_CONTEMPLATE_RECIPES" ] } + ] + }, + { + "type": "GENERIC", + "id": "telepath_recipe_note", + "name": { "str": "extremely important note" }, + "copy-from": "biokin_recipe_note", + "use_action": { + "type": "effect_on_conditions", + "description": "Study the formulae.", + "effect_on_conditions": [ "EOC_READ_TELEPATH_CONTEMPLATE_RECIPES_NOTE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_READ_TELEPATH_CONTEMPLATE_RECIPES_NOTE", + "effect": [ + { + "u_message": "You study the note and contemplate ways that you might improve your powers (check practice recipes).", + "type": "good" + }, + { "run_eocs": [ "EOC_TEACH_TELEPATH_CONTEMPLATE_RECIPES" ] } + ] + }, + { + "type": "GENERIC", + "id": "teleport_recipe_note", + "name": { "str": "extremely important note" }, + "copy-from": "biokin_recipe_note", + "use_action": { + "type": "effect_on_conditions", + "description": "Study the formulae.", + "effect_on_conditions": [ "EOC_READ_TELEPORT_CONTEMPLATE_RECIPES_NOTE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_READ_TELEPORT_CONTEMPLATE_RECIPES_NOTE", + "effect": [ + { + "u_message": "You study the note and contemplate ways that you might improve your powers (check practice recipes).", + "type": "good" + }, + { "run_eocs": [ "EOC_TEACH_TELEPORT_CONTEMPLATE_RECIPES" ] } + ] + }, + { + "type": "GENERIC", + "id": "vitakin_recipe_note", + "name": { "str": "extremely important note" }, + "copy-from": "biokin_recipe_note", + "use_action": { + "type": "effect_on_conditions", + "description": "Study the formulae.", + "effect_on_conditions": [ "EOC_READ_VITAKIN_CONTEMPLATE_RECIPES_NOTE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_READ_VITAKIN_CONTEMPLATE_RECIPES_NOTE", + "effect": [ + { + "u_message": "You study the note and contemplate ways that you might improve your powers (check practice recipes).", + "type": "good" + }, + { "run_eocs": [ "EOC_TEACH_VITAKIN_CONTEMPLATE_RECIPES" ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/obsolete/obsolete.json b/data/Mainline_mods/Mods/MindOverMatter/obsolete/obsolete.json new file mode 100644 index 000000000..4cf23b3a6 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/obsolete/obsolete.json @@ -0,0 +1,91 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_TELEKINETIC_SWAPPER", + "eoc_type": "EVENT", + "required_event": "game_load", + "condition": { "and": [ { "u_has_trait": "TELEKINETIC" }, { "u_has_trait": "TELEKINETIC_CARRY" } ] }, + "effect": [ + { "u_learn_recipe": "improve_telekinesis_lifting_field" }, + { "u_lose_trait": "TELEKINETIC_CARRY" }, + { "u_add_trait": "TELEKINETIC_LIFTER_1" }, + { + "u_message": "You feel more confident in your telekinesis, as though you could carry at least one thing with barely any concentration required." + } + ] + }, + { + "type": "mutation", + "id": "TELEKINETIC_CARRY", + "name": { "str": "Lightened Burden" }, + "points": 0, + "description": "You are using your psionic powers to ease your carry burden.", + "weight_capacity_modifier": 1.1, + "valid": false, + "player_display": true, + "purifiable": false + }, + { + "type": "effect_type", + "id": "effect_psionic_drain", + "name": [ "Drained" ], + "desc": [ "Your use of psionic powers has taken its toll. You may want to rest and recover." ], + "rating": "bad", + "apply_message": "You feel a little tired. All that psionic channeling is starting to wear you down.", + "int_add_val": 1, + "max_intensity": 100, + "dur_add_perc": 110, + "int_decay_step": -1, + "int_decay_tick": 14400, + "int_decay_remove": true, + "max_duration": "4000 hours", + "base_mods": { + "stamina_amount": [ -500 ], + "stamina_min": [ -5 ], + "stamina_chance": [ 15 ], + "stamina_tick": [ 30 ], + "hunger_min": [ 1 ], + "hunger_chance": [ 100 ], + "hunger_tick": [ 400 ], + "fatigue_min": [ 1 ], + "fatigue_chance": [ 200 ], + "fatigue_tick": [ 500 ] + }, + "scaling_mods": { + "str_mod": [ -0.12 ], + "dex_mod": [ -0.12 ], + "per_mod": [ -0.08 ], + "stamina_amount": [ -100 ], + "stamina_min": [ -0.1 ], + "stamina_tick": [ -0.11 ], + "hunger_min": [ 0.08 ], + "hunger_chance": [ -2.5 ], + "hunger_tick": [ -3.5 ], + "fatigue_min": [ 0.05 ], + "fatigue_chance": [ -1.5 ], + "fatigue_tick": [ -1 ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_OBSOLETE", + "effect": [ { "u_message": "This is an obsolete recipe--check your powers", "type": "mixed" } ] + }, + { + "id": "vita_bandages", + "type": "GENERIC", + "name": { "str": "Vitakinetic Wound Staunching" }, + "looks_like": "bandage", + "description": "The power to stop bleeding", + "//": "relic-data exists to make the item purple so it stands out in the inventory. Shouldn't clutter the inventory or the purple item space since the summon lasts 5 turns max.", + "weight": "0 g", + "volume": "0 ml", + "price": 1, + "price_postapoc": 1, + "symbol": "!", + "color": "magenta", + "flags": [ "NO_INGEST", "EDIBLE_FROZEN", "ONLY_ONE", "ZERO_WEIGHT", "TRADER_AVOID", "SINGLE_USE" ], + "use_action": { "type": "heal", "bandages_power": 3, "bleed": 20, "move_cost": 0 }, + "relic_data": { "passive_effects": [ { "has": "HELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "add": 0 } ] } ] } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/obsolete/pyrokinesis.json b/data/Mainline_mods/Mods/MindOverMatter/obsolete/pyrokinesis.json new file mode 100644 index 000000000..0eb584092 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/obsolete/pyrokinesis.json @@ -0,0 +1,55 @@ +[ + { + "id": "pyro_quell_flames_1", + "type": "SPELL", + "name": "[Ψ]Quell Heat 1", + "description": "The second part of Quell Fire that has a higher intensity in the center. If you have it, you debugged it in.", + "valid_targets": [ "ground" ], + "spell_class": "PYROKINETIC", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "IGNORE_WALLS", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "shape": "blast", + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_quell_flames') * 0.8) + 5) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 70, + "min_aoe": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_quell_flames') * 0.25) + 0) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_aoe": 50, + "field_id": "fd_extinguisher", + "min_field_intensity": 2, + "max_field_intensity": 3, + "field_chance": 1 + }, + { + "id": "pyro_quell_flames_2", + "type": "SPELL", + "name": "[Ψ]Quell Heat 2", + "description": "The part of Quell Fire that removes heat. If you have it, you debugged it in.", + "valid_targets": [ "ground" ], + "spell_class": "PYROKINETIC", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "IGNORE_WALLS", "NO_EXPLOSION_SFX" ], + "effect": "remove_field", + "effect_str": "fd_hot_air3", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_aoe": 0 + }, + { + "id": "pyro_quell_flames_3", + "type": "SPELL", + "name": "[Ψ]Quell Heat 3", + "description": "The part of Quell Fire that removes heat. If you have it, you debugged it in.", + "valid_targets": [ "ground" ], + "spell_class": "PYROKINETIC", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "IGNORE_WALLS", "NO_EXPLOSION_SFX" ], + "effect": "remove_field", + "effect_str": "fd_hot_air4", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_aoe": 0 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/obsolete/telekinesis_ritual.json b/data/Mainline_mods/Mods/MindOverMatter/obsolete/telekinesis_ritual.json new file mode 100644 index 000000000..54ba2e48a --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/obsolete/telekinesis_ritual.json @@ -0,0 +1,32 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "Enhance Strength", + "id": "telekin_push_heavy_things", + "description": "Focus your powers to allow you move much heavier objects and smash through walls. The concentration required means you will be unable to engage in combat with any real aptitude while concentrating.\n\n[(d)rop the Enhanced Strength to stop concentrating and regain your combat ability]", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_RITUALS", + "skill_used": "metaphysics", + "difficulty": 1, + "time": "10 s", + "flags": [ "SECRET", "BLIND_EASY" ], + "proficiencies": [ { "proficiency": "prof_psionic_ritual", "required": false } ], + "result_eocs": [ "EOC_OBSOLETE" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "Vehicular Lifting", + "id": "telekin_lift_cars", + "description": "Focus your powers to raise a vehicle just enough to change a tire or perform repairs. As your powers increase, you will be able to lift heavier vehicles.", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_RITUALS", + "skill_used": "metaphysics", + "difficulty": 3, + "time": "5 s", + "flags": [ "SECRET", "BLIND_EASY" ], + "proficiencies": [ { "proficiency": "prof_psionic_ritual", "required": false } ], + "result_eocs": [ "EOC_OBSOLETE" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/obsolete/terrain.json b/data/Mainline_mods/Mods/MindOverMatter/obsolete/terrain.json new file mode 100644 index 000000000..c797d8029 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/obsolete/terrain.json @@ -0,0 +1,33 @@ +[ + { + "type": "terrain", + "id": "t_nether_crystal_structure", + "name": "glowing crystal", + "description": "An irregular chunk of glowing crystal. The fitful glow sheds no illumination on the nearby terrain.", + "symbol": "#", + "color": "black", + "move_cost": 0, + "looks_like": "f_boulder_large", + "flags": [ "ALLOW_ON_OPEN_AIR", "PERMEABLE", "SHARP" ], + "bash": { + "str_min": 20, + "str_max": 50, + "sound": "crystal shattering!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_grass_alien", + "items": [ + { "item": "matrix_shard", "count": [ 4, 20 ] }, + { "item": "matrix_crystal_biokin_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_clair_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_pyrokin_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_telekin_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_telepath_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_teleport_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_vitakin_dust", "count": [ 0, 3 ] }, + { "item": "matrix_crystal_drained_dust", "count": [ 3, 6 ] } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/obsolete/vitakinesis_ritual.json b/data/Mainline_mods/Mods/MindOverMatter/obsolete/vitakinesis_ritual.json new file mode 100644 index 000000000..bc04c7391 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/obsolete/vitakinesis_ritual.json @@ -0,0 +1,16 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "Purge Disease", + "id": "vitakin_disease_purge", + "description": "Enter a deep meditative trance and purge your body of illness, even serious ones like cancer or multiple sclerosis. It will not cure mutation. Some illnesses are more difficult to successfully eradicate than others.", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_RITUALS", + "skill_used": "metaphysics", + "difficulty": 6, + "time": "5 s", + "flags": [ "SECRET", "BLIND_EASY" ], + "result_eocs": [ "EOC_OBSOLETE" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/overmap/map_extras.json b/data/Mainline_mods/Mods/MindOverMatter/overmap/map_extras.json new file mode 100644 index 000000000..dff4fe050 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/overmap/map_extras.json @@ -0,0 +1,94 @@ +[ + { + "id": "mx_alien_grass", + "type": "map_extra", + "name": { "str": "alien flora" }, + "description": "A cluster of alien flora.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_alien_grass" }, + "sym": "A", + "color": "red", + "autonote": true + }, + { + "id": "mx_alien_grass_2", + "type": "map_extra", + "name": { "str": "alien flora" }, + "description": "A cluster of alien flora.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_alien_grass_2" }, + "sym": "A", + "color": "magenta", + "autonote": true + }, + { + "id": "mx_alien_grass_3", + "type": "map_extra", + "name": { "str": "alien flora" }, + "description": "A cluster of alien flora.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_alien_grass_3" }, + "sym": "A", + "color": "cyan", + "autonote": true + }, + { + "id": "mx_alien_grass_4", + "type": "map_extra", + "name": { "str": "alien flora" }, + "description": "A cluster of alien flora.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_alien_grass_4" }, + "sym": "A", + "color": "yellow", + "autonote": true + }, + { + "id": "mx_alien_grass_5", + "type": "map_extra", + "name": { "str": "alien flora" }, + "description": "A cluster of alien flora.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_alien_grass_5" }, + "sym": "A", + "color": "light_red", + "autonote": true + }, + { + "id": "mx_alien_grove", + "type": "map_extra", + "name": { "str": "alien grove" }, + "description": "A large cluster of alien flora.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_alien_grove" }, + "sym": "F", + "color": "magenta", + "autonote": true + }, + { + "id": "mx_nether_pond", + "type": "map_extra", + "name": { "str": "pool of dark water" }, + "description": "A pool of some unearthly liquid.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_nether_pond" }, + "sym": "O", + "color": "dark_gray", + "autonote": true + }, + { + "id": "mx_glass_and_crystal", + "type": "map_extra", + "name": { "str": "crystal cluster" }, + "description": "A patch of crystals and black stone.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_glass_and_crystal" }, + "sym": "C", + "color": "dark_gray", + "autonote": true + }, + { + "id": "mx_phavian_science", + "type": "map_extra", + "name": { "str": "Scientists" }, + "description": "Several corpses of scientists are here.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_phavian_science" }, + "min_max_zlevel": [ -5, 0 ], + "sym": "s", + "color": "light_blue", + "autonote": true, + "flags": [ "MAN_MADE" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/overmap/multitile_city_buildings.json b/data/Mainline_mods/Mods/MindOverMatter/overmap/multitile_city_buildings.json new file mode 100644 index 000000000..31139c051 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/overmap/multitile_city_buildings.json @@ -0,0 +1,13 @@ +[ + { + "type": "city_building", + "id": "office_cubical_phavian", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "office_cubical_phavian_north" }, + { "point": [ 0, 0, 1 ], "overmap": "office_cubical_phavian_roof_north" }, + { "point": [ 0, 0, -1 ], "overmap": "office_cubical_phavian_basement_north" }, + { "point": [ 0, 0, -2 ], "overmap": "office_cubical_phavian_subbasement_north" } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/overmap/nether_crystal_field.json b/data/Mainline_mods/Mods/MindOverMatter/overmap/nether_crystal_field.json new file mode 100644 index 000000000..3d368eec6 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/overmap/nether_crystal_field.json @@ -0,0 +1,278 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": "nether_crystal_field", + "object": { + "fill_ter": "t_region_groundcover", + "rows": [ + " A_A_A_A_A_A_A_A_A_A_ ", + " A_A_A_A_A_A_A_A_A_A_A_ ", + "A_A_A_A_A_A_A_A_A_A_A___", + "_A_A_A_A_A_A_A_A_A_A_A__", + "A_A_A_A_A_A_A_A_A_A_A___", + "_A_A_A_A_A_A_A_A_A_A_A__", + "A_A_A_A_A_A_A_A_A_A_A___", + "_A_A_A___________A_A_A__", + "A_A_A_A___________A_A___", + "_A_A_A___________A_A_A__", + "A_A_A_A___________A_A___", + "_A_A_A___________A_A_A__", + "A_A_A_A___________A_A___", + "_A_A_A___________A_A_A__", + "A_A_A_A___________A_A___", + "_A_A_A___________A_A_A__", + "A_A_A_A___________A_A___", + "_A_A_A_A_A_A_A_A_A_A_A__", + "A_A_A_A_A_A_A_A_A_A_A___", + "_A_A_A_A_A_A_A_A_A_A_A__", + "A_A_A_A_A_A_A_A_A_A_A___", + "_A_A_A_A_A_A_A_A_A_A_A__", + " ______________________ ", + " ____________________ " + ], + "terrain": { + "_": [ + [ "t_region_groundcover", 3 ], + [ "t_dirt", 3 ], + [ "t_grass_alien", 1 ], + [ "t_grass_alien_2", 1 ], + [ "t_grass_alien_3", 1 ], + [ "t_grass_alien_4", 1 ], + [ "t_nether_stone", 1 ] + ] + }, + "monsters": { + "_": [ + { "monster": "GROUP_CRYSTAL_FIELD", "chance": 1, "density": 0.0003 }, + { "monster": "GROUP_CRYSTAL_FIELD_PSYCHOACTIVE", "chance": 10, "density": 0.0003 } + ], + "A": { "monster": "GROUP_CRYSTAL_FIELD", "chance": 1, "density": 0.0003 } + }, + "nested": { "A": { "chunks": [ [ "crystal_moss_or_trees_3x3", 1 ], [ "null", 15 ] ] } }, + "place_nested": [ { "chunks": [ "crystal_field_central_10x10" ], "x": 7, "y": 7 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_moss_or_trees_3x3", + "object": { + "mapgensize": [ 3, 3 ], + "rows": [ + " ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { " ": [ [ "t_grass_alien_2", 2 ], [ "t_tree_small_alien_1", 1 ], [ "t_null", 1 ] ] } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_moss_or_trees_3x3", + "object": { + "mapgensize": [ 3, 3 ], + "rows": [ + " ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { " ": [ [ "t_grass_alien_3", 1 ], [ "t_moss_alien_1", 1 ], [ "t_null", 1 ] ] } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_moss_or_trees_3x3", + "object": { + "mapgensize": [ 3, 3 ], + "rows": [ + " ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { " ": [ [ "t_tree_small_alien_2", 1 ], [ "t_moss_alien_2", 1 ], [ "t_null", 1 ] ] } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_moss_or_trees_3x3", + "object": { + "mapgensize": [ 3, 3 ], + "rows": [ + " ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { " ": [ [ "t_tree_small_alien_3", 1 ], [ "t_vines_alien_1", 1 ], [ "t_null", 1 ] ] } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_moss_or_trees_3x3", + "object": { + "mapgensize": [ 3, 3 ], + "rows": [ + " ", + " N ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { " ": [ [ "t_nether_stone", 1 ], [ "t_null", 1 ] ], "N": "t_nether_stone" }, + "furniture": { "N": [ [ "f_nether_crystal_structure", 1 ], [ "f_null", 1 ] ] } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_field_central_10x10", + "object": { + "mapgensize": [ 10, 10 ], + "rows": [ + " SSSS ", + " SSssSS ", + " SSsddsSS ", + "SSsdDDdsSS", + "SsdDDDDdsS", + "SsdDDDDdsS", + "SSsdDDdsSS", + " SSsddsSS ", + " SSssSS ", + " SSSS " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { + "D": "t_nether_water_dp", + "d": [ [ "t_nether_water_dp", 1 ], [ "t_nether_water_sh", 1 ] ], + "s": [ [ "t_nether_water_dp", 1 ], [ "t_nether_water_sh", 4 ] ], + "S": [ [ "t_nether_water_sh", 1 ], [ "t_nether_stone", 1 ] ], + " ": "t_null" + }, + "furniture": { "S": [ [ "f_nether_crystal_structure", 1 ], [ "f_null", 3 ] ] }, + "place_monsters": [ { "monster": "GROUP_CRYSTAL_FIELD", "x": [ 0, 9 ], "y": [ 0, 9 ], "chance": 50, "repeat": [ 2, 4 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_field_central_10x10", + "object": { + "mapgensize": [ 10, 10 ], + "rows": [ + " GGGG ", + " GGGCCGGG ", + " GGCCCCGG ", + "GGCCCCCCGG", + "GCCCCCCCCG", + "GCCCCCCCCG", + "GGCCCCCCGG", + " GGCCCCGG ", + " GGGCCGGG ", + " GGGG " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "C": "t_nether_stone", "G": [ [ "t_nether_stone", 2 ], [ "t_null", 2 ] ], "N": "t_nether_stone", " ": "t_null" }, + "furniture": { "C": [ [ "f_nether_crystal_structure", 1 ], [ "f_null", 1 ] ] }, + "place_nested": [ { "chunks": [ "crystal_field_chunk_center_2x2" ], "x": 4, "y": 4 } ], + "place_monsters": [ { "monster": "GROUP_CRYSTAL_FIELD", "x": [ 0, 9 ], "y": [ 0, 9 ], "chance": 50, "repeat": [ 2, 4 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_field_chunk_center_2x2", + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "furniture": { "N": [ [ "f_nether_crystal_structure", 1 ], [ "f_null", 1 ] ] }, + "place_monsters": [ { "monster": "GROUP_CRYSTAL_FIELD_PSYCHOACTIVE", "x": [ 0, 1 ], "y": [ 0, 1 ], "chance": 50, "repeat": [ 1, 3 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_field_chunk_center_2x2", + "weight": 500, + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + "N ", + " N" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "furniture": { "N": [ [ "f_nether_crystal_structure", 1 ], [ "f_null", 1 ] ] }, + "place_monsters": [ { "monster": "GROUP_CRYSTAL_FIELD_PSYCHOACTIVE", "x": [ 0, 1 ], "y": [ 0, 1 ], "chance": 50, "repeat": [ 1, 3 ] } ], + "place_fields": [ + { "field": "fd_fatigue", "x": 0, "y": 1, "intensity": [ 2, 3 ] }, + { "field": "fd_fatigue", "x": 1, "y": 0, "intensity": [ 2, 3 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_field_chunk_center_2x2", + "weight": 500, + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + " N", + "N " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "furniture": { "N": [ [ "f_nether_crystal_structure", 1 ], [ "f_null", 1 ] ] }, + "place_monsters": [ { "monster": "GROUP_CRYSTAL_FIELD_PSYCHOACTIVE", "x": [ 0, 1 ], "y": [ 0, 1 ], "chance": 50, "repeat": [ 1, 3 ] } ], + "place_fields": [ + { "field": "fd_fatigue", "x": 0, "y": 0, "intensity": [ 2, 3 ] }, + { "field": "fd_fatigue", "x": 1, "y": 1, "intensity": [ 2, 3 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_field_chunk_center_2x2", + "weight": 500, + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + "NC", + "CN" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "C": "t_nether_stone" }, + "furniture": { "N": [ [ "f_nether_crystal_structure", 1 ], [ "f_null", 1 ] ] }, + "place_monsters": [ { "monster": "GROUP_CRYSTAL_FIELD_PSYCHOACTIVE", "x": [ 0, 1 ], "y": [ 0, 1 ], "chance": 50, "repeat": [ 1, 3 ] } ], + "items": { "C": { "item": "dist_matrix_crystals", "chance": 50 } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "crystal_field_chunk_center_2x2", + "weight": 500, + "object": { + "mapgensize": [ 2, 2 ], + "rows": [ + "CN", + "NC" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "C": "t_nether_stone" }, + "furniture": { "N": [ [ "f_nether_crystal_structure", 1 ], [ "f_null", 1 ] ] }, + "place_monsters": [ { "monster": "GROUP_CRYSTAL_FIELD_PSYCHOACTIVE", "x": [ 0, 1 ], "y": [ 0, 1 ], "chance": 50, "repeat": [ 1, 3 ] } ], + "items": { "C": { "item": "dist_matrix_crystals", "chance": 50 } } + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/overmap/overmap_overrides.json b/data/Mainline_mods/Mods/MindOverMatter/overmap/overmap_overrides.json new file mode 100644 index 000000000..8aa4280dc --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/overmap/overmap_overrides.json @@ -0,0 +1,27 @@ +[ + { + "type": "overmap_terrain", + "id": [ + "lab_surface_brick_blockA2", + "lab_surface_brick_blockA3", + "lab_surface_brick_blockA4", + "lab_surface_brick_blockB2", + "lab_surface_brick_blockB3", + "lab_surface_brick_blockB4", + "lab_surface_brick_blockC4", + "lab_surface_brick_blockD2", + "lab_surface_brick_blockD3", + "lab_surface_brick_blockD4", + "lab_surface_brick_blockE2", + "lab_surface_brick_blockE3", + "lab_surface_brick_blockE4" + ], + "name": "research facility", + "sym": "l", + "color": "light_gray", + "spawns": { "group": "GROUP_LAB_RESEARCH", "population": [ 10, 25 ], "chance": 60 }, + "extras": "research_facility_interior", + "see_cost": 5, + "mondensity": 2 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/overmap/overmap_specials.json b/data/Mainline_mods/Mods/MindOverMatter/overmap/overmap_specials.json new file mode 100644 index 000000000..c89964e9d --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/overmap/overmap_specials.json @@ -0,0 +1,336 @@ +[ + { + "type": "overmap_special", + "id": "nether_crystal_field", + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "nether_crystal_field" } ], + "locations": [ "wilderness" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 0, 2 ], + "spawns": { "group": "GROUP_CRYSTAL_FIELD", "population": [ 1, 4 ], "radius": [ 1, 3 ] } + }, + { + "type": "overmap_special", + "id": "phavian_surface_lab", + "overmaps": [ + { "point": [ 0, 0, -1 ], "overmap": "special_earth" }, + { "point": [ 1, 0, -1 ], "overmap": "special_earth" }, + { "point": [ 2, 0, -1 ], "overmap": "special_earth" }, + { "point": [ 3, 0, -1 ], "overmap": "special_earth" }, + { "point": [ 4, 0, -1 ], "overmap": "special_earth" }, + { "point": [ 0, 1, -1 ], "overmap": "special_earth" }, + { "point": [ 1, 1, -1 ], "overmap": "special_earth" }, + { "point": [ 2, 1, -1 ], "overmap": "special_earth" }, + { "point": [ 3, 1, -1 ], "overmap": "psi_phavian_lab_basementD1_hidden_lab_stairs_north" }, + { "point": [ 4, 1, -1 ], "overmap": "psi_phavian_lab_basementE1_north" }, + { "point": [ 0, 2, -1 ], "overmap": "special_earth" }, + { "point": [ 1, 2, -1 ], "overmap": "special_earth" }, + { "point": [ 2, 2, -1 ], "overmap": "special_earth" }, + { "point": [ 3, 2, -1 ], "overmap": "special_earth" }, + { "point": [ 4, 2, -1 ], "overmap": "special_earth" }, + { "point": [ 0, 3, -1 ], "overmap": "special_earth" }, + { "point": [ 1, 3, -1 ], "overmap": "special_earth" }, + { "point": [ 2, 3, -1 ], "overmap": "special_earth" }, + { "point": [ 3, 3, -1 ], "overmap": "special_earth" }, + { "point": [ 4, 3, -1 ], "overmap": "special_earth" }, + { "point": [ 0, 4, -1 ], "overmap": "special_earth" }, + { "point": [ 1, 4, -1 ], "overmap": "special_earth" }, + { "point": [ 2, 4, -1 ], "overmap": "special_earth" }, + { "point": [ 3, 4, -1 ], "overmap": "special_earth" }, + { "point": [ 4, 4, -1 ], "overmap": "special_earth" }, + { "point": [ 0, 0, 0 ], "overmap": "psi_phavian_lab_blockA0_north" }, + { "point": [ 1, 0, 0 ], "overmap": "psi_phavian_lab_blockB0_north" }, + { "point": [ 2, 0, 0 ], "overmap": "psi_phavian_lab_blockC0_north" }, + { "point": [ 3, 0, 0 ], "overmap": "psi_phavian_lab_blockD0_north" }, + { "point": [ 4, 0, 0 ], "overmap": "psi_phavian_lab_blockE0_north" }, + { "point": [ 0, 1, 0 ], "overmap": "psi_phavian_lab_blockA1_north" }, + { "point": [ 1, 1, 0 ], "overmap": "psi_phavian_lab_blockB1_north" }, + { "point": [ 2, 1, 0 ], "overmap": "psi_phavian_lab_blockC1_north" }, + { "point": [ 3, 1, 0 ], "overmap": "psi_phavian_lab_blockD1_north" }, + { "point": [ 4, 1, 0 ], "overmap": "psi_phavian_lab_blockE1_north" }, + { "point": [ 0, 2, 0 ], "overmap": "psi_phavian_lab_blockA2_north" }, + { "point": [ 1, 2, 0 ], "overmap": "psi_phavian_lab_blockB2_north" }, + { "point": [ 2, 2, 0 ], "overmap": "psi_phavian_lab_blockC2_north" }, + { "point": [ 3, 2, 0 ], "overmap": "psi_phavian_lab_blockD2_north" }, + { "point": [ 4, 2, 0 ], "overmap": "psi_phavian_lab_blockE2_north" }, + { "point": [ 0, 3, 0 ], "overmap": "psi_phavian_lab_blockA3_north" }, + { "point": [ 1, 3, 0 ], "overmap": "psi_phavian_lab_blockB3_north" }, + { "point": [ 2, 3, 0 ], "overmap": "psi_phavian_lab_blockC3_north" }, + { "point": [ 3, 3, 0 ], "overmap": "psi_phavian_lab_blockD3_north" }, + { "point": [ 4, 3, 0 ], "overmap": "psi_phavian_lab_blockE3_north" }, + { "point": [ 0, 4, 0 ], "overmap": "psi_phavian_lab_blockA4_north" }, + { "point": [ 1, 4, 0 ], "overmap": "psi_phavian_lab_blockB4_north" }, + { "point": [ 2, 4, 0 ], "overmap": "psi_phavian_lab_blockC4_north" }, + { "point": [ 3, 4, 0 ], "overmap": "psi_phavian_lab_blockD4_north" }, + { "point": [ 4, 4, 0 ], "overmap": "psi_phavian_lab_blockE4_north" }, + { "point": [ 0, 0, 1 ], "overmap": "psi_phavian_lab_block2A0_north" }, + { "point": [ 1, 0, 1 ], "overmap": "psi_phavian_lab_block2B0_north" }, + { "point": [ 2, 0, 1 ], "overmap": "psi_phavian_lab_block2C0_north" }, + { "point": [ 3, 0, 1 ], "overmap": "psi_phavian_lab_block2D0_north" }, + { "point": [ 4, 0, 1 ], "overmap": "psi_phavian_lab_block2E0_north" }, + { "point": [ 0, 1, 1 ], "overmap": "psi_phavian_lab_block2A1_north" }, + { "point": [ 1, 1, 1 ], "overmap": "psi_phavian_lab_block2B1_north" }, + { "point": [ 2, 1, 1 ], "overmap": "psi_phavian_lab_block2C1_north" }, + { "point": [ 3, 1, 1 ], "overmap": "psi_phavian_lab_block2D1_north" }, + { "point": [ 4, 1, 1 ], "overmap": "psi_phavian_lab_block2E1_north" }, + { "point": [ 0, 2, 1 ], "overmap": "psi_phavian_lab_block2A2_north" }, + { "point": [ 1, 2, 1 ], "overmap": "psi_phavian_lab_block2B2_north" }, + { "point": [ 2, 2, 1 ], "overmap": "psi_phavian_lab_block2C2_north" }, + { "point": [ 3, 2, 1 ], "overmap": "psi_phavian_lab_block2D2_north" }, + { "point": [ 4, 2, 1 ], "overmap": "psi_phavian_lab_block2E2_north" }, + { "point": [ 0, 3, 1 ], "overmap": "psi_phavian_lab_block2A3_north" }, + { "point": [ 1, 3, 1 ], "overmap": "psi_phavian_lab_block2B3_north" }, + { "point": [ 2, 3, 1 ], "overmap": "psi_phavian_lab_block2C3_north" }, + { "point": [ 3, 3, 1 ], "overmap": "psi_phavian_lab_block2D3_north" }, + { "point": [ 4, 3, 1 ], "overmap": "psi_phavian_lab_block2E3_north" }, + { "point": [ 0, 4, 1 ], "overmap": "psi_phavian_lab_block2A4_north" }, + { "point": [ 1, 4, 1 ], "overmap": "psi_phavian_lab_block2B4_north" }, + { "point": [ 2, 4, 1 ], "overmap": "psi_phavian_lab_block2C4_north" }, + { "point": [ 3, 4, 1 ], "overmap": "psi_phavian_lab_block2D4_north" }, + { "point": [ 4, 4, 1 ], "overmap": "psi_phavian_lab_block2E4_north" }, + { "point": [ 0, 0, 2 ], "overmap": "psi_phavian_lab_block3A0_north" }, + { "point": [ 1, 0, 2 ], "overmap": "psi_phavian_lab_block3B0_north" }, + { "point": [ 2, 0, 2 ], "overmap": "psi_phavian_lab_block3C0_north" }, + { "point": [ 3, 0, 2 ], "overmap": "psi_phavian_lab_block3D0_north" }, + { "point": [ 4, 0, 2 ], "overmap": "psi_phavian_lab_block3E0_north" }, + { "point": [ 0, 1, 2 ], "overmap": "psi_phavian_lab_block3A1_north" }, + { "point": [ 1, 1, 2 ], "overmap": "psi_phavian_lab_block3B1_north" }, + { "point": [ 2, 1, 2 ], "overmap": "psi_phavian_lab_block3C1_north" }, + { "point": [ 3, 1, 2 ], "overmap": "psi_phavian_lab_block3D1_north" }, + { "point": [ 4, 1, 2 ], "overmap": "psi_phavian_lab_block3E1_north" }, + { "point": [ 0, 2, 2 ], "overmap": "psi_phavian_lab_block3A2_north" }, + { "point": [ 1, 2, 2 ], "overmap": "psi_phavian_lab_block3B2_north" }, + { "point": [ 2, 2, 2 ], "overmap": "psi_phavian_lab_block3C2_north" }, + { "point": [ 3, 2, 2 ], "overmap": "psi_phavian_lab_block3D2_north" }, + { "point": [ 4, 2, 2 ], "overmap": "psi_phavian_lab_block3E2_north" }, + { "point": [ 0, 3, 2 ], "overmap": "psi_phavian_lab_block3A3_north" }, + { "point": [ 1, 3, 2 ], "overmap": "psi_phavian_lab_block3B3_north" }, + { "point": [ 2, 3, 2 ], "overmap": "psi_phavian_lab_block3C3_north" }, + { "point": [ 3, 3, 2 ], "overmap": "psi_phavian_lab_block3D3_north" }, + { "point": [ 4, 3, 2 ], "overmap": "psi_phavian_lab_block3E3_north" }, + { "point": [ 0, 4, 2 ], "overmap": "psi_phavian_lab_block3A4_north" }, + { "point": [ 1, 4, 2 ], "overmap": "psi_phavian_lab_block3B4_north" }, + { "point": [ 2, 4, 2 ], "overmap": "psi_phavian_lab_block3C4_north" }, + { "point": [ 3, 4, 2 ], "overmap": "psi_phavian_lab_block3D4_north" }, + { "point": [ 4, 4, 2 ], "overmap": "psi_phavian_lab_block3E4_north" }, + { "point": [ 0, 0, 3 ], "overmap": "psi_phavian_lab_block4A0_north" }, + { "point": [ 1, 0, 3 ], "overmap": "psi_phavian_lab_block4B0_north" }, + { "point": [ 2, 0, 3 ], "overmap": "psi_phavian_lab_block4C0_north" }, + { "point": [ 3, 0, 3 ], "overmap": "psi_phavian_lab_block4D0_north" }, + { "point": [ 4, 0, 3 ], "overmap": "psi_phavian_lab_block4E0_north" }, + { "point": [ 0, 1, 3 ], "overmap": "psi_phavian_lab_block4A1_north" }, + { "point": [ 1, 1, 3 ], "overmap": "psi_phavian_lab_block4B1_north" }, + { "point": [ 2, 1, 3 ], "overmap": "psi_phavian_lab_block4C1_north" }, + { "point": [ 3, 1, 3 ], "overmap": "psi_phavian_lab_block4D1_north" }, + { "point": [ 4, 1, 3 ], "overmap": "psi_phavian_lab_block4E1_north" }, + { "point": [ 0, 2, 3 ], "overmap": "psi_phavian_lab_block4A2_north" }, + { "point": [ 1, 2, 3 ], "overmap": "psi_phavian_lab_block4B2_north" }, + { "point": [ 2, 2, 3 ], "overmap": "psi_phavian_lab_block4C2_north" }, + { "point": [ 3, 2, 3 ], "overmap": "psi_phavian_lab_block4D2_north" }, + { "point": [ 4, 2, 3 ], "overmap": "psi_phavian_lab_block4E2_north" }, + { "point": [ 0, 3, 3 ], "overmap": "psi_phavian_lab_block4A3_north" }, + { "point": [ 1, 3, 3 ], "overmap": "psi_phavian_lab_block4B3_north" }, + { "point": [ 2, 3, 3 ], "overmap": "psi_phavian_lab_block4C3_north" }, + { "point": [ 3, 3, 3 ], "overmap": "psi_phavian_lab_block4D3_north" }, + { "point": [ 4, 3, 3 ], "overmap": "psi_phavian_lab_block4E3_north" }, + { "point": [ 0, 4, 3 ], "overmap": "psi_phavian_lab_block4A4_north" }, + { "point": [ 1, 4, 3 ], "overmap": "psi_phavian_lab_block4B4_north" }, + { "point": [ 2, 4, 3 ], "overmap": "psi_phavian_lab_block4C4_north" }, + { "point": [ 3, 4, 3 ], "overmap": "psi_phavian_lab_block4D4_north" }, + { "point": [ 4, 4, 3 ], "overmap": "psi_phavian_lab_block4E4_north" }, + { "point": [ 0, 0, 4 ], "overmap": "psi_phavian_lab_block5A0_north" }, + { "point": [ 1, 0, 4 ], "overmap": "psi_phavian_lab_block5B0_north" }, + { "point": [ 2, 0, 4 ], "overmap": "psi_phavian_lab_block5C0_north" }, + { "point": [ 3, 0, 4 ], "overmap": "psi_phavian_lab_block5D0_north" }, + { "point": [ 4, 0, 4 ], "overmap": "psi_phavian_lab_block5E0_north" }, + { "point": [ 0, 1, 4 ], "overmap": "psi_phavian_lab_block5A1_north" }, + { "point": [ 1, 1, 4 ], "overmap": "psi_phavian_lab_block5B1_north" }, + { "point": [ 2, 1, 4 ], "overmap": "psi_phavian_lab_block5C1_north" }, + { "point": [ 3, 1, 4 ], "overmap": "psi_phavian_lab_block5D1_north" }, + { "point": [ 4, 1, 4 ], "overmap": "psi_phavian_lab_block5E1_north" }, + { "point": [ 0, 2, 4 ], "overmap": "psi_phavian_lab_block5A2_north" }, + { "point": [ 1, 2, 4 ], "overmap": "psi_phavian_lab_block5B2_north" }, + { "point": [ 2, 2, 4 ], "overmap": "psi_phavian_lab_block5C2_north" }, + { "point": [ 3, 2, 4 ], "overmap": "psi_phavian_lab_block5D2_north" }, + { "point": [ 4, 2, 4 ], "overmap": "psi_phavian_lab_block5E2_north" }, + { "point": [ 0, 3, 4 ], "overmap": "psi_phavian_lab_block5A3_north" }, + { "point": [ 1, 3, 4 ], "overmap": "psi_phavian_lab_block5B3_north" }, + { "point": [ 2, 3, 4 ], "overmap": "psi_phavian_lab_block5C3_north" }, + { "point": [ 3, 3, 4 ], "overmap": "psi_phavian_lab_block5D3_north" }, + { "point": [ 4, 3, 4 ], "overmap": "psi_phavian_lab_block5E3_north" }, + { "point": [ 0, 4, 4 ], "overmap": "psi_phavian_lab_block5A4_north" }, + { "point": [ 1, 4, 4 ], "overmap": "psi_phavian_lab_block5B4_north" }, + { "point": [ 2, 4, 4 ], "overmap": "psi_phavian_lab_block5C4_north" }, + { "point": [ 3, 4, 4 ], "overmap": "psi_phavian_lab_block5D4_north" }, + { "point": [ 4, 4, 4 ], "overmap": "psi_phavian_lab_block5E4_north" } + ], + "connections": [ { "point": [ 2, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 2, 0, 0 ] } ], + "locations": [ "wilderness" ], + "city_distance": [ 10, 120 ], + "city_sizes": [ 4, -1 ], + "occurrences": [ 30, 100 ], + "flags": [ "UNIQUE", "LAB", "MAN_MADE" ] + }, + { + "type": "overmap_special", + "id": "lab_surface_big", + "overmaps": [ + { "point": [ 0, 0, -1 ], "overmap": "special_earth" }, + { "point": [ 1, 0, -1 ], "overmap": "special_earth" }, + { "point": [ 2, 0, -1 ], "overmap": "special_earth" }, + { "point": [ 3, 0, -1 ], "overmap": "special_earth" }, + { "point": [ 4, 0, -1 ], "overmap": "special_earth" }, + { "point": [ 0, 1, -1 ], "overmap": "special_earth" }, + { "point": [ 1, 1, -1 ], "overmap": "special_earth" }, + { "point": [ 2, 1, -1 ], "overmap": "special_earth" }, + { "point": [ 3, 1, -1 ], "overmap": "lab_surface_brick_basementD1_hidden_lab_stairs_north" }, + { "point": [ 4, 1, -1 ], "overmap": "lab_surface_brick_basementE1_north" }, + { "point": [ 0, 2, -1 ], "overmap": "special_earth" }, + { "point": [ 1, 2, -1 ], "overmap": "special_earth" }, + { "point": [ 2, 2, -1 ], "overmap": "special_earth" }, + { "point": [ 3, 2, -1 ], "overmap": "special_earth" }, + { "point": [ 4, 2, -1 ], "overmap": "special_earth" }, + { "point": [ 0, 3, -1 ], "overmap": "special_earth" }, + { "point": [ 1, 3, -1 ], "overmap": "special_earth" }, + { "point": [ 2, 3, -1 ], "overmap": "special_earth" }, + { "point": [ 3, 3, -1 ], "overmap": "special_earth" }, + { "point": [ 4, 3, -1 ], "overmap": "special_earth" }, + { "point": [ 0, 4, -1 ], "overmap": "special_earth" }, + { "point": [ 1, 4, -1 ], "overmap": "special_earth" }, + { "point": [ 2, 4, -1 ], "overmap": "special_earth" }, + { "point": [ 3, 4, -1 ], "overmap": "special_earth" }, + { "point": [ 4, 4, -1 ], "overmap": "special_earth" }, + { "point": [ 0, 0, 0 ], "overmap": "lab_surface_brick_blockA0_north" }, + { "point": [ 1, 0, 0 ], "overmap": "lab_surface_brick_blockB0_north" }, + { "point": [ 2, 0, 0 ], "overmap": "lab_surface_brick_blockC0_north" }, + { "point": [ 3, 0, 0 ], "overmap": "lab_surface_brick_blockD0_north" }, + { "point": [ 4, 0, 0 ], "overmap": "lab_surface_brick_blockE0_north" }, + { "point": [ 0, 1, 0 ], "overmap": "lab_surface_brick_blockA1_north" }, + { "point": [ 1, 1, 0 ], "overmap": "lab_surface_brick_blockB1_north" }, + { "point": [ 2, 1, 0 ], "overmap": "lab_surface_brick_blockC1_north" }, + { "point": [ 3, 1, 0 ], "overmap": "lab_surface_brick_blockD1_north" }, + { "point": [ 4, 1, 0 ], "overmap": "lab_surface_brick_blockE1_north" }, + { "point": [ 0, 2, 0 ], "overmap": "lab_surface_brick_blockA2_north" }, + { "point": [ 1, 2, 0 ], "overmap": "lab_surface_brick_blockB2_north" }, + { "point": [ 2, 2, 0 ], "overmap": "lab_surface_brick_blockC2_north" }, + { "point": [ 3, 2, 0 ], "overmap": "lab_surface_brick_blockD2_north" }, + { "point": [ 4, 2, 0 ], "overmap": "lab_surface_brick_blockE2_north" }, + { "point": [ 0, 3, 0 ], "overmap": "lab_surface_brick_blockA3_north" }, + { "point": [ 1, 3, 0 ], "overmap": "lab_surface_brick_blockB3_north" }, + { "point": [ 2, 3, 0 ], "overmap": "lab_surface_brick_blockC3_north" }, + { "point": [ 3, 3, 0 ], "overmap": "lab_surface_brick_blockD3_north" }, + { "point": [ 4, 3, 0 ], "overmap": "lab_surface_brick_blockE3_north" }, + { "point": [ 0, 4, 0 ], "overmap": "lab_surface_brick_blockA4_north" }, + { "point": [ 1, 4, 0 ], "overmap": "lab_surface_brick_blockB4_north" }, + { "point": [ 2, 4, 0 ], "overmap": "lab_surface_brick_blockC4_north" }, + { "point": [ 3, 4, 0 ], "overmap": "lab_surface_brick_blockD4_north" }, + { "point": [ 4, 4, 0 ], "overmap": "lab_surface_brick_blockE4_north" }, + { "point": [ 0, 0, 1 ], "overmap": "lab_surface_brick_block2A0_north" }, + { "point": [ 1, 0, 1 ], "overmap": "lab_surface_brick_block2B0_north" }, + { "point": [ 2, 0, 1 ], "overmap": "lab_surface_brick_block2C0_north" }, + { "point": [ 3, 0, 1 ], "overmap": "lab_surface_brick_block2D0_north" }, + { "point": [ 4, 0, 1 ], "overmap": "lab_surface_brick_block2E0_north" }, + { "point": [ 0, 1, 1 ], "overmap": "lab_surface_brick_block2A1_north" }, + { "point": [ 1, 1, 1 ], "overmap": "lab_surface_brick_block2B1_north" }, + { "point": [ 2, 1, 1 ], "overmap": "lab_surface_brick_block2C1_north" }, + { "point": [ 3, 1, 1 ], "overmap": "lab_surface_brick_block2D1_north" }, + { "point": [ 4, 1, 1 ], "overmap": "lab_surface_brick_block2E1_north" }, + { "point": [ 0, 2, 1 ], "overmap": "lab_surface_brick_block2A2_north" }, + { "point": [ 1, 2, 1 ], "overmap": "lab_surface_brick_block2B2_north" }, + { "point": [ 2, 2, 1 ], "overmap": "lab_surface_brick_block2C2_north" }, + { "point": [ 3, 2, 1 ], "overmap": "lab_surface_brick_block2D2_north" }, + { "point": [ 4, 2, 1 ], "overmap": "lab_surface_brick_block2E2_north" }, + { "point": [ 0, 3, 1 ], "overmap": "lab_surface_brick_block2A3_north" }, + { "point": [ 1, 3, 1 ], "overmap": "lab_surface_brick_block2B3_north" }, + { "point": [ 2, 3, 1 ], "overmap": "lab_surface_brick_block2C3_north" }, + { "point": [ 3, 3, 1 ], "overmap": "lab_surface_brick_block2D3_north" }, + { "point": [ 4, 3, 1 ], "overmap": "lab_surface_brick_block2E3_north" }, + { "point": [ 0, 4, 1 ], "overmap": "lab_surface_brick_block2A4_north" }, + { "point": [ 1, 4, 1 ], "overmap": "lab_surface_brick_block2B4_north" }, + { "point": [ 2, 4, 1 ], "overmap": "lab_surface_brick_block2C4_north" }, + { "point": [ 3, 4, 1 ], "overmap": "lab_surface_brick_block2D4_north" }, + { "point": [ 4, 4, 1 ], "overmap": "lab_surface_brick_block2E4_north" }, + { "point": [ 0, 0, 2 ], "overmap": "lab_surface_brick_block3A0_north" }, + { "point": [ 1, 0, 2 ], "overmap": "lab_surface_brick_block3B0_north" }, + { "point": [ 2, 0, 2 ], "overmap": "lab_surface_brick_block3C0_north" }, + { "point": [ 3, 0, 2 ], "overmap": "lab_surface_brick_block3D0_north" }, + { "point": [ 4, 0, 2 ], "overmap": "lab_surface_brick_block3E0_north" }, + { "point": [ 0, 1, 2 ], "overmap": "lab_surface_brick_block3A1_north" }, + { "point": [ 1, 1, 2 ], "overmap": "lab_surface_brick_block3B1_north" }, + { "point": [ 2, 1, 2 ], "overmap": "lab_surface_brick_block3C1_north" }, + { "point": [ 3, 1, 2 ], "overmap": "lab_surface_brick_block3D1_north" }, + { "point": [ 4, 1, 2 ], "overmap": "lab_surface_brick_block3E1_north" }, + { "point": [ 0, 2, 2 ], "overmap": "lab_surface_brick_block3A2_north" }, + { "point": [ 1, 2, 2 ], "overmap": "lab_surface_brick_block3B2_north" }, + { "point": [ 2, 2, 2 ], "overmap": "lab_surface_brick_block3C2_north" }, + { "point": [ 3, 2, 2 ], "overmap": "lab_surface_brick_block3D2_north" }, + { "point": [ 4, 2, 2 ], "overmap": "lab_surface_brick_block3E2_north" }, + { "point": [ 0, 3, 2 ], "overmap": "lab_surface_brick_block3A3_north" }, + { "point": [ 1, 3, 2 ], "overmap": "lab_surface_brick_block3B3_north" }, + { "point": [ 2, 3, 2 ], "overmap": "lab_surface_brick_block3C3_north" }, + { "point": [ 3, 3, 2 ], "overmap": "lab_surface_brick_block3D3_north" }, + { "point": [ 4, 3, 2 ], "overmap": "lab_surface_brick_block3E3_north" }, + { "point": [ 0, 4, 2 ], "overmap": "lab_surface_brick_block3A4_north" }, + { "point": [ 1, 4, 2 ], "overmap": "lab_surface_brick_block3B4_north" }, + { "point": [ 2, 4, 2 ], "overmap": "lab_surface_brick_block3C4_north" }, + { "point": [ 3, 4, 2 ], "overmap": "lab_surface_brick_block3D4_north" }, + { "point": [ 4, 4, 2 ], "overmap": "lab_surface_brick_block3E4_north" }, + { "point": [ 0, 0, 3 ], "overmap": "lab_surface_brick_block4A0_north" }, + { "point": [ 1, 0, 3 ], "overmap": "lab_surface_brick_block4B0_north" }, + { "point": [ 2, 0, 3 ], "overmap": "lab_surface_brick_block4C0_north" }, + { "point": [ 3, 0, 3 ], "overmap": "lab_surface_brick_block4D0_north" }, + { "point": [ 4, 0, 3 ], "overmap": "lab_surface_brick_block4E0_north" }, + { "point": [ 0, 1, 3 ], "overmap": "lab_surface_brick_block4A1_north" }, + { "point": [ 1, 1, 3 ], "overmap": "lab_surface_brick_block4B1_north" }, + { "point": [ 2, 1, 3 ], "overmap": "lab_surface_brick_block4C1_north" }, + { "point": [ 3, 1, 3 ], "overmap": "lab_surface_brick_block4D1_north" }, + { "point": [ 4, 1, 3 ], "overmap": "lab_surface_brick_block4E1_north" }, + { "point": [ 0, 2, 3 ], "overmap": "lab_surface_brick_block4A2_north" }, + { "point": [ 1, 2, 3 ], "overmap": "lab_surface_brick_block4B2_north" }, + { "point": [ 2, 2, 3 ], "overmap": "lab_surface_brick_block4C2_north" }, + { "point": [ 3, 2, 3 ], "overmap": "lab_surface_brick_block4D2_north" }, + { "point": [ 4, 2, 3 ], "overmap": "lab_surface_brick_block4E2_north" }, + { "point": [ 0, 3, 3 ], "overmap": "lab_surface_brick_block4A3_north" }, + { "point": [ 1, 3, 3 ], "overmap": "lab_surface_brick_block4B3_north" }, + { "point": [ 2, 3, 3 ], "overmap": "lab_surface_brick_block4C3_north" }, + { "point": [ 3, 3, 3 ], "overmap": "lab_surface_brick_block4D3_north" }, + { "point": [ 4, 3, 3 ], "overmap": "lab_surface_brick_block4E3_north" }, + { "point": [ 0, 4, 3 ], "overmap": "lab_surface_brick_block4A4_north" }, + { "point": [ 1, 4, 3 ], "overmap": "lab_surface_brick_block4B4_north" }, + { "point": [ 2, 4, 3 ], "overmap": "lab_surface_brick_block4C4_north" }, + { "point": [ 3, 4, 3 ], "overmap": "lab_surface_brick_block4D4_north" }, + { "point": [ 4, 4, 3 ], "overmap": "lab_surface_brick_block4E4_north" }, + { "point": [ 0, 0, 4 ], "overmap": "lab_surface_brick_block5A0_north" }, + { "point": [ 1, 0, 4 ], "overmap": "lab_surface_brick_block5B0_north" }, + { "point": [ 2, 0, 4 ], "overmap": "lab_surface_brick_block5C0_north" }, + { "point": [ 3, 0, 4 ], "overmap": "lab_surface_brick_block5D0_north" }, + { "point": [ 4, 0, 4 ], "overmap": "lab_surface_brick_block5E0_north" }, + { "point": [ 0, 1, 4 ], "overmap": "lab_surface_brick_block5A1_north" }, + { "point": [ 1, 1, 4 ], "overmap": "lab_surface_brick_block5B1_north" }, + { "point": [ 2, 1, 4 ], "overmap": "lab_surface_brick_block5C1_north" }, + { "point": [ 3, 1, 4 ], "overmap": "lab_surface_brick_block5D1_north" }, + { "point": [ 4, 1, 4 ], "overmap": "lab_surface_brick_block5E1_north" }, + { "point": [ 0, 2, 4 ], "overmap": "lab_surface_brick_block5A2_north" }, + { "point": [ 1, 2, 4 ], "overmap": "lab_surface_brick_block5B2_north" }, + { "point": [ 2, 2, 4 ], "overmap": "lab_surface_brick_block5C2_north" }, + { "point": [ 3, 2, 4 ], "overmap": "lab_surface_brick_block5D2_north" }, + { "point": [ 4, 2, 4 ], "overmap": "lab_surface_brick_block5E2_north" }, + { "point": [ 0, 3, 4 ], "overmap": "lab_surface_brick_block5A3_north" }, + { "point": [ 1, 3, 4 ], "overmap": "lab_surface_brick_block5B3_north" }, + { "point": [ 2, 3, 4 ], "overmap": "lab_surface_brick_block5C3_north" }, + { "point": [ 3, 3, 4 ], "overmap": "lab_surface_brick_block5D3_north" }, + { "point": [ 4, 3, 4 ], "overmap": "lab_surface_brick_block5E3_north" }, + { "point": [ 0, 4, 4 ], "overmap": "lab_surface_brick_block5A4_north" }, + { "point": [ 1, 4, 4 ], "overmap": "lab_surface_brick_block5B4_north" }, + { "point": [ 2, 4, 4 ], "overmap": "lab_surface_brick_block5C4_north" }, + { "point": [ 3, 4, 4 ], "overmap": "lab_surface_brick_block5D4_north" }, + { "point": [ 4, 4, 4 ], "overmap": "lab_surface_brick_block5E4_north" } + ], + "connections": [ { "point": [ 2, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 2, 0, 0 ] } ], + "locations": [ "wilderness" ], + "city_distance": [ 10, 120 ], + "city_sizes": [ 4, -1 ], + "occurrences": [ 0, 0 ], + "flags": [ "LAB", "MAN_MADE" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/overmap/overmap_terrain.json b/data/Mainline_mods/Mods/MindOverMatter/overmap/overmap_terrain.json new file mode 100644 index 000000000..9842ef2eb --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/overmap/overmap_terrain.json @@ -0,0 +1,259 @@ +[ + { + "type": "overmap_terrain", + "id": [ "nether_crystal_field" ], + "name": "crystal outcroppings", + "sym": "*", + "color": "white", + "flags": [ "NO_ROTATE" ], + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "office_cubical_phavian" ], + "copy-from": "generic_city_building", + "looks_like": "office_cubical", + "name": "office", + "color": "light_gray" + }, + { + "type": "overmap_terrain", + "id": [ "office_cubical_phavian_roof" ], + "copy-from": "generic_city_building", + "looks_like": "office_cubical_roof", + "name": "office roof", + "color": "light_gray" + }, + { + "type": "overmap_terrain", + "id": [ "office_cubical_phavian_basement" ], + "copy-from": "generic_city_building", + "looks_like": "office_cubical", + "name": "office basement", + "color": "light_gray" + }, + { + "type": "overmap_terrain", + "id": [ "office_cubical_phavian_subbasement" ], + "copy-from": "generic_city_building", + "looks_like": "office_cubical", + "name": "office subbasement", + "color": "light_gray" + }, + { + "type": "overmap_terrain", + "id": [ "psi_phavian_lab_basementD1_hidden_lab_stairs", "psi_phavian_lab_basementE1" ], + "name": "lab basement", + "sym": "L", + "looks_like": "lab_surface_brick_basementD1_hidden_lab_stairs", + "color": "white", + "spawns": { "group": "GROUP_LAB_SURFACE", "population": [ 1, 5 ], "chance": 50 }, + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": [ + "psi_phavian_lab_blockA0", + "psi_phavian_lab_blockA1", + "psi_phavian_lab_blockB0", + "psi_phavian_lab_blockB1", + "psi_phavian_lab_blockC0", + "psi_phavian_lab_blockC1", + "psi_phavian_lab_blockC2", + "psi_phavian_lab_blockD0", + "psi_phavian_lab_blockD1", + "psi_phavian_lab_blockE0", + "psi_phavian_lab_blockE1" + ], + "name": "parking lot", + "//": "parking lot attached to Project PHAVIAN Lab.", + "sym": "_", + "looks_like": "lab_surface_parking_blockE2", + "color": "dark_gray", + "spawns": { "group": "GROUP_LAB_RESEARCH", "population": [ 5, 20 ], "chance": 50 }, + "extras": "phavian_lab_lot", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": [ + "psi_phavian_lab_blockA2", + "psi_phavian_lab_blockA3", + "psi_phavian_lab_blockA4", + "psi_phavian_lab_blockB2", + "psi_phavian_lab_blockB3", + "psi_phavian_lab_blockB4", + "psi_phavian_lab_blockC4", + "psi_phavian_lab_blockD2", + "psi_phavian_lab_blockD3", + "psi_phavian_lab_blockD4", + "psi_phavian_lab_blockE2", + "psi_phavian_lab_blockE3", + "psi_phavian_lab_blockE4" + ], + "name": "research facility", + "sym": "l", + "color": "light_gray", + "looks_like": "lab_surface_brick_blockA2", + "spawns": { "group": "GROUP_LAB_RESEARCH", "population": [ 10, 25 ], "chance": 60 }, + "extras": "phavian_lab_interior", + "see_cost": 5, + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": "psi_phavian_lab_blockC3", + "name": "research facility entrance", + "sym": "L", + "color": "white", + "looks_like": "lab_surface_brick_blockC3", + "spawns": { "group": "GROUP_LAB_RESEARCH", "population": [ 8, 25 ], "chance": 50 }, + "extras": "phavian_lab_interior", + "see_cost": 5, + "mondensity": 2, + "flags": [ "RISK_HIGH" ] + }, + { + "type": "overmap_terrain", + "id": [ + "psi_phavian_lab_block2A0", + "psi_phavian_lab_block2C2", + "psi_phavian_lab_block2A1", + "psi_phavian_lab_block2B0", + "psi_phavian_lab_block2B1", + "psi_phavian_lab_block2C0", + "psi_phavian_lab_block2C1", + "psi_phavian_lab_block2D0", + "psi_phavian_lab_block2D1", + "psi_phavian_lab_block2E0", + "psi_phavian_lab_block2E1", + "psi_phavian_lab_block3A0", + "psi_phavian_lab_block3A1", + "psi_phavian_lab_block3B0", + "psi_phavian_lab_block3B1", + "psi_phavian_lab_block3C0", + "psi_phavian_lab_block3C1", + "psi_phavian_lab_block3C2", + "psi_phavian_lab_block3D0", + "psi_phavian_lab_block3D1", + "psi_phavian_lab_block3E0", + "psi_phavian_lab_block3E1", + "psi_phavian_lab_block4A0", + "psi_phavian_lab_block4A1", + "psi_phavian_lab_block4B0", + "psi_phavian_lab_block4B1", + "psi_phavian_lab_block4C0", + "psi_phavian_lab_block4C1", + "psi_phavian_lab_block4C2", + "psi_phavian_lab_block4D0", + "psi_phavian_lab_block4D1", + "psi_phavian_lab_block4E0", + "psi_phavian_lab_block4E1", + "psi_phavian_lab_block5A0", + "psi_phavian_lab_block5A1", + "psi_phavian_lab_block5B0", + "psi_phavian_lab_block5B1", + "psi_phavian_lab_block5C0", + "psi_phavian_lab_block5C1", + "psi_phavian_lab_block5C2", + "psi_phavian_lab_block5D0", + "psi_phavian_lab_block5D1", + "psi_phavian_lab_block5E0", + "psi_phavian_lab_block5E1" + ], + "name": "open air", + "sym": ".", + "looks_like": "lab_surface_brick_block5C2", + "color": "blue", + "see_cost": 1 + }, + { + "type": "overmap_terrain", + "id": [ + "psi_phavian_lab_block2A2", + "psi_phavian_lab_block2A3", + "psi_phavian_lab_block2A4", + "psi_phavian_lab_block2B2", + "psi_phavian_lab_block2B3", + "psi_phavian_lab_block2B4", + "psi_phavian_lab_block2C3", + "psi_phavian_lab_block2C4", + "psi_phavian_lab_block2D2", + "psi_phavian_lab_block2D3", + "psi_phavian_lab_block2D4", + "psi_phavian_lab_block2E2", + "psi_phavian_lab_block2E3", + "psi_phavian_lab_block2E4" + ], + "name": "research facility, second floor", + "copy-from": "psi_phavian_lab_blockA2" + }, + { + "type": "overmap_terrain", + "id": [ + "psi_phavian_lab_block3A2", + "psi_phavian_lab_block3A3", + "psi_phavian_lab_block3A4", + "psi_phavian_lab_block3B2", + "psi_phavian_lab_block3B3", + "psi_phavian_lab_block3B4", + "psi_phavian_lab_block3C3", + "psi_phavian_lab_block3C4", + "psi_phavian_lab_block3D2", + "psi_phavian_lab_block3D3", + "psi_phavian_lab_block3D4", + "psi_phavian_lab_block3E2", + "psi_phavian_lab_block3E3", + "psi_phavian_lab_block3E4" + ], + "name": "research facility, third floor", + "copy-from": "psi_phavian_lab_blockA2" + }, + { + "type": "overmap_terrain", + "id": [ + "psi_phavian_lab_block4A2", + "psi_phavian_lab_block4A3", + "psi_phavian_lab_block4A4", + "psi_phavian_lab_block4B2", + "psi_phavian_lab_block4B3", + "psi_phavian_lab_block4B4", + "psi_phavian_lab_block4C3", + "psi_phavian_lab_block4C4", + "psi_phavian_lab_block4D2", + "psi_phavian_lab_block4D3", + "psi_phavian_lab_block4D4", + "psi_phavian_lab_block4E2", + "psi_phavian_lab_block4E3", + "psi_phavian_lab_block4E4" + ], + "name": "research facility, fourth floor", + "copy-from": "psi_phavian_lab_blockA2" + }, + { + "type": "overmap_terrain", + "id": [ + "psi_phavian_lab_block5A2", + "psi_phavian_lab_block5B2", + "psi_phavian_lab_block5A3", + "psi_phavian_lab_block5A4", + "psi_phavian_lab_block5B3", + "psi_phavian_lab_block5B4", + "psi_phavian_lab_block5C3", + "psi_phavian_lab_block5C4", + "psi_phavian_lab_block5D2", + "psi_phavian_lab_block5D3", + "psi_phavian_lab_block5D4", + "psi_phavian_lab_block5E2", + "psi_phavian_lab_block5E3", + "psi_phavian_lab_block5E4" + ], + "name": "research facility, roof", + "sym": "l", + "looks_like": "lab_surface_brick_block5A2", + "color": "dark_gray", + "see_cost": 2 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/overmap/regional_overlay.json b/data/Mainline_mods/Mods/MindOverMatter/overmap/regional_overlay.json new file mode 100644 index 000000000..fe963ce81 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/overmap/regional_overlay.json @@ -0,0 +1,109 @@ +[ + { + "type": "region_overlay", + "regions": [ "all" ], + "city": { "shops": { "office_cubical_phavian": 325 } }, + "map_extras": { + "forest_water": { + "chance": 20, + "extras": { + "mx_alien_grass": 25, + "mx_alien_grass_2": 25, + "mx_alien_grass_3": 25, + "mx_alien_grass_4": 25, + "mx_alien_grass_5": 25, + "mx_alien_grove": 15, + "mx_glass_and_crystal": 30, + "mx_phavian_science": 20 + } + }, + "forest_thick": { + "chance": 30, + "extras": { + "mx_alien_grass": 25, + "mx_alien_grass_2": 25, + "mx_alien_grass_3": 25, + "mx_alien_grass_4": 25, + "mx_alien_grass_5": 25, + "mx_alien_grove": 15, + "mx_nether_pond": 25, + "mx_glass_and_crystal": 30, + "mx_phavian_science": 20 + } + }, + "forest": { + "chance": 40, + "extras": { + "mx_alien_grass": 15, + "mx_alien_grass_2": 15, + "mx_alien_grass_3": 15, + "mx_alien_grass_4": 15, + "mx_alien_grass_5": 15, + "mx_alien_grove": 15, + "mx_nether_pond": 8, + "mx_glass_and_crystal": 20, + "mx_phavian_science": 20 + } + }, + "field": { + "chance": 6, + "extras": { + "mx_alien_grass": 15, + "mx_alien_grass_2": 15, + "mx_alien_grass_3": 15, + "mx_alien_grass_4": 15, + "mx_alien_grass_5": 15, + "mx_alien_grove": 15, + "mx_nether_pond": 25, + "mx_glass_and_crystal": 25, + "mx_phavian_science": 10 + } + }, + "road": { "chance": 75, "extras": { "mx_phavian_science": 400 } }, + "build": { "chance": 90, "extras": { "mx_phavian_science": 12 } }, + "subway": { "chance": 75, "extras": { "mx_phavian_science": 10 } }, + "lab_subway": { "chance": 25, "extras": { "mx_phavian_science": 10 } }, + "phavian_lab_lot": { + "chance": 3, + "extras": { + "mx_helicopter": 15, + "mx_military": 65, + "mx_collegekids": 1, + "mx_portal": 150, + "mx_crater": 180, + "mx_alien_grass": 25, + "mx_alien_grass_2": 25, + "mx_alien_grass_3": 25, + "mx_alien_grass_4": 25, + "mx_alien_grass_5": 25, + "mx_alien_grove": 25, + "mx_nether_pond": 50, + "mx_portal_in": 30, + "mx_point_burned_ground": 100, + "mx_casings": 30, + "mx_exocrash_1": 1, + "mx_exocrash_2": 1 + } + }, + "phavian_lab_interior": { + "chance": 2, + "extras": { + "mx_jabberwock": 1, + "mx_military": 5, + "mx_portal": 75, + "mx_crater": 300, + "mx_portal_in": 40, + "mx_point_burned_ground": 125, + "mx_casings": 30, + "mx_glass_and_crystal": 50, + "mx_alien_grass": 25, + "mx_alien_grass_2": 25, + "mx_alien_grass_3": 25, + "mx_alien_grass_4": 25, + "mx_alien_grass_5": 25, + "mx_nether_pond": 50 + } + } + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/biokinesis.json b/data/Mainline_mods/Mods/MindOverMatter/powers/biokinesis.json new file mode 100644 index 000000000..1bc7d67b3 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/biokinesis.json @@ -0,0 +1,564 @@ +[ + { + "id": "biokin_physical_enhance", + "type": "SPELL", + "name": "[Ψ]Physical Enhancement", + "description": "You can improve your strength and agility with your powers.", + "message": "You enhance your physical prowess.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_biokin_physical", + "extra_effects": [ { "id": "psionic_drained_difficulty_two", "hit_self": true } ], + "shape": "blast", + "difficulty": 2, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 3500, + "final_energy_cost": 1250, + "energy_increment": -175, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_physical_enhance') * 1500) + 9000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_physical_enhance') * 2000) + 45000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "base_casting_time": 120, + "final_casting_time": 75, + "casting_time_increment": -5.5, + "learn_spells": { "biokin_enhance_mobility": 7, "biokin_hammerhand": 12, "biokin_reflex_enhance": 15, "biokin_combat_dance": 20 } + }, + { + "id": "biokin_overcome_pain", + "type": "SPELL", + "name": "[Ψ]Overcome Pain", + "description": "You can lessen the impact of pain on your performance, though this has no effect on the underlying injuries.", + "message": "You breathe deeply and your pain lessens.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_BIOKIN_PAIN", + "extra_effects": [ { "id": "psionic_drained_difficulty_one", "hit_self": true } ], + "shape": "blast", + "difficulty": 1, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 0, + "energy_source": "STAMINA", + "base_energy_cost": 1750, + "final_energy_cost": 850, + "energy_increment": -75, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 30000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 130000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "base_casting_time": 125, + "final_casting_time": 50, + "casting_time_increment": -7, + "learn_spells": { "biokin_armor_skin": 9, "biokin_climate_control": 12, "biokin_sealed_system": 18 } + }, + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_PAIN", + "effect": { + "switch": { "u_val": "spell_level", "spell": "biokin_overcome_pain" }, + "cases": [ + { "case": 0, "effect": { "u_cast_spell": { "id": "biokin_overcome_pain_1" } } }, + { "case": 4, "effect": { "u_cast_spell": { "id": "biokin_overcome_pain_2" } } }, + { "case": 8, "effect": { "u_cast_spell": { "id": "biokin_overcome_pain_3" } } }, + { "case": 12, "effect": { "u_cast_spell": { "id": "biokin_overcome_pain_4" } } }, + { "case": 16, "effect": { "u_cast_spell": { "id": "biokin_overcome_pain_5" } } }, + { "case": 20, "effect": { "u_cast_spell": { "id": "biokin_overcome_pain_6" } } } + ] + } + }, + { + "id": "biokin_overcome_pain_1", + "type": "SPELL", + "name": "[Ψ]Overcome Pain #1", + "description": "Number #1 of Overcoming Pain subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_biokin_pkill_1", + "shape": "blast", + "max_level": 20, + "min_damage": 0, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 30000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 130000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "biokin_overcome_pain_2", + "type": "SPELL", + "name": "[Ψ]Overcome Pain #2", + "description": "Number #2 of Overcoming Pain subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_biokin_pkill_2", + "shape": "blast", + "max_level": 20, + "min_damage": 0, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 60000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 150000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "biokin_overcome_pain_3", + "type": "SPELL", + "name": "[Ψ]Overcome Pain #3", + "description": "Number #3 of Overcoming Pain subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_biokin_pkill_3", + "shape": "blast", + "max_level": 20, + "min_damage": 0, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 90000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "biokin_overcome_pain_4", + "type": "SPELL", + "name": "[Ψ]Overcome Pain #4", + "description": "Number #4 of Overcoming Pain subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_biokin_pkill_4", + "shape": "blast", + "max_level": 20, + "min_damage": 0, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 120000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 210000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "biokin_overcome_pain_5", + "type": "SPELL", + "name": "[Ψ]Overcome Pain #5", + "description": "Number #5 of Overcoming Pain subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_biokin_pkill_5", + "shape": "blast", + "max_level": 20, + "min_damage": 0, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 150000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 240000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "biokin_overcome_pain_6", + "type": "SPELL", + "name": "[Ψ]Overcome Pain #6", + "description": "Number #6 of Overcoming Pain subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_biokin_pkill_6", + "shape": "blast", + "max_level": 20, + "min_damage": 0, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_overcome_pain') * 2000) + 270000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "biokin_flexibility", + "type": "SPELL", + "name": "[Ψ]Flexibility", + "description": "You can make your limbs move far beyond the normal human range of motion, allowing you to twist out of others' grasp and reduce fall damage.", + "message": "You body begins twisting in unbelivable ways.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_biokin_flexibility", + "extra_effects": [ { "id": "psionic_drained_difficulty_three", "hit_self": true } ], + "shape": "blast", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 2500, + "final_energy_cost": 1250, + "energy_increment": -175, + "min_duration": 200, + "max_duration": 500, + "base_casting_time": 50, + "final_casting_time": 15, + "casting_time_increment": -2.5, + "learn_spells": { "biokin_enhance_mobility": 6, "biokin_hammerhand": 9, "biokin_reflex_enhance": 12, "biokin_combat_dance": 18 } + }, + { + "id": "biokin_armor_skin", + "type": "SPELL", + "name": "[Ψ]Hardened Skin", + "description": "You can increase the strength of your skin, making it almost like armor while still allowing you to move freely.", + "message": "Your skin itches slightly and takes on a waxy appearance.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_biokin_armor_skin", + "extra_effects": [ { "id": "psionic_drained_difficulty_four", "hit_self": true } ], + "shape": "blast", + "difficulty": 4, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 4000, + "final_energy_cost": 1750, + "energy_increment": -200, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: biokin_armor_skin') * 1000) + 4500) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: biokin_armor_skin') * 1500) + 30000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 150, + "final_casting_time": 50, + "casting_time_increment": -8.5, + "learn_spells": { "biokin_climate_control": 5, "biokin_hammerhand": 9, "biokin_sealed_system": 12 } + }, + { + "id": "biokin_climate_control", + "type": "SPELL", + "name": "[Ψ]Temperature Adaptability", + "description": "You can increase the heat dissipation and retention of your body, allowing you to function in a much wider range of temperatures.\n\nTemperature Adaptability and Sealed System will cancel each other.", + "message": "You feel much more comfortable.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_biokin_climate_control", + "extra_effects": [ + { "id": "biokin_climate_remove_sealed", "hit_self": true }, + { "id": "psionic_drained_difficulty_four", "hit_self": true } + ], + "shape": "blast", + "difficulty": 4, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 3500, + "final_energy_cost": 1250, + "energy_increment": -175, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_climate_control') * 18000) + 30000 ) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_climate_control') * 36000) + 60000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "base_casting_time": 250, + "final_casting_time": 150, + "casting_time_increment": -8.5, + "learn_spells": { "biokin_sealed_system": 6 } + }, + { + "id": "biokin_climate_remove_sealed", + "type": "SPELL", + "name": "[Ψ]Temperature Adaptability Cancel Sealed System", + "description": "The part of Temperature Adaptability that cancels Sealed System. It's a bug if you have it.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "flags": [ "NO_FAIL", "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "remove_effect", + "effect_str": "biokin_sealed_system", + "shape": "blast", + "max_level": 1 + }, + { + "id": "biokin_enhance_mobility", + "type": "SPELL", + "name": "[Ψ]Enhance Mobility", + "description": "Increase your range of motion and flexibility such that you can move more easily even in encumbering gear.", + "message": "You gear doesn't seem to encumber you as much.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "effect_on_condition", + "effect_str": "EOC_BIOKIN_ENHANCE_MOBILITY_SWITCHER", + "extra_effects": [ { "id": "psionic_drained_difficulty_five", "hit_self": true } ], + "shape": "blast", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 1, + "min_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 1500 ) + 10000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + }, + "max_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 3000 ) + 50000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 4500, + "final_energy_cost": 2500, + "energy_increment": -150, + "base_casting_time": 275, + "final_casting_time": 50, + "casting_time_increment": -15, + "learn_spells": { "biokin_reflex_enhance": 4, "biokin_combat_dance": 10 } + }, + { + "id": "biokin_hammerhand", + "type": "SPELL", + "name": "[Ψ]Hammerhand", + "description": "Who needs tools? You can apply enough raw force or torque with your bare hands to substitute for many simple tools", + "message": "You flex your fingers.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "spawn_item", + "effect_str": "biokin_hammerhand_item", + "extra_effects": [ { "id": "psionic_drained_difficulty_five", "hit_self": true } ], + "shape": "blast", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 4500, + "final_energy_cost": 2250, + "energy_increment": -225, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: biokin_hammerhand') * 45000) + 180000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: biokin_hammerhand') * 75000) + 540000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 350, + "final_casting_time": 150, + "casting_time_increment": -12.5 + }, + { + "id": "biokin_reflex_enhance", + "type": "SPELL", + "name": "[Ψ]Heightened Reflexes", + "description": "You can improve your sensory acuity and the speed at which your brain processes sensory inputs.", + "message": "You enhance your speed and sensory prowess.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_biokin_reflex", + "extra_effects": [ { "id": "psionic_drained_difficulty_six", "hit_self": true } ], + "shape": "blast", + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 5500, + "final_energy_cost": 2250, + "energy_increment": -205, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_reflex_enhance') * 1500) + 9000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_reflex_enhance') * 2000) + 45000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "base_casting_time": 175, + "final_casting_time": 100, + "casting_time_increment": -5.5, + "learn_spells": { "biokin_combat_dance": 8, "biokin_hammerhand": 12, "biokin_perfected_motion": 15 } + }, + { + "id": "biokin_sealed_system", + "type": "SPELL", + "name": "[Ψ]Sealed System", + "description": "With a deep breath, you lock your body off from the outside world--nothing gets in, nothing gets out.\n\nSealed System and Temperature Adaptability cannot be activate at the same time.", + "message": "You take a deep breath and seal your lips.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_biokin_sealed", + "extra_effects": [ + { "id": "biokin_sealed_remove_climate", "hit_self": true }, + { "id": "psionic_drained_difficulty_seven", "hit_self": false } + ], + "shape": "blast", + "difficulty": 7, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 5500, + "final_energy_cost": 2750, + "energy_increment": -175, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: biokin_sealed_system') * 800) + 6000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: biokin_sealed_system') * 800) + 30000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 200, + "final_casting_time": 100, + "casting_time_increment": -7.5, + "learn_spells": { "biokin_overcome_pain": 4 } + }, + { + "id": "biokin_sealed_remove_climate", + "type": "SPELL", + "name": "[Ψ]Sealed System Cancel Temperature Adaptability", + "description": "The part of Sealed System that cancels Temperature Adaptability. It's a bug if you have it.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "flags": [ "NO_FAIL", "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "remove_effect", + "effect_str": "biokin_climate_control", + "shape": "blast", + "max_level": 1 + }, + { + "id": "biokin_combat_dance", + "type": "SPELL", + "name": "[Ψ]Combat Dance", + "description": "You can flood your body with psionic power to enhance your combat prowess.", + "message": "A surge of power fills your body and you begin moving with terrible purpose!", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_biokin_combat_dance", + "extra_effects": [ { "id": "psionic_drained_difficulty_eight", "hit_self": false } ], + "shape": "blast", + "difficulty": 8, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 5500, + "final_energy_cost": 2250, + "energy_increment": -125, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: biokin_combat_dance') * 600) + 4000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: biokin_combat_dance') * 600) + 20000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 100, + "final_casting_time": 40, + "casting_time_increment": -4, + "learn_spells": { "biokin_perfected_motion": 6 } + }, + { + "id": "biokin_perfected_motion", + "type": "SPELL", + "name": "[Ψ]Perfected Motion", + "description": "Your control over your body allows you to move incredibly quickly. While this does not allow you to attack more quickly, you can cross distances in the blink of an eye and outrun a cheetah.", + "message": "The world around you slows down to a crawl.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "BIOKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_biokin_perfected_motion", + "extra_effects": [ { "id": "psionic_drained_difficulty_nine", "hit_self": false } ], + "shape": "blast", + "difficulty": 9, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 6000, + "final_energy_cost": 3500, + "energy_increment": -175, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: biokin_perfected_motion') * 50) + 500) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: biokin_perfected_motion') * 110) + 3000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "base_casting_time": 75, + "final_casting_time": 15, + "casting_time_increment": -4 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/biokinesis_eocs.json b/data/Mainline_mods/Mods/MindOverMatter/powers/biokinesis_eocs.json new file mode 100644 index 000000000..47555fe15 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/biokinesis_eocs.json @@ -0,0 +1,161 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_BIOKIN_ENHANCE_MOBILITY_SWITCHER", + "effect": { + "switch": { "math": [ "u_val('spell_level', 'spell: biokin_enhance_mobility')" ] }, + "cases": [ + { "case": 0, "effect": [ { "u_cast_spell": { "id": "biokin_enhance_mobility_1" } } ] }, + { "case": 4, "effect": [ { "u_cast_spell": { "id": "biokin_enhance_mobility_2" } } ] }, + { "case": 8, "effect": [ { "u_cast_spell": { "id": "biokin_enhance_mobility_3" } } ] }, + { "case": 12, "effect": [ { "u_cast_spell": { "id": "biokin_enhance_mobility_4" } } ] }, + { "case": 16, "effect": [ { "u_cast_spell": { "id": "biokin_enhance_mobility_5" } } ] }, + { "case": 20, "effect": [ { "u_cast_spell": { "id": "biokin_enhance_mobility_6" } } ] } + ] + } + }, + { + "id": "biokin_enhance_mobility_1", + "type": "SPELL", + "name": "[Ψ]Enhance Mobility #1", + "description": "The spell that summons the enhanced mobility device. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "biokin_enhance_mobility_item_1", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 1500 ) + 10000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + }, + "max_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 3000 ) + 50000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + } + }, + { + "id": "biokin_enhance_mobility_2", + "type": "SPELL", + "name": "[Ψ]Enhance Mobility #2", + "description": "The spell that summons the enhanced mobility device. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "biokin_enhance_mobility_item_2", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 1500 ) + 10000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + }, + "max_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 3000 ) + 50000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + } + }, + { + "id": "biokin_enhance_mobility_3", + "type": "SPELL", + "name": "[Ψ]Enhance Mobility #3", + "description": "The spell that summons the enhanced mobility device. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "biokin_enhance_mobility_item_3", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 1500 ) + 10000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + }, + "max_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 3000 ) + 50000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + } + }, + { + "id": "biokin_enhance_mobility_4", + "type": "SPELL", + "name": "[Ψ]Enhance Mobility #4", + "description": "The spell that summons the enhanced mobility device. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "biokin_enhance_mobility_item_4", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 1500 ) + 10000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + }, + "max_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 3000 ) + 50000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + } + }, + { + "id": "biokin_enhance_mobility_5", + "type": "SPELL", + "name": "[Ψ]Enhance Mobility #5", + "description": "The spell that summons the enhanced mobility device. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "biokin_enhance_mobility_item_5", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 1500 ) + 10000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + }, + "max_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 3000 ) + 50000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + } + }, + { + "id": "biokin_enhance_mobility_6", + "type": "SPELL", + "name": "[Ψ]Enhance Mobility #6", + "description": "The spell that summons the enhanced mobility device. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "biokin_enhance_mobility_item_6", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 1500 ) + 10000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + }, + "max_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: biokin_enhance_mobility') * 3000 ) + 50000) * (scaling_factor(u_val('intelligence') ) ) )" + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/clairsentience.json b/data/Mainline_mods/Mods/MindOverMatter/powers/clairsentience.json new file mode 100644 index 000000000..4d09a2585 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/clairsentience.json @@ -0,0 +1,602 @@ +[ + { + "id": "clair_night_vision", + "type": "SPELL", + "name": "[Ψ]Night Eyes", + "description": "Your eyes are much more sensitive in low levels of light, and you can even \"see\" in pitch darkness.", + "message": "You open your senses to the world.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_CLAIR_NIGHT_EYES", + "extra_effects": [ { "id": "psionic_drained_difficulty_one", "hit_self": true } ], + "shape": "blast", + "difficulty": 1, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 1500, + "final_energy_cost": 500, + "energy_increment": -50, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 15000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "base_casting_time": 50, + "final_casting_time": 20, + "casting_time_increment": -2, + "learn_spells": { "clair_voyance": 7, "clair_danger_sense": 9, "clair_see_map": 15 } + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_NIGHT_EYES", + "effect": { + "switch": { "u_val": "spell_level", "spell": "clair_night_vision" }, + "cases": [ + { "case": 0, "effect": { "u_cast_spell": { "id": "clair_night_vision_1" } } }, + { "case": 3, "effect": { "u_cast_spell": { "id": "clair_night_vision_2" } } }, + { "case": 6, "effect": { "u_cast_spell": { "id": "clair_night_vision_3" } } }, + { "case": 9, "effect": { "u_cast_spell": { "id": "clair_night_vision_4" } } }, + { "case": 12, "effect": { "u_cast_spell": { "id": "clair_night_vision_5" } } }, + { "case": 15, "effect": { "u_cast_spell": { "id": "clair_night_vision_6" } } }, + { "case": 18, "effect": { "u_cast_spell": { "id": "clair_night_vision_7" } } }, + { "case": 21, "effect": { "u_cast_spell": { "id": "clair_night_vision_8" } } } + ] + } + }, + { + "id": "clair_night_vision_1", + "type": "SPELL", + "name": "[Ψ]Night Eyes #1", + "description": "Number #1 of Night Eyes subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_clair_night_eyes_1", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 0, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 15000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "clair_night_vision_2", + "type": "SPELL", + "name": "[Ψ]Night Eyes #2", + "description": "Number #1 of Night Eyes subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_clair_night_eyes_2", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 0, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 15000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "clair_night_vision_3", + "type": "SPELL", + "name": "[Ψ]Night Eyes #3", + "description": "Number #3 of Night Eyes subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_clair_night_eyes_3", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 0, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 15000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "clair_night_vision_4", + "type": "SPELL", + "name": "[Ψ]Night Eyes #4", + "description": "Number #4 of Night Eyes subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_clair_night_eyes_4", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 0, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 15000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "clair_night_vision_5", + "type": "SPELL", + "name": "[Ψ]Night Eyes #5", + "description": "Number #5 of Night Eyes subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_clair_night_eyes_5", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 0, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 15000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "clair_night_vision_6", + "type": "SPELL", + "name": "[Ψ]Night Eyes #6", + "description": "Number #6 of Night Eyes subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_clair_night_eyes_6", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 0, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 15000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "clair_night_vision_7", + "type": "SPELL", + "name": "[Ψ]Night Eyes #7", + "description": "Number #7 of Night Eyes subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_clair_night_eyes_7", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 0, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 15000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "clair_night_vision_8", + "type": "SPELL", + "name": "[Ψ]Night Eyes #8", + "description": "Number #8 of Night Eyes subspells. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_clair_night_eyes_8", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 0, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 15000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_night_vision') * 20000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "clair_speed_reading", + "type": "SPELL", + "name": "[Ψ]Speed Reader", + "description": "Your powers make words fairly leap off the page directly into your mind, allowing you to read much faster and better absorb what you read.", + "message": "You feel like sitting down with a good book.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_CLAIR_SPEED_READING", + "extra_effects": [ { "id": "psionic_drained_difficulty_two", "hit_self": true } ], + "shape": "blast", + "difficulty": 2, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 2500, + "final_energy_cost": 1000, + "energy_increment": -125, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_speed_reading') * 36000) + 360000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: clair_speed_reading') * 72000) + 1080000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "base_casting_time": 500, + "final_casting_time": 250, + "casting_time_increment": -12, + "learn_spells": { "clair_spot_weakness": 5, "clair_ranged_enhance": 7, "clair_voyance": 9, "clair_clear_sight": 15 } + }, + { + "id": "clair_danger_sense", + "type": "SPELL", + "name": "[Ψ]Premonition", + "description": "You can sense the presence of the things that wish to do you harm.", + "message": "You open your senses to the dangers of the world.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_clair_premonition", + "extra_effects": [ { "id": "psionic_drained_difficulty_two", "hit_self": true } ], + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 2, + "max_level": { "math": [ "int_to_level(1)" ] }, + "base_energy_cost": 1500, + "final_energy_cost": 850, + "energy_increment": -85, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_danger_sense') * 6000) + 12000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_danger_sense') * 6000) + 90000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 85, + "final_casting_time": 25, + "casting_time_increment": -7, + "learn_spells": { "clair_spot_weakness": 6, "clair_dodge_power": 12, "clair_clear_sight": 15 } + }, + { + "id": "clair_spot_weakness", + "type": "SPELL", + "name": "[Ψ]Discern Weakness", + "description": "Your powers let you pinpoint exactly where your enemies are weak.", + "message": "The vulnerabilities of your enemy are revealed.", + "teachable": false, + "valid_targets": [ "hostile" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "IGNORE_WALLS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_clair_weak_point", + "extra_effects": [ { "id": "psionic_drained_difficulty_three", "hit_self": true } ], + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: clair_spot_weakness') * 1.5) + 1) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 70, + "base_energy_cost": 2500, + "final_energy_cost": 700, + "energy_increment": -125, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_spot_weakness') * 150) + 1350) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_spot_weakness') * 150) + 3000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 150, + "final_casting_time": 75, + "casting_time_increment": -5.5, + "learn_spells": { "clair_ranged_enhance": 4, "clair_voyance": 7, "clair_clear_sight": 12 } + }, + { + "id": "clair_sense_rads", + "type": "SPELL", + "name": "[Ψ]Radiation Sense", + "description": "You can open your tenses to the tell-tale glow of radiation.", + "message": "", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_CLAIR_RAD_SENSE", + "//": "Drain is handled in the subspells below", + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "base_energy_cost": 2500, + "final_energy_cost": 500, + "energy_increment": -125, + "base_casting_time": 250, + "final_casting_time": 100, + "casting_time_increment": -4.5 + }, + { + "id": "clair_sense_rads_self", + "type": "SPELL", + "name": "[Ψ]Radiation Sense on you", + "description": "Sense your personal radiation. It's a bug if you have it directly.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "effect_on_condition", + "effect_str": "EOC_CLAIR_RAD_SENSE_SELF_REPORT", + "extra_effects": [ { "id": "psionic_drained_difficulty_two", "hit_self": true } ], + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] } + }, + { + "id": "clair_sense_rads_outside", + "type": "SPELL", + "name": "[Ψ]Radiation Sense on your environment", + "description": "Sense your environmental radiation. It's a bug if you have it directly.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_clair_sense_rads_self", + "extra_effects": [ { "id": "psionic_drained_difficulty_four", "hit_self": true } ], + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_sense_rads') * 23000) + 180000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_sense_rads') * 48000) + 450000) * (scaling_factor(u_val('intelligence') ) )" ] + } + }, + { + "id": "clair_sense_rads_outside_spawn_item", + "type": "SPELL", + "name": "[Ψ]Radiation Sense summon item", + "description": "This is the reoccurring item summon for Radiation Sense. It's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "clair_sense_rad_item", + "shape": "blast", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 1, + "max_damage": 1, + "min_duration": 1100, + "max_duration": 1100 + }, + { + "id": "clair_ranged_enhance", + "type": "SPELL", + "name": "[Ψ]Marksman's Eye", + "description": "With your enhanced senses, you can increase the effective range and accuracy of your attacks.", + "message": "Distances seem to narrow and your enemies' movements seem to slow.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_clair_ranged_enhance", + "extra_effects": [ { "id": "psionic_drained_difficulty_four", "hit_self": true } ], + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 4, + "max_level": { "math": [ "int_to_level(1)" ] }, + "base_energy_cost": 4000, + "final_energy_cost": 1500, + "energy_increment": -175, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_dodge_power') * 800) + 10000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_dodge_power') * 1500) + 60000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 200, + "final_casting_time": 125, + "casting_time_increment": -10, + "learn_spells": { "clair_spot_weakness": 5, "clair_see_map": 9, "clair_clear_sight": 12 } + }, + { + "id": "clair_voyance", + "type": "SPELL", + "name": "[Ψ]Clairvoyance", + "description": "The classic example of a clairsentient's powers, you can see through walls and reveal everything nearby.", + "message": "You open your inner eye.", + "teachable": false, + "valid_targets": [ "ally", "hostile", "ground" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "IGNORE_WALLS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "extra_effects": [ { "id": "psionic_drained_difficulty_five", "hit_self": true } ], + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: clair_voyance') * 1.5) + 1.5) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: clair_voyance') * 1.5) + 1.5) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_aoe": 50, + "field_id": "fd_clairvoyant", + "min_field_intensity": 1, + "max_field_intensity": 1, + "base_energy_cost": 5000, + "final_energy_cost": 2500, + "energy_increment": -250, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_voyance') * 50) + 250) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_voyance') * 50) + 1500) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 1000, + "final_casting_time": 500, + "casting_time_increment": -25, + "learn_spells": { "clair_dodge_power": 8, "clair_see_map": 12, "clair_omniscience": 20 } + }, + { + "id": "clair_dodge_power", + "type": "SPELL", + "name": "[Ψ]Combat Sense", + "description": "By gazing just a few moments into the future, you can be wherever your enemies are not attacking.", + "message": "You can see a premonition of your enemies' attacks like a ghostly image.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_clair_dodge", + "extra_effects": [ { "id": "psionic_drained_difficulty_six", "hit_self": true } ], + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "base_energy_cost": 5500, + "final_energy_cost": 2250, + "energy_increment": -145, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_dodge_power') * 1200) + 3000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_dodge_power') * 1200) + 45000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 150, + "final_casting_time": 70, + "casting_time_increment": -9, + "learn_spells": { "clair_spot_weakness": 3, "clair_ranged_enhance": 5, "clair_clear_sight": 9, "clair_voyance": 12 } + }, + { + "id": "clair_see_map", + "type": "SPELL", + "name": "[Ψ]Satellite View", + "description": "You can extend your senses over the landscape, becoming aware of every hill, building, and valley within a large area.", + "message": "You close your eyes and concentrate, and you can see the landscape spread out as though you were a bird on the wing.", + "teachable": false, + "valid_targets": [ "none" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "flags": [ "NO_HANDS", "CONCENTRATE", "SILENT", "NO_LEGS", "RANDOM_AOE" ], + "effect": "map", + "extra_effects": [ { "id": "psionic_drained_difficulty_seven", "hit_self": true } ], + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 7, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_aoe": { "math": [ "( (u_val('spell_level', 'spell: clair_see_map') * 1) + 4) * (scaling_factor(u_val('intelligence') ) )" ] }, + "max_aoe": { "math": [ "( (u_val('spell_level', 'spell: clair_see_map') * 1) + 11) * (scaling_factor(u_val('intelligence') ) )" ] }, + "base_energy_cost": 9000, + "base_casting_time": 6000, + "learn_spells": { "clair_omniscience": 12 } + }, + { + "id": "clair_clear_sight", + "type": "SPELL", + "name": "[Ψ]Clarity", + "description": "Thanks to your powers, nothing can stop you from seeing the world as it is.", + "message": "Your senses sharpen and all distractions vanish.", + "teachable": false, + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "effect": "attack", + "effect_str": "effect_clair_clear_sight", + "extra_effects": [ { "id": "psionic_drained_difficulty_eight", "hit_self": true } ], + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 8, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_clear_sight') * 1000) + 8000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_clear_sight') * 1000) + 45000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_energy_cost": 5000, + "final_energy_cost": 2000, + "energy_increment": -250, + "base_casting_time": 75, + "final_casting_time": 25, + "casting_time_increment": -3.5, + "learn_spells": { "clair_omniscience": 7 } + }, + { + "id": "clair_omniscience", + "type": "SPELL", + "name": "[Ψ]Omniscence", + "description": "Extend your senses to a supernal degree, perceiving everything within the nearby area. Every creature, every object, every blade of grass, everything. EVERYTHING.\n\nThis power is even more draining than normal.", + "message": "You can see forever.", + "teachable": false, + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "spell_class": "CLAIRSENTIENT", + "skill": "metaphysics", + "effect": "attack", + "effect_str": "effect_clair_omniscence", + "extra_effects": [ { "id": "psionic_drained_difficulty_ten", "hit_self": true } ], + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 10, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_omniscience') * 100) + 200) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: clair_omniscience') * 100) + 1000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_energy_cost": 10000, + "final_energy_cost": 7500, + "energy_increment": -250, + "base_casting_time": 75, + "final_casting_time": 25, + "casting_time_increment": -3.5, + "learn_spells": { "clair_omniscience": 7 } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/clairsentience_eoc.json b/data/Mainline_mods/Mods/MindOverMatter/powers/clairsentience_eoc.json new file mode 100644 index 000000000..68c666272 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/clairsentience_eoc.json @@ -0,0 +1,176 @@ +[ + { + "type": "mutation", + "//": "This and following are all necessary because reading_speed_multiplier is hardcoded. Redo the whole thing once it isn't.", + "id": "CLAIR_SPEED_READ", + "name": { "str": "Speed Reader" }, + "points": 1, + "description": "Your powers allow you to absorb knowledge at a greatly accelerated pace.", + "reading_speed_multiplier": 0.66, + "valid": false, + "enchantments": [ "enchant_clair_speed_read" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_SPEED_READING", + "effect": [ + { "u_add_trait": "CLAIR_SPEED_READ" }, + { + "queue_eocs": "EOC_CLAIR_SPEED_READING_REMOvE", + "time_in_future": [ + { + "math": [ + "( (u_val('spell_level', 'spell: clair_speed_reading') * 36000) + 360000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + { + "math": [ + "( (u_val('spell_level', 'spell: clair_speed_reading') * 72000) + 1080000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_SPEED_READING_REMOvE", + "effect": [ { "u_lose_trait": "CLAIR_SPEED_READ" } ] + }, + { + "type": "enchantment", + "id": "enchant_clair_speed_read", + "condition": "ALWAYS", + "has": "HELD", + "values": [ + { + "value": "READING_EXP", + "add": { + "math": [ "( ( u_val('spell_level', 'spell: clair_speed_reading') * 0.15) * (scaling_factor(u_val('intelligence') )))" ] + } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_RAD_SENSE", + "effect": [ + { + "run_eoc_selector": [ "EOC_CLAIR_RAD_SENSE_SELF", "EOC_CLAIR_RAD_SENSE_OUTSIDE", "EOC_PORTAL_NULL_AWAKENING" ], + "names": [ "Check yourself", "Check your surroundings", "Nevermind" ], + "keys": [ "1", "2", "3" ], + "descriptions": [ + "Cast your subtle senses over yourself, seeing if you are contaminated with radiation.", + "Open your inner eye, searching your environment for dangerous radiation.", + "Do nothing for now." + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_RAD_SENSE_SELF", + "effect": [ { "u_cast_spell": { "id": "clair_sense_rads_self" } } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_RAD_SENSE_OUTSIDE", + "effect": [ + { "u_cast_spell": { "id": "clair_sense_rads_outside" } }, + { "u_cast_spell": { "id": "clair_sense_rads_outside_spawn_item" } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_RAD_SENSE_OUTSIDE_RECURRING", + "condition": { "u_has_effect": "effect_clair_sense_rads_self" }, + "recurrence": 10, + "effect": [ + { "u_remove_item_with": "clair_sense_rad_item" }, + { "u_cast_spell": { "id": "clair_sense_rads_outside_spawn_item" } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CLAIR_RAD_SENSE_SELF_REPORT", + "condition": { "math": [ "u_val('rad')", "<=", "0" ] }, + "effect": [ + { + "u_message": "Turning your senses on yourself, you see none of the insidious glow typical of radiation. You are in the clear, for now.", + "type": "good" + } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_CLAIR_RAD_SENSE_SELF_REPORT_2", + "condition": { "and": [ { "math": [ "u_val('rad')", ">", "0" ] }, { "math": [ "u_val('rad')", "<=", "50" ] } ] }, + "effect": [ + { + "u_message": "Turning your senses on yourself, you see see a few dull glimmers, hidden deep in your flesh. The damage is minimal for now, but you had best not let it fester.", + "type": "mixed" + } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_CLAIR_RAD_SENSE_SELF_REPORT_3", + "condition": { "and": [ { "math": [ "u_val('rad')", ">=", "51" ] }, { "math": [ "u_val('rad')", "<=", "100" ] } ] }, + "effect": [ + { + "u_message": "Turning your senses on yourself, you see a dull glow along your core. Your radiation is climbing, though it's still not in the danger zone.", + "type": "bad" + } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_CLAIR_RAD_SENSE_SELF_REPORT_4", + "condition": { "and": [ { "math": [ "u_val('rad')", ">=", "101" ] }, { "math": [ "u_val('rad')", "<=", "200" ] } ] }, + "effect": [ + { + "u_message": "Turning your senses on yourself, you see a faint glow spreading outward from your core to your limbs. You're getting closer to dangerous levels--you should deal with it before it gets worse.", + "type": "bad" + } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_CLAIR_RAD_SENSE_SELF_REPORT_5", + "condition": { "and": [ { "math": [ "u_val('rad')", ">=", "201" ] }, { "math": [ "u_val('rad')", "<=", "500" ] } ] }, + "effect": [ + { + "u_message": "Turning your senses on yourself, you see a glow along your bones. You had best seek treatment, and soon.", + "type": "bad", + "popup": true + } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_CLAIR_RAD_SENSE_SELF_REPORT_6", + "condition": { "math": [ "u_val('rad')", ">=", "501" ] }, + "effect": [ + { + "u_message": "Turning your senses on yourself, you see a steady glow all along your muscles and bones. You are in real trouble if you don't deal with your radiation immediately.", + "type": "bad", + "popup": true + } + ] + } + ] + } + } + ] + } + } + ] + } + } + ] + } + } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/drain_spells.json b/data/Mainline_mods/Mods/MindOverMatter/powers/drain_spells.json new file mode 100644 index 000000000..84943d744 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/drain_spells.json @@ -0,0 +1,250 @@ +[ + { + "id": "psionic_drained_spell", + "type": "SPELL", + "name": { "str": "Psionic Drain" }, + "valid_targets": [ "self" ], + "description": "Applies Drained to you.", + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "NO_FAIL" ], + "message": "", + "effect": "effect_on_condition", + "effect_str": "EOC_CAUSE_PSIONIC_DRAIN", + "shape": "blast" + }, + { + "type": "effect_on_condition", + "id": "EOC_CAUSE_PSIONIC_DRAIN", + "condition": { "u_has_effect": "effect_noetic_resilience" }, + "effect": [ + { "u_message": "You feel a sudden fatigue as your powers are unleashed.", "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,3 )" ] } + ], + "false_effect": [ + { "u_message": "You feel a sudden fatigue as your powers are unleashed.", "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 1,5 )" ] } + ] + }, + { + "id": "psionic_drained_difficulty_one", + "type": "SPELL", + "name": { "str": "Five Percent Drained Chance" }, + "valid_targets": [ "self" ], + "description": "5% chance to get drained.", + "flags": [ "SILENT", "WONDER", "NO_EXPLOSION_SFX" ], + "message": "", + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true } + ] + }, + { + "id": "psionic_drained_difficulty_two", + "type": "SPELL", + "name": { "str": "Six point six Percent Drained Chance" }, + "valid_targets": [ "self" ], + "description": "6.6% chance to get drained.", + "flags": [ "SILENT", "WONDER", "NO_EXPLOSION_SFX" ], + "message": "", + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true } + ] + }, + { + "id": "psionic_drained_difficulty_three", + "type": "SPELL", + "name": { "str": "Eight Point Three Percent Drained Chance" }, + "valid_targets": [ "self" ], + "description": "8.3% chance to get drained.", + "flags": [ "SILENT", "WONDER", "NO_EXPLOSION_SFX" ], + "message": "", + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true } + ] + }, + { + "id": "psionic_drained_difficulty_four", + "type": "SPELL", + "name": { "str": "Eleven Percent Drained Chance" }, + "valid_targets": [ "self" ], + "description": "11% chance to get drained.", + "flags": [ "SILENT", "WONDER", "NO_EXPLOSION_SFX" ], + "message": "", + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true } + ] + }, + { + "id": "psionic_drained_difficulty_five", + "type": "SPELL", + "name": { "str": "Foirteen Percent Drained Chance" }, + "valid_targets": [ "self" ], + "description": "14% chance to get drained.", + "flags": [ "SILENT", "WONDER", "NO_EXPLOSION_SFX" ], + "message": "", + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true } + ] + }, + { + "id": "psionic_drained_difficulty_six", + "type": "SPELL", + "name": { "str": "Twenty Percent Drained Chance" }, + "valid_targets": [ "self" ], + "description": "20% chance to get drained.", + "flags": [ "SILENT", "WONDER", "NO_EXPLOSION_SFX" ], + "message": "", + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true } + ] + }, + { + "id": "psionic_drained_difficulty_seven", + "type": "SPELL", + "name": { "str": "Thirty-three Percent Drained Chance" }, + "valid_targets": [ "self" ], + "description": "33% chance to get drained.", + "flags": [ "SILENT", "WONDER", "NO_EXPLOSION_SFX" ], + "message": "", + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "death_fakespell" }, + { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true } + ] + }, + { + "id": "psionic_drained_difficulty_eight", + "type": "SPELL", + "name": { "str": "Fifty Percent Drained Chance" }, + "valid_targets": [ "self" ], + "description": "50% chance to get drained.", + "flags": [ "SILENT", "WONDER", "NO_EXPLOSION_SFX" ], + "message": "", + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ { "id": "death_fakespell" }, { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true } ] + }, + { + "id": "psionic_drained_difficulty_nine", + "type": "SPELL", + "name": { "str": "Seventy-five Percent Drained Chance" }, + "valid_targets": [ "self" ], + "description": "75% chance to get drained.", + "flags": [ "SILENT", "WONDER", "NO_EXPLOSION_SFX" ], + "message": "", + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ + { "id": "death_fakespell" }, + { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true }, + { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true }, + { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true } + ] + }, + { + "id": "psionic_drained_difficulty_ten", + "type": "SPELL", + "name": { "str": "One hundred Percent Drained Chance" }, + "valid_targets": [ "self" ], + "description": "100% chance to get drained.", + "flags": [ "SILENT", "WONDER", "NO_EXPLOSION_SFX" ], + "message": "", + "shape": "blast", + "effect": "noise", + "min_damage": 1, + "max_damage": 1, + "extra_effects": [ { "id": "psionic_drained_spell", "max_level": 0, "hit_self": true } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/item_spells.json b/data/Mainline_mods/Mods/MindOverMatter/powers/item_spells.json new file mode 100644 index 000000000..6d2eb6da4 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/item_spells.json @@ -0,0 +1,21 @@ +[ + { + "id": "grenade_inferno_explosion", + "type": "SPELL", + "name": "[Ψ]Inferno Grenade Explosion", + "description": "The explosion created by an inferno grenade. If you cast this yourself you're 100% going to die.", + "valid_targets": [ "hostile", "ground" ], + "skill": "metaphysics", + "flags": [ "LOUD", "NO_PROJECTILE", "IGNITE_FLAMMABLE", "RANDOM_DAMAGE", "NO_HANDS", "RANDOM_AOE", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "damage_type": "heat", + "difficulty": 1, + "max_level": 1, + "min_damage": 50, + "max_damage": 150, + "min_range": 0, + "min_aoe": 6, + "max_aoe": 9 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/pyrokinesis.json b/data/Mainline_mods/Mods/MindOverMatter/powers/pyrokinesis.json new file mode 100644 index 000000000..30f606309 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/pyrokinesis.json @@ -0,0 +1,627 @@ +[ + { + "id": "pyrokinetic_eruption", + "type": "SPELL", + "name": "[Ψ]Fountain of Flames", + "description": "Cause a burst of flames at the target location.", + "message": "You summon flames!", + "teachable": false, + "valid_targets": [ "hostile", "ground", "ally" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "LOUD", "NO_PROJECTILE", "IGNITE_FLAMMABLE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "extra_effects": [ { "id": "psionic_drained_difficulty_two", "hit_self": true } ], + "shape": "blast", + "damage_type": "heat", + "difficulty": 2, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_eruption') * 2) + 6) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_eruption') * 3) + 26) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_eruption') / 10) + 1) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 5, + "field_id": "fd_fire", + "min_field_intensity": 1, + "max_field_intensity": 2, + "field_chance": 2, + "energy_source": "STAMINA", + "base_energy_cost": 1750, + "final_energy_cost": 600, + "energy_increment": -85, + "base_casting_time": 100, + "final_casting_time": 35, + "casting_time_increment": -4, + "sound_type": "combat", + "sound_description": "a crackle!", + "learn_spells": { + "pyrokinetic_call_flames": 5, + "pyrokinetic_flamethrower": 7, + "pyrokinetic_flash": 9, + "pyrokinetic_thermogenesis": 12, + "pyrokinetic_blast": 15, + "pyrokinetic_cloak": 17 + } + }, + { + "id": "pyrokinetic_flash", + "type": "SPELL", + "name": "[Ψ]Brilliant Flash", + "description": "By strongly exciting the air at a particular point, you produce a burst of light.", + "message": "The air erupts into an eye-searing flash!", + "teachable": false, + "valid_targets": [ "hostile", "ground" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_PROJECTILE", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_pyrokinetic_flash", + "extra_effects": [ { "id": "psionic_drained_difficulty_one", "hit_self": true } ], + "shape": "blast", + "affected_body_parts": [ "eyes" ], + "difficulty": 1, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_flash') * 1.5) + 3 ) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 75, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_flash') * 0.25) + 1) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_aoe": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_flash') * 0.25) + 4) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_flash') * 150) + 100) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_flash') * 150) + 800) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 1750, + "final_energy_cost": 450, + "energy_increment": -80, + "base_casting_time": 150, + "final_casting_time": 50, + "casting_time_increment": -8, + "learn_spells": { "pyrokinetic_cloak": 7, "pyrokinetic_thermogenesis": 10, "pyrokinetic_blast": 15 } + }, + { + "id": "pyrokinetic_call_flames", + "type": "SPELL", + "name": "[Ψ]Banked Flames", + "description": "Call up flames over your outstretched hand. You can use them to heat up food, boil water, start fires, or anything else fire can accomplish.", + "message": "", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "PYROKINETIC", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_SPELL_PYROKIN_CALL_FLAME_SELECTOR", + "extra_effects": [ { "id": "psionic_drained_difficulty_three", "hit_self": true } ], + "shape": "blast", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 2500, + "final_energy_cost": 800, + "energy_increment": -150, + "base_casting_time": 250, + "final_casting_time": 75, + "casting_time_increment": -10, + "learn_spells": { "pyrokinetic_lance": 5, "pyrokinetic_thermogenesis": 6, "pyrokinetic_blast": 8, "pyrokinetic_aura": 12 } + }, + { + "id": "pyrokin_call_flame_short_term", + "type": "SPELL", + "name": "[Ψ]Call Flame Short Spell", + "description": "The spell that summons the flame for Call Flame. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "pyrokinetic_fire_tool", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "((u_val('spell_level', 'spell: pyrokinetic_call_flames') * 1500) + 30000)" ] }, + "max_duration": { "math": [ "((u_val('spell_level', 'spell: pyrokinetic_call_flames') * 3000) + 60000)" ] } + }, + { + "id": "pyrokin_call_flame_long_term", + "type": "SPELL", + "name": "[Ψ]Call Flame Long Spell", + "description": "The spell that summons the flame for Call Flame but for longer. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "pyrokinetic_fire_tool", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "((u_val('spell_level', 'spell: pyrokinetic_call_flames') * 6000) + 360000)" ] }, + "max_duration": { "math": [ "((u_val('spell_level', 'spell: pyrokinetic_call_flames') * 6000) + 540000)" ] } + }, + { + "id": "pyrokinetic_quell_flames", + "type": "SPELL", + "name": "[Ψ]Quell Fire", + "description": "As you can create fire, you can also extinguish it.", + "message": "You disperse the flames harmlessly.", + "teachable": false, + "valid_targets": [ "ground" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "IGNORE_WALLS", "NO_EXPLOSION_SFX" ], + "effect": "ter_transform", + "effect_str": "ter_pyrokin_quell_fire", + "extra_effects": [ { "id": "psionic_drained_difficulty_three", "hit_self": true } ], + "shape": "blast", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_quell_flames') * 0.8) + 5) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 70, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_quell_flames') * 0.5) + 1) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_aoe": 50, + "energy_source": "STAMINA", + "base_energy_cost": 2000, + "final_energy_cost": 500, + "energy_increment": -150, + "base_casting_time": 125, + "final_casting_time": 50, + "casting_time_increment": -7.5, + "learn_spells": { "pyrokinetic_call_flames": 5, "pyrokinetic_cloak": 7, "pyrokinetic_aura": 15, "pyrokinetic_flame_immunity": 20 } + }, + { + "id": "pyrokinetic_cloak", + "type": "SPELL", + "name": "[Ψ]Cloak of Warmth", + "description": "Control the temperature of the nearby air, warming you and protecting you against flames.", + "message": "You heat the nearby air to a comfortable temperature.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_pyrokinetic_cloak", + "extra_effects": [ { "id": "psionic_drained_difficulty_four", "hit_self": true } ], + "shape": "blast", + "difficulty": 4, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_cloak') * 2000) + 9000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_cloak') * 2000) + 180000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 4500, + "final_energy_cost": 1550, + "energy_increment": -200, + "base_casting_time": 200, + "final_casting_time": 75, + "casting_time_increment": -11, + "learn_spells": { "pyrokinetic_thermogenesis": 8, "pyrokinetic_aura": 9, "pyrokinetic_eruption": 12, "pyrokinetic_flame_immunity": 15 } + }, + { + "id": "pyrokinetic_flamethrower", + "type": "SPELL", + "name": "[Ψ]Flamethrower", + "description": "Spray fire in a cone in front of you.", + "message": "You hurl a spray of flames.", + "teachable": false, + "valid_targets": [ "hostile", "ground", "ally" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "LOUD", "NO_PROJECTILE", "IGNITE_FLAMMABLE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "extra_effects": [ { "id": "psionic_drained_difficulty_five", "hit_self": true } ], + "shape": "cone", + "damage_type": "heat", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_flamethrower') * 1.5) + 15) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_damage": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_flamethrower') * 2.5) + 40) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_flamethrower') * 0.2) + 3) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 20, + "range_increment": 0.2, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_flamethrower') * 3) + 27) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_aoe": 180, + "field_id": "fd_fire", + "min_field_intensity": 1, + "max_field_intensity": 2, + "field_chance": 5, + "energy_source": "STAMINA", + "base_energy_cost": 3500, + "final_energy_cost": 1200, + "energy_increment": -150, + "base_casting_time": 100, + "final_casting_time": 35, + "casting_time_increment": -6, + "sound_type": "combat", + "sound_description": "a crackle!", + "learn_spells": { "pyrokinetic_lance": 6, "pyrokinetic_blast": 9, "pyrokinetic_aura": 12, "pyrokinetic_aoe_blast": 16 } + }, + { + "id": "pyrokinetic_lance", + "type": "SPELL", + "name": "[Ψ]Incandescent Lance", + "description": "Concentrate heat into a thin, searing beam capable of cutting through solid metal or welding it together.", + "message": "A searing line of flame springs forth from your finger.", + "teachable": false, + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "spawn_item", + "effect_str": "pyrokinetic_torch_weld", + "extra_effects": [ { "id": "psionic_drained_difficulty_five", "hit_self": true } ], + "shape": "blast", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 1, + "max_damage": 1, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_lance') * 12000) + 360000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_lance') * 36000) + 720000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 4000, + "final_energy_cost": 2000, + "energy_increment": -125, + "base_casting_time": 250, + "final_casting_time": 125, + "casting_time_increment": -6 + }, + { + "id": "pyrokinetic_thermogenesis", + "type": "SPELL", + "name": "[Ψ]Thermogenesis", + "description": "Heat the air nearby and maintain it, taking off the chill or turning winter to warm summer.", + "message": "", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "PYROKINETIC", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_SPELL_PYROKIN_THERMOGENESIS_SELECTOR", + "//": "No drain on the spell, it's all in the selector.", + "shape": "blast", + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_thermogenesis') * 15000) + 360000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_thermogenesis') * 30000) + 720000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 8000, + "final_energy_cost": 4000, + "energy_increment": -200, + "base_casting_time": 1500, + "final_casting_time": 1200, + "casting_time_increment": -10, + "learn_spells": { "pyrokinetic_aura": 4, "pyrokinetic_lance": 6, "pyrokinetic_blast": 8 } + }, + { + "id": "pyrokin_summon_thermogenesis_1", + "type": "SPELL", + "name": "[Ψ]Thermogenesis #1", + "description": "The spell to summon a thermogenesis node. It's a bug if you have it directly.", + "valid_targets": [ "ground" ], + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "summon", + "effect_str": "mon_pyrokin_hotair_1", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_range": 3, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_thermogenesis') * 15000) + 360000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_thermogenesis') * 30000) + 720000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "pyrokin_summon_thermogenesis_2", + "type": "SPELL", + "name": "[Ψ]Thermogenesis #2", + "description": "The spell to summon a thermogenesis node. It's a bug if you have it directly.", + "valid_targets": [ "ground" ], + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "summon", + "effect_str": "mon_pyrokin_hotair_2", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_range": 3, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_thermogenesis') * 15000) + 360000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_thermogenesis') * 30000) + 720000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "pyrokin_summon_thermogenesis_3", + "type": "SPELL", + "name": "[Ψ]Thermogenesis #1", + "description": "The spell to summon a thermogenesis node. It's a bug if you have it directly.", + "valid_targets": [ "ground" ], + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "summon", + "effect_str": "mon_pyrokin_hotair_3", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_range": 3, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_thermogenesis') * 15000) + 360000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_thermogenesis') * 30000) + 720000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "pyrokin_summon_thermogenesis_4", + "type": "SPELL", + "name": "[Ψ]Thermogenesis #1", + "description": "The spell to summon a thermogenesis node. It's a bug if you have it directly.", + "valid_targets": [ "ground" ], + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "summon", + "effect_str": "mon_pyrokin_hotair_4", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_range": 3, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_thermogenesis') * 15000) + 360000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_thermogenesis') * 30000) + 720000) * (scaling_factor(u_val('intelligence') ) )" + ] + } + }, + { + "id": "pyrokin_banish_thermogenesis", + "type": "SPELL", + "name": "[Ψ]Banish Thermogenesis", + "description": "The spell to banish existing thermogenesis nodes. It's a bug if you have it directly.", + "valid_targets": [ "ally" ], + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "NO_PROJECTILE", "IGNORE_WALLS" ], + "effect": "attack", + "shape": "blast", + "damage_type": "pure", + "min_damage": 100, + "max_damage": 100, + "min_aoe": 60, + "max_aoe": 60, + "targeted_monster_ids": [ "mon_pyrokin_hotair_1", "mon_pyrokin_hotair_2", "mon_pyrokin_hotair_3", "mon_pyrokin_hotair_4" ] + }, + { + "id": "pyrokinetic_aura", + "type": "SPELL", + "name": "[Ψ]Blazing Aura", + "description": "Surround yourself with a cloud of flames, damaging anyone in melee combat with you. The flames also produce light.", + "message": "You set the air around you ablaze.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_pyrokinetic_aura", + "extra_effects": [ { "id": "psionic_drained_difficulty_six", "hit_self": true } ], + "shape": "blast", + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_aura') * 600) + 4500) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_aura') * 600) + 30000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 5500, + "final_energy_cost": 2500, + "energy_increment": -225, + "base_casting_time": 125, + "final_casting_time": 50, + "casting_time_increment": -6.5, + "learn_spells": { "pyrokinetic_eruption": 5, "pyrokinetic_thermogenesis": 6, "pyrokinetic_flame_immunity": 15 } + }, + { + "id": "pyrokinetic_flame_immunity", + "type": "SPELL", + "name": "[Ψ]Flameshield", + "description": "Your power over fire is such that you can now step directly into raging flames and walk through them unharmed, feeling no more than a pleasant warmth.", + "message": "The nearby air loses any heat.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_pyrokinetic_flame_immunity", + "extra_effects": [ { "id": "psionic_drained_difficulty_seven", "hit_self": true } ], + "shape": "blast", + "difficulty": 7, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_flame_immunity') * 600) + 4500) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: pyrokinetic_flame_immunity') * 600) + 30000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 6750, + "final_energy_cost": 3500, + "energy_increment": -255, + "base_casting_time": 150, + "final_casting_time": 75, + "casting_time_increment": -6.5, + "learn_spells": { "pyrokinetic_thermogenesis": 6, "pyrokinetic_aoe_blast": 12 } + }, + { + "id": "pyrokinetic_blast", + "type": "SPELL", + "name": "[Ψ]Conflagration", + "description": "Create an expanding fireball that catches multiple targets in its wake.", + "message": "You call forth a raging inferno!", + "teachable": false, + "valid_targets": [ "hostile", "ground", "ally" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "LOUD", "NO_PROJECTILE", "IGNITE_FLAMMABLE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "extra_effects": [ { "id": "psionic_drained_difficulty_seven", "hit_self": true } ], + "shape": "blast", + "damage_type": "heat", + "difficulty": 7, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_blast') * 3) + 37) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_blast') * 5) + 115) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_blast') * 1.2) + 4) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_blast') * 0.4) + 2) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_aoe": 20, + "field_id": "fd_fire", + "min_field_intensity": 1, + "max_field_intensity": 2, + "field_chance": 4, + "energy_source": "STAMINA", + "base_energy_cost": 7500, + "final_energy_cost": 3500, + "energy_increment": -250, + "base_casting_time": 150, + "final_casting_time": 35, + "casting_time_increment": -9, + "sound_type": "combat", + "sound_description": "a crackle!", + "learn_spells": { "pyrokinetic_aoe_blast": 7 } + }, + { + "id": "pyrokinetic_aoe_blast", + "type": "SPELL", + "name": "[Ψ]Hellfire", + "description": "Send forth raging flames and turn the ground around you into an inferno. You will be briefly immune to the aftereffects of your own power as well.", + "message": "The ground around you explodes in flames!", + "teachable": false, + "valid_targets": [ "hostile", "ground", "ally" ], + "spell_class": "PYROKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "LOUD", "NO_PROJECTILE", "IGNITE_FLAMMABLE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "extra_effects": [ + { "id": "psionic_drained_difficulty_nine", "hit_self": true }, + { "id": "pyrokinetic_aoe_blast_immunity", "hit_self": true } + ], + "shape": "blast", + "damage_type": "heat", + "difficulty": 9, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_aoe_blast') * 5) + 40) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_aoe_blast') * 8) + 120) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: pyrokinetic_aoe_blast') * 0.9) + 4) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_aoe": 30, + "field_id": "fd_fire", + "min_field_intensity": 2, + "max_field_intensity": 2, + "field_intensity_increment": 1, + "field_intensity_variance": 1, + "field_chance": 2, + "energy_source": "STAMINA", + "base_energy_cost": 9000, + "final_energy_cost": 5000, + "energy_increment": -300, + "base_casting_time": 175, + "final_casting_time": 55, + "casting_time_increment": -8, + "sound_type": "combat", + "sound_description": "a crackle!" + }, + { + "id": "pyrokinetic_aoe_blast_immunity", + "type": "SPELL", + "name": "[Ψ]Hellfire Immunity spell", + "description": "This prevents the pyrokinetic from dying in heat and flames after using Hellfire. It's a bug if you have it directly.", + "message": "", + "teachable": false, + "valid_targets": [ "self" ], + "max_level": { "math": [ "int_to_level(1)" ] }, + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_pyrokinetic_flame_immunity", + "shape": "blast", + "min_duration": 2000, + "max_duration": 4000, + "duration_increment": 150 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/pyrokinesis_eoc.json b/data/Mainline_mods/Mods/MindOverMatter/powers/pyrokinesis_eoc.json new file mode 100644 index 000000000..37ff4fbfe --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/pyrokinesis_eoc.json @@ -0,0 +1,123 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_SPELL_PYROKIN_CALL_FLAME_SELECTOR", + "effect": [ + { + "run_eoc_selector": [ "EOC_SPELL_PYROKIN_CALL_FLAME_SHORT", "EOC_SPELL_PYROKIN_CALL_FLAME_LONG", "EOC_PORTAL_NULL_AWAKENING" ], + "names": [ "Banked Flame (short-term)", "Banked Flame (long-term)", "Nevermind" ], + "keys": [ "1", "2", "3" ], + "descriptions": [ + "Summon a banked flame for a short period of time, perhaps 5-10 minutes.", + "Summon a banked flame for a longer period of time, over an hour. This is of necessity more draining than summoning it for a short period of time.", + "Do nothing for now." + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SPELL_PYROKIN_CALL_FLAME_SHORT", + "effect": [ + { "u_remove_item_with": "pyrokinetic_fire_tool" }, + { "u_cast_spell": { "id": "pyrokin_call_flame_short_term" } }, + { "u_message": "Flames begin dancing in the air above your hand", "type": "neutral" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,1 )" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SPELL_PYROKIN_CALL_FLAME_LONG", + "effect": [ + { "u_remove_item_with": "pyrokinetic_fire_tool" }, + { "u_cast_spell": { "id": "pyrokin_call_flame_long_term" } }, + { "u_message": "Flames begin dancing in the air above your hand", "type": "neutral" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 2,5 )" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SPELL_PYROKIN_THERMOGENESIS_SELECTOR", + "effect": [ + { + "run_eoc_selector": [ + "EOC_SPELL_PYROKIN_SUMMON_HEAT_1", + "EOC_SPELL_PYROKIN_SUMMON_HEAT_2", + "EOC_SPELL_PYROKIN_SUMMON_HEAT_3", + "EOC_SPELL_PYROKIN_SUMMON_HEAT_4", + "EOC_SPELL_PYROKIN_BANISH_HEAT", + "EOC_PORTAL_NULL_AWAKENING" + ], + "names": [ + "Minor thermogenesis", + "Lesser thermogenesis", + "Greater thermogenesis", + "Major thermogenesis", + "Banish all thermogenesis nodes", + "Nevermind" + ], + "keys": [ "1", "2", "3", "4", "5", "6" ], + "descriptions": [ + "Raise the temperature a few degrees.", + "Raise the temperature from a summer night to a summer day.", + "Raise the temperature from winter to early fall.", + "Raise the temperature from winter to summer.", + "Stop all current thermogenesis.", + "Do nothing for now." + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SPELL_PYROKIN_SUMMON_HEAT_1", + "effect": [ + { + "u_cast_spell": { "id": "pyrokin_summon_thermogenesis_1", "message": "The air nearby grows slightly warmer." }, + "targeted": true + }, + { "u_cast_spell": { "id": "psionic_drained_difficulty_two", "hit_self": true } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SPELL_PYROKIN_SUMMON_HEAT_2", + "effect": [ + { + "u_cast_spell": { "id": "pyrokin_summon_thermogenesis_2", "message": "Warm air swirls from the spot." }, + "targeted": true + }, + { "u_cast_spell": { "id": "psionic_drained_difficulty_four", "hit_self": true } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SPELL_PYROKIN_SUMMON_HEAT_3", + "effect": [ + { + "u_cast_spell": { "id": "pyrokin_summon_thermogenesis_3", "message": "Hot air swirls from the spot." }, + "targeted": true + }, + { "u_cast_spell": { "id": "psionic_drained_difficulty_six", "hit_self": true } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SPELL_PYROKIN_SUMMON_HEAT_4", + "effect": [ + { + "u_cast_spell": { "id": "pyrokin_summon_thermogenesis_4", "message": "The air grows as hot as a summer day." }, + "targeted": true + }, + { "u_cast_spell": { "id": "psionic_drained_difficulty_eight", "hit_self": true } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SPELL_PYROKIN_BANISH_HEAT", + "effect": [ + { "u_cast_spell": { "id": "pyrokin_banish_thermogenesis" } }, + { "u_message": "The heated air you have been maintaining returns to normal." } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/telekinesis.json b/data/Mainline_mods/Mods/MindOverMatter/powers/telekinesis.json new file mode 100644 index 000000000..86bb6c36b --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/telekinesis.json @@ -0,0 +1,514 @@ +[ + { + "id": "telekinetic_pull", + "type": "SPELL", + "name": "[Ψ]Far Hand", + "description": "Pull a target or set of items to you.", + "message": "You reach out and pull your target to you.", + "teachable": false, + "valid_targets": [ "ally", "hostile", "item", "ground" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "directed_push", + "extra_effects": [ { "id": "psionic_drained_difficulty_one", "hit_self": true } ], + "shape": "blast", + "difficulty": 1, + "max_level": { "math": [ "int_to_level(1)" ] }, + "damage_type": "psi_telekinetic_damage", + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_pull') * -1.5) - 1) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_pull') * -1.5) - 6) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_pull') * 1.2) + 3) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 40, + "energy_source": "STAMINA", + "base_energy_cost": 1500, + "final_energy_cost": 250, + "energy_increment": -80, + "base_casting_time": 50, + "final_casting_time": 10, + "casting_time_increment": -4, + "learn_spells": { "telekinetic_hammer": 7, "telekinetic_shield": 15 } + }, + { + "id": "telekinetic_push", + "type": "SPELL", + "name": "[Ψ]Force Shove", + "description": "Shove something away with a burst of psionic force.", + "message": "You hurl your target away.", + "teachable": false, + "valid_targets": [ "ally", "hostile", "item", "ground" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "directed_push", + "extra_effects": [ { "id": "psionic_drained_difficulty_two", "hit_self": true } ], + "shape": "blast", + "difficulty": 2, + "max_level": { "math": [ "int_to_level(1)" ] }, + "damage_type": "psi_telekinetic_damage", + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_push') * 0.25) + 2) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_push') * 0.25) + 6) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_push') * 1.2) + 1) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 40, + "energy_source": "STAMINA", + "base_energy_cost": 2500, + "final_energy_cost": 450, + "energy_increment": -80, + "base_casting_time": 50, + "final_casting_time": 10, + "casting_time_increment": -4, + "learn_spells": { "telekinetic_wave": 7, "telekinetic_hammer": 10, "telekinetic_strength": 13, "telekinetic_explosion": 15 } + }, + { + "id": "telekinetic_momentum", + "type": "SPELL", + "name": "[Ψ]Momentum Alteration", + "description": "Edit the momentum of yourself and nearby objects to your benefit, slowing damaging force and slightly increasing your speed.", + "message": "The air around you feels more yielding.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_telekinetic_momentum", + "extra_effects": [ { "id": "psionic_drained_difficulty_three", "hit_self": true } ], + "shape": "blast", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_momentum') * 1000) + 9000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: telekinetic_momentum') * 1000) + 60000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 3000, + "final_energy_cost": 1500, + "energy_increment": -125, + "base_casting_time": 300, + "final_casting_time": 125, + "casting_time_increment": -7.5, + "learn_spells": { + "telekinetic_slowfall": 5, + "telekinetic_wave": 7, + "telekinetic_strength": 10, + "telekinetic_shield": 15, + "telekinetic_vehicle_lift": 17 + } + }, + { + "id": "telekinetic_slowfall", + "type": "SPELL", + "name": "[Ψ]Slowfall", + "description": "Counteract the pull of gravity with telekinetic force, greatly reducing or even eliminating damage from falling and becoming much more buoyant.", + "message": "You feel lighter.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_telekinetic_slowfall", + "extra_effects": [ { "id": "psionic_drained_difficulty_three", "hit_self": true } ], + "shape": "blast", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_slowfall') * 100) + 300) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_slowfall') * 200) + 1500) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 1750, + "final_energy_cost": 650, + "energy_increment": -85, + "base_casting_time": 85, + "final_casting_time": 25, + "casting_time_increment": -4.5, + "learn_spells": { "telekinetic_vehicle_lift": 7, "telekinetic_shield": 11, "telekinetic_levitation": 15 } + }, + { + "id": "telekinetic_wave", + "type": "SPELL", + "name": "[Ψ]Wave of Force", + "description": "Unleash a telekinetic wave around you that indiscriminately knocks everything back.", + "message": "You knock everything nearby backwards!", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "NO_HANDS", "NO_LEGS", "WONDER" ], + "effect": "attack", + "extra_effects": [ + { "id": "telekinetic_wavepush", "hit_self": false, "max_level": 10 }, + { "id": "psionic_drained_difficulty_four", "hit_self": true } + ], + "shape": "blast", + "difficulty": 4, + "max_level": { "math": [ "int_to_level(1)" ] }, + "damage_type": "biological", + "min_damage": 12, + "max_damage": 12, + "energy_source": "STAMINA", + "base_energy_cost": 2500, + "final_energy_cost": 750, + "energy_increment": -175, + "base_casting_time": 50, + "final_casting_time": 10, + "casting_time_increment": -4, + "learn_spells": { + "telekinetic_strength": 3, + "telekinetic_shield": 9, + "telekinetic_hammer": 11, + "telekinetic_explosion": 12, + "telekinetic_aegis": 16 + } + }, + { + "id": "telekinetic_wavepush", + "type": "SPELL", + "name": "[Ψ]Telekinetic wave Push", + "description": "Part of Wave of Force. If you see this it's a bug.", + "message": "", + "valid_targets": [ "ally", "hostile", "item" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS", "RANDOM_TARGET", "NO_EXPLOSION_SFX" ], + "effect": "directed_push", + "shape": "blast", + "difficulty": 1, + "damage_type": "psi_telekinetic_damage", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_wave') * 0.25) + 2) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_wave') * 0.25) + 6) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": 1, + "max_range": 1, + "energy_source": "STAMINA", + "base_energy_cost": 1000, + "final_energy_cost": 50, + "energy_increment": -158.333333, + "base_casting_time": 50, + "final_casting_time": 10, + "casting_time_increment": -6.666667 + }, + { + "id": "telekinetic_strength", + "type": "SPELL", + "name": "[Ψ]Enhance Strength", + "description": "Focus your powers to allow you move much heavier objects and smash through walls. The concentration required means you will be unable to engage in combat with any real aptitude while concentrating.\n\n[(d)rop the Enhanced Strength to stop concentrating and regain your combat ability]", + "message": "You concentrate and prepare to lift something heavy.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION", "EXTRA_EFFECTS_FIRST" ], + "effect": "spawn_item", + "effect_str": "telekin_ritual_summon_strength_item", + "extra_effects": [ + { "id": "telekinetic_strength_remove_previous", "hit_self": true }, + { "id": "psionic_drained_difficulty_five", "hit_self": true } + ], + "shape": "blast", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 1, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_strength') * 3000) * (scaling_factor(u_val('intelligence') ) ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_strength') * 10000) * (scaling_factor(u_val('intelligence') ) ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 4000, + "final_energy_cost": 2000, + "energy_increment": -150, + "base_casting_time": 1500, + "final_casting_time": 200, + "casting_time_increment": -86, + "learn_spells": { "telekinetic_vehicle_lift": 4, "telekinetic_shield": 8 } + }, + { + "id": "telekinetic_strength_remove_previous", + "type": "SPELL", + "name": "[Ψ]Enhance Strength Remove Previous", + "description": "The check to make sure you can't stack multiple Enhance Strengths. It's a bug if you have it.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_TELEKIN_REMOVE_ENHANCE_STRENGTH", + "shape": "blast" + }, + { + "id": "telekinetic_hammer", + "type": "SPELL", + "name": "[Ψ]Mindhammer", + "description": "Smash a single target or small area with a fist of telekinetic force.", + "message": "You smash your target with a fist of force.", + "teachable": false, + "valid_targets": [ "hostile", "ground" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "NO_PROJECTILE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "extra_effects": [ + { "id": "tele_mindhammer_bash", "hit_self": false, "max_level": 20 }, + { "id": "psionic_drained_difficulty_five", "hit_self": true } + ], + "effect": "attack", + "shape": "blast", + "damage_type": "psi_telekinetic_damage", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_hammer') * 1.5) + 18) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_hammer') * 1.5) + 73) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_hammer') * 1.2) + 3) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 70, + "energy_source": "STAMINA", + "base_energy_cost": 3500, + "final_energy_cost": 850, + "energy_increment": -175, + "base_casting_time": 50, + "final_casting_time": 25, + "casting_time_increment": -1.5, + "sound_type": "combat", + "sound_description": "a heavy thud!", + "learn_spells": { "telekinetic_explosion": 9, "telekinetic_shield": 12 } + }, + { + "id": "tele_mindhammer_bash", + "type": "SPELL", + "name": "Mindhammer Ground damage", + "description": "Damages ground when you use Mindhammer. If you have this you debugged it in.", + "valid_targets": [ "ground" ], + "spell_class": "TELEKINETIC", + "flags": [ "RANDOM_DAMAGE", "IGNORE_WALLS", "NO_PROJECTILE" ], + "effect": "bash", + "shape": "blast", + "damage_type": "bash", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_hammer') * 1.5) + 18) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_hammer') * 2) + 73) * (scaling_factor(u_val('intelligence') ) )" ] + } + }, + { + "id": "telekinetic_vehicle_lift", + "type": "SPELL", + "name": "[Ψ]Lift Vehicle", + "description": "Focus your powers to raise a vehicle just enough to change a tire or perform repairs. As your powers increase, you will be able to lift heavier vehicles.", + "message": "You ready yourself to lift a car just enough to work on it.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_SPELL_TELEKIN_SUMMON_JACKING_TOOL", + "extra_effects": [ { "id": "psionic_drained_difficulty_six", "hit_self": true } ], + "shape": "blast", + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 6000, + "final_energy_cost": 2750, + "energy_increment": -250, + "base_casting_time": 250, + "final_casting_time": 125, + "casting_time_increment": -8, + "learn_spells": { "telekinetic_wave": 4, "telekinetic_explosion": 6 } + }, + { + "id": "telekinetic_shield", + "type": "SPELL", + "name": "[Ψ]Inertial Barrier", + "description": "Create a telekinetic barrier around yourself to protect you from damage.", + "message": "The air around you shimmers slightly.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_telekinetic_armor", + "extra_effects": [ { "id": "psionic_drained_difficulty_six", "hit_self": true } ], + "shape": "blast", + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_shield') * 1500) + 9000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_shield') * 2500) + 90000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 7000, + "final_energy_cost": 4500, + "energy_increment": -250, + "base_casting_time": 150, + "final_casting_time": 75, + "casting_time_increment": -5, + "learn_spells": { "telekinetic_push": 4, "telekinetic_wave": 6, "telekinetic_aegis": 8 } + }, + { + "id": "telekinetic_explosion", + "type": "SPELL", + "name": "[Ψ]Wrecking Ball", + "description": "A burst of telekinetic force shatters the terrain at the target location, as well as anything caught inside.", + "message": "You indiscriminately blast your targets!", + "teachable": false, + "valid_targets": [ "ally", "hostile", "ground" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ + "CONCENTRATE", + "LOUD", + "NO_PROJECTILE", + "EXTRA_EFFECTS_FIRST", + "RANDOM_DAMAGE", + "NO_HANDS", + "NO_LEGS", + "IGNORE_WALLS", + "NO_EXPLOSION_SFX" + ], + "extra_effects": [ + { "id": "tele_explosion_damage", "hit_self": false, "max_level": 20 }, + { "id": "psionic_drained_difficulty_seven", "hit_self": true } + ], + "effect": "bash", + "shape": "blast", + "difficulty": 7, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_explosion') * 3) + 22) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_explosion') * 5) + 100) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_explosion') * 1.2) + 4) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 60, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_explosion') * 0.3) + 2) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_aoe": 30, + "energy_source": "STAMINA", + "base_energy_cost": 7500, + "final_energy_cost": 3500, + "energy_increment": -250, + "base_casting_time": 200, + "final_casting_time": 75, + "casting_time_increment": -7.5, + "sound_type": "combat", + "sound_description": "a loud crash!", + "learn_spells": { "telekinetic_push": 4, "telekinetic_pull": 4 } + }, + { + "id": "tele_explosion_damage", + "type": "SPELL", + "name": "Wrecking Ball Enemy damage", + "description": "Damages enemies when you use Wrecking Ball on the ground. If you have this you debugged it in.", + "valid_targets": [ "ally", "hostile", "item", "ground" ], + "spell_class": "TELEKINETIC", + "flags": [ "LOUD", "RANDOM_DAMAGE", "IGNORE_WALLS" ], + "effect": "attack", + "shape": "blast", + "damage_type": "psi_telekinetic_damage", + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_explosion') * 3) + 22) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_explosion') * 5) + 100) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_explosion') * 0.3) + 2) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_aoe": 30 + }, + { + "id": "telekinetic_levitation", + "type": "SPELL", + "name": "[Ψ]Levitation", + "description": "Use your telekinesis and lift yourself up, defying gravity. While not true flight, you can cross open air and descend safely.\n\nThis power is even more draining than normal.", + "message": "You begin floating a hand's breadth above the ground.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_telekinetic_levitation", + "extra_effects": [ { "id": "psionic_drained_difficulty_seven", "hit_self": true } ], + "shape": "blast", + "difficulty": 7, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_levitation') * 75) + 100) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_levitation') * 200) + 500) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 6500, + "final_energy_cost": 3000, + "energy_increment": -250, + "base_casting_time": 75, + "final_casting_time": 15, + "casting_time_increment": -7.5 + }, + { + "id": "telekinetic_aegis", + "type": "SPELL", + "name": "[Ψ]Aegis", + "description": "Create a shield impenetrable to physical damage around yourself. It will only last a few moments. You will be unable to move while the power is in effect.", + "message": "The air around you becomes as hard as adamant.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_telekinetic_aegis", + "extra_effects": [ { "id": "psionic_drained_difficulty_nine", "hit_self": true } ], + "shape": "blast", + "difficulty": 9, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": 100, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telekinetic_aegis') * 20) + 200) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 9500, + "final_energy_cost": 4000, + "energy_increment": -350, + "base_casting_time": 125, + "final_casting_time": 55, + "casting_time_increment": -5 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/telekinesis_eoc.json b/data/Mainline_mods/Mods/MindOverMatter/powers/telekinesis_eoc.json new file mode 100644 index 000000000..fd83191f6 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/telekinesis_eoc.json @@ -0,0 +1,396 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_SPELL_TELEKIN_SUMMON_JACKING_TOOL", + "effect": { + "switch": { "math": [ "u_val('spell_level', 'spell: telekinetic_vehicle_lift')" ] }, + "cases": [ + { "case": 1, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_1" } } ] }, + { "case": 2, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_2" } } ] }, + { "case": 3, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_3" } } ] }, + { "case": 4, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_4" } } ] }, + { "case": 5, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_5" } } ] }, + { "case": 6, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_6" } } ] }, + { "case": 7, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_7" } } ] }, + { "case": 8, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_8" } } ] }, + { "case": 9, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_9" } } ] }, + { "case": 10, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_10" } } ] }, + { "case": 11, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_11" } } ] }, + { "case": 12, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_12" } } ] }, + { "case": 13, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_13" } } ] }, + { "case": 14, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_14" } } ] }, + { "case": 15, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_15" } } ] }, + { "case": 16, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_16" } } ] }, + { "case": 17, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_17" } } ] }, + { "case": 18, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_18" } } ] }, + { "case": 19, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_19" } } ] }, + { "case": 20, "effect": [ { "u_cast_spell": { "id": "telekin_ritual_summon_lifting_jack_20" } } ] } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_REMOVE_ENHANCE_STRENGTH", + "effect": [ { "u_remove_item_with": "telekin_ritual_summon_strength_item" } ] + }, + { + "id": "telekin_ritual_summon_lifting_jack_1", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #1", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_1", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_2", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #2", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_2", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_3", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #3", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_3", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_4", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #4", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_4", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_5", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #5", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_5", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_6", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #6", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_6", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_7", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #7", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_7", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_8", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #8", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_8", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_9", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #9", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_9", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_10", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #10", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_10", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_11", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #11", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_11", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_12", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #12", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_12", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_13", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #13", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_13", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_14", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #14", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_14", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_15", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #15", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_15", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_16", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #16", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_16", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_17", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #17", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_17", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_18", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #18", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_18", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_19", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #19", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_19", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + }, + { + "id": "telekin_ritual_summon_lifting_jack_20", + "type": "SPELL", + "name": "[Ψ]Summon Lifting Jack #20", + "description": "The spell that summons the Lifting Jack. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "self" ], + "spell_class": "TELEKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "effect": "spawn_item", + "effect_str": "telekin_lifting_jack_20", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 12000)" ] }, + "max_duration": { "math": [ "(u_val('spell_level', 'spell: telekinetic_vehicle_lift') * 120000)" ] } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/telepathy.json b/data/Mainline_mods/Mods/MindOverMatter/powers/telepathy.json new file mode 100644 index 000000000..cce748cf0 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/telepathy.json @@ -0,0 +1,438 @@ +[ + { + "id": "telepathic_concentration", + "type": "SPELL", + "name": "[Ψ]Concentration Trance", + "description": "Focus your own mind into a trance state, increasing learning speed.", + "message": "Your vision narrows to what is directly in front of you as you concentrate.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_telepathic_learning_bonus", + "extra_effects": [ { "id": "psionic_drained_difficulty_one", "hit_self": true } ], + "shape": "blast", + "difficulty": 1, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: telepathic_concentration') * 15000) + 180000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: telepathic_concentration') * 15000) + 720000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 4000, + "final_energy_cost": 1000, + "energy_increment": -200, + "base_casting_time": 300, + "final_casting_time": 150, + "casting_time_increment": -15, + "learn_spells": { "telepathic_blast": 7, "telepathic_confusion": 15 } + }, + { + "id": "telepathic_concentration_end", + "type": "SPELL", + "name": "[Ψ]Concentration Trance (Remove)", + "description": "End your focused trance, returning to normal.", + "message": "You stop concentrating.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ "NO_FAIL", "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "remove_effect", + "effect_str": "effect_telepathic_learning_bonus", + "shape": "blast", + "max_level": 1, + "energy_source": "STAMINA", + "base_energy_cost": 0, + "base_casting_time": 30 + }, + { + "id": "telepathic_shield", + "type": "SPELL", + "name": "[Ψ]Telepathic Shield", + "description": "You can protect your mind from the dangers of the post-Cataclysmic world.", + "message": "You begin shielding your thoughts.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_telepathic_psi_armor", + "extra_effects": [ { "id": "psionic_drained_difficulty_two", "hit_self": true } ], + "shape": "blast", + "difficulty": 2, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_shield') * 1500) + 6000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_shield') * 1500) + 36000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 2500, + "final_energy_cost": 500, + "energy_increment": -125, + "base_casting_time": 100, + "final_casting_time": 10, + "casting_time_increment": -7.5, + "learn_spells": { "telepathic_invisibility": 13, "telepathic_mind_control": 18 } + }, + { + "id": "telepathic_morale", + "type": "SPELL", + "name": "[Ψ]Mood Stabilization", + "description": "With the ability to edit others' thoughts comes the ability to edit your own.", + "message": "You begin to edit out your discouraging thoughts.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "effect_on_condition", + "effect_str": "EOC_TELEKIN_MORALE", + "extra_effects": [ { "id": "psionic_drained_difficulty_three", "hit_self": true } ], + "shape": "blast", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_morale') * 15000) + 180000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_morale') * 15000) + 720000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 4000, + "final_energy_cost": 1000, + "energy_increment": -125, + "base_casting_time": 300, + "final_casting_time": 150, + "casting_time_increment": -9.5, + "learn_spells": { "telepathic_confusion": 7, "telepathic_invisibility": 10, "telepathic_mind_control": 15 } + }, + { + "type": "effect_on_condition", + "id": "EOC_TELEKIN_MORALE", + "effect": [ + { "u_add_morale": "morale_telepathy", "bonus": 10, "max_bonus": 25, "duration": "4 hours", "decay_start": "2 hours" } + ] + }, + { + "id": "telepathic_blast", + "type": "SPELL", + "name": "[Ψ]Synaptic Overload", + "description": "Short-circuit and overwhelm a target's brain, causing extreme damage or death.", + "message": "You assault the mind of your target!", + "teachable": false, + "valid_targets": [ "hostile" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ + "CONCENTRATE", + "NO_PROJECTILE", + "SILENT", + "RANDOM_DAMAGE", + "NO_HANDS", + "NO_LEGS", + "NO_EXPLOSION_SFX", + "PERCENTAGE_DAMAGE" + ], + "difficulty": 4, + "max_level": { "math": [ "int_to_level(1)" ] }, + "effect": "attack", + "extra_effects": [ { "id": "psionic_drained_difficulty_four", "hit_self": true } ], + "shape": "blast", + "damage_type": "psi_telepathic_damage", + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_blast') * 1.5) + 5) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_blast') * 3) + 5) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_blast') * 2) + 3) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "energy_source": "STAMINA", + "base_energy_cost": 3500, + "final_energy_cost": 900, + "energy_increment": -125, + "base_casting_time": 75, + "final_casting_time": 30, + "casting_time_increment": -2.5, + "learn_spells": { "telepathic_confusion": 7, "telepathic_blast_radius": 12 } + }, + { + "id": "telepathic_confusion", + "type": "SPELL", + "name": "[Ψ]Sensory Deprivation", + "description": "Disconnect a target's brain from its senses, leaving it blinded and confused.", + "message": "You lock your target's mind away!", + "teachable": false, + "valid_targets": [ "hostile" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "NO_PROJECTILE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "effect": "attack", + "effect_str": "stunned", + "damage_type": "psi_telepathic_damage", + "extra_effects": [ + { "id": "telepathic_confusion_blind", "hit_self": false, "max_level": 20 }, + { "id": "psionic_drained_difficulty_five", "hit_self": true } + ], + "shape": "blast", + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_confusion') * 100) + 400) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_confusion') * 100) + 2000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_confusion') * 2) + 3) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "energy_source": "STAMINA", + "base_energy_cost": 2500, + "final_energy_cost": 900, + "energy_increment": -150, + "base_casting_time": 90, + "final_casting_time": 40, + "casting_time_increment": -3.5, + "learn_spells": { "telepathic_invisibility": 7, "telepathic_blast": 9, "telepathic_mind_control": 12 } + }, + { + "id": "telepathic_confusion_blind", + "type": "SPELL", + "name": "[Ψ]Sensory Deprivation blind Effect", + "description": "The is the part of the Sensory Deprivation that blinds the target. It's a bug if you have it.", + "valid_targets": [ "hostile" ], + "skill": "metaphysics", + "flags": [ "NO_PROJECTILE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "max_level": { "math": [ "int_to_level(1)" ] }, + "effect": "attack", + "effect_str": "blind", + "damage_type": "psi_telepathic_damage", + "shape": "blast", + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_confusion') * 100) + 400) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_confusion') * 100) + 2000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_confusion') * 2) + 3) * (scaling_factor(u_val('intelligence') ) )" ] + } + }, + { + "id": "telepathic_invisibility", + "type": "SPELL", + "name": "[Ψ]Obscurity", + "description": "Use a light touch on others' minds to hide your presence. This power only lasts a few moments.", + "message": "You hide your presence from your enemies.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_telepath_invisibility", + "extra_effects": [ { "id": "psionic_drained_difficulty_six", "hit_self": true } ], + "shape": "blast", + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: telepathic_invisibility') * 200) + 800) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: telepathic_invisibility') * 200) + 3000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 4500, + "final_energy_cost": 1750, + "energy_increment": -125, + "base_casting_time": 100, + "final_casting_time": 25, + "casting_time_increment": -7.5, + "learn_spells": { "telepathic_mind_control": 9 } + }, + { + "id": "telepathic_blast_radius", + "type": "SPELL", + "name": "[Ψ]Psychic Scream", + "description": "Emit an uncontrolled psychic scream, attacking the mind of anyone nearby. This power does not distinguish between friend and foe.", + "message": "You unleash a mind-piercing psionic shriek!", + "teachable": false, + "valid_targets": [ "hostile", "ally" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ + "CONCENTRATE", + "SILENT", + "RANDOM_DAMAGE", + "NO_HANDS", + "NO_EXPLOSION_SFX", + "NO_LEGS", + "PERCENTAGE_DAMAGE", + "IGNORE_WALLS" + ], + "difficulty": 7, + "max_level": { "math": [ "int_to_level(1)" ] }, + "effect": "attack", + "extra_effects": [ + { "id": "telepathic_blast_radius_guaranteed", "hit_self": false }, + { "id": "psionic_drained_difficulty_seven", "hit_self": true } + ], + "shape": "blast", + "damage_type": "psi_telepathic_damage", + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_blast_radius') * 1) + 3) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_blast_radius') * 2) + 3) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_blast_radius') * 1.2 ) + 2) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 5000, + "final_energy_cost": 2500, + "energy_increment": -175, + "base_casting_time": 75, + "final_casting_time": 30, + "casting_time_increment": -2.5 + }, + { + "id": "telepathic_blast_radius_guaranteed", + "type": "SPELL", + "name": "[Ψ]Psychic Scream Additional Damage", + "description": "This exists to allow Psychic Scream to do minimal damage and kill small animals whose extremely low HP would otherwise be below the percentage threshold. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "hostile", "ally" ], + "flags": [ "SILENT", "NO_HANDS", "NO_EXPLOSION_SFX", "IGNORE_WALLS" ], + "max_level": { "math": [ "int_to_level(1)" ] }, + "effect": "attack", + "shape": "blast", + "damage_type": "psi_telepathic_damage", + "min_damage": 1, + "max_damage": 2, + "damage_increment": 0.1, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_blast_radius') * 1.2 ) + 2) * (scaling_factor(u_val('intelligence') ) )" ] + } + }, + { + "id": "telepathic_mind_control", + "type": "SPELL", + "name": "[Ψ]Mind Control", + "description": "Seize control of the target's mind, forcing them to do your bidding.", + "message": "You take control of your target's mind!", + "teachable": false, + "valid_targets": [ "hostile" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "NO_PROJECTILE", "SILENT", "RANDOM_DAMAGE", "RANDOM_DURATION", "NO_HANDS", "NO_LEGS" ], + "difficulty": 8, + "max_level": { "math": [ "int_to_level(1)" ] }, + "effect": "charm_monster", + "extra_effects": [ { "id": "psionic_drained_difficulty_eight", "hit_self": true } ], + "shape": "blast", + "damage_type": "psi_telepathic_damage", + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_mind_control') * 4) + 30) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_mind_control') * 6) + 120) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: telepathic_mind_control') * 400) + 1200) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: telepathic_mind_control') * 400) + 5200) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_mind_control') * 1) + 4) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 70, + "energy_source": "STAMINA", + "base_energy_cost": 7500, + "final_energy_cost": 3500, + "energy_increment": -250, + "base_casting_time": 120, + "final_casting_time": 75, + "casting_time_increment": -3.5 + }, + { + "id": "telepathic_network", + "type": "SPELL", + "name": "[Ψ]Network Effect", + "description": "Forge an unconscious telepathic network between you and nearby allies, allowing you all to send and receive information about nearby dangers and react more quickly in combat. The network requires at least one ally nearby to be effective.", + "message": "", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "effect_on_condition", + "effect_str": "EOC_TELEPATH_NETWORK_ALLY_CHECK", + "extra_effects": [ { "id": "psionic_drained_difficulty_nine", "hit_self": true } ], + "shape": "blast", + "difficulty": 9, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_network') * 1500) + 30000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_network') * 3000) + 90000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 6500, + "final_energy_cost": 3750, + "energy_increment": -175, + "base_casting_time": 500, + "final_casting_time": 250, + "casting_time_increment": -15 + }, + { + "id": "telepathic_network_real", + "type": "SPELL", + "name": "[Ψ]Network Effect Real", + "description": "The actual power that implements the Network Effect. It's a bug if you have it.", + "message": "", + "teachable": false, + "valid_targets": [ "self", "ally" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "effect": "attack", + "effect_str": "effect_telepath_network_effect", + "shape": "blast", + "difficulty": 9, + "min_aoe": 60, + "max_aoe": 60, + "//": "Ideally range would scale with power level, but there would need to be a way to detect nearby allies first instead of just any ally in the bubble.", + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_network') * 1500) + 30000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_network') * 3000) + 90000) * (scaling_factor(u_val('intelligence') ) )" ] + } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/telepathy_eoc.json b/data/Mainline_mods/Mods/MindOverMatter/powers/telepathy_eoc.json new file mode 100644 index 000000000..ff99ebb34 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/telepathy_eoc.json @@ -0,0 +1,18 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_TELEPATH_NETWORK_ALLY_CHECK", + "condition": { "npc_allies": 1 }, + "//": "Ideally this would check for allies within a certain radius nearby, something like u_npcs_nearby, but that doesn't seem to be possible.", + "effect": [ + { + "u_cast_spell": { + "id": "telepathic_network_real", + "hit_self": true, + "message": "You now have an instinctive awareness of your allies, and they of you." + } + } + ], + "false_effect": [ { "u_message": "With no nearby allies, there is no one to network with.", "type": "bad" } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/teleportation.json b/data/Mainline_mods/Mods/MindOverMatter/powers/teleportation.json new file mode 100644 index 000000000..ee126097c --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/teleportation.json @@ -0,0 +1,351 @@ +[ + { + "id": "teleport_blink", + "type": "SPELL", + "name": "[Ψ]Blink", + "description": "Step briefly into the void between dimensions and emerge at a random nearby location.", + "message": "You vanish and reappear nearby.", + "teachable": false, + "valid_targets": [ "none" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_AOE" ], + "effect": "short_range_teleport", + "extra_effects": [ { "id": "psionic_drained_difficulty_one", "hit_self": true } ], + "shape": "blast", + "difficulty": 1, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_aoe": 1, + "max_aoe": 5, + "aoe_increment": 0.25, + "min_range": 5, + "max_range": 15, + "range_increment": 1, + "energy_source": "STAMINA", + "base_energy_cost": 800, + "final_energy_cost": 250, + "energy_increment": -55, + "base_casting_time": 50, + "final_casting_time": 0, + "casting_time_increment": -4, + "learn_spells": { "teleport_phase": 5, "teleport_transpose": 8, "teleport_farstep": 12, "teleport_gateway": 18 } + }, + { + "id": "teleport_slow", + "type": "SPELL", + "name": "[Ψ]Stutterstep", + "description": "Manipulate space to increase relative distance around the target, reducing their speed.", + "message": "You warp the space around your enemies!", + "teachable": false, + "valid_targets": [ "ground", "hostile" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "RANDOM_DURATION", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_teleport_slow", + "extra_effects": [ { "id": "psionic_drained_difficulty_two", "hit_self": true } ], + "shape": "blast", + "difficulty": 2, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_aoe": 0, + "max_aoe": 20, + "aoe_increment": 0.2, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: teleport_slow') * 1.2) + 3) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: teleport_slow') * 75) + 125) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: teleport_slow') * 75) + 1500) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 2000, + "final_energy_cost": 750, + "energy_increment": -75, + "base_casting_time": 80, + "final_casting_time": 35, + "casting_time_increment": -4.5, + "learn_spells": { "teleport_collapse": 7, "teleport_stride": 10, "teleport_displacement": 12, "teleport_banish": 18 } + }, + { + "id": "teleport_phase", + "type": "SPELL", + "name": "[Ψ]Phase", + "description": "By stepping for a moment into the void between dimensions, you can bypass a wall or walk from the ground to the roof of a house.", + "message": "There is a brief moment of darkness and terrible cold, and you are somewhere else.", + "teachable": false, + "valid_targets": [ "ground" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "TARGET_TELEPORT", "IGNORE_WALLS" ], + "effect": "short_range_teleport", + "extra_effects": [ { "id": "psionic_drained_difficulty_two", "hit_self": true } ], + "shape": "blast", + "difficulty": 2, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: teleport_phase') * 0.1) + 2) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 4, + "energy_source": "STAMINA", + "base_energy_cost": 2500, + "final_energy_cost": 1000, + "energy_increment": -65, + "base_casting_time": 65, + "final_casting_time": 15, + "casting_time_increment": -3, + "learn_spells": { "teleport_transpose": 4, "teleport_stride": 9, "teleport_gateway": 14 } + }, + { + "id": "teleport_stride", + "type": "SPELL", + "name": "[Ψ]Extended Stride", + "description": "By warping space to shorten distances, you can make each of your movements carry you much further.", + "message": "Your steps devour the distance.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_teleport_stride", + "extra_effects": [ { "id": "psionic_drained_difficulty_three", "hit_self": true } ], + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "base_energy_cost": 2500, + "final_energy_cost": 750, + "energy_increment": -125, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: teleport_stride') * 300) + 3000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: teleport_stride') * 350) + 30000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 85, + "final_casting_time": 25, + "casting_time_increment": -7, + "learn_spells": { "teleport_collapse": 6, "teleport_phase": 8, "teleport_farstep": 14 } + }, + { + "id": "teleport_transpose", + "type": "SPELL", + "name": "[Ψ]Transposition", + "description": "Entangle yourself with your target's position and, with a twist, swap places with them.", + "message": "There is a moment of darkness and terrible cold, and you are somewhere else, and so is your target.", + "teachable": false, + "valid_targets": [ "hostile", "ally" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "SWAP_POS", "IGNORE_WALLS" ], + "effect": "attack", + "extra_effects": [ { "id": "psionic_drained_difficulty_four", "hit_self": true } ], + "shape": "blast", + "difficulty": 4, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: teleport_transpose') * 2.5) + 1) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "energy_source": "STAMINA", + "base_energy_cost": 2750, + "final_energy_cost": 1250, + "energy_increment": -95, + "base_casting_time": 55, + "final_casting_time": 0, + "casting_time_increment": -2.75, + "learn_spells": { "teleport_displacement": 5, "teleport_stride": 7, "teleport_farstep": 9, "teleport_banish": 15 } + }, + { + "id": "teleport_displacement", + "type": "SPELL", + "name": "[Ψ]Displacement", + "description": "With a touch, you can send your target through the void to re-emerge somewhere nearby, further away from you.", + "message": "You touch your target and they are suddenly somewhere else.", + "teachable": false, + "valid_targets": [ "ally", "hostile" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "extra_effects": [ { "id": "psionic_drained_difficulty_five", "hit_self": true } ], + "shape": "blast", + "damage_type": "psi_teleporter_teleporting_damage", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 1, + "max_damage": 1, + "energy_source": "STAMINA", + "base_energy_cost": 2500, + "final_energy_cost": 1250, + "energy_increment": -65, + "min_range": 1, + "base_casting_time": 75, + "final_casting_time": 25, + "casting_time_increment": -3, + "learn_spells": { "teleport_banish": 10 } + }, + { + "id": "teleport_collapse", + "type": "SPELL", + "name": "[Ψ]Spacial Vortex", + "description": "Affect the fabric of space, changing relative distance around a point so that everything moving within finds themselves moving towards it.", + "message": "The air around your enemies shimmers as their movements inevitably draw them toward a central point.", + "teachable": false, + "valid_targets": [ "ground", "hostile" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DAMAGE", "IGNORE_WALLS", "NO_EXPLOSION_SFX" ], + "effect": "area_pull", + "extra_effects": [ { "id": "psionic_drained_difficulty_five", "hit_self": true } ], + "shape": "blast", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: teleport_collapse') * -0.15) - 1) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: teleport_collapse') * -0.15) - 3) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: teleport_collapse') * 1.2) + 5) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "min_aoe": 3, + "max_aoe": 10, + "aoe_increment": 0.25, + "energy_source": "STAMINA", + "base_energy_cost": 3500, + "final_energy_cost": 1500, + "energy_increment": -75, + "base_casting_time": 80, + "final_casting_time": 45, + "casting_time_increment": -2, + "learn_spells": { "teleport_displacement": 4, "teleport_banish": 9, "teleport_gateway": 12, "teleport_summon": 15 } + }, + { + "id": "teleport_farstep", + "type": "SPELL", + "name": "[Ψ]Farstep", + "description": "Skating along the void between dimensions, move to a specific place within line of sight.", + "message": "There is a moment of darkness and terrible cold, and you are somewhere else.", + "teachable": false, + "valid_targets": [ "ground" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "TARGET_TELEPORT", "IGNORE_WALLS" ], + "effect": "short_range_teleport", + "extra_effects": [ { "id": "psionic_drained_difficulty_six", "hit_self": true } ], + "shape": "blast", + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_aoe": 4, + "max_aoe": 1, + "aoe_increment": -0.25, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: teleport_farstep') * 2.5) + 2) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "energy_source": "STAMINA", + "base_energy_cost": 4500, + "final_energy_cost": 1750, + "energy_increment": -105, + "base_casting_time": 75, + "final_casting_time": 30, + "casting_time_increment": -2.75, + "learn_spells": { "teleport_gateway": 9, "teleport_banish": 12 } + }, + { + "id": "teleport_banish", + "type": "SPELL", + "name": "[Ψ]Oubliette", + "description": "Teleport the target through the nether to some other dimension. They are technically not dead, but they are no longer your concern. Oubliette will occasionally fail when used against very poweful enemies, or succeed but cause damage to the teleporter.", + "message": "With a tremendous mental exertion, you hurl your target to another dimension!", + "teachable": false, + "valid_targets": [ "hostile" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "banishment", + "extra_effects": [ { "id": "psionic_drained_difficulty_seven", "hit_self": true } ], + "shape": "blast", + "difficulty": 7, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: teleport_banish') * 15) + 15) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: teleport_banish') * 35) + 350) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: teleport_banish') * 2) + 1.5) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "energy_source": "STAMINA", + "base_energy_cost": 7500, + "final_energy_cost": 3500, + "energy_increment": -200, + "base_casting_time": 150, + "final_casting_time": 75, + "casting_time_increment": -5.5, + "learn_spells": { "teleport_summon": 7 } + }, + { + "id": "teleport_gateway", + "type": "SPELL", + "name": "[Ψ]Gateway", + "description": "Teleport to an attuned location [use the Construct menu to attune].", + "message": "There is a long moment of darkness and terrible cold that seems like it will freeze your heart, and then you are somewhere else.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "translocate", + "extra_effects": [ { "id": "psionic_drained_difficulty_eight", "hit_self": true } ], + "shape": "blast", + "difficulty": 8, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 10000, + "final_energy_cost": 6000, + "energy_increment": -300, + "base_casting_time": 200, + "final_casting_time": 75, + "casting_time_increment": -5.5, + "learn_spells": { "teleport_banish": 6 } + }, + { + "id": "teleport_summon", + "type": "SPELL", + "name": "[Ψ]Breach", + "description": "Open a brief passage to the Nether using yourself or an enemy as an anchor and allow one (or more) of its inhabitants to come through. You have no control over what finds the doorway and no ability to command it when it arrives.\n\nRemember that some denizens of the Nether die instantly in sunlight.", + "message": "The air nearby fractures and something comes through!", + "teachable": false, + "valid_targets": [ "self", "hostile" ], + "spell_class": "TELEPORTER", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "effect_on_condition", + "effect_str": "EOC_TELEPORT_SUMMON", + "extra_effects": [ { "id": "psionic_drained_difficulty_nine", "hit_self": true } ], + "shape": "blast", + "difficulty": 9, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 1, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: teleport_summon') * 1.5) + 2) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "energy_source": "STAMINA", + "base_energy_cost": 9000, + "final_energy_cost": 4500, + "energy_increment": -250, + "base_casting_time": 250, + "final_casting_time": 125, + "casting_time_increment": -6.5 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/teleportation_eoc.json b/data/Mainline_mods/Mods/MindOverMatter/powers/teleportation_eoc.json new file mode 100644 index 000000000..abf8b6661 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/teleportation_eoc.json @@ -0,0 +1,9 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_TELEPORT_SUMMON", + "effect": [ + { "u_spawn_monster": "GROUP_NETHER_BREACH", "group": true, "real_count": [ 1, 3 ], "min_radius": 2, "max_radius": 6 } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/vitakinesis.json b/data/Mainline_mods/Mods/MindOverMatter/powers/vitakinesis.json new file mode 100644 index 000000000..c726b341e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/vitakinesis.json @@ -0,0 +1,498 @@ +[ + { + "id": "vita_stop_bleeding", + "type": "SPELL", + "name": "[Ψ]Staunch Wound", + "description": "You concentrate on your injuries, and they close and the blood flow stops [(a)ctivate to bandage].", + "message": "You summon up the energy to close your wounds! [(a)ctivate to bandage]", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_VITAKIN_STOP_BLEEDING_EOC", + "extra_effects": [ { "id": "psionic_drained_difficulty_two", "hit_self": true } ], + "shape": "blast", + "difficulty": 2, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": 1, + "max_damage": 1, + "energy_source": "STAMINA", + "base_energy_cost": 2500, + "final_energy_cost": 750, + "energy_increment": -125, + "min_duration": 1200, + "max_duration": 1200, + "base_casting_time": 50, + "final_casting_time": 20, + "casting_time_increment": -3, + "learn_spells": { "vita_pain_split": 7, "vita_stop_infection": 9, "vita_health_power": 10, "vita_blood_purge": 15 } + }, + { + "id": "vita_stop_bleeding_01", + "type": "SPELL", + "name": "[Ψ]Staunch Wound #1", + "description": "The first of the Staunch Wound spells. This summons a low-power bandage--it's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "spawn_item", + "effect_str": "vita_bandage_01", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": 1200, + "max_duration": 1200 + }, + { + "id": "vita_stop_bleeding_02", + "type": "SPELL", + "name": "[Ψ]Staunch Wound #2", + "description": "The first of the Staunch Wound spells. This summons a medium-power bandage--it's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "spawn_item", + "effect_str": "vita_bandages_02", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": 1200, + "max_duration": 1200 + }, + { + "id": "vita_stop_bleeding_03", + "type": "SPELL", + "name": "[Ψ]Staunch Wound #3", + "description": "The first of the Staunch Wound spells. This summons a high-power bandage--it's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "spawn_item", + "effect_str": "vita_bandages_03", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": 1200, + "max_duration": 1200 + }, + { + "id": "vita_health_power", + "type": "SPELL", + "name": "[Ψ]Healthy Glow", + "description": "Your powers can keep you in the bloom of health. This can also stop an asthma attack.", + "message": "Your skin prickles and you feel like you're bursting with energy.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_vita_health", + "extra_effects": [ { "id": "psionic_drained_difficulty_one", "hit_self": true } ], + "shape": "blast", + "difficulty": 1, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 3500, + "final_energy_cost": 2000, + "energy_increment": -75, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: vita_health_power') * 2100) + 18000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: vita_health_power') * 2700) + 145000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "base_casting_time": 100, + "final_casting_time": 25, + "casting_time_increment": -7.5, + "learn_spells": { "vita_health_power_ally": 5, "vita_sleeping_trance": 7, "vita_healing_trance": 15, "vita_banish_illness": 18 } + }, + { + "id": "vita_hurt_touch", + "type": "SPELL", + "name": "[Ψ]Enervating Touch", + "description": "With but a touch you can cause your target to begin deteriorating slowly. This is most effective on targets with preternatural means of healing but has some effect on anyone.", + "message": "You touch your target and leave an angry red weal behind.", + "teachable": false, + "valid_targets": [ "hostile" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_vitakin_hurt", + "extra_effects": [ { "id": "psionic_drained_difficulty_three", "hit_self": true } ], + "shape": "blast", + "damage_type": "pure", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_dot": 1, + "max_dot": 1, + "energy_source": "STAMINA", + "base_energy_cost": 1500, + "final_energy_cost": 750, + "energy_increment": -65, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: vita_hurt_touch') * 100) + 400) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: vita_hurt_touch') * 100) + 3000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "min_range": 1, + "base_casting_time": 85, + "final_casting_time": 55, + "casting_time_increment": -3, + "learn_spells": { "vita_pain_split": 7, "vita_health_power_ally": 9, "vita_healing_trance": 15 } + }, + { + "id": "vita_health_power_ally", + "type": "SPELL", + "name": "[Ψ]Medicinal Touch", + "description": "You can apply your Healthy Glow power to a follower or ally. This can stop an asthma attack.", + "message": "Your touch your target and they seem to perk up.", + "teachable": false, + "valid_targets": [ "ally" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_vita_health", + "extra_effects": [ { "id": "psionic_drained_difficulty_three", "hit_self": true } ], + "shape": "blast", + "difficulty": 3, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "min_range": 1, + "base_energy_cost": 3500, + "final_energy_cost": 2000, + "energy_increment": -75, + "min_duration": { + "math": [ + "( (u_val('spell_level', 'spell: vita_health_power_ally') * 2100) + 18000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "max_duration": { + "math": [ + "( (u_val('spell_level', 'spell: vita_health_power_ally') * 2700) + 145000) * (scaling_factor(u_val('intelligence') ) )" + ] + }, + "base_casting_time": 100, + "final_casting_time": 25, + "casting_time_increment": -7.5, + "learn_spells": { "vita_pain_split": 4, "vita_blood_purge": 13 } + }, + { + "id": "vita_pain_split", + "type": "SPELL", + "name": "[Ψ]Damage Balancing", + "description": "By rerouting blood and stem cells from undamaged areas, you can lessen your most grievous wounds at the cost of weakness elsewhere. You may also use this to control an asthma attack.", + "message": "With a moment's concentration, your worst injuries heal, but you still don't feel well.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "pain_split", + "extra_effects": [ { "id": "psionic_drained_difficulty_five", "hit_self": true } ], + "shape": "blast", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 4500, + "final_energy_cost": 1750, + "energy_increment": -175, + "base_casting_time": 200, + "final_casting_time": 75, + "casting_time_increment": -12, + "learn_spells": { "vita_healing_trance": 12, "vita_sleeping_trance": 14, "vita_blood_purge": 15 } + }, + { + "id": "vita_sleeping_trance", + "type": "SPELL", + "name": "[Ψ]Wakeful Rest", + "description": "In lieu of sleep, you can meditate. As long as you maintain your meditations, you will rarely need to spend a night sleeping.", + "message": "You meditate for a while and feel refreshed.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DAMAGE" ], + "effect": "recover_energy", + "effect_str": "FATIGUE", + "extra_effects": [ + { "id": "vita_no_sleep_dep", "hit_self": true, "max_level": 1 }, + { "id": "psionic_drained_difficulty_four", "hit_self": true } + ], + "shape": "blast", + "difficulty": 4, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: vita_sleeping_trance') * 2) + 40) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: vita_sleeping_trance') * 2) + 150) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 1000, + "base_casting_time": 360000, + "final_casting_time": 90000, + "casting_time_increment": -13500, + "learn_spells": { "vita_healing_trance": 9, "vita_blood_purge": 12, "vita_banish_illness": 15 } + }, + { + "id": "vita_no_sleep_dep", + "type": "SPELL", + "name": "[Ψ]Wakeful Rest Remove Sleep Deprivation", + "description": "The second part of the Wakeful Rest power, to remove sleep deprivation.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "effect_on_condition", + "effect_str": "EOC_VITAKIN_SLEEP", + "shape": "blast" + }, + { + "id": "vita_stop_infection", + "type": "SPELL", + "name": "[Ψ]Allay Infection", + "description": "Before you could stop your bleeding with but a thought. Now, you can treat infected wounds with your powers as well.", + "message": "You concentrate on the injuries, and the itching eases [(a)ctivate to disinfect].", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_VITAKIN_STOP_INFECTION_SWITCH", + "extra_effects": [ { "id": "psionic_drained_difficulty_five", "hit_self": true } ], + "shape": "blast", + "difficulty": 5, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 5000, + "final_energy_cost": 2250, + "energy_increment": -145, + "base_casting_time": 350, + "final_casting_time": 125, + "casting_time_increment": -14, + "learn_spells": { "vita_blood_purge": 5, "vita_banish_illness": 10, "vita_super_heal": 20 } + }, + { + "id": "vita_stop_infection_01", + "type": "SPELL", + "name": "[Ψ]SAllay Infection #1", + "description": "The first of the Allay Infection spells. This summons a low-power disinfectant/antibiotic--it's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "spawn_item", + "effect_str": "vita_disinfectant_01", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": 1200, + "max_duration": 1200 + }, + { + "id": "vita_stop_infection_02", + "type": "SPELL", + "name": "[Ψ]SAllay Infection #2", + "description": "The second of the Allay Infection spells. This summons a medium-power disinfectant/antibiotic--it's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "spawn_item", + "effect_str": "vita_disinfectant_02", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": 1200, + "max_duration": 1200 + }, + { + "id": "vita_stop_infection_03", + "type": "SPELL", + "name": "[Ψ]SAllay Infection #3", + "description": "The third of the Allay Infection spells. This summons a high-power disinfectant/antibiotic--it's a bug if you have it.", + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "spawn_item", + "effect_str": "vita_disinfectant_03", + "shape": "blast", + "min_damage": 1, + "max_damage": 1, + "min_duration": 1200, + "max_duration": 1200 + }, + { + "id": "vita_healing_trance", + "type": "SPELL", + "name": "[Ψ]Revitalizing Meditation", + "description": "Enter a trance state and heal your injuries", + "message": "You exit your trance and your wounds feel less painful.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DAMAGE" ], + "effect": "attack", + "extra_effects": [ { "id": "psionic_drained_difficulty_six", "hit_self": true } ], + "shape": "blast", + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: vita_healing_trance') * -1.5) - 6) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: vita_healing_trance') * -2) - 12) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 8000, + "base_casting_time": 360000, + "learn_spells": { "vita_sleeping_trance": 4, "vita_banish_illness": 6, "vita_blood_purge": 8, "vita_super_heal": 15 } + }, + { + "id": "vita_purge_rads", + "type": "SPELL", + "name": "[Ψ]Radiation Decontamination", + "description": "Use your powers to isolate and flush radiation from your body. Depending on your level of contamination, this power may have serious side effects.", + "message": "You focus your powers on the corruption infusing your flesh.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_VITAKIN_RAD_PURGE", + "//": "Drain is handled in the EoC", + "shape": "blast", + "energy_source": "STAMINA", + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "base_energy_cost": 5000, + "final_energy_cost": 3500, + "energy_increment": -125, + "base_casting_time": 6000 + }, + { + "id": "vita_blood_purge", + "type": "SPELL", + "name": "[Ψ]Blood Purge", + "description": "You submerge your mind into your bloodstream and remove the impurities you find there.", + "message": "Your power flows through your veins, cleansing your blood.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "cureall", + "extra_effects": [ + { "id": "vita_blood_purge_no_mutagens", "hit_self": true }, + { "id": "psionic_drained_difficulty_seven", "hit_self": true } + ], + "shape": "blast", + "difficulty": 7, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 7000, + "final_energy_cost": 4500, + "energy_increment": -200, + "base_casting_time": 250, + "final_casting_time": 100, + "casting_time_increment": -8, + "learn_spells": { "vita_stop_bleeding": 4, "vita_banish_illness": 3 } + }, + { + "id": "vita_blood_purge_no_mutagens", + "type": "SPELL", + "name": "[Ψ]Blood Purge Remove Mutagens", + "description": "Blood purge's additional ability to remove other substances contaminating your bloodstream. It's a bug if you have it.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS" ], + "effect": "effect_on_condition", + "effect_str": "EOC_VITAKIN_MUTAGEN_PURGE", + "shape": "blast" + }, + { + "id": "vita_banish_illness", + "type": "SPELL", + "name": "[Ψ]Banish Illness", + "description": "Enter a deep meditative trance and purge your body of illness, even serious ones like cancer or multiple sclerosis. It will not cure mutation. Some illnesses are more difficult to successfully eradicate than others.", + "message": "You attempt to cure your afflictions.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "effect_on_condition", + "effect_str": "EOC_VITAKIN_BANISH_ILLNESS_SELECTOR", + "extra_effects": [ { "id": "psionic_drained_difficulty_eight", "hit_self": true } ], + "shape": "blast", + "difficulty": 8, + "max_level": { "math": [ "int_to_level(1)" ] }, + "energy_source": "STAMINA", + "base_energy_cost": 10000, + "base_casting_time": 500, + "learn_spells": { "vita_super_heal": 5 } + }, + { + "id": "vita_super_heal", + "type": "SPELL", + "name": "[Ψ]Anabolic Rejuvenation", + "description": "You draw on your body's reserves to speed your healing a hundredfold.", + "message": "You feel a sudden sensation of fatigue and your wounds itch.", + "teachable": false, + "valid_targets": [ "self" ], + "spell_class": "VITAKINETIC", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "effect_str": "effect_vita_super_heal", + "extra_effects": [ { "id": "psionic_drained_difficulty_nine", "hit_self": true } ], + "shape": "blast", + "difficulty": 9, + "max_level": { "math": [ "int_to_level(1)" ] }, + "min_duration": { + "math": [ "( (u_val('spell_level', 'spell: vita_super_heal') * 3000) + 15000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_duration": { + "math": [ "( (u_val('spell_level', 'spell: vita_super_heal') * 6000) + 30000) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "energy_source": "STAMINA", + "base_energy_cost": 10000, + "final_energy_cost": 8000, + "energy_increment": -150, + "base_casting_time": 1000 + }, + { + "id": "vita_super_heal_healing", + "type": "SPELL", + "name": "Anabolic Rejuvenation Heal", + "description": "The healing part of Anabolic Rejuvenation.", + "valid_targets": [ "self" ], + "min_damage": -1, + "max_damage": -1, + "effect": "attack", + "shape": "blast", + "flags": [ "SILENT" ] + }, + { + "id": "vita_super_heal_drain", + "type": "SPELL", + "name": "Anabolic Rejuvenation draining", + "description": "The draining part of Anabolic Rejuvenation.", + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "EOC_VITA_SUPER_HEAL_DRAIN", + "shape": "blast", + "flags": [ "SILENT" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/powers/vitakinesis_eoc.json b/data/Mainline_mods/Mods/MindOverMatter/powers/vitakinesis_eoc.json new file mode 100644 index 000000000..6277a9c90 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/powers/vitakinesis_eoc.json @@ -0,0 +1,414 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_STOP_BLEEDING_EOC", + "effect": { + "switch": { "math": [ "u_val('spell_level', 'spell: vita_stop_bleeding')" ] }, + "cases": [ + { "case": 0, "effect": [ { "u_cast_spell": { "id": "vita_stop_bleeding_01" } } ] }, + { "case": 6, "effect": [ { "u_cast_spell": { "id": "vita_stop_bleeding_02" } } ] }, + { "case": 12, "effect": [ { "u_cast_spell": { "id": "vita_stop_bleeding_03" } } ] } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_SLEEP", + "effect": [ { "math": [ "u_val('sleep_deprivation')", "-=", "500" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_STOP_INFECTION_SWITCH", + "effect": { + "switch": { "math": [ "u_val('spell_level', 'spell: vita_stop_infection')" ] }, + "cases": [ + { "case": 0, "effect": [ { "u_cast_spell": { "id": "vita_stop_infection_01" } } ] }, + { "case": 6, "effect": [ { "u_cast_spell": { "id": "vita_stop_infection_02" } } ] }, + { "case": 12, "effect": [ { "u_cast_spell": { "id": "vita_stop_infection_03" } } ] } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_MUTAGEN_PURGE", + "effect": [ + { "math": [ "u_val('vitamin', 'name: mutagen')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_alpha')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_batrachian')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_beast')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_bird')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_cattle')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_cephalopod')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_chelator')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_chimera')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_crustacean')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_elfa')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_feline')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_fish')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_gastropod')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_human')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_insect')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_lizard')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_lupine')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_medical')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_mouse')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_plant')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_rabbit')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_raptor')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_rat')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_slime')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_spider')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_troglobite')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_ursine')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagenic_slurry')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutant_toxin')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_crustacean')", "=", "0" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_RAD_PURGE", + "condition": { "math": [ "u_val('rad')", ">=", "500" ] }, + "effect": [ + { "u_add_effect": "effect_vitakin_purge_rads", "duration": "250 minutes" }, + { "u_add_effect": "effect_vitakin_purge_rads_sideeffects", "duration": "250 minutes", "intensity": 6 }, + { "u_cast_spell": { "id": "psionic_drained_difficulty_seven", "hit_self": true } } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_VITAKIN_RAD_PURGE_2", + "condition": { "and": [ { "math": [ "u_val('rad')", ">", "250" ] }, { "math": [ "u_val('rad')", "<=", "499" ] } ] }, + "effect": [ + { "u_add_effect": "effect_vitakin_purge_rads", "duration": "125 minutes" }, + { "u_add_effect": "effect_vitakin_purge_rads_sideeffects", "duration": "125 minutes", "intensity": 5 }, + { "u_cast_spell": { "id": "psionic_drained_difficulty_six", "hit_self": true } } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_VITAKIN_RAD_PURGE_3", + "condition": { "and": [ { "math": [ "u_val('rad')", ">=", "125" ] }, { "math": [ "u_val('rad')", "<=", "249" ] } ] }, + "effect": [ + { "u_add_effect": "effect_vitakin_purge_rads", "duration": "65 minutes" }, + { + "u_add_effect": "effect_vitakin_purge_rads_sideeffects", + "duration": "65 minutes", + "intensity": 4 + }, + { "u_cast_spell": { "id": "psionic_drained_difficulty_five", "hit_self": true } } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_VITAKIN_RAD_PURGE_4", + "condition": { "and": [ { "math": [ "u_val('rad')", ">=", "60" ] }, { "math": [ "u_val('rad')", "<=", "124" ] } ] }, + "effect": [ + { "u_add_effect": "effect_vitakin_purge_rads", "duration": "30 minutes" }, + { + "u_add_effect": "effect_vitakin_purge_rads_sideeffects", + "duration": "30 minutes", + "intensity": 3 + }, + { "u_cast_spell": { "id": "psionic_drained_difficulty_four", "hit_self": true } } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_VITAKIN_RAD_PURGE_5", + "condition": { "and": [ { "math": [ "u_val('rad')", ">=", "30" ] }, { "math": [ "u_val('rad')", "<=", "59" ] } ] }, + "effect": [ + { "u_add_effect": "effect_vitakin_purge_rads", "duration": "15 minutes" }, + { + "u_add_effect": "effect_vitakin_purge_rads_sideeffects", + "duration": "15 minutes", + "intensity": 2 + }, + { "u_cast_spell": { "id": "psionic_drained_difficulty_three", "hit_self": true } } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_VITAKIN_RAD_PURGE_6", + "condition": { "and": [ { "math": [ "u_val('rad')", ">=", "1" ] }, { "math": [ "u_val('rad')", "<=", "29" ] } ] }, + "effect": [ + { "u_add_effect": "effect_vitakin_purge_rads", "duration": "7 minutes" }, + { + "u_add_effect": "effect_vitakin_purge_rads_sideeffects", + "duration": "7 minutes", + "intensity": 1 + }, + { "u_cast_spell": { "id": "psionic_drained_difficulty_two", "hit_self": true } } + ], + "false_effect": [ { "u_message": "You have no radiation in your body, and so no need to do anything.", "type": "good" } ] + } + ] + } + } + ] + } + } + ] + } + } + ] + } + } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_SELECTOR", + "effect": [ + { + "run_eoc_selector": [ + "EOC_VITAKIN_BANISH_ILLNESS_ASTHMA", + "EOC_VITAKIN_BANISH_ILLNESS_CHEMIMBALANCE", + "EOC_VITAKIN_BANISH_ILLNESS_SCHIZOPHRENIC", + "EOC_VITAKIN_BANISH_ILLNESS_JITTERY", + "EOC_VITAKIN_BANISH_ILLNESS_MOODSWINGS", + "EOC_VITAKIN_BANISH_ILLNESS_WEAKENING", + "EOC_VITAKIN_BANISH_ILLNESS_NARCOLEPTIC", + "EOC_PORTAL_NULL_AWAKENING" + ], + "names": [ + "Purge Asthma", + "Purge Chemical Imbalance", + "Purge Kaluptic Psychosis", + "Purge Jitters", + "Purge Mood Swings", + "Purge Wasting Sickness", + "Purge Narcolepsy", + "Nevermind" + ], + "keys": [ "1", "2", "3", "4", "5", "6", "7", "8" ], + "descriptions": [ + "Attempt to cure your asthma.", + "Attempt to cure your chemical imbalance.", + "Attempt to cure your kaluptic psychosis", + "Attempt to cure your jitters", + "Attempt to cure your mood swings", + "Attempt to cure your weakening sickness", + "Attempt to cure your narcolepsy. This meditation is extremely intensive, and is correspondingly more draining.", + "Do nothing for now." + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_ASTHMA", + "condition": { "or": [ { "u_has_trait": "ASTHMA" }, { "u_has_effect": "effect_asthma_disease_absorbed" } ] }, + "effect": [ { "u_assign_activity": "ACT_VITAKIN_BANISH_ILLNESS_ASTHMA", "duration": "360 minutes" } ], + "false_effect": [ { "u_message": "You don't have asthma. There is no need to attempt to cure it.", "type": "mixed" } ] + }, + { + "id": "ACT_VITAKIN_BANISH_ILLNESS_ASTHMA", + "type": "activity_type", + "activity_level": "LIGHT_EXERCISE", + "verb": "meditating", + "based_on": "time", + "completion_eoc": "EOC_VITAKIN_BANISH_ILLNESS_ASTHMA_RESULT" + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_ASTHMA_RESULT", + "condition": { "roll_contested": { "math": [ "rand( u_val('spell_level', 'spell: vita_banish_illness'))" ] }, "difficulty": 12 }, + "effect": [ + { "u_message": "You breathe easily once again.", "type": "good" }, + { "u_lose_trait": "ASTHMA" }, + { "u_lose_effect": "effect_asthma_disease_absorbed" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 20,45 )" ] } + ], + "false_effect": [ + { "u_message": "The disease proved tenacious. You'll have to try again.", "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 20,45 )" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_CHEMIMBALANCE", + "condition": { "u_has_trait": "CHEMIMBALANCE" }, + "effect": [ { "u_assign_activity": "ACT_VITAKIN_BANISH_ILLNESS_CHEMIMBALANCE", "duration": "480 minutes" } ], + "false_effect": [ { "u_message": "You don't have a chemical imbalance. There is no need to attempt to cure it.", "type": "mixed" } ] + }, + { + "id": "ACT_VITAKIN_BANISH_ILLNESS_CHEMIMBALANCE", + "type": "activity_type", + "activity_level": "LIGHT_EXERCISE", + "verb": "meditating", + "based_on": "time", + "completion_eoc": "EOC_VITAKIN_BANISH_ILLNESS_CHEMIMBALANCE_RESULT" + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_CHEMIMBALANCE_RESULT", + "condition": { "roll_contested": { "math": [ "rand( u_val('spell_level', 'spell: vita_banish_illness'))" ] }, "difficulty": 14 }, + "effect": [ + { "u_message": "You body feels more normal.", "type": "good" }, + { "u_lose_trait": "CHEMIMBALANCE" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 35,65 )" ] } + ], + "false_effect": [ + { "u_message": "The disease proved tenacious. You'll have to try again.", "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 35,65 )" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_SCHIZOPHRENIC", + "condition": { "u_has_trait": "SCHIZOPHRENIC" }, + "effect": [ { "u_assign_activity": "ACT_VITAKIN_BANISH_ILLNESS_SCHIZOPHRENIC", "duration": "600 minutes" } ], + "false_effect": [ { "u_message": "You don't have kaluptic psychosis. There is no need to attempt to cure it.", "type": "mixed" } ] + }, + { + "id": "ACT_VITAKIN_BANISH_ILLNESS_SCHIZOPHRENIC", + "type": "activity_type", + "activity_level": "LIGHT_EXERCISE", + "verb": "meditating", + "based_on": "time", + "completion_eoc": "EOC_VITAKIN_BANISH_ILLNESS_SCHIZOPHRENIC_RESULT" + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_SCHIZOPHRENIC_RESULT", + "condition": { "roll_contested": { "math": [ "rand( u_val('spell_level', 'spell: vita_banish_illness'))" ] }, "difficulty": 16 }, + "effect": [ + { "u_message": "You mind feels more normal.", "type": "good" }, + { "u_lose_trait": "SCHIZOPHRENIC" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 60,90 )" ] } + ], + "false_effect": [ + { "u_message": "The disease proved tenacious. You'll have to try again.", "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 60,90 )" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_JITTERY", + "condition": { "u_has_trait": "JITTERY" }, + "effect": [ { "u_assign_activity": "ACT_VITAKIN_BANISH_ILLNESS_JITTERY", "duration": "300 minutes" } ], + "false_effect": [ { "u_message": "You don't have muscle jitters. There is no need to attempt to cure it.", "type": "mixed" } ] + }, + { + "id": "ACT_VITAKIN_BANISH_ILLNESS_JITTERY", + "type": "activity_type", + "activity_level": "LIGHT_EXERCISE", + "verb": "meditating", + "based_on": "time", + "completion_eoc": "EOC_VITAKIN_BANISH_ILLNESS_JITTERY_RESULT" + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_JITTERY_RESULT", + "condition": { "roll_contested": { "math": [ "rand( u_val('spell_level', 'spell: vita_banish_illness'))" ] }, "difficulty": 12 }, + "effect": [ + { "u_message": "You muscles stop trembling.", "type": "good" }, + { "u_lose_trait": "JITTERY" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 30,65 )" ] } + ], + "false_effect": [ + { "u_message": "The disease proved tenacious. You'll have to try again.", "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 30,65 )" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_MOODSWINGS", + "condition": { "u_has_trait": "MOODSWINGS" }, + "effect": [ { "u_assign_activity": "ACT_VITAKIN_BANISH_ILLNESS_MOODSWINGS", "duration": "420 minutes" } ], + "false_effect": [ { "u_message": "You don't have mood swings. There is no need to attempt to cure it.", "type": "mixed" } ] + }, + { + "id": "ACT_VITAKIN_BANISH_ILLNESS_MOODSWINGS", + "type": "activity_type", + "activity_level": "LIGHT_EXERCISE", + "verb": "meditating", + "based_on": "time", + "completion_eoc": "EOC_VITAKIN_BANISH_ILLNESS_MOODSWINGS_RESULT" + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_MOODSWINGS_RESULT", + "condition": { "roll_contested": { "math": [ "rand( u_val('spell_level', 'spell: vita_banish_illness'))" ] }, "difficulty": 15 }, + "effect": [ + { "u_message": "You mood calms.", "type": "good" }, + { "u_lose_trait": "MOODSWINGS" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 30,65 )" ] } + ], + "false_effect": [ + { "u_message": "The disease proved tenacious. You'll have to try again.", "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 30,65 )" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_WEAKENING", + "condition": { "u_has_trait": "WEAKENING" }, + "effect": [ { "u_assign_activity": "ACT_VITAKIN_BANISH_ILLNESS_WEAKENING", "duration": "480 minutes" } ], + "false_effect": [ { "u_message": "You don't have a weakening sickness. There is no need to attempt to cure it.", "type": "mixed" } ] + }, + { + "id": "ACT_VITAKIN_BANISH_ILLNESS_WEAKENING", + "type": "activity_type", + "activity_level": "LIGHT_EXERCISE", + "verb": "meditating", + "based_on": "time", + "completion_eoc": "EOC_VITAKIN_BANISH_ILLNESS_WEAKENING_RESULT" + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_WEAKENING_RESULT", + "condition": { "roll_contested": { "math": [ "rand( u_val('spell_level', 'spell: vita_banish_illness'))" ] }, "difficulty": 15 }, + "effect": [ + { "u_message": "New vigor fills your body.", "type": "good" }, + { "u_lose_trait": "WEAKENING" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 45,75 )" ] } + ], + "false_effect": [ + { "u_message": "The disease proved tenacious. You'll have to try again.", "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 45,75 )" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_NARCOLEPTIC", + "condition": { "u_has_trait": "NARCOLEPTIC" }, + "effect": [ { "u_assign_activity": "ACT_VITAKIN_BANISH_ILLNESS_NARCOLEPTIC", "duration": "120 minutes" } ], + "false_effect": [ { "u_message": "You don't have narcolepsy. There is no need to attempt to cure it.", "type": "mixed" } ] + }, + { + "id": "ACT_VITAKIN_BANISH_ILLNESS_NARCOLEPTIC", + "type": "activity_type", + "activity_level": "LIGHT_EXERCISE", + "verb": "meditating", + "based_on": "time", + "completion_eoc": "EOC_VITAKIN_BANISH_ILLNESS_NARCOLEPTIC_RESULT" + }, + { + "type": "effect_on_condition", + "id": "EOC_VITAKIN_BANISH_ILLNESS_NARCOLEPTIC_RESULT", + "condition": { "roll_contested": { "math": [ "rand( u_val('spell_level', 'spell: vita_banish_illness'))" ] }, "difficulty": 13 }, + "effect": [ + { "u_message": "New vigor fills your body.", "type": "good" }, + { "u_lose_trait": "NARCOLEPTIC" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 50,100 )" ] } + ], + "false_effect": [ + { "u_message": "The disease proved tenacious. You'll have to try again.", "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 50,100 )" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_VITA_SUPER_HEAL_DRAIN", + "effect": [ + { "math": [ "u_val('stored_kcal')", "-=", "rng( 50,250 )" ] }, + { "math": [ "u_val('vitamin', 'name:iron')", "-=", "rng( 50,200 )" ] }, + { "math": [ "u_val('vitamin', 'name:calcium')", "-=", "rng( 100,200 )" ] }, + { "math": [ "u_val('vitamin', 'name:vitC')", "-=", "rng( 20,80 )" ] }, + { "math": [ "u_val('fatigue')", "+=", "rng( 2,10 )" ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/professions.json b/data/Mainline_mods/Mods/MindOverMatter/professions.json new file mode 100644 index 000000000..30799d424 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/professions.json @@ -0,0 +1,222 @@ +[ + { + "type": "profession", + "id": "psi_new_psychic", + "name": "Awakening Psion", + "description": "You survived a portal storm and hid inside while reality broke around you, and when you left to examine the damage you found a strange crystal the storm had left behind. It was captivating, and you took it with you. Sometimes, at night, you look into it before you sleep, and you almost feel like something in you is responding to the glow within the crystal.", + "points": 1, + "items": { + "both": { + "items": [ "jeans", "longshirt", "socks", "sneakers", "mbag", "water_clean", "wristwatch", "matrix_crystal_coruscating" ], + "entries": [ { "group": "charged_smart_phone" }, { "group": "charged_matches" } ] + }, + "male": [ "boxer_shorts" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "psi_biokinetic_athlete", + "name": "Star Athlete", + "description": "You were always good at athletics. People praised your effort and hard work, but the truth was you barely needed to practice. It all just came naturally to you, as naturally as breathing. That kept you safe during the Cataclysm--you outran the dead and worse things that chased you and made it out of the cities, and they're certainly the thing that will keep you going, especially since now, you're stronger and faster than you've ever been.", + "points": 4, + "skills": [ { "level": 2, "name": "throw" }, { "level": 3, "name": "swimming" }, { "level": 1, "name": "unarmed" } ], + "traits": [ "BIOKINETIC", "BIOKIN_NEEDS" ], + "spells": [ + { "id": "biokin_physical_enhance", "level": 4 }, + { "id": "biokin_overcome_pain", "level": 2 }, + { "id": "biokin_flexibility", "level": 3 }, + { "id": "biokin_reflex_enhance", "level": 1 } + ], + "items": { + "both": { + "items": [ "jacket_light", "jeans", "socks", "cleats", "sports_drink" ], + "entries": [ { "group": "charged_smart_phone" }, { "item": "tshirt", "variant": "generic_tshirt" } ] + }, + "male": [ "boxer_shorts" ], + "female": [ "sports_bra", "panties" ] + } + }, + { + "type": "profession", + "id": "psi_clairsentient_doomseer", + "name": "Doomseer", + "description": "You knew the world was going to end, but they never listened. They never listened! They couldn't see the things that walked among them! They didn't know what you had seen, what you knew was coming, and where are they now? In a zombie's stomach or walking with those corpses themselves, but you're still alive.", + "points": 0, + "skills": [ { "level": 2, "name": "speech" }, { "level": 1, "name": "metaphysics" } ], + "traits": [ "CLAIRSENTIENT", "CLAIR_SENSES", "SCHIZOPHRENIC" ], + "spells": [ + { "id": "clair_night_vision", "level": 4 }, + { "id": "clair_danger_sense", "level": 3 }, + { "id": "clair_spot_weakness", "level": 3 }, + { "id": "clair_voyance", "level": 2 } + ], + "items": { + "both": { + "items": [ "jeans", "socks", "robe", "lowtops", "newest_newspaper", "weeks_old_newspaper", "months_old_newspaper" ], + "entries": [ { "group": "charged_smart_phone" }, { "item": "tshirt", "variant": "generic_tshirt" } ] + }, + "male": [ "briefs" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "psi_pyrokinetic_firestarter", + "name": "Firestarter", + "description": "Fire always fascinated you. The fires you set almost got you arrested a few times, but the urge was just too powerful. It was like they were calling to you, urging you to create them. And ever since the sky broke, you can create fire with merely a thought.", + "points": 4, + "skills": [ { "level": 2, "name": "cooking" }, { "level": 1, "name": "driving" }, { "level": 2, "name": "metaphysics" } ], + "traits": [ "PYROMANIA", "PYROKINETIC", "PYROGLOW_WEAK", "PYROGLOW_STRONG" ], + "spells": [ + { "id": "pyrokinetic_eruption", "level": 4 }, + { "id": "pyrokinetic_quell_flames", "level": 2 }, + { "id": "pyrokinetic_flamethrower", "level": 3 }, + { "id": "pyrokinetic_flash", "level": 3 } + ], + "items": { + "both": { + "items": [ "socks", "jeans", "sneakers" ], + "entries": [ + { "item": "tshirt", "variant": "generic_tshirt" }, + { "item": "lighter", "charges": 100 }, + { "item": "lighter", "charges": 100 }, + { "group": "charged_matches" } + ] + }, + "male": [ "boxer_shorts" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "psi_telekinetic_testsubject", + "name": "Test Subject, Project ONYX LIGHTNING", + "description": "Before the Cataclysm, you were 'volunteered' for a top-secret military project. They never told you what all the injections and EEGs and hours of staring at a quarter on the table were supposed to accomplish, but now that you can move things with your mind you have a pretty good idea what they were aiming at.", + "points": 5, + "skills": [ + { "level": 2, "name": "gun" }, + { "level": 2, "name": "pistol" }, + { "level": 1, "name": "dodge" }, + { "level": 1, "name": "driving" }, + { "level": 1, "name": "metaphysics" } + ], + "traits": [ "TELEKINETIC", "TELEKINETIC_LIFTER_1" ], + "spells": [ + { "id": "telekinetic_push", "level": 4 }, + { "id": "telekinetic_pull", "level": 3 }, + { "id": "telekinetic_momentum", "level": 2 }, + { "id": "telekinetic_wave", "level": 2 } + ], + "items": { + "both": { + "items": [ "pants_army", "gloves_tactical", "army_top", "boots_combat", "socks" ], + "entries": [ { "item": "water_clean", "container-item": "canteen" }, { "item": "knife_combat", "container-item": "sheath" } ] + }, + "male": [ "boxer_briefs" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "psi_telepath_interrogater", + "name": "Government Interrogater (DECEASED)", + "description": "You did not die in the Cataclysm because on paper, you are already dead. You assumed a new identity as part of an experimental program designed to produce psychic interrogators. They told you that you were serving your country, that your gifts would be the key to winning the new Cold War that was surely developing, but they didn't consider the ramifications of having a telepath on the base. You knew right away that things were much worse than the brass was telling you, and your gifts let you \"persuade\" the guards to let you out even in the face of the lockdown. You had thought to go somewhere else, to get away from New England, but the end came much faster than even you thought it would.", + "points": 3, + "skills": [ { "level": 3, "name": "speech" }, { "level": 3, "name": "metaphysics" } ], + "traits": [ "TELEPATH", "TELEPATHIC_SUGGESTION" ], + "spells": [ + { "id": "telepathic_concentration", "level": 4 }, + { "id": "telepathic_shield", "level": 2 }, + { "id": "telepathic_morale", "level": 4 }, + { "id": "telepathic_confusion", "level": 2 } + ], + "items": { + "both": { + "items": [ "pants", "dress_shirt", "socks", "dress_shoes" ], + "entries": [ + { "item": "water_clean", "container-item": "canteen" }, + { "group": "charged_smart_phone" }, + { "item": "lighter", "charges": 100 } + ] + }, + "male": [ "briefs" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "psi_teleporter_slider", + "name": "Itzcuauhtli Corps Liaison, Yohualli Èhecatl Division", + "description": "You don't understand what happened. You were readying for a routine jump at the Far Hebrides transfer point when there was a power cascade in the drive and now you're here, on some other version of Tlalticpactli. You need to find your way back home, but first you need to find a way to survive.", + "points": 6, + "skills": [ + { "level": 2, "name": "computer" }, + { "level": 2, "name": "gun" }, + { "level": 2, "name": "pistol" }, + { "level": 3, "name": "metaphysics" } + ], + "traits": [ "TELEPORTER", "TELEPORTER_PROTECT" ], + "spells": [ + { "id": "teleport_blink", "level": 5 }, + { "id": "teleport_slow", "level": 1 }, + { "id": "teleport_transpose", "level": 4 }, + { "id": "teleport_farstep", "level": 3 } + ], + "items": { + "both": { + "items": [ "wristwatch", "pants", "dress_shirt", "socks", "dress_shoes", "officer_uniform", "beret", "holster" ], + "entries": [ + { "item": "mom_fusion_pistol", "ammo-item": "mom_fusion_ammo", "charges": 40, "contents-item": [ "mom_fusion_mag" ] }, + { "item": "mom_fusion_mag", "ammo-item": "mom_fusion_ammo", "charges": 40 } + ] + }, + "male": [ "briefs" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "psi_vitakinetic_healer", + "name": "Faith Healer", + "description": "People came to you for diseases that modern medicine told them were incurable, and you made them well. At least, they felt well, and that was what mattered. Now the dead walk and do not respond to your exhortations, but your healing works better on yourself than it ever has on anyone else.", + "points": 4, + "skills": [ { "level": 2, "name": "speech" }, { "level": 1, "name": "driving" }, { "level": 1, "name": "metaphysics" } ], + "traits": [ "VITAKINETIC", "VITAKINETIC_HEALTH", "SPIRITUAL" ], + "spells": [ + { "id": "vita_stop_bleeding", "level": 2 }, + { "id": "vita_health_power", "level": 5 }, + { "id": "vita_hurt_touch", "level": 2 }, + { "id": "vita_sleeping_trance", "level": 1 } + ], + "items": { + "both": { + "items": [ "dress_shirt", "pants", "socks", "dress_shoes", "wristwatch", "flyer", "flyer", "flyer", "holy_symbol" ], + "entries": [ { "group": "charged_smart_phone" } ] + }, + "male": [ "briefs" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "paranormal_investigator", + "copy-from": "paranormal_investigator", + "description": "You were dismissed from your position as a parapsychology professor at the local university and started your own business as a paranormal investigator. Your former colleagues didn't approve of your research, but it looks like it's paying off now.", + "extend": { "skills": [ { "level": 2, "name": "metaphysics" } ] } + }, + { + "type": "profession", + "id": "guru", + "copy-from": "guru", + "description": "You spent many years traveling through the world, becoming wise and learned. Normally you can answer any question, but even you are not quite sure what to do about the ravenous undead.", + "extend": { "skills": [ { "level": 3, "name": "metaphysics" } ] } + }, + { + "type": "profession", + "id": "naturalist", + "copy-from": "naturalist", + "description": "Over long years of self-imposed exile in the wilderness, you have come to an understanding with Mother Nature. The world as they knew it might have ended for your forsaken species, but you can hardly tell the difference.", + "extend": { "skills": [ { "level": 1, "name": "metaphysics" } ] } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/armor.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/armor.json new file mode 100644 index 000000000..7cd8cda6e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/armor.json @@ -0,0 +1,29 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "psionic_anchoring_crown", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_ARMOR", + "skill_used": "fabrication", + "skills_required": [ "metaphysics", 5 ], + "difficulty": 3, + "time": "250 m", + "book_learn": [ [ "schematics_anchoring_crown", 3 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_psionic_basic", "required": true }, + { "proficiency": "prof_psionic_containment", "required": false }, + { "proficiency": "prof_psionic_warping", "required": false } + ], + "using": [ [ "blacksmithing_standard", 3 ], [ "steel_tiny", 1 ] ], + "qualities": [ { "id": "MATRIX_CHANNEL", "level": 1 }, { "id": "MATRIX_FOCUS", "level": 1 } ], + "tools": [ [ [ "swage", -1 ] ] ], + "components": [ + [ [ "matrix_crystal_telepath_dust", 3 ] ], + [ [ "matrix_crystal_teleport_dust", 6 ] ], + [ [ "steel_chunk", 2 ], [ "steel_lump", 1 ] ] + ], + "flags": [ "SECRET" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/categories.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/categories.json new file mode 100644 index 000000000..7e6f303aa --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/categories.json @@ -0,0 +1,26 @@ +[ + { + "type": "recipe_category", + "id": "CC_PSIONIC", + "recipe_subcategories": [ + "CSC_ALL", + "CSC_PSIONIC_WEAPONS", + "CSC_PSIONIC_ARMOR", + "CSC_PSIONIC_MEDICAL", + "CSC_PSIONIC_TOOLS", + "CSC_PSIONIC_PARTS", + "CSC_PSIONIC_RITUALS", + "CSC_PSIONIC_OTHER" + ] + }, + { + "type": "tool_quality", + "id": "MATRIX_FOCUS", + "name": "matrix alignment" + }, + { + "type": "tool_quality", + "id": "MATRIX_CHANNEL", + "name": "matrix concentration" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/chemistry.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/chemistry.json new file mode 100644 index 000000000..39bc07ce2 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/chemistry.json @@ -0,0 +1,291 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "psionic_serum_base", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "difficulty": 5, + "time": "55 m", + "batch_time_factors": [ 80, 4 ], + "book_learn": [ [ "schematics_reactant_liquid_base", 5 ] ], + "proficiencies": [ { "proficiency": "prof_psionic_basic", "required": false } ], + "using": [ [ "serum_production_standard", 25 ] ], + "components": [ + [ [ "ether", 100 ] ], + [ [ "matrix_crystal_drained_dust", 3 ], [ "matrix_crystal_drained_dust_refined", 1 ] ], + [ [ "water_clean", 5 ] ], + [ [ "chem_aluminium_powder", 10 ] ], + [ [ "chem_zinc_powder", 10 ] ] + ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_biokin_dust_refined", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 5, + "time": "1 h", + "book_learn": [ [ "schematics_matrix_crystal_ground", 5 ] ], + "qualities": [ { "id": "FINE_GRIND", "level": 1 }, { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "microscope", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_inorganic_chemistry", "required": false }, + { "proficiency": "prof_psionic_basic", "required": false } + ], + "using": [ [ "any_strong_acid", 2, "LIST" ], [ "surface_heat", 30, "LIST" ] ], + "components": [ [ [ "matrix_crystal_biokin_dust", 3 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_biokin_dust_potion", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "chemistry", + "difficulty": 1, + "time": "1 m", + "book_learn": [ [ "schematics_matrix_crystal_ground", 1 ] ], + "components": [ [ [ "matrix_crystal_biokin_dust_refined", 1 ] ], [ [ "water_clean", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_clair_dust_refined", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 5, + "time": "1 h", + "book_learn": [ [ "schematics_matrix_crystal_ground", 5 ] ], + "qualities": [ { "id": "FINE_GRIND", "level": 1 }, { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "microscope", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_inorganic_chemistry", "required": false }, + { "proficiency": "prof_psionic_basic", "required": false } + ], + "using": [ [ "any_strong_acid", 2, "LIST" ], [ "surface_heat", 30, "LIST" ] ], + "components": [ [ [ "matrix_crystal_clair_dust", 3 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_clair_dust_potion", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "chemistry", + "difficulty": 1, + "time": "1 m", + "book_learn": [ [ "schematics_matrix_crystal_ground", 1 ] ], + "components": [ [ [ "matrix_crystal_clair_dust_refined", 1 ] ], [ [ "water_clean", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_pyrokin_dust_refined", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 5, + "time": "1 h", + "book_learn": [ [ "schematics_matrix_crystal_ground", 5 ] ], + "qualities": [ { "id": "FINE_GRIND", "level": 1 }, { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "microscope", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_inorganic_chemistry", "required": false }, + { "proficiency": "prof_psionic_basic", "required": false } + ], + "using": [ [ "any_strong_acid", 2, "LIST" ], [ "surface_heat", 30, "LIST" ] ], + "components": [ [ [ "matrix_crystal_pyrokin_dust", 3 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_pyrokin_dust_potion", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "chemistry", + "difficulty": 1, + "time": "1 m", + "book_learn": [ [ "schematics_matrix_crystal_ground", 1 ] ], + "components": [ [ [ "matrix_crystal_pyrokin_dust_refined", 1 ] ], [ [ "water_clean", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_telekin_dust_refined", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 5, + "time": "1 h", + "book_learn": [ [ "schematics_matrix_crystal_ground", 5 ] ], + "qualities": [ { "id": "FINE_GRIND", "level": 1 }, { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "microscope", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_inorganic_chemistry", "required": false }, + { "proficiency": "prof_psionic_basic", "required": false } + ], + "using": [ [ "any_strong_acid", 2, "LIST" ], [ "surface_heat", 30, "LIST" ] ], + "components": [ [ [ "matrix_crystal_telekin_dust", 3 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_telekin_dust_potion", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "chemistry", + "difficulty": 1, + "time": "1 m", + "book_learn": [ [ "schematics_matrix_crystal_ground", 1 ] ], + "components": [ [ [ "matrix_crystal_telekin_dust_refined", 1 ] ], [ [ "water_clean", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_telepath_dust_refined", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 5, + "time": "1 h", + "book_learn": [ [ "schematics_matrix_crystal_ground", 5 ] ], + "qualities": [ { "id": "FINE_GRIND", "level": 1 }, { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "microscope", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_inorganic_chemistry", "required": false }, + { "proficiency": "prof_psionic_basic", "required": false } + ], + "using": [ [ "any_strong_acid", 2, "LIST" ], [ "surface_heat", 30, "LIST" ] ], + "components": [ [ [ "matrix_crystal_telepath_dust", 3 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_telepath_dust_potion", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "chemistry", + "difficulty": 1, + "time": "1 m", + "book_learn": [ [ "schematics_matrix_crystal_ground", 1 ] ], + "components": [ [ [ "matrix_crystal_telepath_dust_refined", 1 ] ], [ [ "water_clean", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_teleport_dust_refined", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 5, + "time": "1 h", + "book_learn": [ [ "schematics_matrix_crystal_ground", 5 ] ], + "qualities": [ { "id": "FINE_GRIND", "level": 1 }, { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "microscope", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_inorganic_chemistry", "required": false }, + { "proficiency": "prof_psionic_basic", "required": false } + ], + "using": [ [ "any_strong_acid", 2, "LIST" ], [ "surface_heat", 30, "LIST" ] ], + "components": [ [ [ "matrix_crystal_teleport_dust", 3 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_teleport_dust_potion", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "chemistry", + "difficulty": 1, + "time": "1 m", + "book_learn": [ [ "schematics_matrix_crystal_ground", 1 ] ], + "components": [ [ [ "matrix_crystal_teleport_dust_refined", 1 ] ], [ [ "water_clean", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_vitakin_dust_refined", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 5, + "time": "1 h", + "book_learn": [ [ "schematics_matrix_crystal_ground", 5 ] ], + "qualities": [ { "id": "FINE_GRIND", "level": 1 }, { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "microscope", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_inorganic_chemistry", "required": false }, + { "proficiency": "prof_psionic_basic", "required": false } + ], + "using": [ [ "any_strong_acid", 2, "LIST" ], [ "surface_heat", 30, "LIST" ] ], + "components": [ [ [ "matrix_crystal_vitakin_dust", 3 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_vitakin_dust_potion", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "chemistry", + "difficulty": 1, + "time": "1 m", + "book_learn": [ [ "schematics_matrix_crystal_ground", 1 ] ], + "components": [ [ [ "matrix_crystal_vitakin_dust_refined", 1 ] ], [ [ "water_clean", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_crystal_drained_dust_refined", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 5, + "time": "1 h", + "book_learn": [ [ "schematics_matrix_crystal_ground", 5 ] ], + "qualities": [ { "id": "FINE_GRIND", "level": 1 }, { "id": "BOIL", "level": 1 } ], + "tools": [ [ [ "microscope", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_inorganic_chemistry", "required": false }, + { "proficiency": "prof_psionic_basic", "required": false } + ], + "using": [ [ "any_strong_acid", 2, "LIST" ], [ "surface_heat", 30, "LIST" ] ], + "components": [ [ [ "matrix_crystal_drained_dust", 3 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/construction.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/construction.json new file mode 100644 index 000000000..2ee36d1b2 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/construction.json @@ -0,0 +1,19 @@ +[ + { + "type": "construction_group", + "id": "place_standing_pyrokinetic_lamp", + "name": "Place Standing Matrix Lamp" + }, + { + "type": "construction", + "id": "ap_standing_pyrokinetic_lamp", + "group": "place_standing_pyrokinetic_lamp", + "category": "APPLIANCE", + "required_skills": [ [ "fabrication", 0 ] ], + "time": "5 s", + "components": [ [ [ "standing_pyrokinetic_lamp", 1 ] ] ], + "pre_special": "check_empty", + "post_special": "done_appliance", + "activity_level": "NO_EXERCISE" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/deconstruction.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/deconstruction.json new file mode 100644 index 000000000..94289c64d --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/deconstruction.json @@ -0,0 +1,74 @@ +[ + { + "result": "matrix_crystal_biokinesis", + "type": "uncraft", + "activity_level": "BRISK_EXERCISE", + "time": "45 m", + "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "GRIND", "level": 2 }, { "id": "FINE_GRIND", "level": 1 } ], + "components": [ [ [ "matrix_crystal_biokin_dust", 10 ] ] ] + }, + { + "result": "matrix_crystal_clairsentience", + "type": "uncraft", + "activity_level": "BRISK_EXERCISE", + "time": "45 m", + "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "GRIND", "level": 2 }, { "id": "FINE_GRIND", "level": 1 } ], + "components": [ [ [ "matrix_crystal_clair_dust", 10 ] ] ] + }, + { + "result": "matrix_crystal_pyrokinesis", + "type": "uncraft", + "activity_level": "BRISK_EXERCISE", + "time": "45 m", + "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "GRIND", "level": 2 }, { "id": "FINE_GRIND", "level": 1 } ], + "components": [ [ [ "matrix_crystal_pyrokin_dust", 10 ] ] ] + }, + { + "result": "matrix_crystal_telekinesis", + "type": "uncraft", + "activity_level": "BRISK_EXERCISE", + "time": "45 m", + "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "GRIND", "level": 2 }, { "id": "FINE_GRIND", "level": 1 } ], + "components": [ [ [ "matrix_crystal_telekin_dust", 10 ] ] ] + }, + { + "result": "matrix_crystal_telepathy", + "type": "uncraft", + "activity_level": "BRISK_EXERCISE", + "time": "45 m", + "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "GRIND", "level": 2 }, { "id": "FINE_GRIND", "level": 1 } ], + "components": [ [ [ "matrix_crystal_telepath_dust", 10 ] ] ] + }, + { + "result": "matrix_crystal_teleportation", + "type": "uncraft", + "activity_level": "BRISK_EXERCISE", + "time": "45 m", + "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "GRIND", "level": 2 }, { "id": "FINE_GRIND", "level": 1 } ], + "components": [ [ [ "matrix_crystal_teleport_dust", 10 ] ] ] + }, + { + "result": "matrix_crystal_vitakinesis", + "type": "uncraft", + "activity_level": "BRISK_EXERCISE", + "time": "45 m", + "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "GRIND", "level": 2 }, { "id": "FINE_GRIND", "level": 1 } ], + "components": [ [ [ "matrix_crystal_vitakin_dust", 10 ] ] ] + }, + { + "result": "matrix_crystal_drained", + "type": "uncraft", + "activity_level": "BRISK_EXERCISE", + "time": "45 m", + "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "GRIND", "level": 2 }, { "id": "FINE_GRIND", "level": 1 } ], + "components": [ [ [ "matrix_crystal_drained_dust", 10 ] ] ] + }, + { + "result": "matrix_shard", + "type": "uncraft", + "activity_level": "BRISK_EXERCISE", + "time": "45 m", + "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "GRIND", "level": 2 }, { "id": "FINE_GRIND", "level": 1 } ], + "components": [ [ [ "matrix_crystal_drained_dust", 25 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/drain.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/drain.json new file mode 100644 index 000000000..0c28daafe --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/drain.json @@ -0,0 +1,53 @@ +[ + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "name": "centering meditation", + "id": "psi_centering_meditation_drain_reduce", + "description": "Through practice, you've learned how to calm and focus yourself during meditation. If you meditated properly, you could channel the unnatural drain of psionic channeling into mundane tiredness, though it may take some time to meditate all of your drain away.", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "difficulty": 4, + "time": "15 m", + "autolearn": true, + "skill_used": "metaphysics", + "flags": [ "BLIND_EASY" ], + "result_eocs": [ + { + "id": "EOC_CENTERING_MEDITATION", + "effect": [ { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "-=", "1" ] } ] + } + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "name": "drain channeling protocol PGS38", + "id": "psi_matrix_channeling_drain_reduce", + "description": "That report indicated there was a way to channel all of the unnatural fatigue from long-term psionic use into a focusing object. All you need is a drained matrix crystal and time.", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "metaphysics", + "difficulty": 7, + "time": "4 h", + "book_learn": [ [ "phavian_report_psionic_drain", 5 ] ], + "proficiencies": [ + { "proficiency": "prof_psionic_basic", "required": true }, + { "proficiency": "prof_psionic_containment", "required": false } + ], + "components": [ [ [ "matrix_crystal_drained", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_MATRIX_DRAIN_MEDITATION", + "effect": [ + { + "u_message": "You channel all of the unnatural fatigue into the drained matrix crystal in your hands. As you do, the faint light in its depths grows steadily brighter and the crystal begins to feel warm in your hands. Suddenly, the crystal shatters…and with it, all of the fatigue your powers caused you vanishes." + }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "=", "0" ] }, + { "u_spawn_item": "matrix_crystal_drained_dust", "count": 10 } + ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/medical.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/medical.json new file mode 100644 index 000000000..79ff6f1b9 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/medical.json @@ -0,0 +1,85 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "psionic_instability_remover", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_MEDICAL", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 4 ], + "difficulty": 7, + "time": "240 m", + "batch_time_factors": [ 80, 3 ], + "book_learn": [ [ "schematics_instability_remover", 7 ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_intro_biology", "required": false }, + { "proficiency": "prof_pharmaceutical", "required": false }, + { "proficiency": "prof_psionic_basic", "required": true }, + { "proficiency": "prof_psionic_containment", "required": false }, + { "proficiency": "prof_psionic_morphic", "required": false } + ], + "using": [ [ "serum_production_standard", 25 ] ], + "qualities": [ { "id": "MATRIX_CHANNEL", "level": 1 }, { "id": "MATRIX_FOCUS", "level": 1 } ], + "components": [ + [ [ "psionic_serum_base", 10 ] ], + [ [ "matrix_crystal_biokin_dust", 4 ] ], + [ [ "matrix_crystal_vitakin_dust_refined", 4 ] ] + ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "psionic_purifier_vita", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_MEDICAL", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 5 ], + "difficulty": 8, + "time": "350 m", + "book_learn": [ [ "schematics_psionic_purifier", 8 ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_intro_biology", "required": false }, + { "proficiency": "prof_pharmaceutical", "required": false }, + { "proficiency": "prof_psionic_basic", "required": true }, + { "proficiency": "prof_psionic_containment", "required": true }, + { "proficiency": "prof_psionic_morphic", "required": false } + ], + "using": [ [ "serum_production_standard", 25 ] ], + "qualities": [ { "id": "MATRIX_CHANNEL", "level": 1 }, { "id": "MATRIX_FOCUS", "level": 1 } ], + "components": [ + [ [ "psionic_serum_base", 5 ] ], + [ [ "matrix_crystal_biokin_dust_refined", 3 ] ], + [ [ "matrix_crystal_pyrokin_dust", 2 ] ], + [ [ "matrix_crystal_vitakin_dust_refined", 3 ] ], + [ [ "mutagen_chelator", 1 ], [ "iv_purifier", 1 ] ] + ], + "flags": [ "SECRET", "BLIND_HARD" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "psi_noetic_resilience_treatment", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_MEDICAL", + "skill_used": "chemistry", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 6, + "time": "280 m", + "book_learn": [ [ "schematics_noetic_resilience", 6 ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_intro_biology", "required": false }, + { "proficiency": "prof_pharmaceutical", "required": false }, + { "proficiency": "prof_psionic_basic", "required": true }, + { "proficiency": "prof_psionic_containment", "required": false }, + { "proficiency": "prof_psionic_warping", "required": false } + ], + "using": [ [ "serum_production_standard", 25 ], [ "matrix_dust_refined", 4, "LIST" ] ], + "qualities": [ { "id": "MATRIX_CHANNEL", "level": 1 }, { "id": "MATRIX_FOCUS", "level": 1 } ], + "components": [ [ [ "psionic_serum_base", 3 ] ], [ [ "thorazine", 2 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/nested.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/nested.json new file mode 100644 index 000000000..a1947a985 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/nested.json @@ -0,0 +1,22 @@ +[ + { + "id": "crystalline_potions", + "type": "nested_category", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_MEDICAL", + "name": "crystalline elixirs", + "description": "Recipes for mixing refined matrix crystal into water.", + "skill_used": "metaphysics", + "nested_category_data": [ + "matrix_crystal_biokin_dust_potion", + "matrix_crystal_clair_dust_potion", + "matrix_crystal_pyrokin_dust_potion", + "matrix_crystal_telekin_dust_potion", + "matrix_crystal_telepath_dust_potion", + "matrix_crystal_teleport_dust_potion", + "matrix_crystal_vitakin_dust_potion" + ], + "difficulty": 1 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/power_improvements.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/power_improvements.json new file mode 100644 index 000000000..0d900c9cd --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/power_improvements.json @@ -0,0 +1,18 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: lifting field", + "id": "improve_telekinesis_lifting_field", + "description": "WARNING: DO NOT USE IF YOUR LIFTING FIELD CONTAINS ANYTHING.\n\nContemplate your powers and update your ability to carry objects for long periods of time to a level commensurate with your overall telekinetic mastery.\n\nWARNING: DO NOT USE IF YOUR LIFTING FIELD CONTAINS ANYTHING.", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "metaphysics", + "difficulty": 0, + "time": "1 h", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ "EOC_TELEKINETIC_LIFTER" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/biokinetic_practice.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/biokinetic_practice.json new file mode 100644 index 000000000..035146899 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/biokinetic_practice.json @@ -0,0 +1,585 @@ +[ + { + "id": "biokinetic_practice", + "type": "nested_category", + "//": "XP for level 12 is 49417, for level 10 is 35279, for level 7 is 20514", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "contemplation: biokinesis", + "description": "Recipes related to practicing biokinesis.", + "skill_used": "metaphysics", + "nested_category_data": [ + "practice_biokin_physical_enhance", + "practice_biokin_overcome_pain", + "practice_biokin_flexibility", + "practice_biokin_climate_control", + "practice_biokin_enhance_mobility", + "practice_biokin_armor_skin", + "practice_biokin_hammerhand", + "practice_biokin_reflex_enhance", + "practice_biokin_sealed_system", + "practice_biokin_combat_dance", + "practice_biokin_perfected_motion" + ], + "difficulty": 1 + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: overcome pain", + "id": "practice_biokin_overcome_pain", + "description": "Contemplate your powers and improve your ability to resist pain.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 0, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_OVERCOME_PAIN", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_overcome_pain')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_overcome_pain')", "<=", "(difficulty_one_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_overcome_pain')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_OVERCOME_PAIN_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_overcome_pain')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: physical enhancement", + "id": "practice_biokin_physical_enhance", + "description": "Contemplate your powers and improve your ability to enhance your physical strength and agility.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 1, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_PHYSICAL_ENHANCE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_physical_enhance')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_physical_enhance')", "<=", "(difficulty_two_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_physical_enhance')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_PHYSICAL_ENHANCE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_physical_enhance')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: flexibility", + "id": "practice_biokin_flexibility", + "description": "Contemplate your powers and improve your ability to move your body.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_FLEXIBILITY", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_flexibility')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_flexibility')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_flexibility')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_FLEXIBILITY_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_flexibility')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: armor skin", + "id": "practice_biokin_armor_skin", + "description": "Contemplate your powers and improve your ability to harden your flesh.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 3, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_biokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_ARMOR_SKIN", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_armor_skin')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_armor_skin')", "<=", "(difficulty_four_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_armor_skin')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_ARMOR_SKIN_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_armor_skin')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: temperature adaptability", + "id": "practice_biokin_climate_control", + "description": "Contemplate your powers and improve your ability to withstand temperature variations.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 3, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_biokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_CLIMATE_CONTROL", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_climate_control')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_climate_control')", "<=", "(difficulty_four_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_climate_control')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_CLIMATE_CONTROL_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_climate_control')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: enhance mobility", + "id": "practice_biokin_enhance_mobility", + "description": "Contemplate your powers and improve your ability to deal with encumbering gear.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_biokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_ENHANCE_MOBILITY", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_enhance_mobility')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_enhance_mobility')", "<=", "(difficulty_five_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_enhance_mobility')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_ENHANCE_MOBILITY_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_enhance_mobility')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: hammerhand", + "id": "practice_biokin_hammerhand", + "description": "Contemplate your powers and improve your ability to eschew the use of tools.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_biokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_HAMMERHAND", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_hammerhand')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_hammerhand')", "<=", "(difficulty_five_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_hammerhand')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_HAMMERHAND_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_hammerhand')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: heightened reflexes", + "id": "practice_biokin_reflex_enhance", + "description": "Contemplate your powers and improve your ability to enhance your reflexes.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 5, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_biokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_REFLEX_ENHANCE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_reflex_enhance')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_reflex_enhance')", "<=", "(difficulty_six_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_reflex_enhance')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_REFLEX_ENHANCE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_reflex_enhance')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: sealed system", + "id": "practice_biokin_sealed_system", + "description": "Contemplate your powers and improve your ability to hermetically seal your body.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 6, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_biokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_SEALED_SYSTEM", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_sealed_system')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_sealed_system')", "<=", "(difficulty_seven_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_sealed_system')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_SEALED_SYSTEM_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_sealed_system')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: combat dance", + "id": "practice_biokin_combat_dance", + "description": "Contemplate your powers and improve your combat prowess.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 7, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_biokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_COMBAT_DANCE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_combat_dance')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_combat_dance')", "<=", "(difficulty_eight_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_combat_dance')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_COMBAT_DANCE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_combat_dance')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: perfected motion", + "id": "practice_biokin_perfected_motion", + "description": "Contemplate your powers and improve your ability to outrun a racehorse.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 8, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_biokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_PERFECTED_MOTION", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_perfected_motion')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: biokin_perfected_motion')", "<=", "(difficulty_nine_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: biokin_perfected_motion')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_BIOKIN_PERFECTED_MOTION_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: biokin_perfected_motion')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/clairsentient_practice.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/clairsentient_practice.json new file mode 100644 index 000000000..024a3c2d5 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/clairsentient_practice.json @@ -0,0 +1,579 @@ +[ + { + "id": "clairsentient_practice", + "type": "nested_category", + "//": "XP for level 12 is 49417, for level 10 is 35279, for level 7 is 20514", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "contemplation: clairsentience", + "description": "Recipes related to practicing clairsentience.", + "skill_used": "metaphysics", + "nested_category_data": [ + "practice_clair_night_vision", + "practice_clair_danger_sense", + "practice_clair_speed_reading", + "practice_clair_sense_rads", + "practice_clair_spot_weakness", + "practice_clair_ranged_enhance", + "practice_clair_voyance", + "practice_clair_dodge_power", + "practice_clair_see_map", + "practice_clair_clear_sight", + "practice_clair_omniscience" + ], + "difficulty": 1 + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: night eyes", + "id": "practice_clair_night_vision", + "description": "Contemplate your powers and improve your ability to enhance your mundane senses.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 0, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_NIGHT_VISION", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_night_vision')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: clair_night_vision')", "<=", "(difficulty_one_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_night_vision')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_NIGHT_VISION_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_night_vision')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: danger sense", + "id": "practice_clair_danger_sense", + "description": "Contemplate your powers and improve your sense of nearby danger.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 1, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_DANGER_SENSE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: clair_danger_sense')", "<=", "(difficulty_two_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_danger_sense')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_DANGER_SENSE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: speed reading", + "id": "practice_clair_speed_reading", + "description": "Contemplate your powers and improve your ability to comprehend books.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 1, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_SPEED_READING", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_speed_reading')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: clair_speed_reading')", "<=", "(difficulty_two_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_speed_reading')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_SPEED_READING_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_speed_reading')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: discern weakness", + "id": "practice_clair_spot_weakness", + "description": "Contemplate your powers and improve your sense of the vulnerabilities of your enemies.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_SPOT_WEAKNESS", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_spot_weakness')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: clair_spot_weakness')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_spot_weakness')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_SPOT_WEAKNESS_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_spot_weakness')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: sense radiation", + "id": "practice_clair_sense_rads", + "description": "Contemplate your powers and improve your ability to detect radiation.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_SENSE_RADS", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_sense_rads')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: clair_sense_rads')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_sense_rads')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_SENSE_RADS_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_sense_rads')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: marksman's eye", + "id": "practice_clair_ranged_enhance", + "description": "Contemplate your powers and improve your ability to aim ranged weapons with precision.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 3, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_clair_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_RANGED_ENHANCE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_ranged_enhance')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: clair_ranged_enhance')", "<=", "(difficulty_four_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_ranged_enhance')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_RANGED_ENHANCE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_ranged_enhance')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: clairvoyance", + "id": "practice_clair_voyance", + "description": "Contemplate your powers and improve your ability to extend your senses beyond your body.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_clair_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_VOYANCE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_voyance')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: clair_voyance')", "<=", "(difficulty_five_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_voyance')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_VOYANCE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_voyance')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: combat sense", + "id": "practice_clair_dodge_power", + "description": "Contemplate your powers and improve your ability to see into the very near-term future.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 5, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_clair_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_COMBAT_SENSE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_dodge_power')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: clair_dodge_power')", "<=", "(difficulty_four_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_dodge_power')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_COMBAT_SENSE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_dodge_power')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: satellite view", + "id": "practice_clair_see_map", + "description": "Contemplate your powers and improve your ability to extend your senses over a vast distance.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 6, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_clair_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_SEE_MAP", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_see_map')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: clair_see_map')", "<=", "(difficulty_seven_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_see_map')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_SEE_MAP_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_see_map')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: clarity", + "id": "practice_clair_clear_sight", + "description": "Contemplate your powers and improve your ability to remove all barriers from your senses.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 7, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_clair_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_CLEAR_SIGHT", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_clear_sight')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: clair_clear_sight')", "<=", "(difficulty_six_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_clear_sight')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_CLEAR_SIGHT_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_clear_sight')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: omniscience", + "id": "practice_clair_omniscience", + "description": "Contemplate your powers and improve your ability to see everything. EVERYTHING.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 9, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_clair_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_OMNISCENCE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: clair_omniscience')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: clair_omniscience')", "<=", "(difficulty_ten_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: clair_omniscience')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_CLAIR_OMNISCENCE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: clair_omniscience')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/pyrokinesis_practice.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/pyrokinesis_practice.json new file mode 100644 index 000000000..1548ff553 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/pyrokinesis_practice.json @@ -0,0 +1,634 @@ +[ + { + "id": "pyrokinesis_practice", + "type": "nested_category", + "//": "XP for level 12 is 49417, for level 10 is 35279, for level 7 is 20514", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "contemplation: pyrokinesis", + "description": "Recipes related to practicing pyrokinesis.", + "skill_used": "metaphysics", + "nested_category_data": [ + "practice_pyrokinetic_flash", + "practice_pyrokinetic_eruption", + "practice_pyrokinetic_call_flames", + "practice_pyrokinetic_quell_flames", + "practice_pyrokinetic_thermogenesis", + "practice_pyrokinetic_lance", + "practice_pyrokinetic_cloak", + "practice_pyrokinetic_flamethrower", + "practice_pyrokinetic_aura", + "practice_pyrokinetic_flame_immunity", + "practice_pyrokinetic_blast", + "practice_pyrokinetic_aoe_blast" + ], + "difficulty": 1 + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: brilliant flash", + "id": "practice_pyrokinetic_flash", + "description": "Contemplate your powers and improve your ability to create light.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 0, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_FLASH", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_flash')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_flash')", "<=", "(difficulty_one_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_flash')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_FLASH_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_flash')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: fountain of flames", + "id": "practice_pyrokinetic_eruption", + "description": "Contemplate your powers and improve your ability to summon flames.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 1, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_FLAMES", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_eruption')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_eruption')", "<=", "(difficulty_two_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_eruption')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_FLAMES_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_eruption')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: quell fire", + "id": "practice_pyrokinetic_quell_flames", + "description": "Contemplate your powers and improve your ability to douse flames.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_QUELL_FIRE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_quell_flames')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_quell_flames')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_quell_flames')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_QUELL_FIRE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_quell_flames')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: banked flames", + "id": "practice_pyrokinetic_call_flames", + "description": "Contemplate your powers and improve your ability to summon a controlled flame.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_CALL_FLAMES", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_call_flames')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_call_flames')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_call_flames')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_CALL_FLAMES_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_call_flames')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: cloak of warmth", + "id": "practice_pyrokinetic_cloak", + "description": "Contemplate your powers and improve your control of nearby temperatures.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 3, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_pyrokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_CLOAK", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_cloak')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_cloak')", "<=", "(difficulty_four_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_cloak')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_CLOAK_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_cloak')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: flamethrower", + "id": "practice_pyrokinetic_flamethrower", + "description": "Contemplate your powers and improve your ability to direct a spray of flame.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_pyrokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_FLAMETHROWER", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_flamethrower')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_flamethrower')", "<=", "(difficulty_five_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_flamethrower')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_FLAMETHROWER_FALSE", + "condition": { "compare_num": [ { "u_val": "spell_level", "spell": "pyrokinetic_flamethrower" }, ">=", { "const": 1 } ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: incandescent lance", + "id": "practice_pyrokinetic_lance", + "description": "Contemplate your powers and improve your ability to focus heat into a searing point.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_pyrokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_LANCE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_lance')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_lance')", "<=", "(difficulty_five_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_lance')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_LANCE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_lance')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: blazing aura", + "id": "practice_pyrokinetic_aura", + "description": "Contemplate your powers and improve your ability to heat the surrounding air to dangerous temperatures.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 5, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_pyrokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_BLAZING", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_aura')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_aura')", "<=", "(difficulty_six_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_aura')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_BLAZING_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_aura')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: thermogenesis", + "id": "practice_pyrokinetic_thermogenesis", + "description": "Contemplate your powers and improve your ability to warm the air to produce lasting heat.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 5, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_pyrokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_THERMOGENESIS", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_thermogenesis')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_thermogenesis')", "<=", "(difficulty_six_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_thermogenesis')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_THERMOGENESIS_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_thermogenesis')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: flameshield", + "id": "practice_pyrokinetic_flame_immunity", + "description": "Contemplate your powers and improve your immunity to fire.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 6, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_pyrokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_FLAME_IMMUNITY", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_flame_immunity')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_flame_immunity')", "<=", "(difficulty_seven_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_flame_immunity')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_FLAME_IMMUNITY_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_flame_immunity')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: conflagration", + "id": "practice_pyrokinetic_blast", + "description": "Contemplate your powers and improve your manifestation of explosions.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 6, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_pyrokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_BLAST", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_blast')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_blast')", "<=", "(difficulty_seven_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_blast')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_BLAST_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_blast')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: hellfire", + "id": "practice_pyrokinetic_aoe_blast", + "description": "Contemplate your powers and improve your ability to call down sheets of fire on everything around you.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 8, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_pyrokin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_AOE_BLAST", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: pyrokinetic_aoe_blast')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: pyrokinetic_aoe_blast')", "<=", "(difficulty_nine_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: pyrokinetic_aoe_blast')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_PYROKIN_AOE_BLAST_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: pyrokinetic_aoe_blast')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/telekinesis_practice.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/telekinesis_practice.json new file mode 100644 index 000000000..79447e887 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/telekinesis_practice.json @@ -0,0 +1,633 @@ +[ + { + "id": "telekinesis_practice", + "type": "nested_category", + "//": "XP for level 12 is 49417, for level 10 is 35279, for level 7 is 20514", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "contemplation: telekinesis", + "description": "Recipes related to practicing telekinesis.", + "skill_used": "metaphysics", + "nested_category_data": [ + "practice_telekinetic_pull", + "practice_telekinetic_push", + "practice_telekinetic_momentum", + "practice_telekinetic_slowfall", + "practice_telekinetic_wave", + "practice_telekinetic_strength", + "practice_telekinetic_hammer", + "practice_telekinetic_vehicle_lift", + "practice_telekinetic_shield", + "practice_telekinetic_explosion", + "practice_telekinetic_levitation", + "practice_telekinetic_aegis" + ], + "difficulty": 1 + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: far hand", + "id": "practice_telekinetic_pull", + "description": "Contemplate your powers and improve your manipulation of outgoing forces.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 0, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_PULL", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_pull')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_pull')", "<=", "(difficulty_one_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_pull')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_PULL_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_pull')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: force shove", + "id": "practice_telekinetic_push", + "description": "Contemplate your powers and improve your manipulation of incoming forces.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 1, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_PUSH", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_push')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_push')", "<=", "(difficulty_two_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_push')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_PUSH_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_push')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: momentum alteration", + "id": "practice_telekinetic_momentum", + "description": "Contemplate your powers and improve your control of momentum.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_MOMENTUM", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_momentum')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telekinetic_momentum')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_momentum')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_MOMENTUM_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_momentum')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: slowfall", + "id": "practice_telekinetic_slowfall", + "description": "Contemplate your powers and improve your ability to reduce the pull of gravity on yourself.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telekin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_SLOWFALL", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_slowfall')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telekinetic_slowfall')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_slowfall')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_SLOWFALL_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_slowfall')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: wave of force", + "id": "practice_telekinetic_wave", + "description": "Contemplate your powers and develop your ability to control bursts of telekinetic force.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 3, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telekin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_FORCE_WAVE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_wave')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telekinetic_wave')", "<=", "(difficulty_four_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_wave')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_FORCE_WAVE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_wave')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: enhance strength", + "id": "practice_telekinetic_strength", + "description": "Contemplate your powers and improve your ability to move very heavy objects with your powers.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telekin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_ENHANCE_STRENGTH", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_strength')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telekinetic_strength')", "<=", "(difficulty_five_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_strength')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_ENHANCE_STRENGTH_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_strength')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: mindhammer", + "id": "practice_telekinetic_hammer", + "description": "Contemplate your powers and improve your ability to smash a small area with telekinetic force.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telekin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_MINDHAMMER", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_hammer')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telekinetic_hammer')", "<=", "(difficulty_five_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_hammer')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_MINDHAMMER_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_hammer')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: lift vehicle", + "id": "practice_telekinetic_vehicle_lift", + "description": "Contemplate your powers and improve your ability to pick up vehicles briefly.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 5, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telekin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_VEHICLE_LIFT", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_vehicle_lift')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telekinetic_vehicle_lift')", "<=", "(difficulty_six_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_vehicle_lift')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_VEHICLE_LIFT_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_vehicle_lift')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: inertial barrier", + "id": "practice_telekinetic_shield", + "description": "Contemplate your powers and improve your creation of force barriers.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 5, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telekin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_BARRIER", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_shield')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telekinetic_shield')", "<=", "(difficulty_six_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_shield')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_BARRIER_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_shield')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: wrecking ball", + "id": "practice_telekinetic_explosion", + "description": "Contemplate your powers and improve your manifestation of telekinetic explosions.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 6, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telekin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_BLAST", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_explosion')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telekinetic_explosion')", "<=", "(difficulty_seven_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_explosion')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_BLAST_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_explosion')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: levitation", + "id": "practice_telekinetic_levitation", + "description": "Contemplate your powers and improve you ability to not quite fly.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 6, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telekin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_LEVITATION", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_levitation')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telekinetic_levitation')", "<=", "(difficulty_seven_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_levitation')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_LEVITATION_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_levitation')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: aegis", + "id": "practice_telekinetic_aegis", + "description": "Contemplate your powers and improve your ability to shield yourself from all harm.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 8, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telekin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_AEGIS", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telekinetic_aegis')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telekinetic_aegis')", "<=", "(difficulty_nine_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telekinetic_aegis')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEKIN_AEGIS_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telekinetic_aegis')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/telepathy_practice.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/telepathy_practice.json new file mode 100644 index 000000000..d340a232d --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/telepathy_practice.json @@ -0,0 +1,481 @@ +[ + { + "id": "telepathy_practice", + "type": "nested_category", + "//": "XP for level 12 is 49417, for level 10 is 35279, for level 7 is 20514", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "contemplation: telepathy", + "description": "Recipes related to practicing telepathy.", + "skill_used": "metaphysics", + "nested_category_data": [ + "practice_telepathic_concentration", + "practice_telepathic_shield", + "practice_telepathic_morale", + "practice_telepathic_blast", + "practice_telepathic_confusion", + "practice_telepathic_invisibility", + "practice_telepathic_scream", + "practice_telepathic_mind_control", + "practice_telepathic_network" + ], + "difficulty": 1 + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: telepathic concentration", + "id": "practice_telepathic_concentration", + "description": "Contemplate your powers and improve your laser-like focus.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 0, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_CONCENTRATION", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_concentration')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telepathic_concentration')", "<=", "(difficulty_one_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telepathic_concentration')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_CONCENTRATION_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_concentration')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: telepathic shield", + "id": "practice_telepathic_shield", + "description": "Contemplate your powers and improve the resilience of your mind.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 1, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_SHIELD", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_shield')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telepathic_shield')", "<=", "(difficulty_two_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telepathic_shield')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_SHIELD_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_shield')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: mood stabilization", + "id": "practice_telepathic_morale", + "description": "Contemplate your powers and improve your control of your own emotions.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_MORALE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_morale')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telepathic_morale')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telepathic_morale')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_MORALE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_morale')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: synaptic overload", + "id": "practice_telepathic_blast", + "description": "Contemplate your powers and improve your mental strength to telepathically assault your enemies.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 3, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telepath_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATHIC_BLAST", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_blast')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telepathic_blast')", "<=", "(difficulty_four_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telepathic_blast')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATHIC_BLAST_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_blast')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: sensory deprivation", + "id": "practice_telepathic_confusion", + "description": "Contemplate your powers and improve your ability to confound your enemies's senses.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telepath_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_CONFUSION", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_confusion')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telepathic_confusion')", "<=", "(difficulty_five_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telepathic_confusion')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_CONFUSION_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_confusion')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: obscurity", + "id": "practice_telepathic_invisibility", + "description": "Contemplate your powers and improve your ability to make your enemies ignore you.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 5, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telepath_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_OBSCURITY", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_invisibility')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telepathic_invisibility')", "<=", "(difficulty_six_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telepathic_invisibility')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_OBSCURITY_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_invisibility')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: psychic scream", + "id": "practice_telepathic_scream", + "description": "Contemplate your powers and improve the volume of your undirected psionic shrieking.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 6, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telepath_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_SCREAM_RADIUS", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_blast_radius')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telepathic_blast_radius')", "<=", "(difficulty_seven_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telepathic_blast_radius')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_SCREAM_RADIUS_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_blast_radius')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: mind control", + "id": "practice_telepathic_mind_control", + "description": "Contemplate your powers and improve your domination of others' minds.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 7, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telepath_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_MIND_CONTROL", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_mind_control')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telepathic_mind_control')", "<=", "(difficulty_eight_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telepathic_mind_control')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_MIND_CONTROL_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_blast_radius')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: network effect", + "id": "practice_telepathic_network", + "description": "Contemplate your powers and improve your ability to link multiple people into a gestalt whole.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 8, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_telepath_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_NETWORK_EFFECT", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: telepathic_network')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: telepathic_network')", "<=", "(difficulty_nine_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: telepathic_network')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPATH_NETWORK_EFFECT_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: telepathic_network')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/teleportation_practice.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/teleportation_practice.json new file mode 100644 index 000000000..10a872cf4 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/teleportation_practice.json @@ -0,0 +1,573 @@ +[ + { + "id": "teleportation_practice", + "type": "nested_category", + "//": "XP for level 12 is 49417, for level 10 is 35279, for level 7 is 20514", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "contemplation: teleportation", + "description": "Recipes related to practicing teleportation.", + "skill_used": "metaphysics", + "nested_category_data": [ + "practice_teleport_blink", + "practice_teleport_slow", + "practice_teleport_phase", + "practice_teleport_stride", + "practice_teleport_transpose", + "practice_teleport_displacement", + "practice_teleport_farstep", + "practice_teleport_collapse", + "practice_teleport_banish", + "practice_teleport_gateway", + "practice_teleport_breach" + ], + "difficulty": 1 + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: blink", + "id": "practice_teleport_blink", + "description": "Contemplate your powers and improve your ability to travel nearby without crossing the intervening space.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 0, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_BLINK", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_blink')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: teleport_blink')", "<=", "(difficulty_one_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_blink')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_BLINK_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_blink')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: stutterstep", + "id": "practice_teleport_slow", + "description": "Contemplate your powers and improve your ability to reshape space around your enemies.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 1, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_SLOW", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_slow')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: teleport_slow')", "<=", "(difficulty_two_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_slow')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_SLOW_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_slow')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: phase", + "id": "practice_teleport_phase", + "description": "Contemplate your powers and improve your ability to travel short distances without crossing the intervening space.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 1, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_PHASE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_phase')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: teleport_phase')", "<=", "(difficulty_two_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_phase')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_PHASE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_phase')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: extended stride", + "id": "practice_teleport_stride", + "description": "Contemplate your powers and improve your ability to warp space around your movements.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_STRIDE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_stride')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: teleport_stride')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_stride')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_STRIDE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_stride')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: transposition", + "id": "practice_teleport_transpose", + "description": "Contemplate your powers and improve your control of relative position exchange.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 3, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_SWAP", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_transpose')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: teleport_transpose')", "<=", "(difficulty_four_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_transpose')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_SWAP_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_transpose')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: spacial vortex", + "id": "practice_teleport_collapse", + "description": "Contemplate your powers and improve your ability to bring distant points close together.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_teleport_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_COLLAPSE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_collapse')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: teleport_collapse')", "<=", "(difficulty_five_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_collapse')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_COLLAPSE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_collapse')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: displacement", + "id": "practice_teleport_displacement", + "description": "Contemplate your powers and improve your ability to teleport your enemies away from you.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_teleport_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_DISPLACEMENT", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_displacement')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: teleport_displacement')", "<=", "(difficulty_five_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_displacement')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_DISPLACEMENT_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_displacement')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: farstep", + "id": "practice_teleport_farstep", + "description": "Contemplate your powers and develop your ability to instantly travel to a new location.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 5, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_teleport_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_FARSTEP", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_farstep')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: teleport_farstep')", "<=", "(difficulty_six_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_farstep')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_FARSTEP_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_farstep')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: oubliette", + "id": "practice_teleport_banish", + "description": "Contemplate your powers and improve your ability to banish your enemies to other dimensions.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 6, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_teleport_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_BANISH", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_banish')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: teleport_banish')", "<=", "(difficulty_seven_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_banish')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_BANISH_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_banish')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: gateway", + "id": "practice_teleport_gateway", + "description": "Contemplate your powers and improve your ability to travel to long-distant points.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 7, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_teleport_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_GATEWAY", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_gateway')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: teleport_gateway')", "<=", "(difficulty_eight_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_gateway')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_GATEWAY_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_gateway')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: breach", + "id": "practice_teleport_breach", + "description": "Contemplate your powers and improve your ability to open portals to the Nether.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 8, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_teleport_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_BREACH", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: teleport_summon')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: teleport_summon')", "<=", "(difficulty_nine_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: teleport_summon')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_TELEPORT_BREACH_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: teleport_summon')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/vitakinesis_practice.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/vitakinesis_practice.json new file mode 100644 index 000000000..8d7be78f4 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/practice/vitakinesis_practice.json @@ -0,0 +1,630 @@ +[ + { + "id": "vitakinesis_practice", + "type": "nested_category", + "//": "XP for level 12 is 49417, for level 10 is 35279, for level 7 is 20514", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "contemplation: vitakinesis", + "description": "Recipes related to practicing vitakinesis.", + "skill_used": "metaphysics", + "nested_category_data": [ + "practice_vita_health_power", + "practice_vita_stop_bleeding", + "practice_vita_healing_touch", + "practice_vita_hurt_touch", + "practice_vita_sleeping_trance", + "practice_vita_stop_infection", + "practice_vita_pain_split", + "practice_vita_purge_rads", + "practice_vita_healing_trance", + "practice_vita_blood_purge", + "practice_vita_banish_illness", + "practice_vita_super_heal" + ], + "difficulty": 1 + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: healthy glow", + "id": "practice_vita_health_power", + "description": "Contemplate your powers and improve your ability to enhance your overall health.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 0, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_HEALTH", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_health_power')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: vita_health_power')", "<=", "(difficulty_one_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_health_power')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_HEALTH_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_health_power')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: staunch wound", + "id": "practice_vita_stop_bleeding", + "description": "Contemplate your powers and improve your ability to stop bleeding.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 1, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_STAUNCHING", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_stop_bleeding')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: vita_stop_bleeding')", "<=", "(difficulty_two_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_stop_bleeding')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_STAUNCHING_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_stop_bleeding')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: enervating touch", + "id": "practice_vita_hurt_touch", + "description": "Contemplate your powers and improve your ability to induce decay.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_HURT", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_hurt_touch')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: vita_hurt_touch')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_hurt_touch')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_HURT_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_hurt_touch')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: medicinal touch", + "id": "practice_vita_healing_touch", + "description": "Contemplate your powers and improve your ability to speed your allies' healing.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 2, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_HEAL_TOUCH_ALLY", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_health_power_ally')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: vita_health_power_ally')", "<=", "(difficulty_three_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_health_power_ally')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_HEAL_TOUCH_ALLY_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_health_power_ally')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: wakeful rest", + "id": "practice_vita_sleeping_trance", + "description": "Contemplate your powers and develop your ability to instantly travel to a new location.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 3, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_vitakin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_SLEEP", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_sleeping_trance')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: vita_sleeping_trance')", "<=", "(difficulty_four_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_sleeping_trance')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_SLEEP_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_sleeping_trance')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: damage balancing", + "id": "practice_vita_pain_split", + "description": "Contemplate your powers and improve your ability to direct your body's healing ability to where it is most needed.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_vitakin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_DAMAGE_BALANCE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_pain_split')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: vita_pain_split')", "<=", "(difficulty_five_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_pain_split')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_DAMAGE_BALANCE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_pain_split')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: allay infection", + "id": "practice_vita_stop_infection", + "description": "Contemplate your powers and improve your ability to use your powers to disinfect.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 4, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_vitakin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_STOP_INFECTION", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_stop_infection')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: vita_stop_infection')", "<=", "(difficulty_five_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_stop_infection')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_STOP_INFECTION_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_stop_infection')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: revitalizing meditation", + "id": "practice_vita_healing_trance", + "description": "Contemplate your powers and improve your ability to speed healing while meditating.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 5, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_vitakin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_HEALING_TRANCE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_healing_trance')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: vita_healing_trance')", "<=", "(difficulty_six_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_healing_trance')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_HEALING_TRANCE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_healing_trance')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: radiation decontamination", + "id": "practice_vita_purge_rads", + "description": "Contemplate your powers and improve your ability to remove radiation from your body.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 5, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_vitakin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_PURGE_RADS", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_purge_rads')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: vita_purge_rads')", "<=", "(difficulty_six_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_purge_rads')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_PURGE_RADS_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_purge_rads')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: blood purge", + "id": "practice_vita_blood_purge", + "description": "Contemplate your powers and improve your ability to cleanse impurities from your blood.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 6, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_vitakin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_PURGE", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_blood_purge')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: vita_blood_purge')", "<=", "(difficulty_seven_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_blood_purge')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_PURGE_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_blood_purge')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: banish illness", + "id": "practice_vita_banish_illness", + "description": "Contemplate your powers and improve your ability to cure permanent or long-term conditions.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 7, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_vitakin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_BANISH_ILLNESS", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_banish_illness')", ">=", "1" ] }, + { + "math": [ "u_val('spell_exp', 'spell: vita_banish_illness')", "<=", "(difficulty_eight_contemplation(1))" ] + } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_banish_illness')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_BANISH_ILLNESS_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_banish_illness')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "contemplation: anabolic rejuvenation", + "id": "practice_vita_super_heal", + "description": "Contemplate your powers and improve your ability to heal unbelievably quickly, but at a cost.", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "metaphysics", + "difficulty": 8, + "time": "30 m", + "autolearn": false, + "tools": [ [ [ "matrix_crystal_drained", -1 ] ] ], + "components": [ [ [ "matrix_crystal_vitakin_dust", 1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_SUPER_HEAL", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: vita_super_heal')", ">=", "1" ] }, + { "math": [ "u_val('spell_exp', 'spell: vita_super_heal')", "<=", "(difficulty_nine_contemplation(1))" ] } + ] + }, + "effect": [ + { "u_message": "You spend some time meditating and contemplating your powers and emerge with new knowledge." }, + { "math": [ "u_val('spell_exp', 'spell: vita_super_heal')", "+=", "(contemplation_factor(1))" ] }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 0,2 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_PRACTICE_VITAKIN_SUPER_HEAL_FALSE", + "condition": { "math": [ "u_val('spell_level', 'spell: vita_super_heal')", ">=", "1" ] }, + "effect": [ + { "u_message": "Your knowledge of your powers is so deep that mere contemplation is of no further use to you." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { "u_message": "Without even a basic understanding of the power, your meditation is nothing but idle musings." }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/proficiencies.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/proficiencies.json new file mode 100644 index 000000000..bbc691741 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/proficiencies.json @@ -0,0 +1,66 @@ +[ + { + "type": "proficiency_category", + "id": "prof_psionic", + "name": "Psionic", + "description": "Proficiencies that help with channeling psionic energy into physical objects or into more esoteric applications." + }, + { + "type": "proficiency", + "id": "prof_psionic_basic", + "category": "prof_psionic", + "name": { "str": "Psionic Channeling" }, + "description": "You know the basics of focusing your powers into material items.", + "can_learn": true, + "default_time_multiplier": 2, + "default_skill_penalty": 0.3, + "time_to_learn": "12 h" + }, + { + "type": "proficiency", + "id": "prof_psionic_ritual", + "category": "prof_psionics", + "name": { "str": "Thought-form Construction" }, + "description": "You are adept at the focused concentration and elaborate mental exercises required to practice more esoteric psionic abilities.", + "can_learn": true, + "default_time_multiplier": 1.2, + "default_skill_penalty": 0.4, + "time_to_learn": "20 h" + }, + { + "type": "proficiency", + "id": "prof_psionic_warping", + "category": "prof_psionic", + "name": { "str": "Dimensional Metaphysics" }, + "description": "You are familiar with how psionic power flows between dimensions and can manipulate that flow.", + "can_learn": true, + "default_time_multiplier": 1.6, + "default_skill_penalty": 0.2, + "time_to_learn": "20 h", + "required_proficiencies": [ "prof_psionic_basic", "prof_psionic_containment" ] + }, + { + "type": "proficiency", + "id": "prof_psionic_containment", + "category": "prof_psionic", + "name": { "str": "Energy Containment" }, + "description": "You are proficient in preventing stray substances or thoughts from contaminating your work.", + "can_learn": true, + "default_time_multiplier": 1.2, + "default_skill_penalty": 0.8, + "time_to_learn": "16 h", + "required_proficiencies": [ "prof_psionic_basic" ] + }, + { + "type": "proficiency", + "id": "prof_psionic_morphic", + "category": "prof_psionics", + "name": { "str": "Morphology Alteration" }, + "description": "You have mastered using psionics to affect the form of living beings.", + "can_learn": true, + "default_time_multiplier": 1.6, + "default_skill_penalty": 0.4, + "time_to_learn": "18 h", + "required_proficiencies": [ "prof_psionic_basic", "prof_psionic_containment" ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/psionics_practice.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/psionics_practice.json new file mode 100644 index 000000000..4ecdc8841 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/psionics_practice.json @@ -0,0 +1,92 @@ +[ + { + "type": "recipe_category", + "id": "CC_PRACTICE", + "recipe_subcategories": [ + "CSC_ALL", + "CSC_PRACTICE_SCIENCE", + "CSC_PRACTICE_ELECTRONICS", + "CSC_PRACTICE_FABRICATION", + "CSC_PRACTICE_FOOD", + "CSC_PRACTICE_SURVIVAL", + "CSC_PRACTICE_TAILORING", + "CSC_PRACTICE_ATHLETICS", + "CSC_PRACTICE_COMPUTERS", + "CSC_PRACTICE_DEVICES", + "CSC_PRACTICE_HEALTH", + "CSC_PRACTICE_MECHANICS", + "CSC_PRACTICE_SOCIAL", + "CSC_PRACTICE_COMBAT", + "CSC_PRACTICE_METAPHYSICS" + ] + }, + { + "id": "prac_psionics_begin", + "type": "practice", + "activity_level": "NO_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "meditation (beginner)", + "description": "Practice calming and emptying your mind, thinking thoughts as they come and then allowing them to flow through you and onward.", + "skill_used": "metaphysics", + "autolearn": [ [ "metaphysics", 1 ] ], + "time": "1 h", + "practice_data": { "min_difficulty": 0, "max_difficulty": 2, "skill_limit": 3 }, + "book_learn": [ + [ "manual_meditation", 0 ], + [ "book_newage_inpsychic", 0 ], + [ "occult_glimpses", 0 ], + [ "book_newage_generic", 0 ], + [ "book_newage_witchcraftbeg", 0 ] + ], + "tools": [ [ ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "id": "prac_psionics_inter", + "type": "practice", + "activity_level": "NO_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "meditation (intermediate)", + "description": "Clear your mind even in the midst of discomfort, maintaining your calm and poise.", + "skill_used": "metaphysics", + "time": "1 h", + "practice_data": { "min_difficulty": 3, "max_difficulty": 5, "skill_limit": 6 }, + "book_learn": [ [ "manual_meditation_int", 3 ], [ "occult_glimpses", 3 ], [ "book_newage_witchcraftadv", 3 ] ], + "tools": [ [ ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "id": "prac_psionics_advan", + "type": "practice", + "activity_level": "NO_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "psionic cultivation", + "description": "Focus on your inner metal strength, making it easy to call forth your psionic gifts.", + "skill_used": "metaphysics", + "time": "1 h", + "practice_data": { "min_difficulty": 6, "max_difficulty": 9, "skill_limit": 10 }, + "book_learn": [ [ "manual_psionics_advan", 6 ] ], + "tools": [ [ ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "id": "prac_psionics_prof_basic", + "type": "practice", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_PRACTICE", + "subcategory": "CSC_PRACTICE_METAPHYSICS", + "name": "psionic channeling", + "description": "Practice focusing your powers through a crystalline medium.", + "skill_used": "metaphysics", + "practice_data": { "min_difficulty": 0, "max_difficulty": 1, "skill_limit": 2 }, + "proficiencies": [ { "proficiency": "prof_psionic_basic", "time_multiplier": 1, "skill_penalty": 0 } ], + "time": "1 h", + "qualities": [ { "id": "MATRIX_CHANNEL", "level": 1 } ], + "components": [ [ [ "matrix_shard", 1 ], [ "matrix_crystal_drained", 1 ] ] ], + "byproducts": [ [ "matrix_crystal_drained_dust", 10 ] ], + "book_learn": [ [ "manual_psionics_advan", 3 ], [ "schematics_matrix_channeling", 3 ], [ "schematics_matrix_aligning", 3 ] ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/recipe_requirements.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/recipe_requirements.json new file mode 100644 index 000000000..52dfa5d8e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/recipe_requirements.json @@ -0,0 +1,32 @@ +[ + { + "id": "matrix_dust_refined", + "type": "requirement", + "components": [ + [ + [ "matrix_crystal_biokin_dust_refined", 1 ], + [ "matrix_crystal_clair_dust_refined", 1 ], + [ "matrix_crystal_pyrokin_dust_refined", 1 ], + [ "matrix_crystal_telekin_dust_refined", 1 ], + [ "matrix_crystal_telepath_dust_refined", 1 ], + [ "matrix_crystal_teleport_dust_refined", 1 ], + [ "matrix_crystal_vitakin_dust_refined", 1 ] + ] + ] + }, + { + "id": "surface_heat", + "type": "requirement", + "extend": { "tools": [ [ [ "pyrokinetic_fire_tool", -1 ] ] ] } + }, + { + "id": "water_boiling_heat", + "type": "requirement", + "extend": { "tools": [ [ [ "pyrokinetic_fire_tool", -1 ] ] ] } + }, + { + "id": "welding_standard", + "type": "requirement", + "extend": { "tools": [ [ [ "pyrokinetic_torch_weld", -1 ] ] ] } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/research.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/research.json new file mode 100644 index 000000000..e3f138626 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/research.json @@ -0,0 +1,177 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "study the Phavian USB documents", + "id": "psi_research_rad_powers", + "description": "Study the plethora of documents and files found on the Project PHAVIAN USB. It has something to do with radiation; beyond that, you're not sure.", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "difficulty": 4, + "time": "2 h", + "tools": [ [ [ "laptop", -1 ] ], [ [ "psi_usb_rad_recipes", -1 ] ] ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_UNLOCK_RAD_POWERS", + "condition": { "or": [ { "u_has_trait": "VITAKINETIC" }, { "u_has_trait": "CLAIRSENTIENT" } ] }, + "effect": [ + { "u_learn_recipe": "psi_research_rad_powers_clair" }, + { "u_learn_recipe": "psi_research_rad_powers_vita" }, + { + "u_message": "There's a lot here, but you've discovered that it's organized into two main tracks. One has a lot of detailed scans of the body and health data and is labeled HONEY BRAVO, and the other has a series of photos that seem oddly distorted, charts with some kind of waveforms on them, and other documents and is labeled RED SAFARI.", + "type": "neutral" + } + ], + "false_effect": [ + { + "u_message": "You can understand the technical principles but the actual processes make no sense. It must be some aspect of psionics that you don't possess or don't fully grasp.", + "type": "bad" + } + ] + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "study the RED SAFARI documents", + "id": "psi_research_rad_powers_clair", + "description": "Study the plethora of documents and files found on the Project PHAVIAN USB relating to RED SAFARI. It has something to do with radiation detection; beyond that, you're not sure.", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "difficulty": 6, + "time": "12 h", + "tools": [ + [ [ "laptop", -1 ] ], + [ [ "psi_usb_rad_recipes", -1 ] ], + [ + [ "atomic_coffeepot", -1 ], + [ "wearable_atomic_light", -1 ], + [ "wearable_atomic_light_off", -1 ], + [ "atomic_lamp", -1 ], + [ "atomic_lamp_off", -1 ], + [ "atomic_light", -1 ], + [ "atomic_light_off", -1 ], + [ "betavoltaic", -1 ], + [ "atomic_coffeepot", -1 ], + [ "huge_atomic_battery_cell", -1 ], + [ "light_atomic_battery_cell", -1 ], + [ "medium_atomic_battery_cell", -1 ], + [ "light_minus_atomic_battery_cell", -1 ] + ] + ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_intro_biology", "required": false }, + { "proficiency": "prof_psionic_basic", "required": true }, + { "proficiency": "prof_psionic_ritual", "required": false } + ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_UNLOCK_RAD_POWERS_CLAIR", + "condition": { + "and": [ + { "roll_contested": { "math": [ "u_skill('metaphysics')" ] }, "difficulty": 10 }, + { "roll_contested": { "math": [ "u_skill('chemistry')" ] }, "difficulty": 8 }, + { "math": [ "u_val('spell_level', 'spell: clair_spot_weakness')", ">=", "6" ] }, + { "math": [ "u_val('spell_level', 'spell: clair_danger_sense')", ">=", "8" ] }, + { "math": [ "u_val('spell_level', 'spell: clair_voyance')", ">=", "5" ] } + ] + }, + "effect": [ + { + "u_message": "This would have been so much easier if you had an actual tutor, but you finally understand. All the documents, the videos, the reports, they're trying document a method of using clairsentience to detect radiation. And you're pretty sure you can do it now.", + "type": "good" + }, + { "u_roll_remainder": [ "clair_sense_rads" ], "type": "spell" }, + { "u_learn_recipe": "practice_clair_sense_rads" }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" }, + { "u_forget_recipe": "psi_research_rad_powers" } + ], + "false_effect": [ + { + "u_message": "There's a lot here. Maybe you didn't understand it, or maybe your powers aren't advanced enough. You'll need to try again.", + "type": "bad" + }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" }, + { "u_forget_recipe": "psi_research_rad_powers" } + ] + } + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "study the HONEY BRAVO documents", + "id": "psi_research_rad_powers_vita", + "description": "Study the plethora of documents and files found on the Project PHAVIAN USB relating to HONEY BRAVO. It has something to do with radiation treatment; beyond that, you're not sure.", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_OTHER", + "skill_used": "chemistry", + "difficulty": 6, + "time": "16 h", + "tools": [ + [ [ "laptop", -1 ] ], + [ [ "psi_usb_rad_recipes", -1 ] ], + [ + [ "atomic_coffeepot", -1 ], + [ "wearable_atomic_light", -1 ], + [ "wearable_atomic_light_off", -1 ], + [ "atomic_lamp", -1 ], + [ "atomic_lamp_off", -1 ], + [ "atomic_light", -1 ], + [ "atomic_light_off", -1 ], + [ "betavoltaic", -1 ], + [ "atomic_coffeepot", -1 ], + [ "huge_atomic_battery_cell", -1 ], + [ "light_atomic_battery_cell", -1 ], + [ "medium_atomic_battery_cell", -1 ], + [ "light_minus_atomic_battery_cell", -1 ] + ] + ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry", "required": false }, + { "proficiency": "prof_intro_biology", "required": false }, + { "proficiency": "prof_pharmaceutical", "required": false }, + { "proficiency": "prof_psionic_basic", "required": true }, + { "proficiency": "prof_psionic_ritual", "required": false } + ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_UNLOCK_RAD_POWERS_VITA", + "condition": { + "and": [ + { "roll_contested": { "math": [ "u_skill('metaphysics')" ] }, "difficulty": 11 }, + { "roll_contested": { "math": [ "u_skill('chemistry')" ] }, "difficulty": 8 }, + { "math": [ "u_val('spell_level', 'spell: vita_pain_split')", ">=", "8" ] }, + { "math": [ "u_val('spell_level', 'spell: vita_stop_infection')", ">=", "6" ] }, + { "math": [ "u_val('spell_level', 'spell: vita_healing_trance')", ">=", "2" ] } + ] + }, + "effect": [ + { + "u_message": "This would have been so much easier if you had an actual tutor, but you finally understand. All the documents, the videos, the reports, they're trying document a method of using vitakinesis to cure radiation poisoning. And you're pretty sure you can do it now.", + "type": "good" + }, + { "u_roll_remainder": [ "vita_purge_rads" ], "type": "spell" }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" }, + { "u_learn_recipe": "practice_vita_purge_rads" }, + { "u_forget_recipe": "psi_research_rad_powers" } + ], + "false_effect": [ + { + "u_message": "There's a lot here. Maybe you didn't understand it, or maybe your powers aren't advanced enough. You'll need to try again.", + "type": "bad" + }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" }, + { "u_forget_recipe": "psi_research_rad_powers" } + ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/rituals.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/rituals.json new file mode 100644 index 000000000..1522255dc --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/rituals.json @@ -0,0 +1,69 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "name": "study VERDANT HAND combat protocol", + "id": "learn_psionic_combat", + "description": "Study and attempt to internalize the practices in the VERDANT HAND Combat Protocol training manual. There's a lot in there; it may take you more than one attempt to understand it.", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_RITUALS", + "skill_used": "unarmed", + "difficulty": 5, + "time": "5 h", + "book_learn": [ [ "phavian_psionic_martial_power_book", 5 ] ], + "proficiencies": [ + { "proficiency": "prof_psionic_basic", "required": true }, + { "proficiency": "prof_psionic_ritual", "required": false } + ], + "flags": [ "SECRET", "BLIND_HARD" ], + "result_eocs": [ + { + "id": "EOC_UNLOCK_PSIONIC_COMBAT", + "condition": { + "and": [ + { "math": [ "u_val('spell_level', 'spell: biokin_physical_enhance')", ">=", "8" ] }, + { "math": [ "u_val('spell_level', 'spell: biokin_reflex_enhance')", ">=", "6" ] }, + { "math": [ "u_val('spell_level', 'spell: biokin_flexibility')", ">=", "8" ] }, + { "math": [ "u_val('spell_level', 'spell: biokin_overcome_pain')", ">=", "5" ] }, + { "math": [ "u_val('spell_level', 'spell: biokin_armor_skin')", ">=", "4" ] } + ] + }, + "effect": { + "run_eocs": { + "id": "EOC_UNLOCK_PSIONIC_COMBAT_2", + "condition": { + "and": [ + { "roll_contested": { "math": [ "u_skill('unarmed')" ] }, "difficulty": 13 }, + { "roll_contested": { "math": [ "u_skill('metaphysics')" ] }, "difficulty": 10 } + ] + }, + "effect": [ + { + "u_message": "You've done it. After long effort, you've mastered the VERDANT HAND protocols. Bring on the zombies; you'll smash them to pieces with your fists.", + "type": "good" + }, + { "u_add_trait": "KI_STRIKE" }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 10,30 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ], + "false_effect": [ + { + "u_message": "You just couldn't master the forms and the meditations eluded you. You'll need to try again.", + "type": "bad" + }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 10,30 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + }, + "false_effect": [ + { + "u_message": "Your mastery of biokinesis isn't deep enough to succeed. You'll need to develop your powers and try again." + }, + { "math": [ "u_val('vitamin', 'name:vitamin_psionic_drain')", "+=", "rng( 10,30 )" ] }, + { "run_eocs": "EOC_PSI_PRACTICE_FOCUS_MOD" } + ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/teleporter_recipes.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/teleporter_recipes.json new file mode 100644 index 000000000..d4df7090e --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/teleporter_recipes.json @@ -0,0 +1,32 @@ +[ + { + "type": "construction", + "id": "teleporter_attuned_ground", + "group": "teleporter_attune", + "category": "OTHER", + "required_skills": [ [ "metaphysics", 4 ] ], + "time": "120 m", + "components": [ ], + "pre_special": "check_empty", + "post_terrain": "f_teleporter_attuned_ground", + "activity_level": "NO_EXERCISE" + }, + { + "type": "construction_group", + "id": "teleporter_attune", + "name": "[Ψ]Attune to area" + }, + { + "type": "furniture", + "id": "f_teleporter_attuned_ground", + "name": "[Ψ]Attuned ground", + "symbol": "+", + "looks_like": "tr_telepad", + "description": "There is nothing obvious about this area of ground to the casual observer, but you can see it with your eyes closed. You know it like the back of your hand, and with but a thought, you could teleport to it. (e)xamine to complete attunement.", + "color": "light_gray", + "required_str": -1, + "move_cost_mod": 0, + "flags": [ "TRANSLOCATOR", "MOUNTABLE", "TRANSPARENT", "ALLOW_FIELD_EFFECT" ], + "examine_action": "translocator" + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/tools.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/tools.json new file mode 100644 index 000000000..6abcfefaa --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/tools.json @@ -0,0 +1,122 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_channeling_tool", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_TOOLS", + "skill_used": "fabrication", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 3, + "time": "2 h", + "book_learn": [ [ "schematics_matrix_channeling", 3 ] ], + "qualities": [ { "id": "HAMMER_FINE", "level": 1 }, { "id": "FINE_GRIND", "level": 1 }, { "id": "VISE", "level": 1 } ], + "tools": [ [ [ "angle_grinder", 50 ] ] ], + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_psionic_basic", "required": false } ], + "using": [ [ "soldering_standard", 15 ], [ "steel_tiny", 5 ] ], + "components": [ [ [ "matrix_crystal_drained", 4 ] ] ], + "flags": [ "SECRET" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "matrix_aligning_tool", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_TOOLS", + "skill_used": "fabrication", + "skills_required": [ "metaphysics", 6 ], + "difficulty": 5, + "time": "5 h", + "book_learn": [ [ "schematics_matrix_aligning", 6 ] ], + "qualities": [ + { "id": "HAMMER_FINE", "level": 1 }, + { "id": "GRIND", "level": 2 }, + { "id": "CHISEL", "level": 3 }, + { "id": "MATRIX_CHANNEL", "level": 1 } + ], + "tools": [ [ [ "swage", -1 ] ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_psionic_basic", "required": false }, + { "proficiency": "prof_fine_metalsmithing", "required": false } + ], + "using": [ [ "soldering_standard", 15 ], [ "steel_tiny", 5 ] ], + "components": [ + [ [ "matrix_shard", 6 ] ], + [ [ "matrix_crystal_drained_dust_refined", 5 ] ], + [ [ "gold_small", 15 ], [ "silver_small", 25 ] ] + ], + "flags": [ "SECRET" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "pyrokinetic_flashlight", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_TOOLS", + "skill_used": "electronics", + "difficulty": 1, + "time": "10 m", + "reversible": true, + "decomp_learn": 0, + "qualities": [ { "id": "MATRIX_CHANNEL", "level": 1 } ], + "book_learn": [ [ "schematics_everglow_lamp", 1 ] ], + "components": [ + [ [ "amplifier", 1 ] ], + [ + [ "scrap_aluminum", 4 ], + [ "can_drink", 1 ], + [ "can_food", 1 ], + [ "canister_empty", 1 ], + [ "bottle_glass", 1 ], + [ "bottle_plastic", 1 ], + [ "bottle_bathroom", 1 ], + [ "bottle_plastic_small", 1 ] + ], + [ [ "lightstrip_inactive", 1 ], [ "light_bulb", 1 ] ], + [ [ "matrix_crystal_pyrokin_dust_refined", 2 ] ], + [ [ "psionic_serum_base", 1 ] ], + [ [ "cable", 10 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "pyrokinetic_lamp", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_TOOLS", + "skill_used": "electronics", + "skills_required": [ "metaphysics", 2 ], + "difficulty": 2, + "time": "30 m", + "reversible": true, + "decomp_learn": 1, + "book_learn": [ [ "schematics_everglow_lamp", 2 ] ], + "proficiencies": [ { "proficiency": "prof_plasticworking" }, { "proficiency": "prof_psionic_basic" } ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "MATRIX_CHANNEL", "level": 1 } ], + "components": [ + [ [ "plastic_chunk", 2 ] ], + [ [ "superglue", 1 ] ], + [ [ "lightstrip_inactive", 1 ], [ "light_bulb", 1 ] ], + [ [ "matrix_crystal_pyrokin_dust_refined", 2 ] ], + [ [ "psionic_serum_base", 2 ] ], + [ [ "cable", 10 ] ] + ] + }, + { + "result": "standing_pyrokinetic_lamp", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "reversible": true, + "skill_used": "electronics", + "difficulty": 1, + "time": "10 m", + "autolearn": [ [ "electronics", 1 ] ], + "category": "CC_APPLIANCE", + "subcategory": "CSC_APPLIANCE_LIGHTING", + "skills_required": [ [ "fabrication", 1 ] ], + "using": [ [ "soldering_standard", 5 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ [ [ "cable", 2 ] ], [ [ "pyrokinetic_lamp", 1 ] ], [ [ "pipe_fittings", 1 ] ], [ [ "pipe", 2 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/recipes/weapons.json b/data/Mainline_mods/Mods/MindOverMatter/recipes/weapons.json new file mode 100644 index 000000000..4ae90f513 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/recipes/weapons.json @@ -0,0 +1,28 @@ +[ + { + "result": "grenade_inferno", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_PSIONIC", + "subcategory": "CSC_PSIONIC_WEAPONS", + "skill_used": "fabrication", + "skills_required": [ "metaphysics", 3 ], + "difficulty": 5, + "time": "60 m", + "reversible": false, + "autolearn": false, + "book_learn": [ [ "schematics_grenade_inferno", 5 ] ], + "proficiencies": [ + { "proficiency": "prof_psionic_basic", "required": false }, + { "proficiency": "prof_psionic_containment", "required": false } + ], + "qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "MATRIX_CHANNEL", "level": 1 } ], + "using": [ [ "volatile_explosive", 20, "LIST" ], [ "explosives_casting_standard", 1 ] ], + "components": [ + [ [ "delay_fuze", 1 ] ], + [ [ "superglue", 1 ], [ "duct_tape", 75 ], [ "cordage", 1, "LIST" ] ], + [ [ "can_medium", 1 ] ], + [ [ "matrix_crystal_pyrokin_dust", 5 ], [ "matrix_crystal_pyrokin_dust_refined", 1 ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/skills.json b/data/Mainline_mods/Mods/MindOverMatter/skills.json new file mode 100644 index 000000000..0fc0d09bb --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/skills.json @@ -0,0 +1,10 @@ +[ + { + "type": "skill", + "id": "metaphysics", + "name": { "str": "metaphysics" }, + "display_category": "display_ranged", + "sort_rank": 14500, + "description": "Your ability to manipulate forces of energy often considered supernatural." + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/snippets/snippets.json b/data/Mainline_mods/Mods/MindOverMatter/snippets/snippets.json new file mode 100644 index 000000000..d6e2c3fbd --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/snippets/snippets.json @@ -0,0 +1,111 @@ +[ + { + "type": "snippet", + "category": "shelter_graffiti_snippets", + "text": [ + { "id": "shelter_graffiti_psi_1", "text": "I can see now. This place isn't safe. Leave." }, + { + "id": "shelter_graffiti_psi_2", + "text": " come find me. What you told me about, it's real. I can do it too." + } + ] + }, + { + "type": "snippet", + "category": "general_graffiti_snippets", + "text": [ + { "id": "general_graffiti_psi_1", "text": "VOS OMNES SPECULAMUR" }, + { + "id": "general_graffiti_psi_2", + "text": "This is a detailed drawing of a pyramid with an eye in it. Below is written \"We see now.\"" + } + ] + }, + { + "type": "snippet", + "category": "newest_news", + "text": [ + { + "id": "newest_news_psi_1", + "text": "BURNING MAN! Eyewitnesses at the recent Bank Rhode Island fire in Cranston stated that they saw a man standing in the burning building, waving his arms as though directing the flames. The fire raged out of control for nearly four hours before local firefighters were able to extinguish it, but never spread beyond the bank building. No human remains were found in the debris; investigation is ongoing." + }, + { + "id": "newest_news_psi_2", + "text": "THE END. I have written the horoscopes column for almost a decade now but this is the first true prediction of the future I have written. The end of the world is at hand, in weeks if not in days. Take your loved ones, leave the cities, head for the hills. The government will not save you. This will be my last column." + }, + { + "id": "newest_news_psi_3", + "text": "LOCAL MAN DISAPPEARS. Jackson Townsend of Bangor was reported missing this morning. According to his wife Julie, he was eating breakfast with his family before work when he suddenly looked up and then disappeared. No foul play is suspected at this time." + } + ] + }, + { + "type": "snippet", + "category": "note", + "text": [ + { + "id": "note_psi_1", + "text": "\"Amazing I lived through whatever the fuck happened to the sky but I should be glad. Ever since then I've been in the best health of my life. I got caught by a Z while foraging--fucking stupid of me I know--and it bit me. I put it down and by the time I was done beating it to hell the wound had already stopped bleeding. It's almost gone now and I won't even have a scar. No infection, no fever, nothing. Not sure what's going on but maybe I should go outside again.\"" + }, + { "id": "note_psi_2", "text": "\"I call the fire and it comes. I send the fire and they burn. Glorious.\"" }, + { + "id": "note_psi_3", + "text": "\"I put that crystal I found under my pillow and all I got was nightmares. Burning cities, the dead walking, horrible monsters, things kidnapping people. I threw it away but it didn't help. Now I have nightmares when I'm awake too.\"" + }, + { + "id": "note_psi_4", + "text": "\"Jumping is definitely the reason I'm still alive. Feels awful but only for a moment. When that thing grabbed me I bet it thought its dinner was made. I kind of wish I could have seen the look on its face when I just disappeared.\"" + }, + { + "id": "note_psi_5", + "text": "\"Using the Force is way easier than going into the houses. Stand out in a storm. You'll thank me later, if you survive.\"" + } + ] + }, + { + "type": "snippet", + "category": "lab_file_psych", + "text": [ + { + "id": "lab_file_psych_psi_1", + "text": "Preliminary approval is given to use successful candidates from Project GREY DAWN who also have therapeutic training to provide counseling for staff. Candidates must be paired with a non-candidate member of Counseling staff, who will review all of candidates' notes and session records; members of Counseling staff and candidate counselors are forbidden to be in the same room at any time." + } + ] + }, + { + "type": "snippet", + "category": "lab_file_portal", + "text": [ + { + "id": "lab_file_portal_psi_1", + "text": "Manned immersion dives to sub-planes with the PHAVIAN designation are to be overseen by at least one mathematician from Project COLD BELOW. Immersion personnel must obey all instructions given by the mathematician, including collection of anomalous samples or aborting an in-progress dive." + } + ] + }, + { + "type": "snippet", + "category": "lab_postit_portal", + "text": [ + { + "name": "purple postit 1", + "id": "lab_postit_portal_psi_1", + "text": "When you collect the crystals, use sampling tongs. Do not touch!" + }, + { + "name": "purple postit 2", + "id": "lab_postit_portal_psi_2", + "text": "Do not calibrate to sub-plane 305PG. It knows" + }, + { + "name": "purple postit 3", + "id": "lab_postit_portal_psi_3", + "text": "The \"mathematician\" from upstairs wants to watch the immersion today. Ugh" + }, + { + "name": "purple postit 4", + "id": "lab_postit_portal_psi_4", + "text": "Accidentally touched a sample, now my head's all fuzzy" + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/snippets/snippets_new.json b/data/Mainline_mods/Mods/MindOverMatter/snippets/snippets_new.json new file mode 100644 index 000000000..fd9ce21bf --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/snippets/snippets_new.json @@ -0,0 +1,295 @@ +[ + { + "type": "snippet", + "category": "lab_postit_psi", + "text": [ + { "name": "post-it", "id": "lab_postit_psi_1", "text": "Pink for the body, grey for the eyes, green for…hmm" }, + { "name": "post-it", "id": "lab_postit_psi_2", "text": "Don't look into the dull ones" }, + { "name": "post-it", "id": "lab_postit_psi_3", "text": "If the mathematician asks for me, I was never here" }, + { + "name": "post-it", + "id": "lab_postit_psi_4", + "text": "Our clears keep waking up from screaming nightmares. Higher-ups say it's nothing" + }, + { + "name": "post-it", + "id": "lab_postit_psi_5", + "text": "Subject can lift 14.82g. 15g or higher causes migraine" + }, + { "name": "post-it", "id": "lab_postit_psi_6", "text": "Note: order some Zener cards" }, + { + "name": "post-it", + "id": "lab_postit_psi_7", + "text": "ONYX LIGHTNING? GRAY DAWN? COLD BELOW? VERDANT HAND? Oh come on" + }, + { "name": "post-it", "id": "lab_postit_psi_8", "text": "I can't believe she wants to call them psi-cops" }, + { "name": "post-it", "id": "lab_postit_psi_9", "text": "Two more subjects overloaded. Need to request more" }, + { "name": "post-it", "id": "lab_postit_psi_10", "text": "Maybe a teep can communicate with them" }, + { + "name": "post-it", + "id": "lab_postit_psi_11", + "text": "Reminder: Tell the immersion teams we need more samples" + }, + { "name": "post-it", "id": "lab_postit_psi_12", "text": "It won't kill you but you'll wish it had" }, + { "name": "post-it", "id": "lab_postit_psi_13", "text": "Brains show no physical differences" }, + { "name": "post-it", "id": "lab_postit_psi_14", "text": "Animal testing approved. Try the TK on the mice" }, + { "name": "post-it", "id": "lab_postit_psi_15", "text": "Can't wait for cross-testing" }, + { "name": "post-it", "id": "lab_postit_psi_16", "text": "She tried to scan Y65-08. Now in a coma" }, + { "name": "post-it", "id": "lab_postit_psi_17", "text": "Scanning them doesn't work. It's just static" }, + { "name": "post-it", "id": "lab_postit_psi_18", "text": "Stay away from those GRAY DAWN guys. Creepy" }, + { + "name": "post-it", + "id": "lab_postit_psi_19", + "text": "Need to up monitoring of GRAY DAWN candidates. Who watches the watchers?" + }, + { + "name": "post-it", + "id": "lab_postit_psi_20", + "text": " is up for awakening. Ban her from the poker game" + }, + { + "name": "post-it", + "id": "lab_postit_psi_21", + "text": "A better lightbulb. What's next, a matrix mousetrap?" + }, + { "name": "post-it", "id": "lab_postit_psi_22", "text": "So does my PB still count post-awakening?" }, + { "name": "post-it", "id": "lab_postit_psi_23", "text": "What's my dog thinking? I should ask" }, + { "name": "post-it", "id": "lab_postit_psi_24", "text": "COLD BELOW is a bit too on-the-nose" }, + { + "name": "post-it", + "id": "lab_postit_psi_25", + "text": "\"Gentlemen, clinical immortality is within our grasp\". There, if I write it here I won't be tempted to put it in the powerpoint" + }, + { "name": "post-it", "id": "lab_postit_psi_26", "text": "They've done it. Frikkin laser beams" }, + { + "name": "post-it", + "id": "lab_postit_psi_27", + "text": "I get why. But TIAMAT or SERVITOR would be much cooler than XE157, right?" + }, + { "name": "post-it", "id": "lab_postit_psi_28", "text": "Better than kings. Gods" }, + { + "name": "post-it", + "id": "lab_postit_psi_29", + "text": "There has be more out there. Cryokinesis? Prescience?" + }, + { + "name": "post-it", + "id": "lab_postit_psi_30", + "text": "Be careful in subplane R82-34. Rodriguez nearly blew the entire team up" + }, + { "name": "post-it", "id": "lab_postit_psi_31", "text": "SMOKE USHER can't cure zombification. Had to try" }, + { "name": "post-it", "id": "lab_postit_psi_32", "text": "Snapped as soon as he entered the dive" }, + { "name": "post-it", "id": "lab_postit_psi_33", "text": "Mix with XE037 for better results?" }, + { "name": "post-it", "id": "lab_postit_psi_34", "text": "Have we tried it with mice?" }, + { "name": "post-it", "id": "lab_postit_psi_35", "text": "But what is the medium?" }, + { + "name": "post-it", + "id": "lab_postit_psi_36", + "text": "I am not going through that training. Safe? Yeah, no" + }, + { + "name": "post-it", + "id": "lab_postit_psi_37", + "text": "Why does no one else remember ? And why isn't he in the employee roster?" + }, + { + "name": "post-it", + "id": "lab_postit_psi_38", + "text": "We finally find real superpowers and then it all goes to hell" + }, + { "name": "post-it", "id": "lab_postit_psi_39", "text": "Brain injections make no difference" }, + { + "name": "post-it", + "id": "lab_postit_psi_40", + "text": "She ran a marathon on a treadmill. That better be enough data" + }, + { + "name": "post-it", + "id": "lab_postit_psi_41", + "text": "Not meeting with that mathematician again. Once was too much" + }, + { "name": "post-it", "id": "lab_postit_psi_42", "text": "All of them, witches" }, + { "name": "post-it", "id": "lab_postit_psi_43", "text": "Need to dive again. It's better on the other side" }, + { "name": "post-it", "id": "lab_postit_psi_44", "text": "Those poor mice" }, + { "name": "post-it", "id": "lab_postit_psi_45", "text": "We should have just used regular cards" }, + { "name": "post-it", "id": "lab_postit_psi_46", "text": "Going to put \"Psi-cop\" on my resume" }, + { + "name": "post-it", + "id": "lab_postit_psi_47", + "text": "Five percent increase in lifting across the board. Why?" + }, + { "name": "post-it", "id": "lab_postit_psi_48", "text": "Can't block them out anymore" }, + { "name": "post-it", "id": "lab_postit_psi_49", "text": "Can they go through halfway?" }, + { "name": "post-it", "id": "lab_postit_psi_50", "text": "Same dream, every night" }, + { "name": "post-it", "id": "lab_postit_psi_51", "text": "Great, some of the mice escaped" } + ] + }, + { + "type": "snippet", + "category": "lab_file_biokinesis", + "text": [ + { + "name": "AAR ID# V78-08", + "id": "lab_file_biokinesis_01", + "text": "At 1756 (dive time), Sergeant Eric Collins's team came under attack by an XE157 entity near the end of scheduled in-phase time. Despite the expenditure of most of their ordinance, XE157 suffered no significant damage and continued its attack. Despite the known combat capabilities of XE157 and with no regard for his own safety, Sergeant Collins ordered his team to retreat to the dive breachhead and engaged it in hand-to-hand combat, holding it off for several minutes while his team exited the dive. The apeture was held open for an additional minute afterward, allowing just enough time for a severely-injured Sergeant Collins to exit the dive and preventing the exit of XE157. Sergeant Collins suffered severe lacerations, the loss of two fingers, and burns across fifty percent of his arms and upper body; he has since volunteered to be a test subject for SMOKE USHER. In lieu of a medal, we have authorized a meritorious service bonus to be applied retroactive to the beginning of the year." + }, + { + "name": "Notes written on the back of an unimportant memo", + "id": "lab_file_biokinesis_02", + "text": "Treadmills? Blood ox tests? Have them try to punch through walls or something\nAny cellular difference? Should check\nBrains show no difference but what about organs? Lactic acid production, inflammation, blood flow, etc.\n\nOutrun a horse?\n\nYeah, yeah, faster than a speeding bullet. VERDANT HAND vs ONYX LIGHTNING?\nOh come on.\nWhat about jumping distance? Height?\n\n\n*a doodle of two stick figures engaged in a martial arts battle*\nActually do the shoryuken. Too bad gun still beats fist\nHadoken? Wouldn't surprise me at this point\nGrip strength tests? Charts? zzzzz *a surprisingly-detailed picture of a curled-up sleeping cat*\nSummary: Ban them from the Olympics" + }, + { + "name": "Come One, Come All!", + "id": "lab_file_biokinesis_03", + "text": "The battle of the century! H84 and E94 will fight to determine the true greatest VERDANT HAND graduate! No holds barred, no attacks banned, no referee, don't sit in the front row or you might ruin your clothes! Be there or be square!\n\n*below the text is an picture of a man and a woman striking a boxing pose at each other in an ordinary office room. Both are wearing street clothes and baring their teeth at each other. The date of the fight is one week before the end of the world*" + }, + { + "name": "incident report: 385924", + "id": "lab_file_biokinesis_04", + "text": "Upon leaving for the evening, Dr. Erikson neglected to seal cage #3, allowing one of experimental mice (#748562) to gain access to the matrix crystal supplies. One crystal discharged, affecting 748562 and apparently causing an awakening. 748562 escaped the room, squeezing under the door, and is currently loose within the facility.\n\nDr. Erickson has been placed on administrative leave pending a full investigation and new procedures for storing matrix crystals are currently being implemented. A search for 748562 is still underway." + }, + { + "name": "torn notebook page", + "id": "lab_file_biokinesis_05", + "text": "wanted me to keep a logbook of my daily exercise but I don't understand the point. I run, I lift, I sleep, that's about all these have me do here. What, they want \"5:40 a.m.: 30 reps 250 lbs, run 20 minutes, 100 burpees (10 sets)\" blah blah who cares? That shit doesn't matter. We're all trapped here and things are going to hell and we got some kind of poison in our bodies that's going to bring us back when we die so we can eat brains.\n\nWell, fine, here's my log: 6:05 a.m.: 50 reps 400 lbs, sprint 10 minutes, 200 pull-ups, triple sommersault from a standing start. Put me in the Olympics right now." + } + ] + }, + { + "type": "snippet", + "category": "lab_file_telepathy", + "text": [ + { + "name": "testing report C3-6204", + "id": "lab_file_telepathy_01", + "text": "Subject is female, of East Asian descent, age 35 years. In good health.\n\nInitial test using standard deck of playing cards. Subject and experimenter facing away from each other, with opaque curtain blocking line of sight. Prompt was triggered by a light on subject's desk to prevent drawing any information from experimenter's tone of voice or word choice. Experimenter drew ten cards and asked subject to state number and suit. Cards are shuffled back into the deck after each guess to prevent already-drawn cards from affecting future guesses.\n\nResults: Subject guessed two of ten correct on the first test and three of ten correct on the second test, versus control who guessed a single card correct on the first test and zero correct on the second test. Very promising initial results." + }, + { + "name": "incident report: 897237", + "id": "lab_file_telepathy_02", + "text": "During a routine visit by Dr. Davies, at 1134 a COLD BELOW mathematician diverted from their standard schedule and entered the room where Dr. Davies was being briefed about netherum mathematics developments. The mathematician stared at Dr. Davies for approximately three seconds and then, before security could intervene, physically attacked the doctor with their bare hands. Witnesses report the mathematician incoherently screaming, mixed with statements such as \"You'll kill us all\" and \"Stop, stop stop\". The mathematician continued to scream until restrained and sedated.\n\nFollow-up: COLD BELOW overseers received official reprimand and required to attend additional training. Mathematician diverted to project SUBSTRATE." + }, + { + "name": "AAR ID# T38-11", + "id": "lab_file_telepathy_03", + "text": "I don't know if an AAR is the best way to write this but I couldn't find anything else in the procedures that fit. I want to be reassigned. I went through GRAY DAWN two weeks ago and back home I can occasionally pick up a sentence or two but when we went through to T38-11 it was like everyone's brain was projected onto their forehead. Mostly fine, I went through the exercises and managed to block it out, but it didn't work for Gallagher. I don't know how he functions with what's going through his brain. And not just the sex stuff, fine, whatever, but that he would get enraged whenever something would go wrong. Carvalho came back from scouting and said he didn't find anything and Gallagher literally immediately thought about just shooting him and leaving him there! \"Fucking worthless\" was the least-offensive thing Gallagher thought about him. I know he's calm and professional on the surface but there's something wrong with him and one day he's going to snap. I don't want to be there when he does." + }, + { + "name": "Project DRIVING MIST (update)", + "id": "lab_file_telepathy_04", + "text": "We've been trying to find the medium that telepathy works by and have come up empty. It works, it's replicable, that means it's amenable to the scientific method, right? Okay. It's not affected by gravity. It's not affected by the atmosphere, since people in sealed rooms or environment suits can still communicate with others. It's not affected by physical barriers, neither lead not steel nor a tinfoil hat. It's not affected by light lag, either, so we finally have proof that FTL is possible at least for some things. We've tried to send messages into the past but so far no luck--maybe we don't have a large enough distance between receivers? Without an amplifier the range is still very short, so we can't do a two-way test. We put the data into Melchior and didn't get any conclusive reply.\n\nI'll report back in two weeks as scheduled. I refuse to throw up my hands and say \"It's magic, who knows how it works?\" If it affects the physical world it must obey some set of physical laws." + }, + { + "name": "testing report N2-7394", + "id": "lab_file_telepathy_05", + "text": "1) Subject native Arabic speaker. Asked to think of word sequence in English. Mathematician successfully determined sequence word. Asked to think of word sequence in Arabic, mathematician unable to determine word boundaries and isolate words.\n2) Subject native English speaker. Asked to attempt to think of Chinese poem (phonetic transcription provided). Mathematician able to isolate word on second attempt.\n3) Subject native English speaker. Asked to think of word randomly-generated using English phonemes. Mathematician able to isolate word on second attempt.\n4) Subject native French speaker; also fluent in German, English, and Italian with some ability in Romanian, Latin, and Russian. Asked to think of a word sequence in Russian. Mathematician unable to isolate sequence word despite six attempts.\n6) Subject native Yiddish speaker. Asked to think of word in German, which the subject did not speak. Mathematician able to isolate word on third attempt.\n7) Subject native English speaker. Asked to think of word sequence in Sindarian, the invented language from \"The Lord of the Rings\". Mathematician unable to isolate word despite six attempts.\n\nUnfortunately, a deficit of mathematicians who lack English fluency limits the range of our experiments. Nonetheless, the results are consistent with there being no universal language of thought." + } + ] + }, + { + "type": "snippet", + "category": "lab_file_telekinesis", + "text": [ + { + "name": "It's all just motion", + "id": "lab_file_telekinesis_01", + "text": "Why is there a distinction between pyrokinesis and telekinesis at all? Fire isn't a fundamental element, it's the result of heat which is the result of molecular motion. There's no conceptual reason why a pyrokinetic couldn't make all the molecules of an object move in a particular direction, producing motion of the entire object, or a telekinetic couldn't produce a more chaotic motion that resulted in the object's energy increasing. Furthermore, in no test has a telekinetic been able to move part of an object unless that part is designe for motion; pulling a lever is possible, but breaking a plate in half is not. And a pyrokinetic cannot apply the reverse and slow down an object's molecules to reduce heat unless that object is on fire.\n\nMy theory is that it's all psychological. We've all grown up with modern culture and stories about what psychics are \"supposed\" to be capable of, and so the matrix crystals and Netherum mathematics shape the candidates' abilities toward those pre-determined pathways. If we could get a SMOKE USHER mathematician from an uncontacted tribe, maybe they'd be able to induce diseases in their targets or steal or their soul, in accordance with that tribe's belief practices about supernatural powers. But since our candidates come from a culture where pyrokinesis and telekinesis are separate things and geokinesis or osteokinesis are very rare in fiction, the former result from awakenings and the latter do not.\n\nI would like to formally request a wider variety of cultural backgrounds for our project candidates to test this theory." + } + ] + }, + { + "type": "snippet", + "category": "lab_file_vitakinesis", + "text": [ + { + "name": "SMOKE USHER anti-agapic properties (revised estimate)", + "id": "lab_file_vitakinesis_01", + "text": "Initial estimates of successful SMOKE USHER mathematicians showed increased vitality and vigor. Testing post-awakening showed the oldest mathematician--Doreen McHugh, age 62--underwent a complete secession of her previously-diagnosed (at age 35) rheumatoid arthritis. She is now capable of running a mile with a time of 7:12 despite minimal training, well below the average for a trained woman in her age group. She expresses increased well-being and vitality, going for walks in the facility exercise area when before recruitment she was mostly homebound. Furthermore, her grip strength, blood oxygen level, skin appearance, calcium levels, and muscle mass are more consistent with a woman decades younger, and most convincingly to me, the roots of her hair are coming in black instead of gray and just last week, she sent an urgent request for menstruation products for personal use.\n\nWe'll have to revise our estimates way up. I originally thought that SMOKE USHER would provide health and vigor but the benefits would be modest, maybe 20% increased lifespan with a corresponding increase in healthy years. Hey, living to 100 regularly would still be great, right? But SMOKE USHER mathematicians literally getting younger means I have to throw all the initial estimates out the window. Is SMOKE USHER the fountain of youth? I know that sounds ridiculous but you can read the test data for yourself." + }, + { + "name": "Compound XV471 update", + "id": "lab_file_vitakinesis_02", + "text": "Application of matrix technology and XE037 samples together with cutting-edge medical advances blah blah you know the drill. Anyway, we sourced the samples, we synthesized the compound, we did the tests. It's magic. I know that sounds dumb but it's literally magic. Animal testing showed complete remission of every cancer they developed. \"Alright, Eric,\" you say, \"that's fine but cancer testing in animals is b̵u̵l̵l̵s̵h̵i̵t̵\"clinically irrelevant due to to high real-world failure rates in humans\". Sure, yes, you're right. But we sourced some enthusiastic voluntolds from XEDRA-12's stock and a couple of them had cancer they were planning on testing XE037 interactions with. Well they aren't going to anymore because XV471 cleaned them right up. Totally healthy. Zero cancer.\n\nSubject B84 had cystic fibrosis and it's gone. GONE. Perfectly normal lungs. Now what's that other than magic?\n\nYou want to get more funding for this, just authorize selling XV471 to some sick Russian oligarch for like $10 billion. He gets cured and the money keeps flowing. And honestly it needs to be that expensive with how much this stuff costs to produce. We get the materials and process them and nine times out of ten it's just a sugar pill for no damn reason I can find. But that tenth time, wow.\n\nShred this after you read it. I don't need the director lecturing me about professionalism again." + }, + { + "name": "Treatment time until complete recovery", + "id": "lab_file_vitakinesis_03", + "text": "Common cold: 34 hours\n\nInfluenza: 27 hours\n\nMononucleosis: 85 hours\n\nNorovirus: 26 hours\n\nGonorrhea: 43 hours\n\nHepatitis C: 71 hours\n\nHIV: 148 hours\n\nMalaria: 112 hours\n\nSmallpox: 76 hours\n\nEbola: 93 hours" + }, + { + "name": "Zombie Revivification", + "id": "lab_file_vitakinesis_04", + "text": "Gentlemen, can we cure death?\n\nSorry, I had to. Anyway, the answer is no. We had multiple SMOKE USHER mathematicians try everything they could against a properly-restrained zombie and no luck. The furthest we got was D93 managed to discover some way to kill zombies faster; her attempt to restart the normal biological processes caused accelerated decay and resulted in the zombie returning to an inert state after approximately thirty minutes from initial contact. Subsequent revivication was delayed for an additional six hours.\n\nFurther testing on lab rats indicate that this ability functions on living subject as well. I plan to start human testing once the lockdown ends and I can acquire suitable volunteers." + } + ] + }, + { + "type": "snippet", + "category": "lab_file_OS647_P", + "text": [ + { + "name": "OS647-P Response", + "id": "lab_file_item_OS647_P_01", + "text": "Dr. Zweidler, I understand your excitement at your breakthroughs in matrix technology, but I hope you understand there is no way I can approve OS647-P for general usage. You write here that the effect field has a \"94% effectiveness rate\" but this is not comparable to ballistic performance standards because it has no ablative properties. What if the first shot fired is part of that 6%? How can an operative trust their life to your device when every possible shot might be the one to penetrate? That fact that your data shows it provides complete protection against rifle rounds, grenades, and even anti-tank weapons is immaterial in the face of the effect field's failure rate.\n\nSecond, you write that currently OS647-P has a 2.67% device failure rate, over and above the chance of the effect field failing! You want me to recommend this for general usage when our field operatives could end up not only with a bullet in the chest, but also a box full of burnt plastic while some horror is charging at them on an immersion dive?n\nFurthermore, the active time is simply unacceptable. Ballistic protection works because it provides passive protection with no additional effort necessary. When in danger, an operative would need to insert the matrix crystal, flip the toggle, and then hope that the attack occurs within the \"5.65 second median protection time\" in order to gain any benefit at all! You've read those immersion dive reports too, Matthew. If an operative is face to face with XE157, what happens on the sixth second?\n\nI'll be frank with you. I'm amazed that you asked me to approve this given its current device specs. Matrix crystals--even depleted ones--are extremely valuable, and given their already unacceptably-high failure rate in training new mathematicians, Dr. Liu is not going to accept anything less than 100% effectiveness from an alternative use case. You're simply going to have to refine OS647-P until it's more reliable.\n\nYours,\nAnna Stephenson\nDirector of Research" + } + ] + }, + { + "type": "snippet", + "category": "lab_file_matrix_research", + "text": [ + { + "name": "Response to Proposal 96255-R", + "id": "lab_file_matrix_research_01", + "text": "Yes, I saw your design specs for the \"Everglow Lamp\" and I understand that it provides a greatly-increased efficiency over standard off-the-shelf lighting. But may I remind you that off-the-shelf lighting literally comes from a shelf and you can go down to the hardware store and buy a dozen LED bulbs for $50 and they'll last you ten years. There is no use case for a matrix-powered lightbulb that makes any sort of sense, even in hostile or in-phase environments. Until you can achieve a similar cost-benefit ratio using matrix technology--check the budget for a single immersion dive if you need the data--I strongly advise you to take your research in a different direction.\n\nYours,\nAnna Stephenson\nDirector of Research" + }, + { + "name": "Hastily-scribbled note on XEDRA stationary", + "id": "lab_file_matrix_research_02", + "//": "Hank here is Dr. Harold Liu, the director of Project PHAVIAN", + "text": "Dammit, Hank, what the hell is wrong with these researchers? Matrix-powered lamp, matrix-powered car, matrix-powered oven, next they'll want a matrix-powered vibrator. Do they even understand how expensive a single matrix crystal is? I keep trying to get them to work on something new and they bring me this. We need force fields, jetpacks, laser guns, lightsabers, starships, I don't know, something! It's all I can do to stop them from trying to make us the Amazon of XEDRA. Do the XE037 researchers have this problem?" + }, + { + "name": "Preliminary Report: Matrix Awakening", + "id": "lab_file_matrix_research_03", + "text": "Initial testing shows that the rate of awakening from matrix crystal exposure is over 50% with no side effects. Candidates that failed to awaken complained of headaches and bad dreams but the effects rarely last longer than a week (see fig 4). In approximately 5% of cases, however, awakening causes serious side effects including hallucinations, high fever exceeding 39.5°C, muscle tremors, unconsciousness, disassociation, and amnesia. This can occur in either successful or unsuccessful awakening and is a serious danger in certain cases (e.g. incident reports ID39483 and IC49378).\n\nMultiple awakenings are not cost-effective. Despite a wide range of candidates and repeated attempts, only two incidents have ever occurred and no specific commonality between the mathematicians other than gender exist. No further attempts should be made until a similar effectiveness to initial awakenings has been achieved.\n\nIn-phase awakenings show variable efficacy, sometimes much lower or much higher than normal. Efficacy is in general consistent within each plane, though some planes show variable efficacy. Plane 398RG shows 99% efficacy; however, side effects rise to 35% of cases and so further experimentation with 398RG is prohibited. Melchior has so far been unable to find any specific characteristics of a plane that would lead to greater or lesser efficacy. Further testing and sampling are required." + }, + { + "name": "LV-429 Analysis", + "id": "lab_file_matrix_research_04", + "text": "Human-portable laser weapons suffer from three major problems--high power draw preventing them from easily being transportable or usable in skirmish combat, long dwell times meaning that the operator must remain exposed to return fire in order to do anything more than blind the target, and common atmospheric conditions like dust or haze severely reducing the effectiveness of the beam. The LV-429 solves all three of these problems. Before the primary laser is fired, a secondary netherum mathemathical beam clears the path of the laser, removing atmospheric contaminants without affecting the target. The laser is fired in a series of short pulses, each much higher intensity than a standard laser, eliminating the need for extensive dwell time. Finally, the power source contains a small ND-cell, capable of powering the weapon effectively indefinitely.\n\nOne problem remains to be solved. While the weapon is capable of providing enough power for every shot in succession, matrix technology has not yet provided us with more efficient battery storage. This means that the ND-cell must charge existing batteries, allowing the LV-429 to be fired only once every few seconds, obviously too low a rate of fire for any live engagement. Further enhancements in power storage technology will be necessary before proper deployment." + }, + { + "name": "XE037 or whatever", + "id": "lab_file_matrix_research_05", + "text": "Yeah, we did the research. We're all stuck here so what else can we do, right? Just research our heart out while the world falls apart. Well, I've attached all the figures so you can look at them, but the theory is right. XE037 enhances exposed mathematicians (aka all of them) by a factor of anywhere from 10x to 100x or more, basically as much as using a matrix crystal. Meshram used to be able to lift around 18.5g, one of our strongest telekinetics. Now he's up to 2kg and with a crystal he can lift two bowling balls. Or a dog, that was hilarious.\n\nSubject U76 could pick up surface thoughts if touching the target and now can easily read someone's mind from across the room and can occasionally pick up deeper memories. We figured this out by accident, by the way, and I'm pretty sure when we get out of here Dr. Connolly is going to find divorce papers waiting for her. You'll probably want to keep U76 away from anything sensitive, except that we only just discovered this and now it's too late. Oops.\n\nOh yeah, K34 can just walk through walls now. So much for security. Everything's fucked and we're doomed. That's my report, hope you like it." + }, + { + "name": "Re: COBALT RAIN", + "id": "lab_file_matrix_research_06", + "text": "As my initial report indicated, COBALT RAIN has passed all the tests we've performed. In fact, it exceeded our production predictions by over 15%. It's not actually a perpetual motion machine but it might as well be from the end-user's point of view. It produces energy with no fuel required, at a constant rate, with no waste byproducts and very little heat.\n\nHowever--there's always a however in this line of work--it has the significant disadvantage that prevents me from recommending it for deployment at this time. COBALT RAIN works through a microportal to the Netherum, siphoning energy through without the possibility of hostile incursions. During normal operation, this remains true, but if the device is damaged it can destabilize containment and the portal can rapidly expand without warning. Just last week we had an incident during testing, and while the engineers were able to get the device shut down quickly, something still came through the portal. We're lucky that it doesn't seem hostile or really even interested in us. Despite its appearance (see attached), XE843 is indifferent to the presence or absence of others, light levels, food, or noise. It just wanders around its containment cell. We've contacted XEDRA-40 to ask them if they want to take a look at it. I'll forward the reply to you when we get it.\n\nWork to overcome this significant drawback is ongoing. At the moment, however, COBALT RAIN should remain in the prototype stage.\n\nAnita Morales\nSenior Researcher" + } + ] + }, + { + "type": "snippet", + "category": "lab_file_phavian_memo", + "text": [ + { + "name": "To all employees: re: GASPAR", + "id": "lab_file_phavian_memo_01", + "text": "Colleagues,\n\nI'd like to take a moment to address the recent rumors. I know that stress levels are high with the quarantine and the XE037 news, but there is no need to engage in unwarranted speculation. In these unprecedented times, it's important to remember that we're all in this together and we will solve the problems before us, as we have no many others.\n\nI will be perfectly clear. There is no \"Project GASPAR.\" Trained mathematicians are the most important resource that we have, and it would be the height of folly to waste them on replicating a resource that already exists simply because the current state of emergency has placed us out of contact. Furthemore, it is important to remember that Netherum mathematics are not magic. They obey a consistent set of rules and we are capable of determining those rules empirically. We can test how much an ONYX LIGHTNING mathematician can lift to the milligram. We can determine the effective communication range for a GRAY DAWN candidate down to the decimeter. We would never simply \"throw things at the wall and see what sticks.\" Science requires rigor.\n\nThese are troubling times, but we will get through them together.\n\nSincerely,\nHarold Liu\nDirector, Project PHAVIAN" + }, + { + "name": "To all employees: re: terminology", + "id": "lab_file_phavian_memo_02", + "text": "Greetings everyone,\n\nI would just like to take a moment to comment on the importance of proper nomenclature. Just as we would respect the names and pronouns by which our co-workers wish to be addressed, we should use the approved terms for candidates for the various projects under our umbrella. Some frankly disturbing news has reached me of harassment or even bullying aimed at those who have gone through the training process. These people are not \"witches\" and they are most certainly not \"freaks,\" and I am frankly disturbed that I have to emphasize that point. These are your colleagues who have volunteered to advance scientific understanding as we explore the unknown. There is no reason standard HR policies do not still apply. I have already received several complaints which I will be acting on in the near future, and hopefully I will not receive any more.\n\nSincerely,\nRosemary Pierce\nAdministrator, Human Resources" + }, + { + "name": "Re: your proposal", + "id": "lab_file_phavian_memo_03", + "text": "Anna, I know things are stressful, especially with some of the irregularities in staff behavior we've been witnessing, and under normal circumstances I would never countenance your proposal. I have to admit, though, that I was extremely disturbed by what I've heard of the behavior of several VERDANT HAND mathematicians, as well as Dr. Holland and Dr. Almeida's recent public argument. As such, for the duration of the emergency, I think that your \"psi-cop\" proposal is a good one. I'll draft a memo immediately to Dr. Nayak to organize the GREY DAWN mathematicians toward keeping order and maintaining morale. Hopefully, this will only be the matter of a few weeks before Dr. Sidhu and his team can find a solution. They already found one way to remove XE037 contamination, so hope remains.\n\nSincerely,\nHarold Liu" + } + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/snippets/snippets_random_names.json b/data/Mainline_mods/Mods/MindOverMatter/snippets/snippets_random_names.json new file mode 100644 index 000000000..87845bca7 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/snippets/snippets_random_names.json @@ -0,0 +1,1016 @@ +[ + { + "type": "snippet", + "//": "Used to pick a random family name. List taken from the top 500 most common names here: https://forebears.io/united-states/massachusetts/surnames", + "category": "", + "text": [ + "Sullivan", + "Johnson", + "Brown", + "Murphy", + "Williams", + "Anderson", + "White", + "Martin", + "Davis", + "McCarthy", + "Miller", + "Jones", + "Lee", + "Silva", + "Walsh", + "Clark", + "Rodriguez", + "Kelly", + "Burke", + "Collins", + "Ryan", + "Wilson", + "Taylor", + "Obrien", + "King", + "Nguyen", + "Perry", + "Kelley", + "Allen", + "Campbell", + "Rivera", + "Thomas", + "Lynch", + "Moore", + "Robinson", + "Thompson", + "Adams", + "Harris", + "Foley", + "Santos", + "Costa", + "Baker", + "Medeiros", + "Leblanc", + "Murray", + "Nelson", + "MacDonald", + "Hall", + "Donovan", + "Lewis", + "Shea", + "Doherty", + "Jackson", + "Rogers", + "FitzGerald", + "Flynn", + "Mahoney", + "Walker", + "Cohen", + "McLaughlin", + "Garcia", + "Mitchell", + "Gonzalez", + "Kennedy", + "Green", + "Wood", + "Lopez", + "McDonald", + "Martinez", + "Powers", + "Burns", + "Perez", + "Griffin", + "Roy", + "Harrington", + "Hill", + "Patel", + "Wright", + "Ferreira", + "Parker", + "Torres", + "Scott", + "Connolly", + "Doyle", + "Barry", + "Souza", + "Peterson", + "Carroll", + "Hayes", + "Russell", + "Gallagher", + "Quinn", + "Callahan", + "Stone", + "Cook", + "Rose", + "Wong", + "Cruz", + "Sheehan", + "Carter", + "Bennett", + "Morris", + "Gray", + "Pereira", + "Sousa", + "Sweeney", + "Hughes", + "Cabral", + "Phillips", + "Hernandez", + "Butler", + "Casey", + "Reynolds", + "Oliveira", + "Gordon", + "Barrett", + "Cote", + "Ortiz", + "Howard", + "Gomes", + "Ward", + "Richard", + "Driscoll", + "Higgins", + "Dunn", + "McGrath", + "Lyons", + "Ross", + "Crowley", + "Morin", + "Wang", + "Evans", + "Buckley", + "Brooks", + "Donahue", + "Diaz", + "Fisher", + "Marshall", + "Moran", + "Ramos", + "Reed", + "Brennan", + "Carlson", + "Greene", + "Shaw", + "Andrews", + "Riley", + "Stevens", + "Ellis", + "Turner", + "Tran", + "Kim", + "Fernandes", + "Dasilva", + "Foster", + "Grant", + "Cronin", + "Sanchez", + "Gagnon", + "Cormier", + "Graham", + "Morgan", + "McDonough", + "Hurley", + "Lopes", + "Hart", + "Russo", + "Leonard", + "Pierce", + "Mello", + "Cooper", + "Stewart", + "Hamilton", + "Cole", + "Manning", + "Kane", + "Flaherty", + "Landry", + "Joyce", + "Holmes", + "Pacheco", + "Morse", + "Jordan", + "Welch", + "Chase", + "Chan", + "Correia", + "Boucher", + "Curran", + "Bell", + "Carey", + "Long", + "Andrade", + "O'Brien", + "Perkins", + "Pelletier", + "Edwards", + "Farrell", + "Connors", + "Joseph", + "Cunningham", + "Almeida", + "Palmer", + "Carr", + "Kenney", + "Porter", + "Reilly", + "Norton", + "Alves", + "Lane", + "Colon", + "Oconnell", + "Rice", + "Lawrence", + "Hunt", + "Daly", + "Hogan", + "Mason", + "Wheeler", + "Rodrigues", + "Richards", + "Tavares", + "Watson", + "George", + "Morales", + "Duffy", + "Cox", + "Coleman", + "Wallace", + "Benoit", + "Brady", + "Fox", + "Boudreau", + "FitzPatrick", + "Zhang", + "Gardner", + "Bradley", + "Regan", + "Reardon", + "Cummings", + "Amaral", + "Goodwin", + "James", + "Liu", + "McNamara", + "Costello", + "Bergeron", + "Barnes", + "Smith", + "McMahon", + "Maloney", + "Freeman", + "Levine", + "Oneil", + "Hebert", + "Peters", + "Berry", + "Nichols", + "Ouellette", + "Fleming", + "McKenna", + "West", + "Harrison", + "Lambert", + "Simmons", + "Alexander", + "Raymond", + "Reid", + "Clarke", + "Henderson", + "Carvalho", + "Odonnell", + "Doucette", + "Fuller", + "Bishop", + "Mullen", + "Warren", + "Robbins", + "Leary", + "Blake", + "Fournier", + "Vieira", + "Spencer", + "Reyes", + "Soares", + "Curtis", + "Johnston", + "Mills", + "Francis", + "Pratt", + "Gomez", + "Jenkins", + "Oneill", + "Olson", + "Woods", + "Paul", + "Daley", + "Hickey", + "Maguire", + "Kelleher", + "Gould", + "Harvey", + "Levesque", + "Dwyer", + "Conway", + "Jacobs", + "Nolan", + "Daniels", + "Hanson", + "Gilbert", + "Gallant", + "Carpenter", + "Flanagan", + "Delaney", + "Gauthier", + "Coughlin", + "Dolan", + "Wu", + "Miranda", + "Whitney", + "Tucker", + "Donnelly", + "Gillis", + "Holland", + "Hoffman", + "Le", + "Cahill", + "Teixeira", + "Day", + "Wells", + "Dias", + "Matthews", + "Keefe", + "Lima", + "Simpson", + "Kaplan", + "Armstrong", + "Rosa", + "Snow", + "Black", + "Belanger", + "Finn", + "Huang", + "Poirier", + "Roche", + "O'Connor", + "Hunter", + "Sylvia", + "Ferguson", + "Bates", + "Machado", + "Myers", + "Page", + "Schwartz", + "Martins", + "McDermott", + "Oleary", + "Caron", + "Oliver", + "Healy", + "Lavoie", + "Price", + "Sawyer", + "Fernandez", + "Bernard", + "Fontaine", + "Arnold", + "Dion", + "Monteiro", + "Arruda", + "Chapman", + "Dean", + "Morrissey", + "Briggs", + "Gill", + "Wagner", + "Connor", + "Goldberg", + "Robertson", + "Lin", + "Pena", + "Moriarty", + "Powell", + "Whalen", + "Benson", + "Howe", + "Marino", + "Parsons", + "Knight", + "Crawford", + "Hardy", + "Gagne", + "Gibson", + "Larson", + "Paquette", + "Elliott", + "Patterson", + "Figueroa", + "Flores", + "Bartlett", + "Newman", + "Moniz", + "Burgess", + "Michaud", + "Mann", + "Beaulieu", + "Byrne", + "Chin", + "Carney", + "Haley", + "Goldstein", + "Davidson", + "Bouchard", + "Boyd", + "Comeau", + "Nickerson", + "Katz", + "Eaton", + "Medina", + "Erickson", + "Silvia", + "Clifford", + "Furtado", + "Webb", + "Small", + "Cameron", + "McCabe", + "Yang", + "Ramirez", + "Kimball", + "Rossi", + "McManus", + "Chang", + "Gonçalves", + "Nadeau", + "Jean", + "Webster", + "Conley", + "Gorman", + "Melanson", + "Madden", + "Pierre", + "Austin", + "Gonsalves", + "McHugh", + "Caruso", + "Saunders", + "Snyder", + "Tobin", + "Monahan", + "Hamel", + "Botelho", + "Hansen", + "Nunes", + "Grady", + "Bernier", + "Demers", + "Fallon", + "Dixon", + "Freitas", + "Maher", + "Shapiro", + "Duggan", + "Noonan", + "Stanley", + "Ruiz", + "Borges", + "Rich", + "Corbett", + "Castro", + "Mendes", + "Galvin", + "Goldman", + "McNeil", + "French", + "Rosario", + "Yu", + "Fraser", + "Dube", + "Vargas", + "Hicks", + "McCormack", + "Cassidy", + "Melo", + "Shah", + "Barbosa", + "Pearson", + "Sampson", + "May", + "Savage", + "Sargent", + "Newton", + "Connelly", + "Dalton", + "Vasquez", + "Stanton", + "Corcoran", + "Owens", + "Pires" + ] + }, + { + "type": "snippet", + "//": "Used to pick a random given name. List taken from the top 500 most common names here: https://forebears.io/united-states/massachusetts/forenames", + "category": "", + "text": [ + "John", + "Michael", + "Robert", + "David", + "James", + "William", + "Mary", + "Richard", + "Paul", + "Joseph", + "Thomas", + "Susan", + "Mark", + "Patricia", + "Peter", + "Jennifer", + "Daniel", + "Brian", + "Elizabeth", + "Linda", + "Lisa", + "Barbara", + "Stephen", + "Nancy", + "Steven", + "Karen", + "Edward", + "Kevin", + "Christopher", + "Maria", + "Charles", + "Kathleen", + "George", + "Donna", + "Matthew", + "Scott", + "Carol", + "Andrew", + "Christine", + "Michelle", + "Diane", + "Donald", + "Anthony", + "Ann", + "Margaret", + "Deborah", + "Jeffrey", + "Sandra", + "Chris", + "Amy", + "Eric", + "Jean", + "Laura", + "Joan", + "Sarah", + "Frank", + "Kenneth", + "Jason", + "Timothy", + "Marie", + "Melissa", + "Patrick", + "Anne", + "Jessica", + "Ronald", + "Judith", + "Gary", + "Janet", + "Julie", + "Cheryl", + "Catherine", + "Maureen", + "Joanne", + "Jane", + "Cynthia", + "Sharon", + "Kelly", + "Dorothy", + "Nicole", + "Jose", + "Jonathan", + "Helen", + "Pamela", + "Paula", + "Kimberly", + "Stephanie", + "Debra", + "Sean", + "Denise", + "Raymond", + "Theresa", + "Ellen", + "Heather", + "Ryan", + "Jim", + "Joe", + "Francis", + "Arthur", + "Bruce", + "Kathy", + "Kim", + "Elaine", + "Andrea", + "Rebecca", + "Gregory", + "Anna", + "Ruth", + "Jeff", + "Philip", + "Alan", + "Katherine", + "Dennis", + "Janice", + "Amanda", + "Carolyn", + "Adam", + "Lauren", + "Nicholas", + "Bob", + "Erin", + "Walter", + "Dan", + "Douglas", + "Keith", + "Gail", + "Brenda", + "Suzanne", + "Joyce", + "Emily", + "Robin", + "Kristen", + "Lori", + "Eileen", + "Laurie", + "Angela", + "Virginia", + "Lawrence", + "Roger", + "Rita", + "Christina", + "Rachel", + "Wendy", + "Henry", + "Benjamin", + "Shirley", + "Marilyn", + "Jacqueline", + "Lynn", + "Wayne", + "Jeanne", + "Alice", + "Sheila", + "Tim", + "Joshua", + "Louis", + "Gerald", + "Danielle", + "Beth", + "Albert", + "Craig", + "Martha", + "Jill", + "Rose", + "Justin", + "Kathryn", + "Frances", + "Matt", + "Dawn", + "Lorraine", + "Beverly", + "Judy", + "Marc", + "Tracy", + "Todd", + "Jack", + "Irene", + "Claire", + "Sara", + "Colleen", + "Michele", + "Carl", + "Leslie", + "Jay", + "Ralph", + "Alex", + "Kristin", + "Ashley", + "Shawn", + "Phyllis", + "Cindy", + "Louise", + "Diana", + "Frederick", + "Greg", + "Gloria", + "Antonio", + "Katie", + "Martin", + "Alexander", + "Eleanor", + "Tina", + "Vincent", + "Larry", + "Carlos", + "Lee", + "Russell", + "Julia", + "Doris", + "Fred", + "Ken", + "Teresa", + "Barry", + "Evelyn", + "Shannon", + "Dana", + "Norman", + "Luis", + "Kate", + "Jamie", + "Megan", + "Mike", + "Pauline", + "Victor", + "Derek", + "Betty", + "Rick", + "Ana", + "Bonnie", + "Victoria", + "Jon", + "Carmen", + "Debbie", + "Manuel", + "Sue", + "Alfred", + "Tony", + "Lynne", + "Cathy", + "Samuel", + "Glenn", + "Steve", + "Kerry", + "Allison", + "Sally", + "Valerie", + "Gina", + "Marcia", + "Marjorie", + "Tara", + "Harold", + "Bryan", + "Nick", + "Heidi", + "Tammy", + "Leonard", + "Grace", + "Roberta", + "Stanley", + "Eugene", + "Jeremy", + "Holly", + "Ron", + "Terry", + "Rosemary", + "Renee", + "Kyle", + "Marion", + "Aaron", + "Alison", + "Tom", + "Don", + "Caroline", + "Joel", + "Juan", + "Stacey", + "Samantha", + "Erica", + "Harry", + "Lillian", + "Howard", + "Leo", + "Lois", + "Darlene", + "Nathan", + "Neil", + "Carole", + "Dianne", + "Meghan", + "Jerry", + "Melanie", + "Ernest", + "June", + "Josephine", + "Courtney", + "Norma", + "Bernard", + "Maryann", + "Brendan", + "Gerard", + "Alicia", + "Sam", + "Monica", + "Florence", + "Anita", + "Roy", + "Joann", + "Jackie", + "Natalie", + "Annette", + "Mario", + "Rosa", + "Constance", + "Marianne", + "Phillip", + "Alexandra", + "Ray", + "Pam", + "Erik", + "Tracey", + "Doug", + "Edwin", + "Arlene", + "Dean", + "Carrie", + "Priscilla", + "Dale", + "Doreen", + "Charlotte", + "Randy", + "Sandy", + "Ian", + "Lindsay", + "Stacy", + "Jesse", + "Geraldine", + "Charlene", + "Theodore", + "Regina", + "Leah", + "Lucy", + "Sylvia", + "Kara", + "Allen", + "Warren", + "Ted", + "Jan", + "Mildred", + "Audrey", + "Gordon", + "Christian", + "Roland", + "Pat", + "Caitlin", + "Carla", + "Brad", + "Dolores", + "Bill", + "Denni", + "Herbert", + "Kerri", + "Joanna", + "Molly", + "Brandon", + "Claudia", + "Meredith", + "Kristina", + "Crystal", + "Jacob", + "Lucille", + "Vanessa", + "Tiffany", + "Allan", + "Tanya", + "Kristine", + "Peggy", + "Angel", + "Marlene", + "Phil", + "Josh", + "Rich", + "Patrica", + "Olga", + "Maura", + "Jorge", + "Veronica", + "Sherry", + "Yvonne", + "Evan", + "Nina", + "Brett", + "Esther", + "Edith", + "Karl", + "Jenny", + "Sonia", + "April", + "Connie", + "Jen", + "Jillian", + "Eva", + "Corey", + "Betsy", + "Rhonda", + "Jodi", + "Deb", + "Miguel", + "Terri", + "Madeline", + "Chad", + "Joy", + "Al", + "Jared", + "Jaime", + "Tyler", + "Bridget", + "Wanda", + "Alyssa", + "Stuart", + "Nelson", + "Elena", + "Zachary", + "Loretta", + "Lynda", + "Kurt", + "Glen", + "Jeannette", + "Maurice", + "Seth", + "Rosemarie", + "Lindsey", + "Francisco", + "Gladys", + "Annie", + "Erika", + "Pedro", + "Colin", + "Gene", + "Melinda", + "Miriam", + "Jeanette", + "Patty", + "Joao", + "Edmund", + "Beatrice", + "Emma", + "Geoffrey", + "Hannah", + "Andre", + "Jenna", + "Angelo", + "Ben", + "Guy", + "Marguerite", + "Chuck", + "Casey", + "Charlie", + "Fernando", + "Kelley", + "Brittany", + "Gayle", + "Luz", + "Lydia", + "Shaun", + "Salvatore", + "Rene", + "Marsha", + "Danny", + "Shane", + "Vivian", + "Agnes", + "Clifford", + "Hector", + "Tricia", + "Sheryl", + "Earl", + "Dave", + "Leon", + "Maryellen", + "Robyn", + "Edna", + "Jody", + "Annmarie", + "Patti", + "Gertrude", + "Rafael", + "Vicki", + "Monique", + "Isabel", + "Neal", + "Bethany", + "Deanna", + "Shelley", + "Ross", + "Bernadette", + "Roberto", + "Gabriel", + "Bernice", + "Nora", + "Alexis", + "Jerome", + "Randall" + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/snippets/speech.json b/data/Mainline_mods/Mods/MindOverMatter/snippets/speech.json new file mode 100644 index 000000000..7a06cddd1 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/snippets/speech.json @@ -0,0 +1,218 @@ +[ + { + "type": "speech", + "speaker": [ "mon_feral_human_pyrokin3", "mon_feral_human_pyrokin2", "mon_civilian_pyrokinetic" ], + "sound": "the crackle of flames.", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_pyrokin3", "mon_feral_human_pyrokin2" ], + "sound": "\"Must… burn…\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_teep2" ], + "sound": "a low droning hum inside your head.", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_teep2" ], + "sound": "a tuneless whistling inside your head.", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_teep2", "mon_civilian_telepath" ], + "sound": "an inarticulate cry inside your head.", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_teep2" ], + "sound": "quiet laughter inside your head.", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_bio3", "mon_feral_security_captain_psychic" ], + "sound": "\"Kill…\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_clair2", "mon_feral_human_clair3" ], + "sound": "\"I… see…\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_clair3" ], + "sound": "\"You… see…\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_clair3" ], + "sound": "\"Can you see?\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_clairsentient" ], + "sound": "\"I told you they were coming.\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_clairsentient" ], + "sound": "\"You didn't listen!\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_clairsentient" ], + "sound": "\"Just like the dreams.\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_clairsentient" ], + "sound": "\"This is the end.\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_clairsentient" ], + "sound": "\"I knew it. I knew it. I knew it.\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_clairsentient" ], + "sound": "\"Doom. DOOM!\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_clairsentient" ], + "sound": "\"You didn't listen!\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_pyrokinetic" ], + "sound": "\"Burn them all! Burn them to ash!\"", + "volume": 15 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_telepath" ], + "sound": "a voice inside your head mutter, \"No no no no.\".", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_telepath" ], + "sound": "a voice inside your head whisper, \"No escape…\".", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_telepath" ], + "sound": "a voice inside your head say, \"Why? Why? Why?\".", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_porter3" ], + "sound": "\"Lost between…\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_porter3", "mon_civilian_teleporter" ], + "sound": "\"So… cold…\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_human_porter3", "mon_civilian_teleporter" ], + "sound": "\"So… dark…\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_vitakinetic" ], + "sound": "\"I have to live!\"", + "volume": 15 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_vitakinetic" ], + "sound": "\"Have to escape.\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_vitakinetic" ], + "sound": "\"Must survive.\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_civilian_vitakinetic" ], + "sound": "\"I need a way out!\"", + "volume": 15 + }, + { + "type": "speech", + "speaker": [ "mon_feral_scientist_psychic" ], + "sound": "quiet laughter.", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_scientist_psychic" ], + "sound": "\"Yes…\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_scientist_psychic" ], + "sound": "\"A test subject…\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_scientist_psychic" ], + "sound": "\"Ah, yes…\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": [ "mon_feral_security_captain_psychic", "mon_feral_security_psychic" ], + "sound": "\"Stop!\"", + "volume": 15 + }, + { + "type": "speech", + "speaker": [ "mon_feral_security_captain_psychic", "mon_feral_security_psychic" ], + "sound": "\"This is a restricted area!\"", + "volume": 15 + }, + { + "type": "speech", + "speaker": [ "mon_feral_security_captain_psychic", "mon_feral_security_psychic" ], + "sound": "\"Authorized personnel only!\"", + "volume": 15 + }, + { + "type": "speech", + "speaker": [ "mon_feral_security_captain_psychic", "mon_feral_security_psychic" ], + "sound": "\"Leave!\"", + "volume": 15 + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/snippets/telepathy_snippets.json b/data/Mainline_mods/Mods/MindOverMatter/snippets/telepathy_snippets.json new file mode 100644 index 000000000..91b571868 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/snippets/telepathy_snippets.json @@ -0,0 +1,67 @@ +[ + { + "type": "snippet", + "//": "Used for reading anyone's minds", + "category": "", + "text": [ + "«Poor …no one deserves to go out like that.»", + "«Just one more death, one more kill and then I'll be right. What? No, why would I think that!»", + "«I need to go to bed early. Just please, God, no more nightmares tonight.»", + "«It's me, hi, I'm the problem, it's me\nAt tea time, everybody agrees\nI'll stare directly at the dammit why can't I get it out of my head!»", + "«…I'm sorry…forgive me…»", + "«…»\n\nNo thoughts at all. Maybe they're aphantasic?", + "«Just let one of those get close and it'll get some 5.56 right between the eyes. Not too close, though. God damn it, , I told you to watch out.»", + "«Wasn't that long ago we were all eating sushi at the new place in the city. And now this. At least I still have food.»", + "«I would kill for some Foodplace right now.»", + "«This was the year the Patriots were going to bring it home! I wonder if any of those guys made it out? At least the riots didn't start until after the season…»", + "«So did everyone in the past spend 95% of the time bored as shit? I hate this.»", + "«Who would have thought that guy screaming on the street corner was right? Hell, maybe the FBI really did steal ten billion from him.»", + "«*tuneless humming*»", + "«This is like the worst isekai ever.»", + "«Have to live. Have to live. For you, .»", + "«The bees and ants are already the size of dogs. Are they just going to keep getting bigger?»", + "«, did you make it out? I should have gone back for you but there were just too many of them.»", + "«You looked so happy in that mushroom field. Maybe I should have listened to you.»", + "«I should have gone camping more. But maybe I can use that pottery class I took…»", + "«I should have listened to 's stories about the dreams.»", + "«It's all a dream. All this is a dream. I'll wake up soon and it'll be Saturday morning.»", + "«At least I'll never have to hear any damn again.»", + "«I never did make it to Machu Picchu.»" + ] + }, + { + "type": "snippet", + "//": "Used for reading refugee center guards' minds", + "category": "", + "text": [ + "«Ugh, why won't this asshole leave me alone? I just want to finish my shift and get something to eat.»", + "«They were just sitting there in the loading dock this whole time. Right near us. Could have been any of us trapped in there with them.»", + "«When I told them I knew how to fight I didn't expect this. This is nothing like the dojo.»", + "«Tonight's the night I win it all back. Don't know how pulled off that straight but she can't do it twice in a row.»", + "«Four hours down, six to go. But better bored than exciting.»", + "«At least I'm on guard duty in here and not with one of the caravans. Those poor bastards. After what looked like when they hauled him back you couldn't pay me enough to go out there.»", + "«Why me? Why couldn't this weirdo have talked to .»", + "«Dammit, I know I saw on shift last night. Trust to give me shit about it.»", + "«Well, he's definitely never going to write that last book now. At least people keep bringing Smokes new books. Don't know what I would do if I couldn't wind down with a good book. Ha, \"time enough at last\".»", + "«That fence is not going to stop some of the things we saw on the way here…»", + "«Endless black glass…sky filled with colors…the screams…thank God it was just a nightmare.»", + "«To think I used to be a pacifist.»" + ] + }, + { + "type": "snippet", + "//": "Used for reading your followers' minds", + "category": "", + "text": [ + "«Every time they leave…is this the time they won't come back?»", + "«Ugh! Were they literally bathing in sewage? What is that smell!»", + "«Please, just tell me to take a car apart. I'd rather do that than go back out there.»", + "«Punching out a jabberwock? Please. How stupid do they think I am?»", + "«Can we really make this place a new home?»", + "«Well. At least it beats being dead.»", + "«They're like a machine. How do they do it?»", + "«Oh God, not another fucking training session.»", + "«If I were injured on a run, would they come back for me?»" + ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/ter_transform/ter_transform.json b/data/Mainline_mods/Mods/MindOverMatter/ter_transform/ter_transform.json new file mode 100644 index 000000000..5db37515d --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/ter_transform/ter_transform.json @@ -0,0 +1,12 @@ +[ + { + "type": "ter_furn_transform", + "id": "ter_pyrokin_quell_fire", + "field": [ { "result": "fd_null", "valid_field": [ "fd_fire" ], "message": "The fire gutters and dies!", "message_good": true } ] + }, + { + "type": "ter_furn_transform", + "id": "ter_null_zombie_delete_fields", + "field": [ { "result": "fd_null", "valid_field": [ "fd_nullifying_field" ], "message": "" } ] + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/test_data.json b/data/Mainline_mods/Mods/MindOverMatter/test_data.json new file mode 100644 index 000000000..c12abaec2 --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/test_data.json @@ -0,0 +1,132 @@ +[ + { + "id": "telepathic_blast_test", + "type": "SPELL", + "name": "[Ψ]Synaptic Overload Test", + "description": "Short-circuit and overwhelm a target's brain as part of a specific kind of test.", + "message": "You unleash a psionic scream at your target!", + "valid_targets": [ "hostile" ], + "spell_class": "TELEPATH", + "skill": "metaphysics", + "flags": [ "CONCENTRATE", "NO_PROJECTILE", "SILENT", "NO_HANDS", "NO_LEGS" ], + "difficulty": 6, + "max_level": { "math": [ "int_to_level(1)" ] }, + "effect": "attack", + "extra_effects": [ { "id": "psionic_drained_difficulty_six", "hit_self": true } ], + "shape": "blast", + "damage_type": "psi_telepathic_damage", + "min_damage": 10, + "max_damage": 10, + "damage_increment": 1, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: telepathic_blast') * 2) + 3) * (scaling_factor(u_val('intelligence') ) )" ] + }, + "max_range": 80, + "energy_source": "STAMINA", + "base_energy_cost": 1, + "final_energy_cost": 1, + "energy_increment": -125, + "base_casting_time": 1, + "final_casting_time": 1, + "casting_time_increment": -2.5 + }, + { + "id": "mon_anti_telepath_zombie", + "type": "MONSTER", + "name": { "str": "anti-telepath zombie" }, + "description": "A human body, swaying as it moves, an unstoppable rage visible in its oily black eyes. It's even more immune to telepathy than a normal zombie.", + "default_faction": "zombie", + "bodytype": "human", + "categories": [ "CLASSIC" ], + "species": [ "ZOMBIE", "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 70, + "material": [ "flesh" ], + "symbol": "Z", + "color": "light_green", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "vision_night": 3, + "armor": { "psi_telepathic_damage": 50 }, + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_wp_zombie" ], + "harvest": "zombie_humanoid", + "grab_strength": 20, + "special_attacks": [ { "id": "grab" }, { "id": "bite_humanoid", "cooldown": 5 }, { "id": "scratch_humanoid" } ], + "death_drops": "default_zombie_death_drops", + "burn_into": "mon_zombie_scorched", + "fungalize_into": "mon_zombie_fungus", + "upgrades": { "half_life": 30, "into_group": "GROUP_ZOMBIE_UPGRADE" }, + "flags": [ + "SEES", + "HEARS", + "STUMBLES", + "WARM", + "GRABS", + "BASHES", + "GROUP_BASH", + "POISON", + "NO_BREATHE", + "REVIVES", + "PUSH_MON", + "FILTHY" + ] + }, + { + "id": "mon_mi_go_test", + "type": "MONSTER", + "name": { "str": "mi-go test subject" }, + "description": "An alien creature of uncertain origin. Usually mi-go perform experiments on human subjects--this time it's the other way around.", + "default_faction": "mi-go", + "bodytype": "migo", + "species": [ "MIGO" ], + "volume": "92500 ml", + "weight": "120 kg", + "hp": 210, + "speed": 0, + "material": [ "flesh" ], + "symbol": "&", + "color": "pink", + "aggression": 20, + "morale": 30, + "melee_skill": 5, + "melee_dice": 4, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "dodge": 4, + "bleed_rate": 75, + "vision_day": 50, + "vision_night": 20, + "families": [ "prof_wp_demihuman" ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "harvest": "zombie_meatslug", + "path_settings": { "max_dist": 50, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "scents_ignored": [ "sc_fetid" ], + "special_attacks": [ + [ "PARROT", 100 ], + { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 23, "armor_multiplier": 0.8 } ] } + ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "WARM", + "BASHES", + "POISON", + "NO_BREATHE", + "ARTHROPOD_BLOOD", + "PATH_AVOID_DANGER_1", + "CAN_OPEN_DOORS", + "PRIORITIZE_TARGETS", + "CORNERED_FIGHTER", + "HIVE_MIND" + ], + "armor": { "bash": 4, "cut": 12, "bullet": 10, "electric": 2 } + } +] diff --git a/data/Mainline_mods/Mods/MindOverMatter/vitamins.json b/data/Mainline_mods/Mods/MindOverMatter/vitamins.json new file mode 100644 index 000000000..da4ae67fe --- /dev/null +++ b/data/Mainline_mods/Mods/MindOverMatter/vitamins.json @@ -0,0 +1,26 @@ +[ + { + "id": "vitamin_psionic_drain", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Psionic Drain" }, + "excess": "effect_disease_psionic_drain", + "min": 0, + "max": 250, + "rate": "4 h", + "disease_excess": [ + [ 15, 34 ], + [ 35, 54 ], + [ 55, 74 ], + [ 75, 94 ], + [ 95, 114 ], + [ 115, 134 ], + [ 135, 154 ], + [ 155, 174 ], + [ 175, 194 ], + [ 195, 214 ], + [ 215, 234 ], + [ 235, 250 ] + ] + } +] diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/modinteractions/Defense_Mode/monstergroups.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/modinteractions/Defense_Mode/monstergroups.json new file mode 100644 index 000000000..fc7456c27 --- /dev/null +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/modinteractions/Defense_Mode/monstergroups.json @@ -0,0 +1,20 @@ +[ + { + "name": "GROUP_SWEET_HORDE", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_marshmallow_guy_dm" }, + { "monster": "mon_marshmallow_buff_dm" }, + { "monster": "mon_marshmallow_guy_armored_dm" }, + { "monster": "mon_marshmallow_buff_armored_dm" }, + { "monster": "mon_gummy_dm" }, + { "monster": "mon_gummy_gator_dm" }, + { "monster": "mon_cracker_dm" }, + { "monster": "mon_cookie_dm" }, + { "monster": "mon_cookie_hydra_dm" }, + { "monster": "mon_spider_gum_dm" }, + { "monster": "mon_gum_spider_wolf_dm" }, + { "monster": "mon_licorice_snake_dm" } + ] + } +] diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/modinteractions/Defense_Mode/monsters.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/modinteractions/Defense_Mode/monsters.json new file mode 100644 index 000000000..e3cbb63c2 --- /dev/null +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/modinteractions/Defense_Mode/monsters.json @@ -0,0 +1,135 @@ +[ + { + "id": "mon_marshmallow_guy_dm", + "copy-from": "mon_marshmallow_guy", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_marshmallow_buff_dm", + "copy-from": "mon_marshmallow_buff", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_marshmallow_guy_armored_dm", + "copy-from": "mon_marshmallow_guy_armored", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_marshmallow_buff_armored_dm", + "copy-from": "mon_marshmallow_buff_armored", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_gummy_dm", + "copy-from": "mon_gummy", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "hp": 50, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_gummy_gator_dm", + "copy-from": "mon_gummy_gator", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_cracker_dm", + "copy-from": "mon_cracker", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_cookie_dm", + "copy-from": "mon_cookie", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_cookie_hydra_dm", + "copy-from": "mon_cookie_hydra", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_spider_gum_dm", + "copy-from": "mon_spider_gum", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_gum_spider_wolf_dm", + "copy-from": "mon_gum_spider_wolf", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_licorice_snake_dm", + "copy-from": "mon_licorice_snake", + "type": "MONSTER", + "species": [ "DM_SWEETS" ], + "default_faction": "marshmallow_boys", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + } +] diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/modinteractions/Defense_Mode/species.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/modinteractions/Defense_Mode/species.json new file mode 100644 index 000000000..1946e3707 --- /dev/null +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/modinteractions/Defense_Mode/species.json @@ -0,0 +1,8 @@ +[ + { + "type": "SPECIES", + "id": "DM_SWEETS", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "footsteps": "shlop." + } +] diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_comestibles.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_comestibles.json index 6906f43a6..fa05ab6fc 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_comestibles.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_comestibles.json @@ -4,15 +4,14 @@ "id": "broken_necco", "name": "necco corpse", "symbol": "%", - "volume": "4000 ml", + "volume": "100 ml", "weight": "60 g", "spoils_in": "180 days", "color": "magenta", "comestible_type": "FOOD", "material": [ "junk" ], "description": "The corpse of a necco. Now it really looks like a giant necco wafer. Surely a bite wouldn't hurt, right?", - "price": 4000, - "charges": 40, + "price": "1 USD", "quench": -1, "healthy": -1, "calories": 220, @@ -184,6 +183,7 @@ "price_postapoc": 5, "material": [ "junk" ], "volume": "250 ml", + "charges": 1, "phase": "liquid", "flags": [ "EATEN_COLD" ], "fun": -4 diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_flesh.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_flesh.json new file mode 100644 index 000000000..92c751c56 --- /dev/null +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_flesh.json @@ -0,0 +1,184 @@ +[ + { + "id": "marshmallow_flesh", + "type": "COMESTIBLE", + "name": { "str": "chunk of marshmallow flesh", "str_pl": "chunks of marshmallow flesh" }, + "description": "A big chunk of squishy, fluffy, puffy, delicious marshmallow flesh.", + "weight": "53 g", + "volume": "250 ml", + "color": "white", + "spoils_in": "90 days", + "comestible_type": "FOOD", + "symbol": "%", + "calories": 168, + "price_postapoc": 100, + "looks_like": "marshmallow", + "material": [ "junk" ], + "flags": [ "EDIBLE_FROZEN" ], + "fun": 10 + }, + { + "type": "COMESTIBLE", + "id": "smores_flesh", + "name": { "str": "piece of s'mores' flesh", "str_pl": "pieces of s'mores' flesh" }, + "looks_like": "smores", + "weight": "180 g", + "color": "brown", + "spoils_in": "90 days", + "comestible_type": "FOOD", + "symbol": "%", + "calories": 418, + "description": "A shell of graham crackers and chocolate filled with delicious marshmallow flesh.", + "price_postapoc": 250, + "material": [ "wheat", "junk" ], + "volume": "250 ml", + "flags": [ "EDIBLE_FROZEN" ], + "vitamins": [ [ "calcium", 4 ], [ "iron", 6 ] ], + "fun": 20 + }, + { + "type": "COMESTIBLE", + "id": "candy3_flesh", + "name": { "str": "chunk of chewy candy flesh", "str_pl": "chunks of chewy candy flesh" }, + "weight": "127 g", + "color": "yellow", + "spoils_in": "360 days", + "looks_like": "candy3", + "comestible_type": "FOOD", + "symbol": "%", + "calories": 235, + "description": "A chunk of colorful fruit-flavored chewy candy meat.", + "price_postapoc": 554, + "material": [ "junk" ], + "volume": "250 ml", + "flags": [ "EDIBLE_FROZEN" ], + "fun": 3 + }, + { + "type": "COMESTIBLE", + "id": "candy3gator_flesh", + "name": { "str": "chunk of reptilian candy flesh", "str_pl": "chunks of reptilian candy flesh" }, + "copy-from": "candy3_flesh", + "looks_like": "candy3gator", + "color": "green", + "description": "A chunk of colorful fruit-flavored candy meat, this one is extra chewy." + }, + { + "type": "COMESTIBLE", + "id": "grahmcrackers_shell", + "name": { "str": "graham cracker shell" }, + "looks_like": "grahmcrackers", + "weight": "82 g", + "color": "brown", + "spoils_in": "90 days", + "comestible_type": "FOOD", + "symbol": "%", + "quench": -4, + "calories": 293, + "description": "A dry, sugary piece of shell of a graham cracker.", + "price_postapoc": 300, + "material": [ "wheat", "junk" ], + "volume": "250 ml", + "flags": [ "EDIBLE_FROZEN" ], + "vitamins": [ [ "calcium", 4 ], [ "iron", 6 ] ], + "fun": 2 + }, + { + "type": "COMESTIBLE", + "id": "cookie_flesh", + "name": { "str": "chunk of cookie flesh", "str_pl": "chunks of cookie flesh" }, + "looks_like": "cookies", + "weight": "132 g", + "color": "brown", + "spoils_in": "60 days", + "comestible_type": "FOOD", + "symbol": "%", + "quench": -1, + "calories": 160, + "description": "A sweet, delicious chunk of cookie flesh.", + "price_postapoc": 150, + "material": [ "wheat", "junk" ], + "volume": "250 ml", + "flags": [ "EDIBLE_FROZEN" ], + "vitamins": [ [ "calcium", 2 ], [ "iron", 6 ] ], + "fun": 7 + }, + { + "id": "gum_flesh", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "looks_like": "gum", + "name": { "str": "chunk of gum flesh", "str_pl": "chunks of gum flesh" }, + "description": "Bright pink chunk of fresh gum flesh.", + "category": "food", + "weight": "300 g", + "volume": "250 ml", + "price_postapoc": 100, + "symbol": "*", + "color": "pink", + "stim": 1, + "fun": 2, + "material": [ "junk" ], + "flags": [ "NO_INGEST" ], + "use_action": [ "CHEW" ] + }, + { + "id": "caff_gum_flesh", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "looks_like": "caff_gum", + "name": { "str": "chunk of caffeinated gum flesh", "str_pl": "chunks of caffeinated gum flesh" }, + "description": "A nice chunk of still shivering caffeinated gum flesh.", + "addiction_type": "caffeine", + "category": "drugs", + "weight": "300 g", + "volume": "250 ml", + "price_postapoc": 500, + "symbol": "*", + "color": "white", + "stim": 10, + "fun": 1, + "material": [ "junk" ], + "flags": [ "NO_INGEST" ], + "use_action": [ "CHEW" ] + }, + { + "type": "COMESTIBLE", + "id": "cow_candy_flesh", + "name": { "str": "chunk of chocolate meat", "str_pl": "chunks of chocolate meat" }, + "weight": "158 g", + "looks_like": "cow_candy", + "color": "red", + "spoils_in": "360 days", + "comestible_type": "FOOD", + "symbol": "%", + "calories": 287, + "description": "A chunk chocolate meat, still dripping with liquid chocolate.", + "price_postapoc": 400, + "material": [ "junk" ], + "volume": "250 ml", + "flags": [ "EDIBLE_FROZEN" ], + "vitamins": [ [ "iron", 9 ] ], + "fun": 3 + }, + { + "type": "COMESTIBLE", + "id": "licorice_flesh", + "name": { "str": "fillet of licorice snake", "str_pl": "fillets of licorice snake" }, + "symbol": "%", + "volume": "250 ml", + "looks_like": "licorice", + "weight": "488 g", + "spoils_in": "230 days", + "color": "red", + "comestible_type": "FOOD", + "material": [ "junk" ], + "description": "A sweet licorice snake fillet, you can see the strands of licorice intertwining in a swirl of sweetness.", + "price": 340, + "quench": -1, + "calories": 270, + "stim": 1, + "fun": 7, + "flags": [ "EDIBLE_FROZEN" ] + } +] diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_harvest.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_harvest.json index 820705056..7e1cc9a38 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_harvest.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_harvest.json @@ -3,58 +3,55 @@ "id": "marshmallow_boy", "type": "harvest", "leftovers": "ruined_candy", - "entries": [ { "drop": "marshmallow", "type": "flesh", "mass_ratio": 0.7 } ] + "entries": [ { "drop": "marshmallow_flesh", "type": "flesh", "mass_ratio": 0.7 } ] }, { "id": "armored_marshmallow_boy", "type": "harvest", "leftovers": "ruined_candy", - "entries": [ { "drop": "smores", "type": "flesh", "mass_ratio": 0.7 } ] + "entries": [ { "drop": "smores_flesh", "type": "flesh", "mass_ratio": 0.7 } ] }, { "id": "gummy_bear", "type": "harvest", "leftovers": "ruined_candy", - "entries": [ { "drop": "candy3", "type": "flesh", "mass_ratio": 0.7 } ] + "entries": [ { "drop": "candy3_flesh", "type": "flesh", "mass_ratio": 0.7 } ] }, { "id": "cracker_boy", "type": "harvest", "leftovers": "ruined_candy", - "entries": [ { "drop": "grahmcrackers", "type": "flesh", "mass_ratio": 0.7 } ] + "entries": [ { "drop": "grahmcrackers_shell", "type": "flesh", "mass_ratio": 0.7 } ] }, { "id": "cookie_beast", "type": "harvest", "leftovers": "ruined_candy", - "entries": [ { "drop": "cookies", "type": "flesh", "mass_ratio": 0.7 } ] + "entries": [ { "drop": "cookie_flesh", "type": "flesh", "mass_ratio": 0.7 } ] }, { "id": "gum_spider", "type": "harvest", "leftovers": "ruined_candy", - "entries": [ { "drop": "gum", "type": "flesh", "mass_ratio": 0.7 } ] + "entries": [ { "drop": "gum_flesh", "type": "flesh", "mass_ratio": 0.7 } ] }, { "id": "caff_gum_spider", "type": "harvest", "leftovers": "ruined_candy", - "entries": [ { "drop": "caff_gum", "type": "flesh", "mass_ratio": 0.7 } ] + "entries": [ { "drop": "caff_gum_flesh", "type": "flesh", "mass_ratio": 0.7 } ] }, { "id": "choc_cows", "type": "harvest", - "message": "As you butcher the chocolate corpse, you break the large chunks of flesh down into bars.", - "entries": [ - { "drop": "chocolate", "type": "flesh", "mass_ratio": 0.52 }, - { "drop": "cow_candy", "base_num": [ 0, 2 ], "max": 2, "type": "offal" } - ] + "message": "As you butcher the chocolate corpse, you break the large pieces of flesh down into more manageable chunks.", + "entries": [ { "drop": "cow_candy_flesh", "type": "flesh", "mass_ratio": 0.7 } ] }, { "id": "licorice_snake", "type": "harvest", "leftovers": "ruined_candy", - "message": "As you butcher the corpse, it turns into a sugary mush of licorice.", - "entries": [ { "drop": "licorice", "type": "flesh", "mass_ratio": 0.7 } ] + "message": "You carefully open the snake to extract the sweet fillets.", + "entries": [ { "drop": "licorice_flesh", "type": "flesh", "mass_ratio": 0.7 } ] } ] diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_item_groups.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_item_groups.json index b6581d993..50eb9919d 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_item_groups.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_item_groups.json @@ -21,22 +21,6 @@ ] } }, - { - "type": "item_group", - "id": "MRE", - "subtype": "distribution", - "copy-from": "MRE", - "extend": { - "entries": [ - { "item": "cookies", "prob": 300 }, - { "item": "grahmcrackers", "prob": 200 }, - { "item": "marshmallow", "prob": 100 }, - { "item": "smores", "prob": 60 }, - { "item": "gum", "prob": 150 }, - { "item": "caff_gum", "prob": 250 } - ] - } - }, { "type": "item_group", "id": "coffee_shop", diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_items.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_items.json index a2399e076..3405168f9 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_items.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_items.json @@ -18,8 +18,7 @@ "//": "This item should not get any use whatsoever, it is merely conservation.", "symbol": "¨", "name": { "str_sp": "pieces of candy wrapper" }, - "charges": 10, - "volume": "1000 ml", + "volume": "100 ml", "weight": "100 g", "color": "white", "looks_like": "wrapper", @@ -34,8 +33,7 @@ "id": "feces_candy", "symbol": "^", "name": { "str_sp": "sticky sludge" }, - "charges": 10, - "volume": "1000 ml", + "volume": "100 ml", "weight": "100 g", "color": "white", "looks_like": "ruined_candy", diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_mapgen/sweet_terrain.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_mapgen/sweet_terrain.json index 59f41893e..d2bc99097 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_mapgen/sweet_terrain.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_mapgen/sweet_terrain.json @@ -8,6 +8,7 @@ "color": "light_blue", "move_cost": 5, "flags": [ "TRANSPARENT", "LIQUID", "NO_SCENT", "SWIMMABLE", "FISHABLE", "SHALLOW_WATER", "CHOCOLATE" ], + "connect_groups": "WATER", "connects_to": "WATER", "examine_action": "water_source" }, @@ -20,6 +21,7 @@ "color": "light_blue", "move_cost": 5, "flags": [ "TRANSPARENT", "LIQUID", "NO_SCENT", "SWIMMABLE", "FISHABLE", "CHOCOLATE" ], + "connect_groups": "WATER", "connects_to": "WATER", "examine_action": "water_source" }, diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_materials.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_materials.json index ba0880d5c..a4e3ef2a7 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_materials.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_materials.json @@ -8,17 +8,12 @@ "specific_heat_solid": 2.03, "latent_heat": 57, "edible": true, - "bash_resist": 0, - "cut_resist": 0, - "bullet_resist": 0, - "acid_resist": 1, - "fire_resist": 1, - "elec_resist": 1, "chip_resist": 0, "dmg_adj": [ "lightly damaged", "damaged", "very damaged", "thoroughly damaged" ], "bash_dmg_verb": "damaged", "cut_dmg_verb": "damaged", - "burn_data": [ { "fuel": 1, "smoke": 1, "burn": 1 }, { "fuel": 1, "smoke": 1, "burn": 2 }, { "fuel": 1, "smoke": 1, "burn": 3 } ] + "burn_data": [ { "fuel": 1, "smoke": 1, "burn": 1 }, { "fuel": 1, "smoke": 1, "burn": 2 }, { "fuel": 1, "smoke": 1, "burn": 3 } ], + "resist": { "bash": 0, "cut": 0, "acid": 1, "heat": 1, "bullet": 0, "electric": 1 } }, { "type": "material", @@ -28,17 +23,12 @@ "specific_heat_liquid": 0.82, "specific_heat_solid": 0.45, "latent_heat": 273, - "bash_resist": 6, - "cut_resist": 6, - "bullet_resist": 3, - "acid_resist": 8, - "fire_resist": 3, - "elec_resist": 2, "chip_resist": 20, "dmg_adj": [ "scratched", "cut", "cracked", "shattered" ], "bash_dmg_verb": "cracked", "cut_dmg_verb": "chipped", "burn_products": [ [ "sugar", 1 ] ], - "burn_data": [ { "fuel": 1, "smoke": 1, "burn": 1 }, { "fuel": 1, "smoke": 1, "burn": 2 }, { "fuel": 1, "smoke": 1, "burn": 3 } ] + "burn_data": [ { "fuel": 1, "smoke": 1, "burn": 1 }, { "fuel": 1, "smoke": 1, "burn": 2 }, { "fuel": 1, "smoke": 1, "burn": 3 } ], + "resist": { "bash": 6, "cut": 6, "acid": 8, "heat": 3, "bullet": 3, "electric": 2 } } ] diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_med.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_med.json index 7b13f6d19..a017cfe5d 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_med.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_med.json @@ -6,13 +6,11 @@ "name": "caramel ointment", "description": "An ointment made of caramel. You could use it to heal your wounds, if you were made of sugar.", "weight": "375 g", - "volume": "250 ml", - "price": 600, + "volume": "27 ml", + "price": "66 cent", "material": [ "sugar" ], "symbol": "~", "color": "brown", - "charges": 3, - "stack_size": 9, "flags": [ "NO_INGEST", "CANT_HEAL_EVERYONE" ], "use_action": { "type": "heal", "bandages_power": 15, "limb_power": 5, "move_cost": 300 } } diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_monster_factions.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_monster_factions.json index 29f0b0ef2..20a825821 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_monster_factions.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_monster_factions.json @@ -27,13 +27,13 @@ "type": "MONSTER_FACTION", "name": "chewgum", "neutral": [ "bot", "plant", "nether", "human", "crackers", "cookies" ], - "by_mood": [ "insect", "player", "animal", "gummy_bears", "marshmallow_boys", "caff_chewgum" ] + "by_mood": [ "insect", "player", "animal", "gummy_bears", "marshmallow_boys", "caff_chewgum", "licorice_snakes" ] }, { "type": "MONSTER_FACTION", "name": "caff_chewgum", "neutral": [ "bot", "plant", "nether", "human", "crackers", "cookies" ], - "by_mood": [ "insect", "player", "animal", "gummy_bears", "marshmallow_boys", "chewgum" ] + "by_mood": [ "insect", "player", "animal", "gummy_bears", "marshmallow_boys", "chewgum", "licorice_snakes" ] }, { "type": "MONSTER_FACTION", @@ -47,7 +47,9 @@ "gummy_bears", "marshmallow_boys", "caff_chewgum", - "chewgum" + "chewgum", + "chocolate_cow", + "licorice_snakes" ], "neutral": [ "small_animal", "insect", "fish" ], "by_mood": [ "bee" ] @@ -56,6 +58,13 @@ "type": "MONSTER_FACTION", "name": "licorice_snakes", "neutral": [ "bot", "plant", "nether", "human", "crackers", "cookies" ], - "by_mood": [ "insect", "player", "animal", "gummy_bears", "chewgum" ] + "by_mood": [ "insect", "player", "animal", "gummy_bears", "chewgum", "chocolate_cow", "caff_chewgum" ] + }, + { + "type": "MONSTER_FACTION", + "name": "chocolate_cow", + "neutral": [ "bot", "plant", "nether", "human", "gummy_bears", "marshmallow_boys" ], + "by_mood": [ "insect", "player", "animal", "cookies", "licorice_snakes" ], + "base_faction": "herbivore" } ] diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_monsters.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_monsters.json index 4719be976..1adaae3f9 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_monsters.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_monsters.json @@ -90,15 +90,13 @@ "melee_skill": 4, "melee_dice": 3, "melee_dice_sides": 8, - "armor_bash": 2, - "armor_cut": 3, - "armor_bullet": 2, "vision_night": 4, "harvest": "marshmallow_boy", "special_attacks": [ [ "SMASH", 30 ] ], "upgrades": { "half_life": 21, "into": "mon_marshmallow_goliath" }, "reproduction": { "baby_egg": "marshmallow", "baby_count": 7, "baby_timer": 12 }, - "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "BASHES", "GROUP_BASH", "NO_BREATHE", "PUSH_MON", "PUSH_VEH" ] + "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "BASHES", "GROUP_BASH", "NO_BREATHE", "PUSH_MON", "PUSH_VEH" ], + "armor": { "bash": 2, "cut": 3, "bullet": 2 } }, { "id": "mon_marshmallow_goliath", @@ -120,9 +118,6 @@ "melee_skill": 5, "melee_dice": 4, "melee_dice_sides": 8, - "armor_bash": 6, - "armor_cut": 9, - "armor_bullet": 7, "vision_day": 50, "vision_night": 4, "harvest": "marshmallow_boy", @@ -140,7 +135,8 @@ "NO_BREATHE", "PUSH_MON", "PUSH_VEH" - ] + ], + "armor": { "bash": 6, "cut": 9, "bullet": 7 } }, { "id": "mon_marshmallow_kid_armored", @@ -149,11 +145,9 @@ "description": "A small humanoid made of marshmallow. Its chocolate-coated cracker armor shines dully as it bumbles around on its stubby marshmallow legs. How cute!", "copy-from": "mon_marshmallow_kid", "color": "white_red", - "armor_bash": 2, - "armor_cut": 3, - "armor_bullet": 2, "harvest": "armored_marshmallow_boy", - "upgrades": { "half_life": 14, "into": "mon_marshmallow_guy_armored" } + "upgrades": { "half_life": 14, "into": "mon_marshmallow_guy_armored" }, + "armor": { "bash": 2, "cut": 3, "bullet": 2 } }, { "id": "mon_marshmallow_guy_armored", @@ -163,12 +157,10 @@ "default_faction": "marshmallow_boys", "copy-from": "mon_marshmallow_guy", "color": "white_magenta", - "armor_bash": 3, - "armor_cut": 4, - "armor_bullet": 3, "harvest": "armored_marshmallow_boy", "upgrades": { "half_life": 14, "into": "mon_marshmallow_buff_armored" }, - "reproduction": { "baby_egg": "smores", "baby_count": 5, "baby_timer": 14 } + "reproduction": { "baby_egg": "smores", "baby_count": 5, "baby_timer": 14 }, + "armor": { "bash": 3, "cut": 4, "bullet": 3 } }, { "id": "mon_marshmallow_buff_armored", @@ -178,12 +170,10 @@ "default_faction": "marshmallow_boys", "copy-from": "mon_marshmallow_buff", "color": "yellow_magenta", - "armor_bash": 6, - "armor_cut": 7, - "armor_bullet": 6, "harvest": "armored_marshmallow_boy", "upgrades": { "half_life": 14, "into": "mon_marshmallow_goliath_armored" }, - "reproduction": { "baby_egg": "smores", "baby_count": 7, "baby_timer": 12 } + "reproduction": { "baby_egg": "smores", "baby_count": 7, "baby_timer": 12 }, + "armor": { "bash": 6, "cut": 7, "bullet": 6 } }, { "id": "mon_marshmallow_goliath_armored", @@ -194,10 +184,8 @@ "copy-from": "mon_marshmallow_goliath", "symbol": "M", "color": "brown_magenta", - "armor_bash": 9, - "armor_cut": 11, - "armor_bullet": 9, - "reproduction": { "baby_egg": "smores", "baby_count": 10, "baby_timer": 10 } + "reproduction": { "baby_egg": "smores", "baby_count": 10, "baby_timer": 10 }, + "armor": { "bash": 9, "cut": 11, "bullet": 9 } }, { "id": "mon_gummy_cub", @@ -240,14 +228,14 @@ "melee_dice": 4, "melee_dice_sides": 6, "dodge": 3, - "armor_bash": 2, "vision_day": 30, "vision_night": 10, "path_settings": { "max_dist": 10 }, "anger_triggers": [ "HURT" ], "harvest": "gummy_bear", "reproduction": { "baby_egg": "candy3", "baby_count": 1, "baby_timer": 10 }, - "flags": [ "SEES", "HEARS", "SMELLS", "PATH_AVOID_DANGER_1", "WARM", "BASHES", "ATTACKMON", "NO_BREATHE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "PATH_AVOID_DANGER_1", "WARM", "BASHES", "ATTACKMON", "NO_BREATHE" ], + "armor": { "bash": 2 } }, { "id": "mon_gummy_gator", @@ -285,15 +273,13 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "dodge": 4, - "armor_cut": 10, - "armor_bullet": 8, - "armor_stab": 25, "vision_day": 30, "vision_night": 3, "harvest": "cracker_boy", "special_attacks": [ [ "scratch", 10 ] ], "upgrades": { "half_life": 15, "into": "mon_cracker" }, - "flags": [ "SEES", "HEARS", "NO_BREATHE" ] + "flags": [ "SEES", "HEARS", "NO_BREATHE" ], + "armor": { "cut": 10, "stab": 25, "bullet": 8 } }, { "id": "mon_cracker", @@ -316,15 +302,13 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 3, - "armor_cut": 20, - "armor_bullet": 27, - "armor_stab": 27, "vision_day": 30, "vision_night": 3, "harvest": "cracker_boy", "special_attacks": [ [ "scratch", 10 ] ], "reproduction": { "baby_egg": "grahmcrackers", "baby_count": 3, "baby_timer": 20 }, - "flags": [ "SEES", "HEARS", "NO_BREATHE" ] + "flags": [ "SEES", "HEARS", "NO_BREATHE" ], + "armor": { "cut": 20, "stab": 27, "bullet": 27 } }, { "id": "mon_cracker_lbass", @@ -433,15 +417,13 @@ "melee_dice": 1, "melee_dice_sides": 6, "dodge": 2, - "armor_bash": 2, - "armor_cut": 4, - "armor_bullet": 3, "vision_day": 5, "vision_night": 5, "harvest": "gum_spider", "emit_fields": [ { "emit_id": "emit_gum_web", "delay": "30 m" } ], "flags": [ "SEES", "SMELLS", "HEARS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ], - "reproduction": { "baby_egg": "gum", "baby_count": 10, "baby_timer": 5 } + "reproduction": { "baby_egg": "gum", "baby_count": 10, "baby_timer": 5 }, + "armor": { "bash": 2, "cut": 4, "bullet": 3 } }, { "id": "mon_gum_spider_wolf", @@ -465,14 +447,12 @@ "melee_dice": 1, "melee_dice_sides": 8, "dodge": 4, - "armor_bash": 4, - "armor_cut": 8, - "armor_bullet": 6, "vision_day": 5, "vision_night": 5, "harvest": "caff_gum_spider", "anger_triggers": [ "STALK", "PLAYER_WEAK", "HURT", "PLAYER_CLOSE" ], - "flags": [ "SEES", "SMELLS", "HEARS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "SMELLS", "HEARS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ], + "armor": { "bash": 4, "cut": 8, "bullet": 6 } }, { "id": "mon_cow_calf_choc", @@ -489,11 +469,30 @@ "type": "MONSTER", "name": { "str": "chocolate cow" }, "description": "The domestic cow, a baleful, ruminating farm animal. It is quite muscular, and the males can have a violent streak to accompany their nasty-looking horns. This one looks to be made entirely of chocolate.", - "copy-from": "mon_cow", + "default_faction": "chocolate_cow", + "bodytype": "dog", + "species": [ "CHOCOLATE" ], + "symbol": "C", + "color": "brown", + "volume": "680388 ml", + "weight": "680388 g", + "hp": 100, + "speed": 130, + "aggression": -10, + "morale": 50, + "aggro_character": false, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 10, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "dodge": 2, + "anger_triggers": [ "HURT", "PLAYER_NEAR_BABY" ], + "placate_triggers": [ "PLAYER_WEAK" ], "harvest": "choc_cows", "starting_ammo": { "milk_raw_choc": 40 }, "biosignature": { "biosig_item": "feces_candy", "biosig_timer": "1 d" }, - "reproduction": { "baby_monster": "mon_cow_calf_choc", "baby_count": 1, "baby_timer": 343 } + "reproduction": { "baby_monster": "mon_cow_calf_choc", "baby_count": 1, "baby_timer": 343 }, + "armor": { "bash": 2, "electric": 1 } }, { "id": "mon_licorice_snake", diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_mutations.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_mutations.json index 80bfbd747..19a99f273 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_mutations.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_mutations.json @@ -27,7 +27,15 @@ "UNSTABLE", "HERBIVORE", "ROBUST", - "CARNIVORE" + "CARNIVORE", + "FASTHEALER", + "FASTHEALER2", + "REGEN", + "REGEN_LIZ", + "SLOWHEALER", + "SLOWHEALER2", + "SLOWHEALER3", + "NOHEAL" ], "can_only_eat": [ "junk", "sugar", "honey" ], "can_only_heal_with": [ "caramel_ointement" ], @@ -35,9 +43,8 @@ "vitamin_rates": [ [ "vitC", -900 ], [ "iron", -900 ], [ "calcium", -900 ] ], "starting_trait": true, "healing_awake": 0.0, - "healing_resting": -1.0, + "healing_multiplier": 0.0, "healthy_rate": 0.0, - "bleed_resist": 1000, "fat_to_max_hp": 0.1, "sweat_multiplier": 0.0, "anger_relations": [ [ "MARSHMALLOW", 20 ], [ "GUMMY", 5 ], [ "CHEWGUM", 20 ] ], @@ -50,6 +57,6 @@ "bash": 5 } ], - "flags": [ "NO_THIRST", "NO_DISEASE", "NO_RADIATION", "NO_MINIMAL_HEALING" ] + "flags": [ "NO_THIRST", "NO_DISEASE", "NO_RADIATION", "BLEED_IMMUNE", "INFECTION_IMMUNE" ] } ] diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_recipe.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_recipe.json index fcfcd8138..c762a9295 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_recipe.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_recipe.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "caramel_ointement", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MEDICAL", @@ -12,7 +12,8 @@ "book_learn": [ [ "sugarkin_flyer", 1 ] ], "qualities": [ { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], - "components": [ [ [ "sugar", 10 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + "components": [ [ [ "sugar", 10 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ], + "charges": 3 }, { "type": "recipe", @@ -40,6 +41,7 @@ "skill_used": "cooking", "difficulty": 2, "tools": [ [ [ "dehydrator", 25 ], [ "char_smoker", 25 ] ] ], - "components": [ [ [ "milk_choc", 1 ] ] ] + "components": [ [ [ "milk_choc", 1 ] ] ], + "charges": 4 } ] diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_scenarios.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_scenarios.json index 7ef55ddd1..93a970838 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_scenarios.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_scenarios.json @@ -4,7 +4,7 @@ "id": "sweet_cataclysm", "name": "The Sweet Life", "points": 0, - "description": "You open your eyes as if for the first time. Looking at yourself, you can see your skin glisten in the light. One word come to your mind \"sugar\" you don't remember where you learned it, and in fact you don't seem to remember anything. Despite the circumstances, you feel quite hopeful. Everything feels new and you're going to make the best of it!", + "description": "You open your eyes as if for the first time. Looking at yourself, you can see your skin glisten in the light. One word comes to your mind: \"sugar\". You don't remember where you learned it, and in fact you don't seem to remember anything. Despite the circumstances, you feel quite hopeful. Everything feels new and you're going to make the best of it!", "allowed_locs": [ "sloc_candy_shop" ], "professions": [ "sugar_kin" ], "start_name": "Candy Shop", diff --git a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_species.json b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_species.json index c6df9bf88..81b577e69 100644 --- a/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_species.json +++ b/data/Mainline_mods/Mods/My_Sweet_Cataclysm/sweet_species.json @@ -37,5 +37,12 @@ "anger_triggers": [ "FRIEND_DIED" ], "fear_triggers": [ "HURT", "FIRE" ], "footsteps": "Shlop." + }, + { + "type": "SPECIES", + "id": "CHOCOLATE", + "anger_triggers": [ "FRIEND_DIED" ], + "fear_triggers": [ "HURT", "FIRE" ], + "footsteps": "Clop." } ] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/harvest.json b/data/Mainline_mods/Mods/Mythos-Creatures/harvest.json new file mode 100644 index 000000000..627cb5a27 --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/harvest.json @@ -0,0 +1,15 @@ +[ + { + "id": "elder_thing", + "type": "harvest", + "message": "You crack open the hard chitin of the outer barrel to get at the alien flesh beneath.", + "entries": [ + { "drop": "veggy_tainted", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.32 }, + { "drop": "blood_tainted", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.015 }, + { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/items/corpses/mythos.json b/data/Mainline_mods/Mods/Mythos-Creatures/items/corpses/mythos.json new file mode 100644 index 000000000..9bc766eca --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/items/corpses/mythos.json @@ -0,0 +1,129 @@ +[ + { + "type": "GENERIC", + "id": "corpse_generic_deep_one", + "copy-from": "corpse", + "symbol": "%", + "color": "light_gray", + "volume": "92500 ml", + "weight": "120 kg", + "name": { "str": "deep one corpse" }, + "description": "The dead body of a deep one.", + "material": [ "flesh" ] + }, + { + "type": "GENERIC", + "id": "corpse_generic_male_deep_one", + "copy-from": "corpse_generic_deep_one", + "name": { "str": "deep one corpse" }, + "description": "A dead body of a male deep one.", + "looks_like": "corpse_generic_deep_one", + "material": [ "flesh" ] + }, + { + "type": "GENERIC", + "id": "corpse_generic_female_deep_one", + "copy-from": "corpse_generic_deep_one", + "name": { "str": "deep one corpse" }, + "description": "A dead body of a female deep one.", + "looks_like": "corpse_generic_deep_one", + "volume": "70 L", + "weight": "90 kg", + "material": [ "flesh" ] + }, + { + "type": "GENERIC", + "id": "corpse_bloody_deep_one", + "copy-from": "corpse_generic_deep_one", + "name": { "str": "deep one corpse" }, + "description": "The dead body of a deep one, coated in congealed blood.", + "looks_like": "corpse_generic_deep_one", + "material": [ "flesh" ] + }, + { + "type": "GENERIC", + "id": "corpse_scorched_deep_one", + "copy-from": "corpse_generic_deep_one", + "name": { "str": "deep one corpse" }, + "description": "An awful, almost unidentifiable mass of charred flesh.", + "looks_like": "corpse_generic_deep_one", + "material": [ "flesh" ] + }, + { + "type": "GENERIC", + "id": "corpse_stabbed_deep_one", + "copy-from": "corpse_generic_deep_one", + "name": { "str": "deep one corpse" }, + "description": "A dead body of a deep one with a gaping stab wound in its back.", + "looks_like": "corpse_generic_deep_one", + "material": [ "flesh" ] + }, + { + "type": "GENERIC", + "id": "corpse_gunned_deep_one", + "copy-from": "corpse_generic_deep_one", + "name": { "str": "deep one corpse" }, + "description": "The dead body of a deep one. Its forehead bears a large bullet entrance wound. An even larger exit wound is present on the back of its head.", + "looks_like": "corpse_generic_deep_one", + "material": [ "flesh" ] + }, + { + "type": "GENERIC", + "id": "corpse_halved_upper_deep_one", + "copy-from": "corpse_generic_deep_one", + "name": { "str": "deep one corpse" }, + "description": "The upper half of a dead deep one body, as if torn apart with enormous force. Some organs are hanging out.", + "looks_like": "corpse_generic_deep_one", + "volume": "46250 L", + "weight": "60 kg", + "material": [ "flesh" ] + }, + { + "type": "GENERIC", + "id": "corpse_half_beheaded_deep_one", + "copy-from": "corpse_generic_deep_one", + "name": { "str": "deep one corpse" }, + "description": "A half-decapitated dead body. It is unclear what could have caused such a wound.", + "looks_like": "corpse_generic_deep_one", + "material": [ "flesh" ] + }, + { + "type": "GENERIC", + "id": "corpse_generic_gunned_deep_one", + "copy-from": "corpse_generic_deep_one", + "name": { "str": "deep one corpse" }, + "description": "The dead body of a deep one. Its forehead bears a large bullet entrance wound. An even larger exit wound is present on the back of its head.", + "looks_like": "corpse_generic_deep_one", + "material": [ "flesh" ], + "snippet_category": [ + { + "id": "generic_gunned_deep_one_01", + "text": "The dead body of a deep one. Its forehead bears a large bullet entrance wound. An even larger exit wound is present on the back of its head." + }, + { + "id": "generic_gunned_deep_one_02", + "text": "The corpse of a deep one shot several times in the back with a low-caliber weapon." + }, + { + "id": "generic_gunned_deep_one_03", + "text": "A deep one corpse gored by arms fire chest to thighs, leaving the face eerily and fishily pristine." + }, + { + "id": "generic_gunned_deep_one_04", + "text": "The corpse of a deep one. It appears to have been shot in the forehead at a very close range leaving you a good view of its brain matter." + }, + { + "id": "generic_gunned_deep_one_05", + "text": "The corpse of a deep one, its legs and arms covered in blood. It appears to have been shot in the thigh." + }, + { + "id": "generic_gunned_deep_one_06", + "text": "The corpse of a deep one who appears to have been shot to death. Its right arm is only barely still attached to his shoulder." + }, + { + "id": "generic_gunned_deep_one_07", + "text": "The corpse of a deep one unblemished but for the bloody hole atop its head, its bald scalp intermixed now with brain, viscera and shotgun pellets." + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/modinfo.json b/data/Mainline_mods/Mods/Mythos-Creatures/modinfo.json new file mode 100644 index 000000000..4458bf09a --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/modinfo.json @@ -0,0 +1,30 @@ +[ + { + "type": "MOD_INFO", + "id": "Mythos-Creatures", + "name": "Mythos Mod - Mythos Creatures Only", + "authors": [ "mythosmod" ], + "description": "Removes all the zombies (including fungus zombies), cyborgs and robots from the game and replaces them with a variety of Lovecraftian monsters - intended to be part of a total conversion mod but can be used as a standalone if wanted.", + "category": "creatures", + "dependencies": [ "dda" ], + "version": "0.1" + }, + { + "type": "MONSTER_BLACKLIST", + "monsters": [ + "mon_zombie_fungus", + "mon_boomer_fungus", + "mon_zombie_child_fungus", + "mon_zombie_gasbag_fungus", + "mon_zombie_smoker_fungus", + "mon_skeleton_fungus", + "mon_skeleton_brute_fungus", + "mon_skeleton_hulk_fungus", + "mon_chud" + ] + }, + { + "type": "MONSTER_BLACKLIST", + "species": [ "ZOMBIE", "ROBOT", "CYBORG" ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/modinteractions/Defense_Mode/monstergroups.json b/data/Mainline_mods/Mods/Mythos-Creatures/modinteractions/Defense_Mode/monstergroups.json new file mode 100644 index 000000000..594820c90 --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/modinteractions/Defense_Mode/monstergroups.json @@ -0,0 +1,13 @@ +[ + { + "name": "GROUP_MYTHOS_SPAWN", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_rat_thing_dm" }, + { "monster": "mon_ghoul_dm" }, + { "monster": "mon_ghast_dm" }, + { "monster": "mon_nightgaunt_dm" }, + { "monster": "mon_deep_one_dm" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/modinteractions/Defense_Mode/monsters.json b/data/Mainline_mods/Mods/Mythos-Creatures/modinteractions/Defense_Mode/monsters.json new file mode 100644 index 000000000..2ddc3efb6 --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/modinteractions/Defense_Mode/monsters.json @@ -0,0 +1,57 @@ +[ + { + "id": "mon_rat_thing_dm", + "copy-from": "mon_rat_thing", + "type": "MONSTER", + "species": [ "MYTHOS_DM" ], + "default_faction": "witches", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_ghoul_dm", + "copy-from": "mon_ghoul", + "type": "MONSTER", + "species": [ "MYTHOS_DM" ], + "default_faction": "witches", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_ghast_dm", + "copy-from": "mon_ghast", + "type": "MONSTER", + "species": [ "MYTHOS_DM" ], + "default_faction": "witches", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_nightgaunt_dm", + "copy-from": "mon_nightgaunt", + "type": "MONSTER", + "species": [ "MYTHOS_DM" ], + "default_faction": "witches", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_deep_one_dm", + "copy-from": "mon_deep_one", + "type": "MONSTER", + "species": [ "MYTHOS_DM" ], + "default_faction": "witches", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/modinteractions/Defense_Mode/species.json b/data/Mainline_mods/Mods/Mythos-Creatures/modinteractions/Defense_Mode/species.json new file mode 100644 index 000000000..f2a91e5e4 --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/modinteractions/Defense_Mode/species.json @@ -0,0 +1,8 @@ +[ + { + "type": "SPECIES", + "id": "MYTHOS_DM", + "flags": [ "ALL_SEEING", "NEMESIS" ], + "description": "a mythos creature" + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/monster_factions.json b/data/Mainline_mods/Mods/Mythos-Creatures/monster_factions.json new file mode 100644 index 000000000..e7484088a --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/monster_factions.json @@ -0,0 +1,84 @@ +[ + { + "type": "MONSTER_FACTION", + "name": "deep_ones", + "friendly": [ "cthulhu" ] + }, + { + "type": "MONSTER_FACTION", + "name": "witches", + "friendly": [ "nyarlathotep" ], + "neutral": [ "rat" ] + }, + { + "type": "MONSTER_FACTION", + "name": "nyarlathotep", + "neutral": [ "witches" ], + "hate": [ "nodens" ] + }, + { + "type": "MONSTER_FACTION", + "name": "nodens", + "neutral": [ "ghouls" ], + "hate": [ "nyarlathotep" ] + }, + { + "type": "MONSTER_FACTION", + "name": "ghouls", + "neutral": [ "nodens" ], + "hate": [ "yig" ] + }, + { + "type": "MONSTER_FACTION", + "name": "yig", + "hate": [ "ghouls" ] + }, + { + "type": "MONSTER_FACTION", + "name": "elder_things", + "hate": [ "polyps", "cthulhu", "shub-niggurath" ] + }, + { + "type": "MONSTER_FACTION", + "name": "polyps", + "hate": [ "elder_things", "yith" ] + }, + { + "type": "MONSTER_FACTION", + "name": "shub-niggurath", + "hate": [ "elder_things" ] + }, + { + "type": "MONSTER_FACTION", + "name": "cthulhu", + "friendly": [ "deep_ones" ], + "hate": [ "elder_things", "hastur" ] + }, + { + "type": "MONSTER_FACTION", + "name": "hastur", + "hate": [ "cthulhu" ] + }, + { + "type": "MONSTER_FACTION", + "name": "yith", + "hate": [ "polyps" ] + }, + { + "type": "MONSTER_FACTION", + "name": "shan", + "hate": [ "mi-go" ] + }, + { + "type": "MONSTER_FACTION", + "name": "rat", + "copy-from": "rat", + "neutral": [ "witches" ] + }, + { + "type": "MONSTER_FACTION", + "name": "mi-go", + "copy-from": "mi-go", + "hate": [ "zombie", "triffid", "fungus", "exodii", "shan" ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/blob.json b/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/blob.json new file mode 100644 index 000000000..2e94e4d39 --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/blob.json @@ -0,0 +1,15 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_GOO", + "//": "Remove shoggoth from group.", + "override": true, + "monsters": [ + { "monster": "mon_blob_small", "weight": 200, "cost_multiplier": 0 }, + { "monster": "mon_blob_small", "weight": 100, "cost_multiplier": 0, "pack_size": [ 2, 12 ] }, + { "monster": "mon_blob", "weight": 693, "cost_multiplier": 3, "pack_size": [ 5, 10 ] }, + { "monster": "mon_blob_large", "weight": 5, "cost_multiplier": 6, "pack_size": [ 5, 10 ] }, + { "monster": "mon_blob_brain", "weight": 1, "cost_multiplier": 10 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/misc.json b/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/misc.json new file mode 100644 index 000000000..05f5901dc --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/misc.json @@ -0,0 +1,52 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_BLACK_ROAD", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_ghoul", "weight": 5 }, + { "monster": "mon_ghoul", "weight": 5, "cost_multiplier": 7, "pack_size": [ 5, 20 ] }, + { "monster": "mon_ghoul", "weight": 5, "cost_multiplier": 13, "pack_size": [ 15, 40 ] }, + { "monster": "mon_ghoul", "weight": 5, "cost_multiplier": 20, "pack_size": [ 25, 60 ] }, + { "monster": "mon_ghoul", "weight": 5, "cost_multiplier": 0 }, + { "monster": "mon_feral_human_pipe", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 2, "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SUBWAY_CITY", + "override": true, + "//": "Normal subway, extra spawns underneath a city", + "default": "mon_null", + "monsters": [ + { "monster": "mon_ghoul", "weight": 100, "cost_multiplier": 3, "pack_size": [ 1, 3 ] }, + { "monster": "mon_ghast", "weight": 100, "cost_multiplier": 4, "pack_size": [ 1, 3 ] }, + { "monster": "mon_ghoul", "weight": 100, "cost_multiplier": 3, "pack_size": [ 1, 5 ] }, + { "monster": "mon_ghast", "weight": 100, "cost_multiplier": 4, "pack_size": [ 1, 5 ] }, + { "monster": "mon_ghoul", "weight": 100, "cost_multiplier": 3, "pack_size": [ 3, 7 ] }, + { "monster": "mon_ghast", "weight": 100, "cost_multiplier": 4, "pack_size": [ 3, 7 ] } + ] + }, + { + "type": "monstergroup", + "name": "DUMP_ANIMALS", + "monsters": [ + { "monster": "mon_ghast", "weight": 10, "conditions": [ "NIGHT", "DUSK" ] }, + { "monster": "mon_ghoul", "weight": 15 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SEWER", + "//": "Add rat things to sewers.", + "monsters": [ { "monster": "mon_rat_thing", "weight": 50, "cost_multiplier": 0, "pack_size": [ 3, 12 ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/mythos.json b/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/mythos.json new file mode 100644 index 000000000..45841bb5b --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/mythos.json @@ -0,0 +1,802 @@ +[ + { + "name": "GROUP_PARK_SCENIC", + "type": "monstergroup", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 875 }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 2, "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "name": "GROUP_ROOF_ZOMBIE", + "type": "monstergroup", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 885 }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 2, "pack_size": [ 1, 2 ] } + ] + }, + { + "name": "GROUP_PARK_PLAYGROUND", + "type": "monstergroup", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 900 }, + { "monster": "mon_feral_human_pipe", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 2, "pack_size": [ 1, 2 ] } + ] + }, + { + "name": "GROUP_PARK_DOG", + "type": "monstergroup", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 885 }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 2, "pack_size": [ 1, 2 ] } + ] + }, + { + "name": "GROUP_ZOMBIE_SCORCHED", + "type": "monstergroup", + "override": true, + "monsters": [ { "monster": "mon_null" } ] + }, + { + "type": "monstergroup", + "name": "GROUP_ZOMBIE", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 875 }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "cost_multiplier": 7, "pack_size": [ 5, 20 ] }, + { "monster": "mon_ghoul", "weight": 5, "cost_multiplier": 13, "pack_size": [ 15, 40 ] }, + { "monster": "mon_ghoul", "weight": 5, "cost_multiplier": 20, "pack_size": [ 25, 60 ] }, + { "monster": "mon_ghoul", "weight": 5, "cost_multiplier": 0 }, + { "monster": "mon_feral_human_pipe", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "pack_size": [ 2, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 2, "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_NEMESIS", + "override": true, + "//": "nemesis squad", + "monsters": [ { "monster": "mon_null" } ] + }, + { + "type": "monstergroup", + "name": "GROUP_VANILLA", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 870 }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_rat_thing", "weight": 5, "cost_multiplier": 0 }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0 }, + { "monster": "mon_shantak", "weight": 1, "cost_multiplier": 0 }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_POLICE", + "override": true, + "//": "+30% cops", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0 }, + { "monster": "mon_shantak", "weight": 1, "cost_multiplier": 0 }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_HOUSE", + "override": true, + "//": "+15% child", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_PREPPER_HOUSE", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_PHARM", + "override": true, + "//": "+13% fast", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ELECTRO", + "//": "+15% electric", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_GROCERY", + "//": "+15% fat", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_PUBLICWORKERS", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_MAYBE_ZOMBIE", + "override": true, + "//": "10% chance of a zombie", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 875 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SCHOOL", + "override": true, + "//": "School monster spawns.", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SMALL_STATION", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_LARGE_STATION", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_CHURCH_ZOMBIE", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ZOMBIE_PRISON", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ZOMBIE_COP", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "name": "GROUP_MANSION", + "override": true, + "type": "monstergroup", + "monsters": [ + { "monster": "mon_null", "weight": 823 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_maid_broom", "weight": 10 }, + { "monster": "mon_feral_maid_candlestick", "weight": 10 }, + { "monster": "mon_feral_maid_knife", "weight": 10 }, + { "monster": "mon_feral_fancy_rapier", "weight": 5, "cost_multiplier": 5 }, + { "monster": "mon_feral_fancy_rapier_fake", "weight": 10 }, + { "monster": "mon_feral_fancy_crossbow", "weight": 5, "cost_multiplier": 5 }, + { "monster": "mon_feral_armored_mace", "weight": 1, "cost_multiplier": 10 }, + { "monster": "mon_feral_armored_battleaxe", "weight": 1, "cost_multiplier": 10 }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "name": "GROUP_PANICROOM", + "override": true, + "type": "monstergroup", + "monsters": [ { "monster": "mon_null" } ] + }, + { + "type": "monstergroup", + "name": "GROUP_HOSPITAL", + "override": true, + "//": "Hospital monster spawns. Same as GROUP_ZOMBIE, but without Z-dogs + 20% medical", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_STEEL_MILL", + "override": true, + "//": "Steel mill monster spawns.", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "name": "GROUP_MALL", + "override": true, + "type": "monstergroup", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "name": "GROUP_FIRE", + "override": true, + "type": "monstergroup", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "name": "FERAL_HUMANS", + "override": true, + "type": "monstergroup", + "monsters": [ + { "monster": "mon_feral_human_pipe", "weight": 840 }, + { "monster": "mon_feral_human_pipe", "weight": 100, "pack_size": [ 3, 8 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "pack_size": [ 2, 6 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 2, "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "override": true, + "name": "DUMP_ZOMBIES", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "name": "GROUP_PLAIN", + "override": true, + "type": "monstergroup", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "name": "GROUP_HOTEL_POOL", + "type": "monstergroup", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "name": "GROUP_HOTEL_GYM", + "type": "monstergroup", + "override": true, + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + }, + { + "name": "GROUP_POOL_NOKIDS", + "override": true, + "type": "monstergroup", + "default": "mon_null", + "monsters": [ + { "monster": "mon_null", "weight": 865 }, + { "monster": "mon_rat_thing", "weight": 10, "pack_size": [ 5, 20 ] }, + { + "monster": "mon_ghast", + "weight": 5, + "cost_multiplier": 3, + "pack_size": [ 1, 5 ], + "conditions": [ "NIGHT", "DUSK" ] + }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 2, 3 ] }, + { "monster": "mon_ghoul", "weight": 5, "pack_size": [ 5, 7 ] }, + { "monster": "mon_feral_human_pipe", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "weight": 40, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_axe", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/nether.json b/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/nether.json new file mode 100644 index 000000000..9e118da9b --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/nether.json @@ -0,0 +1,104 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_BREATHER", + "monsters": [ + { "monster": "mon_breather", "weight": 990 }, + { "monster": "mon_breather", "weight": 10, "cost_multiplier": 2, "pack_size": [ 2, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_BREATHER_HUB", + "monsters": [ { "monster": "mon_breather_hub" } ] + }, + { + "type": "monstergroup", + "name": "GROUP_CHURCH_BLANK", + "monsters": [ { "monster": "mon_blank", "cost_multiplier": 0 } ] + }, + { + "name": "GROUP_DARK_WYRM", + "type": "monstergroup", + "monsters": [ { "monster": "mon_dark_wyrm" } ] + }, + { + "type": "monstergroup", + "name": "GROUP_DOG_THING", + "monsters": [ { "monster": "mon_dog_thing" } ] + }, + { + "type": "monstergroup", + "name": "GROUP_NETHER_FATIGUE_FIELD", + "default": "mon_blank", + "monsters": [ + { "monster": "mon_flying_polyp", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_hunting_horror", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_mi_go", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_unseen_hunter", "weight": 100, "starts": "180 hours" }, + { "monster": "mon_mi_go_scout", "weight": 100, "cost_multiplier": 0, "starts": "15 days" }, + { "monster": "mon_yugg", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_gelatin", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_flaming_eye", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_kreck", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_gracke", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_blank", "weight": 100, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_NETHER", + "default": "mon_blank", + "monsters": [ + { "monster": "mon_blank", "weight": 135, "cost_multiplier": 0 }, + { "monster": "mon_flying_polyp", "weight": 25, "cost_multiplier": 0 }, + { "monster": "mon_hunting_horror", "weight": 240, "cost_multiplier": 0 }, + { "monster": "mon_unseen_hunter", "weight": 50, "cost_multiplier": 0, "starts": "30 days" }, + { "monster": "mon_yugg", "weight": 70, "cost_multiplier": 0 }, + { "monster": "mon_gelatin", "weight": 120, "cost_multiplier": 0 }, + { "monster": "mon_flaming_eye", "weight": 120, "cost_multiplier": 0 }, + { "monster": "mon_kreck", "weight": 210, "cost_multiplier": 0 }, + { "monster": "mon_gozu", "weight": 25, "cost_multiplier": 0 }, + { "monster": "mon_shoggoth", "weight": 5, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_NETHER_CAPTURED", + "default": "mon_gracke", + "monsters": [ + { "monster": "mon_gelatin", "weight": 250, "cost_multiplier": 0 }, + { "monster": "mon_mi_go", "weight": 250, "cost_multiplier": 0 }, + { "monster": "mon_mi_go_scout", "weight": 250, "cost_multiplier": 0, "starts": "15 days" }, + { "monster": "mon_kreck", "weight": 250, "cost_multiplier": 0 }, + { "monster": "mon_gracke", "weight": 250, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_NETHER_PORTAL", + "default": "mon_gracke", + "monsters": [ + { "monster": "mon_gelatin", "weight": 200, "cost_multiplier": 0 }, + { "monster": "mon_flaming_eye", "weight": 200, "cost_multiplier": 0 }, + { "monster": "mon_kreck", "weight": 200, "cost_multiplier": 0 }, + { "monster": "mon_gracke", "weight": 200, "cost_multiplier": 0 }, + { "monster": "mon_unseen_hunter", "weight": 100, "cost_multiplier": 0, "starts": "30 days" }, + { "monster": "mon_blank", "weight": 200, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SPIRAL", + "monsters": [ + { "monster": "mon_human_snail", "weight": 740, "cost_multiplier": 0 }, + { "monster": "mon_twisted_body", "weight": 180, "cost_multiplier": 0 }, + { "monster": "mon_vortex", "weight": 80, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_TINDALOS", + "monsters": [ { "monster": "mon_hound_tindalos" } ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/wilderness.json b/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/wilderness.json new file mode 100644 index 000000000..ecb078937 --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/monstergroups/wilderness.json @@ -0,0 +1,89 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_CAVE", + "//": "Current count is 925. Note that 'freq' units are tenth of a percent, with default filling in the gap.", + "is_animal": true, + "monsters": [ + { "monster": "mon_ghast", "weight": 25, "cost_multiplier": 3, "pack_size": [ 1, 5 ], "conditions": [ "NIGHT", "DUSK" ] }, + { "monster": "mon_ghoul", "weight": 25, "cost_multiplier": 3, "pack_size": [ 1, 5 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_FOREST", + "default": "mon_null", + "//": "Current SPRING first DAY count is 513. Note that 'freq' units are tenth of a percent, with default filling in the gap.", + "is_animal": true, + "monsters": [ + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] }, + { "monster": "mon_dark_young", "weight": 1, "cost_multiplier": 10, "starts": "7 days" }, + { "monster": "mon_dark_young", "weight": 2, "cost_multiplier": 10, "starts": "28 days" }, + { "monster": "mon_dark_young", "weight": 3, "cost_multiplier": 10, "starts": "90 days" }, + { "monster": "mon_dark_young", "weight": 4, "cost_multiplier": 10, "starts": "180 days" }, + { + "monster": "mon_ghast", + "weight": 20, + "cost_multiplier": 2, + "pack_size": [ 1, 5 ], + "starts": "7 days", + "conditions": [ "DUSK", "NIGHT" ] + }, + { "monster": "mon_ghoul", "weight": 25, "cost_multiplier": 3, "pack_size": [ 1, 5 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_RIVER", + "default": "mon_null", + "//": "Current SPRING first DAY count is 944. Note that 'freq' units are tenth of a percent, with default filling in the gap.", + "is_animal": true, + "//2": "DDA weight in this group is somewhere around 803. Leaving roughly 190 frequency points left for mods.", + "monsters": [ + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] }, + { "monster": "mon_deep_one", "weight": 8, "cost_multiplier": 10, "pack_size": [ 1, 5 ] }, + { + "monster": "mon_deep_one", + "weight": 15, + "cost_multiplier": 10, + "pack_size": [ 1, 10 ], + "conditions": [ "NIGHT" ] + } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SWAMP", + "default": "mon_null", + "//": "Current SPRING first DAY count is 417. Note that 'freq' units are tenth of a percent, with default filling in the gap.", + "is_animal": true, + "monsters": [ + { "monster": "mon_shoggoth", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shoggoth", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shoggoth", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shoggoth", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] }, + { "monster": "mon_dark_young", "weight": 1, "cost_multiplier": 10, "starts": "7 days" }, + { "monster": "mon_dark_young", "weight": 2, "cost_multiplier": 10, "starts": "28 days" }, + { "monster": "mon_dark_young", "weight": 3, "cost_multiplier": 10, "starts": "90 days" }, + { "monster": "mon_dark_young", "weight": 4, "cost_multiplier": 10, "starts": "180 days" } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_ROOF_ANIMAL", + "//": "Current SPRING first DAY count is 350. Note that 'freq' units are tenth of a percent, with default filling in the gap.", + "is_animal": true, + "monsters": [ + { "monster": "mon_shantak", "weight": 1, "cost_multiplier": 10, "starts": "3 days" }, + { "monster": "mon_shantak", "weight": 2, "cost_multiplier": 10, "starts": "7 days", "pack_size": [ 1, 2 ] }, + { "monster": "mon_shantak", "weight": 3, "cost_multiplier": 10, "starts": "28 days", "pack_size": [ 1, 3 ] }, + { "monster": "mon_shantak", "weight": 4, "cost_multiplier": 10, "starts": "90 days", "pack_size": [ 1, 4 ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/monsters/mythos.json b/data/Mainline_mods/Mods/Mythos-Creatures/monsters/mythos.json new file mode 100644 index 000000000..9c5b4bec9 --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/monsters/mythos.json @@ -0,0 +1,417 @@ +[ + { + "id": "mon_deep_one", + "type": "MONSTER", + "name": { "str": "deep one" }, + "looks_like": "mon_irradiated_wanderer_2", + "description": "A large, greenish-gray amphibious humanoid with webbed hands and feet. It's wide, flabby head is distinctly fish like with wide staring eyes and its gangling limbs end in wickedly sharp claws. It moves with an odd hopping gait, occasionally dropping down to walk on four limbs.", + "default_faction": "deep_ones", + "bodytype": "human", + "species": [ "MYTHOS" ], + "//": "Stats matched with Deep One from Aftershock :)", + "volume": "92500 ml", + "weight": "120 kg", + "hp": 210, + "speed": 120, + "material": [ "flesh" ], + "symbol": "&", + "color": "light_gray", + "aggression": 20, + "morale": 30, + "melee_skill": 7, + "melee_dice": 4, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "dodge": 4, + "vision_day": 40, + "vision_night": 15, + "harvest": "zombie_meatslug", + "path_settings": { "max_dist": 50, "avoid_traps": true, "avoid_sharp": true }, + "scents_ignored": [ "sc_fetid" ], + "grab_strength": 30, + "special_attacks": [ { "id": "bite_humanoid", "cooldown": 6 }, { "id": "scratch_humanoid" }, { "id": "grab", "cooldown": 20 } ], + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "WARM", + "BASHES", + "GRABS", + "POISON", + "NO_BREATHE", + "ARTHROPOD_BLOOD", + "PATH_AVOID_DANGER_1", + "CAN_OPEN_DOORS", + "PRIORITIZE_TARGETS", + "SWIMS", + "WATER_CAMOUFLAGE" + ], + "armor": { "bash": 4, "cut": 12, "bullet": 10 } + }, + { + "id": "mon_rat_thing", + "type": "MONSTER", + "name": { "str": "rat-thing" }, + "looks_like": "mon_sewer_rat", + "description": "A small brown rodent with long whiskers and beady eyes. Its face is strangely human-like, as are its tiny hands.", + "default_faction": "witches", + "bodytype": "pig", + "species": [ "MYTHOS" ], + "volume": "750 ml", + "weight": "1 kg", + "hp": 10, + "speed": 100, + "material": [ "flesh" ], + "symbol": "r", + "color": "brown", + "aggression": 5, + "morale": 40, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 1 } ], + "dodge": 2, + "vision_day": 1, + "vision_night": 30, + "harvest": "mammal_tiny", + "path_settings": { "max_dist": 10 }, + "fear_triggers": [ "FIRE", "HURT" ], + "anger_triggers": [ "PLAYER_WEAK", "FRIEND_ATTACKED", "FRIEND_DIED" ], + "flags": [ "SEES", "SMELLS", "HEARS", "WARM", "SWIMS", "CLIMBS", "SWARMS", "PATH_AVOID_DANGER_1" ] + }, + { + "id": "mon_shantak", + "type": "MONSTER", + "name": { "str_sp": "shantak" }, + "looks_like": "mon_zoose_thorny", + "description": "An enormous, scaly avian monster larger than an elephant. It has slimy, reptilian skin, a pair of membranous, bat-like wings and a horse-like head at the end of a long neck.", + "default_faction": "nyarlathotep", + "bodytype": "horse", + "categories": [ "WILDLIFE" ], + "species": [ "MYTHOS" ], + "volume": "625 L", + "weight": "815 kg", + "hp": 350, + "speed": 200, + "material": [ "flesh" ], + "symbol": "&", + "color": "dark_gray", + "aggression": 5, + "morale": 80, + "melee_skill": 6, + "melee_dice": 3, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "dodge": 1, + "vision_night": 7, + "path_settings": { "max_dist": 10 }, + "anger_triggers": [ "HURT", "FRIEND_ATTACKED", "FRIEND_DIED" ], + "fear_triggers": [ "HOSTILE_SEEN" ], + "harvest": "mammal_large_leather", + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "PET_MOUNTABLE", + "FLIES", + "PATH_AVOID_DANGER_1", + "WARM", + "NO_BREATHE", + "LOUDMOVES", + "PUSH_MON" + ], + "armor": { "bash": 4, "cut": 1, "bullet": 1 } + }, + { + "id": "mon_dark_young", + "type": "MONSTER", + "name": { "str_sp": "dark young" }, + "looks_like": "mon_zombie_thorny", + "description": "A horrifying, pitch-black monstrosity, seemingly made of ropy tentacles. It stands as tall as a tree on stumpy, hoofed legs, and its flanks covered in puckered maws, dripping green goo.", + "default_faction": "shub-niggurath", + "bodytype": "crab", + "species": [ "MYTHOS" ], + "volume": "875000 ml", + "weight": "750 kg", + "hp": 400, + "speed": 90, + "symbol": "&", + "color": "green", + "aggression": 100, + "morale": 100, + "melee_skill": 10, + "melee_dice": 7, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 6 }, { "damage_type": "acid", "amount": 20 } ], + "harvest": "exempt", + "path_settings": { "max_dist": 5 }, + "special_attacks": [ { "id": "tentacle" }, { "id": "smash" } ], + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s melts away." }, + "regenerates": 50, + "regen_morale": true, + "flags": [ "SMELLS", "HEARS", "PLASTIC", "SLUDGEPROOF", "ACID_BLOOD", "ACIDPROOF", "NOHEAD", "NOGIB", "GRABS" ], + "armor": { "bash": 10, "cut": 30, "bullet": 24 } + }, + { + "id": "mon_ghoul", + "type": "MONSTER", + "name": { "str": "ghoul" }, + "looks_like": "mon_chud", + "description": "This humanoid creature has a semi-canine head, hooved feet, and claws. Its rubbery skin is pale and covered with grave-mold.", + "default_faction": "ghouls", + "bodytype": "human", + "species": [ "MYTHOS" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 70, + "material": [ "flesh" ], + "symbol": "g", + "color": "light_gray", + "aggression": 10, + "morale": 10, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "vision_night": 3, + "harvest": "demihuman", + "grab_strength": 20, + "special_attacks": [ + { "id": "bite_humanoid", "cooldown": 5 }, + { "id": "grab", "cooldown": 7 }, + { "id": "scratch_humanoid", "cooldown": 20 } + ], + "flags": [ "SEES", "HEARS", "SMELLS", "GRABS", "WARM", "BASHES", "GROUP_BASH", "SWARMS", "PUSH_MON" ] + }, + { + "id": "mon_ghast", + "type": "MONSTER", + "name": { "str": "ghast" }, + "looks_like": "mon_zombie_biter", + "description": "This vaguely humanoid creature is almost as big as a pony. It has long hooved legs on which it hops, clawed hands, and a hideous noseless head with oversized teeth.", + "default_faction": "yig", + "bodytype": "bear", + "species": [ "MYTHOS" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 95, + "speed": 55, + "material": [ "flesh" ], + "symbol": "g", + "color": "dark_gray", + "aggression": 50, + "morale": 50, + "melee_skill": 3, + "melee_dice": 2, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "weakpoints": [ + { "name": "the leg", "armor_mult": { "physical": 0.5 }, "coverage": 18 }, + { "name": "the head", "armor_mult": { "physical": 0.5 }, "coverage": 3 }, + { "name": "the eye", "armor_mult": { "physical": 0 }, "coverage": 1 } + ], + "vision_night": 3, + "harvest": "demihuman", + "special_attacks": [ { "type": "bite", "cooldown": 5, "min_mul": 0.75 }, [ "scratch", 20 ] ], + "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "GROUP_BASH", "SUNDEATH", "PUSH_MON" ], + "armor": { "bash": 5, "cut": 3, "bullet": 2 } + }, + { + "id": "mon_elder_thing", + "type": "MONSTER", + "name": { "str": "elder thing" }, + "looks_like": "mon_zombie_scissorlimbs", + "description": "A strange alien creature with a star-shaped head and numerous writhing appendages arranged radially around its barrel-shaped body.", + "default_faction": "elder_things", + "bodytype": "blob", + "species": [ "MYTHOS" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 240, + "speed": 40, + "symbol": "&", + "color": "brown", + "aggression": 10, + "morale": 100, + "melee_skill": 10, + "melee_dice": 7, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "harvest": "elder_thing", + "path_settings": { "max_dist": 5 }, + "special_attacks": [ { "id": "tentacle" }, { "id": "smash" } ], + "regen_morale": true, + "flags": [ "SMELLS", "HEARS", "BASHES", "FLIES", "COLDPROOF", "NOHEAD", "NOGIB", "NO_BREATHE", "STUN_IMMUNE" ], + "armor": { "bash": 10, "cut": 30, "bullet": 24 } + }, + { + "id": "mon_nightgaunt", + "type": "MONSTER", + "name": { "str": "nightgaunt" }, + "looks_like": "mon_zombie_winged", + "description": "This lanky ebon humanoid has batlike wings and a long prehensile tail, yet its most unsettling feature is its lack of a face.", + "default_faction": "nodens", + "bodytype": "angel", + "species": [ "MYTHOS" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 70, + "material": [ "flesh" ], + "symbol": "8", + "color": "light_gray", + "aggression": 5, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "vision_night": 3, + "harvest": "exempt", + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s melts into wisps of darkness." }, + "grab_strength": 20, + "special_attacks": [ { "id": "grab" }, [ "scratch", 20 ] ], + "flags": [ "SEES", "HEARS", "GRABS", "SMELLS", "FLIES", "SWARMS", "NIGHT_INVISIBILITY" ] + }, + { + "id": "mon_outer_servitor", + "type": "MONSTER", + "name": { "str": "servitor of the outer gods", "str_pl": "servitors of the outer gods" }, + "looks_like": "mon_thing", + "description": "A constantly-flickering mass of eyes, mouths, and tentacles hanging in the air, emitting a piping noise from flutes of bone.", + "default_faction": "nyarlathotep", + "species": [ "MYTHOS" ], + "diff": 20, + "volume": "62500 ml", + "weight": "81500 g", + "hp": 300, + "speed": 90, + "material": [ "flesh" ], + "symbol": "&", + "color": "red", + "aggression": 10, + "morale": 100, + "melee_skill": 10, + "melee_dice": 7, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "special_attacks": [ { "id": "tentacle" } ], + "luminance": 25, + "harvest": "exempt", + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s folds into itself and disappears." }, + "flags": [ "SEES", "FLIES", "HARDTOSHOOT", "NO_BREATHE", "NOHEAD" ], + "armor": { "bash": 10, "cut": 30, "bullet": 24 } + }, + { + "id": "mon_flying_polyp", + "type": "MONSTER", + "name": { "str": "flying polyp" }, + "description": "A half polypous, utterly alien creature. It's only partly material and has the ability to fly, despite the absence of wings. It produces strange whistling noises which send cold shivers of primal terror down your spine.", + "default_faction": "polyps", + "bodytype": "blob", + "species": [ "MYTHOS" ], + "diff": 20, + "volume": "875000 ml", + "weight": "200 kg", + "hp": 350, + "speed": 280, + "material": [ "flesh" ], + "symbol": "8", + "color": "dark_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 8, + "melee_dice": 3, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "dodge": 7, + "bleed_rate": 40, + "harvest": "exempt", + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s melts away." }, + "flags": [ + "SMELLS", + "HEARS", + "GOODHEARING", + "NOHEAD", + "BASHES", + "FLIES", + "PUSH_MON", + "PUSH_VEH", + "PLASTIC", + "NO_BREATHE", + "HIT_AND_RUN", + "NOGIB" + ], + "armor": { "bash": 8 } + }, + { + "id": "mon_shoggoth", + "type": "MONSTER", + "name": { "str": "shoggoth" }, + "description": "A gargantuan protoplasmic blob, constantly reshaping, forming new pseudopods seemingly at will. All over its body are eyes that form and disappear. It looks at you with malice.", + "default_faction": "elder_things", + "bodytype": "blob", + "species": [ "MYTHOS" ], + "volume": "875000 ml", + "weight": "200 kg", + "hp": 400, + "speed": 90, + "symbol": "&", + "color": "dark_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 10, + "melee_dice": 7, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 6 }, { "damage_type": "acid", "amount": 20 } ], + "harvest": "exempt", + "path_settings": { "max_dist": 5 }, + "special_attacks": [ [ "PARROT", 400 ], [ "ABSORB_ITEMS", 0 ], [ "SPLIT", 0 ] ], + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s melts away." }, + "regenerates": 50, + "regen_morale": true, + "absorb_ml_per_hp": 250, + "split_move_cost": 0, + "absorb_move_cost_per_ml": 0.0, + "flags": [ "SEES", "SMELLS", "SWIMS", "PLASTIC", "SLUDGEPROOF", "ACID_BLOOD", "ACIDPROOF", "NOHEAD", "NOGIB" ], + "armor": { "bash": 10, "cut": 30, "bullet": 24 } + }, + { + "id": "mon_hunting_horror", + "type": "MONSTER", + "name": { "str": "hunting horror" }, + "description": "This is some sort of great viperine creature, possessed of a curiously distorted head and massive clawed appendages. It partially supports itself with the aid of black rubbery wings of monstrous dimensions. Its form writhes and changes before your eyes, filling you with unnameable horror.", + "default_faction": "nyarlathotep", + "species": [ "MYTHOS" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 280, + "speed": 180, + "symbol": "s", + "color": "pink", + "aggression": 100, + "morale": 100, + "melee_skill": 7, + "melee_dice": 1, + "melee_dice_sides": 12, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "dodge": 8, + "harvest": "exempt", + "anger_triggers": [ "STALK", "PLAYER_WEAK", "PLAYER_CLOSE", "FRIEND_ATTACKED" ], + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s melts away." }, + "flags": [ + "SEES", + "SMELLS", + "HEARS", + "NOHEAD", + "HARDTOSHOOT", + "FLIES", + "PLASTIC", + "SUNDEATH", + "NO_BREATHE", + "HIT_AND_RUN", + "NOGIB" + ] + } +] diff --git a/data/Mainline_mods/Mods/Mythos-Creatures/species.json b/data/Mainline_mods/Mods/Mythos-Creatures/species.json new file mode 100644 index 000000000..8098c9421 --- /dev/null +++ b/data/Mainline_mods/Mods/Mythos-Creatures/species.json @@ -0,0 +1,7 @@ +[ + { + "type": "SPECIES", + "id": "MYTHOS", + "description": "a mythos creature" + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/antique_store.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/antique_store.json index c9bc12ab2..d6b55aa06 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/antique_store.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/antique_store.json @@ -37,7 +37,7 @@ "+": "t_door_glass_c", ",": "t_pavement_y", "-": "t_wall_w", - ".": [ [ "t_dirt", 5 ], [ "t_grass", 16 ], [ "t_grass_long", 5 ], [ "t_underbrush", 10 ] ], + ".": "t_region_groundcover_urban", "F": "t_sidewalk", "O": "t_window", "_": "t_pavement", @@ -54,7 +54,8 @@ { "item": "antique", "x": [ 14, 19 ], "y": [ 13, 13 ], "chance": 25, "repeat": [ 1, 3 ] }, { "item": "antique", "x": [ 1, 1 ], "y": [ 8, 15 ], "chance": 25, "repeat": [ 1, 3 ] }, { "item": "antique", "x": [ 22, 22 ], "y": [ 8, 15 ], "chance": 25, "repeat": [ 1, 3 ] }, - { "item": "antique_rare", "x": [ 9, 14 ], "y": [ 16, 16 ], "chance": 25 } + { "item": "antique_rare", "x": [ 9, 14 ], "y": [ 16, 16 ], "chance": 25 }, + { "item": "cash_register_random", "x": [ 15, 16 ], "y": 16, "chance": 50 } ] } } diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/bunker.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/bunker.json index bf7065e37..cbff03b68 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/bunker.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/bunker.json @@ -74,7 +74,6 @@ { "group": "mags_milspec", "x": [ 2, 6 ], "y": 8, "chance": 20 }, { "group": "ammo_milspec", "x": [ 2, 6 ], "y": 8, "chance": 20 }, { "group": "grenades", "x": [ 2, 6 ], "y": 8, "chance": 20 }, - { "group": "mil_hw", "x": [ 7, 8 ], "y": 8, "chance": 20 }, { "group": "mil_armor", "x": [ 7, 8 ], "y": 6, "chance": 25 }, { "group": "guns_rifle_milspec", "x": [ 2, 6 ], "y": 6, "chance": 20 }, { "group": "guns_rifle_milspec", "x": 5, "y": [ 19, 20 ], "chance": 20 }, @@ -171,7 +170,6 @@ { "group": "mags_milspec", "x": [ 2, 6 ], "y": 8, "chance": 20 }, { "group": "ammo_milspec", "x": [ 2, 6 ], "y": 8, "chance": 20 }, { "group": "grenades", "x": [ 2, 6 ], "y": 8, "chance": 20 }, - { "group": "mil_hw", "x": [ 7, 8 ], "y": 8, "chance": 20 }, { "group": "mil_armor", "x": [ 7, 8 ], "y": 6, "chance": 25 }, { "group": "guns_rifle_milspec", "x": [ 2, 6 ], "y": 6, "chance": 20 }, { "group": "guns_rifle_milspec", "x": 5, "y": [ 19, 20 ], "chance": 20 }, diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/cabin_lake.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/cabin_lake.json index 3b876242e..654baa1cd 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/cabin_lake.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/cabin_lake.json @@ -5,7 +5,7 @@ "om_terrain": "lake_cabin_boathouse", "weight": 25000, "object": { - "fill_ter": "t_grass", + "fill_ter": "t_region_groundcover", "rows": [ "~~~~~~~--||||||||||...9.", "~~~~~~--dddddd|b |.9...", @@ -33,9 +33,9 @@ "//..////......9........." ], "place_vehicles": [ - { "vehicle": "boat_motor_single", "x": 12, "y": 5, "rotation": 180, "chance": 10, "status": 3 }, - { "vehicle": "kayak_racing", "x": 11, "y": 2, "rotation": 180, "chance": 30, "status": 0 }, - { "vehicle": "canoe", "x": 2, "y": 5, "rotation": 180, "chance": 80, "status": 0 } + { "vehicle": "boat_motor_single", "x": 12, "y": 5, "rotation": 180, "chance": 10 }, + { "vehicle": "kayak_racing", "x": 11, "y": 2, "rotation": 180, "chance": 30 }, + { "vehicle": "canoe", "x": 2, "y": 5, "rotation": 180, "chance": 80 } ], "place_loot": [ { "item": "rope_30", "x": 12, "y": 6, "chance": 50 }, { "item": "stepladder", "x": 17, "y": 1, "chance": 50 } ], "terrain": { @@ -44,41 +44,16 @@ "r": "t_floor", "*": "t_wall_log_half", "d": "t_dock", - "/": "t_dirt", - "M": "t_dirt", - "U": "t_dirt", + "/": "t_region_soil", + "M": "t_region_soil", + "U": "t_region_soil", "~": "t_water_dp", "-": "t_water_sh", - ".": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt", "t_shrub" ], + ".": [ [ "t_region_groundcover", 36 ], "t_region_shrub" ], "|": "t_wall_log", "0": "t_window_domestic", "+": "t_door_c", - "9": [ - "t_tree_blackjack", - [ "t_tree_walnut", 5 ], - [ "t_tree_chestnut", 5 ], - "t_tree_beech", - "t_tree_hazelnut", - "t_tree_cottonwood", - [ "t_tree", 5 ], - [ "t_tree_elm", 3 ], - "t_tree_dead", - "t_tree_apple", - "t_tree_pear", - "t_tree_cherry", - "t_tree_peach", - "t_tree_apricot", - "t_tree_plum", - "t_tree_mulberry", - "t_tree_elderberry", - [ "t_tree_pine", 5 ], - "t_tree_birch", - [ "t_tree_willow", 3 ], - "t_tree_maple", - "t_tree_hickory", - "t_tree_almond", - "t_tree_pecan" - ] + "9": [ [ "t_region_tree", 2 ], [ "t_region_groundcover", 5 ] ] }, "furniture": { "r": "f_rack", diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/cs_internet_cafe.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/cs_internet_cafe.json index 35d518f04..ee03a7a42 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/cs_internet_cafe.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/cs_internet_cafe.json @@ -80,36 +80,35 @@ "fill_ter": "t_thconc_floor", "rows": [ " ", - " |2222222222222222223 ", - " |..................3 ", - " |..................3 ", - " |..................3 ", - " |..................3 ", - " |........=.........3 ", - " |.#######ggg##.....3 ", - " |.#kkk#cPcccP#.....3 ", - " |.#kkk#,,Y,,cg.....3 ", - " |.#,,,#,,,,,y#.....3 ", - " |.##D####D####.....3 ", - " |.#L,,,,,,,CC#.....3 ", - " |.#r,,,>,,,,Cg.....3 ", - " |.#r,,,,,,,,r#.....3 ", - " |.####g#Dg####.....3 ", - " |....AA............3 ", - " |..................3 ", - " |..................3 ", - " |.......&..........3 ", - " |..................3 ", - " |..................3 ", - " |5-----------------3 ", + " -------------------- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -........=.........- ", + " -.#######ggg##.....- ", + " -.#kkk#cPcccP#.....- ", + " -.#kkk#__Y__cg.....- ", + " -.#___#_____y#.....- ", + " -.##+####+####.....- ", + " -.#L_______CC#.....- ", + " -.#r___>____Cg.....- ", + " -.#r________r#.....- ", + " -.####g#+g####.....- ", + " -....AA............- ", + " -..................- ", + " -..................- ", + " -.......&..........- ", + " -..................- ", + " -..................- ", + " -5------------------ ", " " ], "palettes": [ "roof_palette" ], "terrain": { - ">": "t_stairs_down", "#": "t_wall_w", - ",": "t_thconc_floor", - "D": "t_door_locked", + "_": "t_thconc_floor", + "+": "t_door_locked", "g": "t_wall_glass_alarm", "&": "t_flat_roof", "=": "t_flat_roof" diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/farm_horse.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/farm_horse.json index 4a012a9e2..4b67f7d67 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/farm_horse.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/farm_horse.json @@ -389,23 +389,23 @@ "fill_ter": "t_shingle_flat_roof", "rows": [ " ", - " |22222222223 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |.......---3 ", - " |.......3 ", - " |.......3 ", - " |.......3 ", - " |--...--- ", + " ------------ ", + " -..........- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -.......---- ", + " -.......- ", + " -.......- ", + " -.......- ", + " ---...--- ", " ----- ", " ", " ", diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/fire_station.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/fire_station.json index 32a3fb59b..17d03e6f9 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/fire_station.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/fire_station.json @@ -7,136 +7,139 @@ "object": { "fill_ter": "t_floor", "rows": [ - "________________________", - "--O--_,_______,_______,_", - "|lcx|_,_______,_______,_", - "| c#O_,_______,_______,_", - "| ##|_,_______,_______,_", - "|r L_,_______,_______,_", - "|r |_,_______,_______,_", - "|w ^|_,_______,_______,_", - "|-M----MMMMMMM-MMMMMMM--", - "|w w w|", - "| |", - "|ctc |", - "|ctc | |", - "|ctc | |", - "| | |", - "|-+--| |", - "|F @@| |", - "|t :| |", - "|c @@| |", - "| :| |", - "|+| | |", - "|T|GS| l l l l l l |", - "|----------------------|", + ".....s_________________/", + "||O||s,_______,_______,.", + "| cx|s,_______,_______,.", + "| c#Os,_______,_______,.", + "| ##|s,_______,_______,.", + "|r Ls,_______,_______,.", + "|r |.,_______,_______,.", + "| ^|.,_______,_______,.", + "||+||||MMMMMMM|MMMMMMM||", + "| w:::::::::::::::w|", + "| :::::::::::::::::|", + "| ctc :::::::::::::::::|", + "| ctc :::::::::::::::::|", + "| ctc :::::::::::::::::|", + "| :::::::::::::::::|", + "||+|||::::::::|::::::::|", + "|F @@|:::::::::::::::::|", + "|t d|:::::::::::::::::|", + "|c @@|:::::::::::::::::|", + "| d|:::::::::::::::::|", + "|+| |:::::::::::::::::|", + "|T|GS|::l:l:l:::l:l:l::|", + "||||||||||||||||||||||||", ".....................4.." ], - "set": [ { "point": "terrain", "id": "t_dirt", "x": [ 0, 23 ], "y": 23, "repeat": [ 5, 8 ] } ], "terrain": { + ".": "t_region_groundcover_urban", + "/": "t_region_groundcover_urban", + "s": "t_sidewalk", " ": "t_floor", - "+": "t_door_c", + ":": "t_thconc_floor", + "l": "t_thconc_floor", + "_": "t_pavement", ",": "t_pavement_y", - "-": "t_brick_wall", - ".": "t_region_groundcover_urban", "L": "t_door_locked", + "+": "t_door_c", "M": "t_door_metal_locked", "O": "t_window", - "_": "t_pavement", - "w": "t_gates_control_brick", + "w": "t_gates_mech_control_lab", "|": "t_brick_wall", "4": "t_gutter_downspout" }, "furniture": { "x": "f_console_broken", "#": "f_counter", - ":": "f_dresser", + "d": "f_dresser", "@": "f_bed", "F": "f_fridge", - "G": "f_oven", + "G": [ "f_oven", "f_gas_oven_microwave_combo" ], "S": "f_sink", - "^": "f_indoor_plant", + "^": [ "f_indoor_plant", "f_indoor_plant_y" ], "c": "f_chair", "l": "f_locker", "r": "f_rack", - "t": "f_table" + "t": "f_table", + "/": "f_flagpole" }, "toilets": { "T": { } }, - "place_items": [ - { "item": "bed", "x": [ 3, 4 ], "y": [ 16, 16 ], "chance": 20 }, - { "item": "bed", "x": [ 3, 4 ], "y": [ 18, 18 ], "chance": 20 }, - { "item": "fireman_doc", "x": [ 1, 1 ], "y": [ 2, 2 ], "chance": 20 }, - { "item": "fireman_gear", "x": [ 1, 1 ], "y": [ 5, 5 ], "chance": 20 }, - { "item": "fireman_gear", "x": [ 1, 1 ], "y": [ 6, 6 ], "chance": 20 }, - { "item": "fridgesnacks", "x": [ 1, 1 ], "y": [ 16, 16 ], "chance": 20 }, - { "item": "novels", "x": [ 1, 1 ], "y": [ 17, 17 ], "chance": 20 }, - { "item": "fireman_pants", "x": [ 4, 4 ], "y": [ 17, 17 ], "chance": 20 }, - { "item": "fireman_boots", "x": [ 4, 4 ], "y": [ 19, 19 ], "chance": 20 }, - { "item": "oven", "x": [ 3, 3 ], "y": [ 21, 21 ], "chance": 20 }, - { "item": "fireman_gear", "x": [ 8, 8 ], "y": [ 21, 21 ], "chance": 20 }, - { "item": "fireman_torso", "x": [ 10, 10 ], "y": [ 21, 21 ], "chance": 20 }, - { "item": "fireman_head", "x": [ 12, 12 ], "y": [ 21, 21 ], "chance": 20 }, - { "item": "fireman_gloves", "x": [ 16, 16 ], "y": [ 21, 21 ], "chance": 20 }, - { "item": "fireman_mask", "x": [ 18, 18 ], "y": [ 21, 21 ], "chance": 20 }, - { "item": "fireman_gear", "x": [ 20, 20 ], "y": [ 21, 21 ], "chance": 20 } - ], - "place_monsters": [ { "monster": "GROUP_FIRE", "x": [ 2, 21 ], "y": [ 9, 21 ], "chance": 1 } ], - "place_vehicles": [ { "vehicle": "fire_engine", "x": 11, "y": 13, "chance": 30, "rotation": 270, "status": 1 } ] + "items": { + "@": { "item": "bed", "chance": 20 }, + "G": { "item": "SUS_oven", "chance": 20 }, + "F": { "item": "SUS_fridge_breakroom", "chance": 20 }, + "r": { "item": "fireman_doc", "chance": 20, "repeat": [ 1, 2 ] }, + "d": { "item": "dresser", "chance": 20, "repeat": [ 1, 3 ] }, + "t": [ { "item": "novels", "chance": 20 }, { "item": "dining", "chance": 20 } ], + "l": [ + { "item": "fireman_gear", "chance": 20 }, + { "item": "fireman_boots", "chance": 20 }, + { "item": "fireman_pants", "chance": 20 }, + { "item": "fireman_torso", "chance": 20 }, + { "item": "fireman_gloves", "chance": 20 }, + { "item": "fireman_mask", "chance": 20 }, + { "item": "fireman_head", "chance": 20 } + ] + }, + "item": { "/": { "item": "american_flag" } }, + "place_monster": [ { "group": "GROUP_FIRE", "x": [ 2, 21 ], "y": [ 9, 21 ], "repeat": [ 2, 6 ] } ], + "place_vehicles": [ + { "vehicle": "fire_engine", "x": 10, "y": [ 11, 14 ], "chance": 20, "rotation": 270 }, + { "vehicle": "fire_truck", "x": 17, "y": 12, "chance": 20, "rotation": 270 } + ] } }, { "type": "mapgen", "method": "json", "om_terrain": [ "fire_station_1" ], - "weight": 100, + "weight": 10000, "object": { "fill_ter": "t_floor", "rows": [ - "__PpppppppPpppppppP__s__", - "_||+++++++|+++++++||_s__", - "_|6.......t.......6|_s__", - "_|t.......t.......t|_s_S", - "_|t.......t.......t|_s__", - "_|t.......t.......t|_s_a", - "_|t.......t.......t|_s__", - "_|t.......t.......t|_s_S", - "_|t.......t.......t|_s__", - "_|t.......t.......t|_s_a", - "_|t.......t.......t|_s_4", - "_|t.......t.......t||D||", - "_|t.......t.......t|ff^|", - "_|tttttttttttttttttDfff|", - "_|rtrtrtttTTrrTTttt|f#Cw", - "_||||||||D||||||D|||f#c|", - "_ss|ee|HHf{{{{{{fffdf#c|", - "_s<|tt|H#ffffffffffdfffw", - "_ss||d|H#ffffffff|||||||", - "_ss|&fffffc#cffff|bbgbb|", - "___||d|Fffc#cffffdfffffh", - "___|it|&ojc#cfE5B|bbgbb|", - "___|||||ww|w|ww|||||||||", - "________________________" + "..,_______,_______,..s./", + ".||MMMMMMM|MMMMMMM||.s.*", + ".|6:::::::::::::::6|.s.*", + ".|:::::::::::::::::|.s.*", + ".|:::::::::::::::::|.s.*", + ".|:::::::::::::::::|.s.*", + ".|:::::::::::::::::|.s.*", + ".|:::::::::::::::::|.s.*", + ".|::::::::|::::::::|.s.*", + ".|:::::::::::::::::|.s.*", + ".|:::::::::::::::::|4s.*", + ".|:::::::::::::::::||L||", + ".|:::::::::::::::::| ^|", + ".|:::::::::::::::::L |", + ".|::r:r:r:::r:r:r::| #Cw", + ".||||||||L|||||||L|| #c|", + ".ss|ee|HH llllll + #c|", + ".s<|::|Ht + w", + ".ss||+|Ht |||||||", + ".ss|S ctc |@@d@@|", + "...||+|F ctc + h", + "...|T:|Sojctc E5B|@@d@@|", + "...|||||ww|w|ww|||||||||", + "........................" ], - "set": [ { "point": "terrain", "id": "t_dirt", "x": [ 0, 23 ], "y": 23, "repeat": [ 5, 8 ] } ], "terrain": { - "f": "t_floor", - "+": "t_door_metal_locked", - ".": "t_scrap_floor", - "6": "t_gates_control_brick", - "D": "t_door_metal_c", - "P": "t_pavement_y", - "S": "t_region_shrub_decorative", - "T": "t_thconc_floor", - "_": "t_region_groundcover_urban", - "a": "t_region_shrub_decorative", - "d": "t_door_c", + ".": "t_region_groundcover_urban", + "/": "t_region_groundcover_urban", + "s": "t_sidewalk", + " ": "t_floor", + ":": "t_thconc_floor", + "r": "t_thconc_floor", "e": "t_thconc_floor", + "T": "t_thconc_floor", + "_": "t_pavement", + ",": "t_pavement_y", + "M": "t_door_metal_locked", + "6": "t_gates_mech_control_lab", + "L": "t_door_metal_c", + "+": "t_door_c", + "*": "t_region_shrub_decorative", "h": "t_curtains", - "i": "t_thconc_floor", - "p": "t_pavement", - "r": "t_thconc_floor", - "s": "t_sidewalk", - "t": "t_thconc_floor", "w": "t_window_domestic", "|": "t_brick_wall", "4": "t_gutter_downspout", @@ -144,59 +147,57 @@ }, "furniture": { "C": "f_console_broken", - "#": "f_table", - "&": "f_sink", + "t": "f_table", + "#": "f_counter", + "S": "f_sink", "5": [ "f_ergometer", "f_ergometer_mechanical" ], "B": "f_bookcase", "E": "f_exercise", "F": "f_fridge", "H": "f_sofa", - "T": "f_table", - "^": "f_indoor_plant", - "b": "f_bed", + "^": [ "f_indoor_plant", "f_indoor_plant_y" ], + "@": "f_bed", "c": "f_chair", "e": "f_shower", - "g": "f_dresser", + "d": "f_dresser", "i": "f_toilet", "j": "f_counter", "o": "f_oven", "r": "f_rack", - "{": "f_locker" + "l": "f_locker", + "/": "f_flagpole" + }, + "toilets": { "T": { } }, + "items": { + "@": { "item": "bed", "chance": 20 }, + "o": { "item": "SUS_oven", "chance": 20 }, + "F": { "item": "SUS_fridge_breakroom", "chance": 20 }, + "r": [ { "item": "mechanics", "chance": 20 }, { "item": "tools_mechanic", "chance": 20 } ], + "d": { "item": "dresser", "chance": 20, "repeat": [ 1, 3 ] }, + "t": [ { "item": "novels", "chance": 20 }, { "item": "dining", "chance": 20 } ], + "B": { "item": "novels", "chance": 20, "repeat": [ 4, 10 ] }, + "l": [ + { "item": "fireman_doc", "chance": 20, "repeat": [ 1, 2 ] }, + { "item": "fireman_gear", "chance": 20 }, + { "item": "fireman_boots", "chance": 20 }, + { "item": "fireman_pants", "chance": 20 }, + { "item": "fireman_torso", "chance": 20 }, + { "item": "fireman_gloves", "chance": 20 }, + { "item": "fireman_mask", "chance": 20 }, + { "item": "fireman_head", "chance": 20 } + ] }, - "toilets": { "i": { } }, "place_items": [ - { "item": "mechanics", "x": 15, "y": 14, "chance": 25 }, - { "item": "mechanics", "x": [ 10, 11 ], "y": 14, "chance": 25 }, - { "item": "fireman_pants", "x": 11, "y": 16, "chance": 20 }, - { "item": "fireman_doc", "x": 16, "y": 21, "chance": 20 }, - { "item": "fireman_head", "x": 14, "y": 16, "chance": 20 }, - { "item": "fireman_torso", "x": 10, "y": 16, "chance": 20 }, - { "item": "tools_mechanic", "x": 12, "y": 14, "chance": 25 }, - { "item": "tools_mechanic", "x": 6, "y": 14, "chance": 25 }, - { "item": "tools_mechanic", "x": 2, "y": 14, "chance": 25 }, - { "item": "SUS_fridge_breakroom", "x": 7, "y": 20, "chance": 20 }, - { "item": "home_hw", "x": 14, "y": 14, "chance": 20 }, - { "item": "fireman_mask", "x": 15, "y": 16, "chance": 20 }, { "item": "gym", "x": 15, "y": 21, "chance": 20 }, - { "item": "dining", "x": 11, "y": [ 19, 21 ], "chance": 20 }, - { "item": "fireman_gloves", "x": 13, "y": 16, "chance": 20 }, { "item": "clutter_bathroom", "x": [ 4, 5 ], "y": 16, "chance": 20 }, { "item": "snacks", "x": 8, "y": 17, "chance": 20 }, - { "item": "fireman_gear", "x": 13, "y": 14, "chance": 20 }, - { "item": "fireman_boots", "x": 12, "y": 16, "chance": 20 }, - { "item": "dresser", "x": 20, "y": 21, "chance": 20 }, - { "item": "dresser", "x": 20, "y": 19, "chance": 20 }, - { "item": "kitchen", "x": [ 8, 9 ], "y": 21, "chance": 20 }, - { "item": "fireman_gear", "x": 4, "y": 14, "chance": 20 }, - { "item": "bed", "x": 22, "y": 21, "chance": 20 }, - { "item": "bed", "x": 18, "y": 21, "chance": 20 }, - { "item": "bed", "x": 21, "y": 19, "chance": 20 }, - { "item": "bed", "x": 19, "y": 19, "chance": 20 } + { "item": "kitchen", "x": [ 8, 9 ], "y": 21, "chance": 20 } ], - "place_monsters": [ { "monster": "GROUP_FIRE", "x": 10, "y": 16, "chance": 1 } ], + "item": { "/": { "item": "american_flag" } }, + "place_monster": [ { "group": "GROUP_FIRE", "x": 10, "y": 16, "repeat": [ 2, 6 ] } ], "place_vehicles": [ - { "vehicle": "fire_truck", "x": 5, "y": 5, "rotation": 270, "chance": 20, "status": 1 }, - { "vehicle": "fire_engine", "x": 14, "y": 5, "rotation": 270, "chance": 20, "status": 1 } + { "vehicle": "fire_truck", "x": 5, "y": 5, "rotation": 270, "chance": 20 }, + { "vehicle": "fire_engine", "x": 14, "y": [ 4, 7 ], "rotation": 270, "chance": 20 } ] } } diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/homeimprovement_superstore_new.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/homeimprovement_superstore_new.json index 061e51422..7c9e189f8 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/homeimprovement_superstore_new.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/homeimprovement_superstore_new.json @@ -1,227 +1,8 @@ [ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ - [ "hdwr_large_1_2_0", "hdwr_large_0_2_0" ], - [ "hdwr_large_1_1_0", "hdwr_large_0_1_0" ], - [ "hdwr_large_1_0_0", "hdwr_large_0_0_0" ], - [ "hdwr_large_1_2_1", "hdwr_large_0_2_1" ], - [ "hdwr_large_1_1_1", "hdwr_large_0_1_1" ], - [ "hdwr_large_1_0_1", "hdwr_large_0_0_1" ] - ], - "weight": 10000, - "object": { - "fill_ter": "t_thconc_floor", - "rows": [ - "~~~~~~~ ", - "~--W--fffffffffff|||||||||||||WW||||||||||||||| ", - "~-'''W~ / / |^.77777.^|......|.888888888.||", - "~-'''-~ =............................=&", - "~-'''+SSS BBBB SS!..33333.....................= ", - "~-----~ SS SSSS!..33333.....................= ", - "~f~~~~~ SSSS =............................=&", - " f SSS nn|^.77777.^|......|...........||", - " f000000 SS nnn|||||||||||......|8.........8| ", - " f0000000 SSS |.6666666........|8...999...8| ", - " f{000000 SS nnnn|................|8...999...8| ", - " f0000000 SS nnnn|.6666666........|8...999...8| ", - " f0000000SSS |?????????.......|8...999...8| ", - " f0000000SS nnnnn|................|8...999...8||", - " f0000000SS nnnnn|.4444444........|8.........8=&", - " f0000000SS |.4444444........|...........= ", - " f0H00H00SSSSSSSS|............................= ", - " f0000000SS |?????????...................= ", - " f0M000H0SS & & &|.5555555....................=&", - " f0000000SS |............................||", - " f0000000SSS& & &|.5555555..^....^|.888888888.| ", - " f0000000 SS ||||||||||||=!!=|||||||||||||| ", - " f0000000/SS& & &|QQ'Q'kk'@@@?..?bbbibbi((itis| ", - " f0000000 SSS |QQ'Q'''''''?..?bbbibbiiiitis| ", - " f000000 SS & &|'''''kk''P'?..?bbiibbi((itis| ", - " f000000 / SSS |'''''''''''?..?iiiiiiiiiiiis||", - " f00000 SSS &=^..........................^=&", - " f000 SSSS!............................= ", - " f00 SS!............................= ", - " fŐŐ ÉÉ ÁÁ AA aa =^..........................^=&", - " fŐŐ ÉÉ ÁÁ AA aa |'''''''''CC?....''L'q...iiii||", - " f |Y'Y'Y''C'TT?....''''q...ioie| ", - " |||||||||||||||||'''''''T'TT?....u'T'q...ioie| ", - " |<.........DDDD.|pppyyy'C'CC?....'UUUq...ioié| ", - " |.XX.XX.XX.DDDD.|11111?22222?....''''q...iwié| ", - " W.XX.XX.XX......|1...1?2...2?............iwiR| ", - " |...............|1...1?2...2?............iwiR| ", - " |.XX.XX.XX......|1...1?2...2?............iiii| ", - " W.XX.XX.XX......|^...........................| ", - " |...............%............................| ", - " |.XX.XX.XX......|^...........................| ", - " |.XX.XX.XX......||||....||||||....||||^.....^| ", - " W...............|....................||+|||+|| ", - " |...............|....................|iis|sii| ", - " |...............|....................|iis|sii| ", - " W..............X|...|cx|......|xc|...|iis|sii| ", - " |..............X|...ch.c......c..c...|iis|sii| ", - "f|.......g...X.XX|...c..c......c.hc...|i|||||i| ", - "f|#######|||+|WW||...c.hc......ch.c...|i+t|t+i| ", - "fS_______g|I..xdd|...|dd|......|dd|...|i|||||i| ", - "fS_______S|I..h.c|....................|i+t|t+i| ", - "fS_______SWx.....|$..................V|i|||||i| ", - "fS_______SWdh....|$......^....^......V|i+t|t+i| ", - "fS_______S|I..h.c|......||=!!=||......|i|||||i| ", - "fS_______S|I..xdd|......|SSSSSS|......|i+t|t+i| ", - "fS_______S|||||||||====||SSSSSS||====||||||||||&", - "/S_______SSSSSSSSSSSSSSSSSSSSSSSSSSSS.........=/", - "&S_______SSSSSSSSSSSSSSSSSSSSSSSSSSSS.........=&", - " S_______SSSSSSSSSSSSSSSSSSSSSSSSSSSS=========| ", - " S_______SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS ", - "&S_______SS____,____,____,____,____,____,____SS&", - "/S_______SS____,____,____,____,____,____,____SS/", - "&S_______SS____,____,____,____,____,____,____SS&", - " S_______SS____,____,____,____,____,____,____SS ", - " S_______SS____,____,____,____,____,____,____SS ", - "&S_______SS____,____,____,____,____,____,____SS&", - "/S_______SS____,____,____,____,____,____,____SS/", - "&S_______SS____,____,____,____,____,____,____SS&", - " S_______SS____,____,____,____,____,____,____SS ", - " S_______SS__________________________________SS ", - "&S_______SS__________________________________SS&", - "/S_______SS__________________________________SS/", - "************************************************", - "*zzzzz***********??????????????????????????????*", - "*zzzzz***********?zzzzzzzzzzzzzzzzzzzzzzzzzzzz??", - "*zzzzz***********?zzzzzzzzzzzzzzzzzzzzzzzzzzzzz?", - "*zzzzz***********?zzZZZZZZzzzzzzzzzzzzZZZZZZzzz?", - "*zzzzz***********?zzZZZZZZzzzzzzzzzzzzZZZZZZzzz?", - "*****************?zzZZZZZZzzzzzzzzzzzzZZZZZZzzz?", - "*****************?zzZZZZZZzzzzzzzzzzzzZZZZZZzz??", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*****************?zzZZZZZZzzzzzzzzzzzzZZZZZZzz??", - "*****************?zzZZZZZZzzzzzzzzzzzzZZZZZZzzz?", - "*****************?zzZZZZZZzzzzzzzzzzzzZZZZZZzzz?", - "*****************?zzZZZZZZzzzzzzzzzzzzZZZZZZzzz?", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzzz?", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzzz?", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzz??", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*****************?zzzzzzzzzzzzzzzzzzz??????????*", - "*****************?zzzzzzzzzzzzzzzzzzz?zzzzzzzz?*", - "*****************?zzzzzzzzzzzzzzzzzzz?zOOzzOOz??", - "*****************?zzzzzzzzzzzzzzzzzzz?zOOzzOOzz?", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzzz?", - "*****************?zzzzzzzzzzzzzzzzzzzzzzzzzzzzz?", - "*****************?zzzzzzzzzzzzzzzzzzz?zOOzzOOzz?", - "*****************?zzzzzzzzzzzzzzzzzzz?zOOzzOOz??", - "*****************?zzzzzzzzzzzzzzzzzzz?zzzzzzzz?*", - "*|||??????????????zzzzzzzzzzzzzzzzzzz??????????*", - "*|>+zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*|||zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzzzzzzz?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzzzzzzz?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzzzzzzz?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzzzzzzz?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzzzzzzz?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzOOzOOz?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzOOzOOz?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzzzzzzz?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzOOzOOz?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzOOzOOz?zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzzzzzzz?zzzzzzzzzzZZZZzzzzzzzzzzzzzzzz?*", - "*?zzzzzzzzzzzzz?zzzzzzzzzzZZZZzzzzzzzfffFfffzz?*", - "*???????????????zzzzzzzzzzZZZZzzzzzzzfzzzzzfzz?*", - "**********?zzzzzzzzzzzzzzzZZZZzzzzzzzfzzzjzfzz?*", - "**********?zzzzzzzzzzzzzzzZZZZzzzzzzzfzJzjzfzz?*", - "**********?zzzzzzzzzzzzzzzZZZZzzzzzzzfzzzzzfzz?*", - "**********?zzzzzzzzzzzzzzzzzzzzzzzzzzfffffffzz?*", - "**********?zzzzzzzzzzzzz????????zzzzzzzzzzzzzz?*", - "**********?zzzzzzzzzzzzz?******?zzzzzzzzzzzzzz?*", - "**********???????????????******????????????????*", - "*************************************ZZZZZZZZZz*", - "*************************************ZZZZZZZZZz*", - "*************************************zzzzzzzzzz*", - "************************************************", - "************************************************", - "************************************************", - "************************************************", - "************************************************", - "************************************************", - "************************************************", - "************************************************", - "************************************************", - "************************************************", - "************************************************", - "************************************************", - "************************************************" - ], - "palettes": [ "home_improvement_palette" ], - "place_loot": [ - { "group": "cash_register_random", "x": 21, "y": [ 46, 47 ] }, - { "group": "cash_register_random", "x": 24, "y": [ 46, 47 ] }, - { "group": "cash_register_random", "x": 31, "y": [ 46, 47 ] }, - { "group": "cash_register_random", "x": 34, "y": [ 46, 47 ] } - ], - "items": { - "d": { "item": "office", "chance": 45, "repeat": [ 1, 2 ] }, - "D": { "item": "hardware_trash", "chance": 40, "repeat": [ 1, 3 ] }, - "Q": { "item": "bed", "chance": 65, "repeat": [ 1, 2 ] }, - "V": { "item": "vending_drink_home_impr", "chance": 5, "repeat": [ 5, 12 ] }, - "1": { "item": "paint", "chance": 80, "repeat": [ 1, 8 ] }, - "2": { "item": "rug", "chance": 80, "repeat": [ 1, 8 ] }, - "3": [ - { "item": "farming_seeds", "chance": 80, "repeat": [ 4, 16 ] }, - { "item": "farming_tools", "chance": 15, "repeat": [ 1, 2 ] } - ], - "4": { "item": "supplies_electronics", "chance": 80, "repeat": [ 1, 2 ] }, - "5": { "item": "hardware_clothing", "chance": 80, "repeat": [ 1, 8 ] }, - "6": [ - { "item": "hand_tools", "chance": 80, "repeat": [ 1, 2 ] }, - { "item": "power_tools", "chance": 80, "repeat": [ 1, 2 ] } - ], - "7": [ - { "item": "farming_seeds", "chance": 80, "repeat": [ 4, 16 ] }, - { "item": "farming_tools", "chance": 80, "repeat": [ 1, 2 ] } - ], - "8": { "item": "hardware_bulk", "chance": 80, "repeat": [ 2, 5 ] }, - "9": { "item": "hardware_bulk", "chance": 80, "repeat": [ 2, 5 ] }, - "X": [ - { "item": "paint", "chance": 40, "repeat": [ 1, 8 ] }, - { "item": "rug", "chance": 40, "repeat": [ 1, 8 ] }, - { "item": "farming_tools", "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "power_tools", "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "hand_tools", "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "hardware_clothing", "chance": 55, "repeat": [ 1, 8 ] } - ] - }, - "place_monsters": [ - { "monster": "GROUP_MALL", "x": [ 24, 45 ], "y": [ 2, 23 ] }, - { "monster": "GROUP_MALL", "x": [ 24, 45 ], "y": [ 24, 47 ] }, - { "monster": "GROUP_MALL", "x": [ 3, 23 ], "y": [ 30, 47 ] } - ], - "place_vehicles": [ - { "vehicle": "warehouse_vehicles", "x": [ 5, 12 ], "y": [ 42, 45 ], "chance": 50 }, - { "vehicle": "shopping_cart", "x": [ 37, 46 ], "y": [ 56, 57 ], "chance": 35, "repeat": 8 }, - { "vehicle": "parking_garage", "x": 42, "y": [ 62, 65 ], "chance": 17, "rotation": 270 }, - { "vehicle": "parking_garage", "x": 37, "y": [ 62, 65 ], "chance": 17, "rotation": 270 }, - { "vehicle": "parking_garage", "x": 32, "y": [ 62, 65 ], "chance": 17, "rotation": 270 }, - { "vehicle": "parking_garage", "x": 27, "y": [ 62, 65 ], "chance": 17, "rotation": 270 }, - { "vehicle": "parking_garage", "x": 17, "y": [ 62, 65 ], "chance": 17, "rotation": 270 }, - { "vehicle": "parking_garage", "x": 12, "y": [ 62, 65 ], "chance": 17, "rotation": 270 } - ] - } - }, { "type": "palette", "id": "home_improvement_palette", "terrain": { - ">": "t_stairs_down", - "<": "t_stairs_up", - "$": "t_atm", "&": "t_region_groundcover_urban", "B": "t_region_groundcover_urban", " ": "t_region_groundcover_urban", @@ -230,26 +11,29 @@ "Ő": "t_region_groundcover_urban", "/": "t_region_tree", "0": "t_grass_golf", - "a": "t_sandmound", - "A": "t_claymound", "M": "t_grass_golf", "{": "t_grass_golf", "H": "t_grass_golf", + "a": "t_sandmound", + "A": "t_claymound", "~": "t_woodchips", "n": "t_dirtmound", - "-": "t_wall_wood", - "f": "t_chainfence_h", + "_": "t_pavement", + ",": "t_pavement_y", + "S": "t_sidewalk", + "f": "t_chainfence", "F": "t_chaingate_c", "#": "t_door_metal_locked", - "g": "t_gates_mech_control", + "g": "t_gates_mech_control_lab", "!": "t_door_glass_c", "+": "t_door_c", + "W": "t_window", "%": "t_door_locked_interior", "=": "t_wall_glass", - ",": "t_pavement_y", + "-": "t_wall_wood", + "|": "t_concrete_wall", ".": "t_thconc_floor", "'": "t_floor", - "i": "t_linoleum_white", "T": "t_floor", "C": "t_floor", "Y": "t_floor", @@ -263,8 +47,7 @@ "U": "t_floor", "q": "t_floor", "L": "t_rock_floor", - "W": "t_window", - "_": "t_pavement", + "i": "t_linoleum_white", "s": "t_linoleum_white", "t": "t_linoleum_white", "b": "t_linoleum_white", @@ -274,19 +57,14 @@ "o": "t_linoleum_white", "R": "t_linoleum_white", "w": "t_linoleum_white", - "|": "t_concrete_wall", - "O": "t_flat_roof", - "S": "t_sidewalk", - "?": "t_railing", - "*": "t_open_air", - "z": "t_flat_roof", - "j": "t_flat_roof", - "J": "t_flat_roof", - "Z": "t_glass_roof" + "<": "t_stairs_up", + "$": "t_atm", + "?": "t_railing" }, "furniture": { "x": "f_console_broken", "V": "f_vending_c", + "h": "f_chair", "C": "f_chair", "T": "f_table", "^": [ "f_indoor_plant", "f_indoor_plant_y" ], @@ -296,21 +74,19 @@ "P": "f_piano", "@": "f_bigmirror", "Q": "f_bed", - "k": "f_desk", "c": "f_counter", "1": "f_counter", "2": "f_counter", "3": "f_counter", - "4": "f_counter", + "4": "f_rack", "5": "f_rack", "6": "f_rack", "7": "f_rack", "8": "f_warehouse_shelf", - "9": "f_counter", - "h": "f_chair", + "9": "f_warehouse_shelf", "d": "f_desk", + "k": "f_desk", "I": "f_filing_cabinet", - "r": "f_rack", "R": "f_dishwasher", "s": "f_sink", "b": "f_bathtub", @@ -328,9 +104,6 @@ "H": "f_camp_chair", "X": [ [ "f_crate_c", 3 ], "f_crate_o", "f_cardboard_box" ], "D": "f_dumpster", - "O": "f_air_conditioner", - "j": "f_standing_tank", - "J": "f_water_heater", "Á": "f_pallet_brick", "É": "f_pallet_brick_adobe", "Ő": "f_pallet_cement" diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/house_garage_prepper.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/house_garage_prepper.json index 6a66a55a6..02ad0370d 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/house_garage_prepper.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/house_garage_prepper.json @@ -90,7 +90,7 @@ { "group": "mischw", "x": [ 14, 16 ], "y": [ 11, 11 ], "chance": 25, "repeat": [ 1, 3 ] }, { "group": "tools_gunsmith", "x": [ 17, 21 ], "y": [ 11, 11 ], "chance": 20, "repeat": [ 1, 2 ] }, { "group": "ammo_parts", "x": [ 21, 21 ], "y": [ 6, 11 ], "chance": 25, "repeat": [ 1, 6 ] }, - { "group": "ammo_casings_bulk", "x": [ 21, 21 ], "y": [ 6, 11 ], "chance": 20, "repeat": [ 1, 3 ] }, + { "group": "ammo_casings_gunsmith_bulk", "x": [ 21, 21 ], "y": [ 6, 11 ], "chance": 20, "repeat": [ 1, 3 ] }, { "group": "gunmod_common", "x": [ 21, 21 ], "y": [ 6, 11 ], "chance": 20, "repeat": [ 1, 3 ] }, { "item": "stepladder", "x": 21, "y": 3, "chance": 20 }, { diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/house_nested.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/house_nested.json index af2ab471e..dd1f9dcec 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/house_nested.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/house_nested.json @@ -1526,6 +1526,7 @@ "D2R3Dc", "BBCBB " ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "palettes": [ "house_w_nest_garden_palette" ], "terrain": { "s": "t_concrete" }, "place_items": [ @@ -1551,6 +1552,7 @@ "D9R8Dc", "BBCBB " ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "palettes": [ "house_w_nest_garden_palette" ], "terrain": { "s": "t_concrete" }, "place_items": [ @@ -1576,6 +1578,7 @@ "|SzzQ|", "||||||" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "palettes": [ "house_w_nest_palette" ], "terrain": { "|": "t_wall_metal", @@ -1610,6 +1613,7 @@ "|GEEB|", "||oo||" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "terrain": { "|": "t_wall_wood", "+": "t_door_locked", @@ -1654,6 +1658,7 @@ "+ S|", "||||||" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "terrain": { "|": "t_scrap_wall", "+": "t_door_metal_pickable", @@ -1682,6 +1687,7 @@ " Kcc ", " cZ " ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "palettes": [ "house_w_nest_garden_palette" ] } }, @@ -1808,6 +1814,7 @@ "PPP", "PPP" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "palettes": [ "house_w_nest_garden_palette" ], "place_items": [ { "item": "farming_tools", "x": [ 0, 2 ], "y": [ 0, 2 ], "chance": 5, "repeat": [ 1, 3 ] }, @@ -1828,6 +1835,7 @@ " ", "111" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "palettes": [ "house_w_nest_garden_palette" ], "place_items": [ { "item": "farming_tools", "x": [ 0, 2 ], "y": [ 0, 2 ], "chance": 5, "repeat": [ 1, 3 ] }, @@ -1848,6 +1856,7 @@ "1Z1", "111" ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], "palettes": [ "house_w_nest_garden_palette" ] } }, diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/irradiator_1.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/irradiator_1.json index 1651a28bf..a3391d348 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/irradiator_1.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/irradiator_1.json @@ -259,117 +259,5 @@ { "vehicle": "industrial_transport", "chance": 25, "fuel": 0, "rotation": 90, "status": 1, "x": 62, "y": 62 } ] } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ - [ "irradiator_1_3_roof", "irradiator_1_2_roof", "irradiator_1_1_roof" ], - [ "irradiator_1_6_roof", "irradiator_1_5_roof", "irradiator_1_4_roof" ], - [ "irradiator_1_9_roof", "irradiator_1_8_roof", "irradiator_1_7_roof" ] - ], - "weight": 25000, - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - " ", - " ", - " ", - " |------------------------------------------------------------3 ", - " 5............................................................5 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |....}.......................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |......................................................&.&...3 ", - " |...................................................AAA&.&...3 ", - " |......................................................&.&...3 ", - " |...................................................AAA&.&...3 ", - " |......................................................&.&...3 ", - " |...................................................AAA&.&...3 ", - " |......................................................&.&...3 ", - " |...................................................AAA&.&...3 ", - " |......................................................&.&...3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |............................................................3 ", - " |.................................................RR.........3 ", - " |.................................................RR.........3 ", - " |............................................................3 ", - " |..CC.........................................D........D.....3 ", - " |..CC........................................................3 ", - " 5............................................................5 ", - " |------------------------------------------------------------3 ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " |----------------3 ", - " |................3 ", - " |................5 ", - " |----------------3 ", - " ", - " ", - " " - ], - "terrain": { - ".": "t_flat_roof", - " ": "t_open_air", - "|": "t_gutter_west", - "-": "t_gutter_south", - "3": "t_gutter_east", - "5": "t_gutter_drop", - "}": "t_ladder_down", - "R": "t_radio_tower" - }, - "furniture": { "&": "f_roof_turbine_vent", "D": "f_satellite", "A": "f_air_conditioner", "C": "f_cellphone_booster" }, - "place_nested": [ - { - "chunks": [ - [ "null", 30 ], - [ "roof_4x4_survivor", 15 ], - [ "roof_4x4_holdout", 5 ], - [ "roof_6x6_utility", 45 ], - [ "roof_5x5_coop", 5 ] - ], - "x": [ 11, 18 ], - "y": [ 5, 18 ] - }, - { "chunks": [ [ "null", 75 ], [ "roof_16x16_help", 25 ] ], "x": [ 24, 32 ], "y": [ 5, 8 ] } - ] - } } ] diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/lumbermill.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/lumbermill.json index 04da3aabb..56612f726 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/lumbermill.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/lumbermill.json @@ -2,12 +2,7 @@ { "type": "mapgen", "method": "json", - "om_terrain": [ - [ "lumbermill_0_0", "lumbermill_1_0" ], - [ "lumbermill_0_1", "lumbermill_1_1" ], - [ "lumbermill_0_0_roof", "lumbermill_1_0_roof" ], - [ "lumbermill_0_1_roof", "lumbermill_1_1_roof" ] - ], + "om_terrain": [ [ "lumbermill_0_0", "lumbermill_1_0" ], [ "lumbermill_0_1", "lumbermill_1_1" ] ], "weight": 100000, "object": { "fill_ter": "t_thconc_floor", @@ -59,71 +54,14 @@ "v1 ____* #xx.x.xx# ____ *111111 v", "v1 1111111____ 2 #########* ____ 2 7 v", "v1 2 ____ * 2 ____ * *v", - "vvvvvvvvvv____vvvvvvvvvvvvvvvvvvvv____vvvvvvvvvv", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%5-------------%%%%%%%%%%%%%%%%%--------5%%%%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%zzzzzzzz|%%%%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%zzzzzzzz|%%%%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%zzzzzzzz|%%%%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%zzzzzzzz|%%%%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%zzzzzzzz|%%%%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%zzzzzzzz|%%%%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%333333335%%%%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%------------5%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%zzzzzzzzzzzz|%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%zzzzzzzzzzzz|%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%zzzzzzzzzzzz|%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%zzzzzzzzzzzz|%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%zzzzzzzzzzzz|%%", - "%%%4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%zzzzzzzzzzzz|%%", - "5--4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%zzzzzzzzzzzz|%%", - "4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%%%zzzzzzzzzzzz|%%", - "4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%%%3333333333335%%", - "4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "4zzzzzzzzzzzzz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "53333333333333%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%4zzzzzzz|%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%4zzzzzzz|%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%4zzzzzzz|%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%4zzzzzzz|%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%4zzzzzzz|%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%4zzzzzzz|%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%533333335%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + "vvvvvvvvvv____vvvvvvvvvvvvvvvvvvvv____vvvvvvvvvv" ], "palettes": [ "lumberyard" ], - "terrain": { "o": "t_concrete" }, "gaspumps": { "G": { "fuel": "gasoline", "amount": [ 0, 5000 ] } }, "place_vehicles": [ - { "vehicle": "flatbed_truck", "x": [ 43, 45 ], "y": 33, "chance": 30, "fuel": 25, "status": 1, "rotation": 90 }, - { - "vehicle": "pickup", - "x": [ 35, 37 ], - "y": [ 28, 31 ], - "chance": 30, - "fuel": 25, - "status": 1, - "rotation": 90 - }, - { "vehicle": "car", "x": [ 29, 31 ], "y": [ 27, 30 ], "chance": 30, "fuel": 15, "status": 1, "rotation": 90 } + { "vehicle": "flatbed_truck", "x": [ 43, 45 ], "y": 33, "chance": 30, "rotation": 90 }, + { "vehicle": "pickup", "x": [ 35, 37 ], "y": [ 28, 31 ], "chance": 30, "rotation": 90 }, + { "vehicle": "car", "x": [ 29, 31 ], "y": [ 27, 30 ], "chance": 30, "rotation": 90 } ] } } diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/mall_ground.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/mall_ground.json index 18a61b176..30e44b812 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/mall_ground.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/mall_ground.json @@ -667,10 +667,21 @@ "palettes": [ "mall_palette_2" ], "place_loot": [ { "item": "television", "x": 19, "y": 20, "chance": 50 }, - { "item": "craftrig", "x": 27, "y": 22, "chance": 35 }, + { "item": "veh_tools_kitchen", "x": 27, "y": 22, "chance": 35 }, + { "item": "vac_sealer", "x": 27, "y": 22, "chance": 35 }, + { "item": "dehydrator", "x": 27, "y": 22, "chance": 35 }, + { "item": "water_purifier", "x": 27, "y": 22, "chance": 35 }, + { "item": "food_processor", "x": 27, "y": 22, "chance": 35 }, + { "item": "press", "x": 27, "y": 22, "chance": 35 }, + { "item": "puller", "x": 27, "y": 22, "chance": 35 }, { "item": "forgerig", "x": 28, "y": 22, "chance": 35 }, - { "item": "kitchen_unit", "x": 30, "y": 22, "chance": 35 }, - { "item": "weldrig", "x": 31, "y": 22, "chance": 35 }, + { "item": "veh_tools_kitchen", "x": 30, "y": 22, "chance": 35 }, + { "item": "hotplate", "x": 30, "y": 22, "chance": 35 }, + { "item": "pan", "x": 30, "y": 22, "chance": 35 }, + { "item": "pot", "x": 30, "y": 22, "chance": 35 }, + { "item": "veh_tools_workshop", "x": 31, "y": 22, "chance": 35 }, + { "item": "welder", "x": 31, "y": 22, "chance": 35 }, + { "item": "soldering_iron", "x": 31, "y": 22, "chance": 35 }, { "item": "v_table", "x": 33, "y": 22, "chance": 35 }, { "item": "towel_hanger", "x": 33, "y": 22, "chance": 35 }, { "item": "workbench", "x": 34, "y": 22, "chance": 35 }, @@ -1026,8 +1037,17 @@ { "item": "animal_locker", "x": 23, "y": 6, "chance": 35 }, { "item": "towel_hanger", "x": 5, "y": 1, "chance": 35 }, { "item": "workbench", "x": 5, "y": 2, "chance": 35 }, - { "item": "kitchen_unit", "x": 5, "y": 3, "chance": 35 }, - { "item": "craftrig", "x": 5, "y": 4, "chance": 35 } + { "item": "veh_tools_kitchen", "x": 5, "y": 3, "chance": 35 }, + { "item": "hotplate", "x": 5, "y": 3, "chance": 35 }, + { "item": "pan", "x": 5, "y": 3, "chance": 35 }, + { "item": "pot", "x": 5, "y": 3, "chance": 35 }, + { "item": "veh_tools_kitchen", "x": 5, "y": 4, "chance": 35 }, + { "item": "vac_sealer", "x": 5, "y": 4, "chance": 35 }, + { "item": "dehydrator", "x": 5, "y": 4, "chance": 35 }, + { "item": "water_purifier", "x": 5, "y": 4, "chance": 35 }, + { "item": "food_processor", "x": 5, "y": 4, "chance": 35 }, + { "item": "press", "x": 5, "y": 4, "chance": 35 }, + { "item": "puller", "x": 5, "y": 4, "chance": 35 } ], "terrain": { "(": "t_carpet_concrete_yellow", diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/mil_base_z0.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/mil_base_z0.json index 19189ca63..68f35d7c1 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/mil_base_z0.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/mil_base_z0.json @@ -499,14 +499,15 @@ { "item": "manual_stabbing", "x": 53, "y": 60, "chance": 75, "repeat": [ 50, 150 ] }, { "item": "manual_gun", "x": 52, "y": 60, "chance": 75, "repeat": [ 50, 150 ] }, { "item": "manual_traps_mil", "x": 51, "y": 60, "chance": 75, "repeat": [ 50, 150 ] }, - { "item": "manual_rifle", "x": 50, "y": 60, "chance": 75, "repeat": [ 50, 150 ] }, - { "item": "mag_fieldrepair", "x": 49, "y": 60, "chance": 75, "repeat": [ 50, 150 ] }, + { "item": "manual_traps_mil_basic", "x": 50, "y": 60, "chance": 75, "repeat": [ 50, 150 ] }, + { "item": "manual_rifle", "x": 49, "y": 60, "chance": 75, "repeat": [ 50, 150 ] }, + { "item": "mag_fieldrepair", "x": 48, "y": 60, "chance": 75, "repeat": [ 50, 150 ] }, { "item": "boltcutters", "x": 55, "y": 59, "chance": 75, "repeat": [ 10, 25 ] }, { "item": "halligan", "x": 54, "y": 59, "chance": 75, "repeat": [ 10, 25 ] }, { "item": "crowbar", "x": 53, "y": 59, "chance": 75, "repeat": [ 10, 25 ] }, { "item": "e_tool", "x": 52, "y": 59, "chance": 75, "repeat": [ 50, 150 ] }, { "item": "mask_gas", "x": 51, "y": 59, "chance": 75, "repeat": [ 50, 150 ] }, - { "item": "gasfilter_m", "x": 50, "y": 59, "chance": 75, "repeat": [ 50, 150 ] }, + { "item": "gasfilter_med", "x": 50, "y": 59, "chance": 75, "repeat": [ 50, 150 ] }, { "item": "binoculars", "x": 49, "y": 59, "chance": 75, "repeat": [ 50, 100 ] }, { "item": "multitool", "x": 46, "y": 59, "chance": 75, "repeat": [ 50, 150 ] }, { "item": "heatpack", "x": 45, "y": 59, "chance": 75, "repeat": [ 150, 300 ] }, @@ -517,9 +518,8 @@ { "item": "sleeping_bag_roll", "x": 41, "y": 59, "chance": 75, "repeat": [ 150, 300 ] }, { "item": "rollmat", "x": 40, "y": 59, "chance": 75, "repeat": [ 150, 300 ] }, { "group": "full_ifak", "x": 39, "y": 59, "chance": 75, "repeat": [ 50, 150 ] }, - { "item": "mess_tin", "x": 38, "y": 59, "chance": 75, "repeat": [ 50, 150 ] }, { "item": "thermos", "x": 38, "y": 59, "chance": 75, "repeat": [ 50, 150 ] }, - { "item": "mil_mess_kit", "x": 37, "y": 59, "chance": 75, "repeat": [ 50, 100 ] }, + { "item": "mess_kit", "x": 37, "y": 59, "chance": 75, "repeat": [ 50, 100 ] }, { "item": "water_purifier", "x": 36, "y": 59, "chance": 75, "repeat": [ 50, 100 ] }, { "item": "pur_tablets", "x": 36, "y": 59, "chance": 75, "repeat": [ 50, 100 ] }, { "group": "MRE", "x": [ 49, 55 ], "y": [ 53, 54 ], "chance": 75, "repeat": 1500 }, @@ -753,8 +753,8 @@ { "item": "mgl", "x": 10, "y": 11, "chance": 75, "repeat": 3 }, { "item": "40x46mm_m433", "x": 10, "y": 12, "chance": 75, "repeat": 20 }, { - "item": "m4_carbine", - "variant": "m4a1", + "item": "modular_m4_carbine", + "variant": "modular_m4a1", "x": 12, "y": [ 9, 11 ], "magazine": 100, @@ -762,21 +762,21 @@ "repeat": 30 }, { - "item": "m27_assault_rifle", - "variant": "m27iar", + "item": "modular_m27_assault_rifle", + "variant": "modular_m27iar", "x": 12, "y": 9, "magazine": 100, "chance": 75, "repeat": 8 }, - { "item": "m16a4", "x": 12, "y": 9, "magazine": 100, "chance": 75, "repeat": 2 }, + { "item": "modular_m16a4", "x": 12, "y": 9, "magazine": 100, "chance": 75, "repeat": 2 }, { "item": "stanag30", "x": 12, "y": 12, "chance": 75, "repeat": 80 }, { "item": "stanag50", "x": 12, "y": 12, "chance": 75, "repeat": 20 }, { "item": "556", "x": 14, "y": [ 9, 12 ], "chance": 75, "repeat": 150 }, { - "item": "m4_carbine", - "variant": "m4a1", + "item": "modular_m4_carbine", + "variant": "modular_m4a1", "x": 16, "y": [ 9, 11 ], "magazine": 100, @@ -1151,7 +1151,7 @@ { "item": "calcium_tablet", "x": 28, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, { "group": "charged_inhaler", "x": 28, "y": 25, "chance": 50, "repeat": [ 1, 10 ] }, { "item": "bandages", "x": 29, "y": 25, "chance": 30, "repeat": [ 20, 60 ] }, - { "item": "adhesive_bandages", "x": 29, "y": 25, "chance": 30, "repeat": [ 20, 60 ] }, + { "group": "adhesive_bandages_box_used", "x": 29, "y": 25, "chance": 30, "repeat": [ 1, 3 ] }, { "item": "medical_gauze", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, { "item": "medical_tape", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, { "group": "mil_base_iv", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 80 ] }, @@ -1160,7 +1160,7 @@ { "item": "disinfectant", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, { "item": "quikclot", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, { "item": "bfipowder", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, - { "item": "cotton_ball", "x": 29, "y": 25, "chance": 50, "repeat": [ 20, 60 ] }, + { "group": "cotton_ball_bag_used", "x": 29, "y": 25, "chance": 50, "repeat": [ 2, 6 ] }, { "item": "scalpel", "x": 30, "y": 25, "chance": 50, "repeat": [ 1, 20 ] }, { "item": "scissors", "x": 30, "y": 25, "chance": 50, "repeat": [ 1, 20 ] }, { "item": "stethoscope", "x": 30, "y": 25, "chance": 50, "repeat": [ 1, 20 ] }, diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/missile_silo.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/missile_silo.json index 167a63ab7..651f38347 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/missile_silo.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/missile_silo.json @@ -5,54 +5,42 @@ "om_terrain": [ "silo_4" ], "weight": 40000, "object": { - "fill_ter": "t_rock", + "fill_ter": "t_thconc_floor", "rows": [ - " ~~~~~~~~~?a.BB.&& ", - " ~ %....&& ", - " ~ ? ", - " ~ alblblb . ", - " ~ ....... a.4 sta", - " ~ .......+.......=...", - " ~ ....... Y . @ S", - " ~ Wlblblb . ", - " ? . Y LLLL ", - " ~~~~~~~~~~ ,..+....a", - " ~~|-----|~~ . rrrr ", - " ~~|-`````-|~~ . ", - " ~|-`*****`-|~ . ", - " ~|`*******`|~ . ", - " ~|`*******`|~ . ", - " ~|`*******`|~?. ", - " ~|`*******`|~ . ", - " ~|`*******`|~ . ", - " ~|-`*****`-|~ . ", - " ~~|-`````-|~~ . ", - " ~~|-----|~~ . < ^ ", - " ~~~~~~~~~ .+....$ ", - " Y > $ ", - " " + " ", + " ", + " │││││││││ ", + " │alblblb│ │││││ ", + " │.......│││││││sta│ ", + " │.......+.....=...│ ", + " │.......│a4.│││@ S│ ", + " │Wlblblb│││.│││││││ ", + " │││││││││││ │.Y│LLLL││", + " ││~~~~~~~~~│││,.+....a│", + "││~~-------~~││.││rrrr││", + "│~~--`````--~~│.│││││││ ", + "│~--`*****`--~│.│.BBBB││", + "│~-`*******`-~│.?......│", + "│~-`*******`-~│.│.&&&&.│", + "│~-`*******`-~?.│.&&&&%│", + "│~-`*******`-~│.│.&&&&%│", + "│~-`*******`-~│.│.&&&&.│", + "│~--`*****`--~│.│......│", + "│~~--`````--~~│.│a││││││", + "││~~-------~~││.││││<│^│", + " ││~~~~~~~~~│││..+....$│", + " │││││││││││ ││││Y│>│$│", + " │││││││" ], "terrain": { + " ": "t_rock", + "│": "t_wall_metal", + ".": "t_thconc_floor", + ",": "t_thconc_floor", "*": "t_missile", - "`": "t_hole", - "|": "t_metal_railing", + "`": "t_open_air_rooved", "-": "t_metal_railing", "~": "t_metal_floor", - ".": "t_floor", - ",": "t_floor", - "4": "t_floor", - "a": "t_floor", - "b": "t_floor", - "B": "t_floor", - "l": "t_floor", - "L": "t_floor", - "r": "t_floor", - "s": "t_floor", - "S": "t_floor", - "t": "t_floor", - "%": "t_floor", - "&": "t_floor", - "@": "t_floor", "+": "t_door_metal_locked", "?": "t_door_metal_c_peep", "=": "t_door_locked", @@ -69,7 +57,7 @@ "%": "f_floor_canvas", "&": "f_tatami", "b": "f_bed", - "B": "f_bench", + "B": "f_metal_bench", "l": "f_locker", "L": "f_locker", "r": "f_rack", diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/motel.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/motel.json index 0bc712b80..4763856d3 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/motel.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/motel.json @@ -1,743 +1,128 @@ [ { - "type": "mapgen", - "method": "json", - "om_terrain": [ "motel_1" ], - "weight": 100000, - "object": { - "rows": [ - "........................", - ".###########............", - ".#SSSSSSSSS#.....#######", - ".#SWWWWWWWS#.....----gg-", - ".#SWWWWWWWS#.SS..v 66 ", - ".#SWWWWWWWSSSSS.4| B66B", - ".#SWWWWWWWSSSSS..| ", - ".#SWWWWWWWS#.SS..| B66B", - ".#SWWWWWWWS#.SS..| 66 ", - ".#SWWWWWWWS#.SS..| B ", - ".#SS0SSSSSS#.SS..v B", - ".#SSSSSSSSS#.SS..----gg-", - ".#SSSS|----|.SS..#######", - ".#SSSS|<99 |.SS.........", - ".#SSSS| 3SSSSSSSSSSSS", - ".|---------|SSSSSSSSSSSS", - ".| A|:: YBC|SS__________", - ".| + +SS__________", - ".|; | 2SS__________", - ".| |@@ @@ 2SS__________", - ".|88|@@ @@ |SS__________", - ".|---------|SS__________", - ".| A|:: YBC|SS__________", - ".| + +SS__________" - ], - "set": [ - { "point": "terrain", "id": "t_dirt", "x": 0, "y": [ 0, 23 ], "repeat": [ 5, 10 ] }, - { "point": "terrain", "id": "t_dirt", "x": 0, "y": [ 15, 16 ], "repeat": [ 5, 10 ] }, - { "point": "terrain", "id": "t_dirt", "x": [ 0, 23 ], "y": 0, "repeat": [ 5, 10 ] } - ], - "terrain": { - " ": "t_floor", - "#": "t_shrub", - "'": "t_pavement_y", - "+": "t_door_c", - "-": "t_wall_w", - ".": "t_grass", - "0": "t_sidewalk", - "2": "t_window_domestic", - "3": "t_door_locked", - "4": "t_gutter_downspout", - "6": "t_floor", - "7": "t_floor", - "8": "t_floor", - "9": "t_floor", - ":": "t_floor", - ";": "t_floor", - "=": "t_floor", - ">": "t_floor", - "?": "t_floor", - "@": "t_floor", - "A": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "E": "t_floor", - "F": "t_floor", - "G": "t_floor", - "M": "t_door_glass_c", - "S": "t_sidewalk", - "W": "t_water_dp", - "X": "t_gates_mech_control", - "Y": "t_floor", - "[": "t_fence_v", - "^": "t_tree", - "_": "t_pavement", - "g": "t_wall_glass", - "v": "t_wall_glass", - "x": "t_fencegate_c", - "|": "t_wall_w", - "~": "t_fence_h", - "<": "t_ladder_up" - }, - "furniture": { - "0": "f_dive_block", - "6": "f_table", - "7": "f_bookcase", - "8": "f_bathtub", - "9": "f_locker", - ":": "f_dresser", - "=": "f_fireplace", - ">": "f_counter", - "?": "f_sofa", - "@": "f_bed", - "A": "f_sink", - "B": "f_chair", - "C": "f_desk", - "D": "f_trashcan", - "E": "f_cupboard", - "F": "f_fridge", - "G": "f_oven", - "Y": "f_rack_coat" - }, - "place_vendingmachines": [ - { "item_group": "vending_food", "x": 18, "y": 6, "lootable": true }, - { "item_group": "vending_food", "x": 18, "y": 7, "lootable": true }, - { "item_group": "vending_drink", "x": 18, "y": 9, "lootable": true } - ], - "toilets": { ";": { } }, - "items": { "Y": { "item": "coat_rack", "chance": 35, "repeat": [ 1, 4 ] } }, - "place_items": [ - { "item": "bed", "x": [ 5, 6 ], "y": [ 19, 20 ], "chance": 80 }, - { "item": "bed", "x": [ 8, 9 ], "y": [ 19, 20 ], "chance": 80 }, - { "item": "cleaning", "x": [ 8, 8 ], "y": [ 13, 13 ], "chance": 80 }, - { "item": "home_hw", "x": [ 9, 9 ], "y": [ 13, 13 ], "chance": 80 }, - { "item": "traveler", "x": [ 5, 6 ], "y": [ 16, 16 ], "chance": 30 }, - { "item": "traveler", "x": [ 5, 6 ], "y": [ 22, 22 ], "chance": 30 }, - { "item": "dining", "x": [ 21, 22 ], "y": [ 4, 5 ], "chance": 30 }, - { "item": "dining", "x": [ 21, 22 ], "y": [ 7, 8 ], "chance": 30 }, - { "item": "trash_forest", "x": [ 14, 23 ], "y": [ 16, 23 ], "chance": 40 }, - { "item": "trash", "x": [ 14, 23 ], "y": [ 16, 23 ], "chance": 50 }, - { "item": "book_motel", "x": 10, "y": 16, "chance": 50 }, - { "item": "book_motel", "x": 10, "y": 22, "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": [ 2, 21 ], "y": [ 2, 21 ] }, - { "monster": "GROUP_ZOMBIE_POOL", "x": [ 2, 10 ], "y": [ 3, 11 ], "chance": 2 } - ] + "type": "palette", + "id": "motel_2x2_palette", + "terrain": { + "*": "t_region_groundcover_urban", + "#": "t_region_groundcover_urban", + "`": "t_region_groundcover", + " ": "t_pavement", + "Á": "t_pavement", + "É": "t_pavement", + "y": "t_pavement_y", + "W": "t_water_pool_outdoors", + "_": "t_sidewalk", + "t": "t_sidewalk", + "d": "t_sidewalk", + "0": "t_sidewalk", + ",": "t_concrete", + "R": "t_glass_railing", + "2": [ [ "t_window_domestic", 11 ], [ "t_window_open", 2 ], [ "t_curtains", 5 ] ], + "+": [ "t_door_c", "t_door_locked" ], + "L": "t_door_locked", + "G": "t_door_glass_c", + "o": "t_wall_glass", + "w": "t_curtains", + "|": "t_wall_w", + ".": "t_floor", + "~": "t_thconc_floor", + "9": "t_thconc_floor", + "{": "t_thconc_floor", + "f": "t_chainfence", + "g": "t_chaingate_l", + "'": "t_linoleum_white", + "p": "t_linoleum_white", + "P": "t_linoleum_white", + "s": "t_linoleum_white", + "I": "t_linoleum_white", + "T": "t_linoleum_white", + "-": "t_gutter", + "4": "t_gutter_downspout", + "<": "t_stairs_down_no_roof" + }, + "furniture": { + "0": "f_dive_block", + "#": "f_hedge_short", + "n": "f_table", + "9": "f_utility_shelf", + "A": "f_armchair", + "s": "f_sink", + "h": "f_chair", + "H": "f_sofa", + "a": "f_trashcan", + "Y": "f_rack_coat", + "{": "f_dumpster", + "B": "f_floor_lamp", + "c": "f_counter", + "C": "f_counter", + "/": "f_counter_gate_o", + "p": "f_cupboard", + "P": "f_cupboard", + "I": "f_fridge", + "d": "f_deckchair", + "t": "f_table" + }, + "vendingmachines": { "D": { "item_group": "vending_drink", "lootable": true }, "F": { "item_group": "vending_food", "lootable": true } }, + "vehicles": { + "Á": { "vehicle": "parking_garage", "chance": 33, "rotation": 270 }, + "É": { "vehicle": "parking_garage", "chance": 33, "rotation": 90 } + }, + "items": { + "Y": { "item": "unisex_coat_rack", "chance": 20 }, + "n": { "item": "dining", "chance": 2 }, + "C": { "item": "cash_register_random", "chance": 100 }, + "9": [ { "item": "SUS_janitors_closet", "chance": 20 }, { "item": "tools_toolbox", "chance": 20 } ], + "a": { "item": "trash", "repeat": [ 0, 2 ], "chance": 20 }, + "{": { "item": "trash", "chance": 20, "repeat": [ 0, 5 ] }, + "s": { "item": "public_sink", "chance": 20, "repeat": [ 0, 2 ] }, + "F": { "item": "SUS_fridge_breakroom", "chance": 20 }, + "c": { "item": "office_supplies", "chance": 20, "repeat": [ 1, 2 ] } + }, + "toilets": { "T": { } }, + "item": { + "P": [ { "item": "microwave", "chance": 20 }, { "item": "coffeemaker", "chance": 20 } ], + "n": [ { "item": "roadmap", "chance": 2 }, { "item": "touristmap", "chance": 2 } ] + }, + "nested": { + "E": { "chunks": [ "9x9_motel_room_twin_E", "9x9_motel_room_single_E", "9x9_motel_room_single_1_E" ] }, + "N": { "chunks": [ "9x9_motel_room_twin_N", "9x9_motel_room_single_N", "9x9_motel_room_single_1_N" ] } } }, { - "type": "mapgen", - "method": "json", - "om_terrain": [ "motel_2" ], - "weight": 100000, - "object": { - "rows": [ - "_|; | 2SS__________", - "_| |@@ @@ 2SS__________", - "_|88|@@ @@ |SS__________", - "_|---------|SS__________", - "_| A|:: HHY|SS__________", - "_| + 3SS__________", - "_|; | 2SS__________", - "_| |B @@ 2SS__________", - "_|88|CC @@ |SS__________", - "_|---------|SS__________", - "_| A|:: Y 2SSSSSSSSSSSS", - "_| + 3SSSSSSSSSSSS", - "_|; |B H|-22+---223--", - "_| |6 @@ H|Y B|C6 B|", - "_|88|B @@ H|@@ 6| 6|", - "_|---------|@@ B|@@ B|", - "__4________| |@@ |", - "___________|CB :| :|", - "___________|CC :|HHH :|", - "_________{{|---+-|---+-|", - "_________{{|8 A|8 A|", - "_________{{|8 ; |8 ; |", - "___________-------------", - "........................" - ], - "set": [ { "point": "terrain", "id": "t_dirt", "x": [ 0, 23 ], "y": 23, "repeat": [ 5, 8 ] } ], - "terrain": { - " ": "t_floor", - "#": "t_shrub", - "'": "t_pavement_y", - "+": "t_door_c", - "-": "t_wall_w", - ".": "t_grass", - "2": "t_window_domestic", - "3": "t_door_locked", - "4": "t_gutter_downspout", - "6": "t_floor", - "7": "t_floor", - "8": "t_floor", - "9": "t_floor", - ":": "t_floor", - ";": "t_floor", - "=": "t_floor", - ">": "t_floor", - "?": "t_floor", - "@": "t_floor", - "A": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "E": "t_floor", - "F": "t_floor", - "G": "t_floor", - "H": "t_floor", - "M": "t_door_glass_c", - "S": "t_sidewalk", - "W": "t_water_dp", - "X": "t_gates_mech_control", - "Y": "t_floor", - "[": "t_fence_v", - "^": "t_tree", - "_": "t_pavement", - "g": "t_wall_glass", - "x": "t_fencegate_c", - "{": "t_pavement", - "|": "t_wall_w", - "~": "t_fence_h" - }, - "furniture": { - "6": "f_table", - "7": "f_bookcase", - "8": "f_bathtub", - "9": "f_rack", - ":": "f_dresser", - "=": "f_fireplace", - ">": "f_counter", - "?": "f_sofa", - "@": "f_bed", - "A": "f_sink", - "B": "f_chair", - "C": "f_desk", - "D": "f_trashcan", - "E": "f_cupboard", - "F": "f_fridge", - "G": "f_oven", - "H": "f_sofa", - "Y": "f_rack_coat", - "{": "f_dumpster" - }, - "toilets": { ";": { } }, - "items": { "Y": { "item": "coat_rack", "chance": 35, "repeat": [ 1, 4 ] } }, - "place_items": [ - { "item": "bed", "x": [ 5, 6 ], "y": [ 1, 2 ], "chance": 80 }, - { "item": "bed", "x": [ 8, 9 ], "y": [ 1, 2 ], "chance": 80 }, - { "item": "bed", "x": [ 8, 9 ], "y": [ 7, 8 ], "chance": 80 }, - { "item": "bed", "x": [ 7, 8 ], "y": [ 13, 14 ], "chance": 80 }, - { "item": "bed", "x": [ 12, 13 ], "y": [ 14, 15 ], "chance": 80 }, - { "item": "bed", "x": [ 18, 19 ], "y": [ 15, 16 ], "chance": 80 }, - { "item": "traveler", "x": [ 5, 6 ], "y": [ 4, 4 ], "chance": 30 }, - { "item": "traveler", "x": [ 5, 6 ], "y": [ 10, 10 ], "chance": 30 }, - { "item": "traveler", "x": [ 16, 16 ], "y": [ 17, 18 ], "chance": 30 }, - { "item": "traveler", "x": [ 22, 22 ], "y": [ 17, 18 ], "chance": 30 }, - { "item": "trash_forest", "x": [ 13, 23 ], "y": [ 0, 11 ], "chance": 40 }, - { "item": "trash", "x": [ 13, 23 ], "y": [ 0, 11 ], "chance": 50 }, - { "item": "trash_forest", "x": [ 9, 10 ], "y": [ 19, 21 ], "chance": 60 }, - { "item": "trash", "x": [ 9, 10 ], "y": [ 19, 21 ], "chance": 70 }, - { "item": "book_motel", "x": 5, "y": 8, "chance": 50 }, - { "item": "book_motel", "x": 5, "y": 13, "chance": 50 }, - { "item": "book_motel", "x": 12, "y": 18, "chance": 50 }, - { "item": "book_motel", "x": 18, "y": 13, "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": [ 3, 23 ], "y": [ 0, 22 ] }, - { "monster": "GROUP_ZOMBIE", "x": [ 2, 9 ], "y": [ 0, 14 ], "chance": 3 }, - { "monster": "GROUP_ZOMBIE", "x": [ 12, 22 ], "y": [ 13, 21 ] } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "motel_3" ], - "weight": 100000, - "object": { - "rows": [ - "_______________________#", - "_______________________#", - "_______________________#", - "_______________________#", - "_______________________#", - "_______________________#", - "_______________________#", - "_______________________#", - "_______________________#", - "_______________________#", - "SSSSSSSSSSSSSSSSSSSSSSS#", - "SSSSSSSSSSSSSSSSSSSSSSS#", - "-22+---22+---223--223---", - " C| C| C| C|", - "@@ B|@@ B|@@ B|@@ B|", - "@@ Y|@@ Y|@@ Y|@@ Y|", - " | | | |", - "@@ :|@@ :|@@ :|@@ :|", - "@@ :|@@ :|@@ :|@@ :|", - "---+-|---+-|---+-|---+-|", - "8 A|8 A|8 A|8 A|", - "8 ; |8 ; |8 ; |8 ; |", - "------------------------", - "......................4." - ], - "set": [ { "point": "terrain", "id": "t_dirt", "x": [ 0, 23 ], "y": 23, "repeat": [ 5, 10 ] } ], - "terrain": { - " ": "t_floor", - "#": "t_shrub", - "'": "t_pavement_y", - "+": "t_door_c", - "-": "t_wall_w", - ".": "t_grass", - "2": "t_window_domestic", - "3": "t_door_locked", - "4": "t_gutter_downspout", - "6": "t_floor", - "7": "t_floor", - "8": "t_floor", - "9": "t_floor", - ":": "t_floor", - ";": "t_floor", - "=": "t_floor", - ">": "t_floor", - "?": "t_floor", - "@": "t_floor", - "A": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "E": "t_floor", - "F": "t_floor", - "G": "t_floor", - "M": "t_door_glass_c", - "S": "t_sidewalk", - "W": "t_water_dp", - "X": "t_gates_mech_control", - "Y": "t_floor", - "[": "t_fence_v", - "^": "t_tree", - "_": "t_pavement", - "g": "t_wall_glass", - "x": "t_fencegate_c", - "|": "t_wall_w", - "~": "t_fence_h" - }, - "furniture": { - "6": "f_table", - "7": "f_bookcase", - "8": "f_bathtub", - "9": "f_rack", - ":": "f_dresser", - "=": "f_fireplace", - ">": "f_counter", - "?": "f_sofa", - "@": "f_bed", - "A": "f_sink", - "B": "f_chair", - "C": "f_desk", - "D": "f_trashcan", - "E": "f_cupboard", - "F": "f_fridge", - "G": "f_oven", - "Y": "f_rack_coat" - }, - "toilets": { ";": { } }, - "items": { "Y": { "item": "coat_rack", "chance": 35, "repeat": [ 1, 4 ] } }, - "place_items": [ - { "item": "bed", "x": [ 0, 1 ], "y": [ 14, 15 ], "chance": 80 }, - { "item": "bed", "x": [ 6, 7 ], "y": [ 14, 15 ], "chance": 80 }, - { "item": "bed", "x": [ 11, 12 ], "y": [ 14, 15 ], "chance": 80 }, - { "item": "bed", "x": [ 18, 19 ], "y": [ 14, 15 ], "chance": 80 }, - { "item": "bed", "x": [ 0, 1 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 6, 7 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 11, 12 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "bed", "x": [ 18, 19 ], "y": [ 17, 18 ], "chance": 80 }, - { "item": "traveler", "x": [ 4, 4 ], "y": [ 17, 18 ], "chance": 30 }, - { "item": "traveler", "x": [ 10, 10 ], "y": [ 17, 18 ], "chance": 30 }, - { "item": "traveler", "x": [ 16, 16 ], "y": [ 17, 18 ], "chance": 30 }, - { "item": "traveler", "x": [ 22, 22 ], "y": [ 17, 18 ], "chance": 30 }, - { "item": "trash_forest", "x": [ 0, 22 ], "y": [ 0, 13 ], "chance": 40 }, - { "item": "trash", "x": [ 0, 22 ], "y": [ 0, 13 ], "chance": 50 }, - { "item": "book_motel", "x": 4, "y": 13, "chance": 50 }, - { "item": "book_motel", "x": 10, "y": 13, "chance": 50 }, - { "item": "book_motel", "x": 16, "y": 18, "chance": 50 }, - { "item": "book_motel", "x": 22, "y": 13, "chance": 50 } - ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": [ 0, 21 ], "y": [ 0, 22 ] }, - { "monster": "GROUP_ZOMBIE", "x": [ 0, 22 ], "y": [ 13, 21 ], "chance": 2 } - ], - "place_vehicles": [ - { "vehicle": "car", "x": 3, "y": 7, "chance": 2, "rotation": 90 }, - { "vehicle": "car", "x": 5, "y": 7, "chance": 2, "rotation": 270 }, - { "vehicle": "car", "x": 7, "y": 7, "chance": 2, "rotation": 60 }, - { "vehicle": "car", "x": 9, "y": 7, "chance": 2, "rotation": 270 }, - { "vehicle": "car", "x": 11, "y": 7, "chance": 2, "rotation": 90 }, - { "vehicle": "car", "x": 13, "y": 7, "chance": 2, "rotation": 270 }, - { "vehicle": "car", "x": 15, "y": 7, "chance": 2, "rotation": 110 }, - { "vehicle": "car", "x": 17, "y": 7, "chance": 2, "rotation": 270 }, - { "vehicle": "car", "x": 19, "y": 7, "chance": 2, "rotation": 90 }, - { "vehicle": "pickup", "x": 3, "y": 7, "chance": 2, "rotation": 90 }, - { "vehicle": "car", "x": 5, "y": 7, "chance": 2, "rotation": 270 }, - { "vehicle": "flatbed_truck", "x": 7, "y": 7, "chance": 2, "rotation": 60 }, - { "vehicle": "car", "x": 9, "y": 7, "chance": 2, "rotation": 270 }, - { "vehicle": "policecar", "x": 11, "y": 7, "chance": 2, "rotation": 90 }, - { "vehicle": "car", "x": 13, "y": 7, "chance": 2, "rotation": 270 }, - { "vehicle": "car", "x": 15, "y": 7, "chance": 2, "rotation": 110 }, - { "vehicle": "motorcycle", "x": 17, "y": 7, "chance": 2, "rotation": 270 }, - { "vehicle": "car", "x": 19, "y": 7, "chance": 2, "rotation": 90 } - ] - } - }, - { - "type": "mapgen", - "om_terrain": [ "2fmotel_1" ], - "method": "json", - "weight": 100000, - "object": { - "rows": [ - "........................", - ".###########............", - ".#SSSSSSSSS#.....#######", - ".#SWWWWWWWS#.....----gg-", - ".#SWWWWWWWS#.SS..v 66 ", - ".#SWWWWWWWSSSSS..| B66B", - ".#SWWWWWWWSSSSS..| ", - ".#SWWWWWWWS#.SS..| B66B", - ".#SWWWWWWWS#.SS..| 66 ", - ".#SWWWWWWWS#.SS..| B ", - ".#SS0SSSSSS#.SS..v B", - ".#SSSSSSSSS#.SS..----gg-", - ".#SSSS|----|.SS..#######", - ".#SSSS|9 9 |.SS.........", - ".#SSSS| 3SSSSSSSSSSSS", - ".|---------|SSSSSSSSSSSS", - ".| A|:: BC|": "t_floor", - "?": "t_floor", - "@": "t_floor", - "A": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "E": "t_floor", - "F": "t_floor", - "G": "t_floor", - "S": "t_sidewalk", - "^": "t_tree", - "M": "t_door_glass_c", - "#": "t_shrub", - "g": "t_wall_glass", - "v": "t_wall_glass", - "X": "t_gates_mech_control", - "[": "t_fence_v", - "W": "t_water_dp", - "~": "t_fence_h", - "x": "t_fencegate_c", - "0": "t_sidewalk", - "<": "t_stairs_up" - }, - "furniture": { - "6": "f_table", - "7": "f_bookcase", - "8": "f_bathtub", - "9": "f_locker", - ":": "f_dresser", - "=": "f_fireplace", - ">": "f_counter", - "?": "f_sofa", - "@": "f_bed", - "A": "f_sink", - "B": "f_chair", - "C": "f_desk", - "D": "f_trashcan", - "E": "f_cupboard", - "F": "f_fridge", - "G": "f_oven", - "0": "f_dive_block" - }, - "place_vendingmachines": [ { "x": 18, "y": 6, "lootable": true }, { "x": 18, "y": 7, "lootable": true }, { "x": 18, "y": 9, "lootable": true } ], - "toilets": { ";": { } }, - "set": [ - { "point": "terrain", "id": "t_dirt", "x": 0, "y": [ 0, 23 ], "repeat": [ 5, 10 ] }, - { "point": "terrain", "id": "t_dirt", "x": 0, "y": [ 15, 16 ], "repeat": [ 5, 10 ] }, - { "point": "terrain", "id": "t_dirt", "x": [ 0, 23 ], "y": 0, "repeat": [ 5, 10 ] } - ], - "place_items": [ - { "item": "cleaning", "chance": 80, "x": [ 7, 7 ], "y": [ 13, 13 ] }, - { "item": "home_hw", "chance": 80, "x": [ 9, 9 ], "y": [ 13, 13 ] }, - { "item": "book_motel", "x": 10, "y": 16, "chance": 50 }, - { "item": "book_motel", "x": 10, "y": 22, "chance": 50 }, - { "item": "traveler", "chance": 30, "x": [ 5, 6 ], "y": [ 16, 16 ] }, - { "item": "traveler", "chance": 30, "x": [ 5, 6 ], "y": [ 22, 22 ] }, - { "item": "dining", "chance": 30, "x": [ 21, 22 ], "y": [ 4, 5 ] }, - { "item": "dining", "chance": 30, "x": [ 21, 22 ], "y": [ 7, 8 ] }, - { "item": "vending_drink", "chance": 5, "x": [ 18, 23 ], "y": [ 5, 10 ] }, - { "item": "vending_food", "chance": 5, "x": [ 18, 23 ], "y": [ 5, 10 ] }, - { "item": "trash_forest", "chance": 40, "x": [ 14, 23 ], "y": [ 16, 23 ] }, - { "item": "trash", "chance": 50, "x": [ 14, 23 ], "y": [ 16, 23 ] }, - { "item": "bed", "chance": 60, "x": [ 5, 6 ], "y": [ 19, 20 ] }, - { "item": "bed", "chance": 60, "x": [ 8, 9 ], "y": [ 19, 20 ] } - ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": [ 2, 21 ], "y": [ 2, 21 ] }, - { "monster": "GROUP_ZOMBIE_POOL", "chance": 2, "x": [ 2, 10 ], "y": [ 3, 11 ] } - ] - } - }, - { - "type": "mapgen", - "om_terrain": [ "2fmotel_2_f2" ], - "method": "json", - "weight": 100000, - "object": { - "rows": [ - ".|; | 2S'..........", - ".| |@@ @@ 2S'..........", - ".|88|@@ @@ |S'..........", - ".|---------|S'..........", - ".| A|:: HH |S'..........", - ".| + 3S'..........", - ".|; | 2S'..........", - ".| |B @@ 2S'..........", - ".|88|CC @@ |S'..........", - ".|---------|S'..........", - ".| A|:: 2S'__________", - ".| + 3SSSSSSSSSSSS", - ".|; |B H|-22+---223--", - ".| |6 @@ H| B|C6 B|", - ".|88|B @@ H|@@ 6| 6|", - ".|---------|@@ B|@@ B|", - "...........| |@@ |", - "...........|CB :| :|", - "...........|CC :|HHH :|", - "...........|---+-|---+-|", - "...........|8 A|8 A|", - "...........|8 ; |8 ; |", - "...........-------------", - "........................" - ], - "terrain": { - ".": "t_open_air", - "-": "t_wall", - "_": "t_railing_h", - "'": "t_railing_v", - "2": "t_window_domestic", - "3": "t_door_locked", - "|": "t_wall", - " ": "t_floor", - "6": "t_floor", - "7": "t_floor", - "8": "t_floor", - "9": "t_floor", - ":": "t_floor", - ";": "t_floor", - "+": "t_door_c", - "=": "t_floor", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "E": "t_floor", - "F": "t_floor", - "G": "t_floor", - "H": "t_floor", - "S": "t_bridge", - "^": "t_tree", - "M": "t_door_glass_c", - "#": "t_shrub", - "g": "t_wall_glass", - "X": "t_gates_mech_control", - "[": "t_fence_v", - "W": "t_water_dp", - "~": "t_fence_h", - "x": "t_fencegate_c" - }, - "furniture": { - "6": "f_table", - "7": "f_bookcase", - "8": "f_bathtub", - "9": "f_rack", - ":": "f_dresser", - "=": "f_fireplace", - "?": "f_sofa", - "@": "f_bed", - "A": "f_sink", - "B": "f_chair", - "C": "f_desk", - "D": "f_trashcan", - "E": "f_cupboard", - "F": "f_fridge", - "G": "f_oven", - "H": "f_sofa", - "{": "f_dumpster" - }, - "toilets": { ";": { } }, - "set": [ { "point": "terrain", "id": "t_open_air", "x": [ 0, 23 ], "y": 23, "repeat": [ 5, 8 ] } ], - "place_items": [ - { "item": "book_motel", "x": 5, "y": 8, "chance": 50 }, - { "item": "book_motel", "x": 5, "y": 13, "chance": 50 }, - { "item": "book_motel", "x": 12, "y": 18, "chance": 50 }, - { "item": "book_motel", "x": 18, "y": 13, "chance": 50 }, - { "item": "traveler", "chance": 30, "x": [ 5, 6 ], "y": [ 4, 4 ] }, - { "item": "traveler", "chance": 30, "x": [ 5, 6 ], "y": [ 10, 10 ] }, - { "item": "traveler", "chance": 30, "x": [ 16, 16 ], "y": [ 17, 18 ] }, - { "item": "traveler", "chance": 30, "x": [ 22, 22 ], "y": [ 17, 18 ] }, - { "item": "bed", "chance": 60, "x": [ 5, 6 ], "y": [ 1, 2 ] }, - { "item": "bed", "chance": 60, "x": [ 8, 9 ], "y": [ 1, 2 ] }, - { "item": "bed", "chance": 60, "x": [ 8, 9 ], "y": [ 7, 8 ] }, - { "item": "bed", "chance": 60, "x": [ 7, 8 ], "y": [ 13, 14 ] }, - { "item": "bed", "chance": 60, "x": [ 12, 13 ], "y": [ 14, 15 ] }, - { "item": "bed", "chance": 60, "x": [ 18, 19 ], "y": [ 15, 16 ] } - ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": [ 4, 6 ], "y": [ 4, 4 ] }, - { "monster": "GROUP_ZOMBIE", "chance": 3, "x": [ 15, 16 ], "y": [ 16, 16 ] }, - { "monster": "GROUP_ZOMBIE", "x": [ 22, 22 ], "y": [ 16, 16 ] } - ] - } - }, - { - "type": "mapgen", - "om_terrain": [ "2fmotel_3_f2" ], - "method": "json", - "weight": 100000, - "object": { - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "________________________", - "SSSSSSSSSSSSSSSSSSSSSS>'", - "-22+---22+---223--223---", - " C| C| C| C|", - "@@ B|@@ B|@@ B|@@ B|", - "@@ |@@ |@@ |@@ |", - " | | | |", - "@@ :|@@ :|@@ :|@@ :|", - "@@ :|@@ :|@@ :|@@ :|", - "---+-|---+-|---+-|---+-|", - "8 A|8 A|8 A|8 A|", - "8 ; |8 ; |8 ; |8 ; |", - "------------------------", - "........................" - ], - "terrain": { - ".": "t_open_air", - "-": "t_wall", - "_": "t_railing_h", - "'": "t_railing_v", - "2": "t_window_domestic", - "3": "t_door_locked", - "|": "t_wall", - " ": "t_floor", - "6": "t_floor", - "7": "t_floor", - "8": "t_floor", - "9": "t_floor", - ":": "t_floor", - ";": "t_floor", - "+": "t_door_c", - "=": "t_floor", - ">": "t_stairs_down", - "?": "t_floor", - "@": "t_floor", - "A": "t_floor", - "B": "t_floor", - "C": "t_floor", - "D": "t_floor", - "E": "t_floor", - "F": "t_floor", - "G": "t_floor", - "S": "t_bridge", - "^": "t_tree", - "M": "t_door_glass_c", - "#": "t_shrub", - "g": "t_wall_glass", - "X": "t_gates_mech_control", - "[": "t_fence_v", - "W": "t_water_dp", - "~": "t_fence_h", - "x": "t_fencegate_c" - }, - "furniture": { - "6": "f_table", - "7": "f_bookcase", - "8": "f_bathtub", - "9": "f_rack", - ":": "f_dresser", - "=": "f_fireplace", - "?": "f_sofa", - "@": "f_bed", - "A": "f_sink", - "B": "f_chair", - "C": "f_desk", - "D": "f_trashcan", - "E": "f_cupboard", - "F": "f_fridge", - "G": "f_oven" - }, - "toilets": { ";": { } }, - "set": [ { "point": "terrain", "id": "t_open_air", "x": [ 0, 23 ], "y": 23, "repeat": [ 5, 10 ] } ], - "place_items": [ - { "item": "book_motel", "x": 4, "y": 13, "chance": 50 }, - { "item": "book_motel", "x": 10, "y": 13, "chance": 50 }, - { "item": "book_motel", "x": 16, "y": 13, "chance": 50 }, - { "item": "book_motel", "x": 22, "y": 13, "chance": 50 }, - { "item": "traveler", "chance": 30, "x": [ 4, 4 ], "y": [ 17, 18 ] }, - { "item": "traveler", "chance": 30, "x": [ 10, 10 ], "y": [ 17, 18 ] }, - { "item": "traveler", "chance": 30, "x": [ 16, 16 ], "y": [ 17, 18 ] }, - { "item": "traveler", "chance": 30, "x": [ 22, 22 ], "y": [ 17, 18 ] }, - { "item": "bed", "chance": 60, "x": [ 0, 1 ], "y": [ 14, 15 ] }, - { "item": "bed", "chance": 60, "x": [ 0, 1 ], "y": [ 17, 18 ] }, - { "item": "bed", "chance": 60, "x": [ 6, 7 ], "y": [ 14, 15 ] }, - { "item": "bed", "chance": 60, "x": [ 6, 7 ], "y": [ 17, 18 ] }, - { "item": "bed", "chance": 60, "x": [ 12, 13 ], "y": [ 14, 15 ] }, - { "item": "bed", "chance": 60, "x": [ 12, 13 ], "y": [ 17, 18 ] }, - { "item": "bed", "chance": 60, "x": [ 18, 19 ], "y": [ 14, 15 ] }, - { "item": "bed", "chance": 60, "x": [ 18, 19 ], "y": [ 17, 18 ] } - ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": [ 4, 4 ], "y": [ 16, 16 ] }, - { "monster": "GROUP_ZOMBIE", "chance": 2, "x": [ 10, 10 ], "y": [ 16, 16 ] } - ] - } + "type": "palette", + "id": "motel_rooms_palette", + "terrain": { + "+": "t_door_c", + "|": "t_wall_w", + "'": "t_linoleum_white", + "T": "t_linoleum_white", + "s": "t_linoleum_white", + "8": "t_linoleum_white" + }, + "furniture": { + "n": "f_table", + "x": "f_table", + ":": "f_dresser", + "H": "f_sofa", + "@": "f_bed", + "8": "f_bathtub", + "s": "f_sink", + "h": "f_chair", + "d": "f_desk", + "a": "f_trashcan", + "L": "f_rack_coat", + "B": "f_floor_lamp" + }, + "toilets": { "T": { } }, + "items": { + "@": { "item": "bed", "chance": 20 }, + "L": { "item": "unisex_coat_rack", "chance": 20 }, + "a": { "item": "trash", "repeat": [ 0, 2 ], "chance": 20 }, + "8": { "item": "shower", "chance": 20 }, + ":": { "item": "traveler", "chance": 20, "repeat": [ 3, 5 ] }, + "d": { "item": "book_motel", "chance": 20 }, + "s": { "item": "public_sink", "chance": 20, "repeat": [ 0, 2 ] } + }, + "item": { "x": { "item": "television", "chance": 50 } } } ] diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/museum.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/museum.json index 597ca5d46..6a6bbdfe2 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/museum.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/museum.json @@ -5,48 +5,49 @@ "om_terrain": [ "museum" ], "weight": 50000, "object": { - "fill_ter": "t_floor", + "fill_ter": "t_linoleum_gray", "rows": [ - ".R...R....RssR....R...R.", - ".|---------LL---------|.", - ".|d5 C |.", - ".|-R 888 |.", + ".R*f*R*ff*RssR*ff*R*f*R.", + ".||||||||||LL||||||||||.", + ".|d5 |.", + ".||R C 555 |.", ".|d5 DD DD 5#5 |.", - ".|-R DD DD 5#5 |.", - ".|d5 888 P|.", - ".|-R P|.", - ".|d5 888 P|.", - ".|-R DD DD 5#5 |.", + ".||R DD DD 5#5 |.", + ".|d5 555 P|.", + ".||R P|.", + ".|d5 555 P|.", + ".||R DD DD 5#5 |.", ".|d5 DD DD 5#5 |.", - ".|-R 888 Y|.", + ".||R 555 Y|.", ".|j5 Y|.", - ".|j5 UtU 888 Y|.", - ".|--555|y 5#5 |.", + ".|j5 UtU 555 Y|.", + ".|||555|y 5#5 |.", ".|GGGGG5 UtU 5#5 P|.", - ".|Gc L 888 P|.", + ".|Gc L 555 P|.", ".|G UyU5 DDD |.", - ".|-----|--|--L------L-|.", + ".||||||||||||L||||||L||.", ".| d a | P| y|.", ".|Y #### a| aaaa D|&S|.", - ".|P #### + tttt |--|.", + ".|P #### + tttt ||||.", ".|y a |y aaaa L l|4", - ".|--------|-----------|." + ".||||||||||||||||||||||." ], "terrain": { - " ": "t_floor", + "f": "t_region_groundcover_urban", + "*": "t_region_shrub_decorative", + " ": "t_linoleum_gray", "+": "t_door_c", - "-": "t_rock_smooth", "R": "t_column", - "s": "t_sidewalk", - ".": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt", "t_shrub" ], + "s": "t_concrete", + ".": "t_region_groundcover_urban", "5": "t_wall_glass_alarm", - "8": "t_wall_glass", "L": "t_door_locked_alarm", "4": "t_gutter_downspout", - "|": "t_rock_smooth" + "|": "t_brick_wall" }, "toilets": { "&": { } }, "furniture": { + "f": "f_region_flower_decorative", "a": "f_stool", "y": [ "f_indoor_plant_y", "f_indoor_plant" ], "U": "f_armchair", diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/necropolis.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/necropolis.json index 8d716781b..c122eeece 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/necropolis.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/necropolis.json @@ -257,7 +257,7 @@ { "vehicle": "car_mini", "x": 21, "y": 18, "chance": 25, "rotation": 270 } ], "place_items": [ - { "item": "building_rubble", "x": [ 15, 23 ], "y": [ 42, 47 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 15, 23 ], "y": [ 42, 47 ], "chance": 95 }, { "item": "alcohol", "x": [ 14, 14 ], "y": [ 40, 47 ], "chance": 75 }, { "item": "cannedfood", "x": [ 19, 23 ], "y": [ 40, 41 ], "chance": 75 }, { "item": "cannedfood", "x": [ 19, 23 ], "y": [ 36, 37 ], "chance": 75 }, @@ -269,8 +269,8 @@ { "item": "cannedfood", "x": [ 6, 7 ], "y": [ 31, 32 ], "chance": 80 }, { "item": "cannedfood", "x": [ 11, 12 ], "y": [ 31, 32 ], "chance": 80 }, { "item": "pasta", "x": [ 6, 7 ], "y": [ 34, 35 ], "chance": 80 }, - { "item": "building_rubble", "x": [ 36, 46 ], "y": [ 34, 41 ], "chance": 95 }, - { "item": "building_rubble", "x": [ 24, 35 ], "y": [ 38, 47 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 36, 46 ], "y": [ 34, 41 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 24, 35 ], "y": [ 38, 47 ], "chance": 95 }, { "item": "produce", "x": [ 35, 36 ], "y": [ 35, 36 ], "chance": 75 }, { "item": "produce", "x": [ 31, 32 ], "y": [ 35, 36 ], "chance": 75 }, { "item": "produce", "x": [ 35, 36 ], "y": [ 32, 33 ], "chance": 75 }, @@ -352,15 +352,15 @@ "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, "toilets": { "t": { } }, "place_items": [ - { "item": "building_rubble", "x": [ 0, 9 ], "y": [ 0, 4 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 20 }, + { "item": "collapsed_building_rubble", "x": [ 0, 9 ], "y": [ 0, 4 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 20 }, { "item": "vehicle_scrapped", "x": [ 42, 47 ], "y": [ 2, 8 ], "chance": 75 }, { "item": "allclothes", "x": [ 38, 39 ], "y": [ 23, 23 ], "chance": 75 }, - { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 20 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 20 }, { "item": "novels", "x": [ 51, 52 ], "y": [ 23, 23 ], "chance": 70 }, { "item": "allclothes", "x": [ 55, 55 ], "y": [ 23, 23 ], "chance": 75 }, { "item": "allclothes", "x": [ 61, 61 ], "y": [ 23, 23 ], "chance": 75 }, - { "item": "building_rubble", "x": [ 48, 63 ], "y": [ 0, 15 ], "chance": 20 }, + { "item": "collapsed_building_rubble", "x": [ 48, 63 ], "y": [ 0, 15 ], "chance": 20 }, { "item": "bed", "x": [ 56, 56 ], "y": [ 23, 23 ], "chance": 80 }, { "item": "bed", "x": [ 60, 60 ], "y": [ 23, 23 ], "chance": 80 }, { "item": "homebooks", "x": [ 39, 39 ], "y": [ 26, 27 ], "chance": 75 }, @@ -469,8 +469,8 @@ ], "place_items": [ { "item": "field", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 7, 15 ], "y": [ 37, 42 ], "chance": 95 }, - { "item": "building_rubble", "x": [ 7, 15 ], "y": [ 39, 47 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 7, 15 ], "y": [ 37, 42 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 7, 15 ], "y": [ 39, 47 ], "chance": 95 }, { "item": "novels", "x": [ 14, 15 ], "y": [ 38, 40 ], "chance": 70 }, { "item": "manuals", "x": [ 10, 11 ], "y": [ 38, 43 ], "chance": 70 }, { "item": "textbooks", "x": [ 7, 7 ], "y": [ 37, 45 ], "chance": 70 }, @@ -483,9 +483,9 @@ { "item": "pawn", "x": [ 22, 22 ], "y": [ 25, 32 ], "chance": 70 }, { "item": "pawn", "x": [ 18, 22 ], "y": [ 24, 24 ], "chance": 70 }, { "item": "pawn", "x": [ 6, 14 ], "y": [ 24, 24 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 24, 39 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 24, 47 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 50 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 24, 39 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 24, 47 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 50 }, { "item": "field", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 70 } ] }, @@ -557,14 +557,14 @@ { "item": "home_hw", "x": [ 12, 15 ], "y": [ 20, 21 ], "chance": 75 }, { "item": "home_hw", "x": [ 10, 13 ], "y": [ 18, 18 ], "chance": 75 }, { "item": "home_hw", "x": [ 9, 9 ], "y": [ 18, 23 ], "chance": 75 }, - { "item": "building_rubble", "x": [ 11, 23 ], "y": [ 0, 23 ], "chance": 98 }, - { "item": "building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 63, 71 ], "y": [ 20, 23 ], "chance": 80 }, - { "item": "building_rubble", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 11, 23 ], "y": [ 0, 23 ], "chance": 98 }, + { "item": "collapsed_building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 63, 71 ], "y": [ 20, 23 ], "chance": 80 }, + { "item": "collapsed_building_rubble", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 }, { "item": "traveler", "x": [ 12, 12 ], "y": [ 47, 47 ], "chance": 70 }, { "item": "traveler", "x": [ 15, 15 ], "y": [ 47, 47 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 16, 23 ], "y": [ 24, 35 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 16, 23 ], "y": [ 24, 35 ], "chance": 95 }, { "item": "allclothes", "x": [ 16, 18 ], "y": [ 39, 40 ], "chance": 70 }, { "item": "allclothes", "x": [ 11, 23 ], "y": [ 43, 43 ], "chance": 70 }, { "item": "allclothes", "x": [ 12, 12 ], "y": [ 31, 36 ], "chance": 70 }, @@ -579,15 +579,15 @@ { "item": "home_hw", "x": [ 14, 17 ], "y": [ 26, 26 ], "chance": 70 }, { "item": "bed", "x": [ 13, 14 ], "y": [ 47, 47 ], "chance": 80 }, { "item": "bed", "x": [ 16, 17 ], "y": [ 47, 47 ], "chance": 80 }, - { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 24, 43 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 24, 43 ], "chance": 70 }, { "item": "traveler", "x": [ 64, 64 ], "y": [ 30, 30 ], "chance": 70 }, { "item": "traveler", "x": [ 64, 67 ], "y": [ 35, 35 ], "chance": 70 }, { "item": "traveler", "x": [ 56, 56 ], "y": [ 37, 37 ], "chance": 70 }, { "item": "traveler", "x": [ 53, 56 ], "y": [ 42, 42 ], "chance": 70 }, { "item": "allclothes", "x": [ 55, 60 ], "y": [ 47, 47 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 59, 70 ], "y": [ 26, 30 ], "chance": 95 }, - { "item": "building_rubble", "x": [ 48, 59 ], "y": [ 33, 39 ], "chance": 95 }, - { "item": "building_rubble", "x": [ 48, 56 ], "y": [ 24, 32 ], "chance": 60 }, + { "item": "collapsed_building_rubble", "x": [ 59, 70 ], "y": [ 26, 30 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 48, 59 ], "y": [ 33, 39 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 48, 56 ], "y": [ 24, 32 ], "chance": 60 }, { "item": "bed", "x": [ 65, 66 ], "y": [ 30, 31 ], "chance": 80 }, { "item": "bed", "x": [ 54, 55 ], "y": [ 37, 38 ], "chance": 80 }, { "item": "bed", "x": [ 65, 66 ], "y": [ 37, 38 ], "chance": 80 } @@ -769,9 +769,9 @@ "terrain": { "&": "t_gas_pump", "D": "t_floor", "Z": "t_floor", "l": "t_floor", "u": "t_floor", "z": "t_floor" }, "toilets": { "t": { } }, "place_items": [ - { "item": "building_rubble", "x": [ 15, 23 ], "y": [ 0, 18 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 70 }, - { "item": "building_rubble", "x": [ 48, 63 ], "y": [ 0, 18 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 15, 23 ], "y": [ 0, 18 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 48, 63 ], "y": [ 0, 18 ], "chance": 70 }, { "item": "field", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 }, { "item": "homebooks", "x": [ 21, 22 ], "y": [ 39, 39 ], "chance": 70 }, { "item": "homebooks", "x": [ 7, 7 ], "y": [ 35, 36 ], "chance": 70 }, diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/necropolisB1.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/necropolisB1.json index 01a914034..c05de6576 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/necropolisB1.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/necropolisB1.json @@ -37,7 +37,7 @@ { "item": "mask_filter", "prob": 20 }, { "group": "ammo_pocket_batteries_full", "prob": 15 }, { "item": "radio", "prob": 10 }, - { "item": "bandages", "prob": 10 }, + { "item": "bandages", "prob": 10, "count": 3 }, { "item": "knife_combat", "prob": 20 }, { "item": "vest", "prob": 15 }, { "item": "cleansuit", "prob": 20 }, diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/nested/basement_nested.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/nested/basement_nested.json index 25ff4b646..c4221d619 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/nested/basement_nested.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/nested/basement_nested.json @@ -106,7 +106,11 @@ "type": "palette", "id": "basement_utility_nest_palette", "terrain": { " ": "t_null", ".": "t_thconc_floor", "g": "t_thconc_floor", "f": "t_thconc_floor" }, - "furniture": { "g": "f_water_heater", "f": "f_home_furnace", "a": [ "f_air_conditioner", "f_null", "f_counter" ] }, + "furniture": { + "g": [ "f_water_heater", "f_water_heater_family" ], + "f": "f_home_furnace", + "a": [ "f_air_conditioner", "f_null", "f_counter" ] + }, "liquids": { "g": { "liquid": "water_clean", "amount": [ 0, 100 ] } } }, { diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/office_doctor.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/office_doctor.json index 64194d72a..e223dbf70 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/office_doctor.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/office_doctor.json @@ -192,8 +192,7 @@ { "item": "laptop", "x": 4, "y": 4, "chance": 85 }, { "item": "television", "x": 15, "y": 6, "chance": 95 }, { "item": "soap", "x": 5, "y": 18, "chance": 95 }, - { "item": "anesthetic_kit", "x": 13, "y": 18, "chance": 75, "ammo": 100 }, - { "group": "autodoc_installation_programs", "x": 21, "y": [ 16, 18 ], "chance": 75, "repeat": 3 } + { "item": "anesthetic_kit", "x": 13, "y": 18, "chance": 75, "ammo": 100 } ], "vehicles": { "W": { "vehicle": "swivel_chair", "chance": 50, "status": 1 } } } diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/petstore.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/petstore.json index 2b6ff678f..c492e324c 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/petstore.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/petstore.json @@ -7,47 +7,49 @@ "object": { "fill_ter": "t_floor", "rows": [ - "...........2rrrrrrrrrrrr", - ".|--6666--|2yrrryrrryrrr", - ".| 4 |2yrrryrrryrrr", - ".|-- CC I72yrrryrrryrrr", - ".| 4 CC I72yrrryrrryrrr", - ".|-- CC I72yrrryrrryrrr", - ".| 4 |2yyyyyyyyyyyy", - ".|-- --|2222222222222", - ".| 4 |....322223...", - ".--+-11----------gg-|...", - ".| CCC7 oo |...", - ".| A A 7 oo |...", - ".| A A A A -6gg6|...", + "...........2rrrrrrrrrrr2", + ".|||6666|||2rrryrrryrrr2", + ".|#4 |2rrryrrryrrr2", + ".||| CC I62rrryrrryrrr2", + ".|#4 CC I62rrryrrryrrr2", + ".||| CC I62rrryrrryrrr2", + ".|#4 |2yyyyyyyyyyy2", + ".||| |||2222222222222", + ".|#4 4#|2222222222222", + ".|||| ||||||||||gg||...", + ".| CCC6 oo |...", + ".| A A A 6 oo |...", + ".| A A A A |6gg6|...", ".1 A A A A oo |...", ".| A A oo 1...", ".| dddd dddd1...", ".1 K K L d Fd dF d|...", - ".| K K L ---.", + ".| K K L |||.", ".| CC CC AA|.", - ".|+--+-- |.", - ".| B| G| KAAAAAAAAAAA|.", - ".|------+-------------|.", - ".....RrrrrrUUrrUrrrr....", - ".....rrrrrrrUrrrrrrr...." + ".|+||+|| |.", + ".|-B|#G| KAAAAAAAAAAA|.", + ".|||||||+||||||||||||||.", + "......~~~~~UU~UU~~......", + "......~~~~~~~~~~~~......" ], "terrain": { " ": "t_floor", + "#": "t_thconc_floor", + "G": "t_thconc_floor", + "-": "t_linoleum_white", + "B": "t_linoleum_white", + "U": "t_concrete", + "~": "t_concrete", "+": "t_door_c", - "-": "t_wall_w", - ".": "t_grass", + ".": "t_region_groundcover_urban", "1": "t_window", "2": "t_sidewalk", - "3": "t_tree_young", "4": "t_chaingate_c", "5": "t_wall_wood", - "6": "t_wall_glass_h", - "7": "t_wall_glass_v", + "6": "t_wall_glass", "g": "t_door_glass_c", "o": "t_carpet_green", "r": "t_pavement", - "U": "t_pavement", "y": "t_pavement_y", "|": "t_wall_w", "R": "t_gutter_downspout" @@ -59,7 +61,7 @@ "G": "f_locker", "H": "f_table", "I": "f_sofa", - "d": "f_desk", + "d": "f_counter", "K": "f_counter", "L": "f_counter", "U": [ "f_dumpster", "f_recycle_bin" ] @@ -73,13 +75,17 @@ "K": { "item": "petstore_misc", "chance": 20 }, "d": { "item": "office", "chance": 50 }, "U": { "item": "trash", "chance": 20 } - } + }, + "place_loot": [ + { "group": "cash_register_random", "x": [ 11, 13 ], "y": 15 }, + { "group": "cash_register_random", "x": [ 16, 18 ], "y": 15 } + ] } }, { "method": "json", "object": { - "fill_ter": "t_floor", + "fill_ter": "t_thconc_floor", "furniture": { "#": "f_counter", "&": "f_trashcan", @@ -92,7 +98,7 @@ "Y": "f_locker", "G": "f_locker", "t": "f_toilet", - "p": [ "f_datura", "f_bluebell", "f_mutpoppy", "f_dahlia", "f_flower_tulip", "f_chamomile", "f_flower_spurge", "f_lily" ], + "p": "f_region_flower", "{": "f_rack", "K": "f_birdbath" }, @@ -105,7 +111,8 @@ { "chance": 25, "item": "vet_utility", "x": 14, "y": 14 }, { "chance": 25, "item": "vet_utility", "x": 14, "y": 12 }, { "chance": 25, "item": "vet_utility", "x": 11, "y": [ 11, 12 ] }, - { "chance": 20, "item": "magazines", "x": 7, "y": 11 } + { "chance": 20, "item": "magazines", "x": 7, "y": 11 }, + { "item": "cash_register_random", "x": 7, "y": [ 7, 11 ], "chance": 100 } ], "items": { "{": { "item": "petstore_shelves", "chance": 20 }, @@ -117,10 +124,10 @@ "place_monster": [ { "monster": "mon_dog_zombie_rot", "x": 21, "y": 7 }, { "monster": "mon_dog_skeleton", "x": 22, "y": 7 }, - { "monster": "mon_dog", "x": 22, "y": 10 }, - { "monster": "mon_dog", "x": 22, "y": 11 }, - { "monster": "mon_cat", "x": 21, "y": 13 }, - { "monster": "mon_cat", "x": 22, "y": 13 }, + { "group": "GROUP_PET_DOGS", "x": 22, "y": 10 }, + { "group": "GROUP_PET_DOGS", "x": 22, "y": 11 }, + { "group": "GROUP_PET_CATS", "x": 21, "y": 13 }, + { "group": "GROUP_PET_CATS", "x": 22, "y": 13 }, { "monster": "mon_dog_zombie_rot", "x": 14, "y": 19 }, { "monster": "mon_dog_zombie_rot", "x": 20, "y": 21 } ], @@ -145,55 +152,29 @@ "_|....................S|", "_|....................#|", "_||D||e|||||||||||||||||", - "_|t.|...a&HH|ddd_d____dC", - "4|..|.......Ddddd__d___C", - "_|#S|YYG....|dd_d_d__d_C", - "_||||||||w|||ccccccccccc", - "________________________" + "_|t.|...a&HH|ddddddddduC", + "4|..|.......DddddddddduC", + "_|#S|YYG....|ddddddddduC", + "_||||||||w|||CCCCCCCCCCC", + "________uuu_____________" ], "terrain": { "+": "t_door_glass_c", - "_": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt", "t_shrub" ], - "p": "t_grass", - "K": "t_grass", + "_": "t_region_groundcover_urban", + "p": "t_region_groundcover_urban", + "K": "t_region_groundcover_urban", "-": "t_wall_glass", - ".": "t_floor", - "C": "t_chainfence_v", + ".": "t_thconc_floor", + "C": "t_chainfence", "D": "t_door_c", - "c": "t_chainfence_h", - "d": "t_dirt", + "d": "t_region_soil", "e": "t_door_c_peep", "s": "t_sidewalk", - "u": "t_underbrush", + "u": "t_region_shrub_decorative", "w": "t_window", "|": "t_brick_wall", "4": "t_gutter_downspout", - "9": [ - "t_tree_blackjack", - "t_tree_walnut", - "t_tree_chestnut", - "t_tree_beech", - "t_tree_hazelnut", - "t_tree_cottonwood", - "t_tree", - "t_tree_elm", - "t_tree_dead", - "t_tree_apple", - "t_tree_pear", - "t_tree_cherry", - "t_tree_peach", - "t_tree_apricot", - "t_tree_plum", - "t_tree_mulberry", - "t_tree_elderberry", - "t_tree_pine", - "t_tree_birch", - "t_tree_willow", - "t_tree_maple", - "t_tree_hickory", - "t_tree_almond", - "t_tree_pecan" - ] + "9": "t_region_tree" } }, "om_terrain": "s_petstore_2", diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/pharmacy.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/pharmacy.json index aba2d5583..1112f47de 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/pharmacy.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/pharmacy.json @@ -2,14 +2,14 @@ { "type": "mapgen", "method": "json", - "om_terrain": [ "s_pharm" ], + "om_terrain": "s_pharm", "weight": 30000, "object": { - "fill_ter": "t_floor", + "fill_ter": "t_linoleum_gray", "rows": [ - "________________________", - "________________________", - "|--OOOO----**----OOOO--|", + ",,,,,,,,,______,,,,,,,,,", + ",,,,,,,,,______,,,,,,,,,", + "|||OOOO||||**||||OOOO|||", "|8 #................y|", "|8 #..12...23...35...|", "|8 #..12...23...35...|", @@ -25,24 +25,22 @@ "|f......999999999999...|", "|y.....................|", "|..................ffff|", - "|*!!!!!!!!!------------|", + "|*!!!!!!!!!|||||||||||||", "| y h y y|LLLLLLLL|y%|", "| * + |", "|LLLLLLLLLL|LLLLLLLL| &|", - "|----------------------|", + "||||||||||||||||||||||||", ",,,,,,,,,,,,,,,,,,,,,,4," ], "terrain": { - ",": [ [ "t_grass", 4 ], "t_dirt" ], - "-": "t_wall_w", - "|": "t_wall_w", - "_": "t_pavement", - ".": "t_floor", - " ": "t_floor", - "!": "t_reinforced_glass", + ",": "t_region_groundcover_urban", + "_": "t_concrete", "O": "t_reinforced_glass_shutter_open", - "g": "t_reinforced_glass", + "!": "t_reinforced_glass", "+": "t_door_c", + "|": "t_wall_w", + ".": "t_linoleum_gray", + " ": "t_linoleum_gray", "4": "t_gutter_downspout", "*": "t_door_locked_alarm" }, @@ -76,60 +74,62 @@ "9": { "item": "pet_food", "chance": 20 }, "L": { "item": "drugs_pharmacy", "chance": 20 } }, - "vehicles": { ".": { "vehicle": "shopping_cart", "chance": 1, "status": 1 } }, - "place_monsters": [ { "monster": "GROUP_PHARM", "x": [ 2, 7 ], "y": [ 10, 17 ], "chance": 2 } ] + "vehicles": { ".": { "vehicle": "shopping_cart", "chance": 1 } }, + "place_monsters": [ { "monster": "GROUP_PHARM", "x": [ 2, 7 ], "y": [ 10, 17 ], "chance": 2 } ], + "place_loot": [ { "group": "cash_register_random", "x": 5, "y": [ 4, 7 ] } ] } }, { "type": "mapgen", "method": "json", - "om_terrain": [ "s_pharm_1" ], + "om_terrain": "s_pharm_1", "weight": 30000, "object": { - "fill_ter": "t_floor", + "fill_ter": "t_linoleum_white", "rows": [ - "________________________", - "________________________", - "|--OOOO--|______________", - "|m +______________", - "|l +______________", - "| |--OOO---OOO--|", + "..........__............", + "...::::...__............", + "|||OOOO|||__............", + "|m +__............", + "|l +__:::...:::...", + "| |||OOO|||OOO|||", "|#### |", "| # 12 5555555 f|", "|8 # 12 6666666 f|", "|8 # 12 f|", - "|8 # 12 7777777 f|", + "|8 c# 12 7777777 f|", "|8 # 12 3339999 f|", "|7 # b|", "| # b|", "| bby| |ybb|", - "|--+---+------%%%%%----|", + "|||+|||+||||||%%%%%|||||", "|T S| &| w |", - "|----- &| |", + "|||||| &| |", "|G + L |", "|Gc y| y|xxxxxxxxxxxxx|", - "|-----*----------------|", - "______________UU,,│ ^f^^^^^^^ Bf ^^ f ^ │,,>│ │ ", + " │ │,,,@^^f^E^E^E^ f ^^ f ^^^^^@,,,│ │ ", + " │ │,,,│ ^f^^^^^^^ Bf ^^ f ^ │,,,│ │ ", + " │ │││││ ^f^E^E^E^ Bf ^^ f ^ │││││ │ ", + " │ ^f^^^^^^^ BB BB f ^^ f ^ │ ", + " │ ^^^^^ffffffffffHHffffffffffffffffffffffHHff ^^^^^^^^ │ ", + " │ ^ f ^^^H^^^^^^^^^^^^^^^^^^H^^^^f ^ │ ", + " │ ||@||||||||||||| ^^ ||||ww||||||||ww|||| ^^ |||||||||||||@|| │ ", + " │ |q,,Sé|,r|,|Sbb| ^^ |q,,,,,,,,,,,,,,,,q| ^^ |bbS|,|r,|éS,,,| │ ", + " │ |A,,,,=,r|,@,,T| ^^ |,,huuh,,,,,,huuh,,| ^^ |T,,@,|r,=,,,,A| │ ", + " │ |At,|=||||,||||| ^^ w,,huuh,,,,,,huuh,,w ^^ |||||,||||=|t,A| │ ", + " │ |A,,|,,hd|,@,,T| ^^ w,,huuh,,,,,,huuh,,w ^^ |T,,@,|d,h,|,,A| │ ", + " │ |,,,|166d|,|Sbb| ^^ w,,huuh,,,,,,huuh,,w ^^ |bbS|,|d661|q,,| │ ", + " │ ||@|||||||@||||| ^^ |,,,,,,,,,,,,,,,,,,| ^^ |||||@|||||||@|| │ ", + " │ |,,,,,,,,,,,,,q| ^^ |,,huuh,,,,,,huuh,,| ^^ |q,,,,,,,,,,,,,| │ ", + " │ w>,,,,,,,,,,,,,+^^^^+,,huuh,,,,,,huuh,,+^^^^+,,,,,,,,,,,,,>w │ ", + " │ w>,,,,,,,,,,,,,+^^^^+,,huuh,,,,,,huuh,,+^^^^+,,,,,,,,,,,,,>w │ ", + " │ |,,,,,,,,,,,,,,| ^^ |,,huuh,,,,,,huuh,,| ^^ |,,,,,,,,,,,,,,| │ ", + " │ ||||||-GG-||||||fHHf|,,,,,,,,,,,,,,,,,,|fHHf||||||-GG-|||||| │ ", + " │ |TS,,-,,,,-,,bb| ^^ |||ccccc|||||||||||| ^^ |TS,,-,,,,-,,bb| │ ", + " │ w,,,,Z,,,,Z,,,,w ^^ wq,,,,,,,,|zzzzzzzz| ^^ w,,,,Z,,,,Z,,,,w │ ", + " │ |bb,,-,,,,-,,ST| ^^ |,,óóóóö,,|,,,,,,,,| ^^ |bb,,-,,,,-,,ST| │ ", + " │ ||||||,,,,|||||| ^^^+,,ÖÖüüÜ,,+,zzzzzz,| ^^ ||||||,,,,|||||| │ ", + " │ |TS,,-,,,,-,,bb| ^^ |,,,,,,,,,|,,,,,,,,| ^^ |TS,,-,,,,-,,bb| │ ", + " │ w,,,,Z,,,,Z,,,,w ^^ wnnnnöeeee|zzzzzzzz| ^^ w,,,,G,,,,Z,,,,w │ ", + " │ |bb,,-,,,,-,,ST| ^^ |||||||||||||||||||| ^^ |bb,,-,,,,-,,ST| │ ", + " │ ||||||,,,,|||||| ^^ w,C,C,C,+<|WWWWWWWWw ^^ ||||||,,,,|||||| │ ", + " │ |TS,,-,,,,-,,bb| ^^ |,C,C,C,|||,,,,,,,,| ^^ |TS,,-,,,,-,,bb| │ ", + " │ w,,,,Z,,,,Z,,,,w ^^^+,,,,,,,,4|y,ttttt,+^^^ w,,,,Z,,,,Z,,,,w │ ", + " │ |bb,,-,,,,-,,ST| ^^ |,C,C,C,h4|,,,,,,,,| ^^ |bb,,-,,,,-,,ST| │ ", + " │ ||||||,,,,|||||| ^^ w,C,C,C,d4|DDDDDDDDw ^^ ||||||,,,,|||||| │ ", + " │ |TS,,-,,,,-,,bb| ^^ |||||||||||||||||||| ^^ |TS,,-,,,,-,,bb| │ ", + " │ w,,,,G,,,,Z,,,,w ^^ |lll,,,lll|o,,ooo,,| ^^ w,,,,Z,,,,Z,,,,w │ ", + " │ |bb,,-,,,,-,,ST| ^^^+,,,,,,,,,|o,,,,,,,+^^^ |bb,,-,,,,-,,ST| │ ", + " │ ||||||,,,,||||||ffff|,,,,P,,,,|,,,,,,,,|ffff||||||,,,,|||||| │ ", + " │ |TS,,-,,,,-,,bb| wM,h,P,,,L|th,,,,htw |TS,,-,,,,-,,bb| │ ", + " │ w,,,,Z,,,,G,,,,w w,,,,P,h,,|th,,,,htw w,,,,Z,,,,G,,,,w │ ", + " │ |bb,,-,,,,-,,ST| |,,,hP,,,,|,,,,,,,,| |bb,,-,,,,-,,ST| │ ", + " │ ||||||,,,,|||||| |M,,,Ph,,L|th,,,,,,| ||||||,,,,|||||| │ ", + " │ |TS,,-,,,,-,,bb| w,,,,P,,,,|th,,,,htw |TS,,-,,,,-,,bb| │ ", + " │ w,,,,Z,,,,Z,,,,w w,,,,,,,,,|,,,hh,htw w,,,,Z,,,,G,,,,w │ ", + " │ |bb,,-,,q,-,,ST| |NNN,,,NNN|ooottooo| |bb,,-,q,,-,,ST| │ ", + " │ |||||||||||||||| ||||www|||||||ww|||| |||||||||||||||| │ ", + " │ │ ", + " │ │ ", + " │ │ ", + " │ │ ", + " ││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││ ", + " " + ], + "palettes": [ "prison_palette" ], + "place_loot": [ + { "item": "mess_tray", "x": 29, "y": 42, "repeat": [ 1, 20 ] }, + { "item": "tin_plate", "x": 30, "y": 42, "repeat": [ 1, 20 ] }, + { "item": "plastic_spoon", "x": 31, "y": 42, "repeat": [ 1, 20 ] }, + { "item": "plastic_knife", "x": 31, "y": 42, "repeat": [ 1, 20 ] }, + { "item": "plastic_fork", "x": 31, "y": 42, "repeat": [ 1, 20 ] }, + { "item": "tin_cup", "x": 32, "y": 42, "repeat": [ 1, 20 ] }, + { "item": "napkin", "x": 33, "y": 42, "repeat": [ 1, 20 ] } + ], + "place_monsters": [ + { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 15, 23 ], "y": [ 20, 23 ], "density": 0.3 }, + { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 14, 15 ], "y": [ 50, 55 ], "density": 0.3 }, + { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 58, 59 ], "y": [ 50, 55 ], "density": 0.3 }, + { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 29, 44 ], "y": [ 32, 40 ], "density": 0.3 }, + { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 29, 35 ], "y": [ 56, 63 ], "density": 0.3 }, + { "monster": "GROUP_ZOMBIE_COP", "x": [ 54, 59 ], "y": [ 10, 15 ], "density": 0.2 }, + { "monster": "GROUP_ZOMBIE_COP", "x": [ 57, 64 ], "y": [ 31, 35 ], "density": 0.2 }, + { "monster": "GROUP_ZOMBIE_COP", "x": [ 7, 14 ], "y": [ 31, 35 ], "density": 0.2 } + ], + "place_vehicles": [ + { "vehicle": "prison_vehicles", "x": 7, "y": [ 12, 14 ], "chance": 33, "rotation": 90 }, + { "vehicle": "prison_vehicles", "x": 15, "y": [ 12, 14 ], "chance": 33, "rotation": 90 }, + { "vehicle": "prison_vehicles", "x": 31, "y": [ 12, 14 ], "chance": 33, "rotation": 90 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "prison_1_b_3", "prison_1_b_2", "prison_1_b_1" ], [ "prison_1_b_6", "prison_1_b_5", "prison_1_b_4" ], [ "prison_1_b_9", "prison_1_b_8", "prison_1_b_7" ] ], - "weight": 25000, + "weight": 250, "object": { - "fill_ter": "t_dirt", + "fill_ter": "t_thconc_floor", "rows": [ - " sss________________sss ", - " sss________________sss ", - " sss________________sss ", - " sss________________sss ", - " sss________________sss ", - " sssssssssssssssssssssss________________sss ", - " s_____________________________________s|-wwww----------------ww--ww--| ", - " s_____________________________________s|hhh,,,+,,,,,,,,,,,,+,,,,,,,,,| ", - " 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,5555,l|,|,,,,,,,| ", - " s____Y____Y____Y____Y____Y____Y_______s|,,,,,,,,,,|l,,,,,,l|G|------G| ", - " 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,5555,l|hth,hth|,| ", - " sssssssssssssssssssssssssssssssssssssss|55555,,,,,|l,,,,,,l|,,,,,,,|,| ", - " |---------------------------------------------@@-------@-----R-G-R--G| ", - " | f ss f s s s| ", - " | sssssssssssssssssssssssssssssssssHssssHsssssssssssssssssss| ", - " | sffffffffffffffffffffffffffffffffffHHff s | ", - " | sf 3333 f ss f s | ", - " | |---| sf X X X X f ss f s |---| | ", - " | |>^^| sf f ss f s |^^>| | ", - " | |^^^@ssf3 f ss f sssss@^^^| | ", - " | |lll| sf3 f ss f s |lll| | ", - " | |---| sf3 f ss f s |---| | ", - " | sf3 3333 f ss f s | ", - " | sssssffffffffffHHffffffffffffffffffffffHHff ssssssss | ", - " | s f sssHssssssssssssssssssHssssf s | ", - " | |-@------------| ss |--RRR--------RRR--| ss |------------@-| | ", - " | |,,,,,,,,,,,lll| ss |,,,,,,,,,,,,,,,,,,| ss |lll,,,,,,,,,,,| | ", - " | |,,,,,htth,,,,l| ss |,,htth,,,,,,htth,,| ss |l,,,,htth,,,,,| | ", - " | |,,,,,htth,,,,l| ss R,,htth,,,,,,htth,,R ss |l,,,,htth,,,,,| | ", - " | |,,,,,htth,,,,l| ss R,,htth,,,,,,htth,,R ss |l,,,,htth,,,,,| | ", - " | |,,,,,,,,,,,lll| ss R,,htth,,,,,,htth,,R ss |lll,,,,,,,,,,,| | ", - " | |-G-ggggggg----| ss |,,,,,,,,,,,,,,,,,,| ss |---ggggggg--G-| | ", - " | |,,,,,,,,,,,,,,| ss |,,htth,,,,,,htth,,| ss |,,,,,,,,,,,,,,| | ", - " | R>,,,,,,,,,,,,,+ssss+,,htth,,,,,,htth,,+ssss+,,,,,,,,,,,,,>R | ", - " | R>,,,,,,,,,,,,,+ssss+,,htth,,,,,,htth,,+ssss+,,,,,,,,,,,,,>R | ", - " | |,,,,,,,,,,,,,,| ss |,,htth,,,,,,htth,,| ss |,,,,,,,,,,,,,,| | ", - " | |----|BGGB|----|fHHf|,,,,,,,,,,,,,,,,,,|fHHf|----|BGGB|----| | ", - " | |T,,,B,,,,B,,bb| ss |--ccccc--|--------| ss |T,,,B,,,,B,,bb| | ", - " | R,,,,Z,,,,Z,,,,R ss R,,,,,,,,,|zzzzzzzz| ss R,,,,Z,,,,Z,,,,R | ", - " | |bb,,B,,,,B,,,T| ss |,,ttttt,,|,,,,,,,,| ss |bb,,B,,,,B,,,T| | ", - " | |----|,,,,|----| sss+,,ttttt,,+,,,,,,,,| ss |----|,,,,|----| | ", - " | |T,,,B,,,,B,,bb| ss |,,,,,,,,,|,,,,,,,,| ss |T,,,B,,,,B,,bb| | ", - " | R,,,,Z,,,,Z,,,,R ss RSnnSceeee|zzzzzzzz| ss R,,,,G,,,,Z,,,,R | ", - " | |bb,,B,,,,B,,,T| ss |---------|--------| ss |bb,,B,,,,B,,,T| | ", - " | |----|,,,,|----| ss R,b,b,b,+<|W,W,W,W,R ss |----|,,,,|----| | ", - " | |T,,,B,,,,B,,bb| ss |,b,b,b,|-|,,,,,,,,| ss |T,,,B,,,,B,,bb| | ", - " | R,,,,Z,,,,Z,,,,R sss+,,,,,,,,m|,tttttt,+sss R,,,,Z,,,,Z,,,,R | ", - " | |bb,,B,,,,B,,,T| ss |,b,b,b,,m|,,,,,,,,| ss |bb,,B,,,,B,,,T| | ", - " | |----|,,,,|----| ss R,b,b,b,,m|D,D,D,D,R ss |----|,,,,|----| | ", - " | |T,,,B,,,,B,,bb| ss |---------|--------| ss |T,,,B,,,,B,,bb| | ", - " | R,,,,G,,,,Z,,,,R ss |,LLLLLL,C|o,,ooo,,| ss R,,,,Z,,,,Z,,,,R | ", - " | |bb,,B,,,,B,,,T| sss+,,,,,,,,C|o,,,,,,,+sss |bb,,B,,,,B,,,T| | ", - " | |----|,,,,|----|ffff|,,,CC,,hC|,,,,,,,,|ffff|----|,,,,|----| | ", - " | |T,,,B,,,,B,,bb| R,,,CC,,,C|th,,,,htR |T,,,B,,,,B,,bb| | ", - " | R,,,,Z,,,,G,,,,R R,,,CC,,,C|th,,,,htR R,,,,Z,,,,G,,,,R | ", - " | |bb,,B,,,,B,,,T| |,,,CC,,,C|,,,,,,,,| |bb,,B,,,,B,,,T| | ", - " | |----|,,,,|----| |,,,CC,,hC|th,,,,,,| |----|,,,,|----| | ", - " | |T,,,B,,,,B,,bb| R,,,,,,,,C|th,,,,htR |T,,,B,,,,B,,bb| | ", - " | R,,,,Z,,,,Z,,,,R R,h,,,h,,C|,,,hh,htR R,,,,Z,,,,G,,,,R | ", - " | |bb,,B,,,,B,,,T| |CCCCCCCCC|ooottooo| |bb,,B,,,,B,,,T| | ", - " | |----|----|----| |--RR-RR------RR---| |----|----|----| | ", - " | | ", - " | | ", - " | | ", - " | | ", - " |--------------------------------------------------------------------| ", - " ", "########################################################################", "########################################################################", "########################################################################", @@ -94,54 +131,54 @@ "########################################################################", "########################################################################", "########################################################################", - "#########################################################|--|###########", - "#########################################################|^>|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "#########################################################|^^|###########", - "########|-------------------------------------------------^^---|########", - "########|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|########", - "########|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|########", - "########|^^|-----------------------|^^|---------------------|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "########|^^|#######################|^^|#####################|^^|########", - "#######||^^|######################||^^|#####################|^^||#######", - "#######|P^^|######################|P^^|#####################|^^P|#######", - "#######|^^^|######################|^^^|#####################|^^^|#######", - "#######|424|######################|424|#####################|424|#######", - "#######|---|######################|---|#####################|---|#######", + "#########################################################││││###########", + "#########################################################│,>│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "#########################################################│,,│###########", + "########││││││││││││││││││││││││││││││││││││││││││││││││││,,││││########", + "########│,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,│########", + "########│,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,│########", + "########│,,│││││││││││││││││││││││││,,│││││││││││││││││││││││,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "########│,,│#######################│,,│#####################│,,│########", + "#######││,,│######################││,,│#####################│,,││#######", + "#######│É,,│######################│É,,│#####################│,,É│#######", + "#######│,,,│######################│,,,│#####################│,,,│#######", + "#######│929│######################│929│#####################│929│#######", + "#######│││││######################│││││#####################│││││#######", "########################################################################", "########################################################################", "########################################################################", "########################################################################", "########################################################################", + "###############################│││││││││################################", + "###############################│m,,>,,m│################################", + "###############################│m,,,,,m│################################", + "###############################│m,,,,,m│################################", + "###############################│m,,,,,m│################################", + "###############################│m,,,,,m│################################", + "###############################│││││││││################################", "########################################################################", - "##############################|-----------|#############################", - "##############################|m,,,,>,,,,m|#############################", - "##############################|m,,,,,,,,,m|#############################", - "##############################|m,,,,,,,,,m|#############################", - "##############################|m,,,,,,,,,m|#############################", - "##############################|m,,,,,,,,,m|#############################", - "##############################|-----------|#############################", "########################################################################", "########################################################################", "########################################################################", @@ -160,47 +197,11 @@ "########################################################################" ], "palettes": [ "prison_palette" ], - "terrain": { - "2": "t_concrete", - "4": "t_concrete", - "@": "t_door_metal_pickable", - "R": "t_window_bars", - "^": "t_concrete", - "P": "t_concrete", - "Y": "t_pavement_y", - "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" }, - "items": { - "l": [ - { "item": "prison_weapons", "chance": 30 }, - { "item": "prison_armor", "chance": 30 }, - { "item": "cop_torso", "chance": 20 }, - { "item": "cop_pants", "chance": 20 }, - { "item": "cop_shoes", "chance": 20 } - ], - "C": [ { "item": "hand_tools", "chance": 40 } ], - "L": [ { "item": "hand_tools", "chance": 40 } ], - "P": [ { "item": "tools_plumbing", "chance": 50, "repeat": [ 1, 3 ] } ] - }, - "liquids": { "4": { "liquid": "water_clean", "amount": [ 0, 100 ] } }, - "place_monsters": [ - { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 15, 23 ], "y": [ 20, 23 ], "density": 0.3 }, - { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 14, 15 ], "y": [ 50, 55 ], "density": 0.3 }, - { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 58, 59 ], "y": [ 50, 55 ], "density": 0.3 }, - { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 29, 44 ], "y": [ 32, 40 ], "density": 0.3 }, - { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 29, 35 ], "y": [ 56, 63 ], "density": 0.3 }, - { "monster": "GROUP_ZOMBIE_PRISON", "x": [ 39, 44 ], "y": [ 87, 95 ], "density": 0.3 }, - { "monster": "GROUP_ZOMBIE_COP", "x": [ 54, 59 ], "y": [ 10, 15 ], "density": 0.2 }, - { "monster": "GROUP_ZOMBIE_COP", "x": [ 53, 64 ], "y": [ 32, 34 ], "density": 0.2 }, - { "monster": "GROUP_ZOMBIE_COP", "x": [ 9, 20 ], "y": [ 32, 34 ], "density": 0.2 } - ], "place_monster": [ - { "monster": "mon_zombie_technician", "x": [ 8, 10 ], "y": [ 110, 115 ], "chance": 50 }, - { "monster": "mon_zombie_technician", "x": [ 33, 35 ], "y": [ 110, 115 ], "chance": 50 }, - { "monster": "mon_zombie_technician", "x": [ 57, 59 ], "y": [ 110, 115 ], "chance": 50 } - ], - "place_vehicles": [ { "vehicle": "bus_prison", "x": 8, "y": 12, "chance": 25, "rotation": 180 } ] + { "monster": "mon_zombie_technician", "x": [ 8, 10 ], "y": [ 38, 43 ], "chance": 100 }, + { "monster": "mon_zombie_technician", "x": [ 33, 35 ], "y": [ 38, 43 ], "chance": 100 }, + { "monster": "mon_zombie_technician", "x": [ 57, 59 ], "y": [ 38, 43 ], "chance": 100 } + ] } }, { @@ -211,97 +212,85 @@ [ "prison_1_2f_6", "prison_1_2f_5", "prison_1_2f_4" ], [ "prison_1_2f_9", "prison_1_2f_8", "prison_1_2f_7" ] ], - "weight": 25000, + "weight": 250, "object": { + "fill_ter": "t_thconc_floor", "rows": [ - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5444444444444444444444444444445A", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1.............................1A", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1.............................1A", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1.............................1A", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1.............................1A", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1.............................1A", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1.............................1A", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1.............................1A", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1.............................1A", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1.............................1A", - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1.............................1A", - "A|--------------------------------------------------------------------|A", - "A|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|A", - "A|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|A", - "A|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|A", - "A|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|A", - "A|AAAA|^^^|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|^^^|AAAA|A", - "A|AAAA^<^^^AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA^^^<^AAAA|A", - "A|AAAA^^^^^AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA^^^^^AAAA|A", - "A|AAAA^^^^^AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA^^^^^AAAA|A", - "A|AAAA|^^^|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|^^^|AAAA|A", - "A|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|A", - "A|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|A", - "A|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|A", - "A|AAAA|--------------|AAAA54444444444444444445AAAA|--------------|AAAA|A", - "A|AAAA|^6^6^6^^6^6^6^|AAAA1..................1AAAA|^6^6^6^^6^6^6^|AAAA|A", - "A|AAAA|^^^^^^^^^^^^^^|AAAA1..................1AAAA|^^^^^^^^^^^^^^|AAAA|A", - "A|AAAA|^^^^^^^^^^^^^^|AAAA1..................1AAAA|^^^^^^^^^^^^^^|AAAA|A", - "A|AAAA|^^^^^^^^^^^^^^|AAAA1..................1AAAA|^^^^^^^^^^^^^^|AAAA|A", - "A|AAAA|^S^S^^^^^^S^S^|AAAA1..................1AAAA|^S^S^^^^^^S^S^|AAAA|A", - "A|AAAA|------^^------|AAAA1..................1AAAA|------^^------|AAAA|A", - "A|AAAA|,,,,,,,,,,,,,,|AAAA1..................1AAAA|,,,,,,,,,,,,,,|AAAA|A", - "A|AAAAR<,,,,,,,,,,,,,RAAAA1..................1AAAAR,,,,,,,,,,,,,>,,|################################", - "################################|,,,,,,|################################", - "################################|,,,,,,|################################", - "################################|,,,,,,|################################", - "################################|,,,,,,|################################", - "################################|-6LL--|################################", - "##################################|,,|##################################", - "##############--------------------|,,|##################################", - "##############|R,R|b,T|b,T|b,T|b,T|,,|##################################", - "#######--------R,R|b,,|b,,|b,,|b,,|,,|##################################", - "#######|,,,,,,,,,R|,Z,|,Z,|,Z,|,Z,|,,|##################################", - "#######|,,,,,,,,,,|,,,|,,,|,,,|,,,|,,|##################################", - "#######|,,gggggg,,|BGB|BGB|BGB|BGB|,,|##################################", - "#######|,,g,,,,g,,|,,,,,,,,,,,,,,,|,,|##################################", - "#######|,,M,/?,g,,M,,,,,,,,,,,,,,,M,,|##################################", - "#######|,,g,,,,g,,|,,,,,,,,,,,,,,,|,,|##################################", - "#######|,,gggggg,,|BGB|BGB|BGB|BGB|MM|##################################", - "#######|,,,,,,,,,,|,,,|,,,|,,,|,,,|<<|##################################", - "#######|,,,,,,,,,R|,C,|,C,|,C,|,C,----##################################", - "#######--------R,R|b,,|b,,|b,,|b,,|#####################################", - "##############|R,R|b,T|b,T|b,T|b,T|#####################################", - "##############--------------------|#####################################" + "################################│││││││#################################", + "################################│,,>,,│#################################", + "################################│,,,,,│#################################", + "################################│,,,,,│#################################", + "################################│,,,,,│#################################", + "################################│,,,,,│#################################", + "################################││O=│││#################################", + "##################################│,│###################################", + "##############│││││││││││││││││││││,│###################################", + "##############│2,2│b,T│b,T│b,T│b,T│,│###################################", + "#######││││││││2,2│b,S│b,S│b,S│b,S│,│###################################", + "#######│,,,,,,,,,2│,á,│,á,│,á,│,á,│,│###################################", + "#######│,,,,,,,,,,│,,,│,,,│,,,│,,,│,│###################################", + "#######│,,gggggg,,│-G-│-G-│-G-│-G-│,│###################################", + "#######│,,g,,,,g,,│,,,,,,,,,,,,,,,│,│###################################", + "#######│,,+,c?,g,,+,,,,,,,,,,,,,,,+,│###################################", + "#######│,,g,,,,g,,│,,,,,,,,,,,,,,,│,│###################################", + "#######│,,gggggg,,│-G-│-G-│-G-│-G-│+│###################################", + "#######│,,,,,,,,,,│,,,│,,,│,,,│,,,│<│###################################", + "#######│,,,,,,,,,2│,Á,│,Á,│,Á,│,Á,│││###################################", + "#######││││││││2,2│b,S│b,S│b,S│b,S│#####################################", + "##############│2,2│b,T│b,T│b,T│b,T│#####################################", + "##############│││││││││││││││││││││#####################################", + "########################################################################" ], "palettes": [ "prison_palette" ], - "furniture": { "?": "f_autodoc", "/": "f_autodoc_couch", "R": "f_rack" }, - "terrain": { - "L": "t_door_metal_locked", - "M": "t_door_metal_c", - "6": "t_card_science", - "7": "t_floor", - "/": "t_floor", - "?": "t_floor", - "C": "t_floor", - "Z": "t_floor" - }, + "terrain": { "=": "t_door_metal_locked", "+": "t_door_metal_c", "O": "t_card_science" }, + "furniture": { "?": "f_autodoc", "c": "f_autodoc_couch", "2": "f_glass_fridge" }, "items": { - "l": [ - { "item": "prison_weapons", "chance": 30 }, - { "item": "prison_armor", "chance": 30 }, - { "item": "cop_torso", "chance": 20 }, - { "item": "cop_pants", "chance": 20 }, - { "item": "cop_shoes", "chance": 20 } - ], - "R": [ - { "item": "dissection", "chance": 60 }, - { "item": "bionics_common", "chance": 10 }, - { "item": "mut_lab", "chance": 5 } - ] + "2": [ { "item": "dissection", "chance": 60 }, { "item": "mut_lab", "chance": 5 } ], + "?": { "item": "autodoc_supplies", "chance": 100 } }, - "monster": { "Z": { "monster": "mon_zombie_prisoner" }, "C": { "monster": "mon_broken_cyborg" } } + "monster": { "á": { "group": "GROUP_ZOMBIE_PRISON" }, "Á": { "monster": "mon_broken_cyborg" } } } }, { @@ -475,222 +436,95 @@ [ "prison_alcatraz_10", "prison_alcatraz_9", "prison_alcatraz_8", "prison_alcatraz_7", "prison_alcatraz_6" ], [ "prison_alcatraz_15", "prison_alcatraz_14", "prison_alcatraz_13", "prison_alcatraz_12", "prison_alcatraz_11" ] ], - "weight": 25000, + "weight": 250, "object": { - "fill_ter": "t_region_groundcover_barren", + "fill_ter": "t_thconc_floor", "rows": [ "````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````", "```````````````````````````ZZZZZZZZ!!{!!ZZZZZZZZZZZZ!!{!!ZZZ````````````````````````````````````````````````````````````", "```````````````````````````Z!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Z````````````````````````````````````````````````````````````", - "```````````````````````````Z!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Z````````````````````````````````````````````````````````````", - "```````````````````````````Z!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````````````````````````", - "`````````````````~~~~~~~~~~Z!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!~~~~~~~~~~~~~~``````````````````````````````````", + "```````````````````````````Z!I!!I!!!!!!!!!!!!!!!!!!!!!!!!!!Z*```````````````````````````````````````````````````````````", + "```````````````````````````Z!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*~~~~~~~~~~~````````````````````````````````````````````````", + "`````````````````~~~~~~~~~~Z!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!**~~~~~~~~~~~~~~~~~~~~~~~~``````````````````````````````````", "```````````~~~~~~~~~~~~~~~~Z!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!**************~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`````````````````", "`````````~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*** ** ** ~~~~~~~~~~````````", "`````~~~~~~~~~~~~~~****** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ** *** * ********* ~~~~~~``````", - "````~~~~~~~~~~~~~~ **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *** * *** *** *** ** ~~~~~~~~~~``", - "``````~~~~~~~~~~~ ** ^^^ ********************************** ^^^^ *********************** ***** ~~~~~~`", - "````~~~~~~~~~ ***** ^^^ ******* ****** ****** ** ^^^^^^^^^^^^^^^^^^^^^*****************************~~~~~`", - "```~~~~~~ **** ^^^ *%%%%%%%%%%%%%%%%%%%%%% ** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^)~~~~`", - "`````~~~~ ** ^^^ %______((((((((______% ***** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^)~~~~`", - "````~~~~~ ** ^^^ %_____(________(_____% ******************************^^^^^^^^^^^^^^^^^^^^^^^^^^^)~~~~`", - "```~~~~~~~ ** ^^^ %____(_(______(_(____% $$$$$$$$$$$$$$$$$$$$**$$$$$$$$$$$w$$$$$w$$$$$$$$$$$*****^^^)~~~~`", - "```~~~~~~~~ *** ^^^ %___(__(______(__(___% /$o,,,,h$11111$o,,dh$//$I...+...+...C$C...+...+...I$/ ***^^^)~~~``", - "```~~~~~~~~~ ** ^^^ %___(__(______(__(___% $1,,,dd$,,,,,$o,,d,$ wC.hd$...$dh.I$I.hd$...$dh.Cw **^^^)~~~``", - "```~~~~~~~~~~ * ^^^ %___(__((((((((__(___% g1,,,,,$$$?$$$Y,,,,g $$$$$$...$$$$$$$$$$$...$$$$$$ **^^^)~~~```", - "````~~~~~~~~~ ** ^^^ %___(__(______(__(___% $Y,,,,,?,,,,,?,,111$ $I...+...$A..t....o$...$$000$ **^^^)~~~````", - "```~~~~~~~~~~ ***** ^^^^ %___(__(______(__(___% $$$$$$$$,,,,,$$$$$$$ wC.hd$...$A..t....o$...$$..0$**^^^)~~~~````", - "``~~~~~~~~~~ ********^^^ %____(_(______(_(____% $o,,,,1$,,,,,$S,=,T$ $$$$$$...$A.......J$...}G..0$*^^^)~~~~~````", - "```~~~~~~~~~ ***'******^^^%_____(________(_____% gdd,,,,?,,,,,$,,$$$$ $I...+...$$$$$+$$$$$...$$..0$*^^^)~~~~~````", - "````~~~~~~~~~ **'' ****^^^%______((((((((______% $h,,,,Y$,,,,,=,,=,T$ wC.hd$................a$$000$*^^^)~~~~~````", - "```~~~~~~~~~~ ''****** ^^^%%%%%%%%%%%^%%%%%%%%%% $$$$$$$$$$+$$$$$$$$$ $$$$$$$$$$$$$$+$$$$$$$$$$$$$$**^^)~~~~~~```", - "```~~~~~~~~ *** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*^^)~~~~~~```", - "```~~~~~~~~ **|-----|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|-----|^*^^)~~~~~~~``", - "````~~~~~~~~ ** v>,,,,|%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%^^^%%V%%%%|,,,,>|^*^^)))))~~```", - "``~~~~~~~~~~ ** |,,,,,@''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''%^^^G''''''@,,,,,|^**^^^^^)~~~``", - "```~~~~~~~~ * |,,,,,|BBBBBBBBBBVBBBBBBBBBBVBBBBBBBBBBVBBBBBBBBBBVBBBBBBBBBBVBBBBBBBBBGBBBVBBBB|,,,,,|^^**^^^^) ~~``", - "```~~~~~~~~ *x*|--@--| ^^^ |--@--|^^****^^) ~~~`", - "``~~~~~~~~ * %'B ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ B'% *^^****^^) ~~`", - "```~~~~~~~ ** %'B |--------------------|--|------------|GB|-------------|--gg--|-g@g-|-gg-| B'% *^^****^^) ~~`", - "```~~~~~~ ***%'B /|,,,,,,,,,,,,,,,,,,,,|,,|222zzzzeeeee|^^|b,,,=,,111,7q|qd,,,o|<,,,<|d,,A|/ B'% *^^****^^) ~~`", - "`````~~~~ **%'B |,,33333,,,,,,33333,,|,,+,,,,,,,,,,,,@^^|b,,c|o,,,,,dd|hd,,h,?,,,,,gdh,A| B'% *^^****^^) ~`", - "````~~~~~ ***** %'B |,,ttttt,,,,,,ttttt,,|,,+,,,,,,,,,,,,@^^|----|o,,,,,,h|,d,,,,|,,,,,|1,,Y| B'% *^^****^^) ~~`", - "```~~~~~ *** V'V |,,33333,,,,,,33333,,|,,|222zzzzeeeee|99|b,,,=,,,,,,,Y|,,,11Y|3,,,,|--?-| V'V *^^****^^) ~~`", - "``~~~~~~ ** %'B |,,,,,,,,,,,,,,,,,,,,|,,|----|-----|----|b,,c|o,,,S|?-|------|3,,,,,,,,,| B'% *^^****^^) ~~`", - "``~~~~~~~ * %'B |,,33333,,|--cccccc--|,,|T,,,G,,,,,G,,,T|----|o,,,4|,,+,hgh,,|3,,,3|--=-| B'% *^^****^^) ~~`", - "```~~~~~~~ * %'B |,,ttttt,,|22,,,,,,qq|,,|bb,,B,,,,,B,,bb|b,,,=,,,,4|,,|--|--=|,,,,3|T,,,| B'% *^^^^^^^^)~~~``", - "```~~~~~~~~ *** %'B |,,33333,,|,,,,,,,,,,+,,|----|,,,,,|----|b,,c|--?--|,,+,hgh=,=,,,,3|q,,S| B'% *^^^^^^^^)~~~``", - "``~~~~~~~~~ ** %'B |,,,,,,,,,|,,,,,,,,,,|,,|T,,,G,,,,,G,,,T|----|m,,,m|,,|--|--=|,,,,,|----| B'% *******)))~~~``", - "```~~~~~~~~ ** %'B |,,,,,,,,,|SScceeccnn|,,|bb,,B,,,,,B,,bb|5,,,?,,mmm|,,+,hgh,,|,,,,,=,,,y| B'% ~~~~~~``", - "`````~~~~~ ******** V'V |--BBGBB--|----------|BG|----|BBGBB|----|----------|BG|------|--+--|----| V'V ~~~~```", - "````~~~~~ *** **** %'B g,,,,,,,,,,,,,,,,,,,,B,,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,g B'% ~~~~````", - "`````~~~~ ** %'B g,,,,,,,,,,,,,,,,,,,,G,,G,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,g B'% ~~~~`````", - "`````~~~~~ ** %'B |--BBGBB--|BG|-BBGBB-|BG|----|BBGBB|----|----|BBGBB|----|----|BBGBB|----| B'% ~~~~`````", - "````~~~~~~~ ** %'B |X,,,,,,,3|,,|X,,,,,l|,,|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T| B'% ~~~~`````", - "```~~~~~~~~~ ** %'B |X,,333,,3|,,|X,,,,,l|,,|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb| B'% ~~~~~~````", - "``~~~~~~~~~~ ** %'B |X,,,,,,,3|,,|X,,,,,l|,,|----|,,,,,|----|----|,,,,,|----|----|,,,,,|----| B'% ~~~~~`````", - "`~~~~~~~~~~~~ *** V'V |----+----|,,|---+---|,,|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T| V'V ~~~~~```", - "````~~~~~~~~~~ ** %'B |6,,,,,,,6|,,|L,,,,,P|,,|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb| B'% ~~~````", - "`````~~~~~~~~~ * %'B |6,,,6,,,6|,,|,,,,,,P|,,|----|-----|----|----|,,,,,|----|----|,,,,,|----| B'% ~~~~```", - "````~~~~~~~~~~ ** %'B |6,,,6,,,6|,,|M,,,,,N|,,|fffffffffffffff|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T| B'% ~~~~````", - "````~~~~~~~~~ * %'B |---------|,,|,,,,,,N|,,+fffffffffffffff|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb| B'% ~~~~````", - "```~~~~~~~~~~ ** %'B |DDDDD,yy,B,,|-------|+-|ffffEff888ffKff|----|,,,,,|----|----|,,,,,|----| B'% ~~~~````", - "``````~~~~~~ *** %'B |,,,,,,,,,G,,|U|U|U|U|,,|fffffffffffffff|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T| B'% ~~~`````", - "```~~~~~~~~ ** V'V |WWWWW,yy,B,,|H|H|H|H|,,|ffffEff888ffEff|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb| V'V ~~~~````", - "`````~~~~~ ** %'B /|---------|--|,,,,,,,,,,|fffffffffffffff|----|,,,,,|----|----|,,,,,|----| B'% ~~~~`````", - "```~~~~~~ ** %'B B::;;;:::::::@,,,,,,,,,h|ffffEff888ffEff|T,,,B,,,,,B,,,T|T,,,B,,,,,B,,,T| B'% ~~~~~`````", - "```~~~~~~ ***** %'B B::::::::::::|ScRRRQQQdd|fffffffffffffff|bb,,G,,,,,G,,bb|bb,,G,,,,,G,,bb|/ B'% ~~~~~`````", - "`~~~~~~~ * %'B VBBBBGBBBVBBB|----------|BBBBVBBBBBVBBBB|----|-----|----|----|-----|----| B'% ~~~~~~``````", - "````~~~~*** %'B / / B'% ~~~~~~````````", - "```~~~~~~ * |--@--| |--@--|~~~~~~````````", - "```~~~~~~** |,,,,,|BBBBBBBBBBVBBBBBBBBBBVBBBBBBBBBBVBBBBBBBBBBVBBBBBBBBBBVBBBBBBBBBBVBBBBBBB|,,,,,|~~~~~`````````", - "````~~~~*** |,,,,,@'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''@,,,,,|~~~```````````", - "```~~~~***~~~~~ |>,,,,|%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%|,,,,>|~~~```````````", - "```~~~~~**~~~~~~~~ |-----|#########################################################################|-----|~~~```````````", + "````~~~~~~~~~~~~~~ **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *** * *** *** *** ** ~~~~~~~~~~``", + "``````~~~~~~~~~~~ ** ^^^********************************** ^^^^ *********************** ***** ~~~~~~`", + "````~~~~~~~~~ ***** ^^^ ******* ****** ****** ** ^^^^^^^^^^^^^^^^^^^^^*****************************~~~~~`", + "```~~~~~~ **** ^^^* _______________ ** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^)~~~~`", + "`````~~~~ ** ^^^ _____(((((_____ ***** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^)~~~~`", + "````~~~~~ ** ^^^ ____(_____(____ ******************************^^^^^^^^^^^^^^^^^^^^^^^^^^^)~~~~`", + "```~~~~~~~ ** ^^^ ___(_(___(_(___ ||||||||||||||||||||**|||||||||||w|||||w|||||||||||*****^^^)~~~~`", + "```~~~~~~~~ *** ^^^ __(__(___(__(__ /|o,q,,h|11111|o,,dh|//|$...+...+...C|C...+...+...J|/ ***^^^)~~~``", + "```~~~~~~~~~ ** ^^^ __(__(___(__(__ |1,,,dd|,,,,,|o,,d,| wC.hd|...|dh.$|$.hd|...|S..J| **^^^)~~~``", + "```~~~~~~~~~~ * ^^^ __(__(((((__(__ w1,,,,,|||?|||Y,,,qw ||||||..q|||||||||||..r|||||| **^^^)~~~```", + "````~~~~~~~~~ ** ^^^ __(__(___(__(__ |Y,,,,,?,,,,,?,,111| |$...+...AAAA..é|T+....||000| **^^^)~~~````", + "```~~~~~~~~~~ ***** ^^^ __(__(___(__(__ ||||||||,,,,,||||||| wC.hd|h........ó|||S...||..0|**^^^)~~~~````", + "``~~~~~~~~~~ ********^^^ ___(_(___(_(___ |o,,q,1|,,,,,|S,=,T| ||||||h...tt...ü|T+....}G..0|*^^^)~~~~~````", + "```~~~~~~~~~ ***'*****^^^^ ____(_____(____ wdd,,,,?,,,,,|,,|||| |$...+....h.....||||...||..0|*^^^)~~~~~````", + "````~~~~~~~~~ **'' ****^^^^ _____(((((_____ |h,,,,Y|,,,,,=,,=,T| wC.hd|oooo...Y........a||000|*^^^)~~~~~````", + "```~~~~~~~~~~ ''****** ^^^^^ _______________ ||||||||||+||||||||| ||||||||||||||+||||||||||||||**^^)~~~~~~```", + "```~~~~~~~~ *** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*^^)~~~~~~```", + "```~~~~~~~~ **│││││ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^│││││^^*^^)~~~~~~~``", + "````~~~~~~~~ ** v>,,│%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%^^^%%V%%%%%│,,>│^^*^^)))))~~```", + "``~~~~~~~~~~ ** │,,,@'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''%^^^G'''''''@,,,│^^**^^^^^)~~~``", + "```~~~~~~~~ ** │,,,│----------V----------V----------V----------V----------V----------G---V-----│,,,│^^^**^^^^) ~~``", + "```~~~~~~~~ *x* ││@││ ^^^ ││@││*^^****^^) ~~~`", + "``~~~~~~~~ * %'- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -'% *^^****^^) ~~`", + "```~~~~~~~ ** %'- ││││www││││││││www││││││││││││││││││││G-│││││││││││││││││gg││││g@g│││gg││ -'% *^^****^^) ~~`", + "```~~~~~~ ***%'- /│q,,,,,,,,,,,,,,,,,,,│,,│eeeeöözzzzzz│^^│b,,,=,,111,7q│qd,,,o│,,,,,│d,,A│/ -'% *^^****^^) ~~`", + "`````~~~~ **%'- │,,BBBBB,,,,,,BBBBB,,│,,+,,,,,,,,,,,,@^^│b,,c│o,,,,,dd│hd,,h,?,,,,,gdh,A│ -'% *^^****^^) ~`", + "````~~~~~ ***** %'- │,,uuuuu,,,,,,uuuuu,,│,,+,,,,,,,,,,,,@^^││││││o,,,,,,h│,d,,,,│,,,,,│1,,Y│ -'% *^^****^^) ~~`", + "```~~~~~ *** V'V │,,BBBBB,,,,,,BBBBB,,│,,│zzzzzzzzzzzz│99│b,,,=,,,,,,,Y│,,,11Y│B,,,,│││?││ V'V *^^****^^) ~~`", + "``~~~~~~ ** %'- │,,,,,,,,,,,,,,,,,,,,│,,│││││││││││││││││b,,c│o,,,S│?│││││││││B,,,,,,,,,│ -'% *^^****^^) ~~`", + "``~~~~~~~ * %'- │,,BBBBB,,│+││ccccc│││,,│b,TS-,,,,,-ST,b││││││o,,,4│,,+,hgh,,│B,,,B│││=││ -'% *^^****^^) ~~`", + "```~~~~~~~ * %'- │,,uuuuu,,│,,,,,,,,,q│,,│b,,,G,,,,,G,,,b│b,,,=,,,,4│,,││││││,│,,,,B│T,,,│ -'% *^^^^^^^^)~~~``", + "```~~~~~~~~ *** %'- │,,BBBBB,,│,ÜÜüünnn,,+,,││││││,,,,,││││││b,,c│││?│││,,+,hgh,,=,,,,B│q,,S│ -'% *^^^^^^^^)~~~``", + "``~~~~~~~~~ ** %'- │,,,,,,,,,│,,,,,,,,,,│,,│b,TS-,,,,,-ST,b││││││m,,,m│,,││││││,│,,,,,││││││ -'% *******)))~~~``", + "```~~~~~~~~ ** %'- │,,,,,,,,,│eeööÖÖóóóó│,,│b,,,G,,,,,G,,,b│5,,,?,,mmm│,,+,hgh,,│,,,,,=,,,r│ -'% ~~~~~~``", + "`````~~~~~ ******** V'V │││--G--││││││││││││││-G││││││--G--│││││││││││││││││-G││││││││││+││││││││ V'V ~~~~```", + "````~~~~~ *** **** %'- w,,,,,,,,,,,,,,,,,,,,-,,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,w -'% ~~~~````", + "`````~~~~ ** %'- w,,,,,,,,,,,,,,,,,,,,G,,G,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,w -'% ~~~~`````", + "`````~~~~~ ** %'- │││--G--│││-G││--G--││-G││││││--G--│││││││││││--G--│││││││││││--G--││││││ -'% ~~~~`````", + "````~~~~~~~ ** %'- │X,,,,,,,B│,,│X,,,,,l│,,│b,TS-,,,,,-ST,b│b,TS-,,,,,-ST,b│b,TS-,,,,,-ST,b│ -'% ~~~~`````", + "```~~~~~~~~~ ** %'- │X,,BBB,,B│,,│X,,,,,l│,,│b,,,G,,,,,G,,,b│b,,,G,,,,,G,,,b│b,,,G,,,,,G,,,b│ -'% ~~~~~~````", + "``~~~~~~~~~~ ** %'- │X,,,,,,,B│,,│X,,,,,l│,,││││││,,,,,│││││││││││,,,,,│││││││││││,,,,,││││││ -'% ~~~~~`````", + "`~~~~~~~~~~~~ *** V'V │││││+│││││,,││││+││││,,│b,TS-,,,,,-ST,b│b,TS-,,,,,-ST,b│b,TS-,,,,,-ST,b│ V'V ~~~~~```", + "````~~~~~~~~~~ ** %'- │J,,,,,,,J│,,│L,,,,,P│,,│b,,,G,,q,,G,,,b│b,,,G,,,,,G,,,b│b,,,G,,,,,G,,,b│ -'% ~~~````", + "`````~~~~~~~~~ * %'- │J,,,J,,,J│,,│,,,,,,P│,,│││││││www││││││││││││,,,,,│││││││││││,,,,,││││││ -'% ~~~~```", + "````~~~~~~~~~~ ** %'- │J,,,J,,,J│,,│M,,,,,N│,,│^^^^^^^^^^^^^^^│b,TS-,,,,,-ST,b│b,TS-,,,,,-ST,b│ -'% ~~~~````", + "````~~~~~~~~~ * %'- │││││││││││,,│,,,,,,N│,,+^^^^^^^^^^^^^^^│b,,,G,,,,,G,,,b│b,,,G,,,,,G,,,b│ -'% ~~~~````", + "```~~~~~~~~~~ ** %'- │DDDDD,yy,-,,│││││││││+││^^^E^^888^^E^^^││││││,,,,,│││││││││││,,,,,││││││ -'% ~~~~````", + "``````~~~~~~ *** %'- │,,,,,,,,,G,,│U│U│U│U│,,│^^^^^^^^^^^^^^^│b,TS-,,,,,-ST,b│b,TS-,,,,,-ST,b│ -'% ~~~`````", + "```~~~~~~~~ ** V'V /│WWWWW,yy,-,,│H│H│H│H│,,│^^^E^^888^^E^^^│b,,,G,,,,,G,,,b│b,,,G,,,,,G,,,b│ V'V ~~~~````", + "`````~~~~~ ** %'-fH││││││││││││││,,,,,,,,,,│^^^^^^^^^^^^^^^││││││,,,,,│││││││││││,,,,,││││││ -'% ~~~~`````", + "```~~~~~~ ** %'-:::::::::::::::@,,,,,,,,,h│^^^E^^888^^E^^^│b,TS-,,,,,-ST,b│b,TS-,,,,,-ST,b│ -'% ~~~~~`````", + "```~~~~~~ ***** %'-::::::ßßß::::::│ScRRRQQQdd│^^^^^^^^^^^^^^^│b,,,G,,q,,G,,,b│b,,,G,,q,,G,,,b│/ -'% ~~~~~`````", + "`~~~~~~~ * %'-:::::::::::::::││││││││││││fffffffffffffff│││││││www│││││││││││││www│││││││ -'% ~~~~~~``````", + "````~~~~*** %'-:::::::::::::::H / / -'% ~~~~~~````````", + "```~~~~~~ * ││@││::::::::::::::f ││@││~~~~~~`````````", + "```~~~~~~** │,,,│----------V----------V----------V----------V----------V----------V---------│,,,│~~~~~``````````", + "````~~~~*** │,,,@'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''@,,,│~~~````````````", + "```~~~~***~~~~~ │>,,│%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%%V%%%%%%%%%│,,>│~~~````````````", + "```~~~~~**~~~~~~~~ │││││###########################################################################│││││~~~````````````", "`````````*~~~~~~~~~~~~~~~~########################################################~~~~###########~~~~~~~~~~`````````````", - "```````***``~~~~~~~~~~~~~~~~~################~~~~~~~~~~~~~~~~###################~~~~~~~~####~~~~~~``````````````````````", - "```````**```````````````~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```````````````````````````", - "````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````" + "```````***``~~~~~~~~~~~~~~~~~################~~~~~~~~~~~~~~~~###################~~~~~~~~####~~~~~~~~~~``````````````````", + "```````**```````````````~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```````````````````````", + "```````````````````````````~~~~~~~~~~~~~~~~~~~~````````````~~~~~~~~~~~~~~~~~~~~~~~````~~~~~~~~``````````````````````````" ], - "palettes": [ "prison_palette" ], - "terrain": { - " ": [ - [ "t_region_groundcover_urban", 20 ], - [ "t_region_groundcover_barren", 5 ], - [ "t_region_shrub", 2 ], - [ "t_region_tree", 1 ] - ], - ".": [ "t_floor" ], - ":": [ "t_region_groundcover_barren" ], - "'": [ "t_region_groundcover_barren" ], - ";": [ "t_trunk" ], - "#": [ "t_sand" ], - "~": [ "t_water_sh" ], - "*": [ "t_region_groundcover_barren" ], - "!": [ "t_dock" ], - "{": [ "t_dock" ], - "^": [ "t_concrete" ], - "$": [ "t_brick_wall" ], - "?": [ "t_door_locked" ], - "@": [ "t_door_metal_pickable" ], - "}": [ "t_door_metal_locked" ], - "(": [ "t_pavement_y" ], - ")": [ "t_concrete_railing" ], - "1": [ "t_floor" ], - "3": [ "t_floor" ], - "2": [ "t_floor" ], - "4": [ "t_floor" ], - "5": [ "t_floor" ], - "6": [ "t_floor" ], - "7": [ "t_floor" ], - "8": [ "t_concrete" ], - "9": [ "t_concrete" ], - "0": [ "t_floor" ], - "q": [ "t_floor" ], - "a": [ "t_floor" ], - "A": [ "t_floor" ], - "C": [ "t_floor" ], - "f": [ "t_concrete" ], - "E": [ "t_concrete" ], - "I": [ "t_floor" ], - "J": [ "t_floor" ], - "K": [ "t_concrete" ], - "L": [ "t_floor" ], - "M": [ "t_floor" ], - "N": [ "t_floor" ], - "O": [ "t_floor" ], - "P": [ "t_floor" ], - "Q": [ "t_floor" ], - "R": [ "t_floor" ], - "U": [ "t_concrete" ], - "v": [ "t_wall_wood" ], - "V": [ "t_column" ], - "x": [ "t_dirt" ], - "X": [ "t_floor" ], - "Y": [ "t_floor" ], - "Z": [ "t_fence_rope" ], - "<": [ "t_floor" ], - "`": [ [ "t_water_dp", 20 ], "t_water_sh" ], - "/": [ "t_gutter_downspout" ] - }, - "furniture": { - "a": [ "f_console" ], - "q": [ "f_trashcan" ], - "y": [ "f_locker" ], - "A": [ "f_sofa" ], - "C": [ "f_bed" ], - "I": [ "f_dresser" ], - "J": [ "f_pinball_machine" ], - "K": [ "f_floor_canvas" ], - "L": [ "f_drill_press" ], - "M": [ "f_heavy_lathe" ], - "N": [ "f_utility_shelf" ], - "O": [ "f_shredder" ], - "P": [ "f_workbench" ], - "Q": [ "f_cupboard" ], - "R": [ "f_locker" ], - "U": [ "f_fiber_mat" ], - "x": [ "f_boulder_medium" ], - "X": [ "f_rack_coat" ], - "Y": [ "f_rack_coat" ], - "#": [ [ "f_null", 30 ], "f_boulder_medium" ], - "*": [ [ "f_boulder_large", 20 ], "f_boulder_medium" ], - "1": [ "f_filing_cabinet" ], - "2": [ "f_cupboard" ], - "4": [ "f_glass_fridge" ], - "5": [ "f_safe_l" ], - "6": [ "f_shower" ], - "7": [ "f_armchair" ], - "8": [ "f_bench" ], - "9": [ "f_dumpster" ], - "0": [ "f_locker" ], - "{": [ "f_bitts" ] - }, - "items": { - "0": [ { "item": "prison_weapons", "chance": 50 }, { "item": "prison_armor", "chance": 50 } ], - "I": [ { "item": "cop_torso", "chance": 33 }, { "item": "cop_pants", "chance": 33 }, { "item": "cop_shoes", "chance": 33 } ], - "N": [ { "item": "hand_tools", "chance": 50 }, { "item": "tools_carpentry", "chance": 50 } ], - "l": [ { "item": "hand_tools", "chance": 50 }, { "item": "tools_carpentry", "chance": 50 } ], - "C": { "item": "bed", "chance": 70 }, - "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": "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 }, - "r": { "item": "cleaning", "chance": 50 }, - ":": { "item": "animalshelter_toys", "chance": 5 }, - "1": { "item": "office_paper", "chance": 50 }, - "4": [ { "item": "softdrugs", "chance": 50 }, { "item": "harddrugs", "chance": 50 } ], - "5": { "item": "alcohol_bottled_canned", "chance": 95, "repeat": [ 1, 3 ] }, - "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_zhark", "chance": 1 }, - ".": { "monster": "mon_zombie_cop", "chance": 1 }, - "^": { "monster": "mon_zombie_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_graffiti": [ { "text": "Dufresne was here", "x": 19, "y": 22 } ], - "computers": { - "a": { - "name": "Armory Access", - "security": 3, - "options": [ { "name": "Open Armory Door", "action": "unlock" } ], - "failures": [ { "action": "shutdown" }, { "action": "alarm" } ] - } - } + "palettes": [ "prison_alcatraz_palette" ], + "place_loot": [ + { "item": "mess_tray", "x": 40, "y": 38, "repeat": [ 1, 20 ] }, + { "item": "tin_plate", "x": 41, "y": 38, "repeat": [ 1, 20 ] }, + { "item": "plastic_spoon", "x": 42, "y": 38, "repeat": [ 1, 20 ] }, + { "item": "plastic_knife", "x": 42, "y": 38, "repeat": [ 1, 20 ] }, + { "item": "plastic_fork", "x": 42, "y": 38, "repeat": [ 1, 20 ] }, + { "item": "tin_cup", "x": 43, "y": 38, "repeat": [ 1, 20 ] }, + { "item": "napkin", "x": 44, "y": 38, "repeat": [ 1, 20 ] } + ], + "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 } ] } }, { @@ -719,8 +553,9 @@ "prison_alcatraz_11_2f" ] ], - "weight": 25000, + "weight": 250, "object": { + "fill_ter": "t_thconc_floor", "rows": [ " ", " ", @@ -737,79 +572,69 @@ " ", " ", " ", - " 54444444444444444445 54444444444444444444444444445 ", - " 1..................1 1...........................1 ", - " 1..................1 1...........................1 ", - " 1..................1 1...........................1 ", - " 1..................1 1...........................1 ", - " 1..................1 1...........................1 ", - " 1..................1 1...........................1 ", - " 1..................1 1...........................1 ", - " 1..................1 1...........................1 ", - " 14444444444444444441 14444444444444444444444444441 ", + " 5------------------5 5---------------------------5 ", + " -..................- -...........................- ", + " -..................- -...........................- ", + " -..................- -...........................- ", + " -..................- -...........................- ", + " -..................- -...........................- ", + " -..................- -...........................- ", + " -..................- -...........................- ", + " -..................- -...........................- ", + " -------------------- ----------------------------- ", " ", - " |-w-w-| |-w-w-| ", - " w<,,,,w(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((w,,,,>mmmm|mmmm<", - ".F..W|W|WWWWWWWWWWWmZmmL", - ".F..W W,,Bb,,Bb,ggWZZmmL", - ".F..W W,,,,,,,?,,,|mmmmL", - ".F..W W,,?,,,,,,,,|mmmmL", - ".F..W W,,Bb,,Bb?,,WmmmmL" - ], - "palettes": [ "p_resort_palette_main_floor" ], - "place_signs": [ - { "signage": "Private property. No trespassing!", "x": 4, "y": 0 }, - { "signage": "Private property. No trespassing!", "x": 18, "y": 0 } - ], - "place_items": [ - { "chance": 40, "item": "alcohol", "x": 7, "y": 13, "repeat": [ 2, 8 ] }, - { "chance": 50, "item": "snacks", "x": 7, "y": 13, "repeat": [ 3, 5 ] }, - { "chance": 15, "item": "snacks", "x": 7, "y": 13, "repeat": [ 3, 5 ] }, - { "chance": 50, "item": "groce_condiment", "x": 11, "y": 13 }, - { "chance": 15, "item": "groce_condiment", "x": 7, "y": 13, "repeat": [ 3, 5 ] }, - { "chance": 50, "item": "crate_wine", "x": 6, "y": 14, "repeat": [ 1, 3 ] }, - { "chance": 15, "item": "crate_wine", "x": 6, "y": 14, "repeat": [ 1, 2 ] }, - { "chance": 50, "item": "softdrinks_canned", "x": 6, "y": 15, "repeat": [ 3, 5 ] }, - { "chance": 50, "item": "crate_kitchen", "x": 10, "y": 15, "repeat": [ 3, 5 ] }, - { "chance": 50, "item": "behindcounter", "x": 10, "y": 17, "repeat": [ 5, 7 ] }, - { "chance": 50, "item": "foodintincan", "x": 9, "y": 18, "repeat": [ 3, 5 ] }, - { "chance": 50, "item": "cannedfood", "x": 20, "y": 19, "repeat": [ 10, 5 ] }, - { "chance": 50, "item": "cleaning", "x": 19, "y": 20, "repeat": [ 10, 5 ] }, - { "chance": 20, "item": "SUS_fridge_healthy_vegan", "x": 19, "y": 11 }, - { "chance": 20, "item": "SUS_fridge_healthy_vegan", "x": 19, "y": 12 }, - { "chance": 50, "item": "SUS_fridge_healthy_vegan", "x": 19, "y": 13 }, - { "chance": 20, "item": "SUS_fridge_healthy_vegan", "x": 19, "y": 14 }, - { "chance": 20, "item": "SUS_fridge_healthy_vegan", "x": 19, "y": 15 }, - { "chance": 20, "item": "SUS_fridge_healthy_vegan", "x": 23, "y": 11 }, - { "chance": 50, "item": "SUS_fridge_healthy_vegan", "x": 23, "y": 12 }, - { "chance": 50, "item": "SUS_fridge_healthy_vegan", "x": 23, "y": 13 }, - { "chance": 20, "item": "SUS_fridge_healthy_vegan", "x": 23, "y": 14 }, - { "chance": 20, "item": "SUS_fridge_healthy_vegan", "x": 23, "y": 15 }, - { "chance": 20, "item": "butcher_tools", "x": 9, "y": 20, "repeat": [ 1, 3 ] }, - { "chance": 20, "item": "butcher_tools", "x": 9, "y": 23, "repeat": [ 1, 3 ] }, - { "chance": 20, "item": "butcher_tools", "x": 13, "y": 20, "repeat": [ 1, 3 ] }, - { "chance": 20, "item": "butcher_tools", "x": 13, "y": 23, "repeat": [ 1, 3 ] }, - { "chance": 25, "item": "butcher_raw_meat", "x": 16, "y": 20, "repeat": [ 1, 3 ] }, - { "chance": 25, "item": "butcher_raw_meat", "x": 17, "y": 20, "repeat": [ 1, 3 ] }, - { "chance": 40, "item": "clothing_outdoor_torso", "x": 24, "y": 19 }, - { "chance": 40, "item": "clothing_outdoor_torso", "x": 24, "y": 20 }, - { "chance": 40, "item": "stash_drugs", "x": 24, "y": 20 }, - { "chance": 40, "item": "dresser", "x": 24, "y": 21, "repeat": [ 1, 3 ] }, - { "chance": 40, "item": "clothing_outdoor_torso", "x": 24, "y": 22 }, - { "chance": 40, "item": "dresser", "x": 24, "y": 23, "repeat": [ 1, 3 ] }, - { "chance": 60, "item": "stash_drugs", "x": 24, "y": 23 } - ], - "place_vehicles": [ - { "vehicle": "pickup", "x": 13, "y": 13, "chance": 75, "rotation": 270, "status": -1 }, - { "vehicle": "policesuv", "x": 11, "y": 7, "chance": 25, "rotation": 90, "status": -1 } - ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE_COP", "x": [ 4, 20 ], "y": [ 3, 9 ], "density": 0.5 }, - { "monster": "GROUP_RESORT_MIXED_STAFF", "x": [ 5, 23 ], "y": [ 11, 23 ], "density": 0.5 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_1ww" ], - "weight": 100000, - "object": { - "fill_ter": "t_metal_floor", - "rows": [ - ".F..W WWWWWWWWWWWWWW|||W", - ".F..W WBdSdS{{{{{{RRmmm]", - ".F..W WBmmmmmmmmmmmmmmm]", - ".F..W WBmBBBOBSBOBBBlmm]", - ".F..W WBmBBBOBSBOBBBlmm]", - ".F..W WBmmmmmmmmmmmmmmm]", - ".F..W WBBBBBBBBBBBBBmmm]", - ".F..W+WWWWWWWWWWWWWW#W+W", - ".F..wr#]]]##########rrrr", - ".F..wr;rrrrrrrrrrrr#rrrr", - ".F..Wr#rrrrrrrrrrrr#rrrr", - ".F..wr##############rrrr", - ".F..wrrssssssssssssrrrrr", - ".F..wrrrrrrrrrrrrrrrrrrr", - ".F..Wrrrrrccrrrrrrcccrrr", - ".F..wccrrcTTcrrrrcTTTcrr", - ".F..wTTcrcTTcrrrrcTTTcrr", - ".F..wccrrrccrrrrrrcccrrr", - ".F..Wrrrrrrrrrrrrrrrrrrr", - ".F..wccrrrccrrrrrrcccrrr", - ".F..wTTcrcTTcrrrrcTTTcrr", - ".F..wccrrcTTcrrrrcTTTcrr", - ".F..Wrrrrrccr<>|44:33|<<...a###a..a###a.....8...........-......f| F ", + " F |:|]:::]]]]|>>|44533|<<..'aaaaa..aaaaa'....8...........-......f| F ", + " F |:||---||||||||||||||||++||||||||||||||++|||..|..||||||||||||-|| F ", + "││││││││││││││││││││││││:xxxx*////////////*xx* |.....;.###ffSSff...| F ", + "││││││││││││││││││││││││|**xx**************xx* |.....#.............| F ", + "││││││││││││││││││││││││|/*7xx7N7N7xx7N7N7xxx* |.....##############| F ", + "││││││││││││││││││││││││|/*Nxxxxxxxxxxxxxxxxx* |......ssssssssssss.| F ", + "││││││││││││││││││││││││|/*7xxxxxxxxxxxxxxxxx* |...................| F ", + "││││││││││││││││││││││││|**xxxUUUU#;;#UUUUxx7* |...................| F ", + "││││││││││││││││││││││││:xxxxxUUUU#..#UUUUxxN* |..@s.s@..tt..tt...6| F ", + "││││││││││││││││││││││││|**xxxUUUU#s.#UUUUxx7* |..@s.s@..tt..tt...6| F ", + "││││││││││││││││││││││││| *xxxUUUU####UUUUxxx* |..@s.s@..tt..tt...6| F ", + "││││││││││││││││││││││││| *7xxUUUUUUUUUUUUxx7* |...................| F ", + "││││││││││││││││││││││││| *NxxUUUUUUUUUUUUxxN* |..@s.s@.TTc..cTT...| F ", + "││││││││││││││││││││││││| *7xxUUUUUUUUUUUUxx7* |..@s.s@.sTc..cTs...| F ", + "││││││││││││││││││││││││| *xxxxxx~xxxx~xxxxxx* |..@s.s@.TTc..cTT...| F ", + "││││││││││││││││││││││││| *xxxNxxxxxxxxxxNxxx* |...................| F ", + "││││││││││││││││││││││││| *xxDDDxxxxxxxxDDDxx* |.......((.....((...| F ", + "││││││││││││││││││││││││| *xxDDDxx7xx7xxDDDxx* |....'......'.......| F ", + "││││││││││││││││││││││││| *xxDDDxxxxxxxxDDDxx* |....rrrrrrrrr||qqq|| F ", + "││││││││││││││││││││││││| *xxxxxxxxxxxxxxxxxx* |....r,,,,,,,,|Teee.| F ", + "││││││││││││││││││││││││| *xx******xx******xx* |....r,C,C,9C,|T.c.Y| F ", + "││││││││││││││││││││││││| *xx*////*xx*////*xx* |....,,,,,,,,,|.....| F ", + "││││││││││││││││││││││││|||++||||||++||||||++|||..||||||||||||||-||| F ", + "││││││││││││││││││││││││+......<<......<<.........-................| F ", + "││││││││││││││││││││││││+.........................-................| F ", + "││││││││││││││││││││││││|......................|||||||..cc...|||+||| F " ], "palettes": [ "p_resort_palette_main_floor" ], + "terrain": { "│": "t_hole", "L": "t_thconc_floor" }, + "place_fields": [ { "field": "fd_bile", "x": [ 25, 46 ], "y": [ 5, 22 ], "repeat": [ 40, 60 ] } ], "items": { - "#": { "item": "bar_alcohol", "chance": 50, "repeat": [ 1, 2 ] }, - "^": [ + "N": [ { "item": "bar_table", "chance": 50, "repeat": [ 1, 3 ] }, { "item": "bar_alcohol", "chance": 25, "repeat": [ 0, 3 ] }, { "item": "stash_drugs", "chance": 25, "repeat": [ 0, 1 ] } - ] - }, - "place_monsters": [ - { "monster": "GROUP_POOL_NOKIDS", "x": [ 0, 23 ], "y": [ 0, 23 ], "repeat": [ 1, 2 ], "density": 0.5 }, - { "monster": "GROUP_RESORT_MIXED", "x": [ 0, 23 ], "y": [ 0, 23 ], "density": 0.5 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_1ss" ], - "weight": 100000, - "object": { - "fill_ter": "t_floor", - "rows": [ - "Wh hW Weeeeee !W Wh hW", - "Wh hW W&c c& !W Wh hW", - "Wh hW W&c !W Wh hW", - "WW+WW Weee!!! W WW+WW", - "Wj LW WWWWWWWW+W WL jW", - "Wj LW # WL jW", - "Wj LW ###&####&# WL jW", - "Wj LW WL jW", - "W + / / + W", - "WWWWWwwWW++WW++WWwwWWWWW", - "...xxxxxxxxxxxxxxxxxx...", - "..IxxxxxxxxxxxxxxxxxxI..", - "xxxxxxxxxxxxxxxxxxxxxxxx", - "x______________________x", - "x______________________x", - "x______________________x", - "x______________________x", - "xx____________________xx", - ".xx__________________xx.", - "..xx________________xx..", - "...xx______________xx...", - "....xx____________xx....", - ".....xx__________xx.....", - ".....xx__________xx....." - ], - "palettes": [ "p_resort_palette_main_floor" ], - "items": { - "e": { "item": "SUS_office_desk", "chance": 50 }, - "!": { "item": "SUS_office_filing_cabinet", "chance": 75 }, - "L": { "item": "dresser", "chance": 50, "repeat": [ 1, 3 ] }, - "h": { "item": "shower", "chance": 50, "repeat": [ 0, 1 ] } - }, - "place_vehicles": [ - { "vehicle": "police_pileup", "x": 4, "y": 15, "chance": 75, "rotation": 270, "status": -1 }, - { "vehicle": "police_pileup", "x": 19, "y": 20, "chance": 25, "rotation": 0, "status": 1 } - ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE_COP", "x": [ 0, 23 ], "y": [ 10, 23 ], "density": 0.5 }, - { "monster": "GROUP_RESORT_MIXED", "x": [ 0, 23 ], "y": [ 0, 9 ], "repeat": [ 0, 1 ], "density": 0.5 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_pm" ], - "weight": 100000, - "object": { - "fill_ter": "t_floor", - "rows": [ - ".....xx__________xx.....", - ".....xx__________xx.....", - ".....xx__________xx.....", - "xxxxxxx__________xxxxxxx", - "xxxxxxx__________xxxxxxx", - "________________________", - "____:_:__________:_:____", - "________________________", - "____:_:__________:_:____", - "________________________", - "xxxxxxx__________xxxxxxx", - "xxxxxxx__________xxxxxxx", - ".....xx__________xxxxxxx", - ".....xx__________xx.....", - ".....xx__________xx.....", - ".....xx__________xx.....", - ".....xx__________xx.....", - ".....xx__________xx.....", - ".....xx__________xx.....", - ".....xx__________xx.....", - "....xxx__________xxx....", - "...xxx%__________%xxx...", - "FFFFGFW==========WFGFFFF", - "...xxxx__________xxxx..." - ], - "palettes": [ "p_resort_palette_main_floor" ], - "place_signs": [ - { "signage": "Private property. No trespassing!", "x": 8, "y": 24 }, - { "signage": "Private property. No trespassing!", "x": 17, "y": 24 } - ], - "place_vehicles": [ { "vehicle": "limousine", "x": 11, "y": 18, "chance": 75, "rotation": 90, "status": -1 } ], - "place_monsters": [ { "monster": "GROUP_RESORT_MIXED", "x": [ 0, 23 ], "y": [ 0, 23 ], "repeat": [ 1, 2 ], "density": 0.75 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_1ne" ], - "weight": 100000, - "object": { - "fill_ter": "t_floor", - "rows": [ - "........................", - "FFFFFFFFFFFFFFFFFFFFFFF.", - "......................F.", - "......................F.", - "WWWWWWWWWWWWWWWWWWWW..F.", - " W..F.", - "W+WWW8WWWWWWW8WWW8WW..F.", - "L jW KW KW KW KW..F.", - "L jW i^W i^W i^W i^W..F.", - "L WaaaWaaaWaaaWaaaW..F.", - "WW WWWWWWWWWWWWWWWWW..F.", - " W 0TK0TK0TK + W..F.", - " 8 c c c WKj1W..F.", - " W WWWWW..F.", - " 8 KV j VV j WTS$W..F.", - " W KV j VV j + W..F.", - "WWWWWWWWWWWWWWWWWWWW4.F.", - "WWW$+ +$W$+ +$W2553W4.F.", - "WWWWW WWWWW WWW W4.F.", - "WWWS SWS SWBcL W..F.", - "WWWWW+WWWWW+WWWWWW|W..F.", - " W..F.", - " W..F.", - "++WWWWWWWWWWWWWWWW|W..F." - ], - "palettes": [ "p_resort_palette_main_floor" ], - "toilets": { "$": { } }, - "items": { + ], + "f": { "item": "bar_fridge", "chance": 66, "repeat": [ 2, 8 ] }, + "#": { "item": "bar_alcohol", "chance": 33, "repeat": [ 1, 3 ] }, "^": [ { "item": "bar_table", "chance": 50, "repeat": [ 1, 3 ] }, { "item": "bar_alcohol", "chance": 25, "repeat": [ 0, 3 ] }, { "item": "stash_drugs", "chance": 25, "repeat": [ 0, 1 ] } ], - "$": { "item": "stash_drugs", "chance": 25, "repeat": [ 0, 1 ] }, "V": { "item": "private_resort_dancing_clothes", "chance": 50, "repeat": [ 3, 6 ] }, "K": { "item": "private_resort_dancing_clothes", "chance": 50, "repeat": [ 1, 3 ] } }, "place_items": [ - { "chance": 50, "item": "dresser", "x": [ 0, 0 ], "y": [ 7, 9 ], "repeat": [ 6, 12 ] }, - { "chance": 25, "item": "home_hw", "x": 15, "y": 19, "repeat": [ 1, 3 ] }, - { "chance": 25, "item": "home_hw", "x": 17, "y": 19, "repeat": [ 3, 5 ] }, - { "chance": 50, "item": "stash_drugs", "x": 16, "y": 14, "repeat": [ 1, 4 ] } + { "chance": 75, "item": "keg_beer", "x": 62, "y": 22 }, + { "chance": 40, "item": "stash_drugs", "x": [ 29, 46 ], "y": [ 5, 22 ], "repeat": [ 1, 6 ] }, + { "chance": 50, "item": "bar_table", "x": 27, "y": [ 10, 16 ], "repeat": [ 6, 12 ] }, + { "chance": 66, "item": "tools_common", "x": 19, "y": 19, "repeat": [ 1, 4 ] }, + { "chance": 80, "item": "SUS_janitors_closet", "x": 23, "y": 19 }, + { "chance": 50, "item": "bar_table", "x": [ 54, 65 ], "y": 26, "repeat": [ 10, 20 ] }, + { "chance": 75, "item": "guns_pistol_common", "x": 66, "y": 42 }, + { "chance": 80, "item": "private_resort_instruments", "x": 54, "y": 42 }, + { "chance": 80, "item": "private_resort_instruments", "x": 56, "y": 42 } + ], + "place_monster": [ + { "group": "GROUP_ZOMBIE_COP", "x": [ 4, 20 ], "y": [ 3, 9 ], "repeat": [ 2, 4 ] }, + { "group": "GROUP_RESORT_DANCERS", "x": [ 24, 47 ], "y": [ 5, 23 ], "repeat": [ 3, 5 ] }, + { "group": "GROUP_RESORT_DANCERS", "x": [ 48, 71 ], "y": [ 10, 16 ], "repeat": [ 3, 5 ] } ], - "place_monsters": [ - { "monster": "GROUP_RESORT_MIXED", "x": [ 0, 23 ], "y": [ 5, 9 ], "repeat": [ 0, 1 ], "density": 0.3 }, - { "monster": "GROUP_RESORT_DANCERS", "x": [ 0, 23 ], "y": [ 10, 16 ], "density": 0.6 }, - { "monster": "GROUP_RESORT_MIXED", "x": [ 0, 23 ], "y": [ 17, 23 ], "repeat": [ 0, 1 ], "density": 0.3 } + "place_signs": [ + { "signage": "Private property. No trespassing!", "x": 4, "y": 0 }, + { "signage": "Private property. No trespassing!", "x": 18, "y": 0 } ], - "place_liquids": [ - { "liquid": "water", "x": 16, "y": 17, "repeat": [ 10, 60 ] }, - { "liquid": "water", "x": 17, "y": 17, "repeat": [ 5, 80 ] } + "place_vehicles": [ + { "vehicle": "pickup", "x": 13, "y": 13, "chance": 33, "rotation": 270, "status": 1 }, + { "vehicle": "policesuv", "x": 11, "y": 7, "chance": 100, "rotation": 90, "status": 1 } ] } }, { "type": "mapgen", "method": "json", - "om_terrain": [ "p_resort_1ee" ], + "om_terrain": [ "p_resort_1ww" ], "weight": 100000, "object": { - "fill_ter": "t_floor", + "fill_ter": "t_thconc_floor", "rows": [ - " ; ########]]] W..F.", - " # W..F.", - " ##############W..F.", - " ssssssssssss W..F.", - " W..F.", - " W..F.", - " @s s@ tt tt 6W..F.", - " @s s@ tt tt 6W..F.", - " @s s@ tt tt 6W..F.", - " W..F.", - " @s s@ TTc cTT W..F.", - " @s s@ cTc cTc W..F.", - " @s s@ TTc cTT W..F.", - " W..F.", - " (( (( W..F.", - " ' ' W..F.", - " JJJJJJJJWQQWqqqW..F.", - " JEEEEEEEWT&W###W..F.", - " JEcEcE9cWcTwLcyW..F.", - " JEEEEEEE| + W..F.", - "++WWWWWWWWWWWWWWWW|W..F.", - " w..F.", - " w..F.", - "||WWWWWWWWWWWWWWWW|W..F." + " F |:|1::::666666:|j:8:", + " F |:|1:::::::::::||||:", + " F |:|1::::::::::O|j:8:", + " F |:|2::CCdCCl::O|||||", + " F |:|2::C555Cl::O|j:8:", + " F |:|3:::::::::::||||:", + " F |:|3::COOOC::::|j:8:", + " F |-||-|||||||CC||||||", + " F |,,,,,,;,,,,,,ffSSff", + " F |,,,,,,#,,,,,,,,,,,,", + " F o,,HH,,##,,,,,,,,,,,", + " F o,HTTH,,############", + " F o,HTTH,,ssssssssssss", + " F |,HTTH,,,,,,,,,,,,,,", + " F o,HTTH,,,HH,,,,HH,,,", + " F o,HTTH,,HTTH,,HTTH,,", + " F o,HTTH,,HTTH,,HTTH,,", + " F |,HTTH,,,HH,,,,HH,,,", + " F o,HTTH,,,,,,,,,,,,,,", + " F o,HTTH,,HTTH,,HTTH,,", + " F o,,HH,,,HTTH,,HTTH,,", + " F |,,,,,,,,,,,,,,,,,,,", + " F |,,,,,,,,,,,,,,,,,,,", + " F ||+|||||||||||||||+|" ], - "palettes": [ "p_resort_palette_main_floor" ], - "place_items": [ - { "chance": 50, "item": "bar_table", "x": [ 6, 17 ], "y": [ 2, 2 ], "repeat": [ 10, 20 ] }, - { "chance": 40, "item": "bar_fridge", "x": [ 15, 17 ], "y": [ 0, 0 ], "repeat": [ 2, 8 ] }, - { "chance": 40, "item": "bar_alcohol", "x": [ 7, 14 ], "y": [ 0, 0 ], "repeat": [ 5, 10 ] }, - { "chance": 25, "item": "pool_table", "x": [ 9, 10 ], "y": [ 6, 8 ], "repeat": [ 2, 8 ] }, - { "chance": 25, "item": "pool_table", "x": [ 13, 14 ], "y": [ 6, 8 ], "repeat": [ 2, 8 ] }, - { "chance": 75, "item": "guns_pistol_common", "x": 18, "y": 18 }, - { "chance": 66, "item": "private_resort_instruments", "x": 6, "y": 18 }, - { "chance": 66, "item": "private_resort_instruments", "x": 8, "y": 18 }, - { "chance": 66, "item": "private_resort_instruments", "x": 13, "y": 17 }, - { "chance": 66, "item": "private_resort_instruments", "x": 14, "y": 18 }, - { "chance": 25, "item": "private_resort_gambling_table", "x": [ 8, 9 ], "y": [ 10, 12 ], "repeat": [ 5, 12 ] }, - { "chance": 25, "item": "private_resort_gambling_table", "x": 16, "y": 18, "repeat": [ 2, 4 ] }, - { - "chance": 25, - "item": "private_resort_gambling_table", - "x": [ 14, 15 ], - "y": [ 10, 12 ], - "repeat": [ 5, 12 ] - } - ], - "place_monsters": [ { "monster": "GROUP_RESORT_MIXED", "x": [ 0, 18 ], "y": [ 0, 23 ], "repeat": [ 1, 2 ], "density": 0.5 } ] + "palettes": [ "p_resort_palette_restaraunt" ], + "place_items": [ { "chance": 30, "item": "bar_table", "x": [ 12, 23 ], "y": 11, "repeat": [ 15, 20 ] } ] } }, { "type": "mapgen", "method": "json", - "om_terrain": [ "p_resort_1se" ], + "om_terrain": [ [ "p_resort_1sw", "p_resort_1ss", "p_resort_1se" ], [ "p_resort_pw", "p_resort_pm", "p_resort_pe" ] ], "weight": 100000, "object": { "fill_ter": "t_floor", "rows": [ - " | + + cTW W..F.", - " WcTcLLW>>W &&&WLLW..F.", - " WWWWWWWWWWWWWWWWWW..F.", - " + + + #w..F.", - " W )W! !W c#w..F.", - " W cc uWTc cTW TTTw..F.", - "< WOTTc]WT& &TW vyw..F.", - "WWWWwwwWWWwwwWWWwwwW..F.", - "......................F.", - "x____________________.F.", - "x____________________.F.", - "x____________________.F.", - "x:::::::______:::::::.F.", - "x:::::::______:::::::.F.", - "x____________________.F.", - "x____________________.F.", - "x____________________.F.", - "x:::::::______:::::::.F.", - "x:::::::______:::::::.F.", - "x____________________.F.", - "x____________________.F.", - "x____________________.F.", - "x:::::::______:::::::.F.", - "x:::::::______:::::::.F." + " F |l..#SSSS#|#SSSS#..l|aa......######......AA|l....|.cTTc.l|L...L| F ", + " F |.........|.........|a.....###eeee###...||||eee!.+..cc...|L.j.L| F ", + " F |.........|.........|a.^...;.......!#...#.&|&c...|.......|L.j.L| F ", + " F |.........|.........|a.^...#.s.....!#...#s.|eee!.||||||||||.j.|| F ", + " F |+|+|+|+|+|+|+|+|+|+|a.....###..s.###...|.K|&c...|!!!|hhh|..j.L| F ", + " F |.|.|.|.|.|.|.|.|.|.|aa......####&#.....|.K|eee!.-..>|...-..j.L| F ", + " F |$|$|$|$|$|$|$|$|$|$|...H...............+.K|&c...|!!!|hhh|....L| F ", + " F |||||||||||||||||||||...................|.K||ooo|||||||||||||||| F ", + " F |....TT..........TT.|.K| F ", + " F **** **** **** |||||oo||++||++||oo||||| **** F ", + " F **//** **//** **//** xxxxxxxxxxxxxxxx I I **//** F ", + " F */ /* */) /* */ /* xxxxx________xxxxx ***** */ /* F ", + " F */ )/* */ /* */) /* xIxx____________xxIx ***** **///** */) /* F ", + " F **//** **//** **//** xxx______________xxx **///** */ /* **//** F ", + " F **** **** **** xx________________xx */ /* */ ) /* **** F ", + " F xx________________xx */ ) /* */ /* F ", + " F ******************** x__________________x */ /* */ /* F ", + " F **//////////////////** x__________________x */ /* */ /* **** F ", + " F */ /* x__________________x */ /* */ /* **//** F ", + " F */ ) ) ) ) /* x__________________x */ ) /* */ ) /* */) /* F ", + " F */ /* x__________________x */ /* */ /* */ /* F ", + " F **//////////////////** x__________________x **///** **///** **//** F ", + " F ******************** x__________________x ***** ***** **** F ", + " F x__________________x F ", + " F xxxxxxxxxxxxxxxxxxxxx xx________________xx xxxxxxxxxxxxxxxxxxxxx F ", + " F x____y____y____y____x x________________x x____y____y____y____x F ", + " F x____y____y____y____x xx______________xx x____y____y____y____x F ", + " F x_É__y_É__y_É__y_É__x ** xx____________xx ** x_É__y_É__y_É__y_É__x F ", + " F x____y____y____y____x *¤* xx__________xx *¤* x____y____y____y____x F ", + " F x____y____y____y____x ** x__________x ** x____y____y____y____x F ", + " F x___________________x x__________x x___________________x F ", + " F x___________________xxxxxxxx__________xxxxxxxx___________________x F ", + " F x________________________________________________________________x F ", + " F x________________________________________________________________x F ", + " F x________________________________________________________________x F ", + " F x________________________________________________________________x F ", + " F x________________________________________________________________x F ", + " F x___________________xxxxxxxx__________xxxxxxxx___________________x F ", + " F x___________________x x__________x x___________________x F ", + " F x____y____y____y____x ** x__________x ** x____y____y____y____x F ", + " F x____y____y____y____x *//* x__________x *//* x____y____y____y____x F ", + " F x__Á_y__Á_y__Á_y__Á_x *//* x__________x *//* x__Á_y__Á_y__Á_y__Á_x F ", + " F x____y____y____y____x ** x__________x ** x____y____y____y____x F ", + " F x____y____y____y____x x__________x x____y____y____y____x F ", + " F xxxxxxxxxxxxxxxxxxxxx xx__________xx xxxxxxxxxxxxxxxxxxxxx F ", + " F x%__________%x F ", + " FFFFFFFFFFFFFFFFFFFFFFFFFFFFG|==========|GFFFFFFFFFFFFFFFFFFFFFFFFFFFF ", + " xx__________xx " ], "palettes": [ "p_resort_palette_main_floor" ], - "place_vehicles": [ - { "vehicle": "parkinglotbasic", "x": 7, "y": 10, "chance": 20, "rotation": 0, "status": -1 }, - { "vehicle": "parkinglotbasic", "x": 7, "y": 15, "chance": 20, "rotation": 0, "status": 1 }, - { "vehicle": "parkinglotbasic", "x": 7, "y": 19, "chance": 20, "rotation": 0, "status": 1 }, - { "vehicle": "parkinglotbasic", "x": 15, "y": 20, "chance": 20, "rotation": 180, "status": 1 }, - { "vehicle": "parkinglotbasic", "x": 15, "y": 20, "chance": 20, "rotation": 180, "status": -1 }, - { "vehicle": "parkinglotbasic", "x": 15, "y": 20, "chance": 20, "rotation": 180, "status": 1 } + "place_vendingmachines": [ + { "item_group": "vending_food", "x": 60, "y": 1, "lootable": true }, + { "item_group": "vending_drink", "x": 60, "y": 2, "lootable": true } ], "items": { - "T": { "item": "SUS_office_desk", "chance": 50 }, - "!": { "item": "SUS_office_filing_cabinet", "chance": 75 }, - "O": { "item": "SUS_oven", "chance": 75 } + "L": [ + { + "item": { + "subtype": "distribution", + "entries": [ + { "group": "security_armor", "prob": 50 }, + { "group": "security_gear", "prob": 66 }, + { "group": "security_pants", "prob": 100 }, + { "group": "security_shoes", "prob": 100 }, + { "group": "security_torso", "prob": 100 } + ] + }, + "chance": 33 + }, + { "item": "private_resort_sec_weapon", "chance": 75, "repeat": [ 1, 2 ] } + ] }, - "place_items": [ - { "chance": 50, "item": "coffee_table", "x": 4, "y": 1, "repeat": [ 2, 5 ] }, - { "chance": 50, "item": "dresser", "x": [ 6, 7 ], "y": [ 1, 1 ], "repeat": [ 4, 8 ] }, - { "chance": 50, "item": "private_resort_gambling_table", "x": [ 17, 18 ], "y": [ 1, 1 ], "repeat": [ 4, 8 ] }, - { "chance": 50, "item": "private_resort_instruments", "x": [ 17, 18 ], "y": [ 1, 1 ], "repeat": [ 1, 2 ] }, - { "chance": 20, "item": "fridgesnacks", "x": 7, "y": 6, "repeat": [ 4, 8 ] }, - { "chance": 5, "item": "vending_drink_items", "x": 7, "y": 4, "repeat": [ 5, 10 ] }, - { "chance": 40, "item": "bar_alcohol", "x": [ 18, 18 ], "y": [ 3, 4 ], "repeat": [ 5, 10 ] }, - { "chance": 75, "item": "ammo_pistol_rare", "x": 18, "y": 6, "repeat": [ 1, 2 ] }, - { "chance": 80, "item": "guns_pistol_obscure", "x": 18, "y": 6 }, - { "chance": 40, "item": "jewelry_front", "x": 18, "y": 6, "repeat": [ 2, 4 ] }, - { "chance": 50, "item": "stash_drugs", "x": 18, "y": 6, "repeat": [ 1, 3 ] }, - { "chance": 50, "item": "dresser", "x": [ 6, 7 ], "y": [ 1, 1 ], "repeat": [ 2, 4 ] }, - { "chance": 50, "item": "guns_shotgun_common", "x": [ 6, 7 ], "y": [ 1, 1 ], "repeat": [ 1, 2 ] }, - { "chance": 50, "item": "private_resort_sec_weapon", "x": [ 6, 7 ], "y": [ 1, 1 ], "repeat": [ 1, 3 ] } - ], - "place_monsters": [ { "monster": "GROUP_RESORT_MIXED_STAFF", "x": [ 0, 18 ], "y": [ 0, 7 ], "repeat": [ 0, 1 ], "density": 0.25 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_pe" ], - "weight": 100000, - "object": { - "fill_ter": "t_floor", - "rows": [ - "x____________________.F.", - "x____________________.F.", - "x____________________.F.", - "x____________________.F.", - "x:::::::______:::::::.F.", - "_____________________.F.", - "_____________________.F.", - "_____________________.F.", - "_____________________.F.", - "_____________________.F.", - "x:::::::______:::::::.F.", - "x____________________.F.", - "x____________________.F.", - "x____________________.F.", - "x:::::::______:::::::.F.", - "x:::::::______:::::::.F.", - "x____________________.F.", - "x____________________.F.", - "x____________________.F.", - "x____________________.F.", - "......................F.", - "......................F.", - "FFFFFFFFFFFFFFFFFFFFFFF.", - "........................" + "place_fields": [ { "field": "fd_bile", "x": [ 5, 23 ], "y": [ 0, 6 ], "repeat": [ 10, 20 ] } ], + "place_monster": [ + { "group": "GROUP_ZOMBIE_COP", "x": [ 24, 47 ], "y": [ 10, 23 ], "repeat": [ 4, 8 ] }, + { "group": "GROUP_RESORT_MIXED_STAFF", "x": [ 48, 66 ], "y": [ 0, 7 ] } ], - "palettes": [ "p_resort_palette_main_floor" ], "place_vehicles": [ - { "vehicle": "parkinglotbasic", "x": 7, "y": 2, "chance": 20, "rotation": 0, "status": 1 }, - { "vehicle": "parkinglotbasic", "x": 7, "y": 11, "chance": 20, "rotation": 0, "status": 1 }, - { "vehicle": "parkinglotbasic", "x": 7, "y": 16, "chance": 20, "rotation": 0, "status": 1 }, - { "vehicle": "parkinglotbasic", "x": 15, "y": 4, "chance": 20, "rotation": 180, "status": -1 }, - { "vehicle": "parkinglotbasic", "x": 15, "y": 13, "chance": 20, "rotation": 180, "status": 1 }, - { "vehicle": "parkinglotbasic", "x": 15, "y": 18, "chance": 20, "rotation": 180, "status": 1 } + { "vehicle": "police_pileup", "x": 28, "y": 15, "chance": 100, "rotation": 270, "status": 1 }, + { "vehicle": "police_pileup", "x": 43, "y": 20, "chance": 100, "rotation": 0, "status": 1 }, + { "vehicle": "limousine", "x": 35, "y": 42, "chance": 75, "rotation": 90, "status": 1 } + ], + "place_signs": [ + { "signage": "Private property. No trespassing!", "x": 30, "y": 47 }, + { "signage": "Private property. No trespassing!", "x": 41, "y": 47 } ] } }, { "type": "mapgen", "method": "json", - "om_terrain": [ "p_resort_2nw" ], + "om_terrain": [ + [ "p_resort_2nw", "p_resort_2nn", "p_resort_2ne" ], + [ "p_resort_2ww", "p_resort_2mm", "p_resort_2ee" ], + [ "p_resort_2sw", "p_resort_2ss", "p_resort_2se" ] + ], "weight": 100000, "object": { "fill_ter": "t_floor", "rows": [ - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "****WWWWWWWWWWWWWWWWWWWW", - "****?c--cTc-cTc-cTc-s#]#", - "****?Tc-------------s#c#", - "****?c--cTc-----cTc--;-#", - "****WWWWWWWWW+WWWWWWWW|W", - "****WBBhWL-$WRRRRRRRRRRR", - "**rrwS-0W^-KWRRRRRRRRRRR", - "**r-WW+WWW+WWRRWWWWWWW|W", - "**r-+--ddd-#WRRW--ZZWL-<", - "**r-W------#WRR|----+---", - "**rrw-bb----+RRWZ-Z-WL->", - "****w^bbcTTcWRRWWWWWWWWW", - "****WWWWWWWWWRRWd---v-V-", - "****Wf------+RRXTd--#---", - "****w#----bbWRRW[-K----b", - "****w#--c-bbWRRWW+WWW+WW" + " ", + " ", + " rrrrr ", + " r...r ", + " ||||||||||||||||||||||||ooo||ooo|+||oo||oo|| ", + " |││││││││││││││││││││││|TTc..bbd..|]....cTT| ", + " |││││││││││││││││││││││|cc.......d|bbb..cTTo ", + " |││││││││││││││││││││││|.....l..bb|bbbd..cc| ", + " rrrrrrrrrrrrrrrrrrrr|││││││││││││││││││││││|||+||||||||||||....|rr ", + " r___________________|││││││││││││││││││││││|a...H|S$BB|B0$|+||||.r ", + " r___________________|││││││││││││││││││││││|a^...+..BB|B..|....+.r ", + " r___________________|││││││││││││││││││││││|a...K|...0|S..|H...|.r ", + " |||||||||+o|???????||rrr││││││││││││││││rrr|||X||||||||||+|..^.orr ", + " |dbd|BBS|,,,,,,,,,,,-,,r││││││││││││││││r,,-,,,,,,,,,,,+....aaao ", + " rr|.b.|..$|,,,,,,,,,,,-,,r││││││││││││││││r,,-,,,,,,,,,,,|KK..###o ", + " r.o...||+||,,..H..||-||,,r││││││││││││││││r,,|#.H......,,||||||||| ", + " r.+...l..#|,,....a|::<|,,r││││││││││││││││r,,|#......H.,,|S$B|###| ", + " r.oH.....#|,,..^^a|L::|,,r││││││││││││││││r,,|#...^....,,|..B|aaa| ", + " rr|a.^....+,,.aaaa|::>|,,r││││││││││││││││r,,|#.aaaaa..,,|0..|.^.| ", + " |aaaa..K|,,||||||||||,,r││││││││││││││││r,,||||||||||,,||+||...o ", + " |||||||||,,|K...aaaa|,,rrrrrrrrrrrrrrrrrr,,|WWW55zzz|,,X.......o ", + " |f.aaaaK|,,X.....TT.|>>,,,,,,,,,,,,,,,,,,,,|........-,,|K...bb.o ", + " o#..TT..+,,|l.......|>>,,,,,,,,,,,,,,,,,,,,|WWW55zzz|,,|l..dbbd|rr ", + " o#.H....|,,||+||.^^.|||ooo||ooo||ooo||ooo||||||||||||,,|||||||||.r ", + " |......l|,,|S..|.bb.o |dbbbd|BB|,,|B.$|d..+.r ", + " ||+||...|,,|h.$|dbbd|rr o.bbb.+.0|,,|B.0|bb.|.r ", + " |0.$|..^|,,||||||||||.r o..^..|.S|,,|B.S|bb.|rr ", + " o...|.bb|,,|l.aaaaa.+.r rroH...l|.$|,,||+||d..o ", + " |BBS|dbb|,,+...TTT..|.r r.|.....||||,,|K......o ", + " |||||||||,,|K......#|rr ____ r.+.aaK....X,,+....H.#o ", + " |d..H...+,,|[...H..#o ____ r.||||||||||,,|aaa.l.#|rr ", + " obb....K|,,||+||....o ____ rr|.dbd.|BB|,,|||||||||.r ", + " obb....#|,,|0.S|....o ____ o..b..+.0|,,|B.$|d..+.r ", + " |d..l..#|,,|..B|.bb.| o..^..|.S|,,|B..|bb.|.r ", + " ||+||..f|,,|.$B|dbbd|rr rro....l|.$|,,|S..|bb.|rr ", + " |..$|...|,,||||||||||.r r.|.....||||,,||+||d..o ", + " o.BB|.^.|,,|K..HH...+.r r.+.H[K....X,,|l......o ", + " rr|SBB|aaa|,,+.......#o.r r.||||||||||,,X....^^.o ", + " r.|||||||||,,|...^...#orr rr|.dbd.|BB|,,|K..aaaa|rr ", + " r.+..aaa.K|,,|l.aaa..#| o..b..+.0|,,|||||||||.r ", + " r.|f..T...X,,||+|||..|| oH.^..|.S|,,|BB$|d..+.r ", + " rro#......|,,|0.S|....| o....l|.$|,,|BB.|bb.|.r ", + " o#.....H|,,|..B|.bb.o oa....||||,,|S..|bb.|rr ", + " ||+||...|,,|.$B|dbbd| |aaaK....+,,||+||d..o ", + " |..S|.^.|,,|||||||||||????????????????????|||||||||||,,|l......o ", + " o.BB|.b.|,,,,,,,,,,,,,,,,,,>>,,,,,,>>,,,,,,,,,,,,,,,,,,X....^.ao ", + " |$BB|dbd|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|K..aaaa| ", + " |||||||||+|||||||X|||rrrrrrrrrrrrrrrrrrrr,,||||++||++||||||||||| ", + " ol.aaaa.K.|BB.|l...K|│││││││││││││││││││r,,|............#ffff..| ", + " rro.........|$..+.....|│││││││││││││││││││r,,o..c......c..;......o ", + " r.|.###.l..H|S.0|....a|│││││││││││││││││││r,,o.ctc....ctc.##.....o ", + " r.+.....||+||||||H..Ta|│││││││││││││││││││r,,+..c..cc..c...###SS#| ", + " r.|..^..|0..|d.......a|│││││││││││││││││││r,,o....cttc......ssss.o ", + " rro.bbb.|..B|bb^......|│││││││││││││││││││r,,oc....cc............o ", + " odbbbd|S$B|d....###f|│││││││││││││││││││r,,|tc.........ctc....l| ", + " ||ooo|||||||||||ooo|||????????????????????|||oo++oo|||oo|oo|oo|| ", + " r_______________________________r ", + " r_______________________________r ", + " rr_____________________________rr ", + " rrr________________rrrrrrrrrrrr ", + " r________________r ", + " rr______________rr ", + " rrrrrrrrrrrrrrrr ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " ], "palettes": [ "p_resort_palette_living_floor" ], - "toilets": { "$": { } }, - "items": { - "T": [ - { "item": "bar_table", "chance": 40, "repeat": [ 2, 4 ] }, - { "item": "bar_alcohol", "chance": 25, "repeat": [ 2, 4 ] } - ], - "d": { "item": "dresser", "chance": 50, "repeat": [ 3, 6 ] }, - "B": { "item": "shower", "chance": 50, "repeat": [ 0, 1 ] }, - "b": { "item": "bed", "chance": 50, "repeat": [ 0, 2 ] }, - "Z": { "item": "crate_wine", "chance": 50, "repeat": [ 1, 2 ] }, - "^": { "item": "private_resort_coffee_table", "chance": 33, "repeat": [ 1, 3 ] }, - "L": { "item": "gear_survival", "chance": 33, "repeat": [ 0, 3 ] }, - "K": { "item": "unisex_coat_rack", "chance": 33, "repeat": [ 1, 3 ] } - }, "place_items": [ - { "chance": 50, "item": "bar_table", "x": [ 21, 21 ], "y": [ 9, 10 ], "repeat": [ 3, 6 ] }, - { "chance": 40, "item": "bar_alcohol", "x": [ 23, 23 ], "y": [ 9, 11 ], "repeat": [ 5, 10 ] }, - { "chance": 50, "item": "livingroom", "x": [ 5, 5 ], "y": [ 22, 23 ], "repeat": [ 3, 6 ] }, - { "chance": 50, "item": "livingroom", "x": [ 9, 10 ], "y": [ 19, 19 ], "repeat": [ 3, 6 ] }, - { "chance": 25, "item": "home_hw", "x": 21, "y": 16, "repeat": [ 1, 3 ] }, - { "chance": 25, "item": "home_hw", "x": 21, "y": 18, "repeat": [ 1, 3 ] }, - { "chance": 75, "item": "keg_beer", "x": 16, "y": 16 }, - { "chance": 75, "item": "keg_beer", "x": 17, "y": 16 }, - { "chance": 75, "item": "keg_beer", "x": 17, "y": 18 }, - { "chance": 75, "item": "keg_beer", "x": 19, "y": 18 }, + { "chance": 75, "item": "keg_beer", "x": 66, "y": 48 }, + { "chance": 75, "item": "keg_beer", "x": 65, "y": 48 }, { "chance": 50, "item": "remains_human_generic", "x": 20, "y": 20, "repeat": [ 1, 3 ] }, - { "chance": 50, "item": "livingroom", "x": [ 16, 23 ], "y": [ 20, 22 ], "repeat": [ 10, 15 ] }, - { "chance": 10, "item": "shelter", "x": [ 16, 23 ], "y": [ 20, 22 ], "repeat": [ 10, 15 ] }, - { "chance": 33, "item": "butcher_tools", "x": 20, "y": 21, "repeat": [ 1, 3 ] }, { "chance": 33, "item": "corpses", "x": [ 16, 23 ], "y": [ 20, 22 ], "repeat": [ 2, 4 ] } ], - "place_monsters": [ { "monster": "GROUP_RESORT_MIXED", "x": [ 6, 23 ], "y": [ 9, 23 ], "repeat": [ 0, 1 ], "density": 0.5 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_2ww" ], - "weight": 100000, - "object": { - "fill_ter": "t_floor", - "rows": [ - "****Wd-TTc-^WRRWS-dW---w", - "****WW+WWW+WWRRWh-$WbbdW", - "****W0-dWK-LWRRWWWWWWWWW", - "****w---W---WRRW[-cTTc-+", - "****WBBhW-$^WRR+------#W", - "****WWWWWWWWWRRWK--c--#w", - "****Wd------+RRWd-bbb-^w", - "****wbb--T-#WRRWW+WWW+WW", - "****wbb-cT-#WRRWK-KWS-KW", - "****Wd-----#WRRW--^WBBBw", - "****WW+WWW+WWRRW-$^WBBBW", - "****W---WL-KWRRWWWWWWWWW", - "****w-BBW---WRR+---i---+", - "**rrWSBBW-$^WRRWK-----#w", - "**r-WWWWWWWWWRRW[-bbb-dw", - "**r-+-------XRRW[-bbb-dW", - "**r-W-----bbWRRWW+WWW+WW", - "**rrw#-V--bbWRRWK-KWS-dW", - "****w#-----dWRRW^--WB--w", - "****WW+WWW+WWRRW-$^WB^KW", - "****W--SWL-KWRRWWWWWWWWW", - "****w-BBW---WRRRRRRRRRRR", - "****WdBBW-$^W>>RRRRRRRRR", - "****WWWWWWWWWWWW+WWWWWWX" - ], - "palettes": [ "p_resort_palette_living_floor" ], - "toilets": { "$": { } }, - "items": { - "T": { "item": "livingroom", "chance": 33, "repeat": [ 0, 3 ] }, - "d": { "item": "dresser", "chance": 50, "repeat": [ 3, 6 ] }, - "B": { "item": "shower", "chance": 50, "repeat": [ 0, 1 ] }, - "b": { "item": "bed", "chance": 50, "repeat": [ 0, 2 ] }, - "^": { "item": "private_resort_coffee_table", "chance": 33, "repeat": [ 1, 3 ] }, - "L": { "item": "gear_survival", "chance": 33, "repeat": [ 0, 3 ] }, - "K": { "item": "unisex_coat_rack", "chance": 33, "repeat": [ 1, 3 ] }, - "#": [ - { "item": "bar_table", "chance": 40, "repeat": [ 1, 2 ] }, - { "item": "bar_alcohol", "chance": 25, "repeat": [ 0, 2 ] } - ] - }, - "place_monsters": [ { "monster": "GROUP_RESORT_MIXED", "x": [ 6, 23 ], "y": [ 0, 23 ], "density": 0.75 } ] + "place_monsters": [ { "monster": "GROUP_RESORT_MIXED_STAFF", "x": [ 48, 66 ], "y": [ 48, 54 ], "repeat": [ 1, 3 ] } ] } }, { "type": "mapgen", "method": "json", - "om_terrain": [ "p_resort_2sw" ], + "om_terrain": [ + [ "p_resort_rnw", "p_resort_rnn", "p_resort_rne" ], + [ "p_resort_rww", "p_resort_rmm", "p_resort_ree" ], + [ "p_resort_rsw", "p_resort_rss", "p_resort_rse" ] + ], "weight": 100000, "object": { - "fill_ter": "t_floor", - "rows": [ - "****wcTT---------W^-----", - "**rrw-TT-[WWWWWWWWW[--cT", - "**r-W-cc--WdShWBS0Wd--cT", - "**r-+-----+---W---+---[[", - "**r-WWWWW-WWWWWWWWW-WWWW", - "**rrw-----+^-$W$--+-----", - "****wbbdbbWK--W^-LWbbdbb", - "****WWwwwWWWwWWWwWWWwwwW", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************" - ], - "palettes": [ "p_resort_palette_living_floor" ], - "toilets": { "$": { } }, - "items": { - "T": { "item": "livingroom", "chance": 33, "repeat": [ 0, 3 ] }, - "d": { "item": "dresser", "chance": 50, "repeat": [ 3, 6 ] }, - "B": { "item": "shower", "chance": 50, "repeat": [ 0, 1 ] }, - "b": { "item": "bed", "chance": 50, "repeat": [ 0, 2 ] }, - "^": { "item": "private_resort_coffee_table", "chance": 33, "repeat": [ 1, 3 ] }, - "L": { "item": "gear_survival", "chance": 33, "repeat": [ 0, 3 ] }, - "K": { "item": "unisex_coat_rack", "chance": 33, "repeat": [ 1, 3 ] }, - "#": [ - { "item": "bar_table", "chance": 40, "repeat": [ 1, 2 ] }, - { "item": "bar_alcohol", "chance": 25, "repeat": [ 0, 2 ] } - ] - }, - "place_monsters": [ { "monster": "GROUP_RESORT_MIXED", "x": [ 6, 23 ], "y": [ 0, 6 ], "repeat": [ 0, 1 ], "density": 0.25 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_2nn" ], - "weight": 100000, - "object": { - "fill_ter": "t_floor", - "rows": [ - "************************", - "************************", - "*rrrrr*************rrrrr", - "*r---r*************r---r", - "WwW+WwWWwwwWWWwwwWWwW+Ww", - "W^---dW#--cTTTc--#Wd---d", - "Wbbb-dW#--cTTTc--#WK-bbb", - "Wbbb--+----ccc----+--bbb", - "WWWWWWW-----------WWWWWW", - "WBBBW#-^a--###c---cTW^$L", - "WBBBW#-^a-c#i#-----TW--L", - "Wd--+---------------+--K", - "WWWWWWWWWWW+++WWWWWWWWWW", - "RRRRRRRRRRRRRRRRRRRRRRRR", - "RRRRRRRRRRRRRRRRRRRRRRRR", - "WW++WWWWWWWWWWWWWWWWW++W", - "WK--W^-KW^BBWBBdWT-$W--K", - "W[--W$--W-BBWBB-W--^W--[", - "W[--WWW+W+WWWWW+W+WWW--[", - "W----------dW#----------", - "W-------bbbbW#--bbb---Tc", - "Wai-----bbbbW#--bbb---Tc", - "Waa--------dW#-^bbbd----", - "WWwwwwWwwwwWWWwwwwWwwwwW" - ], - "place_item": [ { "item": "television", "repeat": 1, "x": 5, "y": 9 } ], - "palettes": [ "p_resort_palette_living_floor" ], - "toilets": { "$": { } }, - "items": { - "T": { "item": "private_resort_gambling_table", "chance": 33, "repeat": [ 0, 3 ] }, - "d": { "item": "dresser", "chance": 50, "repeat": [ 3, 6 ] }, - "B": { "item": "shower", "chance": 50, "repeat": [ 0, 1 ] }, - "b": { "item": "bed", "chance": 50, "repeat": [ 0, 2 ] }, - "^": { "item": "private_resort_coffee_table", "chance": 33, "repeat": [ 1, 3 ] }, - "L": { "item": "gear_survival", "chance": 33, "repeat": [ 0, 3 ] }, - "K": { "item": "unisex_coat_rack", "chance": 33, "repeat": [ 1, 3 ] }, - "#": [ - { "item": "bar_table", "chance": 40, "repeat": [ 1, 2 ] }, - { "item": "bar_alcohol", "chance": 25, "repeat": [ 0, 2 ] } - ], - "[": { "item": "private_resort_wardrobe", "chance": 25, "repeat": [ 0, 3 ] } - }, - "place_items": [ { "chance": 50, "item": "stash_drugs", "x": [ 11, 13 ], "y": [ 9, 10 ], "repeat": [ 1, 5 ] } ], - "place_monsters": [ { "monster": "GROUP_RESORT_MIXED", "x": [ 0, 23 ], "y": [ 5, 23 ], "density": 0.8 } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_2mm" ], - "weight": 100000, - "object": { - "fill_ter": "t_floor", - "rows": [ - "_**********************_", - "rr*********************_", - "-r*********************_", - "-r********************rr", - "-r********************r-", - "rr********************r-", - "_*********************r-", - "_*********************rr", - "_**********************_", - "_**********************_", - "rr********************rr", - "-r********************r-", - "-r********************r-", - "-r********************r-", - "rr********************rr", - "_**********************_", - "_**********************_", - "_**********************_", - "_**********************_", - "_**********************_", - "????????????????????????", - "RRRRRR>>>RRRRR>>>RRRRRRR", - "RRRRRRRRRRRRRRRRRRRRRRRR", - "WXWWWWWWWWWWWWWWWWWWWWWW" - ], - "palettes": [ "p_resort_palette_living_floor" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_2ss" ], - "weight": 100000, - "object": { - "fill_ter": "t_floor", - "rows": [ - "W____________________W-----------------#........................................:.- ", + " ..-.................#.#.............................Я............- ", + " ..-............................................................N.- ", + " -..............................................................- ", + " -..............................................................- ", + " -.......................A..............A.......................- ", + " -..............................................................-.. ", + " -...................########################...................-.. ", + " -...................# #.................A.-.. ", + " -...................#.. #...................-.. ", + " -...................#.. #...................-.. ", + " -......&&...==....A.#.. ..#...................- ", + " -...................#.. ..#...................- ", + " -...................#.. ..#.A.................- ", + " -...................# ..#...................-.. ", + " -...................# ..#...................-.. ", + " -...................# #.................A.-.. ", + " -...................# #...................-.. ", + " -...................#.. ..#...................-.. ", + " -...................#.. ..#...................- ", + " -.................A.#.. ..#.A.................- ", + " ..-...................#.. ..#...................- ", + " ..-...................#.. ..#...................-.. ", + " ..-.A.................# #...................-.. ", + " ..-...................# #.................A.-.. ", + " ..-...................# #...................-.. ", + " -...................# #...................-.. ", + " -...................# #...................- ", + " -...................########################...................- ", + " -..............................................................- ", + " -..............................................................- ", + " -..............................................................- ", + " -........................oooo.oooo.oooo........................- ", + " ..-........................oooo.oooo.oooo........................- ", + " ..-........................oooo.oooo.oooo........................- ", + " ..-.A......................oooo.oooo.oooo........................- ", + " ..-..............................................................- ", + " ..-..............A.............................N.:...............- ", + " -..............................................................- ", + " 5--------------------------------------------------------------5 ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { "#": "t_concrete_railing" } } }, { @@ -1143,37 +426,33 @@ "object": { "fill_ter": "t_thconc_floor", "rows": [ - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "*****WWWWWWW************", - "*****W3.1.3W************", - "*****W3...3W************", - "*****WFFGFFW************", - "*****W.....WWWWWWW******", - "*****W2.2..WLLLLBW******", - "*****W2.2..|...cBW******", - "*****W1.1..W....BW******", - "*****WWWWWWW++WWWW******", - "***********W<", - "****r___________________", - "****r___________________", - "****r___________________", - "****r__#________________", - "****r___________________", - "****r___________________", - "****r__________________r" - ], - "palettes": [ "p_resort_palette_roof" ], - "place_items": [ { "chance": 10, "item": "roof_trash", "x": [ 5, 22 ], "y": [ 9, 22 ], "repeat": [ 5, 15 ] } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_rww" ], - "weight": 100000, - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - "****r__________________r", - "****r__________________r", - "****r_____H____H_______r", - "****r__________________r", - "****r__________________r", - "****r__________________r", - "****r__________________r", - "****r__________________r", - "****r__________________r", - "****r______ss__________r", - "****r______ss__________r", - "****r__________________r", - "****r__________________r", - "**__r__________________r", - "**__r__________________r", - "**__r__________________r", - "**__r__________________r", - "**__r__________________r", - "****r__________________r", - "****r__________________r", - "****r_s________________r", - "****r___________________", - "****r___________________", - "****r___________________" - ], - "palettes": [ "p_resort_palette_roof" ], - "place_items": [ { "chance": 10, "item": "roof_trash", "x": [ 5, 22 ], "y": [ 1, 22 ], "repeat": [ 5, 15 ] } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_rsw" ], - "weight": 100000, - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - "****r___________________", - "**__r___________________", - "**__r______I____________", - "**__r___________________", - "**__r___________________", - "**__r____________((_____", - "****r___________________", - "****rrrrrrrrrrrrrrrrrrrr", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************" - ], - "palettes": [ "p_resort_palette_roof" ], - "place_items": [ { "chance": 10, "item": "roof_trash", "x": [ 5, 22 ], "y": [ 0, 7 ], "repeat": [ 3, 10 ] } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_rnn" ], - "weight": 100000, - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - "************************", - "************************", - "*_____*************__(__", - "*_____*************_____", - "rrrrrrrrrrrrrrrrrrrrrrrr", - "r_______________________", - "r__________I____________", - "r_______________________", - "r_______________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "____________sb__________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "________________________", - "rrrrrrrrrrrrrrrrrrrrrrrr" - ], - "palettes": [ "p_resort_palette_roof" ], - "place_items": [ { "chance": 10, "item": "roof_trash", "x": [ 1, 22 ], "y": [ 7, 22 ], "repeat": [ 5, 15 ] } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_rmm" ], - "weight": 100000, - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - "************************", - "__**********************", - "__**********************", - "__********************__", - "__********************__", - "__********************__", - "**********************__", - "**********************__", - "************************", - "************************", - "__********************__", - "__********************__", - "__********************__", - "__********************__", - "__********************__", - "************************", - "************************", - "************************", - "************************", - "************************", - "rrrrrrrrrrrrrrrrrrrrrrrr", - "________________________", - "________________________", - "rrrrrrrrrrrrrrrrrrrrrr__" - ], - "palettes": [ "p_resort_palette_roof" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_rss" ], - "weight": 100000, - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - "r********************r__", - "r********************r>_", - "r********************rrr", - "r**********************r", - "r**********************r", - "r**********************r", - "r**********************r", - "r**********************r", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************" - ], - "palettes": [ "p_resort_palette_roof" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_rne" ], - "weight": 100000, - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - "************************", - "************************", - "*******_____************", - "*******_____************", - "rrrrrrrrrrrrrrrrrrrr****", - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r__**", - "___________________r__**", - "___________________r__**", - "___________________r__**", - "___________________r__**", - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r__**", - "r__________________r__**" - ], - "palettes": [ "p_resort_palette_roof" ], - "place_nested": [ - { - "chunks": [ [ "roof_2x2_infrastructure", 80 ], [ "roof_2x2_infrastructure_2", 40 ], [ "roof_2x2_utilities", 40 ] ], - "x": [ 3, 18 ], - "y": [ 7, 22 ] - } - ], - "place_items": [ { "chance": 10, "item": "roof_trash", "x": [ 0, 18 ], "y": [ 9, 22 ], "repeat": [ 5, 15 ] } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_ree" ], - "weight": 100000, - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - "r__________________r__**", - "r__________________r__**", - "r__________________r__**", - "r__________________r****", - "r__________________r****", - "r__________________r****", - "r__________________r__**", - "r__________________r__**", - "r__________________r__**", - "r__________________r__**", - "r__________________r__**", - "r__________________r****", - "r__________________r****", - "r__________________r****", - "r__________________r__**", - "r__________________r__**", - "r__________________r__**", - "r__________________r__**", - "r__________________r__**", - "r__________________r****", - "r__________________r****", - "___________________r****", - "___________________r****", - "___________________r****" - ], - "palettes": [ "p_resort_palette_roof" ], - "place_nested": [ - { - "chunks": [ [ "roof_2x2_infrastructure", 80 ], [ "roof_2x2_infrastructure_2", 40 ], [ "roof_2x2_utilities", 40 ] ], - "x": [ 3, 18 ], - "y": [ 2, 20 ] - } - ], - "place_items": [ { "chance": 10, "item": "roof_trash", "x": [ 0, 18 ], "y": [ 0, 22 ], "repeat": [ 5, 15 ] } ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "p_resort_rse" ], - "weight": 100000, - "object": { - "fill_ter": "t_flat_roof", - "rows": [ - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r****", - "___________________r****", - "__________________>r****", - "rrrrrrrrrrrrrrrrrrrr****", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************", - "************************" - ], - "palettes": [ "p_resort_palette_roof" ], - "place_nested": [ - { - "chunks": [ - [ "roof_2x2_infrastructure", 80 ], - [ "roof_2x2_infrastructure_2", 40 ], - [ "roof_2x2_utilities", 40 ], - [ "roof_6x6_survivor", 5 ] - ], - "x": [ 2, 10 ], - "y": [ 2, 6 ] - } - ], - "place_items": [ { "chance": 10, "item": "roof_trash", "x": [ 0, 18 ], "y": [ 0, 7 ], "repeat": [ 3, 10 ] } ] + "items": { + "L": [ + { + "item": { + "subtype": "distribution", + "entries": [ + { "group": "security_armor", "prob": 50 }, + { "group": "security_gear", "prob": 66 }, + { "group": "security_pants", "prob": 100 }, + { "group": "security_shoes", "prob": 100 }, + { "group": "security_torso", "prob": 100 } + ] + }, + "chance": 75 + }, + { "item": "private_resort_sec_weapon", "chance": 75, "repeat": [ 1, 2 ] } + ] + }, + "place_monsters": [ { "monster": "GROUP_RESORT_BOUNCER", "x": [ 6, 18 ], "y": [ 10, 13 ], "repeat": [ 1, 2 ] } ] } } ] diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/ranch_camp.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/ranch_camp.json index 818f27a88..09998adc4 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/ranch_camp.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/ranch_camp.json @@ -1,636 +1,4 @@ [ - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - "........................................................................", - "........................................................................", - "..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%....................................................................." - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_1", "ranch_camp_2", "ranch_camp_3" ], [ "ranch_camp_10", "ranch_camp_11", "ranch_camp_12" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - "........................................................................", - "........................................................................", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................" - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_4", "ranch_camp_5", "ranch_camp_6" ], [ "ranch_camp_13", "ranch_camp_14", "ranch_camp_15" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - "........................................................................", - "........................................................................", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................///.../.....//..................................%..", - "...................///////////.//////................................%..", - "..................///~~////~/////~~///...............................%..", - "...............////~~~~~//~~//~~~~~~//////...........................%..", - "..............////~~~~~~~~~~~~~~~~~~~~~////..........................%..", - "............///~~~~~~~~~~~~~~~~~~~~~~~~~~~//.........................%..", - "............//~~~~~~~~~~~~~~~~~~```~~~~~~//..........................%..", - "............///~~~~~~~````````````~~~~~////..........................%..", - ".............///~~~~~~~~```````````~~~~~////.........................%..", - "...........////~~~~~~~~~~~~``````~~~~~~///...........................%..", - "............/////~~~~~~~~~~~~````~~~~~///............................%..", - "...............////~~//~~~~~~~`~~~~~///////..........................%..", - ".................////////~~~~~~~~~~~~~~///...........................%..", - "...................///////~~~~~~~~~~~~~//............................%..", - ".........................///~~~~~~~~~~//.............................%..", - "..........................////~~~~~/////.............................%..", - "............................////~~//.................................%..", - "............................../////..................................%.." - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_7", "ranch_camp_8", "ranch_camp_9" ], [ "ranch_camp_16", "ranch_camp_17", "ranch_camp_18" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%..................................././....././.......................", - "..%.................../......./....../.../../..../......................", - "..%..................../..../...//./...././././.../.....................", - "..%...................../././..///T.../..//...T/.././...................", - "..%...............././....././//..//...././//..///..//..................", - "..%...................T.///./..../././/.//../////..//...................", - "..%.............../../././//...//../././/....//.../.....................", - "..%.................//.../../..T/.//.///T./././././.....................", - "..%....................////...//.././/././/../..........................", - "..%...................//.///.....//..././../............................", - "..%................./...T/./...//.......................................", - "..%................./../.././//.........................................", - "..%.................../......./.........................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%....................................................................." - ], - "palettes": [ "ranch_camp" ], - "place_monsters": [ { "monster": "GROUP_DOMESTIC", "x": [ 10, 23 ], "y": [ 3, 23 ], "repeat": [ 4, 6 ], "density": 0.1 } ] - }, - "om_terrain": [ [ "ranch_camp_19", "ranch_camp_20", "ranch_camp_21" ], [ "ranch_camp_28", "ranch_camp_29", "ranch_camp_30" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................" - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_22", "ranch_camp_23", "ranch_camp_24" ], [ "ranch_camp_31", "ranch_camp_32", "ranch_camp_33" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%.." - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_25", "ranch_camp_26", "ranch_camp_27" ], [ "ranch_camp_34", "ranch_camp_35", "ranch_camp_36" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%....................................................................." - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_37", "ranch_camp_38", "ranch_camp_39" ], [ "ranch_camp_46", "ranch_camp_47", "ranch_camp_48" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "........................................................................", - "xxxxxxx.................................................................", - "x.....xxxxxxxxxxx.......................................................", - "x.....x.........x.......................................................", - "x...............x.......................................................", - "x.....x..xx.xx..x.......................................................", - "xxxxxxx..xx.xx..x.......................................................", - "......x..xx.xx..x......................................xxxxxxxx.........", - ".........xx.xx..x......................................x..x...x.........", - "......x.........x......................................x..x...x.........", - "......xxx.....xxx...............................xxx..xxx.xxx.xxxxxxx....", - "........x.....x.................................x.............x....x....", - "........x.....x.................................x..................x....", - "........x.....................................................x....x....", - "........x.....x...............................................xxxxxx....", - "........xxxxxxx.................................x.............x........." - ], - "palettes": [ "ranch_camp" ], - "place_monsters": [ { "monster": "GROUP_DOMESTIC", "x": [ 3, 23 ], "y": [ 3, 23 ], "repeat": [ 4, 6 ], "density": 0.1 } ] - }, - "om_terrain": [ [ "ranch_camp_40", "ranch_camp_41", "ranch_camp_42" ], [ "ranch_camp_49", "ranch_camp_50", "ranch_camp_51" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - "..x...x.x...x........................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - "..x.........x........................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - "..x.........x........................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - "..x.........x........................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - "..x...x.x...x........................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - "..x...x.x...x........................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - "..x.........x........................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - "..x.........x........................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - "..x...x.x...x........................................................%..", - ".....................................................................%.." - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_43", "ranch_camp_44", "ranch_camp_45" ], [ "ranch_camp_52", "ranch_camp_53", "ranch_camp_54" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - "..%.....................................................................", - "..%.....................................................................", - "..%.....................................................................", - "..%.................................................<...................", - "..%................................................2222..WWWWwWWWwWWW...", - "..%..............................................222//222W;;;;rrr;;;W...", - "..%.............................................22//////22H;;;;;;;;rW...", - "..%.............................................2////////A;;;;;;;;;rW...", - "..%.............................................22//////22H;;;;;;;;rW...", - "..%..............................................222//222W;;;;;;;;;;w...", - "..%................................................2222..W;;;;;;;5;;W...", - "..%......................................................WWWW====WWWW...", - "..%..........................................................////5......", - "..%.........................................................//././......", - "..%......................................../...........././././././/....", - "..%..............................................././.../.../...///.//..", - "..%.................................../..../..../.../..///.//.//../../..", - "..%......................................../..././.../.../..////.././/./", - "..%.....................................//././/./../..///./..../.././/..", - "..%...................................././../......../././.../.../..///.", - "..%..................................//...//..././..././..././..././../.", - "..%....................................//.././...././..../...././.././//", - "..%................................../..////////////////////////////////", - "..%....................................../////////////////////////////%%", - "..%................................../..WWWWWW;;;;WWWWWWWWWWW;;;;WWWWWW.", - "..%.................................../.W;;;;W;;;;W;;;;W;;;;W;;;;W;;;;W.", - "..%................................./...W;;;;V;;;;V;;;;W;;;;V;;;;V;;;;W.", - "..%..................................//.W;;;;3;;;;3;;;;W;;;;3;;;;3;;;;W.", - "..%................................./...W;;;;3;;;;3;;;;W;;;;3;;;;3;;;;W.", - "..%.....................................W;;;;V;;;;V;;;;W;;;;V;;;;V;;;;W.", - "..%................................././.WHHHHo;;;;oHHHHWHHHHo;;;;oHHHHW.", - "..%................................././.W;;;;V;;;;;;;;;;;;;;;;;;;V;;;;W.", - "..%................................/../.w;;;;3;;;;;;;;;;;;;;;;;;;3;;;;w.", - "..%.....................................W;;;;V;;;;;;;;;;;;;;;;;;;V;;;;W.", - "..%................................./...w;;;;3;;;;VH33HWH33HV;;;;3;;;;w.", - "..%.................................../.W;;;;V;;;;V;;;;W;;;;V;;;;V;;;;W.", - "..%..................................../WHHHHo;;;;o;;;;W;;;;o;;;;oHHHHW.", - "..%.................................../.W;;;;V;;;;V;;;;W;;;;V;;;;V;;;;W.", - "..%.....................................w;;;;3;;;;VH33HWH33HV;;;;3;;;;w.", - "..%................................../..W;;;;V;;;;;;;;;;;;;;;;;;;V;;;;W.", - "..%.................................../.w;;;;3;;;;;;;;;;;;;;;;;;;3;;;;w.", - "..%................................../..W;;;;V;;;;;;;;;;;;;;;;;;;V;;;;W.", - "..%..................................../WHHHHo;;;;oHHHHWHHHHo;;;;oHHHHW.", - "..%.................................././W;;;;V;;;;V;;;;W;;;;V;;;;V;;;;W.", - "..%.................................../.W;;;;3;;;;3;;;;W;;;;3;;;;3;;;;W.", - "..%.....................................W;;;;3;;;;3;;;;W;;;;3;;;;3;;;;+/", - "..%..................................//.W;;;;V;;;;V;;;;W;;;;V;;;;V;;;;W.", - "..%..................................../W;;;;W;;;;W;;;;W;;;;W;;;;W;;;;W." - ], - "palettes": [ "ranch_camp" ], - "items": { ";": { "item": "farming_tools", "chance": 1 } }, - "place_item": [ - { "item": "cattlefodder", "x": [ 41, 44 ], "y": [ 25, 29 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 41, 44 ], "y": [ 31, 35 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 41, 44 ], "y": [ 37, 41 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 41, 44 ], "y": [ 43, 47 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 51, 54 ], "y": [ 25, 29 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 56, 59 ], "y": [ 25, 29 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 66, 69 ], "y": [ 25, 29 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 66, 69 ], "y": [ 31, 35 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 66, 69 ], "y": [ 37, 41 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 51, 54 ], "y": [ 43, 47 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 56, 59 ], "y": [ 43, 47 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 66, 69 ], "y": [ 43, 47 ], "amount": [ 0, 2 ] }, - { "item": "cattlefodder", "x": [ 51, 54 ], "y": [ 35, 37 ], "amount": [ 0, 1 ] }, - { "item": "cattlefodder", "x": [ 56, 59 ], "y": [ 35, 37 ], "amount": [ 0, 1 ] }, - { "item": "birdfood", "x": [ 62, 64 ], "y": 5, "amount": [ 0, 1 ], "repeat": [ 3, 6 ] }, - { "item": "stepladder", "x": 65, "y": 5 }, - { "item": "wheat", "x": [ 50, 55 ], "y": [ 6, 8 ], "amount": [ 2, 8 ], "repeat": [ 3, 6 ] } - ], - "place_monster": [ - { "monster": "mon_horse", "x": [ 42, 43 ], "y": [ 25, 47 ], "repeat": [ 2, 4 ], "chance": 10 }, - { "monster": "mon_cow", "x": [ 67, 68 ], "y": [ 25, 47 ], "repeat": [ 2, 4 ], "chance": 10 }, - { "monster": "mon_pig", "x": [ 52, 58 ], "y": [ 26, 28 ], "repeat": [ 2, 4 ], "chance": 10 }, - { "monster": "mon_pig", "x": [ 52, 58 ], "y": [ 26, 28 ], "repeat": [ 2, 4 ], "chance": 10 }, - { "monster": "mon_sheep", "x": [ 52, 58 ], "y": 36, "repeat": [ 2, 4 ], "chance": 10 }, - { "monster": "mon_sheep", "x": [ 52, 58 ], "y": 36, "repeat": [ 2, 4 ], "chance": 10 }, - { "monster": "mon_chicken", "x": [ 52, 58 ], "y": [ 44, 46 ], "repeat": [ 2, 6 ], "chance": 10 }, - { "monster": "mon_chicken", "x": [ 52, 58 ], "y": [ 44, 46 ], "repeat": [ 2, 6 ], "chance": 10 } - ] - }, - "om_terrain": [ [ "ranch_camp_55", "ranch_camp_56", "ranch_camp_57" ], [ "ranch_camp_64", "ranch_camp_65", "ranch_camp_66" ] ], - "type": "mapgen", - "weight": 25000 - }, { "method": "json", "object": { @@ -702,377 +70,5 @@ "om_terrain": [ [ "ranch_camp_58", "ranch_camp_59", "ranch_camp_60" ], [ "ranch_camp_67", "ranch_camp_68", "ranch_camp_69" ] ], "type": "mapgen", "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%.." - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_61", "ranch_camp_62", "ranch_camp_63" ], [ "ranch_camp_70", "ranch_camp_71", "ranch_camp_72" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - "..%..................................../WWWWWW;;;;WWWWWWWWWWW;;;;WWWWWW.", - "..%.................................../...........//.....////..//./...%.", - "..%................................/../..//.//../.../...//...///.././.%/", - "..%..................................../.../..////./.././.../.....///.y6", - "..%....................................././..../..../.../../../....//.G.", - "..%..................................../....../../././././.././/../...G.", - "..%.....................................././/....///.../.....././////.G.", - "..%......................................./....//.//...../..../...///.G.", - "..%......................................../../....././..../....././..G.", - "..%........................................./........../../.././......G.", - "..%....................................................../............y.", - "..%...................................................................%.", - "..%...................................................................%.", - "..%...................................................................%.", - "..%...................................................................%.", - "..%...................................................................%.", - "..%...................................................................%.", - "..%...................................................................%.", - "..%...................................................................%.", - "..%...................................................................%.", - "..%...................................................................%.", - "..%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.", - "........................................................................", - "........................................................................" - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_73", "ranch_camp_74", "ranch_camp_75" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - "..../////////////////./......______________.......%.....................", - "...//////////////.///......_________________......%.....................", - "././/./../////.////////....__________________/....%.....................", - "//.////////.///.////./////.__________________/./.6y.....................", - "/.//.///.///////////////./.__________________./../G.....................", - "././//..////////////.//////__________________../..G.....................", - "///.////////////.////./////__________________././.G.....................", - "/.///////.///.////////././.__________________..//.G.....................", - "././/.////////.////.//////.________,,________.//./G.....................", - "/.////.////..///////////.//________,,________.....G.....................", - ".././/.///////////./////.//________,,________./...y.....................", - "/..////.///////./////////./__________________.....%.....................", - "....//.////./././/././/.//.________,,________.....%.....................", - "...../././//.////./////.../________,,________.....%.....................", - "..//.//.//./.././//..//....________,,________.....%.....................", - "..../..//././////.////.....__________________.....%.....................", - "....././..///..//..........________,,________.....%.....................", - "...........................________,,________.....%.....................", - "...........................________,,________.....%.....................", - "...........................__________________.....%.....................", - "...........................________,,________.....%.....................", - "...........................________,,________.....%%%%%%%%%%%%%%%%%%%%%%", - "...........................________,,________...........................", - "...........................__________________..........................." - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_76", "ranch_camp_77", "ranch_camp_78" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "method": "json", - "object": { - "fill_ter": "t_dirt", - "rows": [ - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - ".....................................................................%..", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..", - "........................................................................", - "........................................................................" - ], - "palettes": [ "ranch_camp" ] - }, - "om_terrain": [ [ "ranch_camp_79", "ranch_camp_80", "ranch_camp_81" ] ], - "type": "mapgen", - "weight": 25000 - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "ranch_camp_57_roof", - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " ", - " ", - " >#< ", - " 2222 ............ ", - " 222 222............ ", - "22 22........... ", - "2 2........... ", - "22 22........... ", - " 222 222............ ", - " 2222 ............ ", - " ............ ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof", "2": "t_wall_metal", "<": "t_ladder_up", ">": "t_ladder_down", "#": "t_grate" } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "ranch_camp_57_silo", - "object": { - "fill_ter": "t_open_air", - "rows": [ - " ", - " ", - " ", - " <#> ", - " 2222 ", - " 222 222 ", - "22 22 ", - "2 2 ", - "22 22 ", - " 222 222 ", - " 2222 ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { "2": "t_wall_metal", "<": "t_ladder_up", ">": "t_ladder_down", "#": "t_grate" } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": "ranch_camp_57_silocap", - "object": { - "fill_ter": "t_open_air", - "rows": [ - " ", - " ", - " ", - " >## ", - " .... ", - " ........ ", - ".......... ", - ".......... ", - ".......... ", - " ........ ", - " .... ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { "#": "t_grate", ">": "t_ladder_down", ".": "t_metal_flat_roof" } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ [ "ranch_camp_67_roof", "ranch_camp_68_roof" ] ], - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " |2222225", - " |______3", - " |______3", - " ............... |222222222222222|______3", - " ............... |______________________3", - " ............... |______________________3", - " ............... |______________________3", - " ............... |______________________3", - " ............... |______________________3", - " ............... |_______3--------------3", - " ............... |_______3 ", - " ............... |-------3 ", - " ............... ", - " ............... ", - " ............... ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof", "_": "t_tar_flat_roof" } - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ [ "ranch_camp_65_roof", "ranch_camp_66_roof" ], [ "ranch_camp_74_roof", "ranch_camp_75_roof" ] ], - "object": { - "fill_ter": "t_shingle_flat_roof", - "rows": [ - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ............................... ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "roof_palette" ], - "terrain": { ".": "t_shingle_flat_roof" } - } } ] diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/regional_airport.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/regional_airport.json index 1df0f017c..42c024ea3 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/regional_airport.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/regional_airport.json @@ -2,264 +2,44 @@ { "type": "mapgen", "method": "json", - "om_terrain": [ [ "waiting_area" ], [ "waiting_area_roof" ] ], + "om_terrain": "fuel_station", "weight": 100000, "object": { - "rotation": [ 3, 3 ], - "fill_ter": "t_floor", + "fill_ter": "t_thconc_floor", "rows": [ - "QQQQQQQQ|W|++|W|QQQQQQQf", - "QQ7QQQQQ|a.....|QQQQQ7Qf", - "f|||WW|||.....Y|||WW|||f", - "/|cc..d.^......^.?????|f", - "/|F..hd...b..b..M....?| ", - "/|F...x...b..b....nn..W ", - "/|F.......b..b....nn..W ", - "/|||+||8..b..b.M.....?| ", - "s'''''|9.........?????| ", - "s'''''|||||..|||||||||| ", - "s'''''|SSi+..+...hCSoe| ", - "s'''''|iii|^.|Y..hCiiiW ", - "s'''''|iii||||^.....h.W ", - "s'''''|+|+|yi+.....hth| ", - "s'''''|i|i|yi|..F|||||| ", - "s'''''|T|T|]S|a.F|ddcc| ", - "/|||+|||||||||..F|.h.x| ", - "/|lB'''|^.FFF.........W ", - "/|lB'''+..............W ", - "/|lB'''|d.h.|.h.c|dh..| ", - "/|lB'''|dccx|xddc|dccx|f", - "/||||||||||||||||||||||f", - "%%%%%%%%%%%%%%%%%%%%%%%f", - "ffffffffffffffffffffffff", - "********zzzzzzzz********", - "********zzzzzzzz********", - "*5111111zzzzzzzz1111115*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzz(zzzzzzzzzzzzzz4*", - "*2zzUUzzzzzUUzzzzzUUzz4*", - "*2zzUUzzzzzUUzzzzzUUzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzz[zzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*2zzzzzzzzzzzzzzzzzzzz4*", - "*5333333333333333333335*", - "************************", - "************************" + " ||w||||||ffff||||w||ff", + " |'''xXXX|ssss|x'''q| ", + " w'''xXXX|s66s|x'''qw ", + " |N''''''|s66s|x'''qw ", + " |N''qNNN|ssss=''''q| ", + " |N''q||||ffff||||=|| ", + " w'''qwsssssssDDDssss ", + " |''''=sssssssDDDssss ", + " ||=|||ssssssssssssss ", + " fsssfsssssssssssssss ", + " fsssfs,,,,,,,,,,,,,s ", + " fsssfs,_,_,_,_,_,_,sss", + " fffffs,,,,,,,,,,,,,sss", + " fsssss_,_________,_s ", + " fsssss_,_________,_s ", + " fsJsss_,_________,_s ", + " fsssss_,_________,_s ", + " fsssss_,_________,_s ", + " fsssss_,_________,_s ", + " fsJsss_,____,____,_s ", + " fsssss_,____,____,_s ", + " fsssss_,____,____,_s ", + " fsssss_,____,____,_s ", + " fsJsss_,_________,_s " ], "palettes": [ "airport_palette" ], - "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 4, 23 ], "y": [ 5, 23 ], "density": 0.2 } ], - "place_nested": [ - { - "chunks": [ - [ "null", 0 ], - [ "roof_4x4_utility_1", 40 ], - [ "roof_2x2_utilities_b", 15 ], - [ "roof_2x2_utilities_c", 5 ], - [ "roof_2x2_utilities_d", 20 ], - [ "roof_2x2_utilities", 20 ], - [ "roof_4x4_utility_1", 20 ] - ], - "x": [ 14, 18 ], - "y": [ 32, 41 ] - } - ], - "place_vehicles": [ - { "vehicle": "golf_cart", "x": [ 1, 3 ], "y": [ 9, 11 ], "chance": 50, "rotation": 180, "status": 1 }, - { "vehicle": "golf_cart", "x": [ 1, 3 ], "y": [ 13, 15 ], "chance": 50, "rotation": 180, "status": 1 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ [ "fuel_station" ], [ "fuel_station_roof" ] ], - "weight": 100000, - "object": { - "rotation": [ 3, 3 ], - "fill_ter": "t_floor", - "rows": [ - "////////////////////////", - "////////////////////////", - "fffffffffffffff||w|||w||", - "sssssssssssfsss|''NNN''|", - "JsssJsssJssfsss+'''''''w", - "sssssssssssfsss|'''''''|", - "sssssssssssffff|'qqq'xx|", - "sssssssssssssss|=w|N'XX|", - "___________,,,ssss|N'XX|", - ",,,,,,,,,,,,_,ssss|N'XX|", - "___________,,,ssss||||||", - "___________,_,ssssfssssf", - "___________,,,ssssfs66sf", - "___________,_,ssssfs66sf", - "_,,,,______,,,ssssfssssf", - "___________,_,ssDD|+||||", - "___________,,,ssDD|'xxx|", - "___________,_,ssDD|''''|", - "___________,,,ssss|''''|", - ",,,,,,,,,,,,_,ssss=''''w", - "___________,,,ssss|qqqq|", - "ssssssssssssssssss||ww||", - " ss f", - "////////// ss /////////f", - "************************", - "************************", - "***************111111115", - "***************zzzzzzzz4", - "***************zzzzzzzz4", - "***************zzzzzzzz4", - "***************zzzzzzzz4", - "***************zzzzzzzz4", - "******************zzzzz4", - "******************zzzzz4", - "******************zzzzz4", - "************************", - "************************", - "************************", - "************************", - "******************zzzzz4", - "******************zzzzz4", - "******************zzzzz4", - "******************zzzzz4", - "******************zzzzz4", - "******************zzzzz4", - "******************333335", - "************************", - "************************" - ], - "palettes": [ "airport_palette" ], - "place_furniture": [ { "furn": "f_gas_tank", "x": 13, "y": 4 } ], - "place_liquids": [ { "liquid": "avgas", "x": 13, "y": 4, "repeat": [ 0, 100 ] } ], + "place_furniture": [ { "furn": "f_gas_tank", "x": 4, "y": 10 } ], + "place_liquids": [ { "liquid": "avgas", "x": 4, "y": 10, "repeat": [ 0, 100 ] } ], "gaspumps": { "J": { "fuel": "avgas", "amount": [ 0, 100 ] } }, - "place_monsters": [ { "monster": "GROUP_SMALL_STATION", "x": [ 4, 23 ], "y": [ 5, 23 ], "density": 0.05 } ], + "place_monster": [ { "group": "GROUP_SMALL_STATION", "x": [ 4, 19 ], "y": [ 4, 19 ], "chance": 75, "repeat": [ 1, 4 ] } ], "place_loot": [ - { "group": "supplies_electronics", "x": [ 19, 22 ], "y": 20, "chance": 5, "repeat": [ 1, 3 ] }, - { "group": "tools_lighting_industrial", "x": [ 19, 22 ], "y": 20, "chance": 5, "repeat": [ 1, 2 ] } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "runway_hangar" ], - "weight": 25000, - "object": { - "rotation": [ 3, 3 ], - "fill_ter": "t_floor", - "rows": [ - "/%fss_,___________,_ssf/", - "fffss_,___________,_ssf/", - "sssss_,___________,_ssf/", - "sssss_,_____,_____,_ssf/", - "______,_____,_____,_ssf/", - ",,,,,,,_____,_____,_ssf/", - "____________,_____,_ssf/", - "__________________,_ssf/", - "__________________,_ssf/", - "__________________,_ssf/", - "____________,_____,_ssf/", - "___,,,,_____,_____,_ssf/", - "____________,_____,_ssf/", - "____________,_____,_ssf/", - "__________________,_ssf/", - "__________________,_ssf/", - "__________________,_ssf/", - ",,,,,,,_____,_____,_ssf/", - "______,_____,_____,_ssf/", - "sssss_,_____,_____,_ssf/", - "sssss_,_____,_____,_ssf/", - "fffss_,___________,_ssf/", - "/%fss_,___________,_ssf/", - "/%fss_,___________,_ssf/" - ], - "place_vehicles": [ { "vehicle": "helicopters", "chance": 30, "fuel": -1, "rotation": 180, "status": 1, "x": 8, "y": 12 } ], - "palettes": [ "airport_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ [ "airport_lot_0" ], [ "airport_lot_1" ] ], - "weight": 25000, - "object": { - "rotation": [ 3, 3 ], - "fill_ter": "t_floor", - "rows": [ - "ffffffffffffffffffffffff", - "sssssssssssssssssssssssf", - "sssssssssssssssssssssssf", - "ss,,,,,,,,,,,,,,,,,,,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,,,,,,_______,,,,,,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,,,,,,_______,,,,,,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,,,,,,_______,,,,,,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,ssf", - "ss,_________________,sss", - "ss,,,,,,_______,,,,,,sss", - "ss,_____________________", - "ss,_____________________", - "ss,_____________________", - "ss,_____________________", - "ss,_____________________", - "ss,,,,,,________________", - "ss,_____________________", - "ss,_____________________", - "ss,_____________________", - "ss,_____________________", - "ss,_____________________", - "ss,,,,,,________________", - "ss,_____________________", - "ss,_____________________", - "ss,_____________________", - "ss,_____________________", - "ss,___________________ss", - "ss,,,,,,,,,,,,,,,,,,,,ss", - "ssssssssssssssssssssssss", - "ssssssssssssssssssssssss" - ], - "palettes": [ "airport_palette" ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": [ 4, 23 ], "y": [ 5, 23 ], "density": 0.2 }, - { "monster": "GROUP_ZOMBIE", "x": [ 4, 23 ], "y": [ 29, 47 ], "density": 0.2 } - ], - "place_vehicles": [ - { "vehicle": "parkinglotbasic", "chance": 30, "fuel": -1, "rotation": 180, "status": 1, "x": 5, "y": 6 }, - { "vehicle": "parkinglotbasic", "chance": 30, "fuel": -1, "rotation": 180, "status": 1, "x": 5, "y": 12 }, - { "vehicle": "parkinglotbasic", "chance": 30, "fuel": -1, "rotation": 180, "status": 1, "x": 5, "y": 18 }, - { "vehicle": "parkinglotbasic", "chance": 30, "fuel": -1, "rotation": 180, "status": 1, "x": 5, "y": 30 }, - { "vehicle": "parkinglotbasic", "chance": 30, "fuel": -1, "rotation": 180, "status": 1, "x": 5, "y": 36 }, - { "vehicle": "parkinglotbasic", "chance": 30, "fuel": -1, "rotation": 180, "status": 1, "x": 5, "y": 42 }, - { "vehicle": "parkinglotbasic", "chance": 30, "fuel": -1, "rotation": 360, "status": 1, "x": 16, "y": 5 }, - { "vehicle": "parkinglotbasic", "chance": 30, "fuel": -1, "rotation": 360, "status": 1, "x": 16, "y": 11 }, - { "vehicle": "parkinglotbasic", "chance": 30, "fuel": -1, "rotation": 360, "status": 1, "x": 16, "y": 17 } + { "group": "supplies_electronics", "x": 6, "y": [ 4, 6 ], "chance": 5, "repeat": [ 1, 3 ] }, + { "group": "tools_lighting_industrial", "x": 20, "y": [ 1, 4 ], "chance": 5, "repeat": [ 1, 2 ] } ] } } diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/restaurant.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/restaurant.json index c19934efc..b98ef7c1d 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/restaurant.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/restaurant.json @@ -1,112 +1,488 @@ [ + { + "type": "palette", + "id": "restaurant_food_palette", + "items": { + "T": { "item": "restaur_table", "chance": 10 }, + "F": { "item": "restaur_fridge", "chance": 30, "repeat": [ 1, 4 ] }, + "#": { "item": "restaur_kitchen", "chance": 25, "repeat": [ 1, 4 ] } + } + }, + { + "type": "palette", + "id": "restaurant_seafood_palette", + "items": { + "T": { "item": "sea_restaur_table", "chance": 10 }, + "F": { "item": "sea_restaur_fridge", "chance": 30, "repeat": [ 1, 4 ] }, + "#": { "item": "sea_restaur_kitchen", "chance": 25, "repeat": [ 1, 4 ] } + } + }, + { + "type": "palette", + "id": "restaurant_wall_type", + "parameters": { "wall_type": { "type": "ter_str_id", "default": { "distribution": [ "t_wall_r", "t_wall_p" ] } } }, + "terrain": { "|": { "param": "wall_type", "fallback": "t_wall_r" } } + }, + { + "type": "palette", + "id": "restaurant_palette", + "parameters": { + "food_type": { + "type": "palette_id", + "default": { "distribution": [ [ "restaurant_food_palette", 2 ], [ "restaurant_seafood_palette", 1 ] ] } + }, + "wall_type": { "type": "ter_str_id", "default": { "distribution": [ "t_wall_r", "t_wall_p" ] } } + }, + "palettes": [ { "param": "food_type" }, "restaurant_wall_type" ], + "terrain": { + "+": "t_door_c", + ",": "t_pavement_y", + " ": "t_floor", + "B": "t_floor", + "T": "t_floor", + "$": "t_floor", + "y": "t_floor", + "C": "t_curtains", + "D": "t_door_locked", + "W": "t_window", + "G": "t_wall_glass", + "_": "t_pavement", + "*": "t_concrete", + "d": "t_concrete", + "4": "t_gutter_downspout", + "^": "t_ladder_up" + }, + "furniture": { + "B": "f_bench", + "O": "f_oven", + "R": "f_woodstove", + "y": "f_indoor_plant", + "T": "f_table", + "$": "f_table", + "F": "f_fridge", + "S": "f_sink", + "&": "f_trashcan", + "d": "f_dumpster", + "#": "f_counter", + "{": "f_rack" + }, + "toilets": { "P": { } }, + "items": { + "{": { "item": "restaur_rack", "chance": 25, "repeat": [ 1, 3 ] }, + "$": { "item": "cash_register_random", "chance": 30 }, + "~": { "item": "restaur_bath", "chance": 20 }, + "S": { "item": "restaur_sink", "chance": 30 }, + "&": { "item": "restaur_trash", "chance": 35, "repeat": [ 0, 2 ] }, + "d": [ { "item": "restaur_trash", "chance": 30, "repeat": [ 0, 4 ] }, { "item": "trash", "chance": 50, "repeat": [ 0, 4 ] } ] + } + }, { "type": "mapgen", "method": "json", - "om_terrain": [ "s_restaurant" ], - "weight": 100000, + "nested_mapgen_id": "foodperson_break_room", "object": { - "fill_ter": "t_floor", + "mapgensize": [ 9, 9 ], + "place_nested": [ { "chunks": [ [ "foodperson_barred_bathroom", 20 ], [ "null", 80 ] ], "x": 3, "y": 1 } ], + "place_npcs": [ { "class": "true_foodperson", "x": 4, "y": 8 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "3x3_foodplace_stairwell", + "object": { + "mapgensize": [ 3, 3 ], + "rows": [ + "|@+", + "|< ", + "|||" + ], + "palettes": [ "restaurant_palette" ], + "terrain": { "<": "t_stairs_up", "+": "t_door_metal_locked", "@": "t_card_fp", " ": "t_null" }, + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_chef_survivor", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + " ", + " ", + " ", + " ", + " XXXXXX XX XXXXXX ", + " ", + "X X", + "X X X X", + "X X X X", + "X @ X", + " @ ", + "X X", + "X X", + "X @ X", + "X X", + " @ ", + " ", + " N ", + " Nx T ", + " R ", + " X FFR ", + " W X ", + " X ", + " " + ], + "terrain": { "W": "t_window_boarded" }, + "furniture": { "R": "f_rack", "F": "f_fridge", "x": "f_trashcan", "T": "f_table" }, + "remove_all": { "N": { } }, + "place_npcs": [ { "class": "survivor_chef", "x": 12, "y": 19 } ], + "place_zones": [ { "type": "NPC_INVESTIGATE_ONLY", "faction": "no_faction", "x": [ 7, 19 ], "y": [ 18, 20 ] } ], + "items": { + "F": [ + { "item": "produce", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "groce_meat", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "groce_dairyegg", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "bar_food", "chance": 30, "repeat": [ 1, 3 ] }, + { "item": "bar_fridge", "chance": 30, "repeat": [ 1, 3 ] } + ] + }, + "nested": { "X": { "chunks": [ [ "1x1_bash", 1 ], [ "null", 5 ] ] }, "@": { "chunks": [ "1x1_GROUP_GROCERY", "null" ] } }, + "place_loot": [ + { "group": "jackets", "x": 7, "y": 18, "chance": 30, "repeat": [ 2, 3 ] }, + { "item": "sheet", "x": 7, "y": 18, "chance": 30, "repeat": 2 }, + { "group": "alcohol_bottled_canned", "x": 8, "y": 18, "chance": 30 }, + { "group": "baked_goods", "x": [ 9, 11 ], "y": 20, "chance": 20, "repeat": [ 2, 3 ] }, + { "group": "groce_bread", "x": [ 9, 11 ], "y": 20, "chance": 20, "repeat": [ 2, 3 ] }, + { "group": "cannedfood", "x": [ 12, 13 ], "y": 18, "chance": 20, "repeat": [ 2, 3 ] }, + { "group": "cannedfood", "x": [ 16, 18 ], "y": 18, "chance": 20, "repeat": [ 2, 3 ] } + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_angry_diners", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " @@ @@ @@ @@ ", + " ", + " ", + " @@ @@ @@ @@ ", + " ", + " @@ @@ @@ @@ ", + " ", + " ", + " @@ @@ @@ @@ ", + " ", + " ", + " @ ", + " @ ", + " @ @ @ ", + " ", + " ", + " ", + " " + ], + "nested": { "@": { "chunks": [ [ "1x1_GROUP_GROCERY", 1 ], [ "null", 4 ] ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "13x13_checkered_floor", + "object": { + "mapgensize": [ 13, 13 ], + "rows": [ + "wgwgwgwgwgwgw", + "gwgwgwgwgwgwg", + "wgwgwgwgwgwgw", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "terrain": { "w": "t_linoleum_white", "g": "t_linoleum_gray" }, + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "1x1_GROUP_GROCERY", + "object": { "mapgensize": [ 1, 1 ], "place_monster": [ { "group": "GROUP_GROCERY", "x": 0, "y": 0, "chance": 100 } ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_kitchen_roach_infestation", + "object": { + "mapgensize": [ 24, 24 ], + "place_monsters": [ + { "monster": "GROUP_PLAGUE_ROACH", "x": [ 7, 19 ], "y": 19, "chance": 100 }, + { "monster": "GROUP_ROACH", "x": [ 7, 19 ], "y": 19, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "s_restaurant", + "object": { + "fill_ter": "t_linoleum_gray", "rows": [ "____,____,____,____,____", "____,____,____,____,____", "____,____,____,____,____", "____,____,____,____,____", - "|-GGGGGG---++---GGGGGG-|", - "|......................|", - "C..BB...BB....BB...BB..C", - "W..TT...TT....TT...TT..W", - "W..TT...TT....TT...TT..W", - "C..BB...BB....BB...BB..C", - "|^....................^|", - "C..BB...BB....BB...BB..C", - "W..TT...TT....TT...TT..W", - "W..TT...TT....TT...TT..W", - "C..BB...BB....BB...BB..C", - "|---...................|", - "|Sg|...................|", - "|Pg+..|-------------|..|", - "|--|..|FF#SS##OO##{{|..|", - "|Pg+..|wgwgwgwgwgwgw|..|", - "|Sg|..|&&###RR###gwg+..|", - "|-----------------C-|D||", - "______4dd___________D.<|", - "____________________|--|" + "||GGGGGG|||++|||GGGGGG||", + "| |", + "C BB BB BB BB C", + "W TT TT TT TT W", + "W TT TT TT TT W", + "C BB BB BB BB C", + "|y y|", + "C BB BB BB BB C", + "W TT TT TT TT W", + "W TT TT TT TT W", + "C BB BB BB BB C", + "|||| |", + "|S~| |", + "|P~+ ||||||||||||||| $|", + "|||| |FF#SS##OO##{{| |", + "|P~+ |.............+ |", + "|S~| |&&###RR###...| |", + "||||||||||||||||||C||D||", + "*******4dd**********D ^|", + "********************||||" ], + "palettes": [ "restaurant_palette" ], + "place_nested": [ + { "chunks": [ "3x3_foodplace_stairwell" ], "x": 20, "y": 21, "neighbors": { "above": "s_restaurant_foodplace_roof" } }, + { "chunks": [ "13x13_checkered_floor" ], "x": 7, "y": 18 }, + { + "else_chunks": [ + [ "24x24_chef_survivor", 10 ], + [ "24x24_kitchen_roach_infestation", 25 ], + [ "24x24_angry_diners", 25 ], + [ "null", 40 ] + ], + "x": 0, + "y": 0, + "neighbors": { "above": "s_restaurant_foodplace_roof" } + }, + { + "chunks": [ [ "24x24_kitchen_roach_infestation", 25 ], [ "24x24_angry_diners", 25 ], [ "null", 50 ] ], + "x": 0, + "y": 0, + "neighbors": { "above": "s_restaurant_foodplace_roof" } + } + ], + "place_items": [ { "item": "trash", "x": [ 0, 17 ], "y": [ 22, 23 ], "chance": 20, "repeat": [ 1, 2 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_restaurant_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + "------------------------", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "------5--------------..-", + " -.v-", + " ----" + ], + "palettes": [ "roof_palette" ], + "place_items": [ { "item": "roof_trash", "x": [ 4, 16 ], "y": [ 6, 19 ], "chance": 50, "repeat": [ 1, 3 ] } ], + "place_nested": [ + { "chunks": [ [ "roof_2x2_golf", 10 ], [ "null", 10 ], [ "roof_3x3_wine", 10 ] ], "x": [ 4, 16 ], "y": 5 }, + { + "chunks": [ + [ "roof_6x6_utility", 20 ], + [ "null", 50 ], + [ "roof_2x2_utilities", 30 ], + [ "roof_4x4_utility_1", 30 ], + [ "roof_4x4_party", 10 ] + ], + "x": [ 3, 15 ], + "y": [ 14, 15 ] + }, + { "chunks": [ [ "roof_16x16_help", 5 ], [ "null", 95 ] ], "x": 2, "y": 7 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "foodperson_break_room", + "object": { + "mapgensize": [ 9, 9 ], + "place_nested": [ { "chunks": [ [ "foodperson_barred_bathroom", 1 ], [ "null", 1 ] ], "x": 3, "y": 1 } ], + "place_npcs": [ { "class": "true_foodperson", "x": 4, "y": 8 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "foodperson_barred_bathroom", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + " FF ", + " F ", + " ", + " ", + " ", + " X " + ], + "terrain": { "X": "t_rdoor_boarded" }, + "items": { "F": { "item": "dead_foodperson", "chance": 30 } }, + "place_zones": [ { "type": "NPC_NO_INVESTIGATE", "faction": "no_faction", "x": [ 0, 5 ], "y": [ 0, 5 ] } ] + } + }, + { + "id": "foodperson_mask_loaded", + "type": "item_group", + "subtype": "collection", + "container-item": "foodperson_mask", + "entries": [ { "item": "medium_disposable_cell" } ] + }, + { + "id": "foodperson_outfit", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "group": "foodperson_mask_loaded" }, + { "item": "cape_fp" }, + { "item": "chestguard_hard" }, + { "item": "legguard_hard" }, + { "item": "armguard_hard" }, + { "item": "gloves_rubber" }, + { "item": "boots_rubber" } + ] + }, + { + "id": "dead_foodperson", + "type": "item_group", + "subtype": "collection", + "container-item": "corpse", + "entries": [ { "group": "foodperson_outfit" } ] + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_restaurant_foodplace_roof" ], + "object": { + "fill_ter": "t_floor", + "rows": [ + " ", + " ", + " ", + " ", + "------------------------", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-......................-", + "-............|||w||||w||", + "-............|h''i|h''i|", + "-............|T'''|T'''|", + "-............|||+||||+||", + "-............|L__b|L__b|", + "-...........^|L__b|L__b|", + "|||ww||||ww|||||+||||+||", + "|yssssxFueSccq;___M@___|", + "w_____________________aw", + "w______________________w", + "|_yEEy___YttY__DBBy_H__|", + "|||ww|||ww||ww|||||||__|", + " 4 |>_|", + " ||||" + ], + "palettes": [ "roof_palette", "restaurant_wall_type" ], "terrain": { - "#": "t_linoleum_white", - "&": "t_linoleum_gray", - "+": [ [ "t_door_b", 20 ], [ "t_door_frame", 10 ], [ "t_door_o", 70 ], [ "t_door_c", 5 ], [ "t_door_locked_interior", 3 ] ], - ",": "t_pavement_y", - "-": "t_wall_r", - "C": [ - [ "t_window_frame", 70 ], - [ "t_window_empty", 20 ], - [ "t_window_domestic", 5 ], - "t_window_no_curtains", - "t_window_open", - "t_window_no_curtains_open", - [ "t_curtains", 5 ] - ], - "D": "t_door_locked", - "F": "t_linoleum_gray", - "G": "t_wall_glass", - "O": "t_linoleum_white", - "P": "t_linoleum_white", - "R": "t_linoleum_white", - "S": "t_linoleum_white", - "W": [ [ "t_window_frame", 70 ], [ "t_window_empty", 20 ], [ "t_window", 5 ] ], - "_": "t_pavement", - "d": "t_pavement", - "g": "t_linoleum_gray", - "w": "t_linoleum_white", - "{": "t_linoleum_gray", - "4": "t_gutter_downspout", - "<": "t_ladder_up", - "|": "t_wall_r" + "+": "t_door_c", + "^": "t_ladder_up", + "w": "t_window_domestic", + "h": "t_linoleum_white", + "T": "t_linoleum_white", + "i": "t_linoleum_white", + "'": "t_linoleum_white" }, "furniture": { - "#": "f_counter", - "&": "f_trashcan", - "B": "f_bench", - "F": "f_fridge", - "O": "f_oven", - "R": "f_woodstove", - "S": "f_sink", - "T": "f_table", - "^": "f_indoor_plant", - "d": "f_dumpster", - "{": "f_rack" + "h": "f_shower", + "i": "f_sink", + "x": "f_trashcan", + ";": "f_pinball_machine", + "M": "f_bigmirror", + "@": "f_mannequin", + "a": "f_armchair", + "u": "f_cupboard", + "q": "f_dishwasher", + "B": "f_bookcase", + "E": "f_entertainment_center", + "H": "f_rack_coat" }, - "toilets": { "P": { } }, - "place_items": [ - { "item": "restaur_table", "x": [ 3, 4 ], "y": [ 7, 8 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 8, 9 ], "y": [ 7, 8 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 14, 15 ], "y": [ 7, 8 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 19, 20 ], "y": [ 7, 8 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 3, 4 ], "y": [ 12, 13 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 8, 9 ], "y": [ 12, 13 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 14, 15 ], "y": [ 12, 13 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 19, 20 ], "y": [ 12, 13 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_bath", "x": 2, "y": [ 17, 18 ], "chance": 25 }, - { "item": "restaur_bath", "x": 2, "y": [ 20, 21 ], "chance": 25 }, - { "item": "restaur_fridge", "x": [ 7, 8 ], "y": 18, "chance": 20, "repeat": [ 2, 8 ] }, - { "item": "restaur_sink", "x": [ 10, 11 ], "y": 18, "chance": 25, "repeat": [ 2, 3 ] }, - { "item": "restaur_kitchen", "x": 9, "y": 18, "chance": 25, "repeat": [ 1, 8 ] }, - { "item": "restaur_kitchen", "x": [ 12, 13 ], "y": 18, "chance": 25, "repeat": [ 1, 8 ] }, - { "item": "restaur_kitchen", "x": [ 16, 17 ], "y": 18, "chance": 25, "repeat": [ 1, 8 ] }, - { "item": "restaur_rack", "x": [ 18, 19 ], "y": 18, "chance": 25, "repeat": [ 1, 6 ] }, - { "item": "restaur_trash", "x": [ 7, 8 ], "y": 20, "chance": 65, "repeat": [ 1, 3 ] }, - { "item": "restaur_kitchen", "x": [ 9, 11 ], "y": 20, "chance": 25, "repeat": [ 1, 8 ] }, - { "item": "restaur_kitchen", "x": [ 14, 16 ], "y": 20, "chance": 25, "repeat": [ 1, 8 ] }, - { "item": "restaur_trash", "x": [ 7, 8 ], "y": 22, "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "trash", "x": [ 7, 8 ], "y": 22, "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "trash", "x": [ 0, 17 ], "y": [ 22, 23 ], "chance": 20, "repeat": [ 1, 2 ] } - ], - "place_nested": [ { "chunks": [ [ "chef_s_restaurant", 5 ], [ "null", 95 ] ], "x": 7, "y": 18 } ], - "place_monsters": [ - { "monster": "GROUP_GROCERY", "x": [ 7, 19 ], "y": 19, "chance": 5 }, - { "monster": "GROUP_ROACH", "x": [ 7, 19 ], "y": 19, "chance": 20 } - ] + "item": { "L": { "item": "medium_disposable_cell", "chance": 30, "repeat": [ 1, 2 ] } }, + "items": { + "F": { "item": "SUS_fridge_breakroom", "chance": 30 }, + "x": { "item": "trash", "chance": 30, "repeat": [ 2, 4 ] }, + "B": { "item": "magazines", "chance": 30, "repeat": [ 3, 5 ] }, + "H": { "item": "coat_rack", "chance": 30, "repeat": [ 1, 4 ] }, + "S": { "item": "cleaning", "chance": 30, "repeat": [ 1, 3 ] }, + "s": { "item": "bed", "chance": 30 }, + "e": { "item": "oven", "chance": 30, "repeat": [ 1, 2 ] }, + "@": { "item": "foodperson_outfit", "chance": 30 }, + "L": [ { "item": "allclothes", "chance": 30, "repeat": [ 1, 2 ] }, { "item": "stash_drugs", "chance": 30 } ], + "E": { "item": "livingroom", "chance": 20, "repeat": [ 1, 2 ] }, + "t": [ + { "item": "snacks_fancy", "chance": 30, "repeat": [ 1, 4 ] }, + { "item": "dining", "chance": 20 }, + { "item": "fast_food", "chance": 30, "repeat": [ 1, 2 ] } + ], + "i": { "item": "softdrugs", "chance": 30, "repeat": [ 2, 3 ] }, + "c": [ { "item": "kitchen", "chance": 30, "repeat": [ 1, 5 ] }, { "item": "knifeblock", "chance": 30, "repeat": [ 1, 2 ] } ] + }, + "vendingmachines": { "D": { "item_group": "vending_drink", "lootable": true } }, + "place_loot": [ { "item": "television", "x": [ 3, 4 ], "y": 20, "repeat": 1, "chance": 100 } ], + "place_nested": [ { "chunks": [ [ "foodperson_break_room", 25 ], [ "null", 75 ] ], "x": 15, "y": 10 } ] } }, { @@ -325,228 +701,5 @@ { "monster": "GROUP_ROACH", "x": [ 13, 15 ], "y": 17, "chance": 15, "density": 0.1 } ] } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_restaurant_foodplace" ], - "weight": 100000, - "object": { - "fill_ter": "t_floor", - "rows": [ - "____,____,____,____,____", - "____,____,____,____,____", - "____,____,____,____,____", - "____,____,____,____,____", - "|-GGGGGG---++---GGGGGG-|", - "|......................|", - "C..BB...BB....BB...BB..C", - "W..TT...TT....TT...TT..W", - "W..TT...TT....TT...TT..W", - "C..BB...BB....BB...BB..C", - "|^....................^|", - "C..BB...BB....BB...BB..C", - "W..TT...TT....TT...TT..W", - "W..TT...TT....TT...TT..W", - "C..BB...BB....BB...BB..C", - "|---...................|", - "|Sg|...................|", - "|Pg+..|-------------|..|", - "|--|..|FF#SS##OO##{{|..|", - "|Pg+..|wgwgwgwgwgwgw|..|", - "|Sg|..|&&###RR###gwg+..|", - "|-----------------C-|6M|", - "______4dd___________|.<|", - "____________________|--|" - ], - "terrain": { - "#": "t_linoleum_white", - "&": "t_linoleum_gray", - "+": [ [ "t_door_b", 20 ], [ "t_door_frame", 10 ], [ "t_door_o", 70 ], [ "t_door_c", 5 ], [ "t_door_locked_interior", 3 ] ], - ",": "t_pavement_y", - "-": "t_wall_p", - "C": [ - [ "t_window_frame", 70 ], - [ "t_window_empty", 20 ], - [ "t_window_domestic", 5 ], - "t_window_no_curtains", - "t_window_open", - "t_window_no_curtains_open", - [ "t_curtains", 5 ] - ], - "D": "t_door_locked", - "F": "t_linoleum_gray", - "G": "t_wall_glass", - "M": "t_door_metal_locked", - "O": "t_linoleum_white", - "P": "t_linoleum_white", - "R": "t_linoleum_white", - "S": "t_linoleum_white", - "W": [ [ "t_window_frame", 70 ], [ "t_window_empty", 20 ], [ "t_window", 5 ] ], - "_": "t_pavement", - "d": "t_pavement", - "g": "t_linoleum_gray", - "w": "t_linoleum_white", - "{": "t_linoleum_gray", - "4": "t_gutter_downspout", - "6": "t_card_fp", - "<": "t_stairs_up", - "|": "t_wall_p" - }, - "furniture": { - "#": "f_counter", - "&": "f_trashcan", - "B": "f_bench", - "F": "f_fridge", - "O": "f_oven", - "R": "f_woodstove", - "S": "f_sink", - "T": "f_table", - "^": "f_indoor_plant", - "d": "f_dumpster", - "{": "f_rack" - }, - "toilets": { "P": { } }, - "place_items": [ - { "item": "restaur_table", "x": [ 3, 4 ], "y": [ 7, 8 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 8, 9 ], "y": [ 7, 8 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 14, 15 ], "y": [ 7, 8 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 19, 20 ], "y": [ 7, 8 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 3, 4 ], "y": [ 12, 13 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 8, 9 ], "y": [ 12, 13 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 14, 15 ], "y": [ 12, 13 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_table", "x": [ 19, 20 ], "y": [ 12, 13 ], "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_bath", "x": 2, "y": [ 17, 18 ], "chance": 25 }, - { "item": "restaur_bath", "x": 2, "y": [ 20, 21 ], "chance": 25 }, - { "item": "restaur_fridge", "x": [ 7, 8 ], "y": 18, "chance": 20, "repeat": [ 2, 8 ] }, - { "item": "restaur_sink", "x": [ 10, 11 ], "y": 18, "chance": 25, "repeat": [ 2, 3 ] }, - { "item": "restaur_kitchen", "x": 9, "y": 18, "chance": 25, "repeat": [ 1, 8 ] }, - { "item": "restaur_kitchen", "x": [ 12, 13 ], "y": 18, "chance": 25, "repeat": [ 1, 8 ] }, - { "item": "restaur_kitchen", "x": [ 16, 17 ], "y": 18, "chance": 25, "repeat": [ 1, 8 ] }, - { "item": "restaur_rack", "x": [ 18, 19 ], "y": 18, "chance": 25, "repeat": [ 1, 2 ] }, - { "item": "restaur_trash", "x": [ 7, 8 ], "y": 20, "chance": 25, "repeat": [ 1, 3 ] }, - { "item": "restaur_kitchen", "x": [ 9, 11 ], "y": 20, "chance": 25, "repeat": [ 1, 8 ] }, - { "item": "restaur_kitchen", "x": [ 14, 16 ], "y": 20, "chance": 25, "repeat": [ 1, 8 ] }, - { "item": "restaur_trash", "x": [ 7, 8 ], "y": 22, "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "trash", "x": [ 7, 8 ], "y": 22, "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "trash", "x": [ 0, 17 ], "y": [ 22, 23 ], "chance": 20, "repeat": [ 1, 2 ] } - ], - "place_nested": [ { "chunks": [ [ "chef_s_restaurant", 5 ], [ "null", 95 ] ], "x": 7, "y": 18 } ], - "place_zones": [ { "type": "NPC_INVESTIGATE_ONLY", "faction": "no_faction", "x": [ 7, 19 ], "y": [ 18, 20 ] } ], - "place_monsters": [ - { "monster": "GROUP_GROCERY", "x": [ 7, 19 ], "y": 19, "chance": 5 }, - { "monster": "GROUP_ROACH", "x": [ 7, 19 ], "y": 19, "chance": 20 } - ] - } - }, - { - "type": "mapgen", - "method": "json", - "om_terrain": [ "s_restaurant_foodplace_roof" ], - "weight": 30000, - "object": { - "fill_ter": "t_floor", - "rows": [ - " ", - " ", - " ", - " ", - "|......................3", - "|......................3", - "|......................3", - "|......................3", - "|......................3", - "|......................3", - "|............WWWWWWWWWWW", - "|............Wh,,sWh,,sW", - "|............WT,,,WT,,,W", - "|............WWWDWWWWDWW", - "|............Wl,,bWl,,bW", - "|...........[Wl,,bWl,,bW", - "WwWWWWwWWWWWWWWWDWWWWDWW", - "Wpccccvfuosrrq;,,,M@,,,W", - "W,,,,,,,,,,,,,,,,,,,,,aW", - "w,,,,,,,,#tt#,,,,,,,,,,w", - "Wpttttp,,#tt#,,VBBp,H,,W", - "WWWwWWWWWWWwWWWWWWWWW,,W", - " Wl>W", - " WWWW" - ], - "terrain": { - ".": "t_flat_roof", - " ": "t_open_air", - "W": "t_wall_p", - "D": "t_door_c", - "[": "t_ladder_up", - "w": "t_window_domestic", - "|": "t_gutter_west", - ",": "t_floor", - "-": "t_gutter_south", - "3": "t_gutter_east", - ">": "t_stairs_down", - "5": "t_gutter_drop" - }, - "toilets": { "T": { } }, - "furniture": { - "&": "f_roof_turbine_vent", - "l": "f_locker", - "b": "f_bench", - "h": "f_shower", - "V": "f_vending_c", - "s": "f_sink", - "v": "f_trashcan", - ";": "f_pinball_machine", - "c": "f_sofa", - "t": "f_table", - "M": "f_bigmirror", - "@": "f_mannequin", - "a": "f_armchair", - "r": "f_counter", - "u": "f_cupboard", - "f": "f_fridge", - "o": "f_oven", - "q": "f_dishwasher", - "#": "f_stool", - "B": "f_bookcase", - "p": "f_indoor_plant", - "H": "f_rack_coat" - }, - "place_items": [ - { "item": "kitchen", "x": [ 11, 12 ], "y": [ 17 ], "chance": 50, "repeat": [ 5, 10 ] }, - { "item": "cleaning", "x": [ 10 ], "y": [ 17 ], "chance": 50, "repeat": [ 1, 3 ] }, - { "item": "knifeblock", "x": [ 11, 12 ], "y": [ 17 ], "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "trash", "x": [ 6 ], "y": [ 17 ], "chance": 50, "repeat": [ 2, 4 ] }, - { "item": "SUS_fridge_breakroom", "x": [ 7 ], "y": [ 17 ], "chance": 20 }, - { "item": "oven", "x": [ 9 ], "y": [ 17 ], "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "bed", "x": [ 2, 5 ], "y": [ 17 ], "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "dining", "x": [ 10, 11 ], "y": [ 19, 20 ], "chance": 40, "repeat": [ 1, 2 ] }, - { "item": "vending_drink_items", "x": [ 15 ], "y": [ 20 ], "chance": 5, "repeat": [ 5, 20 ] }, - { "item": "snacks_fancy", "x": [ 2 ], "y": [ 20 ], "chance": 20, "repeat": [ 1, 4 ] }, - { "item": "snacks_fancy", "x": [ 2 ], "y": [ 17 ], "chance": 20, "repeat": [ 1, 4 ] }, - { "item": "snacks_fancy", "x": [ 22 ], "y": [ 18 ], "chance": 20, "repeat": [ 1, 4 ] }, - { "item": "fast_food", "x": [ 10, 11 ], "y": [ 19, 20 ], "chance": 20, "repeat": [ 1, 8 ] }, - { "item": "magazines", "x": [ 2 ], "y": [ 17 ], "chance": 30, "repeat": [ 3, 5 ] }, - { "item": "magazines", "x": [ 16, 17 ], "y": [ 20 ], "chance": 20, "repeat": [ 3, 5 ] }, - { "item": "coat_rack", "x": [ 20 ], "y": [ 20 ], "chance": 20, "repeat": [ 1, 4 ] }, - { "item": "stash_drugs", "x": [ 1 ], "y": [ 20 ], "chance": 30, "repeat": [ 1, 2 ] }, - { "item": "livingroom", "x": [ 2, 5 ], "y": [ 20 ], "chance": 50, "repeat": [ 1, 2 ] }, - { "item": "allclothes", "x": [ 13 ], "y": [ 14, 15 ], "chance": 50, "repeat": [ 3, 4 ] }, - { "item": "allclothes", "x": [ 19 ], "y": [ 14, 15 ], "chance": 50, "repeat": [ 3, 4 ] }, - { "item": "softdrugs", "x": [ 17 ], "y": [ 11 ], "chance": 20, "repeat": [ 2, 3 ] }, - { "item": "softdrugs", "x": [ 22 ], "y": [ 11 ], "chance": 20, "repeat": [ 2, 3 ] } - ], - "place_loot": [ - { "item": "television", "x": [ 3, 4 ], "y": 20, "repeat": 1, "chance": 50 }, - { "item": "foodperson_mask", "x": 19, "y": 17, "repeat": 1, "chance": 50 }, - { "item": "cape_fp", "x": 19, "y": 17, "repeat": 1, "chance": 50 }, - { "item": "chestguard_hard", "x": 19, "y": 17, "repeat": 1, "chance": 50 }, - { "item": "legguard_hard", "x": 19, "y": 17, "repeat": 1, "chance": 50 }, - { "item": "armguard_hard", "x": 19, "y": 17, "repeat": 1, "chance": 50 }, - { "item": "gloves_rubber", "x": 19, "y": 17, "repeat": 1, "chance": 50 }, - { "item": "boots_rubber", "x": 19, "y": 17, "repeat": 1, "chance": 50 }, - { "item": "medium_disposable_cell", "x": 21, "y": 22, "repeat": 5, "chance": 50 } - ], - "place_nested": [ { "chunks": [ [ "foodperson_break_room", 5 ], [ "null", 95 ] ], "x": 15, "y": 10 } ] - } } ] diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/robofac_hq_chunks.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/robofac_hq_chunks.json index 5a769c406..5f200d7c0 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/robofac_hq_chunks.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/robofac_hq_chunks.json @@ -45,7 +45,25 @@ "F": { "item": "pot", "chance": 50 }, "v": { "item": "jug_plastic", "chance": 50 } }, - "place_loot": [ { "group": "NC_ROBOFAC_INTERCOM_trade", "chance": 100, "x": 2, "y": [ 2, 4 ], "repeat": [ 9, 15 ] } ] + "place_zones": [ + { "type": "LOOT_UNSORTED", "faction": "free_merchants", "x": 2, "y": [ 2, 4 ] }, + { + "type": "LOOT_ITEM_GROUP", + "filter": "NC_ROBOFAC_FREE_MERCHANT_misc", + "faction": "free_merchants", + "x": 2, + "y": 2 + }, + { + "type": "LOOT_ITEM_GROUP", + "filter": "NC_ROBOFAC_FREE_MERCHANT_misc", + "faction": "free_merchants", + "x": 2, + "y": 4 + } + ], + "//": "migration from older saved games - remove older shop stocks", + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] } } ] diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_camping.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_camping.json index 6f9f35fca..264e4e3d1 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_camping.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_camping.json @@ -25,7 +25,7 @@ ".# ssssss y#________g..", ".# ||||||b|#;_K__jjj#..", ".# |ooo===q###hh#####..", - ".#|b|oop===q#mm__illlg..", + ".#|b|ooo===q#mm__illlg..", ".#z |=======b_____lllg..", ".# |rr=====b________h..", ";#AB|krr==kk#iii_____g..", @@ -39,13 +39,13 @@ "c": "t_wall_glass", ".": "t_region_groundcover_urban", "`": "t_sidewalk", - "_": "t_pavement", + "_": "t_concrete", "g": "t_chainfence_v", "h": "t_chaingate_c", - "i": "t_pavement", - "j": "t_pavement", - "l": "t_pavement", - "m": "t_pavement", + "i": "t_concrete", + "j": "t_concrete", + "l": "t_concrete", + "m": "t_concrete", "=": "t_thconc_floor", "o": "t_thconc_floor", "p": "t_thconc_floor", @@ -54,11 +54,11 @@ "k": "t_thconc_floor", "s": "t_linoleum_gray", "t": "t_linoleum_gray", - "v": "t_pavement", - "w": "t_pavement", - "x": "t_pavement", - "K": "t_pavement", - "G": "t_pavement", + "v": "t_concrete", + "w": "t_concrete", + "x": "t_concrete", + "K": "t_concrete", + "G": "t_concrete", ";": "t_gutter_downspout" }, "furniture": { @@ -69,14 +69,13 @@ "r": "f_camp_chair", "k": "f_tourist_table", "l": "f_dumpster", - "m": "f_crate_c", - "o": "f_crate_c", - "p": "f_crate_o", + "m": [ "f_crate_c", "f_cardboard_box" ], + "o": [ "f_crate_c", "f_cardboard_box" ], "q": "f_bench", "s": "f_rack", "ƃ": "f_counter_gate_c", "t": "f_counter", - "u": "f_console_broken", + "u": "f_counter", "v": "f_groundsheet", "w": "f_canvas_wall", "x": "f_canvas_door", @@ -107,7 +106,8 @@ { "group": "camping", "chance": 20, "x": [ 5, 6 ], "y": 17 }, { "group": "hand_tools", "chance": 20, "x": 7, "y": 17 }, { "group": "cannedfood", "chance": 20, "x": [ 5, 6 ], "y": 18 } - ] + ], + "items": { "u": { "item": "cash_register_random", "chance": 100 } } } } ] diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_clothing.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_clothing.json index c2de828ea..f46e4f2f5 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_clothing.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_clothing.json @@ -128,27 +128,27 @@ "om_terrain": "s_clothes_roof_4", "weight": 100000, "object": { - "fill_ter": "t_flat_roof", + "fill_ter": "t_floor", "rows": [ " ", " ", " ", - " |222222222222222222223 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |....................3 ", - " |.....^..............4 ", - " |---5-----%%%%%%+%%%%% ", - " %>%LL__z___% ", - " %_%__z___z_% ", - " %___z____zz% ", - " %zz_ddddzzz% ", + " ---------------------- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -.....&..............4 ", + " ----5-----%%%%%%+%%%%% ", + " %>%LL__C___% ", + " %_%__C___C_% ", + " %___C____CC% ", + " %CC_ddddCCC% ", " %%%%HHHH%%%% ", " ", " ", @@ -156,18 +156,10 @@ " " ], "palettes": [ "roof_palette" ], - "terrain": { - "%": "t_wall_b", - ">": "t_stairs_down", - "H": "t_wall_glass", - "z": "t_floor", - "L": "t_floor", - "d": "t_floor", - "+": "t_door_c" - }, - "furniture": { "^": "f_roof_turbine_vent", "z": "f_cardboard_box", "d": "f_mannequin" }, + "terrain": { "%": "t_wall_b", "H": "t_wall_glass", "+": "t_door_c", "&": "t_flat_roof" }, + "furniture": { "C": "f_cardboard_box", "d": "f_mannequin" }, "items": { - "z": [ + "C": [ { "item": "dresses_womens", "chance": 20 }, { "item": "shirts_summer_womens", "chance": 20 }, { "item": "pants_summer_womens", "chance": 20 } diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_electronics.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_electronics.json index efc4cabf9..5879f0459 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_electronics.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_electronics.json @@ -93,7 +93,6 @@ { "item": "electronics", "x": [ 14, 17 ], "y": 14, "chance": 25 }, { "item": "snacks", "x": 16, "y": 9, "chance": 25 }, { "item": "magazines", "x": 16, "y": 9, "chance": 20 }, - { "item": "autodoc_installation_programs", "x": 21, "y": [ 12, 13 ], "chance": 85, "repeat": [ 1, 4 ] }, { "item": "trash", "x": 18, "y": 15, "chance": 65 }, { "item": "trash", "x": [ 15, 17 ], "y": [ 20, 21 ], "chance": 80 } ], diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_gas.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_gas.json index 45e5c722f..e98c3ef56 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_gas.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_gas.json @@ -85,8 +85,43 @@ "########~##############]", " 4 ]]]]]]]]]]]]]]]]" ], - "palettes": [ "road" ], - "terrain": { "P": "t_sidewalk", "4": "t_gutter_downspout" }, + "terrain": { + " ": [ [ "t_region_groundcover", 8 ], "t_region_shrub" ], + "_": "t_pavement", + "!": "t_pavement", + "#": "t_wall_w", + "+": "t_door_c", + "~": "t_door_locked", + "/": "t_door_glass_c", + "x": "t_wall_glass", + ":": "t_pavement_y", + "*": "t_tree", + "A": "t_atm", + "Á": "t_concrete", + "]": "t_concrete", + ".": "t_thconc_floor", + "4": "t_gutter_downspout" + }, + "furniture": { + "&": "f_trashcan", + "{": "f_glass_fridge", + "1": [ "f_indoor_plant", "f_indoor_plant_y" ], + "C": "f_counter", + "H": "f_sofa", + "c": "f_chair", + "s": "f_stool", + "t": "f_table", + "r": "f_rack", + "l": "f_locker", + "f": "f_fridge", + "o": "f_oven", + "S": "f_sink", + "T": "f_toilet", + "Á": "f_rack" + }, + "toilets": { "T": { } }, + "gaspumps": { "!": { } }, + "vendingmachines": { "D": { "item_group": "vending_drink" }, "F": { "item_group": "vending_food" } }, "signs": { "P": { "signage": "Wide selection of storage batteries! Discounts!" } }, "items": { "l": { "item": "cleaning", "chance": 70 }, "&": { "item": "trash_cart", "chance": 50 } }, "place_loot": [ diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_gas_b11.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_gas_b11.json index 51d17b488..9a540ef4e 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_gas_b11.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_gas_b11.json @@ -5,65 +5,49 @@ "om_terrain": [ "s_gas_b11" ], "weight": 10000, "object": { - "fill_ter": "t_soil", + "fill_ter": "t_thconc_floor", "rows": [ " ", - " eeeee ", - " ehghe ", - " ehhhe ", - " eeeeeeeeAee ", - " eadaapeebee ", - " eacAjjeaaae ", - " eaeeeeeaaae ", - " eeeeeadarpecfcee ", - " ePAPeacAjjeaaaqe ", - " ePaPeaeeeeeaAaee ", - " eefeeadaapeaAaee ", - " eaaaeacAjjeaaaqe ", - " eaAicaeeeeeebeee ", - " ealicadaapeeAee ", - " eeeeaaaeacAjjeebee ", - " eaaeebeebeeeeeaaae ", - " eoAbaaaaAaaaafaake ", - " eaaeeeeeaeeceeAake ", - " eeeeenAeaeaAicaake ", - " emababalicaaae ", - " eeeeeeeeeeeeee ", + " ||||| ", + " |hgh| ", + " |hhh| ", + " ||||||||;|| ", + " |.|..p||b|| ", + " |.b;jj|...| ", + " |.|||||...| ", + " |||||.|.rp|cfc|| ", + " |P;P|.b;jj|...q| ", + " |P.P|.|||||.;.|| ", + " ||f||.|.rp|.;.|| ", + " |...|.b;jj|...q| ", + " |.;ic.||||||b||| ", + " |.lic.|.rp||;|| ", + " ||||r..|.b;jj||b|| ", + " |..||b||b|||||...| ", + " |o;b...r;r...f..k| ", + " |..|||||.||c||;.k| ", + " |||||n;|.|.;ic..k| ", + " |m.b.b.lic.r.| ", + " |||||||||||||| ", " ", " " ], "terrain": { - "a": "t_thconc_floor", - "A": "t_thconc_floor_olight", + " ": "t_soil", + ".": "t_thconc_floor", + "r": "t_thconc_floor", + ";": "t_thconc_floor_olight", "b": "t_door_metal_c", "c": "t_reinforced_glass", "d": "t_reinforced_door_glass_c", - "e": "t_strconc_wall", + "|": "t_strconc_wall", "f": "t_door_metal_locked", "g": "t_ladder_up", "h": "t_metal_floor", - "i": "t_thconc_floor", - "j": "t_thconc_floor", - "k": "t_thconc_floor", - "l": "t_thconc_floor", - "m": "t_thconc_floor", - "n": "t_thconc_floor", - "o": "t_stairs_down", - "p": "t_thconc_floor", - "P": "t_thconc_floor", - "q": "t_thconc_floor", - "r": "t_thconc_floor" - }, - "furniture": { - "i": "f_table", - "j": "f_bed", - "k": "f_bench", - "l": "f_chair", - "m": "f_toilet", - "n": "f_sink", - "p": "f_locker", - "P": "f_locker" + "o": "t_stairs_down" }, + "furniture": { "i": "f_desk", "j": "f_bed", "k": "f_metal_bench", "l": "f_chair", "n": "f_sink", "p": "f_locker", "P": "f_locker" }, + "toilets": { "m": { } }, "items": { "j": { "item": "bed", "chance": 80 }, "k": { "item": "snacks", "chance": 60 }, diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_hunting.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_hunting.json index 7eacbf371..a80682da1 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_hunting.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_hunting.json @@ -88,7 +88,7 @@ { "group": "guns_rifle_common", "x": 2, "y": 13, "chance": 20 }, { "group": "guns_shotgun_common", "x": 2, "y": 14, "chance": 20 }, { "group": "SUS_hunting_archery", "x": 2, "y": 15, "chance": 20 }, - { "group": "lodge_archery_ammo", "x": 2, "y": 16, "chance": 20 }, + { "group": "archery_ammo", "x": 2, "y": 16, "chance": 20 }, { "group": "archery_mods", "x": 2, "y": 17, "chance": 20 }, { "group": "gun_cases", "x": [ 3, 9 ], "y": 6, "chance": 20 }, { "group": "clothing_hunting", "x": [ 3, 9 ], "y": [ 8, 9 ], "chance": 20 }, diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_lightindustry.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_lightindustry.json index 7e801449c..867f831af 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/s_lightindustry.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/s_lightindustry.json @@ -215,11 +215,13 @@ { "group": "elecsto_diy", "chance": 20, "repeat": 4, "x": [ 34, 39 ], "y": [ 12, 14 ] }, { "group": "elecsto_diy", "chance": 20, "repeat": 4, "x": [ 34, 37 ], "y": [ 4, 5 ] } ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": [ 2, 22 ], "y": [ 7, 14 ], "density": 0.2 }, - { "monster": "GROUP_ZOMBIE", "x": [ 25, 42 ], "y": [ 7, 14 ], "repeat": [ 1, 2 ], "density": 0.2 }, - { "monster": "GROUP_ZOMBIE", "x": [ 2, 22 ], "y": [ 60, 71 ], "density": 0.2 }, - { "monster": "GROUP_ZOMBIE", "x": [ 25, 42 ], "y": [ 60, 71 ], "repeat": [ 1, 2 ], "density": 0.2 } + "place_monster": [ + { "group": "GROUP_VANILLA", "x": [ 2, 22 ], "y": [ 7, 14 ], "chance": 75, "repeat": [ 6, 12 ] }, + { "group": "GROUP_VANILLA", "x": [ 25, 42 ], "y": [ 7, 14 ], "chance": 35, "repeat": [ 2, 6 ] }, + { "group": "GROUP_VANILLA", "x": [ 2, 22 ], "y": [ 60, 71 ], "chance": 75, "repeat": [ 6, 12 ] }, + { "group": "GROUP_VANILLA", "x": [ 25, 42 ], "y": [ 60, 71 ], "chance": 35, "repeat": [ 2, 6 ] }, + { "group": "GROUP_SMALL_STATION", "x": [ 25, 42 ], "y": [ 7, 14 ], "chance": 75, "repeat": [ 3, 6 ] }, + { "group": "GROUP_SMALL_STATION", "x": [ 25, 42 ], "y": [ 60, 71 ], "chance": 75, "repeat": [ 3, 6 ] } ], "place_vehicles": [ { "vehicle": "cube_van", "x": 31, "y": 50, "chance": 30, "rotation": 270, "status": -1 } ] } diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/school_1.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/school_1.json index 660d3ae65..6bbf89f1a 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/school_1.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/school_1.json @@ -20,12 +20,12 @@ "sLLLLLLL_______LLLLLLLss $|hddha^hddh| $ ss $ |......................w ", "s_____________________ss $whddh..hddh| ss |B.....dh.dh.dh.dh.dh..w ", "s_____________________ss $whddh..hddh|$$$ss$$$|......dh.dh.dh.dh.dh..w ", - "s_____________________ss $w..........||w|++|w||..d..................nw ", + "s_____________________§s $w..........||w|++|w||..d..................nw ", "sLLLLLLL_______LLLLLLLss $|cccc..cccc|^....|6D|.hd...dh.dh.dh.dh.dh.n| ", "s_____________________sssss+................whD|..d...dh.dh.dh.dh.dh.n| ", "s_____________________sssss+................w.D|.dd..................nw ", "s_____________________ss $|.#####...Y|.....|.F|......dh.dh.dh.dh.dh..w ", - "sLLLLLLL_______LLLLLLLss ||||||||||+|||w|++|+||x.....dh.dh.dh.dh.dh..w ", + "sLLLLLLL_______LLLLLLL§s ||||||||||+|||w|++|+||x.....dh.dh.dh.dh.dh..w ", "s_____________________ss |^.D..oo|...|.......n|x.....................w ", "s_____________________ss $w.MD....|..#|l......n|.......Y####...ll....^| ", "s_____________________ss $w..D.M..+..#|l......n||||+++||||||||||||||||| ", @@ -67,7 +67,7 @@ "w,::::,,,,,,,,,,,,::::,w $$ sss $$ $ / / $ f ", "w,:,,,,,,,,,,,,,,,,,,:,w $$ sssss $$ $$ / / ;f ", "w,:,,,,,,,,::,,,,,,,,:,w $$ sssssss $$ ; / / f ", - "|,:,,,,,,,:,,:,,,,,,,:,|$$$ $$ sssIsss $$ mmm / f ", + "|,:,,,,,,,:,,:,,,,,,,:,|$$$ $$ sss§sss $$ mmm / f ", "|,::::::::::::::::::::,|$;$ $$ sssssss $$ mmm f ", "|,:,,,,,,,:,,:,,,,,,,:,|$$$ $$ sssssss $$ mmm ==== f ", "|,:,,,,,,,,::,,,,,,,,:,||| $$ sssss $$ ==== b f ", @@ -86,7 +86,7 @@ ], "palettes": [ "school_palette" ], "place_items": [ ], - "place_item": [ { "item": "american_flag", "x": 36, "y": 58, "amount": 1 } ], + "place_item": [ { "item": "american_flag", "x": 36, "y": 56, "amount": 1 } ], "place_monsters": [ { "monster": "GROUP_SCHOOL", "x": [ 0, 23 ], "y": [ 0, 23 ], "repeat": [ 1, 1 ], "density": 0.1 }, { "monster": "GROUP_SCHOOL", "x": [ 25, 46 ], "y": [ 1, 22 ], "repeat": [ 1, 2 ], "density": 0.1 }, @@ -106,7 +106,7 @@ "type": "mapgen", "method": "json", "om_terrain": [ - [ "school_2_3", "school_2_2", "school_2_1" ], + [ "null", "school_2_2", "school_2_1" ], [ "school_2_6", "school_2_5", "school_2_4" ], [ "school_2_9", "school_2_8", "school_2_7" ] ], @@ -203,7 +203,7 @@ "type": "mapgen", "method": "json", "om_terrain": [ - [ "school_3_3", "school_3_2", "school_3_1" ], + [ "null", "school_3_2", "school_3_1" ], [ "school_3_6", "school_3_5", "school_3_4" ], [ "school_3_9", "school_3_8", "school_3_7" ] ], @@ -300,7 +300,7 @@ "type": "mapgen", "method": "json", "om_terrain": [ - [ "school_4_3", "school_4_2", "school_4_1" ], + [ "null", "school_4_2", "school_4_1" ], [ "school_4_6", "school_4_5", "school_4_4" ], [ "school_4_9", "school_4_8", "school_4_7" ] ], @@ -427,6 +427,7 @@ "_": "t_pavement", "f": "t_chainfence_h", "s": "t_sidewalk", + "§": "t_sidewalk", "w": "t_window", "P": "t_curtains", "|": "t_wall_y", @@ -489,12 +490,13 @@ "A": "f_glass_cabinet", "^": [ "f_indoor_plant", "f_indoor_plant_y" ], "[": "f_home_furnace", - "]": "f_water_heater", + "]": [ "f_water_heater", "f_water_heater_family" ], "0": "f_standing_tank", "!": "f_server", "{": "f_small_satelitte_dish", "K": "f_TV_antenna", - "E": "f_air_conditioner" + "E": "f_air_conditioner", + "§": "f_flagpole" }, "toilets": { "T": { } }, "items": { diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/sewage_treatment.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/sewage_treatment.json index 2be850060..6cea05bfd 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/sewage_treatment.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/sewage_treatment.json @@ -1,124 +1,4 @@ [ - { - "type": "mapgen", - "method": "json", - "om_terrain": [ [ "sewage_treatment_0_0_0", "sewage_treatment_1_0_0" ], [ "sewage_treatment_0_1_0", "sewage_treatment_1_1_0" ] ], - "weight": 25000, - "object": { - "fill_ter": "t_floor", - "rows": [ - "|||_.......pp......._|||||||||||||||||||||||||||", - "| _................_ ? ? ? ??? ? ? 9 |", - "| _.......pp......._ HHWHWHHHWHWWWHWHHHWHH |", - "| _................_ ? H^,6#,H,d,,,,,d,H^d,H |", - "| _.......pp......._____W,,d,,H#6,,#,,6#H,6#W?|", - "| _................_ _D,,,,,D,,,666,,,+,d,H |", - "|___................___ H^[[,^H,,,,,,,,,H,,,W?|", - "|.....................__ HHHH+HHqr*,,,[[qH[[[H |", - "|.....................__?W##,,fHHHHHDHHHHHHHHH |", - "|.....................__ Hdd,,cH,,,,,,,,,8HtH |", - "|......p......p.......__ HH+HH+H,,HH+HH+HbHHHH |", - "|.....................__ Hl,Hl,H,,Hx,Hx,Hm74%H |", - "|......p......p.......__ Hl,Hl,H,,H,,H,,HmmmgH |", - "|.....................__ Hl,Hl,H,,HrTHrTHmmm{H |", - "||||||||||||||||||||||CC|HHHHHHH++HHHHHHH{mm{H |", - "|zzzzzzzzzzzzzzzzzz __ AAA __ H{mm{H |", - "|zwwwwwwwwm)))))))z __ __ ? ? ?H{mm{H |", - "|zwwwwwwwwm)))))))z __ __ H{mm{H |", - "|zzzzzzzzzzzzzzzzzz____________________ HmmMMH |", - "|zwwwwwwwwmwwwwwwwz __________________bmmMMH |", - "|zwwwwwwwwmwwwwwwwz __ HHHHHH |", - "|zzzzzzzzzzzzzzzzzz111111111111 __ |", - "||||||C|||||||||||||1|||||||||||||| __ |", - "| zzzzzzz 1111111111 ______OOO |", - "| zzwwwwwzz 1HHHHHHH1 ? ? HHHHHHHH __ --b--- |", - "|zzwwwwwwwzz1H11&%RH0 HJJFUYYH __ -&m$&- |", - "|zwwwwwwwwwz H1ttttH ? ? WgttttgW __ -%mm%- |", - "|zwwwwwwwwwz H|||C|H H6ttttGH __ W&mm&W |", - "|zwww!!!wwwz _ ? ? |||CC||| __ -Mmm%- |", - "|zwww!@!wwwz OO _ __ __ -Rmm&- |", - "|zwww!@!wwwz OO _ _________________bmmm%W |", - "|zzww!@!wwzz____________________________-&%$&- |", - "| zzw!@!wzz_____________ __ --W--- |", - "| zzzzzzz_________ __ O |", - "| zzzzzzz____zzzzzzz zzzzzzzzzzzzzzzzzz 1 |", - "| zz)))))zz__zzw!@!wzz z~~~~zz~~~~zz~~~~z 1 |", - "|zz)))))))zzzzww!@!wwzz z~~~~zz~~~~zz~~~~z 1 |", - "|z)))))))))zzwww!@!wwwz z~~~~zz~~~~zz~~~~z 11|", - "|z))))!!!!!zzwww!@!wwwz z~~~~zz~~~~zz~~~~z $1|", - "|z))))!@@@@zzwww!!!wwwz z~~~~zz~~~~zz~~~~z111|", - "|z))))!!!!!zzwwwwwwwwwz z~~~~zz~~~~zz~~~~z 1 |", - "|z)))))))))zzwwwwwwwwwz z~~~~zz~~~~zz~~~~z11 |", - "|zz)))))))zzzzwwwwwwwzz z~~~~zz~~~~zz~~~~z 1 |", - "| zz)))))zz zzwwwwwzz z~~~~zz~~~~zz~~~~z11 |", - "| zzzzzzz zzzzzzz zzzzzzzzzzzzzzzzzz |", - "||||||||||||||||||||||||||||||||||||||||||||||||" - ], - "palettes": [ "sewage_treatment_palette" ], - "furniture": { - "#": "f_chair", - "x": "f_sink", - "4": "f_heavy_lathe", - "7": "f_drill_press", - "*": "f_shredder", - "[": "f_glass_cabinet", - "^": "f_indoor_plant", - "A": "f_dumpster", - "c": "f_counter", - "R": "f_rack", - "d": "f_desk", - "f": "f_fridge", - "g": "f_workbench", - "q": "f_indoor_plant_y", - "l": "f_locker", - "r": "f_trashcan", - "{": "f_utility_shelf", - "O": "f_standing_tank" - }, - "place_signs": [ - { "signage": "Authorized personnel only", "x": 21, "y": 1 }, - { "signage": " sewage treatment plant", "x": 2, "y": 1 } - ], - "place_liquids": [ - { "liquid": "sewage", "chance": 1, "amount": [ 2, 3 ], "x": [ 43, 45 ], "y": 25, "repeat": [ 1, 3 ] }, - { "liquid": "water", "chance": 1, "amount": [ 40, 60 ], "x": [ 13, 14 ], "y": [ 31, 32 ], "repeat": [ 2, 4 ] } - ], - "items": { - "g": { "item": "supplies_hardware", "chance": 40 }, - "R": { "item": "tools_plumbing", "chance": 60 }, - "M": { "item": "treatment_chemicals", "chance": 80 }, - "A": { "item": "trash", "chance": 80 }, - "{": [ { "item": "sewage_plant", "chance": 30 }, { "item": "supplies_plumbing", "chance": 20 } ], - "f": { "item": "fridgesnacks", "chance": 70, "repeat": [ 1, 3 ] }, - "c": { "item": "office_breakroom", "chance": 60, "repeat": [ 1, 2 ] }, - "l": { "item": "clothing_work_set", "chance": 40 }, - "d": { "item": "office", "chance": 60 }, - "a": { "item": "trash", "chance": 30, "repeat": [ 1, 3 ] }, - "r": { "item": "trash", "chance": 30 }, - "[": { "item": "office_mess", "chance": 50, "repeat": [ 1, 3 ] } - }, - "computers": { - "8": { - "name": "EnviroCom OS v2.03 - Basement Access", - "security": 1, - "options": [ { "name": "Unlock stairs", "action": "open" } ], - "failures": [ { "action": "shutdown" }, { "action": "alarm" } ] - } - }, - "toilets": { "T": { } }, - "place_vehicles": [ - { "vehicle": "pump_station_vehicles", "x": 5, "y": 13, "rotation": 90, "chance": 20, "status": 1 }, - { "vehicle": "pump_station_vehicles", "x": 11, "y": 13, "rotation": 90, "chance": 20, "status": 1 }, - { "vehicle": "pump_station_vehicles", "x": 19, "y": 13, "rotation": 90, "chance": 20, "status": 1 } - ], - "place_monsters": [ - { "monster": "GROUP_ZOMBIE", "x": [ 33, 40 ], "y": [ 3, 11 ], "density": 0.2 }, - { "monster": "GROUP_ZOMBIE", "x": [ 25, 44 ], "y": [ 32, 36 ], "density": 0.2 } - ] - } - }, { "type": "mapgen", "method": "json", @@ -130,54 +10,54 @@ "object": { "fill_ter": "t_dirt", "rows": [ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%%%%", - "%%%%~###########################~~~~~~~~###########################~%%%%", - "%%%%~#222222222HHHbHHHH%%%%%%%%#%%AAAA%%#%%%%%HHHHbHHH222222222222#~%%%%", - "%%%%~#2%%%%%%%22&....UH%%%%%%%%##xxxxxx##%%%%%HU....&22%%%%%%%%%%2#~%%%%", - "%%%%~#2%%%%%%%%H$&$&@&H%%HHHHHHHHHHHHHHHHHHH%%H&@&$&$H%%%%%%%%%%%2#~%%%%", - "%%%%~#2%%%%%%%%HHHHHHHH%%H0001[.IHD6[[D61.IH%%HHHHHHHH%%%%%%%%%%%2#~%%%%", - "%%%%~#22%%%%%%%%%%%%%%%%%H0c....fH.c...c..fHHHHHLH%%%%%%%%%%%%%%22#~%%%%", - "%%%%`##2%%%%%%%%%%%%%%%%%Hh......+.........+...+.H%%%%%%%%%%%%%%2##`%%%%", - "%%%%!%#2%%%%%%%HHHH%%%%%%H0c....fH.c...c..fHH..HLH%%%%%%%%%%%%%%2#%!%%%%", - "~~~~~~x2~~~~%%%HL.H%%%%%%H0001[.IHD6[[D61.IHH..HHHHHHHHHHH%%~~~~2x~~~~~~", - "~~~~~~x2~~~~~%%HH+HHHHHHHHHHHHHHHHHHHHHHHHHH>..+..&TTT&wwH%~~~~~2x~~~~~~", - "~~~~~~x2~~~~~%%H...............................H........wH%~~~~~2x~~~~~~", - "~~~~~~xx~~~~%%%H...............................H&...8...&H%%~~~~xx~~~~~~", - "%%%%%~#2%%%%%%%HH+HHHH+HHH..HHHHHHHHHHHHHHHHH..H$#######$H%%%%%%2#~%%%%%", - "%%%%%~#2%%%%%%%Hn..lHn..lH..H%%HIf6666;fH%%%H..H@...@...@H%%%%%%2#~%%%%%", - "%%%%%~#2%%%%%%%HH+HHHH+HHH..HHHH........HHHHH..H#...#...#H%%%%%%2#~%%%%%", - "%%%%%~#2%%%%%%%Hq..qHq..qH.....+........+......H$&$&@&$&$H%%%%%%2#~%%%%%", - "%%%%%~#2%%%%%%%Hq..qHq..qH..HHHHc......cHHHHH..HHHHHHHHHHH%%%%%%2#~%%%%%", - "%%%%%~#2%%%%%%%HHHHHHHHHHH..H%%H6tttttt6H%%%H..H%%%%%%%%%%%%%%%%2#~%%%%%", - "%%%%%~#2%%%%%%%%%%%%%%%%%H..H%%H--------H%%%H..H%%%%%%%%%%%%%%%%2#~%%%%%", - "%%%%%~#2%%%%%%%%%%%%%%%%%H..H%%#vvvvvvvv2%%%H..H%%%%%%%%%%%%%%%%2#~%%%%%", - "%%%%%~#2%%%%%%%%%%%%%%%%%H..H%%#a~~~~~~~2%%%H..H%%%%%%%%%%%%%%%%2#~%%%%%", - "%%%%%~#2%%%%%%%%%%%%%%%%%H..H%%#a~~~~~~~2%%%HbbH%%%%%%%%%%%%%%%%2#~%%%%%", - "%%%%%~#2%%%%%%%%HHHHHHHHHH..HHHbH~~~~~~%22222..2%%%%%%%%%%%%%%%%2#~%%%%%", - "%%%%%~#2%%%HHHHHHww.............b##~~~%%%%%%%..22%%%%%%%%%%%%%%%2#~%%%%%", - "%%%%%~#2%%%H{{{{Hw...HHHHHHHHHHHH!*!!!%%%%%%%...22222222222222222#`%%%%%", - "%%%%%`#2%%%H....C...^H%%%%%%%%~~~`````~~~~%%%....................#!%%%%%", - "%%%%%!#2%%%H{{{{H....H%%%%%%%~~~~~~~~~~~~~~%%%.%%%%%%%%%%%%%%{{%%~~%%%%%", - "%%%%~~##%%%HHHHHHHHbHH%%%%%%~~~~~~~~~~~~~~~~%%b%%%%%%%%%%%%%%%%%~~~~%%%%", - "%%%~~~~############x~~~~~~~~~~~~~~~~~~~~~~~~~~x~~~~~~~~~~~~~~~~~~~~~~%%%", - "%%%~~~~~~~~~~~~~~~~x~~~~~~~~~~~~~~~~~~~~~~~~~~x~~~~~~~~~~~~~~~~~~~~~~%%%", - "%%%%~~~~%%%%%%%%%%HbH%%%%%%%~~~~~~~~~~~~~~~~%HbH%%%%%%%%%%%%%%%%~~~~%%%%", - "%%%%%%%%HHHHHHHHHHH.HHHH%%%%%~~~~~~~~~~~~~~%%H.HHHHHHHHHHHHHHHHH%%%%%%%%", - "%%%%%%%%HGGG.|YYYYY...UH%%%%%%~~~~~~~~~~~~%%%H.HH2$&$&$&$&$&$&$H%%%%%%%%", - "%%%%%%%%HGGG.C........UH%%%%%%%%%%%~~%%%%%%%%H.HH2.............H%%%%%%%%", - "%%%%%%%%HGGG.|........UH%%%%%%%%%%%~~%%%%%%%%H.HH2..@#@..@#@..@H%%%%%%%%", - "%%%%%%%%HHHHHHr.......UHHHHHHHHHHHH~~HHHHHHHHH.HH2..@#@..@#@..@H%%%%%%%%", - "%%%%%%%%%%%%%H2.2.................bxxb.........................H%%%%%%%%", - "%%%%%%%%%%%%%H22222222222222222222H!*H222222222222..@#@..@#@..@H%%%%%%%%", - "%%%%%%%%%%%%%HHHHHHHHHHHHHHHHHHHHHH``HHHHHHHHHHHH2..@#@..@#@..@H%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~%%%%%%%%%%%H2.............H%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~%%%%%%%%%%%H2..2#2..2#2..2H%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%%%%%%H22222222222222H%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%%%%%%HHHHHHHHHHHHHHHH%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%!~~~~~~~~~~~~~~~~~~~~~~~!%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~~~~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + " ||||||||||||||||||||||||||||||2x~~x2|||||||||||||||||||||||||||||| ", + " |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#~~#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| ", + " |~###########################~~#~~#~~###########################~| ", + " |~#222222222|||b||||||||||||##########|||||||||b|||222222222222#~| ", + " |~#2|||||||22&....U| |||||||||||| |U....&22||||||||||2#~| ", + " |~#2| |||$&$&@&| ||||||||||||||||||| |&@&$&$||| |2#~| ", + " |~#2|| |||||||| |0001[.I|D6[[D61.I| |||||||| ||2#~| ", + " |~#22| |0c....f|.c...c..f|||||L| |22#~| ", + "||||`##2| |h......+.........+...+.| |2##`||||", + "2222! #2||||| |||| |0c....f|.c...c..f||..|L| |||||2#|!2222", + "xxxx#xx2~~~~|| |L.| |0001[.I|D6[[D61.I||..|||||||||||||~~~~2xx#xxxx", + "~~~~~~x2~~~~~| ||+||||||||||||||||||||||||||>..+..&TTT&ww||~~~~~2x~~~~~~", + "~~~~~~x2~~~~~| |...............................|........w||~~~~~2x~~~~~~", + "xxxxx#xx~~~~|| |...............................|&...8...&|||~~~~xx#xxxxx", + "22222~#2||||| ||+||||+|||..|||||||||||||||||..|$#######$| |||||2#~22222", + "|||||~#2| |n..l|n..l|..| |If6666;f| |..|@...@...@| |2#~|||||", + " |~#2| ||+||||+|||..||||........|||||..|#...#...#| |2#~| ", + " |~#2| |q..q|q..q|.....+........+......|$&$&@&$&$| |2#~| ", + " |~#2| |q..q|q..q|..||||c......c|||||..||||||||||| |2#~| ", + " |~#2| |||||||||||..| |6tttttt6| |..| |2#~| ", + " |~#2| |..| ||--------|| |..| |2#~| ", + " |~#2| |..| |#vvvvvvvv2| |..| |2#~| ", + " |~#2| |..| |#a~~~~~~~2| |..| |2#~| ", + " |~#2| |..| |#a~~~~~~~2||||bb|| |2#~| ", + " |~#2| ||||||||||..|||b|~~~~~~|22222..2|| |2#~| ", + " |~#2| ||||||ww.............b##~~~|||||||..22|||||||||||||||2#~| ", + " |~#2| |{{{{Hw...||||||||||||!*!!!||||| |...22222222222222222#`| ", + " |`#2| |....C...^| ||~~~`````~~~~|||....................#!| ", + " |!#2| |{{{{H....| ||~~~~~~~~~~~~~~|||...............{{||#~| ", + " |~##|||||||||||b||||||||~~~~~~~~~~~~~~~~||b|||||||||||||||||##~| ", + " |~~############x~~~~~~~~~~~~~~~~~~~~~~~~~~x##################~~| ", + " |~~~~~~~~~~~~~~x~~~~~~~~~~~~~~~~~~~~~~~~~~x~~~~~~~~~~~~~~~~~~~~| ", + " ||~~~~~~~~~~~~|b||||||||~~~~~~~~~~~~~~~~||b|~~~~~~~~~~~~~~~~~~|| ", + " ||||||||||||||.|||| ||~~~~~~~~~~~~~~|||.|||||||||||||||||||| ", + " |GGG.HYYYYY...U| ||~~~~~~~~~~~~|| |.||2$&$&$&$&$&$&$| ", + " |GGG.C........U| ||||||~~|||||| |.||2.............| ", + " |GGG.H........U| |~~| |.||2..@#@..@#@..@| ", + " ||||||r.......U||||||||||||~~|||||||||.||2..@#@..@#@..@| ", + " |2.2.................####.........................| ", + " |22222222222222222222x!*x222222222222..@#@..@#@..@| ", + " ||||||||||||||||||||2x``x2||||||||||2..@#@..@#@..@| ", + " |2x~~x2| |2.............| ", + " |2x~~x2| |2..2#2..2#2..2| ", + " |2x~~x2| |22222222222222| ", + " |||||||||||2x~~x2||||||||||||||||||||||||| ", + " |!~~~~~~~~~~#~~#~~~~~~~~~!| ", + " |||||||||||2x~~x2|||||||||| ", + " |2x~~x2| " ], "palettes": [ "sewage_treatment_sewer_palette" ], "furniture": { diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/sports_store.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/sports_store.json index cedc62233..499ba77c2 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/sports_store.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/sports_store.json @@ -5,13 +5,13 @@ "om_terrain": [ "s_sports" ], "weight": 30000, "object": { - "fill_ter": "t_floor", + "fill_ter": "t_thconc_floor", "rows": [ - ".`''''`''''`''''`''''`..", - ".`''''`''''`''''`''''`..", - ".`''''`''''`''''`''''`..", - ".`''''`''''`''''`''''`..", - ".`''''`''''`''''`''''`..", + ".`''''`''''ss''''`''''`.", + ".`''''`''''ss''''`''''`.", + ".`''''`''''ss''''`''''`.", + ".`''''`''''ss''''`''''`.", + ".`''''`''''ss''''`''''`.", ".--~~~~~~--++--~~~~~~--.", ".| @@ @@ |.", ".| |.", @@ -24,7 +24,7 @@ ".| }}}} |.", ".|###### }}}} |/|/|/|.", ".| h # | | | |.", - ".| ttteee|^|^|^|.", + ".| C ttteee|^|^|^|.", ".|----+---------------|.", ".|& | }}}}}}}}} OOOO|.", ".| + O|.", @@ -33,9 +33,10 @@ "........4..............." ], "terrain": { - ".": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ], - " ": "t_floor", + ".": "t_region_groundcover_urban", + " ": "t_thconc_floor", "'": "t_pavement", + "s": "t_sidewalk", "`": "t_pavement_y", "+": "t_door_c", "*": "t_door_locked", @@ -47,6 +48,7 @@ }, "furniture": { "#": "f_counter", + "C": "f_counter_gate_c", "h": "f_stool", "t": [ "f_treadmill", "f_treadmill_mechanical" ], "e": [ "f_ergometer", "f_ergometer_mechanical" ], @@ -57,10 +59,10 @@ "^": [ "f_bigmirror", "f_bigmirror", "f_bigmirror", "f_bigmirror_b" ], "{": "f_rack", "}": "f_rack", - "O": [ "f_crate_c", "f_crate_c", "f_crate_c", "f_crate_o" ] + "O": [ "f_crate_c", "f_cardboard_box", "f_crate_o" ] }, "toilets": { "&": { } }, - "items": { "O": { "item": "allsporting", "chance": 20 } }, + "items": { "O": { "item": "allsporting", "chance": 50 } }, "place_loot": [ { "group": "clothing_sport", "x": [ 5, 6 ], "y": 6, "chance": 20 }, { "group": "clothing_sport", "x": [ 17, 18 ], "y": 6, "chance": 20 }, diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/storage_units_large.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/storage_units_large.json index 6626cad3f..a4ae0479d 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/storage_units_large.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/storage_units_large.json @@ -76,7 +76,6 @@ { "item": "bedroom", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 3 ] }, { "item": "dresser", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 3 ] }, { "item": "mil_surplus", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 3 ] }, - { "item": "mil_hw", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 3 ] }, { "item": "mil_armor", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 3 ] }, { "item": "mil_accessories", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 3 ] }, { "item": "weapons", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 3 ] }, @@ -194,7 +193,6 @@ { "item": "bedroom", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 50, "repeat": [ 1, 6 ] }, { "item": "dresser", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 50, "repeat": [ 1, 6 ] }, { "item": "mil_surplus", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 35, "repeat": [ 1, 6 ] }, - { "item": "mil_hw", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 10, "repeat": [ 1, 6 ] }, { "item": "mil_armor", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 6 ] }, { "item": "mil_accessories", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 5, "repeat": [ 1, 6 ] }, { "item": "weapons", "x": [ 1, 5 ], "y": [ 10, 12 ], "chance": 35, "repeat": [ 1, 6 ] }, diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/urban_35_hospital.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/urban_35_hospital.json index 1853cb58f..e9eface25 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/urban_35_hospital.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/urban_35_hospital.json @@ -779,43 +779,43 @@ "fill_ter": "t_flat_roof", "rows": [ " ", - " |22222222223 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |....X.....3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |....&&....3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - " |..........3 ", - "|222222222222222222222..........2222222222223 ", - "|...........................................3 ", - "|...........................................3 ", - "|...........................................3 ", - "|...........................................3 ", - "|...........................................3 ", - "| .......&&.......................&&........3 ", - "|...........................................3 ", - "|...........................................3 ", - "|...#############...........................3 ", - "|...#66r66r66r66#...........................3 ", - "|...#66_66_66_66#..................&&.......3 ", - "|...#___________#...........................3 ", - "|...##########_##+##........................3 ", - "|...#AAAAAAAAA_#__L#........................3 ", - "|...#r_________+__L#<.......................3 ", - "|...#1111111111#__>#.......XXX..XXX..XXX....3 ", - "|...################........................3 ", - "|....ЯЯЯЯЯЯЯЯЯЯ.............................3 ", - "|..........................XXX..XXX..XXX....3 ", - "|...........................................3 ", - "|...........................................3 ", - "|-------------------------------------------3 ", + " ------------ ", + " -..........- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -....X.....- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -....&&....- ", + " -..........- ", + " -..........- ", + " -..........- ", + " -..........- ", + "----------------------..........------------- ", + "-...........................................- ", + "-...........................................- ", + "-...........................................- ", + "-...........................................- ", + "-...........................................- ", + "- .......&&.......................&&........- ", + "-...........................................- ", + "-...........................................- ", + "-...#############...........................- ", + "-...#66r66r66r66#...........................- ", + "-...#66_66_66_66#..................&&.......- ", + "-...#___________#...........................- ", + "-...##########_##+##........................- ", + "-...#AAAAAAAAA_#__L#........................- ", + "-...#r_________+__L#<.......................- ", + "-...#1111111111#__>#.......XXX..XXX..XXX....- ", + "-...################........................- ", + "-....ЯЯЯЯЯЯЯЯЯЯ.............................- ", + "-..........................XXX..XXX..XXX....- ", + "-...........................................- ", + "-...........................................- ", + "--------------------------------------------- ", " ", " ", " ", @@ -830,9 +830,7 @@ "palettes": [ "roof_palette" ], "terrain": { "<": "t_ladder_up", - ">": "t_stairs_down", "#": "t_strconc_wall", - "+": "t_door_metal_c", "_": "t_thconc_floor", "1": "t_thconc_floor", "r": "t_thconc_floor", @@ -865,7 +863,7 @@ " ............. ", " ................ ", " ................## ", - " ................># ", + " ................v# ", " ................## ", " ................ ", " ", @@ -884,8 +882,7 @@ " ", " " ], - "palettes": [ "roof_palette" ], - "terrain": { ">": "t_ladder_down" } + "palettes": [ "roof_palette" ] } } ] diff --git a/data/Mainline_mods/Mods/No_Hope/Mapgen/ws_survivor_bunker.json b/data/Mainline_mods/Mods/No_Hope/Mapgen/ws_survivor_bunker.json index fdc4e47e6..597f5f017 100644 --- a/data/Mainline_mods/Mods/No_Hope/Mapgen/ws_survivor_bunker.json +++ b/data/Mainline_mods/Mods/No_Hope/Mapgen/ws_survivor_bunker.json @@ -43,7 +43,6 @@ "furniture": { "s": "f_sandbag_half", "S": "f_sandbag_wall", - "B": "f_makeshift_bed", "b": "f_bookcase", "t": "f_table", "h": "f_chair", @@ -57,25 +56,17 @@ { "item": "gear_survival", "chance": 20, "repeat": 2 } ], "B": { "item": "bed", "chance": 20 }, - "b": { "item": "homebooks", "chance": 20, "repeat": 2 }, + "b": { "item": "homebooks", "chance": 20, "repeat": [ 1, 4 ] }, "k": { "item": "oa_ig_sb_water", "chance": 20 }, "W": { "item": "fireplace_fill", "chance": 20, "repeat": [ 1, 3 ] } }, - "place_item": [ - { "item": "ash", "chance": 2, "x": 12, "y": 13, "repeat": 2 }, - { "item": "charcoal", "chance": 3, "x": 12, "y": 13 }, - { "item": "survnote", "chance": 2, "x": 12, "y": 11 } - ], - "traps": { "1": { "trap": "tr_beartrap" }, "2": { "trap": "tr_tripwire" } }, + "place_item": [ { "item": "ash", "x": 12, "y": 13 }, { "item": "survnote", "x": 12, "y": 11 } ], + "traps": { "1": { "trap": "tr_beartrap" }, "2": { "trap": "tr_tripwire" }, "B": { "trap": "tr_cot" } }, "place_items": [ { "item": "fireplace_fill", "x": 12, "y": 13, "chance": 20, "repeat": 2 }, { "item": "fireplace_fill", "x": 11, "y": 17, "chance": 20, "repeat": 2 } ], - "place_monsters": [ - { "monster": "GROUP_PREPPER_HOUSE", "x": 14, "y": 19 }, - { "monster": "GROUP_PREPPER_HOUSE", "x": 15, "y": 20 }, - { "monster": "GROUP_PREPPER_HOUSE", "x": 16, "y": 19 } - ] + "place_monster": [ { "group": "GROUP_PREPPER_HOUSE", "x": 11, "y": [ 11, 15 ], "repeat": [ 1, 2 ] } ] } } ] diff --git a/data/Mainline_mods/Mods/No_Hope/README.md b/data/Mainline_mods/Mods/No_Hope/README.md index f6519d207..36dc44135 100644 --- a/data/Mainline_mods/Mods/No_Hope/README.md +++ b/data/Mainline_mods/Mods/No_Hope/README.md @@ -1,12 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [No Hope](#no-hope) -- [List of features](#list-of-features) - - - # No Hope The mod is based on the old lore where there was a full-scale war with China with many months of preceding marauding and civil disorder. Thus the world with the mod will be much more damaged overall, there will be much less loot etc. diff --git a/data/Mainline_mods/Mods/No_Hope/item_groups.json b/data/Mainline_mods/Mods/No_Hope/item_groups.json index 65acbcc91..5a518c177 100644 --- a/data/Mainline_mods/Mods/No_Hope/item_groups.json +++ b/data/Mainline_mods/Mods/No_Hope/item_groups.json @@ -164,7 +164,7 @@ { "item": "flamethrower", "prob": 1, "charges-min": 0, "charges-max": 3000 }, [ "556", 8 ], [ "alloy_plate", 10 ], - [ "kevlar_plate", 10 ], + [ "sheet_kevlar_layered", 10 ], [ "ceramic_armor", 10 ], [ "hard_plate", 30 ], [ "robot_controls", 5 ] @@ -175,7 +175,7 @@ "id": "tripod", "items": [ { "item": "flamethrower", "prob": 1, "charges-min": 0, "charges-max": 3000 }, - [ "kevlar_plate", 10 ], + [ "sheet_kevlar_layered", 10 ], [ "ceramic_armor", 15 ], [ "alloy_plate", 10 ], [ "robot_controls", 3 ] @@ -281,6 +281,59 @@ ] } }, + { + "type": "item_group", + "id": "bionics_sci", + "subtype": "distribution", + "//": "High-tech bionics, handy for the harried researcher. They get access to classified toys too, but only stuff a scientist would have use for.", + "items": [ + [ "burnt_out_bionic", 60 ], + [ "bio_batteries", 30 ], + [ "bio_power_storage", 30 ], + [ "bio_metabolics", 5 ], + [ "bio_ethanol", 5 ], + [ "bio_ups", 10 ], + [ "bio_torsionratchet", 30 ], + [ "bio_tools", 10 ], + [ "bio_flashlight", 30 ], + [ "bio_lighter", 25 ], + [ "bio_magnet", 20 ], + [ "bio_memory", 15 ], + [ "bio_ears", 10 ], + [ "bio_sunglasses", 10 ], + [ "bio_eye_optic", 10 ], + [ "bio_eye_enhancer", 5 ], + [ "bio_dex_enhancer", 5 ], + [ "bio_int_enhancer", 10 ], + [ "bio_night_vision", 1 ], + [ "bio_infrared", 2 ], + [ "bio_synaptic_regen", 12 ], + [ "bio_gills", 5 ], + [ "bio_climate", 2 ], + [ "bio_heatsink", 2 ], + [ "bio_blood_filter", 10 ], + [ "bio_fingerhack", 2 ], + [ "bio_lockpick", 2 ], + [ "bio_surgical_razor", 8 ], + [ "bio_nanobots", 15 ], + [ "bio_blood_anal", 10 ], + [ "bio_geiger", 15 ], + [ "bio_radscrubber", 10 ], + [ "bio_watch", 40 ], + [ "bio_leukocyte", 15 ], + [ "bio_syringe", 2 ], + [ "bio_jointservo", 10 ], + [ "bio_soporific", 2 ] + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_flamer", + "ammo": 50, + "magazine": 100, + "entries": [ { "item": "flamethrower", "charges-min": 0, "charges-max": 500 } ] + }, { "type": "item_group", "id": "bunker_basement_loot", diff --git a/data/Mainline_mods/Mods/No_Hope/items.json b/data/Mainline_mods/Mods/No_Hope/items.json index 927a3a548..2d6a66233 100644 --- a/data/Mainline_mods/Mods/No_Hope/items.json +++ b/data/Mainline_mods/Mods/No_Hope/items.json @@ -29,7 +29,6 @@ "volume": "92500 ml", "price": 50000000, "to_hit": -3, - "bashing": 8, "material": [ "steel" ], "symbol": ";", "color": "light_green", @@ -43,7 +42,8 @@ "moves": 250, "skills": [ "electronics", "computer" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "id": "bot_tankbot", @@ -56,7 +56,6 @@ "volume": "250 L", "price": 100000000, "to_hit": -3, - "bashing": 8, "material": [ "steel" ], "symbol": ";", "color": "light_green", @@ -70,7 +69,8 @@ "moves": 500, "skills": [ "electronics", "computer" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "type": "GENERIC", @@ -85,8 +85,6 @@ "material": [ "steel", "plastic" ], "weight": "1023850 g", "volume": "1100 L", - "bashing": 20, - "cutting": 15, "to_hit": -3, "use_action": { "type": "place_monster", @@ -98,7 +96,8 @@ "moves": 500, "skills": [ "electronics", "computer" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 20, "cut": 15 } }, { "id": "bot_tripod", @@ -110,7 +109,6 @@ "volume": "92500 ml", "price": 100000000, "to_hit": -3, - "bashing": 8, "material": [ "steel" ], "symbol": ";", "color": "light_green", @@ -124,7 +122,8 @@ "moves": 500, "skills": [ "electronics", "computer" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "type": "GENERIC", @@ -138,10 +137,9 @@ "material": [ "steel", "plastic" ], "weight": "430000 g", "volume": "187500 ml", - "bashing": 10, - "cutting": 6, "to_hit": -2, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 10, "cut": 6 } }, { "type": "GENERIC", @@ -155,10 +153,9 @@ "material": [ "steel", "plastic" ], "weight": "1223850 g", "volume": "875 L", - "bashing": 20, - "cutting": 15, "to_hit": -3, - "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 20, "cut": 15 } }, { "type": "GENERIC", @@ -213,14 +210,14 @@ "ammo": [ "120mm" ], "weight": "2500 g", "volume": "2500 ml", - "bashing": 6, "to_hit": -3, "dispersion": 60, "durability": 9, "clip_size": 1, "loudness": 300, "flags": [ "NO_TURRET" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "120mm": 1 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "120mm": 1 } } ], + "melee_damage": { "bash": 6 } }, { "type": "GENERIC", @@ -245,7 +242,6 @@ "price": 600000, "price_postapoc": 12000, "to_hit": -3, - "bashing": 8, "material": [ "steel", "plastic" ], "symbol": ";", "color": "white", @@ -256,7 +252,8 @@ "moves": 100, "skills": [ "electronics", "computer" ] }, - "flags": [ "SINGLE_USE" ] + "flags": [ "SINGLE_USE" ], + "melee_damage": { "bash": 8 } }, { "type": "GENERIC", @@ -266,5 +263,19 @@ "name": { "str": "broken laser turret" }, "weight": "110 kg", "copy-from": "broken_turret" + }, + { + "type": "GENERIC", + "id": "reverse_jointed_legs", + "name": { "str": "set of reverse-jointed legs", "str_pl": "sets of reverse-jointed legs" }, + "description": "A set of reverse-jointed legs, like the ones found under a chicken walker.", + "symbol": "k", + "color": "light_gray", + "weight": "60000 g", + "volume": "20 L", + "price": 500000, + "price_postapoc": 250, + "material": [ "steel" ], + "category": "spare_parts" } ] diff --git a/data/Mainline_mods/Mods/No_Hope/monster_groups.json b/data/Mainline_mods/Mods/No_Hope/monster_groups.json index 5893a42a7..7b1ce72c0 100644 --- a/data/Mainline_mods/Mods/No_Hope/monster_groups.json +++ b/data/Mainline_mods/Mods/No_Hope/monster_groups.json @@ -45,6 +45,16 @@ { "monster": "mon_tankbot", "weight": 5, "cost_multiplier": 0 } ] }, + { + "name": "GROUP_MIL_MASS_GRAVE", + "type": "monstergroup", + "//": "Lots of hazmats and burners.", + "monsters": [ + { "monster": "mon_zombie_soldier", "weight": 10 }, + { "monster": "mon_zombie_flamer", "weight": 20, "starts": "5 days" }, + { "monster": "mon_zombie_hazmat", "weight": 20 } + ] + }, { "type": "monstergroup", "name": "GROUP_NETHER_FATIGUE_FIELD", diff --git a/data/Mainline_mods/Mods/No_Hope/monsters.json b/data/Mainline_mods/Mods/No_Hope/monsters.json index 6fafedca5..f1d811209 100644 --- a/data/Mainline_mods/Mods/No_Hope/monsters.json +++ b/data/Mainline_mods/Mods/No_Hope/monsters.json @@ -16,24 +16,22 @@ "color": "white", "aggression": 100, "morale": 100, - "armor_bash": 14, - "armor_cut": 16, - "armor_bullet": 13, "vision_day": 50, "revert_to_itype": "bot_laserturret", "special_attacks": [ { "type": "gun", "cooldown": 1, - "gun_type": "laser_cannon", - "fake_skills": [ [ "gun", 4 ], [ "rifle", 8 ] ], + "gun_type": "v29_turret", + "fake_skills": [ [ "gun", 4 ], [ "pistol", 4 ] ], "ranges": [ [ 0, 30, "DEFAULT" ] ] } ], "special_when_hit": [ "RETURN_FIRE", 100 ], "death_drops": { }, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "COLDPROOF", "IMMOBILE", "NO_BREATHE" ] + "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "COLDPROOF", "IMMOBILE", "NO_BREATHE" ], + "armor": { "bash": 14, "cut": 16, "bullet": 13 } }, { "id": "mon_turret", @@ -52,9 +50,6 @@ "color": "light_gray", "aggression": 100, "morale": 100, - "armor_bash": 14, - "armor_cut": 16, - "armor_bullet": 13, "vision_night": 3, "revert_to_itype": "bot_turret", "starting_ammo": { "9mm": 30 }, @@ -81,7 +76,8 @@ "special_when_hit": [ "RETURN_FIRE", 100 ], "death_drops": { }, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "COLDPROOF", "IMMOBILE", "NO_BREATHE", "DROPS_AMMO" ] + "flags": [ "SEES", "NOHEAD", "ELECTRONIC", "COLDPROOF", "IMMOBILE", "NO_BREATHE", "DROPS_AMMO" ], + "armor": { "bash": 14, "cut": 16, "bullet": 13 } }, { "id": "mon_turret_bmg", @@ -100,9 +96,6 @@ "color": "green", "aggression": 100, "morale": 100, - "armor_bash": 14, - "armor_cut": 16, - "armor_bullet": 13, "vision_day": 50, "vision_night": 3, "revert_to_itype": "bot_antimateriel", @@ -140,7 +133,8 @@ "DROPS_AMMO", "CONSOLE_DESPAWN", "ID_CARD_DESPAWN" - ] + ], + "armor": { "bash": 14, "cut": 16, "bullet": 13 } }, { "id": "mon_turret_rifle", @@ -159,9 +153,6 @@ "color": "green", "aggression": 100, "morale": 100, - "armor_bash": 14, - "armor_cut": 16, - "armor_bullet": 13, "vision_day": 50, "vision_night": 3, "revert_to_itype": "bot_rifleturret", @@ -199,7 +190,8 @@ "DROPS_AMMO", "ID_CARD_DESPAWN", "CONSOLE_DESPAWN" - ] + ], + "armor": { "bash": 14, "cut": 16, "bullet": 13 } }, { "id": "mon_crows_m240", @@ -218,9 +210,6 @@ "color": "green", "aggression": 100, "morale": 100, - "armor_bash": 14, - "armor_cut": 16, - "armor_bullet": 13, "vision_day": 50, "vision_night": 3, "revert_to_itype": "bot_crows_m240", @@ -258,7 +247,8 @@ "DROPS_AMMO", "ID_CARD_DESPAWN", "CONSOLE_DESPAWN" - ] + ], + "armor": { "bash": 14, "cut": 16, "bullet": 13 } }, { "id": "mon_tripod", @@ -281,14 +271,13 @@ "melee_dice": 3, "melee_dice_sides": 12, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 12, - "armor_cut": 8, "path_settings": { "max_dist": 5 }, "revert_to_itype": "bot_tripod", "special_attacks": [ [ "FLAMETHROWER", 10 ] ], "death_drops": { "groups": [ [ "robots", 4 ], [ "tripod", 1 ] ] }, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "HEARS", "GOODHEARING", "BASHES", "NO_BREATHE", "ELECTRONIC", "CLIMBS", "PRIORITIZE_TARGETS" ] + "flags": [ "SEES", "HEARS", "GOODHEARING", "BASHES", "NO_BREATHE", "ELECTRONIC", "CLIMBS", "PRIORITIZE_TARGETS" ], + "armor": { "bash": 12, "cut": 8 } }, { "id": "mon_tankbot", @@ -311,8 +300,6 @@ "melee_dice": 5, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 90, - "armor_cut": 90, "vision_day": 50, "revert_to_itype": "bot_tankbot", "starting_ammo": { "40x46mm_m433": 200, "556": 3000 }, @@ -330,7 +317,8 @@ "ELECTRONIC", "PRIORITIZE_TARGETS", "DROPS_AMMO" - ] + ], + "armor": { "bash": 90, "cut": 90 } }, { "id": "mon_chickenbot", @@ -353,8 +341,6 @@ "melee_dice": 3, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 18, - "armor_cut": 14, "vision_day": 50, "vision_night": 35, "revert_to_itype": "bot_chickenbot", @@ -362,7 +348,8 @@ "path_settings": { "max_dist": 10 }, "special_attacks": [ [ "CHICKENBOT", 4 ] ], "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "HEARS", "BASHES", "NO_BREATHE", "ELECTRONIC", "PRIORITIZE_TARGETS", "DROPS_AMMO" ] + "flags": [ "SEES", "HEARS", "BASHES", "NO_BREATHE", "ELECTRONIC", "PRIORITIZE_TARGETS", "DROPS_AMMO" ], + "armor": { "bash": 18, "cut": 14 } }, { "id": "mon_secubot", @@ -381,9 +368,6 @@ "color": "dark_gray", "aggression": 100, "morale": 100, - "armor_bash": 14, - "armor_cut": 14, - "armor_bullet": 11, "vision_day": 50, "revert_to_itype": "bot_secubot", "starting_ammo": { "556": 30 }, @@ -392,7 +376,7 @@ "type": "gun", "cooldown": 1, "move_cost": 150, - "gun_type": "m16a4", + "gun_type": "modular_m16a4", "ammo_type": "556", "fake_skills": [ [ "gun", 8 ], [ "rifle", 8 ] ], "fake_dex": 12, @@ -409,7 +393,8 @@ ], "death_drops": { }, "death_function": { "corpse_type": "BROKEN" }, - "flags": [ "SEES", "HEARS", "ELECTRONIC", "COLDPROOF", "NO_BREATHE", "PATH_AVOID_DANGER_1", "LOUDMOVES", "DROPS_AMMO" ] + "flags": [ "SEES", "HEARS", "ELECTRONIC", "COLDPROOF", "NO_BREATHE", "PATH_AVOID_DANGER_1", "LOUDMOVES", "DROPS_AMMO" ], + "armor": { "bash": 14, "cut": 14, "bullet": 11 } }, { "id": "mon_moose", @@ -434,9 +419,6 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "dodge": 1, - "armor_bash": 4, - "armor_cut": 1, - "armor_bullet": 1, "vision_night": 7, "path_settings": { "max_dist": 10 }, "anger_triggers": [ "HURT", "MATING_SEASON", "PLAYER_CLOSE" ], @@ -446,7 +428,8 @@ "harvest": "mammal_large_leather", "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 8 }, "special_attacks": [ [ "EAT_CROP", 60 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "ATTACKMON" ] + "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "ATTACKMON" ], + "armor": { "bash": 4, "cut": 1, "bullet": 1 } }, { "id": "mon_flaming_eye", @@ -467,7 +450,6 @@ "morale": 100, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "dodge": 1, - "armor_bash": 4, "vision_day": 50, "vision_night": 40, "luminance": 25, @@ -481,7 +463,8 @@ "monster_message": "A piercing beam of light bursts forth!" } ], - "flags": [ "SEES", "WARM", "FLIES", "FIREY", "NO_BREATHE", "NOHEAD" ] + "flags": [ "SEES", "WARM", "FLIES", "FIREY", "NO_BREATHE", "NOHEAD" ], + "armor": { "bash": 4 } }, { "id": "mon_staring_eye", @@ -501,89 +484,29 @@ "morale": 100, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "dodge": 1, - "armor_bash": 4, "vision_day": 50, "vision_night": 40, "luminance": 25, "harvest": "zombie_meatslug", "special_attacks": [ [ "STARE", 12 ] ], - "flags": [ "SEES", "WARM", "FLIES", "FIREY", "NO_BREATHE", "NOHEAD" ] + "flags": [ "SEES", "WARM", "FLIES", "FIREY", "NO_BREATHE", "NOHEAD" ], + "armor": { "bash": 4 } }, { "id": "mon_zombie_soldier", "type": "MONSTER", "name": { "str": "zombie soldier" }, "description": "Once a soldier, it is dressed head to toe in combat gear and carries itself rather steadily for a zombie.", - "default_faction": "zombie", - "bodytype": "human", - "categories": [ "CLASSIC" ], - "species": [ "ZOMBIE", "HUMAN" ], - "volume": "62500 ml", - "weight": "81500 g", - "hp": 100, - "speed": 80, - "material": [ "flesh" ], - "symbol": "Z", - "color": "light_green_green", - "aggression": 100, - "morale": 100, - "melee_skill": 5, - "melee_dice": 2, - "melee_dice_sides": 6, - "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "dodge": 1, - "armor_bash": 12, - "armor_cut": 25, - "armor_bullet": 20, - "vision_day": 30, - "vision_night": 3, - "harvest": "zombie", - "special_attacks": [ { "type": "bite", "cooldown": 5, "min_mul": 0.8 } ], - "death_drops": "mon_zombie_soldier_death_drops_no_hope", - "upgrades": { "half_life": 28, "into_group": "GROUP_SOLDIER_UPGRADE" }, - "burn_into": "mon_zombie_scorched", - "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "GROUP_BASH", "POISON", "NO_BREATHE", "REVIVES", "PUSH_MON", "FILTHY" ] + "copy-from": "mon_zombie_soldier", + "death_drops": "mon_zombie_soldier_death_drops_no_hope" }, { "id": "mon_zombie_soldier_blackops_1", "type": "MONSTER", "name": { "str": "black-ops zombie" }, "description": "This soldier zombie's skin radiates a sort of shadowy smoke that obscures its outline, making its camouflage even harder to see against the background. In the darkness it would be nigh invisible.", - "looks_like": "mon_zombie_soldier", - "default_faction": "zombie", - "bodytype": "human", - "species": [ "ZOMBIE", "HUMAN" ], - "volume": "62500 ml", - "weight": "81500 g", - "hp": 120, - "speed": 90, - "material": [ "flesh" ], - "symbol": "Z", - "color": "light_green_green", - "aggression": 100, - "morale": 100, - "melee_skill": 6, - "melee_dice": 2, - "melee_dice_sides": 6, - "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "dodge": 3, - "armor_bash": 12, - "armor_cut": 25, - "armor_bullet": 20, - "vision_day": 30, - "vision_night": 35, - "harvest": "zombie", - "special_attacks": [ - { - "type": "bite", - "cooldown": 8, - "damage_max_instance": [ { "damage_type": "stab", "amount": 8, "armor_multiplier": 0.8 } ] - } - ], - "death_drops": "mon_zombie_soldier_death_drops_no_hope", - "upgrades": { "half_life": 38, "into": "mon_zombie_soldier_blackops_2" }, - "burn_into": "mon_zombie_scorched", - "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "GROUP_BASH", "POISON", "NO_BREATHE", "REVIVES", "PUSH_MON", "FILTHY" ] + "copy-from": "mon_zombie_soldier_blackops_1", + "death_drops": "mon_zombie_soldier_death_drops_no_hope" }, { "id": "mon_zombie_flamer", @@ -593,6 +516,7 @@ "default_faction": "zombie", "bodytype": "human", "species": [ "ZOMBIE", "HUMAN" ], + "diff": 5, "volume": "62500 ml", "weight": "81500 g", "hp": 100, @@ -607,9 +531,8 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "dodge": 1, - "armor_bash": 12, - "armor_cut": 25, - "armor_bullet": 20, + "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet", "wps_humanoid_gasmask" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_syn_armored" ], "vision_day": 30, "vision_night": 3, "luminance": 8, @@ -635,7 +558,8 @@ "PUSH_MON", "DRIPS_NAPALM", "FILTHY" - ] + ], + "armor": { "bash": 12, "cut": 25, "bullet": 20, "electric": 4 } }, { "id": "mon_mech_recon", @@ -658,9 +582,6 @@ "melee_dice": 3, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], - "armor_bash": 15, - "armor_cut": 25, - "armor_bullet": 20, "vision_night": 100, "mech_str_bonus": 5, "mech_battery": "huge_atomic_battery_cell", @@ -684,7 +605,8 @@ "PATH_AVOID_DANGER_1", "STUN_IMMUNE", "MECH_DEFENSIVE" - ] + ], + "armor": { "bash": 15, "cut": 25, "bullet": 20 } }, { "id": "mon_mech_combat", @@ -707,9 +629,6 @@ "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 25, - "armor_cut": 45, - "armor_bullet": 36, "vision_night": 50, "mech_str_bonus": 10, "mech_battery": "huge_atomic_battery_cell", @@ -733,7 +652,8 @@ "LOUDMOVES", "STUN_IMMUNE", "MECH_DEFENSIVE" - ] + ], + "armor": { "bash": 25, "cut": 45, "bullet": 36 } }, { "id": "mon_mech_lifter", @@ -756,9 +676,6 @@ "melee_dice": 4, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 22, - "armor_cut": 30, - "armor_bullet": 24, "vision_night": 50, "mech_str_bonus": 30, "mech_battery": "huge_atomic_battery_cell", @@ -784,6 +701,21 @@ "LOUDMOVES", "STUN_IMMUNE", "MECH_DEFENSIVE" + ], + "armor": { "bash": 22, "cut": 30, "bullet": 24 } + }, + { + "id": "mon_zombie_technician", + "type": "MONSTER", + "name": { "str": "zombie technician" }, + "description": "Still wearing its work clothes and hardhat, this zombie likely used to work on power lines or other electrical equipment. As it approaches, everything metal you're carrying shifts very slightly in the zombie's direction, as if attracted by a strong magnetic force.", + "copy-from": "mon_zombie_technician", + "grab_strength": 20, + "special_attacks": [ + [ "PULL_METAL_WEAPON", 25 ], + { "id": "grab", "cooldown": 7 }, + { "id": "scratch_humanoid" }, + { "id": "bite_humanoid", "cooldown": 5 } ] } ] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolis.json b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolis.json new file mode 100644 index 000000000..3f371aa1c --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolis.json @@ -0,0 +1,1390 @@ +[ + { + "name": "GROUP_NECROPOLIS", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_zombie", "weight": 899 }, + { "monster": "mon_irradiated_wanderer_1", "weight": 90 }, + { "monster": "mon_irradiated_wanderer_2", "weight": 10 }, + { "monster": "mon_irradiated_wanderer_3", "weight": 1 } + ] + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + ".....................C..................................................", + "...............................ssssssss|-v---v-|.....#..................", + ".......#.......................ssssssssw @@d |................#.......", + "...............................|-;-vvv-| @@ v........................", + "...............................|c ccOcc| v........................", + "........................#......vc c| |........................", + "................#..............vc f|+|+|-+-|..........x.............", + "..........x....................v |r|c B|.....#..................", + "...#........................|--|o ?|-|S B|........................", + "................C...........|r + nn ?|r|c t|........................", + "............................|--|c nn ?|+|-+-|...........#............", + "............................|tS|c ?| |........................", + "............................v + + @@v........................", + ".........#..................|--| ----| | @@v........................", + "....................#.......| P| d|........................", + "............................| hnnh |;;-|-vvv-|........................", + "............................v hnnh |sssssss...........................", + "............................v hnnh vsssssss...........................", + "....#.....x.................| |ss.....................#..........", + ".............#..............|-vv--vv-|ss......#......X..................", + "......................................ss................................", + "......................................ss................................", + "...............X......................ss................................", + ".qQQQQQQQQQQQQQQQQQQQQQQQq......sssssssssssssssss8777777777777777777778.", + ".q.......................q.....ssssssssssssssssss8ssrrrrrrrrrrsssssssr8.", + ".q..|-vv-|----|-|-----|..q....ss_________________9sssssssssssssssssssr8.", + ".q..|ccSc|BtcS|r|d @@ |..q...ss__________________9sssssssssssssssZZssr8.", + ".q..|c |B | + @@ v..q..ss___________________9sssssssssssssssZZssr8.", + ".q..vO |--+-|-| |..q.ss____________________9sssssssssssssssssssr8.", + ".q..vc + v..qss_____________________9sssssssssssssssssssr8.", + ".q..|f |c ?| ddd |..qss_____________________9sssssssssssssssZZssr8.", + ".q..|-| -|c ?|-----|..qss_________________s...8sssZZssssZZssssZZssr8.", + ".q....| ?v........qss________________ss...8sssZZssssZZssssssssr8.", + ".q....V hnnh |........qss________________ss...8sssssssssssssssssssr8.", + ".q....V hnnh ;sssssssssss_______,,_______ss...8sssssssssssssssZZssr8.", + ".q....V ;sssssssssss_______,,_______ss...8srrrrrrrrrsssssZZssr8.", + ".q....| ooP|....s...qss_______,,_______ss..|------------|rssssssr8.", + ".q....|;|--+----|--|es...qss________________ss..|rrrrrrrrrrrr|rssssssr8.", + ".q..ssss|r =_______________,,_______ss..wc r|rssZZssr8.", + ".q..sЮss|r =_______________,,_______ss..wc rr rr r|rssZZssr8.", + ".q..sЯss|r =_______________,,_______ss..wc rr rr r|rssssssr8.", + ".q..sЮss|r =________________________ss..|r [sssssssr8.", + ".q..ssss|r =_______________,,_______ss..wc rr [sssssssr8.", + ".q......|----------|.....qss_______,,_______ss..wc rr cc r|rssssssr8.", + ".q.......................qss_______,,_______ss..wc 6 r|rssZZssr8.", + ".qQQQQQQQQQQQQQQQQQQQQQQQqss________________ss..|rcccr c r|rssZZssr8.", + "..........................ss_______,,_______ss..|-www-[[-www-|777777778." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "Ю": "t_sidewalk", "Я": "t_sidewalk" }, + "furniture": { "Ю": "f_chair", "Я": "f_table" }, + "toilets": { "t": { } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_vehicles": [ + { "vehicle": "electric_car", "x": 15, "y": 41, "chance": 75, "rotation": 0 }, + { "vehicle": "flatbed_truck", "x": 55, "y": 30, "chance": 50, "rotation": 180 } + ] + }, + "om_terrain": [ + [ "necropolis_a_1", "necropolis_a_2", "necropolis_a_3" ], + [ "necropolis_a_10", "necropolis_a_11", "necropolis_a_12" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..................................................ss_______,,_______ss..", + "..................................................ss_______,,_______ss.|", + "C..........#.................................#....ss________________ss.|", + "....................................#.............ss_______,,_______ss.w", + "..................................................ss_______,,_______ss.|", + ".......................#......C...................ss_______,,_______ss.w", + "...............#..................................ss______uuu_______ss.|", + "...............X...................|-----------|..ss_uuu___,,__uuu__ss.|", + "....#..............................|rrrrrrrrrrr|..ss_______,,_______ssss", + "...............................|---| |..ss_______,,________sss", + "...............................|rr | rccr rr y..ss____________________", + ".........x.....................| rr y..ss_______,,___________", + "......................#........y | cc |..ss_______,,___________", + "...............................| r| c |.sss_______,,___________", + "..#............................| r| hc ;ssss____________________", + "...............................| r| 6 ;ssss_______,,___________", + "...............................|;--|ccc |.{ss_______,,___________", + ".............................{.{.{{|{{ { rr {|..ss_______,,___________", + ".............#................{...{s{rr {{ rr{{|{{ss____________________", + "...................................s{)){{{){{{){{.ss_______,,___________", + "...................................|{s{{{s{{s{ss..{s_______,,___________", + "C...................#.......M....M.|ss{Mssssssss..ss_______,,________sss", + "...................................ssssssssssssM..ss________________ssss", + "........................M.......M..sssssssMsssss..ss_______,,_______sss.", + ".......#.....................M...M....M.......M..sss_______,,_______ss..", + ".......................ssMsssssMsssMsssssMssssssMsss_______,,_______ss..", + "......................sssssMMssMsMMsssMssMssssssssMs________________ss..", + ".|---------|--|--|...sssM____,__MMMMMMM__M_,___M__ssM______,,_______ss..", + ".|rrrrrrrrr|t |{t|.{.ss_____M,_MM))MMMMMM__,__M___ss_______,,_______sss.", + ".| |S{|{S|{..sM__M___,MM)))MMMMMM_M,_M__MMss_______,,_______sss.", + ".|-----+---|-{|{-|.{.ss___M__MM))MMMMMMMMMM,_____Mss___M____________sss.", + ".|r {{ {{{{{){|{{.ssM_M__MM))MMMMMMMMMMM,M_M___sM____M__,,_______sss.", + ".|S { {{{{s{ssss.{.Ms____MMMMMmmmmmmmMMMMMMM__MMss_______,,_______sss.", + ".|c h {){nsssss...ssM__MMMMMmmmmmmmmmMMMMM_____s__MM____,,_______sss.", + ".|c {{{{{ssssss...ss__MMMMMmm]]]]]]]mmMMMMM_MMM___M__M___________sss.", + ".|r {{{{)ssssssM..Mss_MMMMMmm]]]]]]]]]mmMMMMM____M__M____,,_______sss.", + ".|S {{{{sssssssM.M.ssMMMMMmm]]]]]]]]]]]mmMMMMM_M______M_M,,_______sss.", + ".|c h {{sssssssss..MsMMMMMmm]]]]]]]]]]]]]mmMMMMM___M______,,_______sss|", + ".|c {{){{{ssMsssM.M.MMMMMmm]]]]]]]]]]]]]]]mmMMMMM_M___M____________sss|", + ".|r{{ {{{{ssssssssM.MMMMMmm]]]]]]]]]]]]]]]]]mmMMMMM___M____M,____M__sss[", + ".|S {{ssssssssMsss.MMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_______M,_______sss[", + ".|c h{)ssssssssssMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_M_M___,,_______sss|", + ".|c {{{{sssssssss.MMsMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM__M_M_M_________sss|", + ".|r {{{{sssssssMss.MMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM___M___,,_______sss.", + ".|S {{{{sssMssssssMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMMM______,,_______sss.", + ".|c h {){{sssssssMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM___M___,,_______sss.", + ".|c {{{{ssssssMss.MMsMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM____M___________sss.", + ".|-{{{-sss-ssssssM.MMMsMMmm]]]]]]]]]]]]]]]]]mmMMMMMs_M_M___,,_______sss." + ], + "palettes": [ "necropolis_a" ], + "terrain": { }, + "toilets": { "t": { } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_vehicles": [ + { "vehicle": "policecar", "x": 60, "y": 9, "chance": 25, "rotation": 0 }, + { "vehicle": "policecar", "x": 53, "y": 13, "chance": 25, "rotation": -30 }, + { "vehicle": "policecar", "x": 67, "y": 13, "chance": 25, "rotation": 30 }, + { "vehicle": "policecar", "x": 60, "y": 16, "chance": 25, "rotation": 90 }, + { "vehicle": "car", "x": 30, "y": 31, "chance": 100, "rotation": 135 } + ] + }, + "om_terrain": [ + [ "necropolis_a_4", "necropolis_a_5", "necropolis_a_6" ], + [ "necropolis_a_13", "necropolis_a_14", "necropolis_a_15" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + "-w--w--w-|-w--w--w-|-w--w--w--w--w--|...................................", + "LLcccccLL|r 333 r| 11211222222rrr|.................................C.", + " |r r| 11 11 2 r|.........................#.........", + "r |---- ----| 44 w...................................", + "r 44 |............#......................", + "r rr|---------------| 2 |...................................", + "-;--w--w-|ssssssssssszzzs| 44 w...................................", + "ssssssssssss|-------|szss| 44 |..............C..................#.", + "ssssssssssss|h P|ssss| 2 |.......................X...........", + "_________ssswh ch |sszz|r 44 w...................................", + "__________ss|h 6cc |sszz|r 44 |...................................", + "__________ss|-+-----|ssss|r 2 L|...........#.......................", + "__________sssssssssssssss|r 44 L|...................................", + "__________ss|----|-------| 44 |.................#.................", + "___}______ss| h | w...................................", + "__________ssw + r|......x.......................#....", + "__________ss|6kk |-*-|-*-|-*-|797777|...................................", + "__________sswkh |r r|r r|r r|r } r|........#..........................", + "__________ss| oo|r r|r r|r r|r r|...................................", + "_________sss|----|---|---|---|--w---|...................................", + "ssssssssssss............................................................", + "sssssssssss.|--------|...|-----|------------|---------------|...........", + "..|---------|rrrrrrrr|---| h V kh kh |@ t!@ t!@ t!@ t|........x..", + "..| hhhhh | = | kkk V kkk kkk |@ !@ !@ !@ |...........", + "..w hnnnnnh |rrrrrrrr| : V h d | ! ! ! |...........", + "..w hnnnnnh |-|-|-|--| |HHHHH| |!*!!!*!!!*!!!*!|.........#.", + "..| hhhhh |t|t|t| t| V : |....C......", + "..| |+|+|+|+-| V : |...........", + "..|---|+-|--| P| h|!*!!!*!!!*!!!*!|...........", + "..| + + t| | k k k| ! ! ! |...........", + "..|hnh| | S|cScScS + V hk hk hk|@ !@ !@ !@ |...........", + "..|---| |--|------ | V kkh kkh kk|@ t!@ t!@ t!@ t|...........", + "..w + + t|LLLLLL | |-:-|-------;;-----|---------------|78.........", + "..whnh| | S| | |r r|ssssssssssssssssssssssssssssssss8.........", + "..|---| |--| | |r r|s_____________,________,________8.........", + "..wh h |L |LLLLLLLL| |r r|s_____________,________,________8....#....", + "HH| |-+||-------| |---|s_____________,________,________8.........", + " | c |l |sssss_____________,________,________8#........", + " [ c |l ;ss________________,________,________8.........", + " [ ch |c |-----+-|ss________________,________,________8.........", + " | c |c | |ss_______}________,,,,,,,,,,,,,,,,,,8........#", + "HH| |-| | | |ss________________,________,________8.x.......", + "..w ; | hhhhh |ss________________,________,________8.........", + "..|-c------|---| | |ss________________,________,________8.........", + "..|kkk r r r r| | hhhhh |ss________________,________,________8.........", + "..w h r r r r| + |ss________________,________,________8.........", + "..|P : | hhhhh |ss________________,________,________8........." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "l": "t_floor", "z": "t_floor" }, + "toilets": { "t": { } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_item": [ + { "item": "55gal_drum", "x": 35, "y": 2, "chance": 90 }, + { "item": "55gal_drum", "x": 34, "y": 2, "chance": 75 }, + { "item": "55gal_drum", "x": 35, "y": 3, "chance": 75 }, + { "item": "55gal_drum", "x": 26, "y": 12, "chance": 75 } + ], + "place_vendingmachines": [ { "item_group": "vending_food", "x": 14, "y": 38 }, { "item_group": "vending_drink", "x": 14, "y": 39 } ], + "place_items": [ + { "item": "office", "x": [ 29, 29 ], "y": [ 30, 32 ], "chance": 70 }, + { "item": "office", "x": [ 34, 34 ], "y": [ 30, 32 ], "chance": 70 }, + { "item": "office", "x": [ 43, 43 ], "y": [ 30, 32 ], "chance": 70 }, + { "item": "cop_armory", "x": [ 26, 26 ], "y": [ 34, 36 ], "chance": 70 }, + { "item": "cop_armory", "x": [ 28, 28 ], "y": [ 34, 36 ], "chance": 70 }, + { "item": "office", "x": [ 40, 42 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "office", "x": [ 35, 37 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "office", "x": [ 27, 29 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "bed", "x": [ 45, 45 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 45, 45 ], "y": [ 31, 32 ], "chance": 80 }, + { "item": "field", "x": [ 63, 71 ], "y": [ 24, 47 ], "chance": 70 }, + { "item": "bed", "x": [ 49, 49 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 53, 53 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 57, 57 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 49, 49 ], "y": [ 31, 32 ], "chance": 80 }, + { "item": "bed", "x": [ 53, 53 ], "y": [ 31, 32 ], "chance": 80 }, + { "item": "bed", "x": [ 57, 57 ], "y": [ 31, 32 ], "chance": 80 } + ], + "place_vehicles": [ + { "vehicle": "policecar", "x": 44, "y": 38, "chance": 50, "rotation": 180 }, + { "vehicle": "policecar", "x": 44, "y": 45, "chance": 50, "rotation": 180 }, + { "vehicle": "policecar", "x": 57, "y": 38, "chance": 50, "rotation": 180 }, + { "vehicle": "policecar", "x": 57, "y": 45, "chance": 50, "rotation": 180 } + ] + }, + "om_terrain": [ + [ "necropolis_a_7", "necropolis_a_8", "necropolis_a_9" ], + [ "necropolis_a_16", "necropolis_a_17", "necropolis_a_18" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".....sssssssssssssssssssssss_______,,_______ss..........................", + "....ssssssssssssssssssssssss_______,,_______sss.........................", + "....sss_____,______,_____sss________________ssssssssssssssssssssssssssss", + "....ss______,______,______ss_______,,________sssssssssssssssssssssssssss", + "....ss______,______,______ss_______,,___________________________________", + "....ss______,______,______ss_______,,___________________________________", + "....ss______,______,______ss____________________________________________", + "....ss______,______,______s________,,___________________________________", + "..#.ss_____________________________,,___________________________________", + "....ss_____________________________,,___________________________________", + "....ss_____________________________,,,__________________________________", + "....ss__________}___________________,,,,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,", + "....ss_______________________________,,,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,", + "....ss__________________________________________________________________", + "....ss__________________________________________________________________", + "....ss______,______,______s_____________________________________________", + "....ss______,______,______ss____________________________________________", + "....ss______,______,______ss____________________________________________", + "....ss______,______,______ss____________________________________________", + "....ss______,______,______sss___________________________________________", + "....sss_____,______,_____sssssssssssssssssssssssssssssssssssssssssssssss", + "....ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", + ".....ssssssssssssssssssssssssssssssssssssssssssss..........ssss.........", + "......IsssssI..................ssssssss......sss............ss.........T", + ".....|-=====-|--|---HHH-HHH-HHH-[[--[[-HHH-|.sss............ss..........", + ".....|e | r[ ccccccccccc cccc|.sss....T.......ss...T......", + "..#..| EEEEE | r[ c|.sss............bss.........", + ".....| EEEEE | r[ cc cc ZZ c|.sss............bss.........", + ".....|zEEEEE | r[ rrrrrrrrr c c ZZ c|.sss............bss.........", + ".....|zEEEEE | r[ rrrrrrrrr 6c 6c cV.sss........T.....ss........", + "....X| EEEEE | r[ cV.sss..............ss......T.", + ".....|zEEEEEz| r[ cV.sss.............ssss.......", + ".....|zEEEEEz| r[ rrrrrrrrr ZZ ZZ c c|.sss...T........ssssss......", + ".....| EEEEE + r[ rrrrrrrrr ZZ ZZ c c|.sss........aAassssssss.....", + ".....|zEEEEE |--| c {c{.sss........aUasssssssssssss", + ".....|zz + Z{ ZZ c {{.sss........aUasssssssssssss", + ".....|6 + rrrrrrrrr Z{{ ZZ {{{{sss........aAassssssss.....", + ".....|-------| | rrrrrrrrr { { {{){|.sss...T........ssssss......", + "...........ss: | {{ {{){{{{|.sss.............ssss......T", + "...........ss|--| {{ { rr{{{{{{{{{ss.sss..NNNNNNNNNN..ss........", + "...#.....x.ss|r rrrrrr{rr {{{{{){{sssss.sss.MNNNNNNNNNNN..ss.......", + "...........ss|r rrrrr{rr){{{{){{{{{MssMssMMMsMNN55555NNNNNN.ss..T....", + "...........ss|r {{ {){{{{){{{MssssMssMMssM.MNMNNNMNNNNNN.ss.......", + "...........ss|r { {{{{{{))sMssMMssMs.sMMMNNMMNMNNNNMNN.bss......", + "......#....ss|r rrrr){){){{sssssssMssMMMMMMMsMMNNMNNNJJJNNN.bss......", + "...........ss|r {r{){))){{sssMsssMMssMMMMMMMMM.MNMMNMNJMJNNN.bss......", + "...........ss|r{{{{ {{{ssssssMsMssMsMMMMMMMMMMMNMNMNNNJJJNNN...ss....T", + "...........ss|r {{ {{{{sMsssssMsMMsMMMMMMMMMMMMMMMNNNMNNMNNNNNNMss....." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "Z": "t_floor", "z": "t_floor" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_vehicles": [ + { "vehicle": "car", "x": 9, "y": 5, "chance": 25, "rotation": 90 }, + { "vehicle": "pickup", "x": 16, "y": 5, "chance": 25, "rotation": 90 }, + { "vehicle": "car_sports", "x": 22, "y": 5, "chance": 25, "rotation": 90 }, + { "vehicle": "hippie_van", "x": 8, "y": 16, "chance": 25, "rotation": 270 }, + { "vehicle": "car", "x": 15, "y": 17, "chance": 25, "rotation": 270 }, + { "vehicle": "car_mini", "x": 21, "y": 18, "chance": 25, "rotation": 270 } + ], + "place_items": [ + { "item": "collapsed_building_rubble", "x": [ 15, 23 ], "y": [ 42, 47 ], "chance": 95 }, + { "item": "alcohol", "x": [ 14, 14 ], "y": [ 40, 47 ], "chance": 75 }, + { "item": "cannedfood", "x": [ 19, 23 ], "y": [ 40, 41 ], "chance": 75 }, + { "item": "cannedfood", "x": [ 19, 23 ], "y": [ 36, 37 ], "chance": 75 }, + { "item": "pasta", "x": [ 19, 23 ], "y": [ 32, 33 ], "chance": 75 }, + { "item": "pasta", "x": [ 19, 23 ], "y": [ 28, 29 ], "chance": 75 }, + { "item": "kitchen", "x": [ 20, 23 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "fridge", "x": [ 15, 15 ], "y": [ 25, 33 ], "chance": 70 }, + { "item": "cannedfood", "x": [ 6, 7 ], "y": [ 28, 29 ], "chance": 80 }, + { "item": "cannedfood", "x": [ 6, 7 ], "y": [ 31, 32 ], "chance": 80 }, + { "item": "cannedfood", "x": [ 11, 12 ], "y": [ 31, 32 ], "chance": 80 }, + { "item": "pasta", "x": [ 6, 7 ], "y": [ 34, 35 ], "chance": 80 }, + { "item": "collapsed_building_rubble", "x": [ 36, 46 ], "y": [ 34, 41 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 24, 35 ], "y": [ 38, 47 ], "chance": 95 }, + { "item": "produce", "x": [ 35, 36 ], "y": [ 35, 36 ], "chance": 75 }, + { "item": "produce", "x": [ 31, 32 ], "y": [ 35, 36 ], "chance": 75 }, + { "item": "produce", "x": [ 35, 36 ], "y": [ 32, 33 ], "chance": 75 }, + { "item": "produce", "x": [ 31, 32 ], "y": [ 32, 33 ], "chance": 75 }, + { "item": "produce", "x": [ 38, 39 ], "y": [ 27, 28 ], "chance": 75 }, + { "item": "kitchen", "x": [ 39, 39 ], "y": [ 32, 35 ], "chance": 75 }, + { "item": "kitchen", "x": [ 42, 42 ], "y": [ 25, 34 ], "chance": 75 }, + { "item": "kitchen", "x": [ 39, 41 ], "y": [ 25, 25 ], "chance": 75 }, + { "item": "cannedfood", "x": [ 24, 27 ], "y": [ 40, 41 ], "chance": 75 }, + { "item": "cannedfood", "x": [ 24, 27 ], "y": [ 36, 37 ], "chance": 75 }, + { "item": "pasta", "x": [ 24, 27 ], "y": [ 32, 33 ], "chance": 75 }, + { "item": "pasta", "x": [ 24, 27 ], "y": [ 28, 29 ], "chance": 75 }, + { "item": "kitchen", "x": [ 24, 30 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "field", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 70 } + ] + }, + "om_terrain": [ + [ "necropolis_a_19", "necropolis_a_20", "necropolis_a_21" ], + [ "necropolis_a_28", "necropolis_a_29", "necropolis_a_30" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".{...{{.{..ss.....MM.MMMMMmm]]]]]]]]]]]]]]]mmMMMMMss___M___,,_______ssss", + "...{.......ss..M..M.ssMMMMMmm]]]]]]]]]]]]]mmMMMMMsMs_______,,_______ssss", + "sss{{s{sssssssssMsssMsMMMMMmm]]]]]]]]]]]mmMMMMMMsMs_,MM,,M_M________ssss", + "ssssssssssMsssssssMsssMsMMMMMmm]]]]]]]]]mm)))MMsMss__________________sss", + "_______________M__M_M__M_MMMMMmm]]]]]]]mmMM)))_M_M____M_________________", + "_____________M____M_,__M__MMMMMmmmmmmmmmMMMM)))__M_M___M________________", + "___________________M,__MMM_MMMMMmmmmmmmMMMMM_)))___M______M_____________", + "_______M________M___M__M___MMMMMMMMMMMMMMMMMM___M__M____________________", + "_______________M____,___MM___MMMMMMMMMMMMM_______M____M_________________", + "_______________M____,_M___M_M_MMMMMMMMMMM_M__M__________________________", + "_______________________M__M___MMMMMMMMMM_____M__________________________", + ",,_______________M___,M,_,,,_,,,MMMMMMM,_,M,_,,,_M,,_,,M_,,,_,,,_,,,_,,,", + ",,_________}_________,,,M,,,M,,,_,M,_,,,M,M,_,,,_,,,_,,,_,,,_,,,_,,,_,,,", + "_____________M________________M____M____________________________________", + "__,____________________________M_____M_____M____________________________", + "__,___________________M_______M_________________________________________", + "__,_____________________________________________________________________", + "__,______________________________M______________________________________", + "__,_____________________________________________________________________", + "________________________________________________________________________", + "sss________,,_,,,,,__sssssssssssssssssssssssssssssssssssssssssssssssssss", + "ssss_______,,_______ssssssssssssssssssssssssssssssssssssssssssssssssssss", + ".sss_______,,_______ssss.........|------|-------------|-------|.........", + "..ss________________sss..........|nnn dd| oo |d@ @d|.........", + "..ss_______,,_______sss..........| h | h | @ @ |.........", + "..ss_______,,_______sss..........| + kkk + |.........", + "..ss_______,,_______sss..........| h o| | hnnh |.........", + "..ss________________sss..........|nnn o| | hnnh |.........", + "..ss_______,,_______sss........|-||-----|--| |--|-------|.........", + "..ss_______,,_______sss...|----|AA|-----|AA|---+---|AA|-------|.........", + "..ss_______,,_______sss...| ccc oo n|.........", + "..ss________________sss..|| n|.........", + "..ss_______,,_______sssU.| I h h h I h h h I h h n|---|.....", + ".sss_______,,_______sss.|| h h h h h h h h h h h |.....", + "ssss_______,,_______ssss| h h h h h h h h h h h n|--|..", + "ssss________________ssss+ h h h h h h h h h h h n| |..", + ".sss_______,,_______ssss+ h h h h h h h h h h h n| |..", + "..ss_______,,_______ssss| h h h h h h h h h h h n| |..", + "..ss_______,,_______sss.|| h h h h h h h h h h h | |..", + "..ss________________sssU.| I h h h I h h h I h h n|---|r |..", + "..ss_______,,_______sss..|| n|tBB|r |..", + "..ss_______,,_______sss...| n| | |..", + "..ss_______,,_______sss...|----|AA|--:--|AA|-------|AA|---:---|S | |..", + "..ss________________sss........|-||f ||-|zz zz|--|oo |-+-| |..", + "..ss_______,,_______sss..........|c |-|--- ---| o| |..", + "..ss_______,,_______sss..........|S hnnh | | o|> |..", + "..ss_______,,_______sss..........|O hnnh + kkk | |..", + "..ss________________sss..........|c |---------| h @@ |--|.." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "z": "t_floor" }, + "toilets": { "t": { } }, + "place_items": [ + { "item": "collapsed_building_rubble", "x": [ 0, 9 ], "y": [ 0, 4 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 20 }, + { "item": "vehicle_scrapped", "x": [ 42, 47 ], "y": [ 2, 8 ], "chance": 75 }, + { "item": "allclothes", "x": [ 38, 39 ], "y": [ 23, 23 ], "chance": 75 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 20 }, + { "item": "novels", "x": [ 51, 52 ], "y": [ 23, 23 ], "chance": 70 }, + { "item": "allclothes", "x": [ 55, 55 ], "y": [ 23, 23 ], "chance": 75 }, + { "item": "allclothes", "x": [ 61, 61 ], "y": [ 23, 23 ], "chance": 75 }, + { "item": "collapsed_building_rubble", "x": [ 48, 63 ], "y": [ 0, 15 ], "chance": 20 }, + { "item": "bed", "x": [ 56, 56 ], "y": [ 23, 23 ], "chance": 80 }, + { "item": "bed", "x": [ 60, 60 ], "y": [ 23, 23 ], "chance": 80 }, + { "item": "homebooks", "x": [ 39, 39 ], "y": [ 26, 27 ], "chance": 75 }, + { "item": "office", "x": [ 46, 47 ], "y": [ 25, 25 ], "chance": 75 }, + { "item": "church", "x": [ 44, 45 ], "y": [ 43, 43 ], "chance": 75 }, + { "item": "church", "x": [ 31, 46 ], "y": [ 32, 39 ], "chance": 75 }, + { "item": "fridge", "x": [ 35, 35 ], "y": [ 43, 43 ], "chance": 80 }, + { "item": "dining", "x": [ 37, 38 ], "y": [ 34, 41 ], "chance": 60 }, + { "item": "kitchen", "x": [ 34, 34 ], "y": [ 44, 47 ], "chance": 80 }, + { "item": "lmoe_guns", "x": [ 57, 57 ], "y": [ 46, 46 ], "chance": 10 }, + { "item": "office", "x": [ 57, 59 ], "y": [ 46, 46 ], "chance": 70 }, + { "item": "church", "x": [ 49, 50 ], "y": [ 43, 43 ], "chance": 70 }, + { "item": "homebooks", "x": [ 55, 56 ], "y": [ 43, 43 ], "chance": 70 }, + { "item": "alcohol", "x": [ 65, 65 ], "y": [ 44, 45 ], "chance": 80 }, + { "item": "homebooks", "x": [ 58, 59 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "church", "x": [ 49, 53 ], "y": [ 32, 39 ], "chance": 70 }, + { "item": "dining", "x": [ 58, 59 ], "y": [ 26, 27 ], "chance": 60 }, + { "item": "bed", "x": [ 56, 56 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 60, 60 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 63, 64 ], "y": [ 47, 47 ], "chance": 80 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_vehicles": [ + { "vehicle": "fire_truck", "x": 15, "y": 8, "chance": 90, "rotation": 45 }, + { "vehicle": "car", "x": 45, "y": 5, "chance": 100, "rotation": 45 } + ] + }, + "om_terrain": [ + [ "necropolis_a_22", "necropolis_a_23", "necropolis_a_24" ], + [ "necropolis_a_31", "necropolis_a_32", "necropolis_a_33" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..|------------|-|-------|9799999997999999977777777777777777778.........", + "ssssssssssssssssssssssssssss_______s_______s............................", + "ssssssssssssssssssssssssssss_______s_______s............................", + "ssssssssssssssssssssssssssss_______s_______ss................#..........", + "___________________________________________sss..........................", + "____________________________________________ss........#.................", + "____________________________________________ss....................X...#.", + "____________________________________________ss..........................", + "____________________________________________ss..........................", + "____________________________________________ss........#.................", + "____________________________________________ss...........#..............", + "_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,,___________ss....x.....................", + "_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,,,__________ss..........................", + "_________________________________,,_________ss..........................", + "__________________________________,,________ss......................#...", + "___________________________________,,_______ss..........................", + "___________________________________,,_______ss..........................", + "___________________________________,,_______ss.........#................", + "____________________________________________ss....#.....................", + "___________________________________,,_______ss.......#............C.....", + "sssssssssssssssssssssssssss________,,_______ss..........................", + "ssssssssssssssssssssssssssss_______,,_______ss..........................", + "..s..........sssss.......sss________________ss.....X.........#..........", + "..s.|-HHH-HHH-|ss|-HHH-|..ss_______,,_______sM..........................", + "..s.|ccccccccc|[[|ccccc|..ss_______,,_____M_ssM.M.......................", + "..s.| cV..ss_______,,___M___ss..........................", + "..s.| rr rr rr cV..ss________M___M__Mss..M..#....................", + "..s.| rr rr rr cV..ss_M_____,,___M__MMs...............M..........", + "..s.| rr rr rr c|..ss_____M_,M_M__M_MMsM..M.M................M...", + "..s.| cV..ss_______,,_M___M_sM..M...MM..................", + "..s.|---|-----|cc6c cV..ss__M__MM_MM_MM_MMMM.MM.......................", + "..ssssss= : c cV..ssMMM____,,___M__Mss..M.M...M.................", + ".......s|rrrr>|rr c|.Mss__M_M__M,M_M_M__ssM.......M..M..............", + ".......s|--|--|-|-+--|-|..Ms___M___,,MMMMMMMss.MMMM.............#.......", + ".......ssss|rrrr| S |....MsM_M___M_MMMMMMMMMsM.M.M....M................", + ".......ssss; | t|..M.ss_M__M__MMMMMMMMMMM.MM..M......M.............", + "......|----|--+-|-+--|{{..MM_M____MMMMMMMMMMMMM.MMM.M.M..M..............", + "......|r {{ {{{{ss.Mss___M_MMMMMMMMMMMMMMMMM.M..M..M..............", + "......|r rr r){ {{sssM..ssM___MMMMMmmmmmmmMMMMM.M.MMM.......M.M.......", + "......|r rr r)M{M{sssM.MMM___MMMMMmmmmmmmmmMMMMMM.M..M.M.M.M........C.", + "......|r r) r{{MssssMsM.Ms__MMMMMmm]]]]]]]mmMMMMM..M..MM.M............", + "......|r r) {){{s)MsssM.Mss_MMMMMmm]]]]]]]]]mmMMMMMM.M....M.MM.........", + "......|r rr{{)ssMssssMsMMssMMMMMmm]]]]]]]]]]]mmMMMMM.MM.M..M...........", + "......|r r){{{{sssssMss.MsMMMMMmm]]]]]]]]]]]]]mmMMMMMM.M..MM...M.......", + "......|r )){{{MssMsssMsM.MMMMMmm]]]]]]]]]]]]]]]mmMMMMM..M....M.........", + "......|r {{{{{ssssssM{MM.MMMMMmm]]]]]]]]]]]]]]]]]mmMMMMMM..M..MM........", + "......|){{{{{sssMssMsssMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM...M..M........", + "......|-{{{{ssMsMssMssMMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM.M..M..MM......" + ], + "palettes": [ "necropolis_a" ], + "terrain": { }, + "toilets": { "t": { } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_items": [ + { "item": "field", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 7, 15 ], "y": [ 37, 42 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 7, 15 ], "y": [ 39, 47 ], "chance": 95 }, + { "item": "novels", "x": [ 14, 15 ], "y": [ 38, 40 ], "chance": 70 }, + { "item": "manuals", "x": [ 10, 11 ], "y": [ 38, 43 ], "chance": 70 }, + { "item": "textbooks", "x": [ 7, 7 ], "y": [ 37, 45 ], "chance": 70 }, + { "item": "homebooks", "x": [ 12, 15 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "pawn", "x": [ 15, 16 ], "y": [ 32, 32 ], "chance": 70 }, + { "item": "pawn", "x": [ 9, 12 ], "y": [ 32, 32 ], "chance": 70 }, + { "item": "pawn", "x": [ 16, 17 ], "y": [ 26, 28 ], "chance": 70 }, + { "item": "pawn", "x": [ 11, 12 ], "y": [ 26, 28 ], "chance": 70 }, + { "item": "pawn", "x": [ 6, 7 ], "y": [ 26, 28 ], "chance": 70 }, + { "item": "pawn", "x": [ 22, 22 ], "y": [ 25, 32 ], "chance": 70 }, + { "item": "pawn", "x": [ 18, 22 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "pawn", "x": [ 6, 14 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 24, 39 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 24, 47 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 50 }, + { "item": "field", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 70 } + ] + }, + "om_terrain": [ + [ "necropolis_a_25", "necropolis_a_26", "necropolis_a_27" ], + [ "necropolis_a_34", "necropolis_a_35", "necropolis_a_36" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "...........ss|r {{{{{{sssssssssMssMMMMMMMMMMMMMMMNNMNNNMMNNNN..ss.....", + "...........ss|--{{--{{--ss.sssMMsMsMMMMMmmmmmmmMMMMM.M..M...M.M.ssss....", + "...........sssssss{{{s8ssssMMMMsMsMMMMMmmmmmmmmmMMMMMssssMssMssMssssssss", + "...........sss{{{sssssMsMMsMssMssMMMMMmm]]]]]]]mmMMMMMsMsMssssssssssssMs", + "......|--------{{{--sssssssssMM_MMMMMmm]]]]]]]]]mmMMMMM__MMMM_M___M_____", + "......| dd kkk{{{{{sssssMsMM___MMMMMmm]]]]]]]]]]]mmMMMMM________M___M___", + "......| @@ k {{{{ssssssMss_MMMMMMmm]]]]]]]]]]]]]mmMMMMM_M_M__M________", + "......| @@ { {{{){sMssMssss_MMMMMmm]]]]]]]]]]]]]]]mmMMMMM_____M________", + ".#....| {{ {{{{{ssssMsMsMMMMMmm]]]]]]]]]]]]]]]]]mmMMMMM_MMMMM_MM_M_M", + "......|c {{{{){sssssMsMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_M______M___", + "......|c @@{){{{ssssss.ssMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_M_MM_______", + "......|c {{{{{{sssssMsMsMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM,M_,,,M,,,_,", + "......|J J{){{){{ssssM.sMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMMMM_MM,_MM,_,", + "......| {{ {)ssssssMssMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_MM______M__", + "......|c@@ {{{{{{{sMsssssMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_____MM_____", + "......|c@@ @{{{{{ssssssMMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM_MM__M_M_M__", + "......| KK@ {{{{{MssMwsssMMMMMmm]]]]]]]]]]]]]]]]]mmMMMMM_M__M________", + "..x...|-|----{{{)--ssssMMMss_MMMMMmm]]]]]]]]]]]]]]]mmMMMMM____M__MMM__M_", + "........|rrrrr{{{{sssssssssMM_MMMMMmm]]]]]]]]]]]]]mmMMMMM_MMM_M__M______", + "........|r {{{{{{sssssMsMM___MMMMMmm]]]]]]]]]]]mmMMMMM__MM__M____M____", + "........|r rr)r{{{{sssssssMMM_MMMMMMmm]]]]]]]]]mmMMMMMsssssMMMssssssss{", + "......#.|r rrr{{{){{ssMsMss__MM_MMMMMmm]]]]]]]mmMMMMMssMMsssssssssss{{{", + "........|r { {{{{ssssssMM__MMMMMMMMmmmmmmmmmMMMMMsssMMssMsssss---M{{", + "........|r {{ rr{{){sssMsM_M_M__MMMMMMmmmmmmmMMMMMssssMsBssBBssss{{{{s", + "...#....|--w-| rr{{{{{ssssM___MMMM,MMMMMMMMMMMMMMMsssM@Msssssss)ss{{{{s", + "........|kkk {){{{{ssssMs_M_M__M,MMMMMMMMMMMMMMswssMMsssS sss {{{{{ss", + "........|kh |rrrr{{{{{sssss_MM_____MMMMMMMMMMMMMssssMsssMs)ssss{{{{ |ss", + ".......||--|-|-----{{{{sssss__MM__M,M__MMMMMMMMM.sMsMssssssssf{{{{{{ {ss", + ".......|rrr|rrrrrr{{{{)sssMs___M___,,M__MMMMMMMMMssssssss ss|{{{{{{n{{ss", + ".......| | {{))sssMs_MM___M,,M_M____Ms...sMssssss|-{{{-|{{{--|ss", + ".......|r + rr rr{{ssssss______M______M_MsM..Msssssssd|BB{BB|d@@ n|ss", + ".......|r |r rr r){{{sssss__M___M,,MM_M___MsM.Mssss{ss{{ t|t | @@ hwss", + "..#....|r |r {{ {{sssss_______,,_MM__M_ssM..sss{{{{{{ S|S | {{ wss", + ".......| |r { {{{{sss_______,,_______sM...ss{{M{ {{+-|-+| { |ss", + ".......|zz |r c){c |sssss_____________M__ss...{s{{{{){ f|f ;ss", + ".......|zz |r c [sssss_______,,_______ss...s{{{{)){ { | nnnn |ss", + ".......|--||r c c [ss{{s_______,,_______ss..{{s{{----|--|--|-----|ss", + ".......| + c6cc |ss{ss_______,,_______ss...s{|n @@d|BB|BB|d@@ n|ss", + "....C..| | |-|sss__________{{____ss...sswh @@ | t|t | @@ hwss", + ".......|--|r rrr |sss___________{____ss...ssw | S|S | wss", + ".......| |r rr rrr rr Vsss________________ss...ss| |+-|-+| |ss", + "X......|--| rr rr Vsss________________ss...ss; f|f ;ss", + ".......| + Vsss________________ss...ss| nnnn | nnnn |ss", + ".......| |rrrrrrrrrrrrr|sss________________ss...ss|--------|--------|ss", + "...#...|--|-------------|ssss______________ssss.ssssssssssssssssssssssss", + ".......#...............sssssssss________ssssssssssssssssssssssssssssssss", + "........|--|--------|.ssssssssss________sssssssssss|-+---------|-- --|ss", + "........|BB|d@@d@@ n|sss________________________sss| jjjjjj D|l |ss" + ], + "palettes": [ "necropolis_a" ], + "terrain": { "D": "t_floor", "l": "t_floor", "z": "t_floor" }, + "toilets": { "t": { } }, + "place_items": [ + { "item": "home_hw", "x": [ 12, 15 ], "y": [ 20, 21 ], "chance": 75 }, + { "item": "home_hw", "x": [ 10, 13 ], "y": [ 18, 18 ], "chance": 75 }, + { "item": "home_hw", "x": [ 9, 9 ], "y": [ 18, 23 ], "chance": 75 }, + { "item": "collapsed_building_rubble", "x": [ 11, 23 ], "y": [ 0, 23 ], "chance": 98 }, + { "item": "collapsed_building_rubble", "x": [ 0, 23 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 63, 71 ], "y": [ 20, 23 ], "chance": 80 }, + { "item": "collapsed_building_rubble", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "traveler", "x": [ 12, 12 ], "y": [ 47, 47 ], "chance": 70 }, + { "item": "traveler", "x": [ 15, 15 ], "y": [ 47, 47 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 16, 23 ], "y": [ 24, 35 ], "chance": 95 }, + { "item": "allclothes", "x": [ 16, 18 ], "y": [ 39, 40 ], "chance": 70 }, + { "item": "allclothes", "x": [ 11, 23 ], "y": [ 43, 43 ], "chance": 70 }, + { "item": "allclothes", "x": [ 12, 12 ], "y": [ 31, 36 ], "chance": 70 }, + { "item": "allclothes", "x": [ 8, 9 ], "y": [ 34, 35 ], "chance": 85 }, + { "item": "allclothes", "x": [ 8, 8 ], "y": [ 30, 32 ], "chance": 70 }, + { "item": "allclothes", "x": [ 18, 19 ], "y": [ 30, 31 ], "chance": 70 }, + { "item": "allclothes", "x": [ 15, 16 ], "y": [ 30, 31 ], "chance": 70 }, + { "item": "allclothes", "x": [ 8, 10 ], "y": [ 28, 28 ], "chance": 70 }, + { "item": "allclothes", "x": [ 12, 17 ], "y": [ 28, 28 ], "chance": 70 }, + { "item": "office", "x": [ 9, 11 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "home_hw", "x": [ 16, 17 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "home_hw", "x": [ 14, 17 ], "y": [ 26, 26 ], "chance": 70 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 47, 47 ], "chance": 80 }, + { "item": "bed", "x": [ 16, 17 ], "y": [ 47, 47 ], "chance": 80 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 24, 43 ], "chance": 70 }, + { "item": "traveler", "x": [ 64, 64 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "traveler", "x": [ 64, 67 ], "y": [ 35, 35 ], "chance": 70 }, + { "item": "traveler", "x": [ 56, 56 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "traveler", "x": [ 53, 56 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "allclothes", "x": [ 55, 60 ], "y": [ 47, 47 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 59, 70 ], "y": [ 26, 30 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 48, 59 ], "y": [ 33, 39 ], "chance": 95 }, + { "item": "collapsed_building_rubble", "x": [ 48, 56 ], "y": [ 24, 32 ], "chance": 60 }, + { "item": "bed", "x": [ 65, 66 ], "y": [ 30, 31 ], "chance": 80 }, + { "item": "bed", "x": [ 54, 55 ], "y": [ 37, 38 ], "chance": 80 }, + { "item": "bed", "x": [ 65, 66 ], "y": [ 37, 38 ], "chance": 80 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_vehicles": [ + { "vehicle": "ambulance", "x": 65, "y": 15, "chance": 90, "rotation": 0 }, + { "vehicle": "fire_truck", "x": 32, "y": 28, "chance": 90, "rotation": 270 } + ], + "place_vendingmachines": [ { "item_group": "vending_drink", "x": 64, "y": 47 } ] + }, + "om_terrain": [ + [ "necropolis_a_37", "necropolis_a_38", "necropolis_a_39" ], + [ "necropolis_a_46", "necropolis_a_47", "necropolis_a_48" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..ss_______,,_______sss..........|c oo|.........|d @@d|.....", + ".sss_______,,_______ssss.........|-------|.........|--------------|.....", + "ssss_,,,,,_,,_______ssssssssssssssssssssssssssssssssssssssssssssssssssss", + "sss__________________sssssssssssssssssssssssssssssssssssssssssssssssssss", + "_M______________________________________________________________________", + "_M___M________________________________________,_________________________", + "M_____________________________________________,_________________________", + "______________________________________________,_________________________", + "______________________________________________,_________________________", + "______________________________________________,_________________________", + "________________________________________________________________________", + ",,_,,,_,,,_,,,_,,,_,,,_,,,____________________,,,_,,,_,,,_,,,_,,,_,,,_,,", + ",,_,,,_,,,_,,,_,,,_,,,_,,,__________}_________,,,_,,,_,,,_,,,_,,,_,,,_,,", + "_M______________________________________________________________________", + "_________________________,______________________________________________", + "M________________________,______________________________________________", + "M________________________,______________________________________________", + "_________________________,______________________________________________", + "_________________________,______________________________________________", + "________________________________________________________________________", + "sssssssssssssssssssssssssss__________________sssssssssssssssssssssssssss", + "ssssssssssssssssssssssssssss_________,,,,,,_ssssssssssssssssssssssssssss", + "..ss{{{{--|--|--|-----|sssss________________sss#######|--ww-++-ww---|sss", + "..ss{{ {@d|BB|BB|d@@ n|ss.ss_______,,_______ss##sЮЮsss|hh chnnh|sss", + "..ss{{{@@ | t|t | @@ hwss.ss_______,,_______ss#sЮЯЯЮss|nn chnnh|sss", + "..ss{ | S|S | wss.ss_______,,_______ss#sЮЯЯЮsswnn h |sss", + "..ss{ |+-|-+| |ss.ss________________sssssЮЮssswhh n hcc |777", + "..ss; f|f ;ss.ss_______,,_______sssssssssswcc h hc r|sss", + "..ss| nnnn | nnnn |ss.ss_______,,_______ss#sssssss|hh hc r|sss", + "..ss|-----|--|--|-----|ss.ss_______,,_______ss#ssЮЮsss|nn h hc f|sss", + "..ss|n @@d|BB|BB|d@@ n|ss.ss________________ss#sЮЯЯЮsswnn n hc f|sss", + "..sswh @@ | t|t | @@ hwss.ss_______,,_______ss#sЮЯЯЮsswhh h hc c|sss", + "..ssw | S|S | wss.ss_______,,_______ss#ssЮЮssswcc hc S|sss", + "..ss| |+-|-+| |ss.ss_______,,_______ss#sssssss| c r|sss", + "..ss; f|f ;ss.ss________________ssssssssss[ c r|sss", + "..ss| nnnn | nnnn |ss.ss_______,,_______ssssssssss[ |----|c-- -|sss", + "..ss|-----|--|--|-----|ss.ss_______,,_______ss#sssssss| + | c|sss", + "..ss|n @@d|BB|BB|d@@ n|ss.ss_______,,_______ss#ssЮЮsssw |S t |c S|Dss", + "..sswh @@ | t|t | @@ hwss.ss________________ss#sЮЯЯЮssw |----|c S|Dss", + "..ssw | S|S | wss.ss_______,,_______ss#sЮЯЯЮssw + |c ;sss", + "..ss| |+-|-+| |ss.ss_______,,_______ss##sЮЮsss| |S t |cOOff|797", + "..ss; f|f ;ss.ss_______,,________ss#####ss|--|----|-----|sss", + "..ss| nnnnn | nnnn |ss.ss_______________________,__,_________________", + "..ss|--------|--------|ss.ss_______,,______________,,,,_________________", + "ssssssssssssssssssssssssssss_______,,______________,__,_________________", + "ssssssssssssssssssssssssssss_______,,______________,,,,_________________", + "ssssssssssssssssssssssssssss_______________________,__,_________________", + "ss________________________ss_______,,______________,,,,_________________" + ], + "palettes": [ "necropolis_a" ], + "terrain": { "Ю": "t_sidewalk", "Я": "t_sidewalk" }, + "furniture": { "Ю": "f_chair", "Я": "f_table" }, + "toilets": { "t": { } }, + "place_items": [ + { "item": "traveler", "x": [ 17, 17 ], "y": [ 23, 23 ], "chance": 80 }, + { "item": "bed", "x": [ 8, 8 ], "y": [ 23, 23 ], "chance": 80 }, + { "item": "bed", "x": [ 18, 19 ], "y": [ 23, 23 ], "chance": 80 }, + { "item": "homebooks", "x": [ 39, 40 ], "y": [ 0, 0 ], "chance": 70 }, + { "item": "allclothes", "x": [ 52, 52 ], "y": [ 0, 0 ], "chance": 75 }, + { "item": "allclothes", "x": [ 65, 65 ], "y": [ 0, 0 ], "chance": 75 }, + { "item": "bed", "x": [ 63, 64 ], "y": [ 0, 0 ], "chance": 80 }, + { "item": "traveler", "x": [ 5, 9 ], "y": [ 30, 35 ], "chance": 70 }, + { "item": "traveler", "x": [ 16, 21 ], "y": [ 37, 42 ], "chance": 70 }, + { "item": "traveler", "x": [ 17, 17 ], "y": [ 40, 40 ], "chance": 80 }, + { "item": "traveler", "x": [ 6, 10 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "bed", "x": [ 7, 8 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 7, 8 ], "y": [ 30, 31 ], "chance": 80 }, + { "item": "bed", "x": [ 7, 8 ], "y": [ 37, 38 ], "chance": 80 }, + { "item": "bed", "x": [ 18, 19 ], "y": [ 24, 24 ], "chance": 80 }, + { "item": "bed", "x": [ 18, 19 ], "y": [ 30, 31 ], "chance": 80 }, + { "item": "bed", "x": [ 18, 19 ], "y": [ 37, 38 ], "chance": 80 }, + { "item": "dining", "x": [ 64, 64 ], "y": [ 26, 33 ], "chance": 70 }, + { "item": "dining", "x": [ 55, 56 ], "y": [ 29, 30 ], "chance": 60 }, + { "item": "dining", "x": [ 55, 56 ], "y": [ 25, 26 ], "chance": 60 }, + { "item": "fridge", "x": [ 67, 67 ], "y": [ 27, 34 ], "chance": 80 }, + { "item": "kitchen", "x": [ 63, 67 ], "y": [ 36, 40 ], "chance": 80 }, + { "item": "produce", "x": [ 66, 67 ], "y": [ 40, 40 ], "chance": 80 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ] + }, + "om_terrain": [ + [ "necropolis_a_40", "necropolis_a_41", "necropolis_a_42" ], + [ "necropolis_a_49", "necropolis_a_50", "necropolis_a_51" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "...........###ss#MMM.M..MMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM...M..M........", + "............#.ss.MM.M..MMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM.M..MM.........", + "sssssssssssMssssssMsMMsMMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM.M..M.M........", + "sssssssssMssssssssssssssMMMMMmm]]]]]]]]]]]]]]]]]]]mmMMMMM.M..MM...M.....", + "______________MM__M_MM__MMMMMmm]]]]]]]]]]]]]]]]]]mmMMMMM.M..............", + "_____________M___M____M__MMMMMmm]]]]]]]]]]]]]]]]]mmMMMMM..M.M...........", + "_______M___________M_____MMMMMMmm]]]]]]]]]]]]]]]mmMMMMM.M.....M.........", + "_________M_____M__M__MMMM__MMMMMmm]]]]]]]]]]]]]mmMMMMMM.MM.M#.M.........", + "_________________M_M______M_MMMMMmm]]]]]]]]]]]mmMMMMM......MM...........", + "______________________M_M_M__MMMMMmm]]]]]]]]]mmMMMMMMM.MM...M...........", + "________________M__M_______MM_MMMMMmm]]]]]]]mmMMMMM...M.MMM........#....", + ",_,,,_,,,_,,,_,,,_,,,M,,,___M__MMMMMmmmmmmmmmMMMMMM.M..M................", + ",_,,,_,,,_,,,_,,,_,M,_,,,M___M_MMMMMMmmmmmmmMMMMMMM.M..M............#...", + "_________________________M__M_M_MMMMMMMMMMMMMMMMM.M..M....M.............", + "____________________M____,______M_MMMMMMMMMMMMMMM..M....................", + "_______________M_____M___,___M_M___MMMMMMMMMMM.....M....................", + "_________________________,__MM___MM,MMMMMMMMMs..MM...M...........#......", + "_________________________,_________,,MMMMMMMss.M..........M.............", + "_____________________M___,_M___M__M__M__M_M_sM..M.......................", + "______________________________M__M_,,______Mss.........#............X...", + "sssssssssssssssssssssssssss________,,M______ss.M.MM.....................", + "ssssssssssssssssssssssssssss_M_____,,____M__ss..........................", + "...............ss........sss_M______________ssM.........................", + "......#.....#..ss..#......ss_______,,__M____sss|--vvv--|-v-v-|--vv---|..", + ".....###...###.ss.###.....ss_______,,_______sss| |ccOcc| d@@d |..", + "|------|----HHH[[HH{{{-|..ss___M___,,_______sssv hnnh |c S| @@ kv..", + "|gGGGGg| ccccc|..ss________________sssv hnnh |f S| hkv..", + "|grrrrg| ccc V..ss_______,,_______sssv hnnh |o k|..", + "|gr rg| 6 V..ss_______,,_______sss| | |o |..", + "|gr rg| hc cc [ssss_______,,_______sss|-|- --| |-+|--|+|..", + "|gr rg| c cc [ssss________________sssssv |St| |..", + "|gGG=Gg| 6 V..ss_______,,_______sssss; --|-| + | |..", + "|--| |-| hc V#.ss_______,,_______sssss|P >|r+ |BB|r|..", + "; c V##ss_______,,_______sssss|--------|-|---|--|-|..", + "|---+-|-----H HVH HHHHHV#.ss________________sssss|oo >|r+ |BB|r|..", + "|hh f|o V V..ss_______,,_______sssss; --|-| + | |..", + "|nn c|o k V h V..ss_______,,_______sssssv |St| |..", + "|nn S| hkh V kkk V#.ss_______,,_______sss|-|- --| |-+|--|+|..", + "|hh c| k V h V##ss________________sss| | | |..", + "| cc|P VP oo|#.ss_______,,_______sssvc nn ? f|d n|..", + "|-----|-HHHHHH-|-HHHHH-|.sss_______,,_______sssvc nn ? | S|d @@v..", + "sssssssssssssssssssssssssss________,,_______sssvc ? |c S|d @@v..", + "____________________________________________sss| ?? ? |ccOcc| oo d|..", + "___________________________________,,_______sss|--vvv--|-v-v-|--vv---|..", + "___________________________________,,_______sss.........................", + "___________________________________,,_______ss........#.................", + "____________________________________________ss..........................", + "___________________________________,,_______ss......C..................." + ], + "palettes": [ "necropolis_a" ], + "terrain": { }, + "toilets": { "t": { } }, + "place_items": [ + { "item": "collapsed_building_rubble", "x": [ 15, 23 ], "y": [ 0, 18 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 24, 47 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "collapsed_building_rubble", "x": [ 48, 63 ], "y": [ 0, 18 ], "chance": 70 }, + { "item": "field", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "homebooks", "x": [ 21, 22 ], "y": [ 39, 39 ], "chance": 70 }, + { "item": "homebooks", "x": [ 7, 7 ], "y": [ 35, 36 ], "chance": 70 }, + { "item": "office", "x": [ 9, 9 ], "y": [ 36, 38 ], "chance": 70 }, + { "item": "office", "x": [ 18, 20 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "vault", "x": [ 2, 5 ], "y": [ 27, 30 ], "chance": 70 }, + { "item": "fridge", "x": [ 5, 5 ], "y": [ 35, 35 ], "chance": 80 }, + { "item": "dining", "x": [ 1, 2 ], "y": [ 36, 37 ], "chance": 70 }, + { "item": "kitchen", "x": [ 5, 5 ], "y": [ 36, 39 ], "chance": 80 }, + { "item": "allclothes", "x": [ 62, 62 ], "y": [ 39, 41 ], "chance": 70 }, + { "item": "homebooks", "x": [ 64, 65 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "allclothes", "x": [ 68, 68 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "magazines", "x": [ 50, 51 ], "y": [ 39, 40 ], "chance": 50 }, + { "item": "novels", "x": [ 50, 51 ], "y": [ 34, 34 ], "chance": 50 }, + { "item": "fridge", "x": [ 60, 60 ], "y": [ 39, 39 ], "chance": 70 }, + { "item": "kitchen", "x": [ 56, 60 ], "y": [ 40, 42 ], "chance": 80 }, + { "item": "allclothes", "x": [ 68, 68 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "softdrugs", "x": [ 65, 66 ], "y": [ 34, 36 ], "chance": 50 }, + { "item": "jackets", "x": [ 59, 59 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "softdrugs", "x": [ 65, 66 ], "y": [ 30, 32 ], "chance": 50 }, + { "item": "allclothes", "x": [ 68, 68 ], "y": [ 32, 32 ], "chance": 70 }, + { "item": "jackets", "x": [ 59, 59 ], "y": [ 32, 32 ], "chance": 70 }, + { "item": "office", "x": [ 68, 68 ], "y": [ 25, 27 ], "chance": 70 }, + { "item": "homebooks", "x": [ 62, 62 ], "y": [ 27, 28 ], "chance": 70 }, + { "item": "allclothes", "x": [ 63, 63 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "allclothes", "x": [ 66, 66 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "fridge", "x": [ 56, 56 ], "y": [ 26, 26 ], "chance": 70 }, + { "item": "dining", "x": [ 51, 52 ], "y": [ 25, 27 ], "chance": 70 }, + { "item": "kitchen", "x": [ 56, 60 ], "y": [ 24, 26 ], "chance": 80 }, + { "item": "bed", "x": [ 64, 65 ], "y": [ 24, 25 ], "chance": 80 }, + { "item": "bed", "x": [ 67, 68 ], "y": [ 40, 41 ], "chance": 80 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ] + }, + "om_terrain": [ + [ "necropolis_a_43", "necropolis_a_44", "necropolis_a_45" ], + [ "necropolis_a_52", "necropolis_a_53", "necropolis_a_54" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........|t | @@ @@ hwss__________________________ss| |l f|ss", + "..#.....|S | wss__________________________ss|KKKK KKKK|D |ss", + "........|-+| |ss__________________________ss|-----|--|--|-----|ss", + "........|f ;ss__________________________ss|n @@d|BB|BB|d@@ n|ss", + "........| cccccc |ss__________________________sswh @@ | t|t | @@ hwss", + "........|--|--------|ss,,,,,,,____________,,,,,,,ssw | S|S | wss", + "........|BB|d@@d@@ n|ss__________________________ss| |+-|-+| |ss", + "........|t | @@ @@ hwss__________________________ss; f|f ;ss", + "......x.|S | wss__________________________ss| nnnn | nnnn |ss", + "........|-+| |ss__________________________ss|-----|--|--|-----|ss", + "........|f ;ss__________________________ss|d @@d|BB|BB|d@@ n|ss", + "........| cccccc |ss____________}_____________sswd @@ | t|t | @@ hwss", + "........|--|--------|ss,,,,,,,____________,,,,,,,ssw + S|S | wss", + "........|BB|d@@d@@ n|ss__________________________ss| |+-|-+| |ss", + "........|t | @@ @@ hwss__________________________ss|---+-| P|f ;ss", + "........|S | wss__________________________ss|ccf | nnnn |ss", + "........|-+| |ss__________________________sswO |--------|ss", + "..#.....|f ;ss__________________________sswS hnnh | 6 l|ss", + "........| cccccc |ss__________________________ss|c hnnh | c bwss", + "........|--|--------|ss,,,,,,,____________,,,,,,,ss|c | c bwss", + "........|BB|d@@d@@ n|ss__________________________ss|--ccc- -| bwss", + "........|t | @@ @@ hwss__________________________ss| ???? | |ss", + "........|S | wss__________________________ssw | k +ss", + "........|-+| |ss__________________________ssw ; hk +ss", + ".......#|f ;ss__________________________ss| cc | k |ss", + "........| ccnnnn |sss________________________sss|--------|-ww--ww-|ss", + "........|-----------|sssssssssss________ssssssssssssssssssssssssssssssss", + "...........###...###..sssssssss__________sssssssssssssssssssssssssssssss", + "________________________________________________________________________", + "________________________________________________________________________", + "________________u_______________________________________________________", + "________________u_______________________________________________________", + "________________u_______________________________________________________", + "________________________________________________________________________", + "__________________u_____________________________________________________", + "_,,,_,,,_,,,_,,,_,u,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,", + "_,,,_,,,_,,,_,,,_,u,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,", + "________________________________________________________________________", + "_________________u______________________________________________________", + "_________________u______________________________________________________", + "_________________u______________________________________________________", + "________________________________________________________________________", + "________________________________________________________________________", + "________________________________________________________________________", + ".............ssss_____________________________ss____,,____ssssssssssssss", + ".......X........ss___________________________ssss___,,___sssssssssssssss", + "..............#..s___________________________s##s__,,,,__s|HHHH[[HHHH|ss", + ".............###.s______,______,______,______s##s___,,___s|hnnh hnnh|ss" + ], + "palettes": [ "necropolis_a" ], + "terrain": { "D": "t_floor", "l": "t_floor" }, + "toilets": { "t": { } }, + "place_items": [ + { "item": "traveler", "x": [ 13, 18 ], "y": [ 4, 4 ], "chance": 70 }, + { "item": "traveler", "x": [ 12, 12 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "traveler", "x": [ 15, 15 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "traveler", "x": [ 13, 18 ], "y": [ 11, 11 ], "chance": 70 }, + { "item": "traveler", "x": [ 13, 18 ], "y": [ 18, 18 ], "chance": 70 }, + { "item": "traveler", "x": [ 12, 12 ], "y": [ 20, 20 ], "chance": 70 }, + { "item": "traveler", "x": [ 15, 15 ], "y": [ 20, 20 ], "chance": 70 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 0, 0 ], "chance": 80 }, + { "item": "bed", "x": [ 16, 17 ], "y": [ 0, 0 ], "chance": 80 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 6, 7 ], "chance": 80 }, + { "item": "bed", "x": [ 16, 17 ], "y": [ 6, 7 ], "chance": 80 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 13, 14 ], "chance": 80 }, + { "item": "bed", "x": [ 16, 17 ], "y": [ 13, 14 ], "chance": 80 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 20, 21 ], "chance": 80 }, + { "item": "bed", "x": [ 16, 17 ], "y": [ 20, 21 ], "chance": 80 }, + { "item": "traveler", "x": [ 64, 64 ], "y": [ 3, 3 ], "chance": 70 }, + { "item": "traveler", "x": [ 64, 67 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "traveler", "x": [ 64, 64 ], "y": [ 10, 10 ], "chance": 70 }, + { "item": "traveler", "x": [ 64, 67 ], "y": [ 15, 15 ], "chance": 70 }, + { "item": "allclothes", "x": [ 52, 55 ], "y": [ 1, 1 ], "chance": 70 }, + { "item": "allclothes", "x": [ 59, 62 ], "y": [ 1, 1 ], "chance": 70 }, + { "item": "office", "x": [ 63, 63 ], "y": [ 22, 23 ], "chance": 70 }, + { "item": "allclothes", "x": [ 56, 56 ], "y": [ 10, 10 ], "chance": 70 }, + { "item": "allclothes", "x": [ 52, 52 ], "y": [ 10, 11 ], "chance": 70 }, + { "item": "dining", "x": [ 56, 57 ], "y": [ 17, 18 ], "chance": 70 }, + { "item": "fridge", "x": [ 54, 54 ], "y": [ 15, 15 ], "chance": 70 }, + { "item": "kitchen", "x": [ 52, 53 ], "y": [ 15, 19 ], "chance": 80 }, + { "item": "bed", "x": [ 54, 55 ], "y": [ 3, 4 ], "chance": 80 }, + { "item": "bed", "x": [ 65, 66 ], "y": [ 3, 4 ], "chance": 80 }, + { "item": "bed", "x": [ 54, 55 ], "y": [ 10, 11 ], "chance": 80 }, + { "item": "bed", "x": [ 65, 66 ], "y": [ 10, 11 ], "chance": 80 }, + { "item": "dining", "x": [ 60, 61 ], "y": [ 47, 47 ], "chance": 70 }, + { "item": "dining", "x": [ 66, 67 ], "y": [ 47, 47 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_vehicles": [ + { "vehicle": "car_sports", "x": 45, "y": 9, "chance": 75, "rotation": 180 }, + { "vehicle": "flatbed_truck", "x": 32, "y": 20, "chance": 75, "rotation": 0 }, + { "vehicle": "car", "x": 36, "y": 10, "chance": 75, "rotation": 45 }, + { "vehicle": "ambulance", "x": 37, "y": 12, "chance": 90, "rotation": 270 }, + { "vehicle": "truck_trailer", "x": 4, "y": 40, "chance": 100, "rotation": 0 }, + { "vehicle": "semi_truck", "x": 12, "y": 38, "chance": 100, "rotation": 0 }, + { "vehicle": "policecar", "x": 22, "y": 35, "chance": 90, "rotation": 90 } + ], + "place_vendingmachines": [ { "item_group": "vending_food", "x": 64, "y": 0 }, { "item_group": "vending_drink", "x": 68, "y": 17 } ] + }, + "om_terrain": [ + [ "necropolis_a_55", "necropolis_a_56", "necropolis_a_57" ], + [ "necropolis_a_64", "necropolis_a_65", "necropolis_a_66" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "s_________________________ss_______,,______________,__,_________________", + "s_________________________ss_______,,________sssssssssssssssssssssssssss", + "s_________________________ss________________ssssssssssssssssssssssssssss", + "s_________________________ss_______,,_______ss______,______s.s______,___", + "s_________________________ss_______,,_______ss______,______s.s______,___", + "s,,,,,,,__________________s________,,_______ss______,______s.s______,___", + "s___________________________________________ss______,______s.s______,___", + "s__________________________________,,_______ss______,______s.s______,___", + "s__________________________________,,_______ss______,______sss______,___", + "s__________________________________,,_______ss______,_______s_______,___", + "s____________________________________________s__________________________", + "s____________}_____________________,,___________________________________", + "s,,,,,,,__________________ss_______,,___________________________________", + "s_________________________ss_______,,___________________________________", + "s_________________________ss____________________________________________", + "s__________________________________,,___________________________________", + "s__________________________________,,___________________________________", + "s__________________________________,,___________________________________", + "s____________________________________________s__________________________", + "s,,,,,,,___________________________,,_______ss______,_______s_______,___", + "s__________________________________,,_______ss______,______sss______,___", + "s_________________________s________,,_______ss______,______s.s______,___", + "s_________________________ss________________ss______,______s.s______,___", + "s_________________________ss_______,,_______ss______,______s.s______,___", + "s_________________________ss_______,,_______ss______,______s.s______,___", + "ss_______________________sss_______,,_______sss_____,______s.s______,___", + "sssssssss______sssssssssssss________________ssssssssssssssssssssssssssss", + "ssssssss________sssssssssss________,,________sssssssssssssssssssssssssss", + "___________________________________,,___________________________________", + "___________________________________,,________,,_________________________", + "_____________________________________________,,_________________________", + "___________________________________,,________,,_________________________", + "___________________________________,,________,,_________________________", + "___________________________________,,________,,_________________________", + "________________________________________________________________________", + "_,,,_,,,_,,,_,,,_,,,_,,,___________,,__________,,,_,,,_,,,_,,,_,,,_,,,_,", + "_,,,_,,,_,,,_,,,_,,,_,,,___________,,__________,,,_,,,_,,,_,,,_,,,_,,,_,", + "___________________________________,,___________________________________", + "________________________,,______________________________________________", + "________________________,,_________,,___________________________________", + "________________________,,_________,,___________________________________", + "________________________,,_________,,___________________________________", + "________________________,,______________________________________________", + "___________________________________,,___________________________________", + "ssssssss____,,____sssssssss________,,________ssssssssss____uuu___sssssss", + "sssssssss__,,,,__sssssssssss_______,,_______ssssssssssss________ssssssss", + "s___________,,___________sss________________sss_________________________", + "____________,,____________ss_______,,_______ss__________________________" + ], + "palettes": [ "necropolis_a" ], + "terrain": { }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_vehicles": [ + { "vehicle": "car", "x": 4, "y": 2, "chance": 90, "rotation": 0 }, + { "vehicle": "hippie_van", "x": 4, "y": 8, "chance": 50, "rotation": 0 }, + { "vehicle": "electric_car", "x": 5, "y": 15, "chance": 50, "rotation": 0 }, + { "vehicle": "car_mini", "x": 4, "y": 21, "chance": 50, "rotation": 0 }, + { "vehicle": "ambulance", "x": 12, "y": 12, "chance": 90, "rotation": 270 }, + { "vehicle": "car", "x": 50, "y": 7, "chance": 50, "rotation": 90 }, + { "vehicle": "pickup", "x": 56, "y": 7, "chance": 50, "rotation": 90 }, + { "vehicle": "car_mini", "x": 65, "y": 6, "chance": 50, "rotation": 90 }, + { "vehicle": "hippie_van", "x": 49, "y": 19, "chance": 50, "rotation": 270 }, + { "vehicle": "car", "x": 55, "y": 20, "chance": 50, "rotation": 270 }, + { "vehicle": "pickup", "x": 64, "y": 19, "chance": 50, "rotation": 270 }, + { "vehicle": "car", "x": 69, "y": 20, "chance": 50, "rotation": 270 } + ] + }, + "om_terrain": [ + [ "necropolis_a_58", "necropolis_a_59", "necropolis_a_60" ], + [ "necropolis_a_67", "necropolis_a_68", "necropolis_a_69" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "___________________________________,,_______ss..........................", + "sssssssssssssssssssssssssss________,,_______ss..............#.........#.", + "ssssssssssssssssssssssssssss________________ss..........................", + "___,______s.s______,______ss_______,,_______ssqQQQQQQQQQQQQQQQQQQQQQQQq.", + "___,______s.s______,______ss_______,,_______ssq.......................q.", + "___,______s.s______,______ss_______,,_______ssq....|------|--|------|.q.", + "___,______s.s______,______ss________________ssq.T..|ooo@@ + r|cfcSSc|.q.", + "___,______s.s______,______ss_______,,_______ssq....v @@ |--| c|.q.", + "___,______sss______,______ss_______,,_______ssq....vn |BB|hh O|.q.", + "___,_______s_______,______ss_______,,_______ssq....vnh + t|nn c|.q.", + "__________________________s_________________ssq....|n | S|nn |ss.", + "___________________________________,,_______ssq....|-w-|-+|+-|hh ;ss.", + "___________________________________,,_______ssq......ss|P |ss.", + "___________________________________,,_______sssssssssss; v.q.", + "____________________________________________sssssssssss; v.q.", + "___________________________________,,_______ssq......ss| oo |.q.", + "___________________________________,,_______ssq....|-w-|-+|--| ???? |.q.", + "___________________________________,,_______ssq..T.| kkk |St| v.q.", + "__________________________s_________________ssq....v h + | nn v.q.", + "___,_______s_______,______ss_______,,_______ssq....v |BB| nn v.q.", + "___,______sss______,______ss_______,,_______ssq....v @@ |--| |.q.", + "___,______s.s______,______ss_______,,_______ssq....|d@@ + r| cccc |.q.", + "___,______s.s______,______ss________________ssq....|---vv-|--|------|.q.", + "___,______s.s______,______ss_______,,_______ssq.T.....................q.", + "___,______s.s______,______ss_______,,_______ssq.......................q.", + "___,______s.s______,_____sss_______,,_______ssqQQQQQQQQQQQQQQQQQQQQQQQq.", + "ssssssssssssssssssssssssssss________________ss..........................", + "sssssssssssssssssssssssssss________,,_______ss..........................", + "___________________________________,,_______ss.....#....................", + "___________________________________,,_______ss.................#........", + "____________________________________________ss..........................", + "___________________________________,,_______ss..........................", + "___________________________________,,_______ss.........................X", + "___________________________________,,_______ss.x........................", + "__________________________________,,________ss..........................", + ",,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,,_________ss..........................", + ",,_,,,_,,,_,,,_,,,_,,,_,,,_,,,_,,,__________ss.................C........", + "____________________________________________ss......#...................", + "____________________________________________ss..........................", + "____________________________________________ss..........................", + "____________________________________________ss.....................#....", + "____________________________________________ss..........................", + "____________________________________________ss..........................", + "____________________________________________ss..........................", + "ssssss___uuu___uuu___uuu______ssssssssssssssss..........................", + "sssssss______________________ssssssssssssssss...........................", + "_____________________________ss........................#................", + "_____________________________s.......#.................................." + ], + "palettes": [ "necropolis_a" ], + "terrain": { }, + "toilets": { "t": { } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ], + "place_vehicles": [ + { "vehicle": "car", "x": 2, "y": 7, "chance": 25, "rotation": 90 }, + { "vehicle": "car_sports", "x": 16, "y": 7, "chance": 25, "rotation": 90 }, + { "vehicle": "pickup", "x": 15, "y": 19, "chance": 25, "rotation": 270 }, + { "vehicle": "car", "x": 21, "y": 20, "chance": 25, "rotation": 270 } + ], + "place_items": [ + { "item": "magazines", "x": [ 64, 65 ], "y": [ 18, 19 ], "chance": 75 }, + { "item": "allclothes", "x": [ 52, 52 ], "y": [ 21, 21 ], "chance": 75 }, + { "item": "office", "x": [ 53, 55 ], "y": [ 17, 17 ], "chance": 70 }, + { "item": "allclothes", "x": [ 60, 60 ], "y": [ 21, 21 ], "chance": 75 }, + { "item": "softdrugs", "x": [ 59, 60 ], "y": [ 17, 19 ], "chance": 50 }, + { "item": "homebooks", "x": [ 59, 60 ], "y": [ 15, 15 ], "chance": 70 }, + { "item": "softdrugs", "x": [ 59, 60 ], "y": [ 8, 10 ], "chance": 50 }, + { "item": "office", "x": [ 52, 52 ], "y": [ 8, 10 ], "chance": 70 }, + { "item": "homebooks", "x": [ 52, 54 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "allclothes", "x": [ 60, 60 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "dining", "x": [ 62, 63 ], "y": [ 9, 10 ], "chance": 70 }, + { "item": "fridge", "x": [ 63, 63 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "kitchen", "x": [ 62, 67 ], "y": [ 6, 9 ], "chance": 80 }, + { "item": "bed", "x": [ 55, 56 ], "y": [ 6, 7 ], "chance": 80 }, + { "item": "bed", "x": [ 53, 54 ], "y": [ 20, 21 ], "chance": 80 }, + { "item": "field", "x": [ 48, 71 ], "y": [ 24, 47 ], "chance": 70 } + ] + }, + "om_terrain": [ + [ "necropolis_a_61", "necropolis_a_62", "necropolis_a_63" ], + [ "necropolis_a_70", "necropolis_a_71", "necropolis_a_72" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "....#.........#..s______,______,______,______s..s________sV Vss", + ".................s______,______,______,______s..s________sV Vss", + ".................s______,______,______,______s..s________s|D |ss", + "x........#.......s______,______,______,______s..s________s|cccc6ccc [ss", + ".................s______,______,______,______s..s________s|f + |ss", + "....C............ss_____,______,______,_____ss..s________s|f rrr c|-+|ss", + "..................ssssssssssssssssssssssssssss..s________sw S|S |ss", + "..................sssssssssssssssssssssssssss...s________s|ccOc S|t |ss", + ".........................|i-++-i|...........##..s________s||f |--|ss", + ".....................#...|D |---i----i--|#..s________ss||6 rr +L||ss", + "....#...............###..| h h |...s_________ss|-w---|-|sss", + "................|--i---i-| hnh hnh pppp |--|s__________sssssssssssss", + "................| h h h pppp |St|s_______________________", + "................i pp hnh + |s_______________________", + "................| pp h hhhhhhhhhhhhh|--|--|s_______________________", + "................| pp h hccccccccccccc| +ssss_______________________", + "................i pp hnh hc | r|#..ss______________________", + "................| h + r|....ss_____________________", + "...#............|--i---i-| c rrrrrrrrrS| r|.....ssssssssssssssssssssss", + "...........#.............|---i-----------|--|...........................", + "...................x....................................................", + "....................................#...................................", + ".........X....................................C.........................", + "........................................................#..............." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "D": "t_floor" }, + "toilets": { "t": { } }, + "place_items": [ + { "item": "pool_table", "x": [ 18, 19 ], "y": [ 13, 16 ], "chance": 70 }, + { "item": "field", "x": [ 0, 16 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "alcohol", "x": [ 43, 43 ], "y": [ 16, 18 ], "chance": 85 }, + { "item": "alcohol", "x": [ 31, 39 ], "y": [ 18, 18 ], "chance": 80 }, + { "item": "alcohol", "x": [ 28, 40 ], "y": [ 15, 15 ], "chance": 50 }, + { "item": "dining", "x": [ 28, 40 ], "y": [ 15, 15 ], "chance": 70 }, + { "item": "dining", "x": [ 24, 24 ], "y": [ 16, 16 ], "chance": 50 }, + { "item": "dining", "x": [ 31, 31 ], "y": [ 11, 11 ], "chance": 50 }, + { "item": "pool_table", "x": [ 39, 42 ], "y": [ 11, 12 ], "chance": 70 }, + { "item": "dining", "x": [ 35, 35 ], "y": [ 11, 11 ], "chance": 50 }, + { "item": "floor_trash", "x": [ 59, 59 ], "y": [ 2, 2 ], "chance": 90 }, + { "item": "fast_food", "x": [ 63, 64 ], "y": [ 9, 9 ], "chance": 70 }, + { "item": "cleaning", "x": [ 67, 67 ], "y": [ 9, 9 ], "chance": 70 }, + { "item": "produce", "x": [ 60, 60 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "fast_food", "x": [ 59, 62 ], "y": [ 7, 7 ], "chance": 70 }, + { "item": "fast_food", "x": [ 61, 63 ], "y": [ 5, 5 ], "chance": 70 }, + { "item": "fast_food", "x": [ 59, 59 ], "y": [ 4, 5 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 } + ] + }, + "om_terrain": [ [ "necropolis_a_73", "necropolis_a_74", "necropolis_a_75" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "__________________________ss_______,,_______ss__________________________", + "__________________________ss_______,,_______ss__________________________", + "__________________________ss________________ss__________________________", + "__________________________ss_______,,_______ss__________________________", + ",,,,,,,____________,,,,,,,ss_______,,_______ss__________________ssssssss", + "__________________________ss_______,,_______ss________I________sssssssss", + "__________________________ss________________ss________&________sss|-www-", + "__________________________ss_______,,_______ss________I________ssswrrrr ", + "__________________________ss_______,,_______ss________s________sssw ", + "__________________________ss_______,,_______ss________s________ssD|r cc ", + "s_________________________ss____________uuu_ss________s________sss[ ", + "sssssss____________,,,,,,,ss_______,,_______ss________I________sss[ ", + "__________________________ss_______,uuu_____ss________&________ssD|r ", + "__________________________ss_______,,________s________I________sssw ", + "__________________________ss__uuu______________________________sssw rrr ", + "__________________________ss_______,,__________________________sss| rrr ", + "__________________________ss_______,,__________________________sssw ", + "_________________________sss_______,,__________________________sssw ", + "ssssssssssssssssssssssssssss___________________________________sss|[[[[[", + "............................_______,,__________________________sss|rrrrr", + "X..........................._______,,___________________________ss| ", + "...........#..............x._______,,__________________________...|-----", + "............................_________________s..........................", + "............................________________ss.........................." + ], + "palettes": [ "necropolis_a" ], + "terrain": { }, + "gaspumps": { "&": { } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 } + ], + "place_vehicles": [ { "vehicle": "policecar", "x": 33, "y": 9, "chance": 90, "rotation": 0 } ], + "place_items": [ + { "item": "alcohol", "x": [ 67, 71 ], "y": [ 19, 19 ], "chance": 70 }, + { "item": "magazines", "x": [ 67, 67 ], "y": [ 12, 12 ], "chance": 70 }, + { "item": "snacks", "x": [ 68, 70 ], "y": [ 14, 15 ], "chance": 70 }, + { "item": "floor_trash", "x": [ 65, 65 ], "y": [ 12, 12 ], "chance": 90 }, + { "item": "floor_trash", "x": [ 65, 65 ], "y": [ 9, 9 ], "chance": 90 }, + { "item": "magazines", "x": [ 67, 67 ], "y": [ 9, 9 ], "chance": 70 }, + { "item": "snacks", "x": [ 67, 70 ], "y": [ 7, 7 ], "chance": 70 } + ] + }, + "om_terrain": [ [ "necropolis_a_76", "necropolis_a_77", "necropolis_a_78" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "_____________________________s..........................................", + "_____________________________s..........................................", + "_____________________________s..........................................", + "____________________________ss.........C................................", + "ssssss__________s__________sss..........................................", + "sssllss________sss________ssssss........................................", + "www-|--========---========---|sssss..........#..........................", + "rrrr| e e |ssssss.........................#..........", + " [ I r|---|ss....................................", + " [ r| S|ss....................................", + " cc | r|t +ss....................................", + " 6 |r c|---|ss................................x...", + " c |r I c|t +ss....................................", + " c r|r r| S|s.....................................", + " c r|r r|---|s.....................X...............", + " |+-| +sssss.....................................", + " | + I w..........................................", + " | z|-www-+-| w..........................................", + "[| z| kkk P|rrcccrrrrcccrrrr|........#.................................", + "r| z| h |--www----www----|..........................................", + " + | ooo|...............................................#...........", + "----|-------|....................x......................................", + ".......................X..................................C.............", + "..............#........................................................." + ], + "palettes": [ "necropolis_a" ], + "terrain": { "z": "t_floor" }, + "toilets": { "t": { } }, + "place_vendingmachines": [ { "item_group": "vending_food", "x": 3, "y": 5 }, { "item_group": "vending_drink", "x": 4, "y": 5 } ], + "place_items": [ + { "item": "mechanics", "x": [ 11, 23 ], "y": [ 18, 18 ], "chance": 80 }, + { "item": "manuals", "x": [ 9, 11 ], "y": [ 20, 20 ], "chance": 80 }, + { "item": "office", "x": [ 6, 8 ], "y": [ 18, 18 ], "chance": 70 }, + { "item": "mechanics", "x": [ 5, 5 ], "y": [ 11, 14 ], "chance": 80 }, + { "item": "mechanics", "x": [ 0, 3 ], "y": [ 7, 7 ], "chance": 70 }, + { "item": "smoke_shop", "x": [ 3, 3 ], "y": [ 13, 14 ], "chance": 90 }, + { "item": "alcohol", "x": [ 0, 0 ], "y": [ 19, 19 ], "chance": 70 }, + { "item": "snacks", "x": [ 3, 3 ], "y": [ 17, 19 ], "chance": 70 }, + { "item": "mechanics", "x": [ 28, 28 ], "y": [ 8, 14 ], "chance": 70 }, + { "item": "mechanics", "x": [ 24, 28 ], "y": [ 18, 18 ], "chance": 70 }, + { "item": "field", "x": [ 36, 47 ], "y": [ 0, 23 ], "chance": 70 }, + { "item": "field", "x": [ 48, 71 ], "y": [ 0, 23 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 } + ], + "place_vehicles": [ + { "vehicle": "car", "x": 10, "y": 10, "chance": 75, "rotation": 270 }, + { "vehicle": "pickup", "x": 21, "y": 10, "chance": 75, "rotation": 270 } + ] + }, + "om_terrain": [ [ "necropolis_a_79", "necropolis_a_80", "necropolis_a_81" ] ], + "type": "mapgen", + "weight": 250 + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolisB1.json b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolisB1.json new file mode 100644 index 000000000..a956cbb8b --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolisB1.json @@ -0,0 +1,1056 @@ +[ + { + "name": "GROUP_NECROPOLIS_SEWERS", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_irradiated_wanderer_1", "weight": 848 }, + { "monster": "mon_irradiated_wanderer_2", "weight": 40 }, + { "monster": "mon_irradiated_wanderer_3", "weight": 10 }, + { "monster": "mon_irradiated_wanderer_4", "weight": 1 }, + { "monster": "mon_charred_nightmare", "weight": 1 }, + { "monster": "mon_centipede_giant", "weight": 100 } + ] + }, + { + "name": "GROUP_NECROPOLIS_VAULT", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_irradiated_wanderer_1", "weight": 40 }, + { "monster": "mon_irradiated_wanderer_2", "weight": 910 }, + { "monster": "mon_irradiated_wanderer_3", "weight": 40 }, + { "monster": "mon_irradiated_wanderer_4", "weight": 5 }, + { "monster": "mon_charred_nightmare", "weight": 5 } + ] + }, + { + "name": "GROUP_NECROPOLIS_SWIMMING", + "type": "monstergroup", + "monsters": [ { "monster": "mon_sewer_fish", "weight": 995 }, { "monster": "mon_irradiated_wanderer_2", "weight": 5 } ] + }, + { + "id": "vault_survival", + "type": "item_group", + "magazine": 100, + "ammo": 90, + "items": [ + { "group": "guns_rare_readied", "prob": 35 }, + { "item": "mask_filter", "prob": 20 }, + { "group": "ammo_pocket_batteries_full", "prob": 15 }, + { "item": "radio", "prob": 10 }, + { "item": "bandages", "prob": 10 }, + { "item": "knife_combat", "prob": 20 }, + { "item": "vest", "prob": 15 }, + { "item": "cleansuit", "prob": 20 }, + { "item": "rad_monitor", "prob": 10 }, + { "item": "geiger_off", "prob": 10 }, + { "item": "tool_belt", "prob": 15 } + ] + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + "........................................................................", + "........................................................................", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + ".............................................................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................3.........................3...3......", + "...................................!.........................3...3......", + "...................................3.........................3...3......", + "..................................33x........................!...!......", + "....................3333333333333!33x..................... X X ...", + "....................3.............33x..................... 333333333 ", + "....................3.............33x................ 3333333333333", + "....................3.............33x............... 333333333 ", + "..................................33x...55 55555.. .... X X ...", + "..................................33x ..5 555 .. .......!...!......", + "..................................33x ! .......3...3......", + "..................................33x * ......333333333....", + "..................................33x .. 55 ........33333333333...", + "..................................33x... 5555 ........33333333333...", + "..................................33x.....................33333333333...", + "..................................33x......................333333333....", + "..................................33x...................................", + "..................................33x...................................", + "..................................33x................... ..........", + "..................................33x................. 555........", + "..................................33x ............... ...555522222222", + "..................................33x ) 555.........5 5....55.........", + "..................................33x ! 55........5 5...............", + "..................................33x ..... .......5 ................", + "..................................33x........ ......55 ................", + "..................................33x........ ...5 ..... ", + "..................................33x........ X!XX3333333333" + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ] + }, + "om_terrain": [ + [ "necropolis_b_1", "necropolis_b_2", "necropolis_b_3" ], + [ "necropolis_b_10", "necropolis_b_11", "necropolis_b_12" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..........................................................333...........", + "..........................................................333...........", + "..........................................................333...........", + "..........................................................333...........", + "........................................................ 333...........", + "..............................................333333333*XX333...........", + ".............................................3333333333!XX333...........", + "............................................3333........ 333...........", + "...........................................333............333...........", + "...........................................333............333...........", + "...........................................33.............!!!...........", + "......................................... 33.............xxx...........", + "................................. ! 333.............33x...........", + "................................. ! 333.............33x...........", + "................................. ...... 333.............33x...........", + "................................. ........33333..........33x...........", + "............................... .......33333.........33x...........", + "........................5555 ..........333.......222x22222222222", + ".......................555555 ...........33.......233xxxxxxxxxxxx", + ".......................55...... ...........33.......233x33333333333", + ".......................55........ .............33.......233x...........", + ".......................55........ ..... ..33.......23ax...........", + ".......................55........ ..... ..333.... 2Aax .........", + ".......................55........ ! 33333)XXXxxx !........", + ".......................55......... ! 3333!XX2Aax !........", + ".......................55............... ......... 23ax .........", + " .....................55............... ...........233x...........", + "3 ...................55................. .............233x...........", + "333 .................5 ................................233x...........", + " 333 ................ ................................233x...........", + ". 33 ... 55 .... ..............................233x...........", + ".... 33 ... .... ..............................233x...........", + "..... 33 ..............................233x...........", + "...... 3 ..............................233x...........", + "...... 3 .. .... {..............................233x .........", + "...... 3 .. ....{ {{..............................233xXX!33333333", + "...... 3 .............. ................................233xXX!33333333", + "...... 3 .............. {................................233x ........!", + "...... 3 ..............{{................................233x........333", + "...... 3 ..............{.................................233x........33 ", + "...... 3 ................................................233x........3 ", + "222222X3 ................................................233x........ ", + "...... 3 ..........................X.....................233x.......... ", + "...... 3 .........................XXX....................233x.......... ", + "...... 3 ..........................X.....................233x........33 ", + "...... 3 ................................................233x.......33 ", + " 3 {{ { {{{{{............................. 233x .....3 ..", + "333333X3X3333333333333{.{.....................{{333{{3!XX233x ! .." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ] + }, + "om_terrain": [ + [ "necropolis_b_4", "necropolis_b_5", "necropolis_b_6" ], + [ "necropolis_b_13", "necropolis_b_14", "necropolis_b_15" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "............................... .....................................", + "...............................22 .....................................", + "...............................2 .....................................", + "...............................2 .....................................", + "...............................22 .....................................", + "...............................2 .....................................", + "...............................2 .....................................", + "...............................22 LL..................................", + ".. ..........................2 .................................", + ".. # ..........................2 cc..................................", + ".. x ..........................2 .....................................", + "222x2222222222222222222222222222xxxa3...................................", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxx*xxxx#xa3...................................", + "3333333333333333333333333333!333AAAa3...................................", + "..............................3333333...................................", + "..............................3333333...................................", + "...............................33333....................................", + "................................!!!.....................................", + "................................333.....................................", + "................................333.....................................", + "................................333.....................................", + "................................333.....................................", + "................................333.....................................", + "................................333.....................................", + "................................3333....................................", + "...............................333333...................................", + "..33333333333333333333333333333333..33..................................", + ".33333333333333333333333333333333....33.................................", + "333........333333333333333333333......33................................", + "33.....................................33...............................", + "3............................ @......33...............................", + "!................2........... @......33...............................", + " ..............2........... ......!!...............................", + " ......2.......2...........!*!!......33...............................", + " 3......2222222222222 rr xxxa3333..............................", + " 3..................2 x#xa33333.............................", + " ....................2 xxxa33333.............................", + " ....................2xAAAAAAAAAAAAAAa3333..............................", + " ....................2x333333333333333333...............................", + ".....................2x33333............................................", + ".....................2x333..............................................", + ".....................2x33..............................................." + ], + "palettes": [ "necropolis_b1" ], + "terrain": { "@": "t_dirt", "r": "t_dirt", "L": "t_dirt", "c": "t_dirt" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_items": [ + { "item": "sewage_plant", "x": [ 36, 37 ], "y": [ 13, 13 ], "chance": 60 }, + { "item": "sewage_plant", "x": [ 36, 37 ], "y": [ 13, 13 ], "chance": 60 }, + { "item": "cop_evidence", "x": [ 26, 27 ], "y": [ 40, 40 ], "chance": 60 } + ] + }, + "om_terrain": [ + [ "necropolis_b_7", "necropolis_b_8", "necropolis_b_9" ], + [ "necropolis_b_16", "necropolis_b_17", "necropolis_b_18" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..................................33x......... 55 55 .. ", + "..................................33x.................... ............", + "..................................33x..................... 5...........", + "..............33333...............33x...................... ...........", + "................3.................33x...................... ...........", + "................3.................33x...................... ...........", + "................3.................33x...................... ...........", + "................3.................33x......................*!...........", + "................!.................3ax..................... ..........", + "...............333................3axa.................... ..........", + "...............33333333333333333333axa3333333333333333333333333333333333", + "...............3#xxxxxxxxxxxxxxxxxxxxa3333333333333333333333333333333333", + "...............333..................xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "...............333........................................ XX ..........", + "................!......................................... XX ..........", + "................3..........................................!!...........", + "................3..........gGGGgGGGGgGGGGGGGGGGGg..........33...........", + "................3..........g;>;gEEEEg;;;;;;;;;;;g..........33...........", + "..............33333........g;;;gEEEEg;;;EEEEEE;;g.........333...........", + "....................gGGGgGGgG+GgG==Gg;;;EEEEEE;;g.......3333............", + "....................grrrg;;D;;;;;;;;;;;;EEEEEE;;g......333..............", + "....................gr;;+;;;;;;;;;;;;;;;EEEEEE;;g......33... }........", + "....................gr;;g;;;;cc;;;;;;;;;EEEEEE;;gGGGG..33...44 a3333333", + "......... ........gr;;V;;;;ccb;;;;a;;;EEEEEEb;=;;rg..333..44AAa3333333", + "...... .......gr;;V;;;;cc;;;;ca;;;EEEEEE;;g;;rg...3333333333......", + "..... ......grb;V;;;;;;;;;;ca;;;EEEEEE;;Vc;;g....33333333.......", + "..... EEEEE ......gr;;V;;;;h;;;;hcab;;EEEEEE;5V6hbg........ .........", + ".... EEEEE L.....grrrg;ccc6ccc6cca;;;EEEEEE55Vc;;g........!!.........", + ".... EEEEE L.....gGGGgAAAAAAAAAAAa;;;;;555555Vc;rg........ .........", + "..... EEEEE L.........g;;;;;;;;;;;;;;;55555555gc;rg........ .........", + "..... EEEEE ..........g;;;;b;;;;;;;;;555555))bgGGGg..... ......", + "..... EEEEE b..........g;============;5555555){g......... ......", + "..... EEEEE ..........g;============;;5555){{{g......... 333 ......", + "..... EEEEE .......GGGGGGGGGGGGGGg;;;;55555){{gG........ 33333 333", + "..... EEEEE 6.......GGGGGGGGGGGGGGg;;;;;555))){G2........ 333 33 33", + ".... .......GGGGGGGGGGGGGGg;;;;;;55555{g2........ 333 ......", + "....77799999777........ ;;;;;;;;;;;;;555552........33333 ......", + ".... , ........ ;6;;;;;;b;;;;;;5b52......................", + "..... ,,, .......... b;; 2......................", + "..... , ............ zz 222......................", + "..... , .............. zz 22........................", + "..... , ................ 22.........................", + ".... ................. 2..........................", + ".... ................. 2..........................", + ".... ................ 22.........................", + "..... zz .............. 222222)...................", + "..... zz ............ {){....................", + "..... ..... 8 {{{.....2............33 " + ], + "palettes": [ "necropolis_b1" ], + "terrain": { + "D": "t_metal_floor", + "h": "t_metal_floor", + "c": "t_metal_floor", + "r": "t_metal_floor", + "6": "t_metal_floor", + "z": "t_dirt", + "L": "t_dirt" + }, + "place_items": [ + { "item": "vault_survival", "x": [ 21, 21 ], "y": [ 20, 23 ], "chance": 85 }, + { "item": "vault_survival", "x": [ 22, 23 ], "y": [ 20, 20 ], "chance": 85 }, + { "item": "vault_survival", "x": [ 21, 21 ], "y": [ 24, 27 ], "chance": 85 }, + { "item": "vault_survival", "x": [ 22, 23 ], "y": [ 27, 27 ], "chance": 85 }, + { "item": "cannedfood", "x": [ 15, 16 ], "y": [ 45, 46 ], "chance": 90 }, + { "item": "cannedfood", "x": [ 31, 32 ], "y": [ 39, 40 ], "chance": 90 }, + { "item": "consumer_electronics", "x": [ 51, 51 ], "y": [ 28, 29 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_vehicles": [ { "vehicle": "humvee", "x": 42, "y": 20, "chance": 100, "rotation": 270 } ] + }, + "om_terrain": [ + [ "necropolis_b_19", "necropolis_b_20", "necropolis_b_21" ], + [ "necropolis_b_28", "necropolis_b_29", "necropolis_b_30" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " X {{ {{{.......................{{333{3!XX233x ! ...", + "...... 3 .............................................. 233x .........", + "...... 3 ................................................233x...........", + ".......2.................................................233x...........", + ".......2.................................................233x...........", + ".......2.................................................233x...........", + ".......2.................................................233x...........", + ".......2................................................223ax...........", + ".......2...............................................2233axa..........", + ".......2...222222222222222222222222222222222222222222222333axa3.........", + "33333333332233333333333333333333333333333333333333333332333axa3333333333", + "33333333332333333333333333333333333333333333333333333332333axa3333333333", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "..........233x3...................... ..............222XX222222222222", + "..........233x........................*!..................*!............", + "..........233x........................ .................. ............", + "..........233x........................ .................. ............", + "..........233x........................ .. 3333 33 .. ............", + "..........233x........................ .. 3333 3 .. ............", + "..........233x........................ 33333 ", + "..........233x......................... 33333 ", + "..........233x............................ 33 .... ..........", + "3.........233x............................ 3333 .... ..........", + "333..... 233x.............................................. .........5", + ".333333!XXxxxx.............................................. .........5", + "...3333!XX233x................................ 333 .. ......... ", + "........ 233x .............................. 3 .. ......... ", + "..........233x * ................ ......... ", + "..........233x ! ................ 3 ......... ", + "..........233x ........ ................ .. 333............. ", + "..........233x.......... ................ .. 3333............. ", + "..........233x........ .............. ....... .................. ", + "..........233x........3 .. 333.. ....... .................. ", + " .....233x........3 .. 33 .. ..... ................ ", + "3 .....233x........ XX ..... ................ ", + "...3 .....233x........ XX ...... .................", + "...3 .....233x........ .. 333 ......... .................", + "... .....233x........ 33 ..3 333 ......... .................", + ". ...233x........ ......!!............. ...|---------|...", + ". ...233x.......... ........33............. ...|d@@ oo|...", + ".3 . 233x ........ ........33............. ...| @@ h |...", + ".33 * 233x ! ........33............. ...| Inn |...", + ".3 ! 233x ! ........33............. ...| nn |...", + ". . 233x ...... ..........333............ ...| h |...", + ". ...233x........ ...........3333............ .....|-!*!---|*|...", + "... .....233x........ .............333...........!!....... X ...|<|...", + "... .....233x........ .......... XX 3 ...|-|...", + "33 .....233x......... ........ 3333X3333333333333333333 ........." + ], + "palettes": [ "necropolis_b1" ], + "terrain": { "n": "t_dirt", "h": "t_dirt", "@": "t_dirt", "o": "t_dirt" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_items": [ { "item": "homebooks", "x": [ 66, 67 ], "y": [ 39, 39 ], "chance": 90 } ] + }, + "om_terrain": [ + [ "necropolis_b_22", "necropolis_b_23", "necropolis_b_24" ], + [ "necropolis_b_31", "necropolis_b_32", "necropolis_b_33" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".....................2*!!...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + ".....................2x33...............................................", + "....................22xa33..............................................", + "333333333333333333332axa33333333333.....................................", + "333333333333333333332axa333333333333....................................", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx333...................................", + "222222222222222222222............xx333..................................", + "..................................xx33..................................", + "...................................x33..................................", + "...................................x33..................................", + "...................................x33..................................", + "...................................x33..................................", + " ...............................x33..................................", + " ...............................x33..................................", + ".. ...............................x33..................................", + ".. ...............................x33..................................", + " ................ ! x33..................................", + "5 ............... * x33..................................", + " .............. ...... ....x33..................................", + " 5 .............. ...... ....x33..................................", + "555 ....|---------!*-|.. ..x33..................................", + " 5 5....|r rr rr r|.. ..x33..................................", + " 55....|r rr rr r|.. 33..x33..................................", + " 555....|r rr rr r|..3 3..x33..................................", + " 55....| r|..3 ..x33..................................", + " 555....||< r|.. ..x33..................................", + " 555 .....|-----------|.. 3..x33..................................", + " 5 .................... 33..x33..................................", + ".. ..... 3 .... ....x33..................................", + ".. ..... 33 3 3.... ....x33..................................", + ".. 333 33 {....x3{..................................", + ".. 33 {{....{33..................................", + "......... 3 3 ..........x{3..................................", + "......... 3333 33 ..........x3{..................................", + "................ .................{{3..................................", + "................ .................x33..................................", + "................ {.................x{{..................................", + "................ .................{{{..................................", + "................ {.................{{{..................................", + "................{{.................{....................................", + "................{......................................................." + ], + "palettes": [ "necropolis_b1" ], + "terrain": { "r": "t_dirt" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_items": [ + { "item": "pawn", "x": [ 12, 12 ], "y": [ 28, 30 ], "chance": 70 }, + { "item": "pawn", "x": [ 15, 16 ], "y": [ 28, 30 ], "chance": 70 }, + { "item": "pawn", "x": [ 19, 20 ], "y": [ 28, 30 ], "chance": 70 }, + { "item": "pawn", "x": [ 23, 23 ], "y": [ 28, 32 ], "chance": 70 } + ] + }, + "om_terrain": [ + [ "necropolis_b_25", "necropolis_b_26", "necropolis_b_27" ], + [ "necropolis_b_34", "necropolis_b_35", "necropolis_b_36" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..... 8 {{)......2...........33 ", + "... ,,,,, , 9 ..............2...........3 ...", + ".. , , 9 ...............2......... .", + ".. , , 9 .............))2......... 3.", + ".. XX , , 9 ..............){2......... 3.", + ".. XX , , 9 ................{{2......... .", + ".. X , , 9 .................{ 2......... 3.", + ". X , , 9 ................... 2......... 33.", + ". X , 8 ....................**2...........!!...", + ".. X , 8 ...................... 22......... ..", + ".. X , ........................ 2222222222222222", + ".. X , ,,,,,,,,,,,,,,, .........{{{.......{{){{3xxa3{{3333333333333", + "..,,,X,,, , , , ........3{{{{.....{{{{{{3xxaA{33333333333333", + "... X , , , ........{33xx..........x{{xxxxxxx{{xxxxxxxxxx", + "... X , XX , XX , ........{{3{{.......................... XX .", + ".. Xzz , XXXXXXXXX , .......{3x{............................ XX ..", + ".... Xzz , X , ,.........33x..............................!!...", + ".... X , X , , ........33x..............................33...", + ".....X zz , X , , .......{3x..............................33...", + ".....XXzz , X , ,.........{{x..............................33...", + "......XX , X , ,.........{3x..............................33...", + ".......XXXXXXX , .............33x...................3333333333333...", + "....... X ........................33{..............................33...", + "....... 3 ........................33x..............................33...", + ".......777........................33x..............................33...", + "....... 3 ........................33x..............................333..", + "....... 3 ........................33x..............................33333", + "....... 3 ..................... 3ax ............................33333", + "....... 33 ! Aax ! ................333..", + "....... 3333333333X33333333333!XXxxxXX!3333333333 ..............33...", + "........ ! Aax ! 333 ..............33...", + "........................)!...... 3ax ......... 3 ..33333333333333333", + "........................ ........33x............. 3 ..............33...", + "........................ ........33x............. 3 ..............33...", + ".................33..... ........33x............. 3 ..............33...", + ".........33.....33...... ........33x............. 3 ..............33...", + "..........33...33......3 .......33x............. 3 ..............33...", + "...........33.33.......33 .......33x............. 3 ..............33...", + "............3333.......3 .......33x............. 3 ..33333333333333333", + ".............333....... .......33x............. 3 ..............33...", + "..............333...... .......33x............. 3 .............33...", + "...............333..... .......3ax............. 33 !33...", + "................333..... ........Aax............. 33333333333333!33...", + ".................333.... ...... xxx.............. !33...", + "..................33333aXXa3333!X3Aax..............................33...", + ".................333333aXXa3333!X33ax..............................33...", + "................333..... ...... 33x.................333333333333333333", + "...............33....... ........33x..............................33..." + ], + "palettes": [ "necropolis_b1" ], + "terrain": { "z": "t_dirt" }, + "place_items": [ + { "item": "cannedfood", "x": [ 6, 7 ], "y": [ 15, 16 ], "chance": 90 }, + { "item": "cannedfood", "x": [ 7, 8 ], "y": [ 18, 19 ], "chance": 90 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_vehicles": [ { "vehicle": "humvee", "x": 13, "y": 16, "chance": 100, "rotation": 270 } ] + }, + "om_terrain": [ + [ "necropolis_b_37", "necropolis_b_38", "necropolis_b_39" ], + [ "necropolis_b_46", "necropolis_b_47", "necropolis_b_48" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " 33 ......233x............ ....... 33 .........", + "..........233x............ ....... 33 ................................", + "..........233x............ ....... 3 .................................", + "..........233x.......... ..... 3 ..................................", + "..........233x.......... ..... 3 ................................ ", + "..........233x.......... ..... 3 ................................ ", + "..........233x.......... ..... 3 ................................ ", + "..........233x.......... ..... 3 ................................ ", + ".........223ax.......... .....!!*................................ ", + "........2233axa...........!!...... X .................................", + "222222222333axa3......... ..... X ................................ ", + "333333333333axa3333333333333333333axxxa333333333333333333333333333333333", + "333333333333axa3333333333333333333ax#xa333333333333333333333333333333333", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "........... XX ........ ......AAA................................. ", + "............ XX ..........!!.......333..................................", + ".............!!.........3 333.....333..................................", + ".........2222332222.....33 33.....333..................................", + ".............33.........3 3.....333..................................", + ".............33.........3 333.....333............3333..................", + ".............33......... 333 .....333............3.....................", + ".........2222332222................333............3.....................", + ".............33....................333............3.....................", + ".............33....................333............!.....................", + ".............33....................333...........333...................3", + ".............333..................33333.........33333.................33", + "333333333333333333333333333333333333333333333333333333333333333333333333", + "33333333333333333333333333333333333333333333333333333333333333333333333.", + ".............333..................33333.........33333.......... .....", + ".............33....................333...........333............ ......", + ".............33....................333............!............. ......", + "33.......2222332222................333............3............. ", + ".............33....................333............3.............. ", + ".............33....................333............3.....................", + ".............33....................333............3333..................", + ".............33....................333..................................", + ".............33....................333..................................", + ".............33....................33333................................", + "33.......2222332222................33333333333333333333333333333333.....", + ".............33....................333333333333333333333333333333333....", + ".............33 ...................33333.........................333....", + ".............33 * 333 ........333............................33....", + ".............33 ! 3 .......333............................33....", + ".............33 .......... .......3333..........................3333...", + ".............33........... .......3333333333333333333333333333!33333333", + ".............33........... .......3333333333333333333333333333!33333333", + "33......22222332222.......3 .......3333.................................", + ".............33...........3 .......333.................................." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.075 }, + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.075 } + ] + }, + "om_terrain": [ + [ "necropolis_b_40", "necropolis_b_41", "necropolis_b_42" ], + [ "necropolis_b_49", "necropolis_b_50", "necropolis_b_51" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " {{ {{{{.........................R...............................", + " { {..........................RRR..............................", + " ......................................R...............................", + " ......................................................................", + " ....................................................................", + " ....................................................................", + " ...............................{{...................................", + " ...............................{{{..................................", + " ...............................x{{..................................", + "!!................................3x3{..................................", + "XX ..............................3{x33..................................", + "333333333333{3333{{33333{{{3333{{33x{{..................................", + "333333333333333{333333333{333{33333x3{..................................", + "xxxxxxxxxxxxxxxxxxx{xxxxxxxx{{xx{xxx{3..................................", + "XX .............. ............3{x33..................................", + "!)................!*..............3x3{..................................", + "33............... ..............{{{..................................", + "33............... ..............x33..................................", + "33............... ..............x{{..................................", + "33............... ..............{{)..................................", + "33............... ..............x{...................................", + "33................ ...............){...................................", + "33................ ....................................................", + "33...... 33 .. ..................................................", + "33......33 .. ..............)...................................", + "3.......3 .............{{{..................................", + "........ .............{{3..................................", + "........ 33.. .............{)3...........|--------|.............", + "........ 3333.. .............{33...........| zzz d|.............", + ".................. ...............x33...........|? Iz d|.............", + ".................. ...............x33...........|? |.............", + " 3333 333 ............x33...........|? AAA|.............", + " 3333 333 ...........x33 ..........| <|.............", + "..................... ...........x33 !.........|--------|.............", + "..................... ...........x33 !.........|zz <|.............", + ".....................!!!...........x33 ..........|zz AAA|.............", + "..................... ...........x33...........| hhh|.............", + "................@@ .......x33...........| Innhz|.............", + "............... @ ......x33...........|fz nnzz|.............", + "................d @d.......x33...........|--------|.............", + ".................... ..........x33..................................", + "..................... ...........x33..................................", + ".....................!)!...........xa3..................................", + "..................... ..........axa3..................................", + "3333333333333333333333333333333333axa3..................................", + "3333333333333333333333333333333333axa3..................................", + ".............33333................axa3..................................", + "..............333..................xa3.................................." + ], + "palettes": [ "necropolis_b1" ], + "terrain": { + "d": "t_dirt", + "A": "t_dirt", + "z": "t_dirt", + "h": "t_dirt", + "n": "t_dirt", + "?": "t_dirt", + "f": "t_dirt", + "@": "t_dirt" + }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_items": [ { "item": "alcohol", "x": [ 50, 50 ], "y": [ 38, 38 ], "chance": 90 } ] + }, + "om_terrain": [ + [ "necropolis_b_43", "necropolis_b_44", "necropolis_b_45" ], + [ "necropolis_b_52", "necropolis_b_53", "necropolis_b_54" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..............33....... .......33x..............................33...", + ".............33........ .......33x..............................33...", + "............33......... .......33x...........................33!33...", + "...........33.......... 3.......33x..........................333!33...", + "..........33........... 3.......33x.........................33...33...", + "................... 3.......33x........................33....33...", + "................... .......33x.......................33.....33...", + "........... 3333.. .. 3.......33x......................33......33...", + "........... 33 3.. .. 33.......33x.....................33........33..", + "...........33 ! .............AaxgGGGg .............33.........33.", + "...........3 ! .............xxxgrrrg . ......33...........33", + "...........3 3.. ...... ..x#x+ + 5 ...33............3", + "........... 333.. ...... . xxxgrrrg 55 33.............", + "................... ! AaxgGGGg 55 33............", + "................... ! 33x.........555.... 33...........", + "....................... ..3 . 33x.................. . 33..........", + "....................... ..333 ..33x...................... 33.........", + "....................... .........33x....................... 33........", + "....................... .........33x........................ 33.......", + "....................... .........33x......................... 33 ", + "..................... .......33x.......................... 3X33333", + "..................... .......33x........................... ", + "..................... 3.......33x...................................", + "..................... 3.......33x...................................", + "..................... 33.......33x...................................", + "....................... 3.........33x...................................", + ".......................33.........33x...................................", + ".......................33.........33x...................................", + ".......................3 .. ...33x...................................", + ".......................3 ...33x...................................", + "....................... ...33x...................................", + "........................... ...33x...................................", + "............................*!....3axa..................................", + "........................... ...Aaxa .................................", + ".33333333333333333333333!xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "333333333333333333333333!x3333333AAAAAA333333333333333333333333333333333", + ".33333333333333333333333!x3333333333333333333333333333333333333333333333", + "................................!............................. 33 ......", + "................................3..............................!!.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33......." + ], + "palettes": [ "necropolis_b1" ], + "terrain": { "r": "t_dirt" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_items": [ + { "item": "sewage_plant", "x": [ 38, 40 ], "y": [ 10, 10 ], "chance": 70 }, + { "item": "sewage_plant", "x": [ 38, 40 ], "y": [ 12, 12 ], "chance": 70 } + ] + }, + "om_terrain": [ + [ "necropolis_b_55", "necropolis_b_56", "necropolis_b_57" ], + [ "necropolis_b_64", "necropolis_b_65", "necropolis_b_66" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".............33........... .......333..................................", + ".............33...........3 ...... 333..................................", + ".............33...........3 ) 333..................................", + ".............33............3 ! 333..................................", + ".............33................... 333......................5...........", + ".............33....................333......................55..........", + ".............33....................333.......................55555555555", + ".............33....................!!!..................................", + ".............!!....................333..................................", + "..........33aAAA..................AAAA..................................", + "3........AAAaxxxxxxxxxxxxxxxxxxxxxxxxx..................................", + "3333XXX*xxxxx#aA3333333333333333AAAAax..................................", + ".. ....AAAAAa333333333333333333333axa.................................", + "...=......333333..................33axa333333333333333333333333333333333", + ".. ........!!....................3axa333333333333333333333333333333333", + ".. ........33....................3axa.................................", + ".. ........333333333333..........3ax................................. ", + ". .........33333333333333........33x................................. ", + " .....3333333..........33........33x................................. ", + " 3333333333...........33........33x................................. ", + "333XX ..................333.......3ax . 33..........................", + " 33 ................33333......Aax ! ......................", + "... 33 ..............3333333... xxx ! ........... ", + ".... 333 ..............333333333!XXAax . 33 .. .......... ", + ".... 33 ..............333333333!XX3ax.......... .......... ..........", + "..... 33 ...............333333... 33x.......... .......... ..........", + "..... 33 ................333.......33x.......... ........3 ........", + "..... 33 ..........................33x.......... ........3 ........", + "..... 33 ..........................33x.......... 3333 ........", + "..... 33 ..........................33x.......... 3 ........", + "..... 33 ..........................33x.................... ........", + "......!!...........................3ax.................... ........", + "..... XX .........................33axa.....................*!..........", + ".... 33 .......................AAAaxaA................... XX .........", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "33333333333333333333333333333333AAAAaxa333333333333333333333333333333333", + "333333333333333333333333333333333333axa333333333333333333333333333333333", + ".................................333axa3................................", + "..................................33axa.................................", + "...................................3ax..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x........................... ", + "...................................33x.......................... 33353", + "...................................33x......................... 533353", + "...................................33x........................ 3355333" + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ] + }, + "om_terrain": [ + [ "necropolis_b_58", "necropolis_b_59", "necropolis_b_60" ], + [ "necropolis_b_67", "necropolis_b_68", "necropolis_b_69" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..............333..................x33..................................", + "..............333..................x33..................................", + ".............35333.................x33..................................", + "............3533355................x33..................................", + "...........333355335...............x33..................................", + "..........5535335353...............x33..................................", + "55555555!55535355333...............x33..................................", + "..........5335335335...............x33..................................", + "...........333553533...............x33..................................", + "............3533333................x33..................................", + ".............35353.................x33..................................", + "..............333..................x33..................................", + ".............33333................3x33..................................", + "33333333333333333333333333333333333x33..................................", + "33333333333333333333333333333333333x33..................................", + "!!................................3x33..................................", + " ................................x33!3333333333333333333..............", + " ................................x33..................................", + " ................................x33..................................", + " ................................x33..................................", + " .................................x33..................................", + " .................... 3333 .. x33..................................", + " 33............. 3 *XXx33..................................", + " 3............. !XXx33..................................", + "...33............. .. ... x33..................................", + "... 3.. .. ...............x33..................................", + "... .. .. ...............x33..................................", + "... 3...............x33..................................", + "... 33...............x33..................................", + "....... ...................x33..................................", + "....... ...................x33..................................", + "...................................x33..................................", + "..................................xx33..................................", + ".................................xx333..................................", + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3333..................................", + "3333333333333333333333333333333333333...................................", + "333333333333333333333333333333333333....................................", + "........ ..................!.........................................", + ".........!!...................3.........................................", + "......... ...................3.........................................", + "......... ...................3.........................................", + "......... ...................3.........................................", + "......... ...................3.........................................", + "......... ...................3.........................................", + " ..... ...................3.........................................", + "335 .... ...................3.........................................", + "3533 ... ...................3.........................................", + "53353 . ...................3........................................." + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 13, 18 ], "y": [ 2, 10 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 } + ] + }, + "om_terrain": [ + [ "necropolis_b_61", "necropolis_b_62", "necropolis_b_63" ], + [ "necropolis_b_70", "necropolis_b_71", "necropolis_b_72" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3..............................33.......", + "................................3............................33333333...", + "................................3...............................33333...", + "................................3.......................................", + "................................3.......................................", + "................................3.......................................", + "................................3.......................................", + "................................3.......................................", + "................................3.......................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................" + ], + "palettes": [ "necropolis_b1" ] + }, + "om_terrain": [ [ "necropolis_b_73", "necropolis_b_74", "necropolis_b_75" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "...................................33x........................ 33353335", + "...................................33x ..................... 335353355", + "...................................33x * 353353535", + "...................................33xsX!X333333333333333333333353533535", + "...................................33x ! 333553335", + "...................................33x ...................... 33533533", + "...................................33x......................... 3333353", + "...................................33x.......................... ", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "...................................33x..................................", + "....................................3...................................", + "........................................................................" + ], + "palettes": [ "necropolis_b1" ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_SEWERS", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_SWIMMING", "x": [ 66, 71 ], "y": [ 0, 5 ], "density": 0.15 } + ] + }, + "om_terrain": [ [ "necropolis_b_76", "necropolis_b_77", "necropolis_b_78" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "33533 ....................3.........................................", + "33353 .....................3.........................................", + "33353 .......................3.........................................", + "33335 .......................3.........................................", + "3353 ........................3.........................................", + "353 .........................3.........................................", + "33 ..........................3.........................................", + " ...........................3.........................................", + "..............................3.........................................", + "..............................3.........................................", + "..............................3.........................................", + "..............................3.........................................", + "..............................3.........................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................" + ], + "palettes": [ "necropolis_b1" ] + }, + "om_terrain": [ [ "necropolis_b_79", "necropolis_b_80", "necropolis_b_81" ] ], + "type": "mapgen", + "weight": 250 + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolisB2.json b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolisB2.json new file mode 100644 index 000000000..30b7484f6 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolisB2.json @@ -0,0 +1,1176 @@ +[ + { + "name": "GROUP_NECROPOLIS_VAULT2", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_irradiated_wanderer_2", "weight": 30 }, + { "monster": "mon_irradiated_wanderer_3", "weight": 920 }, + { "monster": "mon_irradiated_wanderer_4", "weight": 30 }, + { "monster": "mon_charred_nightmare", "weight": 20 } + ] + }, + { + "id": "necropolis_visitors", + "type": "item_group", + "items": [ [ "newest_newspaper", 10 ], [ "necropolis_leaflet", 50 ] ] + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..........|---|.........|---|...............................|---|.......", + "..........|r r|..|---|..|r r|...............................|r r|..|---|", + ".......|--|-+-|--|S t|--|-+-|--|.........................|--|-+-|--|S t|", + ".......|d@@ + + @@d|.........................|d@@ + +", + ".......| @@ |---| @@ |.........................| @@ |---|", + ".......| h + + h |.........................| h + +", + ".......|o kkk | | kkk o|.........................|o kkk | |", + ".......|---------| |---------|.|---------------------|.|---------| |", + ".................| |...........|rrrrrrrrrrrrrrrrrrrrr|...........| |", + "..........|-|-|..| G|..|-|-|....|r r|....|-|-|..|G |", + ".......|--|r|r|--| |--|r|r|--|.|r ccc ccc r|.|--|r|r|--| |", + ".....|-|@@|+|+|@@| |@@|+|+|@@|-|r ccc G ccc r|-|@@|+|+|@@| |", + ".....|t| | | |t|r r|t| | |", + ".....| + [ [ + |-------| |----|--| + [ [", + ".....|S| | | |S|.......| 5|EEEE|..|S| | |", + ".....|-|@@|+|+|@@| |@@|+|+|@@|-|-------|-===-|EEEE|..|-|@@|+|+|@@| |", + ".......|--|r|r|--| |--|r|r|--|.|rrrrrrr| 6|-==-|....|--|r|r|--| |", + "..........|-|-|r + + r|-|-|....|r + G |.......|-|-|r + +", + ".......|--|r|r|--| |--|r|r|--|.|r rrrr | h |....|--|r|r|--| |", + ".....|-|@@|+|+|@@|G |@@|+|+|@@|-|r rrrr |k6kkk|-| |..|-|@@|+|+|@@| G|", + ".....|t| | | |t|r |!!!!!|.| |..|t| | |", + ".....| + [ [ + |rGrrrr | |.| |..| + [ [", + ".....|S| | | |S|r rrrr v |.| |..|S| | |", + ".....|-|@@|+|+|@@| |@@|+|+|@@|-|r v |-|[[|--|-|@@|+|+|@@| |", + ".......|--|r|r|--| |--|r|r|--|.|r rrrr v + |.|--|r|r|--| |", + "..........|-|-|..| |..|-|-|....|r rrrr v vk G k|....|-|-|..| |", + ".................| |...........|r | vkh hk|...........| |", + ".............|---| |.|--|......|r rr | 5v6kkkkk6|......|--|.| |", + ".............| c |-|5 |------|--uu---|-===-|-uuuuu-|------| 5|-| c", + ".............| hc = G 5 = c", + ".............| c = ,,,,,,,,,,,,,,,,,,,,, = c", + ".............|G = /,///,///,///,///,///,/ = ", + ".............|------| 5||-[-|++-|/,///,///,///,///,///,/|-++--[-||5 |---", + "....................|--|| |EEE|/,///,///,///,///,///,/|EEE| ||--|...", + "........................| > |EEE|/,,,,,,,,,,,,,,,,,,,,,/|EEE| > |.......", + "........................|---|---|///////////////////////|---|---|...|---", + "................................|G/////////////////////G|...........| ", + "...|---|------------------------|////////////////////|--|...........| ", + "...|c t| G P| |-|/////////////|-|..............|HHH", + "...|S | J J J J c C C C C C V |.|-|/////////|-|................|k6k", + "...|c D| c V |...|-|/////|-|..................| h ", + "...|-+-| J J J J c C C C C C V |.....|/////|....................|k ", + "...|r D| |.....|/////|....................|6h ", + "...|l [ |.....|/////|....................|k k", + "...|l [ |.....|/////|....................|---", + "...|D | |.....|/////|........................", + "...|-+-| jj jj j j j j V |...|-|/////|-|......................", + "...|c D| jjj jj jj V |...|/////////|----------------------" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.45 } + ], + "place_vehicles": [ { "vehicle": "golf_cart", "x": 40, "y": 32, "chance": 75, "rotation": 90 } ] + }, + "om_terrain": [ + [ "necropolis_c_1", "necropolis_c_2", "necropolis_c_3" ], + [ "necropolis_c_10", "necropolis_c_11", "necropolis_c_12" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..|---|.................................................................", + "..|r r|.................................................................", + "--|-+-|--|..............................|------|........................", + " @@d|..............................| d|........|--|-------|...|", + " @@ |..............................| @@|........| |r G r|---|", + " h |..............................| |........| V n | |", + " kkk o|..............................| |........| V n [ [", + "---------|..............................| @@|........| | [ [", + "........................................| d|....|---| [ | |", + "..|-|-|.................................| |---|....|ScS |rrSrrrr| |", + "--|r|r|--|..............................| + B|....| |-|---||| |", + "@@|+|+|@@|-|............................| |StB|--|.|rr +r|r r||| |", + " |t|..................|---------|-[|---| 5|-|----[-|-|-+-|| ", + " + |..................| | = ", + " |S|..................| [ = G ", + "@@|+|+|@@|-|..................| |+-| = ", + "--|r|r|--|....................| | S| |---|-|5 |===|--[--|--| ", + " r|-|-|.......................| @ @ | t| |rrr|.|--|EEE|cc |..|| |", + "--|r|r|--|....................|d@ @d|BB| + |....|EEE|S |--|| |", + "@@|+|+|@@|-|..................|------|--| |rrr|....|---|O |r r| |", + " |t|..................| | |---|........|f |r r| c", + " + |...|------------|.| [ |rrr|........| |-+-| c", + " |S|...| V h V h |.| |+-|G + |........|hnnh | c c", + "@@|+|+|@@|-|...| V k6kV k6k|.| | S| | |........|hnnh [ c G |", + "--|r|r|--|.....| V V |.| @ @ | t| |r S|........|-----| c |", + "..|-|-|........| VHH[HVHH[H|.|d@ @d|BB| |---|..............| h c |", + "......|--------| |.|------|--| |........|---|-|cc6c |", + "---|..| V |.| | cc |........|EEE|b ", + " |..| hnnh [ VHH[HVHH[H|.| [ c |........|EEE|b ", + "h |..| hnnh [ V V |.| |+-| 6h |........|-++|b ", + " |..| hnnh V V k6kV k6k|.| | S| cccc|--------|5 ", + " G|..| hnnh V V h V h |.| @ @ | t| = bbbb bb", + "---|--| hnnh [ V V |.|d@ @d|BB| = |-HHHHHH", + "...| t| hnnh [ |---------|.|------|--|-[|---|-[|---| 5|---| | G ", + "...| S| V |.....................| |StB| |StB|--|S D| [ ", + "---|+-|HHH[[HHHV |------------------|..| + B| + B|..|c + [ ", + " h c P|..| |---| |---|..|S |--| ", + " c6cc |..| d| d|..|-| | |-| ", + "V VHHH|+|HHHV VHHH|---| |..|| @@| @@|..|t+ + t|.| 5", + "V Vk6k|L|k6kV[H[Vk6k|...| |...| | |..|-|-|--|.|-===-", + " h |-| h h |.|-|HHHH[[HHHH|-|.| | |...........| 5", + " k|.|k k|.| G G |.| @@| @@|....|------| ", + "h h h6|.|6h h h h6|.|/,,,,, ,,,,,/|.| d| d|....| G ", + "6k k6k k|.|k k6k k6k k|.|/,///, ,///,/|.|-----|------|....| ,,,,,,,,,,,", + "--------|.|-----------|.|/,///, ,///,/|...................| ,///,///,//", + "........................|/,///, ,///,/|...................| ,///,///,//", + "....|---------|.........|/,,,,,,,,,,,,/|...................| ,///,///,//", + "----|/////////|---------|/////,//,/////|-------------------| ,,,,,,,,,,," + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.45 } + ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 28, "y": 44, "chance": 75, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 67, "y": 45, "chance": 75, "rotation": 90 } + ] + }, + "om_terrain": [ + [ "necropolis_c_4", "necropolis_c_5", "necropolis_c_6" ], + [ "necropolis_c_13", "necropolis_c_14", "necropolis_c_15" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + "........................................................................", + "...................|------|.............................................", + "-------|--|........|d |.................|---|--------|--------|---|.", + "r G r| |........|@@ |.................|@@ ! ! ! @@|.", + " n V |........| |.................| * * * |.", + " n V |........| |.................|t ! ||| ! t|.", + " | |........|@@ |.................|!!!! !!!!|.|!!!! !!!!|.", + " [ |---|....|d |.................|t ! ! t|.|t ! ! t|.", + "rrrrSrr| ScS|....|---| |.................| * * |.| * * |.", + "||---|-| |....|B + |.................|@@ ! ! @@|.|@@ ! ! @@|.", + "||r r|r+ rr|.|--|BtS| |.................|!!!! !!!!|.|!!!! !!!!|.", + "||-+-|-|-[----|-|5 |---|[-|----------|......|@@ ! ! @@|.|@@ ! ! @@|.", + " = | |......| * * |.| * * |.", + " = [ |......|t ! ! t|.|t ! ! t|.", + " = |-+| |......|!!!! !!!!|.|!!!! !!!!|.", + "|-|-[[-------| 5|-|---| |S | |......|t ! ! t|.|t ! ! t|.", + "|.| rrrrrr|--|.|rrr| |t | @ @ |......| * * |.| * * |.", + "..| |....| + |BB|d@ @d|......|@@ ! ! @@|.|@@ ! ! @@|.", + "--| rrrrrr|--|.|rrr| |--|-------|......|!!!! !!!!|.|!!!! !!!!|.", + "6k rrrrrrr r|.|---| | |......|@@ ! ! @@|.|@@ ! ! @@|.", + "h r|.|rrr| [ |......| * * |.| * * |.", + " rrrrrrr r|.| + G|-+| |......|t ! ! t|.|t ! ! t|.", + " rrrrrrr r|.| | |S | |......|---| |---|.|---| |---|.", + "d r|.|S r| |t | @ @ |..........|!*!|.........|!*!|.....", + "6h rrrrrrrrr|.|---| |BB|d@ @d|..........| |.|-----|.| |.....", + "-cc--|---|------|.| |--|-------|..........| |.|6 h |.| |.....", + " b| > |........| cc | |..........|!*!|-|66kk |-|!*!|.....", + " b| |........| c [ |..........| !!!!!*! |.....", + " b|-[-|........| 6 |-+| |..........| |.....", + " 5|--------|cccc |S | |..........| G |.....", + "bb = |t | @ @ |..........|-----| |-----|.....", + "H-| = |BB|d@ @d|................| 5|...........", + " | |---|5 |---|[-|---|[-|--|-------|................|-===-|...........", + " [ |D S|--|BtS| |BtS| |...................|-------| 5|...........", + " [ + c|..|B + |B..+ |...................| G |...........", + " |--| S|..|---| |---| |.......|--------|..| |...........", + "|-| | |-|..|d |d |.......|rrrrrrr |..| |---------|...........", + "|.|t + +t|..|@@ |@@ |.......| |..| |.....................", + "|.|--|-|-|..| | |.......| ||-| |-------------------|.", + "|...........| | |.......|rrrrrr 5|5 Vbbb6k V 6 V h |.", + "|------|....|@@ |@@ |.......|rrrrrr = V kh V k6k V k6k |.", + " G |....|d |d |.......| = G k V V |.", + ",,,,,, |....|------|------|.......|rrrrrr = VH HVH H|.", + "/,///, |..........................|rrrrrr | V |.", + "/,///, |..........................| ||-| Vbbb |.", + "/,///, |............|-------|.....| |..| |-----| |.", + ",,,,,, |------------|///////|.....|rrrrrrr |..| |.....|kh hk|." + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 36 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 36 ], "y": [ 25, 46 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.45 } + ], + "place_vehicles": [ { "vehicle": "golf_cart", "x": 3, "y": 46, "chance": 75, "rotation": 90 } ] + }, + "om_terrain": [ + [ "necropolis_c_7", "necropolis_c_8", "necropolis_c_9" ], + [ "necropolis_c_16", "necropolis_c_17", "necropolis_c_18" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "...|S | jj jj j j j j V |...|//////////////////////////////=/", + "...|c T| G P| |...|//////////////////////////////=/", + "...|---|------------------------| ||..|////G////////////////G////////=/", + "................................| |..|//////////////////////////////=/", + "................................| 5|..|//////////////////////////////=/", + "................................|==-|..|/////////|----------------|//5|-", + "................................| 6|..|---------|................|---|.", + "................................| |...................................", + "................................| ||...................................", + "................................| |....................................", + "................................| |....................................", + "........................|-------| |....................................", + "........................| |....................................", + "........................| |....................................", + "....................|---| |-------|............|-|..|-------|....|-----", + "....................| 5| |........|-----------|F|..|///2222|....|r//rr", + "....................| = |---|----|rrrGrrr rrr| |..|//44//2|....|r////", + "....................| |-| | < |EEEE| | |..|//44//2|....|r////", + "....................| |.| | |EEEE| EEEEEE | |..|//////2|....|r////", + "...................|| |-| |-[-|-++-| EEEEEE | |..|---|792|----|7777|", + "...................| c| | | EEEEEE | |..|rrr|//2/////8////V", + "..................||G cv v v EEEEEE | |--| v//2//K//8////V", + "..................|L h6v v v EEEEEE | + =//44/G//9////V", + "..................|L cv v G| EEEEEE |----| 5|//44////9////V", + "..................|| h6v v [ EEEEEE |....|rrr|//X/////8////V", + "...................| c| | | EEEEEE |....|---|//2|----|////|", + "...................|----| |--| |--| EEEEEE |....|r/////2|....|/////", + "........................| |..| | + EEEEEE |....|r/44//2|....|L////", + "........................| |..|[[|Sr| 5 G|....|r/44//2|....|L////", + "........................| |--| |--|---======-||....|r//2222|....|L////", + "........................| G ,//////5|.....|-------|....|-----", + "................|-------|,,,,,,,,,,,,,,,///////|-|......................", + "................|////////////////////////////////|------------------|...", + "..............|-|//////////////////////////G////////////////////////|-|.", + "..............|///////////////////////////////////////////////////////|-", + "..............|/////////////////////////////////////////////////////////", + "..............|////G/////////////G/////////////////////G////////////////", + "..............|///////////////////////////////////////////////////G/////", + "..............|/////////////////////////////////////////////////////////", + "..............|/////////////////////////////////////////////////////////", + "..............|/////////|-----------------------------------|///////////", + "..............|///////|-|...................................|-|///////|-", + "..............|///////|...|-------------------------------|...|///////|.", + "..............|///////|...|///////////////////////////////|...|///////|.", + "..............|///////|...|//,,,,,,,///,,,,,,,///,,,,,,,//|...|///////|.", + "..............|///////|...|//,/////,///,/////,///,/////,//|...|///////|.", + "..............|///G///|...|//,/////,/I/,/////,/I/,/////,//|...|///G///|.", + "..............|///////|...|//,/////,///,/////,///,/////,//|...|///////|." + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 12 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 12 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 10 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 28, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 28, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 } + ], + "place_vehicles": [ { "vehicle": "golf_cart", "x": 34, "y": 33, "chance": 25, "rotation": 180 } ] + }, + "om_terrain": [ + [ "necropolis_c_19", "necropolis_c_20", "necropolis_c_21" ], + [ "necropolis_c_28", "necropolis_c_29", "necropolis_c_30" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "//////////////////////////////,,,,/////////////////////////,,,//////////", + "//////////////////////////////,//,/////////////////////////,/,//////////", + "/////////G////////////////G///,,,,///G/////////////////G///,,,///////G//", + "//////////////////////////////,//,/////////////////////////,/,//////////", + "//////////////////////////////,,,,/////////////////////////,,,//////////", + "----|/////////|---------------| ,,,,,,,,,,,,,/|-----------| ,,,,,,,,,,,", + "....|-|/////|-|...............| ,///,///,///,/|...........| ,///,///,//", + "......|/////|.................| ,///,///,///,/|-----------| ,///,///,//", + "......|/////|.................| ,///,///,///, G ,///,///,//", + "......|/////|.................| ,,,,,,,,,,,,, ,,,,,,,,,,,", + "......|/////|.................|G |--| |----| G ", + "......|/////|.................|-----| |----|..| |....|------------", + "......|/////|.......................| 5|.......| |.................", + "......|/////|.......................|-===-|.......| |--|.....|--|-----", + "----|.|//G//|.......................| 5|.......| | |.....|EE| ", + "r//r|.|/////|............|-----|----| |--|....| [ >|.....|EE+ ", + "///r|.|/////|............| vccc6c |St|....| | |.....|EE+ |-", + "///r|.|/////|............| RRR vc h + |....| |--|.....|--| | ", + "///r|.|/////|---|........| RRR v6h G |--|....| |....|--|...| | ", + "-=--|-|/////////|........| RRR vc h + r|....| |----| 5|---| | ", + "c rr| //////,,,,|........| vcc6cc |--|....| = | ", + "c | //////,//,|........|-|=--|HHHHH[H|[-|rr|....| G = | ", + "6hG + //////,//G|..........| | |....| = | ", + "c | //////,//,|..........|H[H|H[H|H[H|rrrrr|....|---| |---|5 |---| ", + "c 5r|G//////,,,,|..........| | | |-----|........| |Pll|---| a ", + "-=--|-|/////////|..........|c6 |c6 |c6 |..............| | h + a ", + "////|.|/////|---|..........| h | h | h |..............| | hnnnh |b aA", + "////|.|/////|..............|---|---|---|..............| | hn nh |b h", + "////|.|/////|.........................................| | hn nh |b n", + "/cSc|.|//G//|.........................................| | hn nh |b ", + "----|.|/////|...........................|-------------| | hnnnh |b c", + "......|/////|...........................|,///,///,///,G | h | ", + "......|/////|...........................|,///,///,///, |-------|-----", + "....|-|/////|-|..........|---------|.|--|,///,///,///,////|.............", + "----|/////////|----------|/////////|-|5//,,,,,,,,,,,,,,//,|-------------", + "/////////////////////////////////////=////////////////,,,,//////////////", + "/////////////////////////////////////=////////////////,//,//////////////", + "/////////G//////////G/////////G//////=/G//////////G///,,,,//////////////", + "/////////////////////////////////////=////////////////,//,//////////////", + "/////////////////////////////////////=////////////////,,,,//////////////", + "|----|/,,,,,//,,,,,/|----|/////////|-----|,,,,,,,,,,,,,//,|--|----------", + "|....|/,///,//,///,/|....|-|/////|-|.....|///,///,///, G|..| 666666666", + ".....|/,///,//,///,/|......|/////|.......|///,///,///|-[[-|..| ", + ".....|/,///,//,///,/|......|/////|.......|///,///,///| |..| ", + ".....|/,,,,,//,,,,,/|......|/////|.......|------|----| |..|k6k Gkk6k", + ".....| G G |......|/////|..............| c |..| hk hk", + "|--|-|HHHHH-[[-HHHHH|-|--|.|/////|..............| c |..| aAAA", + "|EE| |EE|.|/////|..........|---|G h6 G|..|k6k a 6k" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 6, 22 ], "y": [ 1, 20 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 6, 22 ], "y": [ 1, 20 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 10 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 10 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 4, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 4, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 30, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 30, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 36, 38 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 36, 38 ], "density": 0.35 } + ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 13, "y": 22, "chance": 50, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 35, "y": 7, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 39, "y": 8, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 42, "y": 7, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 70, "y": 7, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 66, "y": 7, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 16, "y": 42, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 9, "y": 42, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 46, "y": 32, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 46, "y": 42, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 43, "y": 32, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 43, "y": 42, "chance": 15, "rotation": 270 } + ], + "place_npcs": [ + { "class": "old_guard_necropolis_commo", "x": 34, "y": 18 }, + { "class": "old_guard_soldier", "x": 41, "y": 20 }, + { "class": "old_guard_soldier", "x": 41, "y": 16 }, + { "class": "old_guard_soldier", "x": 38, "y": 20 } + ] + }, + "om_terrain": [ + [ "necropolis_c_22", "necropolis_c_23", "necropolis_c_24" ], + [ "necropolis_c_31", "necropolis_c_32", "necropolis_c_33" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "/////,,,////////////////////|.....|--------|..| |---|.|6kkh hkk6|.", + "/////,/,////////////////////|.................| |EEE|.| |.", + "/////,,,//////G/////////G///|.....|---------|-| +EEE|.| |.", + "/////,/,////////////////////|.....|rrrrrrr 5|5 +EEE|.|kh hk|.", + "/////,,,////////////////////|.....| = |EEE|.|6kkh hkk6|.", + ",,,,,, |------------|///////|.....| rrrrr = G |---|-| |.", + "/,///, |............||/////||.....| = |kh V |.", + "/,///, |.............|/////|......|rrrrrrr | V6kkh Vkh hk|.", + "/,///, |...........|-|/////|-|....|--|------|-| V V6kkh kk6|.", + ",,,,,, |.|----|----|/////////|----|..|t+ cScSc| VHH+HHV h |.", + " G |.|rrrr| /////////////// |..|-| | |.", + "-------|.| 6| ,,,,,/////,,,,, |..|t+ D| |.", + ".........| h6| ,///,/////,///, |..|-|-|-+--| VHH+HHV |.", + "---------|u=uu| ,///,/////,///, |......| V V6kkh hkk6|.", + " | ,///,/////,///, |-|----| V6kkh Vkh hk|.", + " 5|5 ,,,,,/////,,,,, 5|5 ccc|--|kh V |.", + "---[[----| = ,///,/////,///, = c |..|-----|--| 5 |---|.", + " | = ,///,//G//,///, = G 6h |...........|--===-|.....", + "bbb bbb | = ,///,/////,///, = c |........|--||5 |---|.", + " | |G ,,,,,/////,,,,, G| cc |--|.....|t ! ! t|.", + "bbb bbb |-+|-| ,///,/////,///, |-|----| |.....| * * |.", + " |S |.| ,///,/////,///, |......| |.....|@@ ! ! @@|.", + "bbb bbb |t |.| ,///,/////,///, |....|-|-HH-| |.....|!!!! !!!!|.", + " |--|-| ,,,,,/////,,,,, |....| | |.....|@@ ! ! @@|.", + "bbb bbb a | /////////////// |....| k6 V |.....| * * |.", + " a |----|/////////|----|....| hk hV |.....|t ! ! t|.", + "AAA AAAAA b|....|-|/////|-|.........| k V |-|---|!!!! !!!!|.", + "hh hhh b|......|/////|...........| kk | = ! t|.", + "nn G nnn b|......|/////|...........| [ = * |.", + " b|......|/////|...........|oo | = ! @@|.", + "ccc6ccc c6c b|......|/////|...........|------|--| 5|5 |--------------|.", + "h c h ch |......|/////|.....................|--|--|................", + "--------------|......|/////|............................................", + "...................|-|/////|-|........................|---------|.......", + "-------------------|/////////|------------------------|/////////|.......", + "////////////////////////////////////////////////////////////////|.......", + "////////////////////////////////////////////////////////////////|.......", + "/G//////////////////////G//////////////////////////////////G////|.......", + "////////////////////////////////////////////////////////////////|.......", + "////////////////////////////////////////////////////////////////|.......", + "------------|------|/////////|------------------------|/////////|.......", + "66666666666 |......|---------|........................|-|/////|-|.......", + " |...........................................|/////|.........", + " |......|-----|----------------------------|.|/////|.........", + " k6kkG k6k|......|BB t | V^^^^^^^^^^|.|/////|.........", + " kh kh |......|BB + G G VHHHHHHV^^^|.|/////|.........", + "AAAAAa |......| c| I cc I cc I VHV^|.|/////|.........", + "66k6 a k6k|......|rcSSc| 6 V^|.|/////|........." + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 36 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 36 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 36 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 36 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 38 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 38 ], "density": 0.05 } + ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 19, "y": 17, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 19, "y": 13, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 19, "y": 21, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 29, "y": 17, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 29, "y": 13, "chance": 25, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 29, "y": 21, "chance": 25, "rotation": 270 } + ], + "place_npcs": [ { "class": "old_guard_soldier", "x": 38, "y": 47 }, { "class": "old_guard_soldier", "x": 32, "y": 45 } ] + }, + "om_terrain": [ + [ "necropolis_c_25", "necropolis_c_26", "necropolis_c_27" ], + [ "necropolis_c_34", "necropolis_c_35", "necropolis_c_36" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..............|///////|...|//,/////,///,/////,///,/////,//|...|///////|.", + "..............|///////|...|//,/////,/&/,/////,/&/,/////,//|...|///////|.", + "..............|///////|...|//,/////,///,/////,///,/////,//|...|///////|.", + "..............|///////|...|//,/////,///,/////,///,/////,//|...|///////|-", + "..............|///////|...|//,/////,/I/,/////,/I/,/////,//|...|//////// ", + "..............|///////|---|//,/////,///,/////,///,/////,//|---|//////// ", + "..............|//////////5|5/,,,,,,,///,,,,,,,///,,,,,,,/5|5/////////// ", + "..............|///////////=///////////////////////////////=//////////// ", + "..............|///////////=///////////////G///////////////=//////////// ", + "..............|///////////=///////////////////////////////=//////////// ", + "..............|////G//////=///G///////////////////////G///=//////G////|-", + "..............|///////////=///////////////////////////////=///////////|.", + "..............|///////////=///////////////////////////////=///////////|.", + "..............|///////////=///////////,,,,,,,,,///////////=///////////|.", + "..............|///////|---|///////////,EEEEEEE,///////////|-|/////////|.", + "..............|-------|...|///////////,EEEEEEE,///////////|.|-|/////|-|.", + "..........................|//////////I,EEEEEEE,I/,,,,,,,//|...|-----|...", + "..........................|///////////,EEEEEEE,//,/////,//|.............", + "..........................|///////////,EEEEEEE,//,/////,//|...|---------", + "..........................|///////////,EEEEEEE,&/,/////,//|...|o G ", + "..........................|///////////,EEEEEEE,//,/////,//|...|o h h", + "..........................|-|/////////,,,,,,,,,//,/////,//|...| h h", + "............................|////////|-7799977-|/,/////,//|...| n h h", + "............................|////////|r/////rrr|/,/////,//|...| hn ", + "............................|-|//////8r////////8/,,,,,,,//|...| hn ", + "..............................|//////8r////////8//////////|...| n h h", + "..............................|//////8////G///c|----------|...| h h", + "..............................|//////8/ccc////S|..............|o h h", + "..............................|//////8/ccc////c|----------|...|o G ", + "..............................|//////8/////////= rrrr r|...|---------", + "..............................|//////8rrrr/////= r|.............", + "..............................|//////8rrrr/////= rrrr r|.|-----------", + "..............................|//////8////////5|----------|.|///////////", + "..............................|//////8/////////|............|/////,,,,,/", + "..............................|//////8r///G/cc/|------------|/////,///,/", + "..............................|//////8r/////cc/8//////////////////,///,/", + "..............................|//////8r/////cc/8/,,,,,,,//////////,///,/", + "............................|-|//////|r////////|/,/////,//////////,,,,,/", + "............................|////////|-7799977-|/,/////,//////////,///,/", + "............................|////////////////////,/////,/&////////,///,/", + "..........................|-|////////////////////,/////,//////////,///,/", + "..........................|//////////////////////,/////,//////////,,,,,/", + "..........................|//////////////////////,/////,/I////////,///,/", + "..........................|//////////////////////,/////,//////////,///,/", + "..........................|//////////////////////,,,,,,,//////////,///,/", + "..........................|///////////////////////////////////////,,,,,/", + "..........................|/////////////////////////////////////////////", + "..........................|////////////////////////////////////,,,,,////" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole", "c": "t_rock_floor", "S": "t_rock_floor", "r": "t_rock_floor" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_vehicles": [ + { "vehicle": "humvee", "x": 33, "y": 3, "chance": 60, "rotation": 90 }, + { "vehicle": "humvee", "x": 43, "y": 3, "chance": 60, "rotation": 90 }, + { "vehicle": "humvee", "x": 53, "y": 3, "chance": 100, "rotation": 90 }, + { "vehicle": "humvee", "x": 51, "y": 20, "chance": 100, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 68, "y": 43, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 68, "y": 39, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 68, "y": 35, "chance": 25, "rotation": 90 }, + { "vehicle": "humvee", "x": 53, "y": 40, "chance": 60, "rotation": 90 } + ] + }, + "om_terrain": [ + [ "necropolis_c_37", "necropolis_c_38", "necropolis_c_39" ], + [ "necropolis_c_46", "necropolis_c_47", "necropolis_c_48" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|EE+ +EE|.|/////|..........|r r| c |..| hk a k ", + "|EE+ +EE|.|/////|..........|r r| cc |..| aG ", + "|EE| cc6ccc |EE|.|/////|..........|r r| |..| aAa ", + "|--| cc h cc |--|-|/////|..........|-+-|HHHHV |..| kka ", + "V G c c G bV///////|..........|c V |--|u=u| h6a ", + "V cc rr cc nn bV///////|..........|6h 5|5 Gv ka ", + "[ ch rr hc bV////G//|..........|c G = v a ", + "[ 6 rr 6 bV///////|..........|c = vkh a ", + "V cc rr cc nn bV///////|..........|6h h h V = vk6k a ", + "V G c G bV///////|..........|ccc6cc6cV |--| |-uuu--", + "|--| cc h cc |----|/////|........|-|HHHHHHHHV |..| ", + "...| cc6ccc b|....|/////|........|cc |..| G ", + "...|r nn b|....|/////|........|S G|..|----------", + "...|r b|....|/////|........|O |-----|.............", + "...|rrr bbbbb|....|/////|........|f hnnh |...................", + "...|------| |---|-|||...|/////|........|c hnnh |..|----------------", + "..........| 5|ccS|t|t|..||/////||.......|D hnnh |..| ", + "..........|-==-|S |+|+|..|///////|.......| G |..| bnnb bnnb b", + "----------| 5|c |..|//////5|.......|---------|..| bnnb bnnb b", + " | + |..|-=====-|....................| bnnb bnnb b", + " h h h h V |----|--|..|//////5|....................| bnnb bnnb b", + " h h h h V |cScS|..|..|///////|....................| ", + " h h h h | + |..|..||//G//||....................| bnnb bnnb b", + " [ | |..|...|/////|.....................| bnnb bnnb b", + " [ |+|+-|--|---|/////|-----|...............| bnnb bnnb b", + " h h h h | |t| t| ,///,/////,///, |.........|-----| bnnb bnnb b", + " h h h h V |-|--| ,///,/////,///, |.........| ", + " h h h h V | ,///,/////,///, |.........| bnnb ", + " | G = ,,,,,/////,,,,, |.........| bnnb ", + "----------| = ,///,/////,///, |.........| bnnb |---|-==-|-=-", + "..........| 5|5 ,///,/////,///, |.|--|--|.| bnnb | r|EEEE|r ", + "--------|.|| |--|--| ,///,/////,///, |-| 5|5 |-| c r|EEEE|r ", + "////////|..| | |EE| ,,,,,,,,,,,,,,, = c r|-||-|r ", + "/,,,,,//|..| + >|EE+ G/////,/,/,/////G = G c +r||r+ ", + "/,///,//|..| | |EE+ ,,,,,,,,,,,,,,, = c r|-||-|r ", + "/,///,//|..| |--|--| ,///,/////,///, |-| | |-| c =EEEE= ", + "/,///,//|..| |.....| ,///,/////,///, |.|--|--|.| bnnb | =EEEE= ", + "/,,,,,//|..| |.....| ,///,/////,///, |.........| bnnb |-=-|----|---", + "/,///,//|..| |.....| ,,,,,/////,,,,, |.........| bnnb ", + "G,///,//|..| |.....| ,///,/////,///, |.........| bnnb ", + "/,///,//|..| |.....| ,///,/////,///, |.........| ", + "/,,,,,//|..| |.....| ,///,/////,///, |.........|-----| bnnb bnnb b", + "/,///,//|..| |.....|------|/////|-----|...............| bnnb bnnb b", + "/,///,//|..| |............|/////|.....................| bnnb bnnb b", + "/,///,//|..| |...........||//G//||....................| bnnb bnnb b", + "/,,,,,//|..| |...........|///////|....................| ", + "////////|..| |...........|//////5|....................| bnnb bnnb b", + "////////|..| |...........|-=====-|....................| bnnb bnnb b" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole", "b": "t_metal_floor" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 36 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 36 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 18, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 18, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 } + ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 3, "y": 43, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 3, "y": 39, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 3, "y": 35, "chance": 25, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 35, "y": 26, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 35, "y": 30, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 35, "y": 36, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 35, "y": 40, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 25, "y": 26, "chance": 20, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 25, "y": 30, "chance": 20, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 25, "y": 36, "chance": 20, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 25, "y": 40, "chance": 20, "rotation": 90 } + ] + }, + "om_terrain": [ + [ "necropolis_c_40", "necropolis_c_41", "necropolis_c_42" ], + [ "necropolis_c_49", "necropolis_c_50", "necropolis_c_51" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " h k a kh |......|-----| kk 66 V^|.|/////|.........", + " Ga |......| + k 6GV^|.|/////|.........", + " aAa |......| + k h 6 V^|.|/////|.........", + " a6k |......| |-| kk 66 V^|.|/////|.........", + " akh |u=u|--|---| |.| 6 V^|.|/////|.........", + " ak vG 5|5 |.| I cc I cc I VHV^|.|/////|.........", + " a v = G|.| G G VHHHHHHV^^^|.|/////|.........", + " a hkv = |.| V^^^^^^^^^^|.|/////|.........", + " 5a k6kv |--|----| |-|-------------|-++---------|-|.|/////|.........", + "==--uuu-| |..|rrrr| G + ccc|...|/////|.........", + " 5 |..| + + hh c|...|/////|.........", + " G |..|cScr|--------|-+-|-+-|-| hnnnnh c|...|/////|.........", + "------------|..|----|........|t S|S t|.| nnnnnn |...|/////|.........", + ".............................|---|---|.| hnnG nnh |...|/////|.........", + "....|-|-|..|-|-|.......................| hnn Gnnh |...|/////|.........", + "----|t|t|..|t|t|--------------------|..| nnnnnn |..||//G//||........", + " |+|+|--|+|+| |..|c hnnnnh c|..|///////|........", + "nnb | | bnnb bnnb bnnb |..|c hh c|..|//////5|........", + "nnb |+|+| |+|+| bnnb bnnb bnnb |..|ccc ccc|..|-=====-|........", + "nnb |t|t| |t|t| bnnb bnnb bnnb |..|------------|..|//////5|........", + "nnb |-|-| |-|-| bnnb bnnb bnnb |..................|///////|........", + " |ScSc cScS| |..................||//G//||........", + "nnb | | bnnb bnnb bnnb |...................|/////|.........", + "nnb | | bnnb bnnb bnnb |.............|-----|/////|-----|...", + "nnb |ScSc cScS| bnnb bnnb bnnb |.............| ,///,/////,///, |...", + "nnb |----++----| bnnb bnnb bnnb |-----|.......| ,///,/////,///, |...", + " |.......| ,///,/////,///, |...", + " G bnnb bnnb bnnb |.......| ,,,,,/////,,,,, |...", + " bnnb bnnb bnnb |.......| ,///,/////,///, |...", + "| bnnb bnnb |---|-==-|-=-| bnnb |.......| ,///,/////,///, |...", + "| bnnb bnnb | r|EEEE|r | bnnb |.|--|--| ,///,/////,///, |...", + "c c r|EEEE|r c |-| 5|5 ,,,,,/////,,,,, |...", + "c c r|-||-|r c = //////////,///, |...", + "c c +r||r+ c G = G ///////G//,///, |...", + "c c r|-||-|r c = //////////,///, |...", + "c c =EEEE= c |-| | ,,,,,/////,,,,, |...", + "| bnnb bnnb | =EEEE= | bnnb |.|--|--| ,///,/////,///, |...", + "| bnnb bnnb |-=-|----|---| bnnb |.......| ,///,/////,///, |...", + " bnnb bnnb bnnb |.......| ,///,/////,///, |...", + " bnnb bnnb G bnnb |.......| ,,,,,/////,,,,, |...", + " |.......| ,///,/////,///, |...", + "nnb |----++----| bnnb bnnb bnnb |-----|.......| ,///,/////,///, |...", + "nnb |ScSc cScS| bnnb bnnb bnnb |.............| ,///,/////,///, |...", + "nnb | | bnnb bnnb bnnb |.............|-----|/////|-----|...", + "nnb | | bnnb bnnb bnnb |...................|/////|.........", + " |ScSc cScS| |...................|/////|.........", + "nnb |-|-| |-|-| bnnb bnnb bnnb |..................||/////||........", + "nnb |t|t| |t|t| bnnb bnnb bnnb |..................|///////|........" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole", "b": "t_metal_floor" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 18, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 18, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 28 ], "y": [ 20, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 30 ], "y": [ 20, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 60, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 60, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 } + ], + "place_npcs": [ + { "class": "old_guard_necropolis_cpt", "x": 47, "y": 1 }, + { "class": "old_guard_soldier", "x": 33, "y": 6 }, + { "class": "old_guard_soldier", "x": 42, "y": 5 } + ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 64, "y": 25, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 64, "y": 29, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 64, "y": 37, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 64, "y": 41, "chance": 15, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 54, "y": 25, "chance": 15, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 54, "y": 29, "chance": 15, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 54, "y": 37, "chance": 15, "rotation": 90 }, + { "vehicle": "golf_cart", "x": 54, "y": 41, "chance": 15, "rotation": 90 } + ] + }, + "om_terrain": [ + [ "necropolis_c_43", "necropolis_c_44", "necropolis_c_45" ], + [ "necropolis_c_52", "necropolis_c_53", "necropolis_c_54" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "..........................|////////////////////////////////////,///,//|-", + "..........................|////////////////////////////////////,///,//|.", + "..........................|////////////////////////////////////,///,//|.", + "..........................|////////////I&I//|---------------|//,,,,,//|.", + "..........................|/////////////////|...............|/////////|.", + "..........................||///G///|--------|...............|---------|.", + "...........................|//////5|....................................", + "..............|---------|..|-=====-|....................................", + "..............|/////////|--|//////5|------------------------------------", + "..............|/////////////////////////////////////////////////////////", + "..............|/////////////////////////////////////////////////////////", + "..............|////G//////////////////////////////G//////////////////G//", + "..............|/////////////////////////////////////////////////////////", + "..............|/////////////////////////////////////////////////////////", + "..............|/////////|-------------------|////,,,,,,,,,,,,,,,,,,,,,,,", + "..............|---------|...................|-|//,///,///,///,///,///,//", + "..............................................|//,///,///,///,///,///,//", + "..............................................|//,///,///,///,///,///,//", + "..............................................|//,,,,,,,,,,,,,,,,,,,,,,,", + "..............................................| ", + "..............................................| ", + "..............................................|-----------| G |-------", + "..........................................................| 5|.......", + "..............................|-----------|.|-----------|.|-===-|.......", + "..............................|kh |.|kh |.| 5|.......", + "..............................|6kk nnn |.|6kk nnn |.| |.......", + "..............................| |.| |.| |-------", + "..............................| k k k k |.| k k k k |.| c k6k L", + "..............................| h h h h |.| h h h h |.| G c h ", + "..............................| k k k k |.| k k k k |.| c ", + "..............................| h h h h |.| h h h h |.| cc h", + "..............................| k k k k |.| k k k k |.| kk", + ".......|--|-|-|-|-|-|.........| h h h h |.| h h h h |.| |-------", + ".......|t |t|t|t|t|t|.........| |.| |.| |.......", + ".......| | | | | | |.........|----| |----|.|----| |----|.| |.......", + ".......|-+|+|+|+|+|+|..............|[|...........|[|......| |.......", + ".......| |-----|--------| |-----------| |------| |-------", + ".......| D|LLLLLLL LLLLLLLLL LLLL LLLLLLL", + ".......|cScScScScSc + ", + ".......|------------------| ", + ".......|cScScScScSc + G ", + ".......| D|LLLLLLL LLLLLLL |HHHHH| ", + ".......| |-----|--------| |-------|-[[-|++-|ccccc|-++|-[[", + ".......|-+|+|+|+|+|+|..............| |.......| |EEE|-----|EEE| ", + ".......| | | | | | |.|----------|.|L L|.......| |EEE| |EEE| ", + ".......|t |t|t|t|t|t|.| |.|L L|..|----| |---| |---| ", + ".......|--|-|-|-|-|-|.| khkhkh |.|L L|..| ", + "......................| |.|L L|..| " + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 } + ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 67, "y": 16, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 70, "y": 16, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 63, "y": 16, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 59, "y": 16, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 55, "y": 16, "chance": 20, "rotation": 270 }, + { "vehicle": "golf_cart", "x": 51, "y": 16, "chance": 20, "rotation": 270 } + ] + }, + "om_terrain": [ + [ "necropolis_c_55", "necropolis_c_56", "necropolis_c_57" ], + [ "necropolis_c_64", "necropolis_c_65", "necropolis_c_66" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "--------|..| |...........|//////5|....................| bnnb bnnb b", + "...........| |...........|///////|....................| bnnb bnnb b", + "...........| |...........||/////||....................| ", + ".|---------| |............|/////|.....................|-----|[[|-------", + ".| |............|/////|..........................|| ||......", + ".| |............|/////|..........................| |......", + ".| |---------|............|/////|..........................| |......", + "|| ||...................|-|/////|-|........................|| ||......", + "|, ,|-------------------|/////////|-------------------------|[[|-------", + "/,,,,////////////////////////////////////////////////////////,//,///////", + "/,//,////////////////////////////////////////////////////////,,,,///////", + "/,,,,/////////////////////////G//////////////////////////////,//,G//////", + "/,//,////////////////////////////////////////////////////////,,,,///////", + "/,,,,////////////////////////////////////////////////////////,//,///////", + ",, ,/|------------------|/////////|----------------------|//,,,,/////,,", + "/, |-|..................|---------|......................|-|,//,/////,/", + "/, |.|--------------|......................................|,,,,/////,/", + "/, |.|P k h P|.|------------|.......|---------|.....|,//,/////,/", + ",, |.| k6kkk |.|rrrrrrrrrrrr|.......|L |.....|-[[-|////,,", + " |.| o|.| |...|---|L c h c |.....| |////,/", + " |.| h o|.|r rr rr rr |...|r r| cc6cc |.....| V////,/", + "----|.|[[|-----------|.|r rr rr rr |...|r S| |...|-| V////,/", + "......| |P o|.|r rr rr rr |...|r c| P|---| V////,,", + "......| | 6k o|.|r rr rr rr |-|-|-+-|-uuuu-[[-| 5|5 |////,/", + "......| [ h kh o|.|r rr rr rr = = G [////,/", + "......| |h kk o|.|r rr rr rr = = [////,/", + "------| |h o|.| 5|5 |-uu-uu-uu-|---| |////,,", + "LL kk6| |------|----|.|rrrrrrrrrrrr | | kk6k o|...| V//////", + " hk| bbbbbb|......|--------------|-| [ k hk o|...|-| V//////", + " [ |.......................| |kk |---|.| V/G////", + "k [ |------------|.|------|.| v6h + |.| |//////", + "6 oo|b |LLL rr@ @|.|rrrrrr|.| |k ooP |rrr|.| |-HHHH-", + "------|b [ @ @|.|r |.| |----------|---|.| ", + "......|Pbb |6kk r|.|r rrr|.| |................| ", + "......|---|[[|--| h LLL r|.|r rrr|.| |-------------|..| ", + "..........| |..||-----------|-|r |.| | |..| ", + "----------| |-|.|r S S S r|r rrr|.| |!*!!*!!*!!*! |..|-----------", + "LLLLLLLLLLL LL|.|r c c c r|r rrr|.| | ! ! ! ! |..............", + " L|.| c c c |r |.| | ! ! ! ! |..............", + " |.| c c c V rrr|.| |!!!!!!!!!!!! |..|-----------", + " G |-| V rrr|.| | ! |..| ! ! ", + " LLLLLLL [ [ |.| | cc6cc! |..| * * ", + "-|-------| |-| V rrr|.| | c h c! |--|!!!! !!!", + " |.......| |.| c c c V rrr|.| |cc6cc ! ! ", + " |.......|L L|.| c c c k |r |.| |c h c G ! * ", + " |----|..|L L|.|r c c c kh|r rrr|.| | !*|--|!!!! !!!", + " |..|L L|.|r S S S 6k|r rrr|.| | |..| * * ", + " |..|L L|.|-------------|r |.| |c c|..| ! ! " + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 34 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 34 ], "density": 0.05 } + ] + }, + "om_terrain": [ + [ "necropolis_c_58", "necropolis_c_59", "necropolis_c_60" ], + [ "necropolis_c_67", "necropolis_c_68", "necropolis_c_69" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "nnb |+|+| |+|+| bnnb bnnb bnnb |..................|//////5|........", + "nnb | | bnnb bnnb bnnb |..................|-=====-|........", + " |+|+|--|+|+| |..................|//////5|........", + "----|t|t|..|t|t|-----------|[[|-----|..................|///////|........", + "....|-|-|..|-|-|..........|| ||.......................||/////||........", + "..........................| |........................|/////|.........", + "..........................| |........................|/////|.........", + "..........................|| ||......................|-|/////||........", + "---------------------------|[[|-----------------------|////////|........", + "///////////////////////////,//,////////////////////////////////|........", + "///////////////////////////,,,,////////////////////////////////|........", + "//////////////////////////G,//,////////////////////////////G///|........", + "///////////////////////////,,,,////////////////////////////////|........", + "///////////////////////////,//,////////////////////////////////|........", + ",,,,,,,//////,,,,,,,,,/////,,,,//|--------------------|////////|........", + "//,///,//////,///,///,/////,//,|-|....................|--------|........", + "//,///,///G//,///,///,/////,,,,|........................................", + "//,///,//////,///,///,/////,//,|.....|--------|--------|................", + ",,,,,,,//////,,,,,,,,,////|-[[-|.....|r r|0000__00|................", + "//,///,//////,///,///,////| |.....|r r r r|0 __ 0|................", + "//,///,//////,///,///,////V |.....| r r |$$ N|................", + "//,///,//////,///,///,////V |-|...|r r|$$ c6c 0|................", + ",,,,,,,//////,,,,,,,,,////V |---|r r| h c|................", + "//,///,//////,///,///,////| 6|5 |-uuuu-=-|-uuuu-=-||-----|.........", + "//,///,//////,///,///,////[ G = |k6koo|----|....", + "//,///,///G//,///,///,////[ = vkh = |....", + ",,,,,,,//////,,,,,,,,,////| |------|-HHHH--HHHH-| v k| c|....", + "//////////////////////////V |......| | v h6v c|....", + "//////////////////////////V |-|.|--|-| hh hh V v kv c|....", + "////////////////////////G/V |...|tS|D hnnh hnnh V | P| c|....", + "//////////////////////////| |...| + hnnh hnnh V = hk|----|....", + "HHHH-HHHH--HHHH-HHHH-HHHH-| |...|--| hh hh V |ook6k|.........", + " |...| + | |-uuu-|--|......", + " |...|tS|l [ |......", + " |...|--|l G [ |......", + " |......|c | |-----| |......", + "-----| 6 |----------------|......|S hh hh V |ook6k| |......", + ".....|--====--|.......................|c hnnh hnnh V = hk| |......", + ".....| 6 |.......................|c hnnh hnnh V | | |---|..", + "-|...| |....|--------|.........|-| hh hh V v | |rrr|..", + " |...| G |....| ! ! |...........| | v P| + |..", + " |..||-| |-|....| ! ! |........|--|-HHH-[[-HHH-| vk o| |rcS|..", + "!|..|EE| |......| ! ! |..|-----| vkh o| |---|..", + " |..|EE= |......| * * |..| kh | |6k o| |......", + " |..|EE= |------| ! ! |..| k6k v |-uuu-|-uuuuuu-||-----| |......", + "!|..|--| |cccc P|-uu++uu-|..| h v |o kk| |rrrrrr| |......", + " |..|EE| V6h | c6|..| v = h6h| i i | v |-|-|..", + " |..|EE= Vc |c6c hc|..| k v | k | |rrrr + |t|t|.." + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 16 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 16 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 } + ], + "place_vehicles": [ + { "vehicle": "golf_cart", "x": 19, "y": 16, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 19, "y": 20, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 15, "y": 16, "chance": 20, "rotation": 0 }, + { "vehicle": "golf_cart", "x": 15, "y": 20, "chance": 20, "rotation": 0 }, + { "vehicle": "golf_cart", "x": 4, "y": 16, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 4, "y": 20, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 1, "y": 16, "chance": 20, "rotation": 0 }, + { "vehicle": "golf_cart", "x": 1, "y": 20, "chance": 20, "rotation": 0 }, + { "vehicle": "golf_cart", "x": 19, "y": 25, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 15, "y": 25, "chance": 20, "rotation": 180 }, + { "vehicle": "golf_cart", "x": 4, "y": 24, "chance": 20, "rotation": 0 }, + { "vehicle": "golf_cart", "x": 1, "y": 24, "chance": 20, "rotation": 0 } + ] + }, + "om_terrain": [ + [ "necropolis_c_61", "necropolis_c_62", "necropolis_c_63" ], + [ "necropolis_c_70", "necropolis_c_71", "necropolis_c_72" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "......................| khkhkh |.| L|--| hhhhhhhhhhhh hhhhhhhh", + "......................| n |-| |EE| ", + "......................| n [ +EE| hhhhhhhhhhhh hhhhhhhh", + "......................| n |-| +EE| ", + "......................| khkhkh |.| |--| hhhhhhhhhhhh hhhhhhhh", + "......................| k |.|L L|..| ", + "......................|hk khkhkh |.|L L|..| hhhhhhhhhhhh hhhhhhhh", + "......................|k6 |.|L L|..|G ", + "......................|----------|.|L L|--| hhhhhhhhhhhh hhhhhhhh", + "...................................|L | | ", + "......................|----------|.|L [ >| hhhhhhhhhhhh hhhhhhhh", + "......................| |.|L | | ", + "......................| khkhkh |.|L |--| hhhhhhhhhhhh hhhhhhhh", + "......................| |.|L [ [ ", + "......................| khkhkh |.| [ [ ", + "......................| n |-| |--| aAAAAAAAAAAAAAAAAAAAAAAAA", + "......................| n [ |..| a ", + "......................| n |-| L|..|-[| ", + "......................| khkhkh |.| L|..| ", + "......................| k |.|L |--| -------------------------", + "......................|hk khkhkh |.|L [ [ ", + "......................|k6 |.|L [ [ ", + "......................|----------|.|-----|--|---------------------------", + "........................................................................" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.45 } + ] + }, + "om_terrain": [ [ "necropolis_c_73", "necropolis_c_74", "necropolis_c_75" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "hhhh |--|L L|...............|r rr|.| |c |u+u| c|..|---| |---", + " |EE| L|...............|-| |-|.| |6h cv vc h6|......|5 |...", + "hhhh |EE+ |.................|[[|...| |ccccv vcccc|......|-==|...", + " |EE+ |-----------------| |---| |-uu-|u+u|-uu-|------|6 |---", + "hhhh |--| ", + " |..|L G G ", + "hhhh |..|L |----------------------| |---------------| |--------", + " G|..|L |......................|H[[H|...............| |........", + "hhhh |--|L L|.|----------|.|-------| |-------|.|-|---| |---|-|.|", + " | | L|.| 6k|.| G|.|t+ + + +t|.|", + "hhhh |> [ L|.| hkhkhk kh|.| |.|-| D| |D |-|.|", + " | | L|.| k |.| h h h hc ch h h h |.|t+ S| |S +t|.|", + "hhhh |--| |.| hkhkhk |.| 6c6c6c6c c6c6c6c6 |.|-| c| |c |-|.|", + " [ [ |-| n |.| |.|t+ S| |S +t|.|", + " [ [ [ n |.| h h h hc ch h h h |.|-| c| |c |-|.|", + "AAAa |--| |-| n |.| 6c6c6c6c c6c6c6c6 |.|t+ S| |S +t|.|", + " a |..|-----|.| hkhkhk |.| |.|-|---| |---|-|.|", + " |[-|..........| |.| h h h hc ch h h h |.......| |.......|", + " |..........| hkhkhk |.| 6c6c6c6c c6c6c6c6 |-------| |-------|", + "---- |..........| |.| [ [", + " |..........|----------|.|6kk nnnn [ [", + " |.......................|khG |-------------------|", + "------|.......................|--------------------|...................|", + "........................................................................" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 } + ] + }, + "om_terrain": [ [ "necropolis_c_76", "necropolis_c_77", "necropolis_c_78" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "-|..|EE= Vc o| h c|..|h6h | v | i c6c| v |+|+|..", + "....|--| V o| |..|kk = v o| hc|rrrrrr| | |..", + ".......| | | |..|o o| v h o|--|+|---|------| + |..", + "-------| |-H[[H-|-uuuu-=-|--|-uuu-| vk6k |..| |..........| |SDS|..", + " |kh P|..| |---|------| |---|..", + " |-----|..| + ooP| |SDS|..", + "-------| |---------|-uuuu-=-|-=-uuuu-|........| | v + |..", + ".......|H[[H|.........|c | c|.|------|+--|-| k v | |..", + "-------| |-------|.|6h c|c h6|.| cGh o|.|hk v |+|+|..", + "G |.|c h6|6h c|.| c6cc o|.|k6 | |t|t|..", + " |.|c h h c|c h h c|.| |-|-uu-=-| |-|-|..", + " h h h hc ch h h h |.|cc6c6ccc|ccc6c6cc|.| i i | |......", + " 6c6c6c6c c6c6c6c6 |.|--------|--------|.| v |......", + " |.....................| i i v |-uu[[uu-|----|.", + " h h h hc ch h h h |.....................| | | |.", + " 6c6c6c6c c6c6c6c6 |---------------------|-uu-uu-uu-| v h h h h h |.", + " [ v 6 6 6 6 6 |.", + " h h h hc ch h h h [ | h h h h h |.", + " 6c6c6c6c c6c6c6c6 |-----------------------------------| 6 6 6 6 6 |.", + " |...................................| G |.", + " nnnn k6k|...................................| c6c |.", + " Ghk|...................................| h |.", + "--------------------|...................................|-------------|.", + "........................................................................" + ], + "palettes": [ "necropolis_b2" ], + "terrain": { "R": "t_hole" }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT2", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 } + ] + }, + "om_terrain": [ [ "necropolis_c_79", "necropolis_c_80", "necropolis_c_81" ] ], + "type": "mapgen", + "weight": 250 + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolisB3.json b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolisB3.json new file mode 100644 index 000000000..0f378ae7e --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen/necropolisB3.json @@ -0,0 +1,1436 @@ +[ + { + "name": "GROUP_NECROPOLIS_ROBOT", + "type": "monstergroup", + "monsters": [ { "monster": "mon_secubot" } ] + }, + { + "name": "GROUP_NECROPOLIS_VAULT3", + "type": "monstergroup", + "monsters": [ + { "monster": "mon_irradiated_wanderer_4", "weight": 890 }, + { "monster": "mon_irradiated_wanderer_3", "weight": 20 }, + { "monster": "mon_charred_nightmare", "weight": 90 } + ] + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "........................................................................", + "..............................|----------------|........................", + "........................|-----|rrrrrr rrrrrr|....|-----|-----|.......", + "........................|P | |....| | |.......", + "........................| + G |----| hc [ |.......", + "........................| | |EEEE| c6c v |.......", + "........................| |rrrrrr rrrrrr|EEEE| | |.......", + "...................|----|| ||-------++-------|-++-|-u[u-|| ||----|..", + "...............|---|k6k | | | | k6k|--", + "...............|c v h v v ccc ccc ccc ccc ccc ccc v v h v ", + "...............| + G v v c 6 c 6 c 6 6 c 6 c 6 c v v G + ", + "...............|6 v 5|5 v c c c c c c v 5|5 v ", + "...............|---| = | G G | = |--", + "...............|---| = | | = |--", + "...............|c v | v c c c c c c v | v ", + "...............| + G v v c 6 c 6 c 6 6 c 6 c 6 c v v G + ", + "...............|6 v h v v ccc ccc ccc ccc ccc ccc v v h v ", + "...............|---|k6k | | 5 | | k6k|--", + "...................|----|| |-uuu-uuu-uuu-===-uuu-uuu-uuu-| ||----|..", + "........................| 5 P|.......", + "........................| |.......", + "........................| G |.......", + "........................| |u[u|-+-| |-+-|u[u| |.......", + "........................|u[u|-++| |r r| vc | |++-|u[u|.......", + "........................| |EEE| > |r r| v6 | > |EEE| |.......", + "........................| < |EEE|---|r r| vch |---|EEE| < |.......", + "........................|---|---|...|r r| 5 |r |...|---|---|.......", + "....................................|---|--===--|---|...................", + "......................|-------------| 5 |-------------------", + "......................| ", + "......................| G ", + "......................| |--------------------------------------------", + "...|-|-|-|-|-|-|-|--|.| ||............................................", + "...|~|~|~|~|t|t|t| t|.| |.............................................", + "...| |+|+|+|+-|-| |--------------|..............................", + "...| + |nhhhn oooo |..............................", + "...| | |-| vh hh|..............|---|---|---|---", + "...|~|~|~|~|cScScScS|.| vh G nn|--|...........|t S|t S|t S|t S", + "...|-|-|-|-|--------|.| vh nn| r|...........|- -|- -|- -|- -" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "place_items": [ + { "item": "electronics", "x": [ 20, 22 ], "y": [ 17, 17 ], "chance": 30 }, + { "item": "office", "x": [ 20, 22 ], "y": [ 17, 17 ], "chance": 30 }, + { "item": "robots", "x": [ 41, 46 ], "y": [ 11, 11 ], "chance": 60 }, + { "item": "robots", "x": [ 31, 36 ], "y": [ 11, 11 ], "chance": 60 }, + { "item": "robots", "x": [ 31, 36 ], "y": [ 15, 15 ], "chance": 60 }, + { "item": "robots", "x": [ 41, 46 ], "y": [ 15, 15 ], "chance": 60 }, + { "item": "office", "x": [ 54, 56 ], "y": [ 14, 14 ], "chance": 30 }, + { "item": "electronics", "x": [ 66, 68 ], "y": [ 17, 17 ], "chance": 30 }, + { "item": "office", "x": [ 66, 68 ], "y": [ 17, 17 ], "chance": 30 }, + { "item": "office", "x": [ 20, 22 ], "y": [ 26, 26 ], "chance": 50 }, + { "item": "electronics", "x": [ 20, 22 ], "y": [ 26, 26 ], "chance": 50 }, + { "item": "novels", "x": [ 34, 38 ], "y": [ 44, 44 ], "chance": 50 }, + { "item": "robots", "x": [ 37, 37 ], "y": [ 32, 35 ], "chance": 50 }, + { "item": "cleaning", "x": [ 39, 39 ], "y": [ 32, 35 ], "chance": 50 }, + { "item": "prison_weapons", "x": [ 49, 49 ], "y": [ 35, 35 ], "chance": 70 }, + { "item": "office", "x": [ 66, 68 ], "y": [ 26, 26 ], "chance": 70 }, + { "item": "electronics", "x": [ 66, 68 ], "y": [ 26, 26 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 25, 46 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 25, 46 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 70 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 70 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 33, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 33, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 25, 46 ], "y": [ 25, 29 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 42, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 70 ], "y": [ 25, 29 ], "density": 0.05 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 70 ], "y": [ 38, 41 ], "density": 0.05 } + ], + "place_monster": [ + { "monster": "mon_turret_rifle", "x": 42, "y": 13 }, + { "monster": "mon_turret_rifle", "x": 44, "y": 39 }, + { "monster": "mon_turret_rifle", "x": 47, "y": 28 }, + { "monster": "mon_turret_rifle", "x": 41, "y": 28 } + ] + }, + "om_terrain": [ + [ "necropolis_d_1", "necropolis_d_2", "necropolis_d_3" ], + [ "necropolis_d_10", "necropolis_d_11", "necropolis_d_12" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + ".....................................................|-----------|-----|", + ".....................................................| l|L b L|", + ".....................................................| hnnh c|L b L|", + ".....................................................| hnnh S|L L|", + ".........|--|--|--|..|--|--|--|......................| D c|L L|", + "...|--|..|L@|@@|@@|..|@@|@@|@@|..|--|..|----------|--|--uuu--[[--|--+--|", + "...|@L|--| @| L| L|..|L |L |L |--|L@|..| | [ ", + "...|@ [ |[-|[-|[-|--|-[|-[|-[| [ @|..| j j j v [ G ", + "...|--| |--|..| jjj jjj v |------------| |+|", + "...|@L| |L@|..| j j j v |............| |r|", + "...|@ [ |--|[-|[-|[-|-[|-[|-[| [ @|..| | |...|------|-| |-|", + "...|--| |L@| L| L| L|L |L |L | |--|..| [ |...| 6 [ [", + "...|t + [ @|@@|@@|@@|@@|@@|@@| + t|..| J [ |...| n |------|", + "...|--| |--|--|--|--|--|--|--| |--|..| G D| |...| n VcScScc|", + "...|t + [ @|@@|@@|@@|@@|@@|@@| + t|..| J [ |...|c [ S|", + "...|--| |L@| L| L| L|L |L |L | |--|..| [ |---|c V c|", + "-|.|@ [ |--|[-|[-|[-|-[|-[|-[| [ @|..| | |EEE|S r|-| S|", + "c|.|@L| |L@|..| C C C v |EEE|r r|r+ c|", + " |.|--| |--|..| v |-++|--[[--|-|-[--|", + "6|.|@ [ |--|[-|[-| |-[|-[|-[| [ @|..| C C C v ", + "-|.|@L| [ @| L| L| |L |L |L | |L@|..| | G ", + "-|.|--| |L@|@@|@@| |@@|@@|@@| |--|..|----------|------|---| |-----", + "c|.|t + |--|--|--| |--|--|--| + t|....................|cSc| |.....", + " |.|--| [ @|@@|@@| |@@|@@|@@| |--|....................| + |.....", + "6|.|t + |L@| L| L| |L |L |L | + t|....................|t |-[[-|-----", + "-|.|--| |--|[-|[-| |-[|-[|-[| |--|....................|---|P ", + "...| + + |....................|EEE| c h ", + "...| -| |- |....................|EEE| cccc6cc", + "...| ~|[-|[-|[-|-| |-|[-|[-|[-|~ |....................|-++| ", + "...| -| L| L| L|.| |.| L| L| L|- |....................| ", + "...| ~|@@|@@|@@|.| |.|@@|@@|@@|~ |....................|b bb G ", + "...|--|--|--|--||| |||--|--|--|--|....................|b bb ", + "................| |.................................|b ", + "................| 5|.................................| bbbbb ", + "................|-====-|.................................|-------|u[[u[[", + "................| 5|.........................................| ", + "----------------| |-----------------------------------------| ", + " G ", + " G ", + "--------| |------------------------------------------------| ", + "........| |................................................|| |", + "........|b b|.................................................| |", + "........|b b|.................................................| |", + "........|b b|.................................................| |", + "|---|---|b b|---|---|---|---|---|---|.........................| |", + "|t S|t S|D P|t S|t S|t S|t S|t S|t S|.........................| |", + "|- -|- -| |- -|- -|- -|- -|- -|- -|.........................| |" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate", "b": "t_metal_floor" }, + "place_items": [ + { "item": "bed", "x": [ 22, 22 ], "y": [ 22, 22 ], "chance": 40 }, + { "item": "traveler", "x": [ 22, 23 ], "y": [ 21, 21 ], "chance": 40 }, + { "item": "bed", "x": [ 17, 17 ], "y": [ 22, 22 ], "chance": 40 }, + { "item": "traveler", "x": [ 16, 17 ], "y": [ 21, 21 ], "chance": 40 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 22, 22 ], "chance": 40 }, + { "item": "traveler", "x": [ 14, 14 ], "y": [ 21, 21 ], "chance": 40 }, + { "item": "bed", "x": [ 11, 11 ], "y": [ 21, 22 ], "chance": 40 }, + { "item": "traveler", "x": [ 10, 10 ], "y": [ 22, 22 ], "chance": 40 }, + { "item": "bed", "x": [ 22, 22 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "traveler", "x": [ 22, 23 ], "y": [ 16, 16 ], "chance": 40 }, + { "item": "bed", "x": [ 19, 20 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "traveler", "x": [ 20, 20 ], "y": [ 16, 16 ], "chance": 40 }, + { "item": "bed", "x": [ 17, 17 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "traveler", "x": [ 16, 17 ], "y": [ 16, 16 ], "chance": 40 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "traveler", "x": [ 14, 14 ], "y": [ 16, 16 ], "chance": 40 }, + { "item": "bed", "x": [ 11, 11 ], "y": [ 15, 16 ], "chance": 40 }, + { "item": "traveler", "x": [ 10, 10 ], "y": [ 16, 16 ], "chance": 40 }, + { "item": "bed", "x": [ 22, 22 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "traveler", "x": [ 22, 23 ], "y": [ 12, 12 ], "chance": 40 }, + { "item": "bed", "x": [ 19, 20 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "traveler", "x": [ 20, 20 ], "y": [ 12, 12 ], "chance": 40 }, + { "item": "bed", "x": [ 17, 17 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "traveler", "x": [ 16, 17 ], "y": [ 12, 12 ], "chance": 40 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "traveler", "x": [ 14, 14 ], "y": [ 12, 12 ], "chance": 40 }, + { "item": "bed", "x": [ 11, 11 ], "y": [ 12, 13 ], "chance": 40 }, + { "item": "traveler", "x": [ 10, 10 ], "y": [ 12, 12 ], "chance": 40 }, + { "item": "bed", "x": [ 4, 4 ], "y": [ 17, 18 ], "chance": 40 }, + { "item": "traveler", "x": [ 5, 5 ], "y": [ 18, 18 ], "chance": 40 }, + { "item": "bed", "x": [ 4, 4 ], "y": [ 20, 21 ], "chance": 40 }, + { "item": "traveler", "x": [ 5, 5 ], "y": [ 21, 21 ], "chance": 40 }, + { "item": "bed", "x": [ 4, 4 ], "y": [ 10, 11 ], "chance": 40 }, + { "item": "traveler", "x": [ 5, 5 ], "y": [ 10, 10 ], "chance": 40 }, + { "item": "bed", "x": [ 4, 4 ], "y": [ 7, 8 ], "chance": 40 }, + { "item": "traveler", "x": [ 5, 5 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "bed", "x": [ 22, 23 ], "y": [ 6, 6 ], "chance": 40 }, + { "item": "traveler", "x": [ 22, 22 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "bed", "x": [ 16, 17 ], "y": [ 6, 6 ], "chance": 40 }, + { "item": "traveler", "x": [ 17, 17 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "bed", "x": [ 11, 11 ], "y": [ 6, 7 ], "chance": 40 }, + { "item": "traveler", "x": [ 10, 10 ], "y": [ 6, 6 ], "chance": 40 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 6, 6 ], "chance": 40 }, + { "item": "traveler", "x": [ 14, 14 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "bed", "x": [ 35, 35 ], "y": [ 20, 21 ], "chance": 40 }, + { "item": "traveler", "x": [ 34, 34 ], "y": [ 21, 21 ], "chance": 40 }, + { "item": "bed", "x": [ 35, 35 ], "y": [ 17, 18 ], "chance": 40 }, + { "item": "traveler", "x": [ 34, 34 ], "y": [ 18, 18 ], "chance": 40 }, + { "item": "bed", "x": [ 35, 35 ], "y": [ 10, 11 ], "chance": 40 }, + { "item": "traveler", "x": [ 34, 34 ], "y": [ 10, 10 ], "chance": 40 }, + { "item": "bed", "x": [ 35, 35 ], "y": [ 7, 8 ], "chance": 40 }, + { "item": "traveler", "x": [ 34, 34 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 22, 22 ], "chance": 40 }, + { "item": "traveler", "x": [ 28, 28 ], "y": [ 21, 21 ], "chance": 40 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 22, 22 ], "chance": 40 }, + { "item": "traveler", "x": [ 25, 25 ], "y": [ 21, 21 ], "chance": 40 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "traveler", "x": [ 28, 28 ], "y": [ 16, 16 ], "chance": 40 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "traveler", "x": [ 25, 25 ], "y": [ 16, 16 ], "chance": 40 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "traveler", "x": [ 28, 28 ], "y": [ 12, 12 ], "chance": 40 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "traveler", "x": [ 25, 25 ], "y": [ 12, 12 ], "chance": 40 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 6, 6 ], "chance": 40 }, + { "item": "traveler", "x": [ 28, 28 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 6, 6 ], "chance": 40 }, + { "item": "traveler", "x": [ 25, 25 ], "y": [ 7, 7 ], "chance": 40 }, + { "item": "surgery", "x": [ 58, 58 ], "y": [ 18, 18 ], "chance": 60 }, + { "item": "surgery", "x": [ 63, 63 ], "y": [ 17, 18 ], "chance": 60 }, + { "item": "surgery", "x": [ 65, 65 ], "y": [ 18, 18 ], "chance": 40 }, + { "item": "cleaning", "x": [ 58, 58 ], "y": [ 22, 22 ], "chance": 40 }, + { "item": "lab_torso", "x": [ 66, 66 ], "y": [ 2, 5 ], "chance": 70 }, + { "item": "lab_torso", "x": [ 70, 70 ], "y": [ 2, 5 ], "chance": 70 }, + { "item": "dining", "x": [ 56, 57 ], "y": [ 3, 4 ], "chance": 40 }, + { "item": "fridgesnacks", "x": [ 64, 64 ], "y": [ 2, 2 ], "chance": 70 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 31, 31 ], "chance": 70 }, + { "item": "traveler", "x": [ 14, 14 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "bed", "x": [ 10, 11 ], "y": [ 31, 31 ], "chance": 70 }, + { "item": "traveler", "x": [ 11, 11 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "bed", "x": [ 7, 8 ], "y": [ 31, 31 ], "chance": 70 }, + { "item": "traveler", "x": [ 8, 8 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "bed", "x": [ 22, 23 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "traveler", "x": [ 22, 22 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "bed", "x": [ 16, 17 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "traveler", "x": [ 17, 17 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "bed", "x": [ 13, 14 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "traveler", "x": [ 14, 14 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "bed", "x": [ 11, 11 ], "y": [ 24, 25 ], "chance": 70 }, + { "item": "traveler", "x": [ 10, 10 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 31, 31 ], "chance": 70 }, + { "item": "traveler", "x": [ 29, 29 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 31, 31 ], "chance": 70 }, + { "item": "traveler", "x": [ 26, 26 ], "y": [ 30, 30 ], "chance": 70 }, + { "item": "bed", "x": [ 28, 29 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "traveler", "x": [ 28, 28 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "bed", "x": [ 25, 26 ], "y": [ 24, 24 ], "chance": 70 }, + { "item": "traveler", "x": [ 25, 25 ], "y": [ 25, 25 ], "chance": 70 }, + { "item": "magazines", "x": [ 62, 63 ], "y": [ 31, 32 ], "chance": 60 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 5, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 5, 22 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 } + ] + }, + "om_terrain": [ + [ "necropolis_d_4", "necropolis_d_5", "necropolis_d_6" ], + [ "necropolis_d_13", "necropolis_d_14", "necropolis_d_15" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "........................................................................", + "-----|.....................................|-----|----|--|----|-----|...", + "L b L|---|.................................|d@@d |hnnh| |hnnh| d@@d|...", + "L b L|c t|.................................| @@ | | | | @@ |...", + "L L|S |.................................| + + |...", + "L L|c |.................................|-+-|-| | | |-|-+-|...", + "--+--|-+-|---|------|......................|t S|L+ r| |r +L|S t|...", + " [ V h6c |......................|---|-|----| |----|-|---|...", + " [ [ hch |......................|d@@d |hnnh| |hnnh| d@@d|...", + "---------| V |......................| @@ | | | | @@ |...", + "n | |------|......................| + + |...", + "n c c c V V h6c |......................|-+-|-| | | |-|-+-|...", + " V [ hch |......................|t S|L+ r| |r +L|S t|...", + " c c c V V |......................|---|-|----| |----|-|---|...", + "r V G |------|......................|d@@d |hnnh| |hnnh| d@@d|...", + "r c c c V V h6c |......................| @@ | | | | @@ |...", + "r V [ hch |......................| + + |...", + "r c c c V V |......................|-+-|-| | | |-|-+-|...", + " | |------|......................|t S|L+ r| |r +L|S t|...", + "---uuuuu-| V h6c |......................|---|-|----| |----|-|---|...", + " [ hch |.................................| |..............", + " V |.................................| ||.............", + "| |---|---|------|................................|| |.............", + "| |cSc|...........................................| 5|.............", + "| + |...........................................|-==-|.............", + "|-[[-| t|...........................................| 5|.............", + " |---|...........................................|| |.............", + " c | < |............................................| ||.............", + "cc | |.|------------------------------------------| |..............", + " |-+-|.| |..............", + " |.| |..............", + " nn b|.| |------------------| |------------------|..............", + " nn b|.| |..................|| ||.................................", + " b|.| |.|----|---|-|----|.| |.|----|-|---|----|................", + " bbbbb |.| |.|d |S t|L|hnnh|.| |.|hnnh|L|t S| d|................", + "u|-------|.| |.|@@ |-+-|+| |-| |-| |+|-+-| @@|................", + " |.........| |.|@@ [ [ @@|................", + " |---------| |.|d oo |-| |-| oo d|................", + " |.|---------------|.| |.|---------------|................", + " |...................| |..................................", + "|-------------|...................| |..................................", + "|...............|---------------|.| |.|---------------|................", + "................|d oo |-| |-| oo d|................", + "................|@@ [ [ @@|................", + "................|@@ |-+-|+| |-| |-| |+|-+-| @@|................", + "................|d |S t|L|hnnh|.| |.|hnnh|L|t S| d|................", + "................|----|---|-|----|.| |.|----|-|---|----|................", + "..................................| |.................................." + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate", "b": "t_metal_floor" }, + "place_items": [ + { "item": "hospital_incubator", "x": [ 3, 3 ], "y": [ 17, 17 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 5, 5 ], "y": [ 17, 17 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 7, 7 ], "y": [ 17, 17 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 3, 3 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 5, 5 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 7, 7 ], "y": [ 15, 15 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 3, 3 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 5, 5 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 7, 7 ], "y": [ 13, 13 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 3, 3 ], "y": [ 11, 11 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 5, 5 ], "y": [ 11, 11 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 7, 7 ], "y": [ 11, 11 ], "chance": 40 }, + { "item": "hospital_incubator", "x": [ 0, 0 ], "y": [ 14, 17 ], "chance": 70 }, + { "item": "lab_torso", "x": [ 0, 0 ], "y": [ 2, 5 ], "chance": 70 }, + { "item": "lab_torso", "x": [ 4, 4 ], "y": [ 2, 5 ], "chance": 70 }, + { "item": "dresser", "x": [ 44, 44 ], "y": [ 2, 2 ], "chance": 70 }, + { "item": "dresser", "x": [ 44, 44 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "dresser", "x": [ 44, 44 ], "y": [ 14, 14 ], "chance": 70 }, + { "item": "dresser", "x": [ 47, 47 ], "y": [ 2, 2 ], "chance": 70 }, + { "item": "dresser", "x": [ 47, 47 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "dresser", "x": [ 47, 47 ], "y": [ 14, 14 ], "chance": 70 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 14, 15 ], "chance": 70 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 2, 3 ], "chance": 70 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 8, 9 ], "chance": 70 }, + { "item": "homebooks", "x": [ 53, 53 ], "y": [ 18, 18 ], "chance": 60 }, + { "item": "homebooks", "x": [ 58, 58 ], "y": [ 18, 18 ], "chance": 60 }, + { "item": "homebooks", "x": [ 53, 53 ], "y": [ 12, 12 ], "chance": 60 }, + { "item": "homebooks", "x": [ 58, 58 ], "y": [ 12, 12 ], "chance": 60 }, + { "item": "homebooks", "x": [ 53, 53 ], "y": [ 6, 6 ], "chance": 60 }, + { "item": "homebooks", "x": [ 58, 58 ], "y": [ 6, 6 ], "chance": 60 }, + { "item": "traveler", "x": [ 48, 48 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "traveler", "x": [ 63, 63 ], "y": [ 6, 6 ], "chance": 70 }, + { "item": "traveler", "x": [ 48, 48 ], "y": [ 12, 12 ], "chance": 70 }, + { "item": "traveler", "x": [ 63, 63 ], "y": [ 12, 12 ], "chance": 70 }, + { "item": "traveler", "x": [ 48, 48 ], "y": [ 18, 18 ], "chance": 70 }, + { "item": "traveler", "x": [ 63, 63 ], "y": [ 18, 18 ], "chance": 70 }, + { "item": "dresser", "x": [ 67, 67 ], "y": [ 2, 2 ], "chance": 70 }, + { "item": "dresser", "x": [ 67, 67 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "dresser", "x": [ 67, 67 ], "y": [ 14, 14 ], "chance": 70 }, + { "item": "dresser", "x": [ 64, 64 ], "y": [ 2, 2 ], "chance": 70 }, + { "item": "dresser", "x": [ 64, 64 ], "y": [ 8, 8 ], "chance": 70 }, + { "item": "dresser", "x": [ 64, 64 ], "y": [ 14, 14 ], "chance": 70 }, + { "item": "bed", "x": [ 69, 70 ], "y": [ 14, 15 ], "chance": 70 }, + { "item": "bed", "x": [ 69, 70 ], "y": [ 2, 3 ], "chance": 70 }, + { "item": "bed", "x": [ 69, 70 ], "y": [ 8, 9 ], "chance": 70 }, + { "item": "dresser", "x": [ 17, 17 ], "y": [ 45, 45 ], "chance": 70 }, + { "item": "dresser", "x": [ 17, 17 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "dresser", "x": [ 17, 17 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "dresser", "x": [ 17, 17 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "bed", "x": [ 17, 18 ], "y": [ 43, 44 ], "chance": 70 }, + { "item": "bed", "x": [ 17, 18 ], "y": [ 35, 36 ], "chance": 70 }, + { "item": "magazines", "x": [ 3, 14 ], "y": [ 31, 32 ], "chance": 60 }, + { "item": "homebooks", "x": [ 46, 47 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "homebooks", "x": [ 46, 47 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "homebooks", "x": [ 24, 25 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "homebooks", "x": [ 24, 25 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "traveler", "x": [ 45, 45 ], "y": [ 45, 45 ], "chance": 70 }, + { "item": "traveler", "x": [ 45, 45 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "traveler", "x": [ 26, 26 ], "y": [ 45, 45 ], "chance": 70 }, + { "item": "traveler", "x": [ 26, 26 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "bed", "x": [ 53, 54 ], "y": [ 35, 36 ], "chance": 70 }, + { "item": "bed", "x": [ 53, 54 ], "y": [ 43, 44 ], "chance": 70 }, + { "item": "dresser", "x": [ 54, 54 ], "y": [ 34, 34 ], "chance": 70 }, + { "item": "dresser", "x": [ 54, 54 ], "y": [ 37, 37 ], "chance": 70 }, + { "item": "dresser", "x": [ 54, 54 ], "y": [ 42, 42 ], "chance": 70 }, + { "item": "dresser", "x": [ 54, 54 ], "y": [ 45, 45 ], "chance": 70 } + ], + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.1 } + ] + }, + "om_terrain": [ + [ "necropolis_d_7", "necropolis_d_8", "necropolis_d_9" ], + [ "necropolis_d_16", "necropolis_d_17", "necropolis_d_18" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "...|~|~|~|~|cScScScS|.| |nhhhn hh|+-|...........|c @|c @|c @|c @", + "...| | |-| [ + |...........|L @|L @|L @|L @", + "...| + | | r|..........||-[-|-[-|-[-|-[-", + "...| |+|+|+|+-|-| v $$$ $$$ c r|.....|-|--|P ", + "...|~|~|~|~|t|t|t| t|.| v $$$ G $$$ c S|.....|S|@@| ", + "...|-|-|-|-|-|-|-|--|.| v c c|.....| [ ", + "......................| |P hnh hnh | r|.....|t|cL| |-[-|-[-", + "|-------------------|.| |-|------------|--|---|.|-|--| b|L @|L @", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| b|c @|c @", + "|r r r|.| |.|r r r|.| [ b|- -|- -", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| bbbP|t S|t S", + "| [ [ |.|-|--| |--|-|---|---", + "| v v |.|S|@@| |@@|S|.......", + "| [ [ |.| [ [ |.......", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|-|t|cL| |Lc|t|---|---", + "|r r r|.| |.|r r r|<|-|--| |--|-|t S|t S", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|>|S|@@| |@@|S|- -|- -", + "|-------------------|.| |.|-------------------|-| [ [ |c @|c @", + "......................| ||......................|t|cL| |Lc|t|L @|L @", + "......................| |----------------------|-|--| |--|-|-[-|-[-", + "......................| ", + "......................| ", + "......................| G ", + "......................| ", + "......................| |----------------------|-|--| |--|-|-[-|-[-", + "......................| ||......................|t|cL| |Lc|t|L @|L @", + "|-------------------|.| |.|-------------------|.| [ [ |c @|c @", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| |@@|S|- -|- -", + "|r r r|.| |.|r r r|.|-|--| |--|-|t S|t S", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| |Lc|t|---|---", + "| [ [ |.| [ [ |.......", + "| v v |.|S|@@| |@@|S|.......", + "| [ [ |.|-|--| |--|-|---|---", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| bbbP|t S|t S", + "|r r r|.| |.|r r r|.| [ b|- -|- -", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| b|c @|c @", + "|-------------------|.| |.|-------------------|.|-|--| b|L @|L @", + "......................| |.......................|t|cL| |-[-|-[-", + ".....................|| |------------------|....| [ ", + ".....................| |....|S|@@| ", + ".....................| G |....|-|--|P ", + ".....................| |.........||-[-|-[-|-[-|-[-", + ".....................|------------------| ||..........|L @|L @|L @|L @", + "........................................| |...........|c @|c @|c @|c @", + "........................................| |...........|- -|- -|- -|- -", + ".......................................|| ||..........|t S|t S|t S|t S", + ".......................................| |..........|---|---|---|---", + ".......................................| 5|.........................." + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "c": { "item": "bedroom", "chance": 15 }, + "r": { "item": "traveler", "chance": 60 } + }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 } + ], + "place_items": [ + { "item": "alcohol", "x": [ 43, 43 ], "y": [ 2, 3 ], "chance": 80 }, + { "item": "alcohol", "x": [ 43, 43 ], "y": [ 6, 6 ], "chance": 80 }, + { "item": "magazines", "x": [ 27, 27 ], "y": [ 0, 0 ], "chance": 70 }, + { "item": "magazines", "x": [ 31, 31 ], "y": [ 0, 0 ], "chance": 70 }, + { "item": "pool_table", "x": [ 29, 31 ], "y": [ 3, 4 ], "chance": 70 }, + { "item": "pool_table", "x": [ 35, 37 ], "y": [ 3, 4 ], "chance": 70 }, + { "item": "traveler", "x": [ 47, 47 ], "y": [ 14, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 47, 47 ], "y": [ 8, 10 ], "chance": 60 }, + { "item": "traveler", "x": [ 38, 38 ], "y": [ 14, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 38, 38 ], "y": [ 8, 10 ], "chance": 60 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "bed", "x": [ 45, 46 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "traveler", "x": [ 44, 44 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 44, 44 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "traveler", "x": [ 44, 44 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "traveler", "x": [ 44, 44 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "traveler", "x": [ 41, 41 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 41, 41 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "traveler", "x": [ 41, 41 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "traveler", "x": [ 41, 41 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "bed", "x": [ 39, 40 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "bed", "x": [ 39, 40 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "bed", "x": [ 39, 40 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "bed", "x": [ 39, 40 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "bed", "x": [ 36, 37 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "bed", "x": [ 36, 37 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "bed", "x": [ 36, 37 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "bed", "x": [ 36, 37 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "traveler", "x": [ 35, 35 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 35, 35 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "traveler", "x": [ 35, 35 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "traveler", "x": [ 35, 35 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "traveler", "x": [ 32, 32 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 32, 32 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "traveler", "x": [ 32, 32 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "traveler", "x": [ 32, 32 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "bed", "x": [ 30, 31 ], "y": [ 16, 16 ], "chance": 60 }, + { "item": "bed", "x": [ 30, 31 ], "y": [ 10, 10 ], "chance": 60 }, + { "item": "bed", "x": [ 30, 31 ], "y": [ 14, 14 ], "chance": 60 }, + { "item": "bed", "x": [ 30, 31 ], "y": [ 8, 8 ], "chance": 60 }, + { "item": "traveler", "x": [ 29, 29 ], "y": [ 14, 16 ], "chance": 60 }, + { "item": "traveler", "x": [ 29, 29 ], "y": [ 8, 10 ], "chance": 60 } + ] + }, + "om_terrain": [ + [ "necropolis_d_19", "necropolis_d_20", "necropolis_d_21" ], + [ "necropolis_d_28", "necropolis_d_29", "necropolis_d_30" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|c @|c @| |c @|c @|c @|c @|c @|c @|........................|| |", + "|L @|L @| |L @|L @|L @|L @|L @|L @|.................|------| ", + "|-[-|-[-|HH-[[-HH|-[-|-[-|-[-|-[-|-[-|-[-||................| ", + " P|--|-|...........| ", + " G |Lc|t|...........| |-------| ", + " [ |...........| |.......| ", + "|-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|...........| |.....|-|-", + "|L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|...........| |.....|@ ", + "|c @| [ [ |c @|c @|c @|b |Lc|t|...........| |.....|@ ", + "|- -|t|cL| |@@|S|- -|- -|- -|b [ |...........| |.....|-| ", + "|t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|...........| |.....|L+ ", + "|---|S|@@| |Lc|t|---|---|---|-|--| |--|-|...........| |.....|-| ", + "....| [ [ |...........|t|cL| |Lc|t|..........|| ||....|L+ ", + "....|t|cL| |@@|S|...........| [ [ |.......|--| |--|.|-| ", + "|---|-|--| |--|-|---|---|---|S|@@| |@@|S|.......|X | |EE|.|@ ", + "|t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|.......|XX[ +EE|.|@ ", + "|- -| [ [ |- -|- -|- -|t|cL| |Lc|t|.......|X | +EE|.|-|-", + "|c @|t|cL| |@@|S|c @|c @|c @| [ [ |.......|--| |--|...|S", + "|L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|..........| |......|-", + "|-[-| G |-[-|-[-|-[-|-|--| |--|-|----------| |--------", + " PP ", + " PPPP G ", + " PPPP ", + " PP ", + "|-[-| G |-[-|-[-|-[-|-|--| |--|-|-------|---|---|---|---|", + "|L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|.......|t S|t S|t S|t S|", + "|c @|t|cL| |@@|S|c @|c @|c @| [ [ |.......|- -|- -|- -|- -|", + "|- -| [ [ |- -|- -|- -|t|cL| |Lc|t|.......|c @|c @|c @|c @|", + "|t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|.......|L @|L @|L @|L @|", + "|---|-|--| |--|-|---|---|---|S|@@| |@@|S|......||-[-|-[-|-[-|-[-|", + "....|t|cL| |@@|S|...........| [ [ |.|-|--| ", + "....| [ [ |...........|t|cL| |Lc|t|.|S|@@| ", + "|---|S|@@| |Lc|t|---|---|---|-|--| |--|-|.| [ ", + "|t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|.|t|cL| |-[-|-[-|", + "|- -|t|cL| |@@|S|- -|- -|- -|b [ |.|-|--| b|L @|L @|", + "|c @| [ [ |c @|c @|c @|b |Lc|t|.|S|@@| b|c @|c @|", + "|L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|.| [ b|- -|- -|", + "|-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|.|t|cL| bbbP|t S|t S|", + " [ |.|-|--| |--|-|---|---|", + " |Lc|t|.|S|@@| |@@|S|........", + " P|--|-|.| [ [ |........", + "|--|-HHH-HH-[[-HH-HHH-|--|-[-|-[-|-[-|-[-||......|t|cL| |Lc|t|---|---|", + "|..|Pbbb bbbP|..|L @|L @|L @|L @|.......|-|--| |--|-|t S|t S|", + "|..|b b|..|c @|c @|c @|c @|.......|S|@@| |@@|S|- -|- -|", + "|..|b c c b|..|- -|- -|- -|- -|.......| [ [ |c @|c @|", + "|..|b cc cc b|..|t S|t S|t S|t S|.......|t|cL| |Lc|t|L @|L @|", + "|--| |--|---|---|---|---|-------|-|--| |--|-|-[-|-[-|", + "|EE| G |EE| " + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate", "b": "t_metal_floor" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "c": { "item": "bedroom", "chance": 15 }, + "r": { "item": "traveler", "chance": 60 } + }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 } + ] + }, + "om_terrain": [ + [ "necropolis_d_22", "necropolis_d_23", "necropolis_d_24" ], + [ "necropolis_d_31", "necropolis_d_32", "necropolis_d_33" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|................................|| ||...........|---|.................", + "|--------------------------------| |-----------|EEE|.................", + " +EEE|.................", + " G +EEE|.................", + " |-----| |-----| |---------| |----------|EEE|.................", + " 5|.....| 5|.....| 5|.........|| ||..........|---|.................", + "=-|-|.|-|-=-|-|.|-|-=-|-|........| |.................................", + " 5 @|.|@ 5 @|.|@ 5 @|........| |.................................", + " @|.|@ @|.|@ @|........| |.....|---|---------------|-----|.", + " |-|.|-| |-|.|-| |-|........| ||...|| | bbb D bbb |L L L|.", + " +L|.|L+ +L|.|L+ +L|........| |---| 5|5 |@ @ @|.", + " |-|.|-| |-|.|-| |-|........| = | |.", + " +L|.|L+ +L|.|L+ +L|........| = G |.", + " |-|.|-| |-|.|-| |-|........| = |@ @ @|.", + " @|.|@ @|.|@ @|........| |---| | |@ @ @|.", + " @|.|@ @|.|@ @|........| ||...|| | bbb |L L L|.", + "+-|-|.|-|-+-|-|.|-|-+-|-|........| |.....|---|-------| |-|-----|.", + " t|.....|S t|.....|S t|..........| |.........|L L L L| |L L L L|.", + "--|.....|---|.....|---|.........|| |.........|@ @ @ @| |@ @ @ @|.", + "--------------------------------| |.........|@ @ @ @| |@ @ @ @|.", + " |.........| |.", + " |.........|@ @ @ @| |@ @ @ @|.", + " |.........|@ @ @ @| |@ @ @ @|.", + " |.........|L L L L| |L L L L|.", + "---|---| |---|---|---|---|---|-|-|.......|-------| |-------|.", + "t S|t S| |t S|t S|t S|t S|t S|t S|.......|L L L L| |L L L L|.", + "- -|- -| |- -|- -|- -|- -|- -|- -|.......|@ @ @ @| |@ @ @ @|.", + "c @|c @| |c @|c @|c @|c @|c @|c @|.......|@ @ @ @| |@ @ @ @|.", + "L @|L @| |L @|L @|L @|L @|L @|L @|.......| |.", + "-[-|-[-|uu-[[-uu|-[-|-[-|-[-|-[-|-[-|-[-||......|@ @ @ @| |@ @ @ @|.", + " |--|-|.|@ @ @ @| |@ @ @ @|.", + " |Lc|t|.|L L L L| |L L L L|.", + " [ |.|-----|-| |-|-----|.", + "-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|.|L L L| |L L L|.", + "L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|.|@ @ @| |@ @ @|.", + "c @| [ [ |c @|c @|c @|b |Lc|t|.|@ @ @| |@ @ @|.", + "- -|t|cL| |@@|S|- -|- -|- -|b [ |.| G |.", + "t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|.|@ @ @| |@ @ @|.", + "---|S|@@| |Lc|t|---|---|---|-|--| |--|-|.|@ @ @| |@ @ @|.", + "...| [ [ |...........|t|cL| |Lc|t|.|L L L| 5 |L L L|.", + "...|t|cL| |@@|S|...........| [ [ |.|-----||--===--||-----|.", + "---|-|--| |--|-|---|---|---|S|@@| |@@|S|........| 5 |........", + "t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|........| |........", + "- -| [ [ |- -|- -|- -|t|cL| |Lc|t|........| |........", + "c @|t|cL| |@@|S|c @|c @|c @| [ [ |......|-| |........", + "L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|......| |........", + "-[-| G |-[-|-[-|-[-|-|--| |--|-|------| |........", + " PP G b|........" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "r": { "item": "traveler", "chance": 60 } + }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.4 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.4 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 39 ], "density": 0.45 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 39 ], "density": 0.45 } + ] + }, + "om_terrain": [ + [ "necropolis_d_25", "necropolis_d_26", "necropolis_d_27" ], + [ "necropolis_d_34", "necropolis_d_35", "necropolis_d_36" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".......................................|-===-|..........................", + ".......................................| 5|..........................", + ".............................|---------| |---------|................", + ".............................| G |................", + "..................|----------| 5 |----------|.....", + "..................| |--------===--------| |.....", + "..................| |///////5/////rrccrr| |.....", + "..................| |---uuuu---|///////////////////|---uuuu---| |.....", + "..................| |rcc//////5|5//////////////////|rcc////ccr| |.....", + "..................| |c/////////=///////////////////=/////////c| |.....", + "..................| v//////////=///////////////////=//////////v |.....", + "..................| v////G/////=///////////////////=/////G////v |.....", + "..................| v//////////=/////////G/////////=//////////v |.....", + "..................| |c/////////=/////,,,,,,,,,/////=/////////c| |.....", + "..................| |rcc/rr/ccr|r////,EEEEEEE,////5|5///rr/ccr| |.....", + "..................| |----------|r////,EEEEEEE,/////|----------| |.....", + "..................| |rcc/rr/ccr|r////,EEEEEEE,/////|rcc/rr/ccr| |.....", + "..................| |c/////////=/////,EEEEEEE,/////=/////////c| |.....", + "..................| v//////////=/////,EEEEEEE,/////=//////////v |.....", + "..................| v////G/////=/////,EEEEEEE,/////=/////G////v |.....", + "..................| v//////////=/////,EEEEEEE,/////=//////////v |.....", + "..................| |c/////////=/////,,,,,,,,,/////=/////////c| |.....", + "..................| |rcc//////5|5////////G////////5|5//////ccr| |.....", + "..................| |---uuuu---|///////////////////|---uuuu---| |.....", + "..................| ||/////////////////|| |.....", + "..................| |||///////////////||| |.....", + "..................|---------| |.|//////////5////|.| |---------|.....", + "............................| |.|-|---=====---|-|.| |...............", + "............................| 5|...| 5 |...| 5|...............", + "............................|-=-|...| |...|-=-|...............", + "............................| 5|...| |...| 5|...............", + "......................|-----| |---| G |---| |---------------", + "......................| ", + "......................| ", + "......................| ", + "|-------------------|.| |--------| |-------------------------------", + "|r@@L L@@r@@L L@@r|.| ||........|[H[|...............................", + "|r r r|.| |.|-------| |-------|---|...|---|---|---|---", + "|r@@L L@@r@@L L@@r|-| |.|c$cc c c c$cc |rrr|...|t S|t S|t S|t S", + "| [ |.|ch c c ch + |...|- -|- -|- -|- -", + "| v |.|c cccc6cc r|rrr|...|c @|c @|c @|c @", + "| [ |.| h r|---|...|L @|L @|L @|L @", + "|r@@L L@@r@@L L@@r|-| |.|c r|+-|......||-[-|-[-|-[-|-[-", + "|r r r|.| |.|ch c r r r r r| t|.|-|--| ", + "|r@@L L@@r@@L L@@r|.| |.|c$cc r r r r r| S|.|S|@@| ", + "|-------------------|.| |.|----------------|--|.| [ ", + "......................| |.......................|t|cL| |-[-|-[-", + "|-------------------|.| |.|-------------------|.|-|--| b|L @|L @" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate", "c": "t_rock_floor" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "c": { "item": "bedroom", "chance": 15 }, + "r": { "item": "tools_tailor", "chance": 60 } + }, + "item": { + "r": [ + { "item": "jumpsuit", "chance": 1 }, + { "item": "jumpsuit", "chance": 2 }, + { "item": "jumpsuit", "chance": 3 }, + { "item": "jumpsuit", "chance": 4 }, + { "item": "pants", "chance": 3 }, + { "item": "coat_lab", "chance": 3 } + ] + }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 25, 46 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 36, 46 ], "y": [ 12, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 60 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_ROBOT", "x": [ 49, 60 ], "y": [ 12, 22 ], "density": 0.07 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 32, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 32, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.25 } + ] + }, + "om_terrain": [ + [ "necropolis_d_37", "necropolis_d_38", "necropolis_d_39" ], + [ "necropolis_d_46", "necropolis_d_47", "necropolis_d_48" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|EE+ +EE+ ", + "|EE+ +EE+ G ", + "|EE| |EE| ", + "|--|P bbbD bbb P|--|----| |---------|-|--| |--|-|-[-|-[-|", + "...|------| |------|.......|u[[uu[[u|.........|t|cL| |Lc|t|L @|L @|", + "..........| |..........|---| |.|----|..| [ [ |c @|c @|", + "..........| |.|--------| |.|EEEE|..|S|@@| |@@|S|- -|- -|", + "..........| |.|PbbbbP |.|EEEE|..|-|--| |--|-|t S|t S|", + "..........| |-| cccc|-|-++-|..|t|cL| |Lc|t|---|---|", + "..........| v c |..| [ [ |........", + "..........| [ cc cc6ccc6ccc |..|S|@@| |@@|S|........", + "..........| [ c |..|-|--| |--|-|---|---|", + "..........| v c G |-|-++-|..|t|cL| bbbP|t S|t S|", + "..........| |-| 6 rr rr rr |.|EEEE|..| [ b|- -|- -|", + "..........| |.|D c rr rr rr |.|EEEE|..|S|@@| b|c @|c @|", + "..........| |-| c rr rr rr |.|----|..|-|--| b|L @|L @|", + "..........| v c rr rr rr |.........|t|cL| |-[-|-[-|", + "..........| [ c |------|..| [ ", + "..........| v 6 |..|S|@@| ", + "..........| |-| c rr rr rr rrrrrr |..|-|--| ", + "..........| |.|ccc cc rr rr rr rrrrrr |--|....||-[-|-[-|-[-|-[-|", + "..........| |.| rr rr rr G | t|.....|L @|L @|L @|L @|", + "..........| |.| rrrrrr rr rr rr rrrrrr + |.....|c @|c @|c @|c @|", + "..........| |.| rrrrrr rr rr rr rrrrrr | S|.....|- -|- -|- -|- -|", + "..........| |.| |--|.....|t S|t S|t S|t S|", + "..........| |.|----------------------------|........||--|---|---|---|", + "..........| |........................................| ", + ".|--------| |--------|...............................| ", + ".| |...............................| ", + ".| G |...............................| |-|-+++|---", + "|| ||.............................|| |.|EEEE|...", + "| |--|-| |-|--| |-----------------------------| |.|EEEE|.|-", + " +EE| v v |EE+ |.|----|.|r", + " +EE|>[ [<|EE+ |........|r", + " |EE| v v |EE| |.|----|.|r", + "-----|--|-| |-|--|----------------------------------| |.|EEEE|.|r", + "..........| |.......................................|| |.|EEEE|.|r", + "|---|---|-| |-|---|---|---|---|---|---|..............| |.|-++-|-|r", + "|t S|t S|P P|t S|t S|t S|t S|t S|t S|..............| |.| |.|r", + "|- -|- -|b b|- -|- -|- -|- -|- -|- -|..............| |.| |.|r", + "|c @|c @|b b|c @|c @|c @|c @|c @|c @|..............| |-| |-|-", + "|L @|L @|P P|L @|L @|L @|L @|L @|L @|..............| | ", + "|-[-|-[-|HH-[[-HH|-[-|-[-|-[-|-[-|-[-|-[-||.............| 5|5 G", + " G |--|-|........| = ", + " |Lc|t|........| = rr ", + " [ |........| = rr ", + "|-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|........| | rr ", + "|L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|........| | cc " + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate", "b": "t_metal_floor" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "c": { "item": "bedroom", "chance": 15 }, + "r": { "item": "traveler", "chance": 60 } + }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 } + ], + "place_items": [ + { "item": "consumer_electronics", "x": [ 39, 44 ], "y": [ 19, 20 ], "chance": 75 }, + { "item": "sports", "x": [ 39, 44 ], "y": [ 22, 23 ], "chance": 75 }, + { "item": "camping", "x": [ 35, 36 ], "y": [ 19, 23 ], "chance": 75 }, + { "item": "consumer_electronics", "x": [ 35, 36 ], "y": [ 13, 16 ], "chance": 75 }, + { "item": "sports", "x": [ 31, 32 ], "y": [ 13, 16 ], "chance": 75 }, + { "item": "allclothes", "x": [ 27, 28 ], "y": [ 19, 23 ], "chance": 75 }, + { "item": "allclothes", "x": [ 31, 32 ], "y": [ 19, 23 ], "chance": 75 }, + { "item": "allclothes", "x": [ 27, 28 ], "y": [ 13, 16 ], "chance": 75 }, + { "item": "kitchen", "x": [ 68, 69 ], "y": [ 44, 46 ], "chance": 50 }, + { "item": "produce", "x": [ 68, 69 ], "y": [ 44, 46 ], "chance": 75 }, + { "item": "cannedfood", "x": [ 71, 71 ], "y": [ 47, 47 ], "chance": 75 } + ] + }, + "om_terrain": [ + [ "necropolis_d_40", "necropolis_d_41", "necropolis_d_42" ], + [ "necropolis_d_49", "necropolis_d_50", "necropolis_d_51" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " PPPP b|........", + " PPPP b|........", + " PP bbbP|........", + "-[-| G |-+-|-+-|-+-|-|--| |--|-|-|--| |------|........", + "L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|S|cL| |...............", + "c @|t|cL| |@@|S|c @|c @|c @| [ [ | [ |...............", + "- -| [ [ |- -|- -|- -|t|cL| |Lc|t|t|@@| |...............", + "t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|-|--| |...............", + "---|-|--| |--|-|---|---|---|S|@@| |@@|S|S|cL| |...............", + "...|t|cL| |@@|S|...........| [ [ | [ |...............", + "...| [ [ |...........|t|cL| |Lc|t|t|@@| |...............", + "---|S|@@| |Lc|t|---|---|---|-|--| |--|-|-|--| |...............", + "t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|S|cL| |...............", + "- -|t|cL| |@@|S|- -|- -|- -|b [ | [ |...............", + "c @| [ [ |c @|c @|c @|b |Lc|t|t|@@| |...............", + "L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|-|--| |...............", + "-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|S|cL| |...............", + " [ | [ |...............", + " |Lc|t|t|@@| |...............", + " |--|-|-|--| |...............", + "-[-|-[-|u[[uu[[u|-[-|-[-|-[-|-[-|-[-|-[-||.........| |...............", + "L @|L @|P P|L @|L @|L @|L @|L @|L @|..........| |...............", + "c @|c @|b b|c @|c @|c @|c @|c @|c @|..........| |...............", + "- -|- -|b b|- -|- -|- -|- -|- -|- -|..........| |...............", + "t S|t S|P P|t S|t S|t S|t S|t S|t S|..........| |...............", + "---|---| |---|---|---|---|---|---|----------| |...............", + " G |...............", + " G |...............", + " |...............", + "-----------------------|+++-|-| |---------------| |...............", + ".......................|EEEE|.| |...............| |...............", + "---------------------|.|EEEE|.| |.|--|--|--|--|.| |.|--|--|--|--|.", + "rrrrrrrrrrrrrrrrrrrrr|.|----|.| |.| ~|@@|@@|@@|.|H[[H|.|@@|@@|@@|~ |.", + " r|........| |.| -| L| L| L|.| |.| L| L| L|- |.", + " rr rr rr rr r|.|----|.| |.| ~|[-|[-|[-|-| |-|[-|[-|[-|~ |.", + " rr rr G rr rr r|.|EEEE|.| |.| -| |- |.", + " rr rr rr rr r|.|EEEE|.| |.| + + |.", + " rr rr rr rr r|.|-++-|.| |.|--| |--|[-|[-| |-[|-[|-[| |--|.", + " rr rr r|.| |.| |.|t + |L@| L| L| |L |L |L | + t|.", + " 5 r|.| |.| |.|--| [ @|@@|@@| |@@|@@|@@| |--|.", + "--------====---------|-| |-| |.|t + |--|--|--| |--|--|--| + t|.", + " rrrrrr 5rrrrrr | |.|--| |L@|@@|@@| |@@|@@|@@| |--|.", + " G 5|5 |.|@L| [ @| L| L| |L |L |L | |L@|.", + " = |.|@ [ |--|[-|[-| |-[|-[|-[| [ @|.", + " rr = |.|--| |--|.", + " cffffc cccScc rr = |.|@L| |L@|.", + " cffffS ccrrcc rr | |.|@ [ |--|[-|[-|[-|-[|-[|-[| [ @|.", + " cc | |.|--| |L@| L| L| L|L |L |L | |--|." + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "r": { "item": "traveler", "chance": 60 } + }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 } + ] + }, + "om_terrain": [ + [ "necropolis_d_43", "necropolis_d_44", "necropolis_d_45" ], + [ "necropolis_d_52", "necropolis_d_53", "necropolis_d_54" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| b|c @|c @", + "|r r r|.| |.|r r r|.| [ b|- -|- -", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| bbbP|t S|t S", + "| [ [ |.|-|--| |--|-|---|---", + "| v v |.|S|@@| |@@|S|.......", + "| [ [ |.| [ [ |.......", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| |Lc|t|---|---", + "|r r r|.| |.|r r r|.|-|--| |--|-|t S|t S", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| |@@|S|- -|- -", + "|-------------------|.| |.|-------------------|.| [ [ |c @|c @", + "......................| ||......................|t|cL| |Lc|t|L @|L @", + "......................| |----------------------|-|--| |--|-|-[-|-[-", + "......................| ", + "......................| G ", + "......................| ", + "......................| ", + "......................| |----------------------|-|--| |--|-|-[-|-[-", + "......................| ||......................|t|cL| |Lc|t|L @|L @", + "|-------------------|.| |.|-------------------|.| [ [ |c @|c @", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| |@@|S|- -|- -", + "|r r r|.| |.|r r r|.|-|--| |--|-|t S|t S", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| |Lc|t|---|---", + "| [ [ |.| [ [ |.......", + "| v v |.|S|@@| |@@|S|.......", + "| [ [ |.|-|--| |--|-|---|---", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.|t|cL| bbbP|t S|t S", + "|r r r|.| |.|r r r|.| [ b|- -|- -", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| b|c @|c @", + "|-------------------|.| |.|-------------------|.|-|--| b|L @|L @", + "......................| |.......................|t|cL| |-[-|-[-", + "|-------------------|.| |.|-------------------|.| [ ", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.|S|@@| ", + "|r r r|.| |.|r r r|.|-|--| ", + "|r@@L L@@r@@L L@@r|-| G |-|r@@L L@@r@@L L@@r|......||-[-|-[-|-[-|-[-", + "| [ [ |.......|L @|L @|L @|L @", + "| v v |.......|c @|c @|c @|c @", + "| [ [ |.......|- -|- -|- -|- -", + "|r@@L L@@r@@L L@@r|-| |-|r@@L L@@r@@L L@@r|.......|t S|t S|t S|t S", + "|r r r|.| |.|r r r|.......|---|---|---|---", + "|r@@L L@@r@@L L@@r|.| |.|r@@L L@@r@@L L@@r|.......................", + "|-------------------|.| |.|-------------------|.......................", + "......................| |.............................................", + "|-------------------|.| |...........................|---|.....|---|...", + "|r@@L L@@r@@L L@@r|.| |...........................|EEE|.....|EEE|...", + "|r r r|.| |...........................|EEE|-----|EEE|...", + "|r@@L L@@r@@L L@@r|-| |.........................|-|-++| |++-|-|.", + "| [ |.........................| |.", + "| v |.................|-------| G |-" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate", "b": "t_metal_floor" }, + "items": { + "@": { "item": "bed", "chance": 60 }, + "L": { "item": "traveler", "chance": 60 }, + "b": { "item": "magazines", "chance": 30 }, + "c": { "item": "bedroom", "chance": 15 }, + "r": { "item": "traveler", "chance": 60 } + }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.25 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.3 } + ] + }, + "om_terrain": [ + [ "necropolis_d_55", "necropolis_d_56", "necropolis_d_57" ], + [ "necropolis_d_64", "necropolis_d_65", "necropolis_d_66" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "|c @| [ [ |c @|c @|c @|b |Lc|t|........| |-| cc ", + "|- -|t|cL| |@@|S|- -|- -|- -|b [ |........| |.|c cc ", + "|t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|........| |.|c cc ", + "|---|S|@@| |Lc|t|---|---|---|-|--| |--|-|........| |.|S cc ", + "....| [ [ |...........|t|cL| |Lc|t|........| |.|c G", + "....|t|cL| |@@|S|...........| [ [ |........| |.|c ", + "|---|-|--| |--|-|---|---|---|S|@@| |@@|S|........| |.|c ", + "|t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|........| |.|ccrcOOOc", + "|- -| [ [ |- -|- -|- -|t|cL| |Lc|t|........| |.|--------", + "|c @|t|cL| |@@|S|c @|c @|c @| [ [ |........| |..........", + "|L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|.......|| |...|------", + "|-[-| G |-[-|-[-|-[-|-|--| |--|-|-------| |.|-| ", + " PP |-| G ", + " PPPP G + h", + " PPPP + hn", + " PP |-| hnn", + "|-[-| G |-[-|-[-|-[-|-|--| |--|-|-------| |.| hnn ", + "|L @|-|--| |--|-|L @|L @|L @|S|@@| |@@|S|.......|| |.| hnn ", + "|c @|t|cL| |@@|S|c @|c @|c @| [ [ |........| |.| hnn ", + "|- -| [ [ |- -|- -|- -|t|cL| |Lc|t|........| |.| hnn ", + "|t S|S|@@| |Lc|t|t S|t S|t S|-|--| |----|........| |.| hnn ", + "|---|-|--| |--|-|---|---|---|S|@@| |@@|S|........| |.| hnn ", + "....|t|cL| |@@|S|...........| [ [ |........| |.| hnn ", + "....| [ [ |...........|t|cL| |Lc|t|........| |.| hnn ", + "|---|S|@@| |Lc|t|---|---|---|-|--| |--|-|........| |.| hnn", + "|t S|-|--| |--|-|t S|t S|t S|Pbbb |@@|S|........| |.| hn", + "|- -|t|cL| |@@|S|- -|- -|- -|b [ |........| |.|| h", + "|c @| [ [ |c @|c @|c @|b |Lc|t|........| |..|| G ", + "|L @|S|@@| |Lc|t|L @|L @|L @|b |--|-|........| |...|| ", + "|-[-|-|--| |--|-|-[-|-[-|-[-| |@@|S|........| |....|| ", + " [ |........| |.....|----", + " |Lc|t|........| |..........", + " G |--|-|........| |----------", + "|-[-|-[-|HH-[[-HH|-[-|-[-|-[-|-[-|-[-|-[-||.............| ", + "|L @|L @| |L @|L @|L @|L @|L @|L @|..............| ", + "|c @|c @| |c @|c @|c @|c @|c @|c @|..............| ", + "|- -|- -| |- -|- -|- -|- -|- -|- -|..............|-----| 5 |-", + "|t S|t S| |t S|t S|t S|t S|t S|t S|....................|--===--|.", + "|---|---|-| |-|---|---|---|---|---|---|.|------------------| 5 |-", + "..........| |...........................|//__////___$$00$$/, V6", + "..........| |..............|------|.....|//__////___6$//$$/, Vk", + "|---------| |..............|rrrrrr|.....|///6//////////////, [ ", + "| |..............| |-----|,,,,,,,,,,,,,,,,,,, V ", + "| G |..............|r = G G |-", + "| |..............|r = V ", + "| |----------|..............| 5|5 |-|779778,,,,,,,,,,,,, [ ", + "| |.........................|rrrrrr| |.|/////8/////////$$/, Vk", + "| |-|.......................|------| |.|rrrrr8///__6///$$/, Vk" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate", "b": "t_metal_floor" }, + "items": { "k": { "item": "office", "chance": 60 } }, + "item": { "n": [ { "item": "water_clean", "chance": 20 } ] }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.35 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.2 } + ] + }, + "om_terrain": [ + [ "necropolis_d_58", "necropolis_d_59", "necropolis_d_60" ], + [ "necropolis_d_67", "necropolis_d_68", "necropolis_d_69" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " cc |-| |.|t + [ @|@@|@@|@@|@@|@@|@@| + t|.", + " ccSccc cffffS OO c|.| |.|--| |--|--|--|--|--|--|--| |--|.", + " crrccc cffffc OO c|.| |.|t + [ @|@@|@@|@@|@@|@@|@@| + t|.", + " cc S|.| |.|--| |L@| L| L| L|L |L |L | |--|.", + " G c|.| |.|@ [ |--|[-|[-|[-|-[|-[|-[| [ @|.", + " c|.| |.|@L| |L@|.", + " c|.| |.|--| |--|.", + "ccOOOcccOOOcccrrrr crcc|.| |.|@ [ |--|[-|[-| |-[|-[|-[| [ @|.", + "-------------------| |-----|.| |.|@L| [ @| L| L| |L |L |L | |L@|.", + "...................|++|.......| |.|--| |L@|@@|@@| |@@|@@|@@| |--|.", + "-------------------| |---|...| |.|t + |--|--|--| |--|--|--| + t|.", + " |-|.| |.|--| [ @|@@|@@| |@@|@@|@@| |--|.", + " G |-| |.|t + |L@| L| L| |L |L |L | + t|.", + "nn hhhhhhhh nnh + |.|--| |--|[-|[-| |-[|-[|-[| |--|.", + "n hnnnnnnnnh nnh + |.| + + |.", + " hnnnnnnnnnnh nnh |-| |.| -| |- |.", + " hnnn nnnh nnh |.| |.| ~|[-|[-|[-|-| |-|[-|[-|[-|~ |.", + " hnn G nnh nnh |.| |.| -| L| L| L|.| |.| L| L| L|- |.", + " hnn nnh nnh |.| |.| ~|@@|@@|@@|.|H[[H|.|@@|@@|@@|~ |.", + " hnn 66 nnh nnh |.| |.|--|--|--|--|.| |.|--|--|--|--|.", + " hnn 66 nnh nnh |.| ||..............| |...............", + " hnn nnh nnh |.| |--------------| |...............", + " hnn G nnh nnh |.| |...............", + " hnnn nnnh nnh |.| |...............", + " hnnn nnnh nnh |.| |...............", + "n hnn nnh nnh |.| |--|-vvv-[[-vvv-|---|...............", + "nn nnh ||.| ||..|c c|...................", + "hnn nnh G ||..| |...|S h h S|...................", + " ||...| |...|c c|...................", + " ||....| |...|c c|...................", + "-----| 5 |---------|.....| |...|S h h S|...................", + ".....|--====--|..............|| ||..|c c|...................", + "-----| 5 |--------------| |--|-vvv-[[-vvv-|--------------|....", + " |....", + " G G |....", + " Pbbbbb bbbbbP |....", + "-------| |-----------| 5 |-------------------------------| |....", + ".......| |...........|--===--|...............................| |....", + "--|....| |.|---------| 5 |---------|....|-|-|-|-|-|-|....| |....", + "k |....| |.| |....|t|t|t|t|t|t|....| |....", + "h |....| |.| |....| | | | | | |....| |....", + " |.|--| |.| G |----|+|+|+|+|+|+|----| |....", + " o|.|EE| |.| ,,,,,,,,,,,,,,,,,,,,, |cScS| |ScSc| |....", + "--|.|EE= |.|b , , , 7 , , , b| | |--|.", + " o|.|EE= |.|b , , , , , , b| | v |.", + " |.|--| |.|b , , ,,,,, , , b| |-|L |-| | [ >|.", + "h |.|EE+ |.|b , , , , b| |.|L b L|L b L|.| | v |.", + "6 |.|EE+ |.|b , , , , b| |.|L b L|L b L|.| | |--|." + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate", "b": "t_metal_floor" }, + "items": { + "L": { "item": "sports", "chance": 60 }, + "b": { "item": "magazines", "chance": 10 }, + "c": { "item": "beauty", "chance": 20 } + }, + "item": { "n": [ { "item": "water_clean", "chance": 20 } ] }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.2 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.3 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 25, 46 ], "density": 0.15 } + ] + }, + "om_terrain": [ + [ "necropolis_d_61", "necropolis_d_62", "necropolis_d_63" ], + [ "necropolis_d_70", "necropolis_d_71", "necropolis_d_72" ] + ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "| [ |..............|--| ", + "|r@@L L@@r@@L L@@r|-| |..............|EE+ ", + "|r r r|.| |..............|EE+ ", + "|r@@L L@@r@@L L@@r|.| |......|--|--|.|EE| |-HHH-HH-| |-HH-HHH-", + "|-------------------|.| |------| | |-|--| |P |[-[| P", + "......................| = V ", + "......................| G = G V r r G r r ", + "......................| = V rrrrr 6 rrrrr ", + "......................|-+-|-+-|--| 5|5 |--|uu| | r r c r r ", + "......................| | |..|--|--|..| v V c ", + "......................| | |...........|< [ V 6 ", + ".............|-|-|-|-|| | ||-|-|-|-|..| v V r r c r r ", + ".............|t|t|t|t|D S|S D|t|t|t|t|..|--| | rrrrr c rrrrr ", + ".............|+|+|+|+| S|S |+|+|+|+|.....|-[[-| r r 6 r r ", + ".............| S|S |.|---| ", + ".............| S|S |.| G ", + ".............|+|+|+|+|D S|S D|+|+|+|+|.| rrr rrr rrr rrr rr", + ".............|t|t|t|t|----|----|t|t|t|t|.| r r r r r", + ".............|-|-|-|-|.........|-|-|-|-|.| r r r r r", + ".........................................| rrr rrr rrr rrr rr", + ".........................................| ", + ".........................................|---|rrrr rrr rrrrr rrr ", + ".............................................|--------------------------", + "........................................................................" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { "r": { "item": "textbooks", "chance": 60 } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 } + ], + "place_items": [ + { "item": "novels", "x": [ 65, 65 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "novels", "x": [ 66, 68 ], "y": [ 12, 12 ], "chance": 75 }, + { "item": "novels", "x": [ 69, 69 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "magazines", "x": [ 53, 53 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "magazines", "x": [ 54, 56 ], "y": [ 12, 12 ], "chance": 75 }, + { "item": "magazines", "x": [ 57, 57 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "homebooks", "x": [ 65, 65 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "homebooks", "x": [ 66, 68 ], "y": [ 12, 12 ], "chance": 75 }, + { "item": "homebooks", "x": [ 69, 69 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "homebooks", "x": [ 53, 53 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "homebooks", "x": [ 54, 56 ], "y": [ 12, 12 ], "chance": 75 }, + { "item": "homebooks", "x": [ 57, 57 ], "y": [ 11, 13 ], "chance": 75 }, + { "item": "textbooks", "x": [ 70, 71 ], "y": [ 16, 16 ], "chance": 75 }, + { "item": "textbooks", "x": [ 71, 71 ], "y": [ 17, 18 ], "chance": 75 }, + { "item": "textbooks", "x": [ 70, 71 ], "y": [ 19, 19 ], "chance": 75 }, + { "item": "manuals", "x": [ 64, 66 ], "y": [ 16, 16 ], "chance": 75 }, + { "item": "manuals", "x": [ 65, 65 ], "y": [ 17, 18 ], "chance": 75 }, + { "item": "manuals", "x": [ 64, 66 ], "y": [ 19, 19 ], "chance": 75 }, + { "item": "manuals", "x": [ 56, 58 ], "y": [ 16, 16 ], "chance": 75 }, + { "item": "manuals", "x": [ 57, 57 ], "y": [ 17, 18 ], "chance": 75 }, + { "item": "manuals", "x": [ 56, 58 ], "y": [ 19, 19 ], "chance": 75 }, + { "item": "textbooks", "x": [ 50, 52 ], "y": [ 16, 16 ], "chance": 75 }, + { "item": "textbooks", "x": [ 51, 51 ], "y": [ 17, 18 ], "chance": 75 }, + { "item": "textbooks", "x": [ 50, 52 ], "y": [ 19, 19 ], "chance": 75 }, + { "item": "textbooks", "x": [ 67, 69 ], "y": [ 21, 21 ], "chance": 75 }, + { "item": "textbooks", "x": [ 59, 63 ], "y": [ 21, 21 ], "chance": 75 }, + { "item": "textbooks", "x": [ 53, 55 ], "y": [ 21, 21 ], "chance": 75 }, + { "item": "textbooks", "x": [ 48, 49 ], "y": [ 21, 21 ], "chance": 75 } + ] + }, + "om_terrain": [ [ "necropolis_d_73", "necropolis_d_74", "necropolis_d_75" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + " |--|...........................| 5|.|--------------------------|-", + " +EE|...........................|-=-|..............................", + " +EE|...........................| 6|..............................", + "| |EE|.|--|--|...................| |..............................", + "| |--|-| | |-------------------| |------------------------------", + "V = ", + "v G = G ", + "V = ", + "| |uu|--| 5| |------------------| 5 |--------------------| 5", + "V v |..|--|--|..................|--===--|....................|--===-", + "V [ <|......................|----| |----|..........|----| 5", + "V v |......................|////, G ,////|----------|////, G ", + "| |--|...................|--|78//,,,,,,,,,//////,6,///////////,,,,,,,", + "|-[[-|......................|rrrr8/////////////////,,,//////////////////", + " |---|..................|////9//,,,,//,,,,////////,,,,,,,,,,////////", + " |..................|r///8//,6%,//,6%,////////,%%//$6$_,//,,,,//", + "r rrr |..................|////9//,22,//,22,////////,%%00$___,//,$6,//", + " r |..................|rrrr8//,11,//,11,////////,,,,,,,,,,//,$$,//", + " r |..................|--|78//,%%,//,%%,////////////////////,$$,//", + "r rrr |.....................|////,,,,//,,,,///|----------|/////,,,,//", + " |.....................|----|///////|----|..........|----|//////", + " rrrr|---|..........................|-------|....................|------", + "-----|..................................................................", + "........................................................................" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate" }, + "items": { "/": { "item": "tools_common", "chance": 2 } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.15 } + ] + }, + "om_terrain": [ [ "necropolis_d_76", "necropolis_d_77", "necropolis_d_78" ] ], + "type": "mapgen", + "weight": 250 + }, + { + "method": "json", + "object": { + "fill_ter": "t_floor", + "rows": [ + "--|.|EE| |.| , , , , [ |.|L b L|L b L|.| [ |....", + "....|--| |.| , , , , [ |.|L b L|L b L|.| [ |....", + ".......| |.|b , , , , b|--|.|L L|.|--| ||...", + "......|| |.|b , , , , b|....|-----------|....| l|...", + "------| |.|b ,,,,,,,,,,,,,,,,,,,,, b|.....................| D|...", + " |.|b , , , , b|....|-----------|....| l|...", + " |.|b , , , , b|--|.|L L|.|--| ||...", + " |.| , , , , [ |.|L b L|L b L|.| [ |....", + " |----------|.| , , , , [ |.|L b L|L b L|.| [ |....", + "-|............|b , , , , b| |.|L b L|L b L|.| |--|....", + " |----|.......|b , , , , b| |.|L b L|L b L|.| |.......", + " ,////|.......|b , , , , b| |-|L L|-| |.......", + ",,//87|--|....|b , , ,,,,, , , b| |.......", + "////8rrrr|....|b , , , 7 , , , b| |.......", + "////9////|....| ,,,,,,,,,,,,,,,,,,,,, |cScS| |ScSc|.......", + "////8///r|....| G |----|+|+|+|+|+|+|----|.......", + "////9////|....| |....| | | | | | |............", + "////8rrrr|....| |....|t|t|t|t|t|t|............", + "////87|--|....|---------------------------|....|-|-|-|-|-|-|............", + "//////|.................................................................", + "/|----|.................................................................", + "-|......................................................................", + "........................................................................", + "........................................................................" + ], + "palettes": [ "necropolis_b3" ], + "terrain": { "2": "t_sewage_pipe", "7": "t_chainfence_h", "X": "t_grate", "b": "t_metal_floor" }, + "items": { "L": { "item": "sports", "chance": 50 }, "l": { "item": "vending_drink", "chance": 70 } }, + "place_monsters": [ + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 1, 22 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 25, 46 ], "y": [ 1, 22 ], "density": 0.15 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 }, + { "monster": "GROUP_NECROPOLIS_VAULT3", "x": [ 49, 70 ], "y": [ 1, 22 ], "density": 0.1 } + ] + }, + "om_terrain": [ [ "necropolis_d_79", "necropolis_d_80", "necropolis_d_81" ] ], + "type": "mapgen", + "weight": 250 + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_a.json b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_a.json new file mode 100644 index 000000000..303b01e51 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_a.json @@ -0,0 +1,130 @@ +[ + { + "type": "palette", + "id": "necropolis_a", + "furniture": { + ")": "f_wreckage", + "?": "f_sofa", + "@": "f_bed", + "1": "f_generator_broken", + "6": "f_console_broken", + "B": "f_bathtub", + "C": "f_region_weed", + "D": "f_trashcan", + "F": "f_arcade_machine", + "K": "f_dryer", + "L": "f_locker", + "O": "f_oven", + "P": "f_indoor_plant", + "S": "f_sink", + "U": "f_statue", + "W": "f_washer", + "X": "f_region_flower", + "Y": "f_dryer", + "Z": "f_crate_o", + "]": "f_ash", + "b": "f_bench", + "c": "f_counter", + "d": "f_dresser", + "f": "f_fridge", + "h": "f_chair", + "j": "f_washer", + "k": "f_desk", + "l": "f_vending_c", + "n": "f_table", + "o": "f_bookcase", + "p": "f_pool_table", + "r": "f_rack", + "x": "f_region_flower_decorative", + "z": "f_crate_c", + "{": "f_rubble", + "t": "f_toilet", + "u": "f_barricade_road" + }, + "terrain": { + "!": "t_bars", + "#": "t_region_shrub", + "&": "t_sidewalk", + ")": "t_floor", + "*": "t_door_bar_locked", + "+": "t_door_c", + ",": "t_pavement_y", + "-": "t_wall", + ".": "t_region_groundcover_urban", + "1": "t_thconc_floor", + "2": "t_sewage_pipe", + "3": "t_recycler", + "4": "t_water_pump", + "5": "t_slide", + "6": "t_thconc_floor", + "7": "t_chainfence_h", + "8": "t_chainfence_v", + "9": "t_chaingate_l", + ":": "t_door_locked_interior", + ";": "t_door_locked", + "<": "t_stairs_down", + "=": "t_door_metal_locked", + ">": "t_stairs_down", + "?": "t_floor", + "@": "t_floor", + "A": "t_railing_h", + "B": "t_floor", + "C": "t_region_groundcover_urban", + "D": "t_sidewalk", + "E": "t_elevator", + "F": "t_floor", + "G": "t_wall_metal", + "H": "t_wall_glass", + "I": "t_column", + "J": "t_monkey_bars", + "K": "t_floor", + "L": "t_floor", + "M": "t_region_groundcover_barren", + "N": "t_sandbox", + "O": "t_floor", + "P": "t_floor", + "Q": "t_fence_h", + "R": "t_hole", + "S": "t_floor", + "T": "t_region_tree", + "V": "t_wall_glass", + "W": "t_floor", + "X": "t_region_groundcover_urban", + "Y": "t_floor", + "Z": "t_sidewalk", + "[": "t_door_glass_c", + "]": "t_region_groundcover_barren", + "_": "t_pavement", + "a": "t_railing_v", + "b": "t_region_groundcover_barren", + "c": "t_floor", + "d": "t_floor", + "e": "t_gates_mech_control", + "f": "t_floor", + "g": "t_wall_metal", + "h": "t_floor", + "i": "t_window_stained_green", + "j": "t_floor", + "k": "t_floor", + "l": "t_sidewalk", + "m": "t_dirtmound", + "n": "t_floor", + "o": "t_floor", + "p": "t_floor", + "q": "t_fence_v", + "r": "t_floor", + "s": "t_sidewalk", + "t": "t_floor", + "u": "t_pavement", + "v": "t_window_domestic", + "w": "t_window", + "x": "t_region_groundcover_urban", + "y": "t_window_boarded", + "z": "t_sidewalk", + "{": "t_floor", + "|": "t_wall", + "}": "t_manhole_cover", + "U": "t_sidewalk" + } + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_b1.json b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_b1.json new file mode 100644 index 000000000..fb92e3738 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_b1.json @@ -0,0 +1,85 @@ +[ + { + "type": "palette", + "id": "necropolis_b1", + "furniture": { + ")": "f_wreckage", + "?": "f_sofa", + "@": "f_bed", + "6": "f_console_broken", + "D": "f_trashcan", + "L": "f_locker", + "S": "f_sink", + "Z": "f_crate_o", + "]": "f_ash", + "c": "f_counter", + "d": "f_dresser", + "f": "f_fridge", + "h": "f_chair", + "k": "f_desk", + "n": "f_table", + "o": "f_bookcase", + "r": "f_rack", + "t": "f_toilet", + "z": "f_crate_c", + "{": "f_rubble" + }, + "terrain": { + " ": "t_dirt", + "!": "t_bars", + "#": "t_ladder_up", + ")": "t_floor", + "*": "t_door_bar_locked", + "+": "t_door_metal_c", + ",": "t_pavement_y", + "-": "t_wall", + ".": "t_soil", + "2": "t_sewage_pipe", + "3": "t_sewage", + "4": "t_water_pump", + "5": "t_water_sh", + "7": "t_chainfence", + "8": "t_chainfence", + "9": "t_chaingate_l", + ";": "t_metal_floor", + "<": "t_stairs_up", + "=": "t_door_metal_locked", + ">": "t_stairs_down", + "?": "t_floor", + "@": "t_floor", + "A": "t_railing_h", + "B": "t_floor", + "D": "t_floor", + "E": "t_elevator", + "G": "t_wall_metal", + "H": "t_wall_glass", + "I": "t_column", + "L": "t_floor", + "R": "t_hole", + "S": "t_floor", + "U": "t_floor", + "V": "t_wall_glass", + "X": "t_grate", + "Z": "t_floor", + "a": "t_railing_v", + "c": "t_floor", + "d": "t_floor", + "e": "t_gates_mech_control", + "f": "t_floor", + "g": "t_wall_metal", + "h": "t_floor", + "k": "t_floor", + "n": "t_floor", + "o": "t_floor", + "r": "t_floor", + "s": "t_sidewalk", + "t": "t_floor", + "x": "t_bridge", + "z": "t_floor", + "{": "t_floor", + "|": "t_wall", + "}": "t_manhole_cover", + "b": "t_utility_light" + } + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_b2.json b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_b2.json new file mode 100644 index 000000000..b00668ee6 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_b2.json @@ -0,0 +1,121 @@ +[ + { + "type": "palette", + "id": "necropolis_b2", + "furniture": { + "?": "f_sofa", + "@": "f_bed", + "$": "f_machinery_light", + "%": "f_machinery_heavy", + "(": "f_machinery_old", + "1": "f_generator_broken", + "_": "f_machinery_electronic", + "6": "f_console_broken", + "B": "f_bathtub", + "C": [ "f_treadmill", "f_treadmill_mechanical" ], + "D": "f_trashcan", + "J": [ "f_ergometer", "f_ergometer_mechanical" ], + "L": "f_locker", + "N": "f_robotic_arm", + "O": "f_oven", + "P": "f_indoor_plant", + "S": "f_sink", + "T": "f_toilet", + "U": "f_statue", + "Z": "f_crate_o", + "b": "f_bench", + "c": "f_counter", + "d": "f_dresser", + "f": "f_fridge", + "h": "f_chair", + "j": "f_exercise", + "k": "f_desk", + "l": "f_vending_c", + "n": "f_table", + "o": "f_bookcase", + "r": "f_rack", + "t": "f_toilet", + "z": "f_crate_c" + }, + "terrain": { + " ": "t_metal_floor", + "!": "t_bars", + "#": "t_ladder_up", + "$": "t_metal_floor", + "%": "t_metal_floor", + "(": "t_metal_floor", + "*": "t_door_bar_locked", + "+": "t_door_metal_c", + ",": "t_pavement_y", + "-": "t_wall_metal", + ".": "t_rock", + "/": "t_rock_floor", + "0": "t_conveyor", + "1": "t_metal_floor", + "2": "t_sewage_pipe", + "3": "t_sewage", + "4": "t_water_pump", + "5": "t_gates_control_metal", + "6": "t_metal_floor", + "7": "t_chainfence", + "8": "t_chainfence", + "9": "t_chaingate_l", + ":": "t_door_locked", + ";": "t_metal_floor", + "<": "t_stairs_up", + "=": "t_door_metal_locked", + ">": "t_stairs_down", + "?": "t_metal_floor", + "@": "t_metal_floor", + "A": "t_railing_h", + "B": "t_metal_floor", + "C": "t_metal_floor", + "D": "t_metal_floor", + "E": "t_elevator", + "F": "t_ladder_down", + "G": "t_utility_light", + "H": "t_wall_glass", + "I": "t_column", + "J": "t_metal_floor", + "K": "t_ladder_up", + "L": "t_metal_floor", + "M": "t_dirtfloor", + "N": "t_metal_floor", + "O": "t_metal_floor", + "P": "t_metal_floor", + "R": "t_radio_tower", + "S": "t_metal_floor", + "U": "t_metal_floor", + "V": "t_wall_glass", + "X": "t_grate", + "Z": "t_metal_floor", + "[": "t_door_glass_c", + "^": "t_underbrush", + "_": "t_metal_floor", + "a": "t_railing", + "b": "t_dirtfloor", + "c": "t_metal_floor", + "d": "t_metal_floor", + "e": "t_gates_mech_control", + "f": "t_metal_floor", + "h": "t_metal_floor", + "i": "t_vat", + "j": "t_metal_floor", + "k": "t_metal_floor", + "l": "t_metal_floor", + "m": "t_dirtmound", + "n": "t_metal_floor", + "o": "t_metal_floor", + "r": "t_metal_floor", + "s": "t_sidewalk", + "t": "t_metal_floor", + "u": "t_reinforced_glass", + "v": "t_reinforced_glass", + "x": "t_bridge", + "z": "t_metal_floor", + "|": "t_wall_metal", + "}": "t_manhole_cover", + "&": "t_gas_pump" + } + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_b3.json b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_b3.json new file mode 100644 index 000000000..2d1d612ed --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/mapgen_palettes/necropolis_b3.json @@ -0,0 +1,122 @@ +[ + { + "type": "palette", + "id": "necropolis_b3", + "furniture": { + "?": "f_sofa", + "@": "f_bed", + "$": "f_machinery_light", + "%": "f_machinery_heavy", + "(": "f_machinery_old", + "1": "f_generator_broken", + "_": "f_machinery_electronic", + "6": "f_console_broken", + "B": "f_bathtub", + "C": [ "f_treadmill", "f_treadmill_mechanical" ], + "D": "f_trashcan", + "J": [ "f_ergometer", "f_ergometer_mechanical" ], + "L": "f_locker", + "N": "f_robotic_arm", + "O": "f_oven", + "P": "f_indoor_plant", + "S": "f_sink", + "U": "f_statue", + "Z": "f_crate_o", + "b": "f_bench", + "c": "f_counter", + "d": "f_dresser", + "f": "f_fridge", + "h": "f_chair", + "j": "f_exercise", + "k": "f_desk", + "l": "f_vending_c", + "n": "f_table", + "o": "f_bookcase", + "r": "f_rack", + "t": "f_toilet", + "z": "f_crate_c", + "~": "f_shower", + "X": "f_rubble" + }, + "terrain": { + " ": "t_metal_floor", + "!": "t_bars", + "#": "t_ladder_up", + "$": "t_metal_floor", + "%": "t_metal_floor", + "(": "t_metal_floor", + "*": "t_door_bar_locked", + "+": "t_door_metal_c", + ",": "t_pavement_y", + "-": "t_wall_metal", + ".": "t_rock", + "/": "t_rock_floor", + "0": "t_conveyor", + "1": "t_metal_floor", + "2": "t_potential_trans", + "3": "t_sewage", + "4": "t_water_pump", + "5": "t_gates_control_metal", + "6": "t_metal_floor", + "7": "t_backboard", + "8": "t_chainfence", + "9": "t_chaingate_l", + ":": "t_door_locked", + ";": "t_metal_floor", + "<": "t_stairs_up", + "=": "t_door_metal_locked", + ">": "t_stairs_down", + "?": "t_metal_floor", + "@": "t_metal_floor", + "A": "t_railing_h", + "B": "t_metal_floor", + "C": "t_metal_floor", + "D": "t_metal_floor", + "E": "t_elevator", + "F": "t_ladder_down", + "G": "t_utility_light", + "H": "t_wall_glass", + "I": "t_column", + "J": "t_metal_floor", + "K": "t_ladder_up", + "L": "t_metal_floor", + "M": "t_dirtfloor", + "N": "t_metal_floor", + "O": "t_metal_floor", + "P": "t_metal_floor", + "R": "t_hole", + "S": "t_metal_floor", + "U": "t_metal_floor", + "V": "t_wall_glass", + "X": "t_metal_floor", + "Z": "t_metal_floor", + "[": "t_door_glass_c", + "^": "t_underbrush", + "_": "t_metal_floor", + "a": "t_railing_v", + "b": "t_dirtfloor", + "c": "t_metal_floor", + "d": "t_metal_floor", + "e": "t_gates_mech_control", + "f": "t_metal_floor", + "h": "t_metal_floor", + "i": "t_vat", + "j": "t_metal_floor", + "k": "t_metal_floor", + "l": "t_metal_floor", + "m": "t_dirtmound", + "n": "t_metal_floor", + "o": "t_metal_floor", + "r": "t_metal_floor", + "s": "t_sidewalk", + "t": "t_metal_floor", + "u": "t_reinforced_glass", + "v": "t_reinforced_glass", + "x": "t_bridge", + "z": "t_metal_floor", + "|": "t_wall_metal", + "}": "t_manhole_cover", + "~": "t_metal_floor" + } + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/misc.json b/data/Mainline_mods/Mods/No_Hope/necropolis/misc.json new file mode 100644 index 000000000..526f0c0e4 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/misc.json @@ -0,0 +1,40 @@ +[ + { + "type": "GENERIC", + "id": "necropolis_leaflet", + "category": "books", + "symbol": ",", + "color": "white", + "name": { "str": "vault leaflet" }, + "snippet_category": "necropolis_intro", + "description": "A folded glossy handout that appears to be an introduction to living in a massive underground complex.", + "looks_like": "flyer", + "price": 0, + "price_postapoc": 0, + "material": [ "paper" ], + "weight": "1 g", + "volume": "1 ml" + }, + { + "type": "snippet", + "category": "necropolis_intro", + "text": [ + { + "id": "necropolis_intro_1", + "text": "WELCOME HOME! Your decision to join our family will lead you to become part of the next generation of job creators. With us you will already have a foot in the door when it is time to rebuild the nation!" + }, + { + "id": "necropolis_intro_2", + "text": "NEED A NEW JOB? Now that you have secured a comfortable home, try looking into one of the many promising career opportunities that have positions open. Openings such as GEOLOGICAL ENGINEERING ASSISTANT or FACILITY TECHNICIAN offer limitless growth potential! Please contact your employment adviser if you have any questions." + }, + { + "id": "necropolis_intro_3", + "text": "GOOD WITH YOUR HANDS? Engineering always needs another hand keeping our home in good working order! As an incentive, everyone working on level 3 will receive additional hazardous pay and time off. Please go to the engineering office on level 3 if you are interested." + }, + { + "id": "necropolis_intro_4", + "text": "WANT TO CONTINUE YOUR EDUCATION? Our educational facilities are top notch and offer courses for individuals at all age groups. Many new careers are opening up to those who are willing to learn a new craft. Our library and research labs will keep even the hungriest minds fed!" + } + ] + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/npcs/NPC_Old_Guard_Captain.json b/data/Mainline_mods/Mods/No_Hope/necropolis/npcs/NPC_Old_Guard_Captain.json new file mode 100644 index 000000000..8f2b23298 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/npcs/NPC_Old_Guard_Captain.json @@ -0,0 +1,113 @@ +[ + { + "type": "npc", + "id": "old_guard_necropolis_cpt", + "//": "Commander in Necropolis", + "name_suffix": "CPT", + "class": "NC_SOLDIER", + "attitude": 0, + "mission": 7, + "chat": "TALK_OLD_GUARD_NEC_CPT", + "faction": "old_guard", + "mission_offered": "MISSION_OLD_GUARD_NEC_1" + }, + { + "type": "talk_topic", + "id": "TALK_OLD_GUARD_NEC_CPT", + "dynamic_line": { + "u_is_wearing": "badge_marshal", + "yes": "Marshal, I hope you're here to assist us.", + "no": { + "u_male": "Sir, I don't know how the hell you got down here but if you have any sense you'll get out while you can.", + "no": "Ma'am, I don't know how the hell you got down here but if you have any sense you'll get out while you can." + } + }, + "responses": [ + { + "text": "What are you doing down here?", + "topic": "TALK_OLD_GUARD_NEC_CPT_GOAL", + "condition": { "u_is_wearing": "badge_marshal" } + }, + { + "text": "Can you tell me about this facility?", + "topic": "TALK_OLD_GUARD_NEC_CPT_VAULT", + "condition": { "u_is_wearing": "badge_marshal" } + }, + { + "text": "What do you need done?", + "topic": "TALK_MISSION_LIST", + "condition": { "u_is_wearing": "badge_marshal" } + }, + { + "text": "About the mission…", + "topic": "TALK_MISSION_INQUIRE", + "condition": { "and": [ "has_assigned_mission", { "u_is_wearing": "badge_marshal" } ] } + }, + { + "text": "About one of those missions…", + "topic": "TALK_MISSION_LIST_ASSIGNED", + "condition": { "and": [ "has_many_assigned_missions", { "u_is_wearing": "badge_marshal" } ] } + }, + { "text": "I've got to go…", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_OLD_GUARD_NEC_CPT_GOAL", + "dynamic_line": "I'm leading what remains of my company on a mission to re-secure this facility. We entered the complex with two dozen men and immediately went about securing this control room. From here I dispatched my men to secure vital systems located on this floor and the floors below this one. If we are successful, this facility can be cleared and used as a permanent base of operations in the region. Most importantly it will allow us to redirect refugee traffic away from overcrowded outposts and free up more of our forces to conduct recovery operations.", + "responses": [ { "text": "Seems like a decent plan…", "topic": "TALK_NONE" } ] + }, + { + "type": "talk_topic", + "id": "TALK_OLD_GUARD_NEC_CPT_VAULT", + "dynamic_line": "This facility was constructed to provide a safe haven in the event of a global conflict. The vault can support several thousand people for a few years if all systems are operational and sufficient notification is given. Unfortunately, the power system was damaged or sabotaged at some point and released a single extremely lethal burst of radiation. The catastrophic event lasted for several minutes and resulted in the deaths of most people located on the 2nd and lower floors. Those working on this floor were able to seal the access ways to the lower floors before succumbing to radiation sickness. The only other thing the logs tell us is that all water pressure was diverted to the lower levels.", + "responses": [ { "text": "Whatever they did it must have worked since we are still alive…", "topic": "TALK_NONE" } ] + }, + { + "id": "MISSION_OLD_GUARD_NEC_1", + "type": "mission_definition", + "name": { "str": "Locate Commo Team" }, + "goal": "MGOAL_FIND_ITEM", + "difficulty": 2, + "value": 250000, + "item": "necropolis_freq", + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_OLD_GUARD_NEC_2", + "dialogue": { + "describe": "We need help…", + "offer": "My communications team went to secure the radio control room after we breached the facility. I haven't heard from them since, I need you to locate them. Their first objective was to record all active channels that were transmitting information on other survivors or facilities. Find them and return the frequency list to me. I'm sure they could probably use your help also.", + "accepted": "Good luck, the communications room shouldn't be far from here.", + "rejected": "I don't know why you would bother wasting your time down here if you can't handle a few small tasks…", + "advice": "We were briefed that the communications array was on this level.", + "inquire": "How is the search going?", + "success": "Thanks, let me know when you need another tasking.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "MISSION_OLD_GUARD_NEC_2", + "type": "mission_definition", + "name": { "str": "Cull Nightmares" }, + "goal": "MGOAL_KILL_MONSTER_TYPE", + "difficulty": 5, + "value": 250000, + "monster_type": "mon_charred_nightmare", + "start": { + "assign_mission_target": { "om_terrain": "necropolis_c_44", "om_special": "Necropolis", "z": -2, "search_range": 240 } + }, + "monster_kill_goal": 20, + "origins": [ "ORIGIN_SECONDARY" ], + "dialogue": { + "describe": "We need help…", + "offer": "Your assistance is greatly appreciated, we need to clear out the more ruthless monsters that are wandering up from the lower levels. If you could cull twenty or so of what we refer to as 'nightmares' my men would be much safer. If you've cleared out most of this floor then the lower levels should be your next target.", + "accepted": "Good luck, finding a clear passage to the second level may be tricky.", + "rejected": "I don't know why you would bother wasting your time down here if you can't handle a few small tasks…", + "advice": "These creatures can swing their appendages surprisingly far.", + "inquire": "How is the hunt going?", + "success": "Thanks, let me know when you need another tasking.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/npcs/NPC_Old_Guard_Commo.json b/data/Mainline_mods/Mods/No_Hope/necropolis/npcs/NPC_Old_Guard_Commo.json new file mode 100644 index 000000000..55648a2e2 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/npcs/NPC_Old_Guard_Commo.json @@ -0,0 +1,168 @@ +[ + { + "type": "npc", + "id": "old_guard_necropolis_commo", + "//": "In charge of outside communications in Necropolis", + "name_suffix": "SFC", + "class": "NC_SOLDIER", + "attitude": 0, + "mission": 7, + "chat": "TALK_OLD_GUARD_NEC_COMMO", + "faction": "old_guard", + "mission_offered": "MISSION_OLD_GUARD_NEC_COMMO_1" + }, + { + "type": "talk_topic", + "id": "TALK_OLD_GUARD_NEC_COMMO", + "dynamic_line": { + "u_is_wearing": "badge_marshal", + "yes": "Marshal, I'm rather surprised to see you here.", + "no": { + "u_male": true, + "yes": "Sir you are not authorized to be here… you should leave.", + "no": "Ma'am you are not authorized to be here… you should leave." + } + }, + "responses": [ + { + "text": "[MISSION] The captain sent me to get a frequency list from you.", + "topic": "TALK_OLD_GUARD_NEC_COMMO_FREQ", + "condition": { + "and": [ + { "u_is_wearing": "badge_marshal" }, + { "u_has_mission": "MISSION_OLD_GUARD_NEC_1" }, + { "not": { "u_has_effect": "has_og_comm_freq" } } + ] + } + }, + { + "text": "What are you doing here?", + "topic": "TALK_OLD_GUARD_NEC_COMMO_GOAL", + "condition": { "u_is_wearing": "badge_marshal" } + }, + { + "text": "Do you need any help?", + "topic": "TALK_MISSION_LIST", + "condition": { "and": [ { "u_has_effect": "has_og_comm_freq" }, { "u_is_wearing": "badge_marshal" } ] } + }, + { + "text": "About the mission…", + "topic": "TALK_MISSION_INQUIRE", + "condition": { "and": [ "has_assigned_mission", { "u_is_wearing": "badge_marshal" } ] } + }, + { + "text": "About one of those missions…", + "topic": "TALK_MISSION_LIST_ASSIGNED", + "condition": { "and": [ "has_many_assigned_missions", { "u_is_wearing": "badge_marshal" } ] } + }, + { "text": "I should be going", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_OLD_GUARD_NEC_COMMO_GOAL", + "dynamic_line": "We are securing the external communications array for this facility. I'm rather restricted in what I can release… go find my commander if you have any questions.", + "responses": [ { "text": "I'll try and find your commander then…", "topic": "TALK_NONE" } ] + }, + { + "type": "talk_topic", + "id": "TALK_OLD_GUARD_NEC_COMMO_FREQ", + "dynamic_line": "I was expecting the captain to send a runner. Here is the list you are looking for. What we can identify from here are simply the frequencies that have traffic on them. Many of the transmissions are indecipherable without repairing or replacing the equipment here. When the facility was being overrun, standard procedure was to destroy encryption hardware to protect federal secrets and maintain the integrity of the comms network. We are hoping a few plain text messages can get picked up though.", + "responses": [ + { + "text": "Thanks.", + "topic": "TALK_NONE", + "effect": [ { "u_spawn_item": "necropolis_freq" }, { "u_add_effect": "has_og_comm_freq", "duration": "PERMANENT" } ] + } + ] + }, + { + "id": "MISSION_OLD_GUARD_NEC_COMMO_1", + "type": "mission_definition", + "name": { "str": "Fabricate Repeater Mod" }, + "goal": "MGOAL_FIND_ITEM", + "difficulty": 2, + "value": 250000, + "item": "radio_repeater_mod", + "start": { + "effect": { "u_spawn_item": "repeater_mod_guide" }, + "assign_mission_target": { "om_terrain": "necropolis_c_23", "om_special": "Necropolis", "reveal_radius": 3, "z": -2 } + }, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_OLD_GUARD_NEC_COMMO_2", + "dialogue": { + "describe": "We need help…", + "offer": "My chief responsibility is to monitor radio traffic and locate potential targets to secure or rescue. The majority of radio repeaters are down and those that are working have only emergency power. If you have a basic understanding of electronics you should be able to fabricate the 'radio repeater mod' found in these plans. When this mod is attached to a radio station's main terminal, all short range radio traffic on emergency channels is boosted so we can pick it up at much longer ranges. I really need you make me one.", + "accepted": "Thanks, I know the labs on the other side of the complex have electronic parts sitting around.", + "rejected": "I don't know why you would bother wasting your time down here if you can't handle a few small tasks…", + "advice": "I'm sure the motorpool has a truck battery you could salvage.", + "inquire": "Have you had any luck fabricating it?", + "success": "Thanks, I'll see to installing this one. It will be some time but I could use someone to position these around the region.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "MISSION_OLD_GUARD_NEC_COMMO_2", + "type": "mission_definition", + "name": { "str": "Disable External Power" }, + "goal": "MGOAL_COMPUTER_TOGGLE", + "difficulty": 2, + "value": 150000, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_OLD_GUARD_NEC_COMMO_3", + "dialogue": { + "describe": "We need help…", + "offer": "I guess I could use your skills once again. There are small transmitters located in the nearby evacuation shelters; if we don't separate them from the power grid their power systems will rapidly deteriorate over the next few weeks. The task is rather simple but the shelters offer us a place to redirect refugees until this vault can be secured.", + "accepted": "Thanks, I should be ready for you to install the radio repeater mods by the time you get back.", + "rejected": "I don't know why you would bother wasting your time down here if you can't handle a few small tasks…", + "advice": "Try searching on the outskirts of towns.", + "inquire": "Have you had any luck severing the connection?", + "success": "We are good to go! The last of the gear is powering up now.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "MISSION_OLD_GUARD_NEC_COMMO_3", + "type": "mission_definition", + "name": { "str": "Install Repeater Mod" }, + "goal": "MGOAL_COMPUTER_TOGGLE", + "difficulty": 2, + "value": 300000, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_OLD_GUARD_NEC_COMMO_4", + "dialogue": { + "describe": "We need help…", + "offer": "Most of my essential gear has been brought back online so it is time for you to install your first radio repeater mod. Head topside and locate the nearest radio station. Install the mod on the backup terminal and return to me so that I can verify that everything was successful. Radio towers must unfortunately be ignored for now, without a dedicated emergency power system they won't be useful for some time.", + "accepted": "I'll be standing by down here once you are done.", + "rejected": "I don't know why you would bother wasting your time down here if you can't handle a few small tasks…", + "advice": "If you could make some sort of directional antenna, it might help locating the radio stations.", + "inquire": "Have you had any luck finding a radio station?", + "success": "That's one down.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "MISSION_OLD_GUARD_NEC_COMMO_4", + "type": "mission_definition", + "name": { "str": "Install Repeater Mod" }, + "goal": "MGOAL_COMPUTER_TOGGLE", + "difficulty": 2, + "value": 350000, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_OLD_GUARD_NEC_COMMO_4", + "dialogue": { + "describe": "We need help…", + "offer": "I could always use you to put another repeater mod up. I don't have to remind you but every one that goes up extends our response area just a little bit more. With enough of them we'll be able to maintain communication with anyone in the region.", + "accepted": "I'll be standing by.", + "rejected": "I don't know why you would bother wasting your time down here if you can't handle a few small tasks…", + "advice": "Getting a working vehicle is going to become important as the distance you have to travel increases.", + "inquire": "Have you had any luck finding a radio station?", + "success": "I'll try and update the captain with any signals that I need investigated.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/npcs/NPC_Old_Guard_Soldier.json b/data/Mainline_mods/Mods/No_Hope/necropolis/npcs/NPC_Old_Guard_Soldier.json new file mode 100644 index 000000000..b22d2fa9a --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/npcs/NPC_Old_Guard_Soldier.json @@ -0,0 +1,37 @@ +[ + { + "type": "npc", + "id": "old_guard_soldier", + "//": "Generic guard for the old guard.", + "name_suffix": "Soldier", + "class": "NC_SOLDIER", + "attitude": 0, + "mission": 8, + "chat": "TALK_OLD_GUARD_SOLDIER", + "faction": "old_guard" + }, + { + "type": "talk_topic", + "id": "TALK_OLD_GUARD_SOLDIER", + "dynamic_line": { + "u_is_wearing": "badge_marshal", + "yes": [ + "Hello, marshal.", + "Marshal, I'm afraid I can't talk now.", + "I'm not in charge here, marshal.", + "I'm supposed to direct all questions to my leadership, marshal." + ], + "no": [ + "Hey, citizen… I'm not sure you belong here.", + "You should mind your own business, nothing to see here.", + "If you need something you'll need to talk to someone else.", + { + "u_male": true, + "yes": [ "Sir.", "Dude, if you can hold your own you should look into enlisting." ], + "no": [ "Ma'am", "Hey miss, don't you think it would be safer if you stuck with me?" ] + } + ] + }, + "responses": [ { "text": "Don't mind me…", "topic": "TALK_DONE" } ] + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/overmap_special.json b/data/Mainline_mods/Mods/No_Hope/necropolis/overmap_special.json new file mode 100644 index 000000000..76e946395 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/overmap_special.json @@ -0,0 +1,341 @@ +[ + { + "type": "overmap_special", + "id": "Necropolis", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "necropolis_a_1_north" }, + { "point": [ 1, 0, 0 ], "overmap": "necropolis_a_2_north" }, + { "point": [ 2, 0, 0 ], "overmap": "necropolis_a_3_north" }, + { "point": [ 3, 0, 0 ], "overmap": "necropolis_a_4_north" }, + { "point": [ 4, 0, 0 ], "overmap": "necropolis_a_5_north" }, + { "point": [ 5, 0, 0 ], "overmap": "necropolis_a_6_north" }, + { "point": [ 6, 0, 0 ], "overmap": "necropolis_a_7_north" }, + { "point": [ 7, 0, 0 ], "overmap": "necropolis_a_8_north" }, + { "point": [ 8, 0, 0 ], "overmap": "necropolis_a_9_north" }, + { "point": [ 0, 1, 0 ], "overmap": "necropolis_a_10_north" }, + { "point": [ 1, 1, 0 ], "overmap": "necropolis_a_11_north" }, + { "point": [ 2, 1, 0 ], "overmap": "necropolis_a_12_north" }, + { "point": [ 3, 1, 0 ], "overmap": "necropolis_a_13_north" }, + { "point": [ 4, 1, 0 ], "overmap": "necropolis_a_14_north" }, + { "point": [ 5, 1, 0 ], "overmap": "necropolis_a_15_north" }, + { "point": [ 6, 1, 0 ], "overmap": "necropolis_a_16_north" }, + { "point": [ 7, 1, 0 ], "overmap": "necropolis_a_17_north" }, + { "point": [ 8, 1, 0 ], "overmap": "necropolis_a_18_north" }, + { "point": [ 0, 2, 0 ], "overmap": "necropolis_a_19_north" }, + { "point": [ 1, 2, 0 ], "overmap": "necropolis_a_20_north" }, + { "point": [ 2, 2, 0 ], "overmap": "necropolis_a_21_north" }, + { "point": [ 3, 2, 0 ], "overmap": "necropolis_a_22_north" }, + { "point": [ 4, 2, 0 ], "overmap": "necropolis_a_23_north" }, + { "point": [ 5, 2, 0 ], "overmap": "necropolis_a_24_north" }, + { "point": [ 6, 2, 0 ], "overmap": "necropolis_a_25_north" }, + { "point": [ 7, 2, 0 ], "overmap": "necropolis_a_26_north" }, + { "point": [ 8, 2, 0 ], "overmap": "necropolis_a_27_north" }, + { "point": [ 0, 3, 0 ], "overmap": "necropolis_a_28_north" }, + { "point": [ 1, 3, 0 ], "overmap": "necropolis_a_29_north" }, + { "point": [ 2, 3, 0 ], "overmap": "necropolis_a_30_north" }, + { "point": [ 3, 3, 0 ], "overmap": "necropolis_a_31_north" }, + { "point": [ 4, 3, 0 ], "overmap": "necropolis_a_32_north" }, + { "point": [ 5, 3, 0 ], "overmap": "necropolis_a_33_north" }, + { "point": [ 6, 3, 0 ], "overmap": "necropolis_a_34_north" }, + { "point": [ 7, 3, 0 ], "overmap": "necropolis_a_35_north" }, + { "point": [ 8, 3, 0 ], "overmap": "necropolis_a_36_north" }, + { "point": [ 0, 4, 0 ], "overmap": "necropolis_a_37_north" }, + { "point": [ 1, 4, 0 ], "overmap": "necropolis_a_38_north" }, + { "point": [ 2, 4, 0 ], "overmap": "necropolis_a_39_north" }, + { "point": [ 3, 4, 0 ], "overmap": "necropolis_a_40_north" }, + { "point": [ 4, 4, 0 ], "overmap": "necropolis_a_41_north" }, + { "point": [ 5, 4, 0 ], "overmap": "necropolis_a_42_north" }, + { "point": [ 6, 4, 0 ], "overmap": "necropolis_a_43_north" }, + { "point": [ 7, 4, 0 ], "overmap": "necropolis_a_44_north" }, + { "point": [ 8, 4, 0 ], "overmap": "necropolis_a_45_north" }, + { "point": [ 0, 5, 0 ], "overmap": "necropolis_a_46_north" }, + { "point": [ 1, 5, 0 ], "overmap": "necropolis_a_47_north" }, + { "point": [ 2, 5, 0 ], "overmap": "necropolis_a_48_north" }, + { "point": [ 3, 5, 0 ], "overmap": "necropolis_a_49_north" }, + { "point": [ 4, 5, 0 ], "overmap": "necropolis_a_50_north" }, + { "point": [ 5, 5, 0 ], "overmap": "necropolis_a_51_north" }, + { "point": [ 6, 5, 0 ], "overmap": "necropolis_a_52_north" }, + { "point": [ 7, 5, 0 ], "overmap": "necropolis_a_53_north" }, + { "point": [ 8, 5, 0 ], "overmap": "necropolis_a_54_north" }, + { "point": [ 0, 6, 0 ], "overmap": "necropolis_a_55_north" }, + { "point": [ 1, 6, 0 ], "overmap": "necropolis_a_56_north" }, + { "point": [ 2, 6, 0 ], "overmap": "necropolis_a_57_north" }, + { "point": [ 3, 6, 0 ], "overmap": "necropolis_a_58_north" }, + { "point": [ 4, 6, 0 ], "overmap": "necropolis_a_59_north" }, + { "point": [ 5, 6, 0 ], "overmap": "necropolis_a_60_north" }, + { "point": [ 6, 6, 0 ], "overmap": "necropolis_a_61_north" }, + { "point": [ 7, 6, 0 ], "overmap": "necropolis_a_62_north" }, + { "point": [ 8, 6, 0 ], "overmap": "necropolis_a_63_north" }, + { "point": [ 0, 7, 0 ], "overmap": "necropolis_a_64_north" }, + { "point": [ 1, 7, 0 ], "overmap": "necropolis_a_65_north" }, + { "point": [ 2, 7, 0 ], "overmap": "necropolis_a_66_north" }, + { "point": [ 3, 7, 0 ], "overmap": "necropolis_a_67_north" }, + { "point": [ 4, 7, 0 ], "overmap": "necropolis_a_68_north" }, + { "point": [ 5, 7, 0 ], "overmap": "necropolis_a_69_north" }, + { "point": [ 6, 7, 0 ], "overmap": "necropolis_a_70_north" }, + { "point": [ 7, 7, 0 ], "overmap": "necropolis_a_71_north" }, + { "point": [ 8, 7, 0 ], "overmap": "necropolis_a_72_north" }, + { "point": [ 0, 8, 0 ], "overmap": "necropolis_a_73_north" }, + { "point": [ 1, 8, 0 ], "overmap": "necropolis_a_74_north" }, + { "point": [ 2, 8, 0 ], "overmap": "necropolis_a_75_north" }, + { "point": [ 3, 8, 0 ], "overmap": "necropolis_a_76_north" }, + { "point": [ 4, 8, 0 ], "overmap": "necropolis_a_77_north" }, + { "point": [ 5, 8, 0 ], "overmap": "necropolis_a_78_north" }, + { "point": [ 6, 8, 0 ], "overmap": "necropolis_a_79_north" }, + { "point": [ 7, 8, 0 ], "overmap": "necropolis_a_80_north" }, + { "point": [ 8, 8, 0 ], "overmap": "necropolis_a_81_north" }, + { "point": [ 0, 0, -1 ], "overmap": "necropolis_b_1_north" }, + { "point": [ 1, 0, -1 ], "overmap": "necropolis_b_2_north" }, + { "point": [ 2, 0, -1 ], "overmap": "necropolis_b_3_north" }, + { "point": [ 3, 0, -1 ], "overmap": "necropolis_b_4_north" }, + { "point": [ 4, 0, -1 ], "overmap": "necropolis_b_5_north" }, + { "point": [ 5, 0, -1 ], "overmap": "necropolis_b_6_north" }, + { "point": [ 6, 0, -1 ], "overmap": "necropolis_b_7_north" }, + { "point": [ 7, 0, -1 ], "overmap": "necropolis_b_8_north" }, + { "point": [ 8, 0, -1 ], "overmap": "necropolis_b_9_north" }, + { "point": [ 0, 1, -1 ], "overmap": "necropolis_b_10_north" }, + { "point": [ 1, 1, -1 ], "overmap": "necropolis_b_11_north" }, + { "point": [ 2, 1, -1 ], "overmap": "necropolis_b_12_north" }, + { "point": [ 3, 1, -1 ], "overmap": "necropolis_b_13_north" }, + { "point": [ 4, 1, -1 ], "overmap": "necropolis_b_14_north" }, + { "point": [ 5, 1, -1 ], "overmap": "necropolis_b_15_north" }, + { "point": [ 6, 1, -1 ], "overmap": "necropolis_b_16_north" }, + { "point": [ 7, 1, -1 ], "overmap": "necropolis_b_17_north" }, + { "point": [ 8, 1, -1 ], "overmap": "necropolis_b_18_north" }, + { "point": [ 0, 2, -1 ], "overmap": "necropolis_b_19_north" }, + { "point": [ 1, 2, -1 ], "overmap": "necropolis_b_20_north" }, + { "point": [ 2, 2, -1 ], "overmap": "necropolis_b_21_north" }, + { "point": [ 3, 2, -1 ], "overmap": "necropolis_b_22_north" }, + { "point": [ 4, 2, -1 ], "overmap": "necropolis_b_23_north" }, + { "point": [ 5, 2, -1 ], "overmap": "necropolis_b_24_north" }, + { "point": [ 6, 2, -1 ], "overmap": "necropolis_b_25_north" }, + { "point": [ 7, 2, -1 ], "overmap": "necropolis_b_26_north" }, + { "point": [ 8, 2, -1 ], "overmap": "necropolis_b_27_north" }, + { "point": [ 0, 3, -1 ], "overmap": "necropolis_b_28_north" }, + { "point": [ 1, 3, -1 ], "overmap": "necropolis_b_29_north" }, + { "point": [ 2, 3, -1 ], "overmap": "necropolis_b_30_north" }, + { "point": [ 3, 3, -1 ], "overmap": "necropolis_b_31_north" }, + { "point": [ 4, 3, -1 ], "overmap": "necropolis_b_32_north" }, + { "point": [ 5, 3, -1 ], "overmap": "necropolis_b_33_north" }, + { "point": [ 6, 3, -1 ], "overmap": "necropolis_b_34_north" }, + { "point": [ 7, 3, -1 ], "overmap": "necropolis_b_35_north" }, + { "point": [ 8, 3, -1 ], "overmap": "necropolis_b_36_north" }, + { "point": [ 0, 4, -1 ], "overmap": "necropolis_b_37_north" }, + { "point": [ 1, 4, -1 ], "overmap": "necropolis_b_38_north" }, + { "point": [ 2, 4, -1 ], "overmap": "necropolis_b_39_north" }, + { "point": [ 3, 4, -1 ], "overmap": "necropolis_b_40_north" }, + { "point": [ 4, 4, -1 ], "overmap": "necropolis_b_41_north" }, + { "point": [ 5, 4, -1 ], "overmap": "necropolis_b_42_north" }, + { "point": [ 6, 4, -1 ], "overmap": "necropolis_b_43_north" }, + { "point": [ 7, 4, -1 ], "overmap": "necropolis_b_44_north" }, + { "point": [ 8, 4, -1 ], "overmap": "necropolis_b_45_north" }, + { "point": [ 0, 5, -1 ], "overmap": "necropolis_b_46_north" }, + { "point": [ 1, 5, -1 ], "overmap": "necropolis_b_47_north" }, + { "point": [ 2, 5, -1 ], "overmap": "necropolis_b_48_north" }, + { "point": [ 3, 5, -1 ], "overmap": "necropolis_b_49_north" }, + { "point": [ 4, 5, -1 ], "overmap": "necropolis_b_50_north" }, + { "point": [ 5, 5, -1 ], "overmap": "necropolis_b_51_north" }, + { "point": [ 6, 5, -1 ], "overmap": "necropolis_b_52_north" }, + { "point": [ 7, 5, -1 ], "overmap": "necropolis_b_53_north" }, + { "point": [ 8, 5, -1 ], "overmap": "necropolis_b_54_north" }, + { "point": [ 0, 6, -1 ], "overmap": "necropolis_b_55_north" }, + { "point": [ 1, 6, -1 ], "overmap": "necropolis_b_56_north" }, + { "point": [ 2, 6, -1 ], "overmap": "necropolis_b_57_north" }, + { "point": [ 3, 6, -1 ], "overmap": "necropolis_b_58_north" }, + { "point": [ 4, 6, -1 ], "overmap": "necropolis_b_59_north" }, + { "point": [ 5, 6, -1 ], "overmap": "necropolis_b_60_north" }, + { "point": [ 6, 6, -1 ], "overmap": "necropolis_b_61_north" }, + { "point": [ 7, 6, -1 ], "overmap": "necropolis_b_62_north" }, + { "point": [ 8, 6, -1 ], "overmap": "necropolis_b_63_north" }, + { "point": [ 0, 7, -1 ], "overmap": "necropolis_b_64_north" }, + { "point": [ 1, 7, -1 ], "overmap": "necropolis_b_65_north" }, + { "point": [ 2, 7, -1 ], "overmap": "necropolis_b_66_north" }, + { "point": [ 3, 7, -1 ], "overmap": "necropolis_b_67_north" }, + { "point": [ 4, 7, -1 ], "overmap": "necropolis_b_68_north" }, + { "point": [ 5, 7, -1 ], "overmap": "necropolis_b_69_north" }, + { "point": [ 6, 7, -1 ], "overmap": "necropolis_b_70_north" }, + { "point": [ 7, 7, -1 ], "overmap": "necropolis_b_71_north" }, + { "point": [ 8, 7, -1 ], "overmap": "necropolis_b_72_north" }, + { "point": [ 0, 8, -1 ], "overmap": "necropolis_b_73_north" }, + { "point": [ 1, 8, -1 ], "overmap": "necropolis_b_74_north" }, + { "point": [ 2, 8, -1 ], "overmap": "necropolis_b_75_north" }, + { "point": [ 3, 8, -1 ], "overmap": "necropolis_b_76_north" }, + { "point": [ 4, 8, -1 ], "overmap": "necropolis_b_77_north" }, + { "point": [ 5, 8, -1 ], "overmap": "necropolis_b_78_north" }, + { "point": [ 6, 8, -1 ], "overmap": "necropolis_b_79_north" }, + { "point": [ 7, 8, -1 ], "overmap": "necropolis_b_80_north" }, + { "point": [ 8, 8, -1 ], "overmap": "necropolis_b_81_north" }, + { "point": [ 0, 0, -2 ], "overmap": "necropolis_c_1_north" }, + { "point": [ 1, 0, -2 ], "overmap": "necropolis_c_2_north" }, + { "point": [ 2, 0, -2 ], "overmap": "necropolis_c_3_north" }, + { "point": [ 3, 0, -2 ], "overmap": "necropolis_c_4_north" }, + { "point": [ 4, 0, -2 ], "overmap": "necropolis_c_5_north" }, + { "point": [ 5, 0, -2 ], "overmap": "necropolis_c_6_north" }, + { "point": [ 6, 0, -2 ], "overmap": "necropolis_c_7_north" }, + { "point": [ 7, 0, -2 ], "overmap": "necropolis_c_8_north" }, + { "point": [ 8, 0, -2 ], "overmap": "necropolis_c_9_north" }, + { "point": [ 0, 1, -2 ], "overmap": "necropolis_c_10_north" }, + { "point": [ 1, 1, -2 ], "overmap": "necropolis_c_11_north" }, + { "point": [ 2, 1, -2 ], "overmap": "necropolis_c_12_north" }, + { "point": [ 3, 1, -2 ], "overmap": "necropolis_c_13_north" }, + { "point": [ 4, 1, -2 ], "overmap": "necropolis_c_14_north" }, + { "point": [ 5, 1, -2 ], "overmap": "necropolis_c_15_north" }, + { "point": [ 6, 1, -2 ], "overmap": "necropolis_c_16_north" }, + { "point": [ 7, 1, -2 ], "overmap": "necropolis_c_17_north" }, + { "point": [ 8, 1, -2 ], "overmap": "necropolis_c_18_north" }, + { "point": [ 0, 2, -2 ], "overmap": "necropolis_c_19_north" }, + { "point": [ 1, 2, -2 ], "overmap": "necropolis_c_20_north" }, + { "point": [ 2, 2, -2 ], "overmap": "necropolis_c_21_north" }, + { "point": [ 3, 2, -2 ], "overmap": "necropolis_c_22_north" }, + { "point": [ 4, 2, -2 ], "overmap": "necropolis_c_23_north" }, + { "point": [ 5, 2, -2 ], "overmap": "necropolis_c_24_north" }, + { "point": [ 6, 2, -2 ], "overmap": "necropolis_c_25_north" }, + { "point": [ 7, 2, -2 ], "overmap": "necropolis_c_26_north" }, + { "point": [ 8, 2, -2 ], "overmap": "necropolis_c_27_north" }, + { "point": [ 0, 3, -2 ], "overmap": "necropolis_c_28_north" }, + { "point": [ 1, 3, -2 ], "overmap": "necropolis_c_29_north" }, + { "point": [ 2, 3, -2 ], "overmap": "necropolis_c_30_north" }, + { "point": [ 3, 3, -2 ], "overmap": "necropolis_c_31_north" }, + { "point": [ 4, 3, -2 ], "overmap": "necropolis_c_32_north" }, + { "point": [ 5, 3, -2 ], "overmap": "necropolis_c_33_north" }, + { "point": [ 6, 3, -2 ], "overmap": "necropolis_c_34_north" }, + { "point": [ 7, 3, -2 ], "overmap": "necropolis_c_35_north" }, + { "point": [ 8, 3, -2 ], "overmap": "necropolis_c_36_north" }, + { "point": [ 0, 4, -2 ], "overmap": "necropolis_c_37_north" }, + { "point": [ 1, 4, -2 ], "overmap": "necropolis_c_38_north" }, + { "point": [ 2, 4, -2 ], "overmap": "necropolis_c_39_north" }, + { "point": [ 3, 4, -2 ], "overmap": "necropolis_c_40_north" }, + { "point": [ 4, 4, -2 ], "overmap": "necropolis_c_41_north" }, + { "point": [ 5, 4, -2 ], "overmap": "necropolis_c_42_north" }, + { "point": [ 6, 4, -2 ], "overmap": "necropolis_c_43_north" }, + { "point": [ 7, 4, -2 ], "overmap": "necropolis_c_44_north" }, + { "point": [ 8, 4, -2 ], "overmap": "necropolis_c_45_north" }, + { "point": [ 0, 5, -2 ], "overmap": "necropolis_c_46_north" }, + { "point": [ 1, 5, -2 ], "overmap": "necropolis_c_47_north" }, + { "point": [ 2, 5, -2 ], "overmap": "necropolis_c_48_north" }, + { "point": [ 3, 5, -2 ], "overmap": "necropolis_c_49_north" }, + { "point": [ 4, 5, -2 ], "overmap": "necropolis_c_50_north" }, + { "point": [ 5, 5, -2 ], "overmap": "necropolis_c_51_north" }, + { "point": [ 6, 5, -2 ], "overmap": "necropolis_c_52_north" }, + { "point": [ 7, 5, -2 ], "overmap": "necropolis_c_53_north" }, + { "point": [ 8, 5, -2 ], "overmap": "necropolis_c_54_north" }, + { "point": [ 0, 6, -2 ], "overmap": "necropolis_c_55_north" }, + { "point": [ 1, 6, -2 ], "overmap": "necropolis_c_56_north" }, + { "point": [ 2, 6, -2 ], "overmap": "necropolis_c_57_north" }, + { "point": [ 3, 6, -2 ], "overmap": "necropolis_c_58_north" }, + { "point": [ 4, 6, -2 ], "overmap": "necropolis_c_59_north" }, + { "point": [ 5, 6, -2 ], "overmap": "necropolis_c_60_north" }, + { "point": [ 6, 6, -2 ], "overmap": "necropolis_c_61_north" }, + { "point": [ 7, 6, -2 ], "overmap": "necropolis_c_62_north" }, + { "point": [ 8, 6, -2 ], "overmap": "necropolis_c_63_north" }, + { "point": [ 0, 7, -2 ], "overmap": "necropolis_c_64_north" }, + { "point": [ 1, 7, -2 ], "overmap": "necropolis_c_65_north" }, + { "point": [ 2, 7, -2 ], "overmap": "necropolis_c_66_north" }, + { "point": [ 3, 7, -2 ], "overmap": "necropolis_c_67_north" }, + { "point": [ 4, 7, -2 ], "overmap": "necropolis_c_68_north" }, + { "point": [ 5, 7, -2 ], "overmap": "necropolis_c_69_north" }, + { "point": [ 6, 7, -2 ], "overmap": "necropolis_c_70_north" }, + { "point": [ 7, 7, -2 ], "overmap": "necropolis_c_71_north" }, + { "point": [ 8, 7, -2 ], "overmap": "necropolis_c_72_north" }, + { "point": [ 0, 8, -2 ], "overmap": "necropolis_c_73_north" }, + { "point": [ 1, 8, -2 ], "overmap": "necropolis_c_74_north" }, + { "point": [ 2, 8, -2 ], "overmap": "necropolis_c_75_north" }, + { "point": [ 3, 8, -2 ], "overmap": "necropolis_c_76_north" }, + { "point": [ 4, 8, -2 ], "overmap": "necropolis_c_77_north" }, + { "point": [ 5, 8, -2 ], "overmap": "necropolis_c_78_north" }, + { "point": [ 6, 8, -2 ], "overmap": "necropolis_c_79_north" }, + { "point": [ 7, 8, -2 ], "overmap": "necropolis_c_80_north" }, + { "point": [ 8, 8, -2 ], "overmap": "necropolis_c_81_north" }, + { "point": [ 0, 0, -3 ], "overmap": "necropolis_d_1_north" }, + { "point": [ 1, 0, -3 ], "overmap": "necropolis_d_2_north" }, + { "point": [ 2, 0, -3 ], "overmap": "necropolis_d_3_north" }, + { "point": [ 3, 0, -3 ], "overmap": "necropolis_d_4_north" }, + { "point": [ 4, 0, -3 ], "overmap": "necropolis_d_5_north" }, + { "point": [ 5, 0, -3 ], "overmap": "necropolis_d_6_north" }, + { "point": [ 6, 0, -3 ], "overmap": "necropolis_d_7_north" }, + { "point": [ 7, 0, -3 ], "overmap": "necropolis_d_8_north" }, + { "point": [ 8, 0, -3 ], "overmap": "necropolis_d_9_north" }, + { "point": [ 0, 1, -3 ], "overmap": "necropolis_d_10_north" }, + { "point": [ 1, 1, -3 ], "overmap": "necropolis_d_11_north" }, + { "point": [ 2, 1, -3 ], "overmap": "necropolis_d_12_north" }, + { "point": [ 3, 1, -3 ], "overmap": "necropolis_d_13_north" }, + { "point": [ 4, 1, -3 ], "overmap": "necropolis_d_14_north" }, + { "point": [ 5, 1, -3 ], "overmap": "necropolis_d_15_north" }, + { "point": [ 6, 1, -3 ], "overmap": "necropolis_d_16_north" }, + { "point": [ 7, 1, -3 ], "overmap": "necropolis_d_17_north" }, + { "point": [ 8, 1, -3 ], "overmap": "necropolis_d_18_north" }, + { "point": [ 0, 2, -3 ], "overmap": "necropolis_d_19_north" }, + { "point": [ 1, 2, -3 ], "overmap": "necropolis_d_20_north" }, + { "point": [ 2, 2, -3 ], "overmap": "necropolis_d_21_north" }, + { "point": [ 3, 2, -3 ], "overmap": "necropolis_d_22_north" }, + { "point": [ 4, 2, -3 ], "overmap": "necropolis_d_23_north" }, + { "point": [ 5, 2, -3 ], "overmap": "necropolis_d_24_north" }, + { "point": [ 6, 2, -3 ], "overmap": "necropolis_d_25_north" }, + { "point": [ 7, 2, -3 ], "overmap": "necropolis_d_26_north" }, + { "point": [ 8, 2, -3 ], "overmap": "necropolis_d_27_north" }, + { "point": [ 0, 3, -3 ], "overmap": "necropolis_d_28_north" }, + { "point": [ 1, 3, -3 ], "overmap": "necropolis_d_29_north" }, + { "point": [ 2, 3, -3 ], "overmap": "necropolis_d_30_north" }, + { "point": [ 3, 3, -3 ], "overmap": "necropolis_d_31_north" }, + { "point": [ 4, 3, -3 ], "overmap": "necropolis_d_32_north" }, + { "point": [ 5, 3, -3 ], "overmap": "necropolis_d_33_north" }, + { "point": [ 6, 3, -3 ], "overmap": "necropolis_d_34_north" }, + { "point": [ 7, 3, -3 ], "overmap": "necropolis_d_35_north" }, + { "point": [ 8, 3, -3 ], "overmap": "necropolis_d_36_north" }, + { "point": [ 0, 4, -3 ], "overmap": "necropolis_d_37_north" }, + { "point": [ 1, 4, -3 ], "overmap": "necropolis_d_38_north" }, + { "point": [ 2, 4, -3 ], "overmap": "necropolis_d_39_north" }, + { "point": [ 3, 4, -3 ], "overmap": "necropolis_d_40_north" }, + { "point": [ 4, 4, -3 ], "overmap": "necropolis_d_41_north" }, + { "point": [ 5, 4, -3 ], "overmap": "necropolis_d_42_north" }, + { "point": [ 6, 4, -3 ], "overmap": "necropolis_d_43_north" }, + { "point": [ 7, 4, -3 ], "overmap": "necropolis_d_44_north" }, + { "point": [ 8, 4, -3 ], "overmap": "necropolis_d_45_north" }, + { "point": [ 0, 5, -3 ], "overmap": "necropolis_d_46_north" }, + { "point": [ 1, 5, -3 ], "overmap": "necropolis_d_47_north" }, + { "point": [ 2, 5, -3 ], "overmap": "necropolis_d_48_north" }, + { "point": [ 3, 5, -3 ], "overmap": "necropolis_d_49_north" }, + { "point": [ 4, 5, -3 ], "overmap": "necropolis_d_50_north" }, + { "point": [ 5, 5, -3 ], "overmap": "necropolis_d_51_north" }, + { "point": [ 6, 5, -3 ], "overmap": "necropolis_d_52_north" }, + { "point": [ 7, 5, -3 ], "overmap": "necropolis_d_53_north" }, + { "point": [ 8, 5, -3 ], "overmap": "necropolis_d_54_north" }, + { "point": [ 0, 6, -3 ], "overmap": "necropolis_d_55_north" }, + { "point": [ 1, 6, -3 ], "overmap": "necropolis_d_56_north" }, + { "point": [ 2, 6, -3 ], "overmap": "necropolis_d_57_north" }, + { "point": [ 3, 6, -3 ], "overmap": "necropolis_d_58_north" }, + { "point": [ 4, 6, -3 ], "overmap": "necropolis_d_59_north" }, + { "point": [ 5, 6, -3 ], "overmap": "necropolis_d_60_north" }, + { "point": [ 6, 6, -3 ], "overmap": "necropolis_d_61_north" }, + { "point": [ 7, 6, -3 ], "overmap": "necropolis_d_62_north" }, + { "point": [ 8, 6, -3 ], "overmap": "necropolis_d_63_north" }, + { "point": [ 0, 7, -3 ], "overmap": "necropolis_d_64_north" }, + { "point": [ 1, 7, -3 ], "overmap": "necropolis_d_65_north" }, + { "point": [ 2, 7, -3 ], "overmap": "necropolis_d_66_north" }, + { "point": [ 3, 7, -3 ], "overmap": "necropolis_d_67_north" }, + { "point": [ 4, 7, -3 ], "overmap": "necropolis_d_68_north" }, + { "point": [ 5, 7, -3 ], "overmap": "necropolis_d_69_north" }, + { "point": [ 6, 7, -3 ], "overmap": "necropolis_d_70_north" }, + { "point": [ 7, 7, -3 ], "overmap": "necropolis_d_71_north" }, + { "point": [ 8, 7, -3 ], "overmap": "necropolis_d_72_north" }, + { "point": [ 0, 8, -3 ], "overmap": "necropolis_d_73_north" }, + { "point": [ 1, 8, -3 ], "overmap": "necropolis_d_74_north" }, + { "point": [ 2, 8, -3 ], "overmap": "necropolis_d_75_north" }, + { "point": [ 3, 8, -3 ], "overmap": "necropolis_d_76_north" }, + { "point": [ 4, 8, -3 ], "overmap": "necropolis_d_77_north" }, + { "point": [ 5, 8, -3 ], "overmap": "necropolis_d_78_north" }, + { "point": [ 6, 8, -3 ], "overmap": "necropolis_d_79_north" }, + { "point": [ 7, 8, -3 ], "overmap": "necropolis_d_80_north" }, + { "point": [ 8, 8, -3 ], "overmap": "necropolis_d_81_north" } + ], + "connections": [ + { "point": [ 5, -1, 0 ], "terrain": "road", "connection": "local_road", "from": [ 5, 0, 0 ] }, + { "point": [ -1, 7, 0 ], "terrain": "road", "connection": "local_road", "from": [ 0, 7, 0 ] }, + { "point": [ 4, 9, 0 ], "terrain": "road", "connection": "local_road", "from": [ 4, 8, 0 ] } + ], + "locations": [ "wilderness" ], + "city_distance": [ 20, -1 ], + "occurrences": [ 0, 0 ], + "flags": [ "UNIQUE" ] + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/necropolis/overmap_terrain_necropolis.json b/data/Mainline_mods/Mods/No_Hope/necropolis/overmap_terrain_necropolis.json new file mode 100644 index 000000000..973bde830 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/necropolis/overmap_terrain_necropolis.json @@ -0,0 +1,785 @@ +[ + { + "type": "overmap_terrain", + "abstract": "generic_necropolis_surface_building", + "name": "city building", + "sym": "^", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK", "SHOULD_NOT_SPAWN" ] + }, + { + "type": "overmap_terrain", + "id": [ + "necropolis_a_1", + "necropolis_a_18", + "necropolis_a_27", + "necropolis_a_3", + "necropolis_a_36", + "necropolis_a_4", + "necropolis_a_45", + "necropolis_a_72", + "necropolis_a_73", + "necropolis_a_80", + "necropolis_a_81", + "necropolis_a_9" + ], + "copy-from": "generic_necropolis_surface_building", + "name": "field", + "sym": ".", + "color": "brown" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_2", + "copy-from": "generic_necropolis_surface_building", + "name": "house", + "sym": "v", + "color": "light_green" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_10", + "copy-from": "generic_necropolis_surface_building", + "name": "house", + "sym": ">", + "color": "light_green" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_a_54", "necropolis_a_63" ], + "copy-from": "generic_necropolis_surface_building", + "name": "house", + "sym": "<", + "color": "light_green" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_5", + "copy-from": "generic_necropolis_surface_building", + "name": "abandoned store", + "sym": ">", + "color": "h_dark_gray" + }, + { + "type": "overmap_terrain", + "abstract": "generic_necropolis_road", + "copy-from": "generic_necropolis_surface_building", + "name": "road", + "color": "dark_gray", + "extras": "road", + "flags": [ "SHOULD_NOT_SPAWN" ] + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_a_19", "necropolis_a_56", "necropolis_a_58", "necropolis_a_60", "necropolis_a_61", "necropolis_a_76" ], + "copy-from": "generic_necropolis_road", + "name": "lot", + "sym": "O" + }, + { + "type": "overmap_terrain", + "id": [ + "necropolis_a_11", + "necropolis_a_62", + "necropolis_a_59", + "necropolis_a_53", + "necropolis_a_50", + "necropolis_a_47", + "necropolis_a_31", + "necropolis_a_15" + ], + "copy-from": "generic_necropolis_road", + "sym": "│" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_a_6", "necropolis_a_77" ], + "copy-from": "generic_necropolis_road", + "sym": "│", + "delete": { "flags": [ "SIDEWALK" ] } + }, + { + "type": "overmap_terrain", + "id": [ + "necropolis_a_21", + "necropolis_a_23", + "necropolis_a_25", + "necropolis_a_39", + "necropolis_a_42", + "necropolis_a_43", + "necropolis_a_66", + "necropolis_a_67", + "necropolis_a_69", + "necropolis_a_70" + ], + "copy-from": "generic_necropolis_road", + "sym": "─" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_64", + "copy-from": "generic_necropolis_road", + "sym": "─", + "delete": { "flags": [ "SIDEWALK" ] } + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_20", + "copy-from": "generic_necropolis_road", + "sym": "└" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_a_22", "necropolis_a_41" ], + "copy-from": "generic_necropolis_road", + "sym": "┬" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_a_24", "necropolis_a_40", "necropolis_a_65" ], + "copy-from": "generic_necropolis_road", + "sym": "┴" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_26", + "copy-from": "generic_necropolis_road", + "sym": "┐" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_44", + "copy-from": "generic_necropolis_road", + "sym": "┤" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_68", + "copy-from": "generic_necropolis_road", + "sym": "┼" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_71", + "copy-from": "generic_necropolis_road", + "sym": "┘" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_a_7", "necropolis_a_8" ], + "copy-from": "generic_necropolis_surface_building", + "name": "pump station", + "sym": "P", + "color": "red", + "extend": { "flags": [ "KNOWN_DOWN" ] } + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_12", + "copy-from": "generic_necropolis_surface_building", + "name": "gardening store", + "sym": "<", + "color": "light_green_yellow" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_13", + "copy-from": "generic_necropolis_surface_building", + "name": "salon", + "sym": "S", + "color": "white" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_a_14", "necropolis_a_35", "necropolis_a_38" ], + "copy-from": "generic_necropolis_surface_building", + "name": "crater", + "sym": "O", + "color": "red" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_16", + "copy-from": "generic_necropolis_surface_building", + "name": "police station", + "sym": "<", + "color": "h_yellow" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_17", + "copy-from": "generic_necropolis_surface_building", + "name": "police station", + "sym": "v", + "color": "h_yellow" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_a_28", "necropolis_a_29" ], + "name": "grocery store", + "copy-from": "generic_necropolis_surface_building", + "color": "green" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_30", + "copy-from": "generic_necropolis_surface_building", + "name": "park", + "sym": "O", + "color": "green" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_a_32", "necropolis_a_33" ], + "copy-from": "generic_necropolis_surface_building", + "name": "church", + "sym": "C", + "color": "light_red" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_34", + "name": "pawn shop", + "copy-from": "generic_necropolis_surface_building", + "color": "white" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_37", + "copy-from": "generic_necropolis_surface_building", + "name": "furniture store", + "sym": ">", + "color": "i_brown" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_46", + "copy-from": "generic_necropolis_surface_building", + "name": "clothing store", + "sym": ">", + "color": "blue" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_a_48", "necropolis_a_49", "necropolis_a_55", "necropolis_a_57" ], + "copy-from": "generic_necropolis_surface_building", + "name": "motel", + "sym": "m", + "color": "light_blue" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_51", + "copy-from": "generic_necropolis_surface_building", + "name": "restaurant", + "sym": "<", + "color": "pink" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_52", + "copy-from": "generic_necropolis_surface_building", + "name": "bank", + "sym": "$", + "color": "light_gray" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_74", + "copy-from": "generic_necropolis_surface_building", + "name": "bar", + "color": "i_magenta" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_75", + "copy-from": "generic_necropolis_surface_building", + "name": "fast food restaurant", + "color": "yellow_magenta" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_78", + "copy-from": "generic_necropolis_surface_building", + "name": "gas station", + "color": "light_blue" + }, + { + "type": "overmap_terrain", + "id": "necropolis_a_79", + "copy-from": "generic_necropolis_surface_building", + "name": "garage", + "sym": "O", + "color": "white" + }, + { + "type": "overmap_terrain", + "abstract": "generic_necropolis_underground", + "name": "underground", + "color": "yellow", + "see_cost": 999, + "mondensity": 2, + "flags": [ "SHOULD_NOT_SPAWN" ] + }, + { + "//": "xxx Bookmark for necropolis sewers", + "type": "overmap_terrain", + "id": [ + "necropolis_b_1", + "necropolis_b_10", + "necropolis_b_13", + "necropolis_b_14", + "necropolis_b_16", + "necropolis_b_18", + "necropolis_b_19", + "necropolis_b_2", + "necropolis_b_27", + "necropolis_b_3", + "necropolis_b_30", + "necropolis_b_32", + "necropolis_b_33", + "necropolis_b_36", + "necropolis_b_4", + "necropolis_b_45", + "necropolis_b_52", + "necropolis_b_55", + "necropolis_b_60", + "necropolis_b_61", + "necropolis_b_63", + "necropolis_b_72", + "necropolis_b_73", + "necropolis_b_74", + "necropolis_b_75", + "necropolis_b_76", + "necropolis_b_80", + "necropolis_b_81", + "necropolis_b_9" + ], + "copy-from": "generic_necropolis_underground", + "name": "solid earth", + "looks_like": "solid_earth", + "sym": "#", + "color": "brown" + }, + { + "//": "xxx Bookmark for necropolis sewers", + "type": "overmap_terrain", + "id": [ + "necropolis_c_19", + "necropolis_c_46", + "necropolis_c_55", + "necropolis_c_73", + "necropolis_d_10", + "necropolis_d_37", + "necropolis_d_73", + "necropolis_d_8" + ], + "copy-from": "generic_necropolis_underground", + "name": "solid rock", + "looks_like": "empty_rock", + "sym": "%", + "color": "dark_gray" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_b_28", "necropolis_b_37" ], + "copy-from": "generic_necropolis_underground", + "name": "cavern", + "sym": "0", + "color": "light_gray" + }, + { + "type": "overmap_terrain", + "id": "necropolis_b_29", + "copy-from": "generic_necropolis_underground", + "name": "sewer?", + "sym": "┼", + "color": "green" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_b_34", "necropolis_b_54" ], + "copy-from": "generic_necropolis_underground", + "name": "basement", + "sym": "O", + "color": "dark_gray" + }, + { + "type": "overmap_terrain", + "id": [ + "necropolis_b_11", + "necropolis_b_12", + "necropolis_b_15", + "necropolis_b_17", + "necropolis_b_20", + "necropolis_b_21", + "necropolis_b_22", + "necropolis_b_23", + "necropolis_b_24", + "necropolis_b_25", + "necropolis_b_26", + "necropolis_b_31", + "necropolis_b_35", + "necropolis_b_38", + "necropolis_b_39", + "necropolis_b_40", + "necropolis_b_41", + "necropolis_b_42", + "necropolis_b_43", + "necropolis_b_44", + "necropolis_b_46", + "necropolis_b_47", + "necropolis_b_48", + "necropolis_b_49", + "necropolis_b_5", + "necropolis_b_50", + "necropolis_b_51", + "necropolis_b_53", + "necropolis_b_56", + "necropolis_b_57", + "necropolis_b_58", + "necropolis_b_59", + "necropolis_b_6", + "necropolis_b_62", + "necropolis_b_64", + "necropolis_b_65", + "necropolis_b_66", + "necropolis_b_67", + "necropolis_b_68", + "necropolis_b_69", + "necropolis_b_7", + "necropolis_b_70", + "necropolis_b_71", + "necropolis_b_77", + "necropolis_b_78", + "necropolis_b_79", + "necropolis_b_8" + ], + "copy-from": "generic_necropolis_underground", + "name": "sewer", + "sym": "┼", + "color": "green" + }, + { + "type": "overmap_terrain", + "id": [ + "necropolis_c_22", + "necropolis_c_24", + "necropolis_c_28", + "necropolis_c_30", + "necropolis_c_31", + "necropolis_c_32", + "necropolis_c_33", + "necropolis_c_34", + "necropolis_c_35", + "necropolis_c_36", + "necropolis_c_37", + "necropolis_c_41", + "necropolis_c_45", + "necropolis_c_49", + "necropolis_c_50", + "necropolis_c_54", + "necropolis_c_56", + "necropolis_c_57", + "necropolis_c_58", + "necropolis_c_59", + "necropolis_c_60", + "necropolis_c_61", + "necropolis_c_62", + "necropolis_c_63", + "necropolis_d_11", + "necropolis_d_12", + "necropolis_d_13", + "necropolis_d_14", + "necropolis_d_15", + "necropolis_d_16", + "necropolis_d_18", + "necropolis_d_24", + "necropolis_d_26", + "necropolis_d_40", + "necropolis_d_45", + "necropolis_d_47", + "necropolis_d_51", + "necropolis_d_53", + "necropolis_d_60", + "necropolis_d_62", + "necropolis_d_69", + "necropolis_d_70", + "necropolis_d_71", + "necropolis_d_72", + "necropolis_d_74", + "necropolis_d_76", + "necropolis_d_79", + "necropolis_d_81" + ], + "copy-from": "generic_necropolis_underground", + "name": "Vault - Passage", + "sym": "┼", + "color": "white" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_c_1", "necropolis_c_10", "necropolis_c_11", "necropolis_c_12", "necropolis_c_3", "necropolis_c_4" ], + "name": "Vault - Barracks", + "sym": "B", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_2", + "name": "Vault - Armory", + "sym": "A", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ + "necropolis_c_5", + "necropolis_c_15", + "necropolis_c_16", + "necropolis_c_6", + "necropolis_c_7", + "necropolis_c_8", + "necropolis_d_6", + "necropolis_d_7" + ], + "name": "Vault - Hospital", + "sym": "H", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_9", + "name": "Vault - Jail", + "sym": "J", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_c_13", "necropolis_c_14" ], + "name": "Vault - Offices", + "sym": "O", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_c_17", "necropolis_c_18", "necropolis_c_26", "necropolis_c_27" ], + "name": "Vault - Police Station", + "sym": "P", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_c_20", "necropolis_c_29" ], + "name": "Vault - Entrance", + "sym": "E", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_21", + "name": "Vault - Utilities", + "sym": "U", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_23", + "name": "Vault - Communications", + "sym": "C", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_25", + "name": "Vault - Courthouse", + "sym": "C", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_c_38", "necropolis_c_39", "necropolis_c_47", "necropolis_c_48" ], + "name": "Vault - Motor Pool", + "sym": "M", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_c_40", + "name": "Vault - Visitor Center", + "sym": "V", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_c_42", "necropolis_c_43", "necropolis_c_44" ], + "name": "Vault - Control", + "sym": "X", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_c_51", "necropolis_c_52", "necropolis_c_53" ], + "name": "Vault - Cafeteria", + "sym": "C", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ + "necropolis_c_64", + "necropolis_c_65", + "necropolis_c_66", + "necropolis_c_67", + "necropolis_c_74", + "necropolis_c_75", + "necropolis_c_76", + "necropolis_c_77", + "necropolis_c_78", + "necropolis_c_79" + ], + "name": "Vault - School", + "sym": "S", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ + "necropolis_c_68", + "necropolis_c_69", + "necropolis_c_70", + "necropolis_c_71", + "necropolis_c_72", + "necropolis_c_80", + "necropolis_c_81" + ], + "name": "Vault - Labs", + "sym": "L", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_d_1", "necropolis_d_2" ], + "name": "Vault - Robotics Bay", + "sym": "R", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_d_3", "necropolis_d_4", "necropolis_d_5", "necropolis_d_54", "necropolis_d_63" ], + "name": "Vault - Slum Housing", + "sym": "h", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_d_9", "necropolis_d_17" ], + "name": "Vault - Suites", + "sym": "h", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ + "necropolis_d_19", + "necropolis_d_20", + "necropolis_d_25", + "necropolis_d_28", + "necropolis_d_29", + "necropolis_d_46", + "necropolis_d_55", + "necropolis_d_56", + "necropolis_d_64", + "necropolis_d_65" + ], + "name": "Vault - Living Bays", + "sym": "h", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ + "necropolis_d_21", + "necropolis_d_22", + "necropolis_d_23", + "necropolis_d_30", + "necropolis_d_31", + "necropolis_d_32", + "necropolis_d_33", + "necropolis_d_42", + "necropolis_d_43", + "necropolis_d_44", + "necropolis_d_48", + "necropolis_d_49", + "necropolis_d_50", + "necropolis_d_57", + "necropolis_d_58", + "necropolis_d_59", + "necropolis_d_34", + "necropolis_d_35", + "necropolis_d_66", + "necropolis_d_67", + "necropolis_d_68" + ], + "name": "Vault - Housing", + "sym": "h", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_d_27", "necropolis_d_36" ], + "name": "Vault - Transition Bay", + "sym": "T", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_d_38", "necropolis_d_39" ], + "name": { "str": "Vault - Maint. Bay", "//NOLINT(cata-text-style)": "not a period" }, + "sym": "M", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_41", + "name": "Vault - Quartermasters", + "sym": "Q", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_52", + "name": "Vault - Kitchen", + "sym": "K", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_61", + "name": "Vault - Conference Room", + "sym": "C", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_75", + "name": "Vault - Library", + "sym": "L", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": [ "necropolis_d_77", "necropolis_d_78" ], + "name": "Vault - Light Industry", + "sym": "I", + "copy-from": "generic_necropolis_underground" + }, + { + "type": "overmap_terrain", + "id": "necropolis_d_80", + "name": "Vault - Gym", + "sym": "G", + "copy-from": "generic_necropolis_underground" + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/palettes.json b/data/Mainline_mods/Mods/No_Hope/palettes.json index 4de11e8ce..755bb1f6c 100644 --- a/data/Mainline_mods/Mods/No_Hope/palettes.json +++ b/data/Mainline_mods/Mods/No_Hope/palettes.json @@ -11,7 +11,7 @@ "d": "f_dresser", "e": "f_pool_table", "f": "f_table", - "g": "f_water_heater", + "g": [ "f_water_heater", "f_water_heater_family" ], "h": "f_chair", "i": "f_bench", "j": "f_bench", @@ -65,6 +65,7 @@ "8": "f_counter", "9": "f_shower", "@": "f_bed", + "¤": "f_table", "₸": "f_deckchair", "∞": "f_foot_locker", "≠": "f_chest", @@ -93,6 +94,7 @@ "|": "t_wall_w", "#": "t_brick_wall", ":": "t_wall_glass", + "¶": "t_door_glass_c", "-": "t_sidewalk", "o": [ [ "t_window_frame", 5 ], @@ -251,7 +253,7 @@ "Z": "f_dryer", "a": [ "f_floor_lamp", "f_rack_coat" ], "d": "f_shower", - "g": "f_water_heater", + "g": [ "f_water_heater", "f_water_heater_family" ], "h": "f_fireplace", "i": [ "f_oven", "f_gas_oven_microwave_combo" ], "j": "f_sink", @@ -421,10 +423,11 @@ "furniture": { "B": "f_bed", "c": "f_counter", + "C": "f_counter", + "o": "f_counter", + "O": "f_counter", "m": "f_bench", "d": "f_dresser", - "o": "f_counter", - "D": "f_dryer", "Y": "f_rack_coat", "^": [ "f_indoor_plant_y", "f_indoor_plant" ], "h": "f_chair", @@ -439,7 +442,9 @@ "l": "f_locker", "W": "f_washer", "F": "f_vending_c", - "U": "f_vending_c" + "U": "f_vending_c", + "D": "f_desk", + "x": "f_console_broken" }, "terrain": { ",": "t_pavement_y", @@ -450,31 +455,51 @@ "_": "t_pavement", "2": "t_carpet_green", "s": "t_sidewalk", - "'": [ [ "t_region_groundcover_urban", 5 ], "t_region_shrub_decorative" ], - "M": [ "t_region_shrub_decorative" ], - " ": [ [ "t_region_groundcover_urban", 5 ], "t_region_shrub" ], - "-": "t_wall_w", + "'": "t_linoleum_gray", + "&": "t_linoleum_gray", + "S": "t_linoleum_gray", + "C": "t_linoleum_gray", + "M": "t_region_shrub_decorative", + " ": "t_region_groundcover_urban", "|": "t_wall_w", "%": "t_adobe_brick_wall", "T": "t_region_tree_shade", "v": "t_pavement", - "w": "t_water_pool_shallow", + "V": "t_pavement", + "w": [ [ "t_window_domestic", 11 ], [ "t_window_open", 2 ], [ "t_curtains", 5 ] ], "9": "t_water_pool", - "+": [ [ "t_door_b", 20 ], [ "t_door_frame", 10 ], [ "t_door_o", 70 ], [ "t_door_c", 5 ], [ "t_door_locked_interior", 3 ] ], + "+": "t_door_c", "G": "t_door_glass_c", "=": "t_door_locked", "7": "t_door_locked_interior", - "X": "t_column", + "I": "t_column", "H": "t_wall_glass", - "x": "t_elevator_control_off", + "X": "t_elevator_control_off", "8": "t_elevator", "~": "t_thconc_floor", "<": "t_stairs_up", ">": "t_stairs_down", - "#": "t_rock", + "#": "t_soil", "$": "t_sewage_pipe", "4": "t_gutter_downspout", "P": "t_sewage_pump" + }, + "vendingmachines": { "U": { "item_group": "vending_drink", "lootable": true }, "F": { "item_group": "vending_food", "lootable": true } }, + "toilets": { "&": { } }, + "items": { + "B": { "item": "bed", "chance": 30, "repeat": [ 1, 2 ] }, + "L": { "item": "hotel_luggage", "chance": 66 }, + "c": { "item": "magazines", "chance": 15 }, + "d": [ { "item": "traveler", "chance": 40, "repeat": [ 3, 5 ] }, { "item": "book_hotel_tower_bible", "chance": 50 } ], + "o": { "item": "hotel_coffee_bar", "chance": 50 }, + "Y": { "item": "unisex_coat_rack", "chance": 30, "repeat": [ 1, 4 ] }, + "b": { "item": "shower", "chance": 10, "repeat": [ 1, 2 ] }, + "&": { "item": "SUS_toilet", "chance": 10, "repeat": [ 1, 3 ] } + }, + "item": { "O": { "item": "television" } }, + "vehicles": { + "V": { "vehicle": "parking_garage", "chance": 45, "rotation": 270 }, + "v": { "vehicle": "parking_garage", "chance": 45, "rotation": 90 } } }, { @@ -799,44 +824,6 @@ }, "toilets": { "t": { } } }, - { - "type": "palette", - "id": "road", - "terrain": { - " ": [ [ "t_region_groundcover", 8 ], "t_region_shrub" ], - "_": "t_pavement", - "!": "t_pavement", - ".": "t_floor", - "#": "t_wall_w", - "+": "t_door_c", - "~": "t_door_locked", - "/": "t_door_glass_c", - "x": "t_wall_glass", - ":": "t_pavement_y", - "]": "t_sidewalk", - "*": "t_tree", - "A": "t_atm" - }, - "furniture": { - "&": "f_trashcan", - "{": "f_glass_fridge", - "1": [ "f_indoor_plant", "f_indoor_plant_y" ], - "C": "f_counter", - "H": "f_sofa", - "c": "f_chair", - "s": "f_stool", - "t": "f_table", - "r": "f_rack", - "l": "f_locker", - "f": "f_fridge", - "o": [ "f_oven", "f_gas_oven_microwave_combo" ], - "S": "f_sink", - "T": "f_toilet" - }, - "toilets": { "T": { } }, - "gaspumps": { "!": { "fuel": "gasoline", "amount": [ 0, 5000 ] } }, - "vendingmachines": { "D": { "item_group": "vending_drink" }, "F": { "item_group": "vending_food" } } - }, { "type": "palette", "id": "bunker_ext", @@ -899,7 +886,7 @@ "f": "f_sofa", "G": "f_generator_broken", "h": "f_chair", - "H": "f_water_heater", + "H": [ "f_water_heater", "f_water_heater_family" ], "K": "f_sink", "l": "f_utility_shelf", "L": "f_table", @@ -1097,72 +1084,27 @@ }, "toilets": { "T": { } } }, - { - "type": "palette", - "id": "parking_palette", - "terrain": { - " ": "t_thconc_floor", - "-": "t_thconc_y", - "=": "t_concrete_railing", - "z": "t_tar_flat_roof", - "1": "t_gutter_west", - "2": "t_gutter_east", - "3": "t_gutter_north", - "4": "t_gutter_south", - "5": "t_gutter_drop", - "'": "t_strconc_floor", - "+": [ [ "t_door_b", 20 ], [ "t_door_frame", 10 ], [ "t_door_o", 70 ], [ "t_door_c", 5 ], [ "t_door_locked_interior", 3 ] ], - "!": "t_door_metal_locked", - ".": [ [ "t_region_groundcover_urban", 25 ], [ "t_region_shrub", 1 ] ], - "w": [ [ "t_window_frame", 70 ], [ "t_window_empty", 20 ], [ "t_window", 5 ] ], - "W": "t_reinforced_glass", - "_": "t_pavement", - "y": "t_pavement_y", - "s": "t_concrete", - "|": "t_concrete_wall", - ":": "t_linoleum_white", - ";": "t_grate", - "i": "t_ladder_up", - "/": "t_ladder_down", - "F": "t_linoleum_white", - "h": "t_linoleum_white", - "D": "t_strconc_floor", - "c": "t_linoleum_white", - "r": "t_linoleum_white", - ">": "t_stairs_down", - "<": "t_stairs_up", - "I": "t_column", - "f": "t_chainfence", - "g": "t_chaingate_l", - "#": "t_rock", - "*": "t_open_air", - "E": "t_elevator" - }, - "furniture": { - "x": "f_console_broken", - "@": "f_generator_broken", - "&": "f_machinery_heavy", - "c": "f_counter", - "d": "f_desk", - "D": "f_dumpster", - "h": "f_chair", - "F": "f_filing_cabinet", - "%": "f_solar_unit" - }, - "items": { - "D": { "item": "office", "chance": 45, "repeat": [ 1, 2 ] }, - "Y": { "item": "jackets", "chance": 55, "repeat": [ 1, 6 ] }, - "l": { "item": "cleaning", "chance": 75, "repeat": [ 1, 3 ] }, - "r": { "item": "trash", "chance": 60, "repeat": [ 1, 2 ] }, - "F": { "item": "file_room", "chance": 70, "repeat": [ 1, 3 ] } - }, - "toilets": { "T": { } } - }, { "type": "palette", "id": "gun_store_palette", - "//": " P, U, S, h, F, e, |, /, o, k, z, c, and > are all still available for more terrain or furniture", + "//": " P, U, S, h, F, e, |, o, k, z, c, and > are all still available for more terrain or furniture", "toilets": { "&": { } }, + "parameters": { + "interior_wall_type": { + "type": "ter_str_id", + "default": { + "distribution": [ + [ "t_wall_b", 1 ], + [ "t_wall_g", 1 ], + [ "t_wall_p", 1 ], + [ "t_wall_P", 1 ], + [ "t_wall_r", 1 ], + [ "t_wall_w", 6 ], + [ "t_wall_y", 1 ] + ] + } + } + }, "terrain": { "-": "t_wall_w", "#": "t_brick_wall", @@ -1171,11 +1113,13 @@ ":": "t_window_bars_alarm", "+": [ [ "t_door_metal_pickable", 90 ], [ "t_door_metal_o", 5 ], [ "t_door_metal_c", 15 ] ], "D": [ [ "t_door_o", 40 ], [ "t_door_c", 40 ], [ "t_door_locked_interior", 20 ] ], - ",": "t_region_groundcover_urban", + ",": [ [ "t_region_groundcover_urban", 100 ], [ "t_region_shrub", 10 ] ], + "I": { "param": "interior_wall_type", "fallback": "t_brick_wall" }, "@": "t_region_shrub_decorative", "u": "t_region_shrub", "B": "t_region_groundcover_barren", "'": "t_sidewalk", + "/": "t_sidewalk", "C": "t_thconc_floor", "`": "t_thconc_floor", ".": "t_thconc_floor", @@ -1215,6 +1159,7 @@ }, "furniture": { "C": "f_counter", + "3": "f_counter", "R": "f_counter", "a": "f_stool", "?": "f_console_broken", @@ -1247,8 +1192,10 @@ "O": [ [ "f_gunsafe_ml", 90 ], [ "f_gunsafe_o", 10 ] ], "x": "f_sandbag_wall", "g": "f_sofa", - "f": "f_fridge" + "f": "f_fridge", + "/": "f_flagpole" }, + "item": { "/": { "item": "american_flag" } }, "items": { "X": { "item": "SUS_gunstore_safe", "chance": 20 }, "O": { "item": "SUS_gunstore_safe_obscure", "chance": 25 }, @@ -1340,7 +1287,11 @@ "chance": 45 }, "Q": { - "item": { "subtype": "collection", "//": "bulk casing on racks in the FoH", "entries": [ { "group": "ammo_casings_bulk" } ] }, + "item": { + "subtype": "collection", + "//": "bulk casing on racks in the FoH", + "entries": [ { "group": "ammo_casings_gunsmith_bulk" } ] + }, "chance": 25 }, "=": { @@ -1514,29 +1465,23 @@ "terrain": { " ": [ "t_region_groundcover" ], "_": [ [ "t_railroad_rubble", 2 ], [ "t_region_groundcover_barren", 6 ], [ "t_region_groundcover", 2 ] ], - "%": "t_open_air", - "#": "t_brick_wall", - "w": "t_window", "*": [ "t_region_shrub", "t_region_groundcover" ], + "7": [ "t_region_tree_evergreen", "t_region_tree" ], "1": "t_trunk", "2": "t_stump", - "7": [ "t_region_tree_evergreen", "t_region_tree" ], + "o": "t_concrete", + "v": "t_chainfence", + "V": "t_chaingate_l", + "w": "t_window", ";": "t_door_metal_locked", - ".": "t_thconc_floor", - "6": "t_gates_mech_control", - "=": "t_conveyor", + "6": "t_gates_mech_control_lab", "+": "t_door_c", "!": "t_door_locked_interior", - "v": "t_chainfence", - "V": "t_chaingate_l", + "#": "t_brick_wall", + ".": "t_thconc_floor", "x": "t_thconc_floor", - "z": "t_flat_roof", - "-": "t_gutter_north", - "|": "t_gutter_east", - "3": "t_gutter_south", - "4": "t_gutter_west", - "5": "t_gutter_drop", - ",": "t_thconc_floor" + ",": "t_thconc_floor", + "=": "t_conveyor" }, "furniture": { "@": "f_machinery_heavy", @@ -1547,37 +1492,32 @@ "P": "f_planer", "R": "f_router", "T": "f_tablesaw", + "p": "f_drill_press", "U": "f_utility_shelf", + "r": "f_utility_shelf", + "L": "f_rack", "X": "f_console_broken", - "p": "f_drill_press", "i": "f_filing_cabinet", "&": "f_trashcan", "C": "f_counter", - "D": "f_vending_c", - "F": "f_vending_c", "S": "f_sink", "b": "f_bench", "$": "f_shower", "l": "f_locker", - "L": "f_rack", - "r": "f_utility_shelf", "m": "f_locker", "c": "f_chair", "n": "f_table", "d": "f_desk", "f": "f_fridge", - "t": "f_toilet", "x": [ [ "f_crate_c", 2 ], "f_crate_o" ], "O": "f_crate_o" }, "toilets": { "t": { } }, "items": { - "F": { "item": "vending_food", "chance": 5 }, - "D": { "item": "vending_drink", "chance": 5 }, "x": { "item": "lumberyard", "chance": 90, "repeat": [ 3, 5 ] }, "&": { "item": "trash", "chance": 75, "repeat": [ 2, 3 ] }, - "d": { "item": "office", "chance": 45, "repeat": [ 1, 2 ] }, - "f": { "item": "fridgesnacks", "chance": 20, "repeat": [ 1, 2 ] }, + "d": { "item": "SUS_office_desk", "chance": 33 }, + "f": { "item": "SUS_fridge_breakroom", "chance": 20 }, "n": [ { "item": "snacks", "chance": 25, "repeat": [ 1, 2 ] }, { "item": "magazines", "chance": 10 } ], "=": { "item": "lumberyard", "chance": 20, "repeat": [ 1, 2 ] }, "l": { "item": "clothing_work_set", "chance": 20 }, @@ -1585,7 +1525,8 @@ "r": { "item": "tools_tree_cutting", "chance": 20, "repeat": [ 1, 3 ] }, "m": [ { "item": "softdrugs", "chance": 20 }, { "item": "harddrugs", "chance": 20 } ] }, - "item": { "O": { "item": "2x4", "repeat": [ 2, 20 ] }, ",": { "item": "splinter", "chance": 10, "repeat": [ 1, 5 ] } } + "item": { "O": { "item": "2x4", "repeat": [ 2, 20 ] }, ",": { "item": "splinter", "chance": 10, "repeat": [ 1, 5 ] } }, + "vendingmachines": { "D": { "item_group": "vending_drink", "lootable": true }, "F": { "item_group": "vending_food", "lootable": true } } }, { "type": "palette", diff --git a/data/Mainline_mods/Mods/No_Hope/recipes.json b/data/Mainline_mods/Mods/No_Hope/recipes.json new file mode 100644 index 000000000..c3ba5341b --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/recipes.json @@ -0,0 +1,54 @@ +[ + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "lobotomizer", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_TOOLS", + "skill_used": "fabrication", + "difficulty": 9, + "time": "7 h 20 m", + "autolearn": true, + "book_learn": [ [ "manual_fabrication", 8 ], [ "textbook_fabrication", 6 ] ], + "using": [ [ "blacksmithing_standard", 24 ], [ "steel_standard", 6 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_toolsmithing" } + ], + "tools": [ [ [ "hotcut", -1 ] ] ] + }, + { + "result": "broken_laserturret", + "type": "uncraft", + "skill_used": "electronics", + "difficulty": 4, + "time": "1 h", + "using": [ [ "soldering_standard", 10 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ + [ [ "ai_module", 1 ] ], + [ [ "gun_module", 1 ] ], + [ [ "targeting_module", 1 ] ], + [ [ "identification_module", 1 ] ], + [ [ "sensor_module", 1 ] ], + [ [ "v29_turret", 1 ] ], + [ [ "medium_storage_battery", 1 ] ], + [ [ "solar_cell", 4 ] ], + [ [ "power_supply", 1 ] ], + [ [ "robot_controls", 1 ] ], + [ [ "turret_chassis", 1 ] ] + ] + }, + { + "result": "reverse_jointed_legs", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "mechanics", + "difficulty": 4, + "time": "6 h 40 m", + "using": [ [ "soldering_standard", 5 ] ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ [ [ "motor_tiny", 6 ] ], [ [ "power_supply", 6 ] ], [ [ "cable", 12 ] ], [ [ "steel_chunk", 6 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/regional_map_settings.json b/data/Mainline_mods/Mods/No_Hope/regional_map_settings.json index cbbe834b7..360d85c15 100644 --- a/data/Mainline_mods/Mods/No_Hope/regional_map_settings.json +++ b/data/Mainline_mods/Mods/No_Hope/regional_map_settings.json @@ -37,18 +37,17 @@ "t_region_soil": { "t_dirt": 1 }, "t_region_shrub": { "t_underbrush": 30, - "t_shrub": 10, + "t_shrub": 15, "t_fern": 5, "t_shrub_blueberry": 2, "t_shrub_strawberry": 2, "t_shrub_blackberry": 2, "t_shrub_raspberry": 2, "t_shrub_huckleberry": 2, - "t_shrub_grape": 1, "t_shrub_rose": 2, "t_shrub_hydrangea": 2, "t_shrub_lilac": 2, - "t_shrub_peanut": 1 + "t_shrub_grape": 1 }, "t_region_shrub_fruit": { "t_shrub_blueberry": 6, @@ -59,13 +58,45 @@ "t_shrub_huckleberry": 2, "t_shrub_peanut": 1 }, - "t_region_shrub_decorative": { "t_shrub": 3, "t_fern": 1, "t_shrub_rose": 2, "t_shrub_hydrangea": 2, "t_shrub_lilac": 2 }, + "t_region_shrub_decorative": { "t_shrub": 3, "t_fern": 1, "t_shrub_rose": 2, "t_shrub_hydrangea": 2, "t_shrub_lilac": 2, "t_bamboo_long": 1 }, + "t_region_tree_forest_dense": { + "t_tree": 18, + "t_tree_blackjack": 10, + "t_tree_hickory": 18, + "t_tree_pine": 9, + "t_tree_maple": 7, + "t_tree_birch": 7, + "t_tree_beech": 7, + "t_tree_cottonwood": 4, + "t_tree_elm": 4, + "t_tree_cherry": 4, + "t_tree_plum": 2, + "t_region_tree_dead": 5, + "t_region_tree_forest_other": 5 + }, + "t_region_tree_forest_other": { + "t_tree_willow": 15, + "t_tree_alder": 15, + "t_tree_chestnut": 10, + "t_tree_basswood": 10, + "t_tree_hazelnut": 10, + "t_tree_apple": 10, + "t_tree_coffee": 1, + "t_tree_apricot": 2, + "t_tree_peach": 1, + "t_tree_pear": 1, + "t_tree_elderberry": 10, + "t_tree_mulberry": 10, + "t_tree_juniper": 5 + }, + "t_region_tree_forest": { "t_region_tree_forest_dense": 2, "t_region_tree_forest_other": 1 }, "t_region_tree": { "t_tree": 128, "t_tree_young": 128, "t_tree_birch": 16, "t_tree_elm": 16, "t_tree_cottonwood": 16, + "t_tree_basswood": 16, "t_tree_alder": 16, "t_tree_pine": 32, "t_tree_maple": 32, @@ -86,9 +117,7 @@ "t_tree_plum": 2, "t_tree_elderberry": 2, "t_tree_mulberry": 2, - "t_tree_deadpine": 16, - "t_tree_hickory_dead": 16, - "t_tree_dead": 16 + "t_region_tree_dead": 48 }, "t_region_tree_shade": { "t_tree": 64, @@ -96,6 +125,7 @@ "t_tree_birch": 16, "t_tree_elm": 16, "t_tree_cottonwood": 16, + "t_tree_basswood": 16, "t_tree_alder": 16, "t_tree_maple": 32, "t_tree_willow": 32, @@ -119,15 +149,22 @@ "t_tree_mulberry": 2, "t_tree_dead": 4 }, + "t_region_tree_dead": { + "t_tree_hickory_dead": 8, + "t_tree_dead": 7, + "t_tree_dead_warped": 1, + "t_tree_deadpine": 3, + "t_tree_deadpine_warped": 1 + }, "t_region_tree_nut": { - "t_tree_young": 4, "t_tree_hickory": 16, - "t_tree_beech": 2, + "t_tree_hickory_dead": 16, "t_tree_walnut": 8, "t_tree_chestnut": 8, + "t_tree_young": 4, + "t_tree_beech": 2, "t_tree_hazelnut": 2, "t_tree_coffee": 2, - "t_tree_hickory_dead": 16, "t_tree_dead": 4 }, "t_region_tree_evergreen": { "t_tree_pine": 32, "t_tree_juniper": 16, "t_tree_deadpine": 2 } @@ -138,12 +175,9 @@ "f_lily": 100, "f_flower_tulip": 100, "f_flower_spurge": 100, - "f_burdock": 100, "f_chamomile": 100, "f_dandelion": 100, - "f_datura": 100, "f_dahlia": 100, - "f_chicory": 100, "f_bluebell": 100, "f_sunflower": 100 }, @@ -151,27 +185,69 @@ "f_lily": 4, "f_flower_tulip": 4, "f_black_eyed_susan": 3, - "f_dahlia": 2, "f_bluebell": 2, + "f_maianthemum_stellatum": 2, "f_flower_spurge": 1, + "f_dahlia": 1, + "f_salsify": 1, "f_chicory": 1, "f_sunflower": 1 }, "f_region_weed": { - "f_dandelion": 600, - "f_flower_spurge": 400, "f_chamomile": 400, + "f_carrot_wild": 300, + "f_salsify": 300, "f_datura": 300, + "f_japanese_knotweed": 300, "f_bluebell": 200, "f_burdock": 100, "f_dahlia": 100, - "f_black_eyed_susan": 100, "f_lily": 100, - "f_flower_tulip": 100, - "f_mutpoppy": 100, "f_sunflower": 100, "f_mustard": 100 }, + "f_region_plain": { + "f_dandelion": 600, + "f_flower_spurge": 400, + "f_chamomile": 400, + "f_carrot_wild": 300, + "f_salsify": 300, + "f_datura": 300, + "f_japanese_knotweed": 200, + "f_dahlia": 200, + "f_maianthemum_stellatum": 200, + "f_mutpoppy": 200, + "f_black_eyed_susan": 100, + "f_flower_tulip": 100, + "f_mustard": 100, + "f_sunflower": 100, + "f_jerusalem_artichoke": 100, + "f_lily": 100, + "f_chicory": 100 + }, + "f_region_forest": { + "f_burdock": 2000, + "f_bluebell": 600, + "f_wild_sarsaparilla": 600, + "f_lily": 500, + "f_chamomile": 500, + "f_japanese_knotweed": 300, + "f_carrot_wild": 300, + "f_salsify": 300, + "f_dahlia": 200, + "f_mutpoppy": 100, + "f_maianthemum_stellatum": 100, + "f_wintergreen": 100 + }, + "f_region_forest_dense": { + "f_burdock": 2000, + "f_bluebell": 800, + "f_lily": 500, + "f_wild_sarsaparilla": 400, + "f_salsify": 300, + "f_wintergreen": 200 + }, + "f_region_forest_water": { "f_burdock": 4, "f_japanese_knotweed": 2, "f_lily": 1 }, "f_region_water_plant": { "f_cattails": 15, "f_lilypad": 1, "f_lotus": 5 } } }, @@ -182,8 +258,7 @@ "other": { "t_region_tree": 1, "t_region_shrub": 3, - "f_region_weed": 49, - "f_region_flower": 37, + "f_region_plain": 49, "f_boulder_small": 5, "f_boulder_medium": 4, "f_boulder_large": 1 @@ -196,6 +271,7 @@ "t_tree_birch": 0.05, "t_tree_elm": 0.05, "t_tree_cottonwood": 0.05, + "t_tree_basswood": 0.07, "t_tree_alder": 2, "t_tree_pine": 0.1, "t_tree_maple": 0.1, @@ -216,9 +292,7 @@ "t_tree_plum": 0.02, "t_tree_elderberry": 0.02, "t_tree_mulberry": 0.02, - "t_tree_deadpine": 0.05, - "t_tree_hickory_dead": 0.05, - "t_tree_dead": 0.05, + "t_region_tree_dead": 0.15, "t_shrub_blueberry": 8.0, "t_shrub_strawberry": 5.0, "t_shrub_blackberry": 5.0, @@ -275,8 +349,8 @@ "groundcover": { "t_region_groundcover_forest": 1 }, "clear_components": false, "components": { - "trees": { "sequence": 0, "chance": 12, "clear_types": false, "types": { "t_region_tree": 128 } }, - "shrubs_and_flowers": { "sequence": 1, "chance": 10, "clear_types": false, "types": { "t_region_shrub": 100, "f_region_weed": 20 } }, + "trees": { "sequence": 0, "chance": 12, "clear_types": false, "types": { "t_region_tree_forest": 128, "t_tree_young": 32 } }, + "shrubs_and_flowers": { "sequence": 1, "chance": 10, "clear_types": false, "types": { "t_region_shrub": 120, "f_region_forest": 10 } }, "clutter": { "sequence": 2, "chance": 80, @@ -300,7 +374,6 @@ "forest_thick": { "terrains": [ "forest_thick", - "special_forest_thick", "forest_trail_isolated", "forest_trail_end_north", "forest_trail_end_east", @@ -316,7 +389,79 @@ "forest_trail_nsw", "forest_trail_esw", "forest_trail_nes", - "forest_trail_nesw" + "forest_trail_nesw", + "campsite_north", + "campsite_south", + "campsite_east", + "campsite_west", + "campsite_cabin_incomplete_north", + "campsite_cabin_incomplete_south", + "campsite_cabin_incomplete_east", + "campsite_cabin_incomplete_west", + "campsite_field_biker_north", + "campsite_field_biker_south", + "campsite_field_biker_east", + "campsite_field_biker_west", + "campsite_field_biker_destroyed_north", + "campsite_field_biker_destroyed_south", + "campsite_field_biker_destroyed_east", + "campsite_field_biker_destroyed_west", + "campsite_a_north", + "campsite_a_south", + "campsite_a_east", + "campsite_a_west", + "desolatebarn_north", + "desolatebarn_south", + "desolatebarn_east", + "desolatebarn_west", + "derelict_property_north", + "derelict_property_south", + "derelict_property_east", + "derelict_property_west", + "homelesscamp_north", + "homelesscamp_south", + "homelesscamp_east", + "homelesscamp_west", + "spider_pit_north", + "spider_pit_south", + "spider_pit_east", + "spider_pit_west", + "central_lab_entrance", + "moonshine_still_north", + "moonshine_still_south", + "moonshine_still_east", + "moonshine_still_west", + "moonshine_still_1_north", + "moonshine_still_1_south", + "moonshine_still_1_east", + "moonshine_still_1_west", + "moonshine_still_2_north", + "moonshine_still_2_south", + "moonshine_still_2_east", + "moonshine_still_2_west", + "standing_stones", + "ws_survivor_bunker_f0_north", + "ws_survivor_bunker_f0_south", + "ws_survivor_bunker_f0_east", + "ws_survivor_bunker_f0_west", + "bandit_cabin_north", + "bandit_cabin_south", + "bandit_cabin_east", + "bandit_cabin_west", + "bandit_garage_1_north", + "bandit_garage_1_south", + "bandit_garage_1_east", + "bandit_garage_1_west", + "bandit_garage_2_north", + "bandit_garage_2_south", + "bandit_garage_2_east", + "bandit_garage_2_west", + "natural_spring_north", + "natural_spring_south", + "natural_spring_east", + "natural_spring_west", + "cave", + "special_forest_thick" ], "sparseness_adjacency_factor": 4, "item_group": "forest", @@ -326,8 +471,8 @@ "groundcover": { "t_region_groundcover_forest": 1 }, "clear_components": false, "components": { - "trees": { "sequence": 0, "chance": 5, "clear_types": false, "types": { "t_region_tree": 100 } }, - "shrubs_and_flowers": { "sequence": 1, "chance": 5, "clear_types": false, "types": { "t_region_shrub": 100, "f_region_weed": 20 } }, + "trees": { "sequence": 0, "chance": 5, "clear_types": false, "types": { "t_region_tree_forest_dense": 100, "t_tree_young": 5 } }, + "shrubs_and_flowers": { "sequence": 1, "chance": 5, "clear_types": false, "types": { "t_region_shrub": 130, "f_region_forest_dense": 10 } }, "clutter": { "sequence": 2, "chance": 64, @@ -349,7 +494,25 @@ "terrain_furniture": { } }, "forest_water": { - "terrains": [ "forest_water" ], + "terrains": [ + "forest_water", + "hunter_shack_north", + "hunter_shack_south", + "hunter_shack_east", + "hunter_shack_west", + "hunter_shack_1_north", + "hunter_shack_1_south", + "hunter_shack_1_east", + "hunter_shack_1_west", + "shipwreck_river_1_north", + "shipwreck_river_1_south", + "shipwreck_river_1_east", + "shipwreck_river_1_west", + "shipwreck_river_2_north", + "shipwreck_river_2_south", + "shipwreck_river_2_east", + "shipwreck_river_2_west" + ], "sparseness_adjacency_factor": 2, "item_group": "forest", "item_group_chance": 60, @@ -385,12 +548,10 @@ "t_tree_plum": 2, "t_tree_elderberry": 2, "t_tree_mulberry": 2, - "t_tree_deadpine": 30, - "t_tree_hickory_dead": 30, - "t_tree_dead": 30 + "t_region_tree_dead": 90 } }, - "shrubs_and_flowers": { "sequence": 1, "chance": 15, "clear_types": false, "types": { "t_region_shrub": 80, "f_region_weed": 30 } }, + "shrubs_and_flowers": { "sequence": 1, "chance": 15, "clear_types": false, "types": { "t_region_shrub": 80, "f_region_forest_water": 30 } }, "clutter": { "sequence": 2, "chance": 75, @@ -426,34 +587,37 @@ }, "map_extras": { "forest": { - "chance": 20, + "chance": 40, "extras": { - "mx_helicopter": 1, - "mx_military": 8, - "mx_science": 20, - "mx_collegekids": 25, - "mx_drugdeal": 8, - "mx_supplydrop": 8, - "mx_portal": 3, - "mx_crater": 10, - "mx_portal_in": 3, - "mx_grass": 20, - "mx_grass2": 40, - "mx_fallen_shed": 30, - "mx_spider": 200, - "mx_nest_wasp": 100, + "mx_blackberry_patch": 1000, + "mx_point_dead_vegetation": 500, + "mx_point_burned_ground": 500, "mx_grove": 500, "mx_shrubbery": 500, + "mx_spider": 200, "mx_clearcut": 125, "mx_pond": 125, "mx_pond_forest": 125, "mx_pond_forest_2": 125, "mx_clay_deposit": 125, - "mx_point_dead_vegetation": 500, - "mx_point_burned_ground": 500, + "mx_knotweed_patch": 120, + "mx_nest_wasp": 50, + "mx_grass2": 40, "mx_casings": 30, + "mx_fallen_shed": 30, "mx_corpses": 30, + "mx_collegekids": 25, + "mx_grass": 20, + "mx_science": 20, + "mx_toxic_waste": 10, + "mx_crater": 10, + "mx_supplydrop": 8, + "mx_military": 8, + "mx_drugdeal": 8, "mx_mass_grave": 5, + "mx_portal": 3, + "mx_portal_in": 3, + "mx_helicopter": 1, "mx_exocrash_1": 1, "mx_exocrash_2": 1, "mx_bandits_ambush": 5, @@ -462,37 +626,39 @@ } }, "forest_thick": { - "chance": 20, + "chance": 30, "extras": { - "mx_helicopter": 1, - "mx_military": 8, - "mx_science": 20, - "mx_collegekids": 25, - "mx_drugdeal": 20, - "mx_supplydrop": 10, - "mx_portal": 3, - "mx_crater": 10, - "mx_portal_in": 3, - "mx_grass": 10, - "mx_grass2": 20, - "mx_fallen_shed": 20, - "mx_shia": 1, - "mx_spider": 200, - "mx_nest_wasp": 100, - "mx_jabberwock": 1, + "mx_blackberry_patch": 1300, "mx_grove": 500, "mx_shrubbery": 500, + "mx_point_dead_vegetation": 500, + "mx_point_burned_ground": 500, + "mx_spider": 200, "mx_clearcut": 125, "mx_pond": 125, "mx_pond_forest": 125, "mx_pond_forest_2": 125, "mx_clay_deposit": 125, - "mx_point_dead_vegetation": 500, - "mx_point_burned_ground": 500, + "mx_knotweed_patch": 100, "mx_casings": 30, "mx_corpses": 30, + "mx_science": 20, + "mx_nest_wasp": 25, + "mx_collegekids": 25, + "mx_drugdeal": 20, + "mx_grass2": 20, + "mx_fallen_shed": 20, + "mx_toxic_waste": 15, + "mx_crater": 10, + "mx_grass": 10, + "mx_military": 8, "mx_mass_grave": 5, + "mx_supplydrop": 5, + "mx_portal": 3, + "mx_portal_in": 3, + "mx_jabberwock": 1, "mx_exocrash_1": 1, + "mx_helicopter": 1, "mx_exocrash_2": 1, "mx_bandits_ambush": 5, "mx_bandits_grave": 2, @@ -501,28 +667,29 @@ }, "forest_water": { "chance": 20, - "//": "weights normalised to 1000", "extras": { - "mx_helicopter": 5, - "mx_military": 25, - "mx_science": 50, - "mx_drugdeal": 20, - "mx_supplydrop": 25, - "mx_portal": 8, - "mx_crater": 20, - "mx_portal_in": 7, - "mx_fallen_shed": 10, - "mx_spider": 200, - "mx_grass": 10, - "mx_grass2": 20, "mx_pond": 240, "mx_pond_swamp": 240, "mx_pond_swamp_2": 240, + "mx_spider": 200, "mx_clay_deposit": 140, + "mx_knotweed_patch": 140, + "mx_nest_dermatik": 75, "mx_point_dead_vegetation": 60, + "mx_science": 50, + "mx_military": 25, + "mx_supplydrop": 25, + "mx_crater": 20, + "mx_drugdeal": 20, + "mx_fallen_shed": 10, "mx_casings": 60, "mx_corpses": 80, - "mx_nest_dermatik": 50, + "mx_grass2": 20, + "mx_grass": 10, + "mx_toxic_waste": 10, + "mx_portal": 8, + "mx_portal_in": 7, + "mx_helicopter": 5, "mx_exocrash_1": 1, "mx_exocrash_2": 1, "mx_bandits_ambush": 5, @@ -533,31 +700,32 @@ "field": { "chance": 6, "extras": { - "mx_helicopter": 2, - "mx_military": 4, - "mx_science": 10, - "mx_collegekids": 30, - "mx_drugdeal": 30, - "mx_supplydrop": 40, - "mx_portal": 10, - "mx_crater": 150, - "mx_portal_in": 10, - "mx_point_dead_vegetation": 500, "mx_grass": 3500, "mx_grass2": 3500, - "mx_trees": 500, "mx_trees2": 800, - "mx_Trapdoor_spider_den": 40, + "mx_point_burned_ground": 500, + "mx_point_dead_vegetation": 500, + "mx_trees": 500, + "mx_knotweed_patch": 250, "mx_fallen_shed": 200, "mx_pond": 200, - "mx_point_burned_ground": 500, "mx_casings": 200, - "mx_corpses": 30, + "mx_crater": 150, "mx_nest_wasp": 50, "mx_mass_grave": 50, "mx_grave": 50, - "mx_exocrash_1": 10, - "mx_exocrash_2": 10, + "mx_supplydrop": 40, + "mx_Trapdoor_spider_den": 40, + "mx_collegekids": 30, + "mx_drugdeal": 30, + "mx_corpses": 30, + "mx_toxic_waste": 10, + "mx_portal": 10, + "mx_portal_in": 10, + "mx_science": 10, + "mx_military": 4, + "mx_exocrash_1": 5, + "mx_exocrash_2": 5, "mx_bandits_ambush": 10, "mx_bandits_campsite": 10, "mx_bandits_grave": 10, @@ -571,7 +739,8 @@ "mx_military": 50, "mx_science": 400, "mx_collegekids": 500, - "mx_roadblock": 1000, + "mx_roadblock": 830, + "mx_roadblock_mil": 170, "mx_bandits_block": 800, "mx_drugdeal": 300, "mx_supplydrop": 100, @@ -584,8 +753,8 @@ "mx_corpses": 300, "mx_prison_bus": 150, "mx_prison_van": 10, - "mx_exocrash_1": 10, - "mx_exocrash_2": 10, + "mx_exocrash_1": 5, + "mx_exocrash_2": 5, "mx_bandits_ambush": 100 } }, @@ -594,8 +763,9 @@ "build": { "chance": 90, "extras": { + "mx_bugout": 20, "mx_house_spider": 40, - "mx_house_wasp": 60, + "mx_house_wasp": 30, "mx_military": 5, "mx_science": 12, "mx_collegekids": 15, @@ -645,32 +815,7 @@ }, "river": { "chance": 3, "extras": { "mx_reed": 100 } }, "lake_shore": { "chance": 2, "extras": { "mx_reed": 100 } }, - "sewer": { - "chance": 1, - "extras": { - "mx_sewer_round": 40, - "mx_sewer_grid": 20, - "mx_sewer_grid2": 20, - "mx_sewer_mntE": 10, - "mx_sewer_mntW": 10, - "mx_sewer_mntN": 10, - "mx_sewer_mntS": 10, - "mx_sewer_grateE": 10, - "mx_sewer_grateW": 10, - "mx_sewer_grateN": 10, - "mx_sewer_grateS": 10, - "mx_sewer_pipesA": 30, - "mx_sewer_pipesB": 30, - "mx_sewer_pipesC": 30, - "mx_sewer_pipesD": 30, - "mx_sewer_pipesE": 30, - "mx_sewer_pipesF": 30, - "mx_sewer_pipesG": 30, - "mx_sewer_pipesH": 30, - "mx_sewer_pipesI": 30, - "mx_sewer_pipesJ": 30 - } - } + "sewer": { "chance": 80, "extras": { "mx_null": 100 } } }, "city": { "shop_radius": 30, @@ -679,8 +824,12 @@ "park_sigma": 80, "houses": { "2storyModern01": 5, + "2storyModern02": 50, + "2StoryModern03": 50, "house_w_1": 50, "house_two_story_basement": 50, + "multi_unit_two_story_basement": 40, + "multi_unit_three_story_basement": 30, "house_crack1": 5, "house_crack2": 5, "house_crack3": 5, @@ -782,6 +931,7 @@ "house_inner_garden": 50, "urban_1_house": 50, "urban_2_house": 50, + "urban_dd_house": 1, "urban_3_house": 50, "urban_4_house_basement": 50, "urban_5_house": 50, @@ -797,17 +947,17 @@ "urban_17_house_ranch": 50, "urban_18_victorian": 50, "emptyresidentiallot": 20, - "house_vacant": 20, - "house_vacant2": 20, + "house_vacant": 7, + "house_vacant1": 7, + "house_vacant2": 7, + "house_vacant3": 7, "apartments_con_new": 10, "apartments_mod_new": 10, "s_apt": 30, "s_apt_2": 30, "school": 15, "motel_city": 10, - "fishing_pond_city": 10, - "trailerpark_city": 15, - "railroad_city": 5 + "fishing_pond_city": 10 }, "parks": { "park": 50, @@ -830,7 +980,8 @@ "volleyball_court": 30, "tennis_court": 30, "baskeball_court": 30, - "skate_park": 30, + "skate_park_ramp": 20, + "skate_park": 20, "park_maze": 10, "park_maze_2": 10, "small_wooded_trail": 30, @@ -850,6 +1001,7 @@ "botanical_garden": 100, "zoo": 25, "stadium": 25, + "stadium_football": 25, "cemetery_city": 50, "public_pond_city": 50, "cemetery_religious_city": 25, @@ -862,6 +1014,8 @@ "shops": { "bus_station": 200, "city_block_2": 300, + "textile_mill_museum": 50, + "abandoned_textile_mill": 20, "s_apt": 50, "s_apt_2": 50, "urban_13_dense_house_apt_house": 300, @@ -877,6 +1031,7 @@ "s_gas_1": 500, "s_pharm": 300, "s_pharm_1": 300, + "s_cosmetic": 300, "s_grocery": 1500, "s_grocery_1": 1500, "s_hardware": 400, @@ -964,6 +1119,7 @@ "police": 100, "police_1": 100, "police_2": 100, + "police_dept": 1250, "fire_station": 200, "fire_station_1": 200, "home_improvement": 200, @@ -973,6 +1129,7 @@ "s_jewelry_shop": 200, "s_antique": 200, "s_gardening": 200, + "s_dive_shop": 300, "museum": 100, "s_music": 200, "s_laundromat": 100, @@ -994,7 +1151,7 @@ "art_gallery": 200, "small_storage_units": 150, "small_storage_units_1": 150, - "construction_site": 400, + "construction_site": 600, "post_office": 200, "post_office_1": 200, "candy_shop": 200, @@ -1045,7 +1202,8 @@ "public_works": 200, "office_tower": 150, "office_tower_2": 150, - "office_tower_large": 500, + "office_skyscraper": 300, + "office_tower_large": 300, "office_tower_hiddenlab": 50, "mall": 100, "home_improvement_superstore_new": 150, @@ -1067,30 +1225,18 @@ "cs_sex_shop": 100, "cs_tire_shop": 100, "homeless_shelter": 100, - "parking_garage": 200 + "parking_garage": 200, + "salon": 500, + "strip_mall": 750 } }, "weather": { - "base_temperature": 1.5, - "base_humidity": 70.0, + "base_temperature": 6.5, + "base_humidity": 90.0, "base_pressure": 1015.0, "base_wind": 3.4, "base_wind_distrib_peaks": 80, - "base_wind_season_variation": 50, - "weather_types": [ - "clear", - "sunny", - "cloudy", - "light_drizzle", - "drizzle", - "rain", - "thunder", - "lightning", - "flurries", - "snowing", - "snowstorm", - "portal_storm" - ] + "base_wind_season_variation": 50 }, "overmap_feature_flag_settings": { "clear_blacklist": false, "blacklist": [ ], "clear_whitelist": false, "whitelist": [ ] } } diff --git a/data/Mainline_mods/Mods/No_Hope/road_vehicles_nested.json b/data/Mainline_mods/Mods/No_Hope/road_vehicles_nested.json new file mode 100644 index 000000000..5a19d2cd9 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/road_vehicles_nested.json @@ -0,0 +1,1007 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_end_vehicles", + "weight": 999999, + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0, 3 ], + "place_nested": [ + { + "chunks": [ + [ "24x24_road_vehicles_wr_city_parked_south", 250000 ], + [ "24x24_road_vehicles_city_parked_south", 1000 ], + [ "null", 749000 ] + ], + "x": 0, + "y": 0, + "flags_any": { + "north": [ "SIDEWALK" ], + "north_east": [ "SIDEWALK" ], + "east": [ "SIDEWALK" ], + "south_east": [ "SIDEWALK" ], + "south": [ "SIDEWALK" ], + "south_west": [ "SIDEWALK" ], + "west": [ "SIDEWALK" ], + "north_west": [ "SIDEWALK" ] + } + }, + { + "else_chunks": [ + [ "24x24_road_vehicles_wr_country_out_of_fuel_south", 50000 ], + [ "24x24_road_vehicles_country_out_of_fuel_south", 100 ], + [ "null", 949900 ] + ], + "x": 0, + "y": 0, + "flags_any": { + "north": [ "SIDEWALK" ], + "north_east": [ "SIDEWALK" ], + "east": [ "SIDEWALK" ], + "south_east": [ "SIDEWALK" ], + "south": [ "SIDEWALK" ], + "south_west": [ "SIDEWALK" ], + "west": [ "SIDEWALK" ], + "north_west": [ "SIDEWALK" ] + } + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_straight_vehicles", + "weight": 999999, + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ + [ "24x24_road_vehicles_wr_city_parked_north", 125000 ], + [ "24x24_road_vehicles_wr_city_parked_south", 125000 ], + [ "24x24_road_vehicles_city_parked_north", 500 ], + [ "24x24_road_vehicles_city_parked_south", 500 ], + [ "null", 749000 ] + ], + "x": 0, + "y": 0, + "flags_any": { + "north": [ "SIDEWALK" ], + "north_east": [ "SIDEWALK" ], + "east": [ "SIDEWALK" ], + "south_east": [ "SIDEWALK" ], + "south": [ "SIDEWALK" ], + "south_west": [ "SIDEWALK" ], + "west": [ "SIDEWALK" ], + "north_west": [ "SIDEWALK" ] + } + }, + { + "else_chunks": [ + [ "24x24_road_vehicles_wr_country_out_of_fuel_north", 25000 ], + [ "24x24_road_vehicles_wr_country_out_of_fuel_south", 25000 ], + [ "24x24_road_vehicles_country_out_of_fuel_north", 50 ], + [ "24x24_road_vehicles_country_out_of_fuel_south", 50 ], + [ "null", 949900 ] + ], + "x": 0, + "y": 0, + "flags_any": { + "north": [ "SIDEWALK" ], + "north_east": [ "SIDEWALK" ], + "east": [ "SIDEWALK" ], + "south_east": [ "SIDEWALK" ], + "south": [ "SIDEWALK" ], + "south_west": [ "SIDEWALK" ], + "west": [ "SIDEWALK" ], + "north_west": [ "SIDEWALK" ] + } + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_curved_vehicles", + "weight": 999999, + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0, 3 ], + "place_nested": [ + { + "chunks": [ + [ "24x24_road_vehicles_wr_city_parked_east", 125000 ], + [ "24x24_road_vehicles_wr_city_parked_south", 125000 ], + [ "24x24_road_vehicles_city_parked_east", 500 ], + [ "24x24_road_vehicles_city_parked_south", 500 ], + [ "null", 749000 ] + ], + "x": 0, + "y": 0, + "flags_any": { + "north": [ "SIDEWALK" ], + "north_east": [ "SIDEWALK" ], + "east": [ "SIDEWALK" ], + "south_east": [ "SIDEWALK" ], + "south": [ "SIDEWALK" ], + "south_west": [ "SIDEWALK" ], + "west": [ "SIDEWALK" ], + "north_west": [ "SIDEWALK" ] + } + }, + { + "else_chunks": [ + [ "24x24_road_vehicles_wr_country_out_of_fuel_east", 25000 ], + [ "24x24_road_vehicles_wr_country_out_of_fuel_south", 25000 ], + [ "24x24_road_vehicles_country_out_of_fuel_east", 50 ], + [ "24x24_road_vehicles_country_out_of_fuel_south", 50 ], + [ "null", 949900 ] + ], + "x": 0, + "y": 0, + "flags_any": { + "north": [ "SIDEWALK" ], + "north_east": [ "SIDEWALK" ], + "east": [ "SIDEWALK" ], + "south_east": [ "SIDEWALK" ], + "south": [ "SIDEWALK" ], + "south_west": [ "SIDEWALK" ], + "west": [ "SIDEWALK" ], + "north_west": [ "SIDEWALK" ] + } + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_tee_vehicles", + "weight": 999999, + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ + [ "24x24_road_vehicles_wr_city_parked_east", 125000 ], + [ "24x24_road_vehicles_wr_city_parked_south", 125000 ], + [ "24x24_road_vehicles_wr_city_parked_west", 125000 ], + [ "24x24_road_vehicles_city_parked_east", 500 ], + [ "24x24_road_vehicles_city_parked_south", 500 ], + [ "24x24_road_vehicles_city_parked_west", 500 ], + [ "null", 1123500 ] + ], + "x": 0, + "y": 0, + "flags_any": { + "north": [ "SIDEWALK" ], + "north_east": [ "SIDEWALK" ], + "east": [ "SIDEWALK" ], + "south_east": [ "SIDEWALK" ], + "south": [ "SIDEWALK" ], + "south_west": [ "SIDEWALK" ], + "west": [ "SIDEWALK" ], + "north_west": [ "SIDEWALK" ] + } + }, + { + "else_chunks": [ + [ "24x24_road_vehicles_wr_country_out_of_fuel_east", 25000 ], + [ "24x24_road_vehicles_wr_country_out_of_fuel_south", 25000 ], + [ "24x24_road_vehicles_wr_country_out_of_fuel_west", 25000 ], + [ "24x24_road_vehicles_country_out_of_fuel_east", 50 ], + [ "24x24_road_vehicles_country_out_of_fuel_south", 50 ], + [ "24x24_road_vehicles_country_out_of_fuel_west", 50 ], + [ "null", 1424850 ] + ], + "x": 0, + "y": 0, + "flags_any": { + "north": [ "SIDEWALK" ], + "north_east": [ "SIDEWALK" ], + "east": [ "SIDEWALK" ], + "south_east": [ "SIDEWALK" ], + "south": [ "SIDEWALK" ], + "south_west": [ "SIDEWALK" ], + "west": [ "SIDEWALK" ], + "north_west": [ "SIDEWALK" ] + } + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_four_way_crossroad_vehicles", + "weight": 999999, + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0, 3 ], + "place_nested": [ + { + "chunks": [ + [ "24x24_road_vehicles_wr_city_parked_north", 125000 ], + [ "24x24_road_vehicles_wr_city_parked_east", 125000 ], + [ "24x24_road_vehicles_wr_city_parked_south", 125000 ], + [ "24x24_road_vehicles_wr_city_parked_west", 125000 ], + [ "24x24_road_vehicles_city_parked_north", 500 ], + [ "24x24_road_vehicles_city_parked_east", 500 ], + [ "24x24_road_vehicles_city_parked_south", 500 ], + [ "24x24_road_vehicles_city_parked_west", 500 ], + [ "null", 1498000 ] + ], + "x": 0, + "y": 0, + "flags_any": { + "north": [ "SIDEWALK" ], + "north_east": [ "SIDEWALK" ], + "east": [ "SIDEWALK" ], + "south_east": [ "SIDEWALK" ], + "south": [ "SIDEWALK" ], + "south_west": [ "SIDEWALK" ], + "west": [ "SIDEWALK" ], + "north_west": [ "SIDEWALK" ] + } + }, + { + "else_chunks": [ + [ "24x24_road_vehicles_wr_country_out_of_fuel_north", 25000 ], + [ "24x24_road_vehicles_wr_country_out_of_fuel_east", 25000 ], + [ "24x24_road_vehicles_wr_country_out_of_fuel_south", 25000 ], + [ "24x24_road_vehicles_wr_country_out_of_fuel_west", 25000 ], + [ "24x24_road_vehicles_country_out_of_fuel_north", 50 ], + [ "24x24_road_vehicles_country_out_of_fuel_east", 50 ], + [ "24x24_road_vehicles_country_out_of_fuel_south", 50 ], + [ "24x24_road_vehicles_country_out_of_fuel_west", 50 ], + [ "null", 1899800 ] + ], + "x": 0, + "y": 0, + "flags_any": { + "north": [ "SIDEWALK" ], + "north_east": [ "SIDEWALK" ], + "east": [ "SIDEWALK" ], + "south_east": [ "SIDEWALK" ], + "south": [ "SIDEWALK" ], + "south_west": [ "SIDEWALK" ], + "west": [ "SIDEWALK" ], + "north_west": [ "SIDEWALK" ] + } + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_north", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ + "24x24_road_vehicles_wr_country_out_of_fuel_north_north_facing", + "24x24_road_vehicles_wr_country_out_of_fuel_north_south_facing" + ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_east", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ + "24x24_road_vehicles_wr_country_out_of_fuel_east_east_facing", + "24x24_road_vehicles_wr_country_out_of_fuel_east_west_facing" + ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_south", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ + "24x24_road_vehicles_wr_country_out_of_fuel_south_north_facing", + "24x24_road_vehicles_wr_country_out_of_fuel_south_south_facing" + ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_west", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ + "24x24_road_vehicles_wr_country_out_of_fuel_west_east_facing", + "24x24_road_vehicles_wr_country_out_of_fuel_west_west_facing" + ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_north_north_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ { "vehicle": "highway", "x": [ 15, 17 ], "y": 5, "fuel": -1, "status": 1, "chance": 100, "rotation": 270 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_north_south_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ { "vehicle": "highway", "x": [ 7, 9 ], "y": 11, "fuel": -1, "status": 1, "chance": 100, "rotation": 90 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_west_east_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ { "vehicle": "highway", "x": 11, "y": [ 14, 16 ], "fuel": -1, "status": 1, "chance": 100, "rotation": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_west_west_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ { "vehicle": "highway", "x": 5, "y": [ 7, 9 ], "fuel": -1, "status": 1, "chance": 100, "rotation": 180 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_south_north_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ { "chunks": [ "24x24_road_vehicles_wr_country_out_of_fuel_north_north_facing" ], "x": 0, "y": 12 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_south_south_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ { "chunks": [ "24x24_road_vehicles_wr_country_out_of_fuel_north_south_facing" ], "x": 0, "y": 12 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_east_east_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ { "chunks": [ "24x24_road_vehicles_wr_country_out_of_fuel_west_east_facing" ], "x": 12, "y": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_country_out_of_fuel_east_west_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ { "chunks": [ "24x24_road_vehicles_wr_country_out_of_fuel_west_west_facing" ], "x": 12, "y": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_north", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ "24x24_road_vehicles_wr_city_wrecks_north_north_facing", "24x24_road_vehicles_wr_city_wrecks_north_south_facing" ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_east", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ "24x24_road_vehicles_wr_city_wrecks_east_east_facing", "24x24_road_vehicles_wr_city_wrecks_east_west_facing" ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_south", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ "24x24_road_vehicles_wr_city_wrecks_south_north_facing", "24x24_road_vehicles_wr_city_wrecks_south_south_facing" ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_west", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ "24x24_road_vehicles_wr_city_wrecks_west_east_facing", "24x24_road_vehicles_wr_city_wrecks_west_west_facing" ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_north_north_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { "chunks": [ "24x24_road_vehicles_wr_city_parked_north_north_facing" ], "x": [ -2, -1 ], "y": 0 }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_north_north_facing" ], "x": [ 1, 2 ], "y": 2 }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_north_north_facing" ], "x": 0, "y": [ 0, 2 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_north_south_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { "chunks": [ "24x24_road_vehicles_wr_city_parked_north_south_facing" ], "x": [ -2, -1 ], "y": 0 }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_north_south_facing" ], "x": [ 1, 2 ], "y": 2 }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_north_south_facing" ], "x": 0, "y": [ 0, 2 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_east_east_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { "chunks": [ "24x24_road_vehicles_wr_city_parked_east_east_facing" ], "x": 0, "y": [ -2, -1 ] }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_east_east_facing" ], "x": 2, "y": [ 1, 2 ] }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_east_east_facing" ], "x": [ 0, 2 ], "y": 0 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_east_west_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { "chunks": [ "24x24_road_vehicles_wr_city_parked_east_west_facing" ], "x": 0, "y": [ -2, -1 ] }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_east_west_facing" ], "x": 2, "y": [ 1, 2 ] }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_east_west_facing" ], "x": [ 0, 2 ], "y": 0 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_south_north_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { "chunks": [ "24x24_road_vehicles_wr_city_parked_south_north_facing" ], "x": [ -2, -1 ], "y": 0 }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_south_north_facing" ], "x": [ 1, 2 ], "y": -2 }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_south_north_facing" ], "x": 0, "y": [ -2, 0 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_south_south_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { "chunks": [ "24x24_road_vehicles_wr_city_parked_south_south_facing" ], "x": [ -2, -1 ], "y": 0 }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_south_south_facing" ], "x": [ 1, 2 ], "y": -2 }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_south_south_facing" ], "x": 0, "y": [ -2, 0 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_west_east_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { "chunks": [ "24x24_road_vehicles_wr_city_parked_west_east_facing" ], "x": 0, "y": [ -2, -1 ] }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_west_east_facing" ], "x": -2, "y": [ 1, 2 ] }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_west_east_facing" ], "x": [ -2, 0 ], "y": 0 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_wrecks_west_west_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { "chunks": [ "24x24_road_vehicles_wr_city_parked_west_west_facing" ], "x": 0, "y": [ -2, -1 ] }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_west_west_facing" ], "x": -2, "y": [ 1, 2 ] }, + { "chunks": [ "24x24_road_vehicles_wr_city_parked_west_west_facing" ], "x": [ -2, 0 ], "y": 0 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_north", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ "24x24_road_vehicles_wr_city_parked_north_north_facing", "24x24_road_vehicles_wr_city_parked_north_south_facing" ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_east", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ "24x24_road_vehicles_wr_city_parked_east_east_facing", "24x24_road_vehicles_wr_city_parked_east_west_facing" ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_south", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ "24x24_road_vehicles_wr_city_parked_south_north_facing", "24x24_road_vehicles_wr_city_parked_south_south_facing" ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_west", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ "24x24_road_vehicles_wr_city_parked_west_east_facing", "24x24_road_vehicles_wr_city_parked_west_west_facing" ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_north_north_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ { "vehicle": "city_vehicles_wr", "x": [ 15, 17 ], "y": 5, "fuel": -1, "status": 1, "chance": 100, "rotation": 270 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_north_south_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ { "vehicle": "city_vehicles_wr", "x": [ 7, 9 ], "y": 11, "fuel": -1, "status": 1, "chance": 100, "rotation": 90 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_west_east_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ { "vehicle": "city_vehicles_wr", "x": 11, "y": [ 14, 16 ], "fuel": -1, "status": 1, "chance": 100, "rotation": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_west_west_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ { "vehicle": "city_vehicles_wr", "x": 5, "y": [ 7, 9 ], "fuel": -1, "status": 1, "chance": 100, "rotation": 180 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_south_north_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ { "chunks": [ "24x24_road_vehicles_wr_city_parked_north_north_facing" ], "x": 0, "y": 12 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_south_south_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ { "chunks": [ "24x24_road_vehicles_wr_city_parked_north_south_facing" ], "x": 0, "y": 12 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_east_east_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ { "chunks": [ "24x24_road_vehicles_wr_city_parked_west_east_facing" ], "x": 12, "y": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_parked_east_west_facing", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ { "chunks": [ "24x24_road_vehicles_wr_city_parked_west_west_facing" ], "x": 12, "y": 0 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_special", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ + [ "24x24_road_vehicles_wr_city_jack-knifed_semi", 15 ], + [ "24x24_road_vehicles_wr_city_vehicle_pileup", 4 ], + [ "24x24_road_vehicles_wr_city_policecar_pileup", 1 ] + ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_jack-knifed_semi", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_nested": [ + { + "chunks": [ + "24x24_road_vehicles_wr_city_jack-knifed_semi_north", + "24x24_road_vehicles_wr_city_jack-knifed_semi_east", + "24x24_road_vehicles_wr_city_jack-knifed_semi_south", + "24x24_road_vehicles_wr_city_jack-knifed_semi_west" + ], + "x": 0, + "y": 0 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_jack-knifed_semi_north", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ + { "vehicle": "semi_truck", "x": 15, "y": 4, "fuel": -1, "status": 1, "chance": 100, "rotation": 290 }, + { "vehicle": "truck_trailer", "x": 18, "y": 12, "fuel": -1, "status": 1, "chance": 100, "rotation": 20 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_jack-knifed_semi_east", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ + { "vehicle": "semi_truck", "x": 19, "y": 15, "fuel": -1, "status": 1, "chance": 100, "rotation": 20 }, + { "vehicle": "truck_trailer", "x": 11, "y": 18, "fuel": -1, "status": 1, "chance": 100, "rotation": 110 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_jack-knifed_semi_south", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ + { "vehicle": "semi_truck", "x": 8, "y": 19, "fuel": -1, "status": 1, "chance": 100, "rotation": 110 }, + { "vehicle": "truck_trailer", "x": 5, "y": 11, "fuel": -1, "status": 1, "chance": 100, "rotation": 200 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_jack-knifed_semi_west", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ + { "vehicle": "semi_truck", "x": 4, "y": 8, "fuel": -1, "status": 1, "chance": 100, "rotation": 200 }, + { "vehicle": "truck_trailer", "x": 12, "y": 5, "fuel": -1, "status": 1, "chance": 100, "rotation": 290 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_vehicle_pileup", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ + { "vehicle": "city_pileup", "x": 12, "y": 8, "fuel": -1, "status": 1, "chance": 100, "rotation": 270 }, + { "vehicle": "city_pileup", "x": 8, "y": 12, "fuel": -1, "status": 1, "chance": 100, "rotation": 0 }, + { "vehicle": "city_pileup", "x": 12, "y": 16, "fuel": -1, "status": 1, "chance": 100, "rotation": 90 }, + { "vehicle": "city_pileup", "x": 15, "y": 12, "fuel": -1, "status": 1, "chance": 100, "rotation": 180 }, + { "vehicle": "city_pileup", "x": 12, "y": 12, "fuel": -1, "status": 1, "chance": 100, "rotation": 270 }, + { + "vehicle": "city_pileup", + "x": [ 8, 16 ], + "y": [ 4, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 0 + }, + { + "vehicle": "city_pileup", + "x": [ 8, 16 ], + "y": [ 4, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 0 + }, + { + "vehicle": "city_pileup", + "x": [ 4, 16 ], + "y": [ 8, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 90 + }, + { + "vehicle": "city_pileup", + "x": [ 4, 16 ], + "y": [ 8, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 90 + }, + { + "vehicle": "city_pileup", + "x": [ 4, 15 ], + "y": [ 4, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 180 + }, + { + "vehicle": "city_pileup", + "x": [ 4, 15 ], + "y": [ 4, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 180 + }, + { + "vehicle": "city_pileup", + "x": [ 4, 16 ], + "y": [ 4, 15 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 270 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "24x24_road_vehicles_wr_city_policecar_pileup", + "object": { + "mapgensize": [ 24, 24 ], + "rotation": [ 0 ], + "place_vehicles": [ + { "vehicle": "police_pileup", "x": 12, "y": 8, "fuel": -1, "status": 1, "chance": 100, "rotation": 270 }, + { "vehicle": "police_pileup", "x": 8, "y": 12, "fuel": -1, "status": 1, "chance": 100, "rotation": 0 }, + { "vehicle": "police_pileup", "x": 12, "y": 16, "fuel": -1, "status": 1, "chance": 100, "rotation": 90 }, + { "vehicle": "police_pileup", "x": 16, "y": 12, "fuel": -1, "status": 1, "chance": 100, "rotation": 180 }, + { "vehicle": "police_pileup", "x": 12, "y": 12, "fuel": -1, "status": 1, "chance": 100, "rotation": 270 }, + { + "vehicle": "police_pileup", + "x": [ 5, 16 ], + "y": [ 5, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 0 + }, + { + "vehicle": "police_pileup", + "x": [ 5, 16 ], + "y": [ 5, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 0 + }, + { + "vehicle": "police_pileup", + "x": [ 5, 16 ], + "y": [ 5, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 90 + }, + { + "vehicle": "police_pileup", + "x": [ 5, 16 ], + "y": [ 5, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 90 + }, + { + "vehicle": "police_pileup", + "x": [ 5, 16 ], + "y": [ 5, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 180 + }, + { + "vehicle": "police_pileup", + "x": [ 5, 16 ], + "y": [ 5, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 180 + }, + { + "vehicle": "police_pileup", + "x": [ 5, 16 ], + "y": [ 5, 16 ], + "fuel": -1, + "status": 1, + "chance": 50, + "rotation": 270 + } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/scenario_blacklist.json b/data/Mainline_mods/Mods/No_Hope/scenario_blacklist.json new file mode 100644 index 000000000..9a93dc4f0 --- /dev/null +++ b/data/Mainline_mods/Mods/No_Hope/scenario_blacklist.json @@ -0,0 +1,7 @@ +[ + { + "type": "SCENARIO_BLACKLIST", + "subtype": "blacklist", + "scenarios": [ "overrun" ] + } +] diff --git a/data/Mainline_mods/Mods/No_Hope/terrain.json b/data/Mainline_mods/Mods/No_Hope/terrain.json index cbc04972f..1830bcc7c 100644 --- a/data/Mainline_mods/Mods/No_Hope/terrain.json +++ b/data/Mainline_mods/Mods/No_Hope/terrain.json @@ -269,6 +269,7 @@ "color": "red", "move_cost": 2, "roof": "t_flat_roof", + "connect_groups": "RAIL", "connects_to": "RAIL", "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], "bash": { @@ -291,6 +292,7 @@ "move_cost": 2, "light_emitted": 120, "roof": "t_flat_roof", + "connect_groups": "RAIL", "connects_to": "RAIL", "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], "bash": { @@ -302,7 +304,8 @@ "sound_fail_vol": 10, "ter_set": "t_carpet_red", "items": [ { "item": "glass_shard", "count": [ 0, 2 ] } ] - } + }, + "shoot": { "chance_to_hit": 0, "reduce_damage": [ 0, 0 ], "reduce_damage_laser": [ 0, 0 ], "destroy_damage": [ 2, 8 ] } }, { "type": "terrain", @@ -313,6 +316,7 @@ "color": "light_gray", "move_cost": 2, "roof": "t_flat_roof", + "connect_groups": "RAIL", "connects_to": "RAIL", "flags": [ "TRANSPARENT", "INDOORS", "COLLAPSES", "SUPPORTS_ROOF", "FLAT", "ROAD" ], "bash": { "ter_set": "t_null", "str_min": 75, "str_max": 400, "str_min_supported": 100, "bash_below": true } @@ -327,9 +331,20 @@ "looks_like": "t_rock_floor", "move_cost": 2, "light_emitted": 120, + "connect_groups": "RAIL", "connects_to": "RAIL", "roof": "t_flat_roof", "flags": [ "TRANSPARENT", "INDOORS", "COLLAPSES", "SUPPORTS_ROOF", "FLAT", "ROAD" ], - "bash": { "ter_set": "t_null", "str_min": 75, "str_max": 400, "str_min_supported": 100, "bash_below": true } + "bash": { + "str_min": 4, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_rock_floor", + "items": [ { "item": "glass_shard", "count": [ 0, 2 ] } ] + }, + "shoot": { "chance_to_hit": 0, "reduce_damage": [ 0, 0 ], "reduce_damage_laser": [ 0, 0 ], "destroy_damage": [ 2, 8 ] } } ] diff --git a/data/Mainline_mods/Mods/No_Hope/vehicle_placement.json b/data/Mainline_mods/Mods/No_Hope/vehicle_placement.json index b1121845c..5fa90aa2e 100644 --- a/data/Mainline_mods/Mods/No_Hope/vehicle_placement.json +++ b/data/Mainline_mods/Mods/No_Hope/vehicle_placement.json @@ -1,129 +1,4 @@ [ - { - "type": "vehicle_placement", - "id": "road_straight_wrecks_t", - "locations": [ { "x": [ 7, 11 ], "y": [ 13, 17 ], "facing": [ 90, 270 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_end_wrecks_t", - "locations": [ { "x": [ 7, 11 ], "y": [ 13, 17 ], "facing": [ 0, 90, 180, 270 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_curved_wrecks_t", - "locations": [ { "x": [ 7, 11 ], "y": [ 13, 17 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_tee_wrecks_t", - "locations": [ { "x": [ 7, 11 ], "y": [ 13, 17 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_four_way_wrecks_t", - "locations": [ { "x": [ 7, 11 ], "y": [ 13, 17 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_straight_wrecks_b", - "locations": [ { "x": [ 7, 11 ], "y": [ 2, 6 ], "facing": [ 90, 270 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_end_wrecks_b", - "locations": [ { "x": [ 7, 11 ], "y": [ 2, 6 ], "facing": [ 0, 90, 180, 270 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_curved_wrecks_b", - "locations": [ { "x": [ 7, 11 ], "y": [ 2, 6 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_tee_wrecks_b", - "locations": [ { "x": [ 7, 11 ], "y": [ 2, 6 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_four_way_wrecks_b", - "locations": [ { "x": [ 7, 11 ], "y": [ 2, 6 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_straight_wrecks_l", - "locations": [ { "x": [ 2, 6 ], "y": [ 7, 11 ], "facing": [ 90, 270 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_end_wrecks_l", - "locations": [ { "x": [ 2, 6 ], "y": [ 7, 11 ], "facing": [ 0, 90, 180, 270 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_curved_wrecks_l", - "locations": [ { "x": [ 2, 6 ], "y": [ 7, 11 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_tee_wrecks_l", - "locations": [ { "x": [ 2, 6 ], "y": [ 7, 11 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_four_way_wrecks_l", - "locations": [ { "x": [ 2, 6 ], "y": [ 7, 11 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_straight_wrecks_r", - "locations": [ { "x": [ 7, 11 ], "y": [ 13, 17 ], "facing": [ 90, 270 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_end_wrecks_r", - "locations": [ { "x": [ 7, 11 ], "y": [ 13, 17 ], "facing": [ 0, 90, 180, 270 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_curved_wrecks_r", - "locations": [ { "x": [ 7, 11 ], "y": [ 13, 17 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_tee_wrecks_r", - "locations": [ { "x": [ 7, 11 ], "y": [ 13, 17 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_four_way_wrecks_r", - "locations": [ { "x": [ 7, 11 ], "y": [ 13, 17 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_straight_wrecks_c", - "locations": [ { "x": [ 7, 11 ], "y": [ 7, 11 ], "facing": [ 90, 270 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_end_wrecks_c", - "locations": [ { "x": [ 7, 11 ], "y": [ 7, 11 ], "facing": [ 0, 90, 180, 270 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_curved_wrecks_c", - "locations": [ { "x": [ 7, 11 ], "y": [ 7, 11 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_tee_wrecks_c", - "locations": [ { "x": [ 7, 11 ], "y": [ 7, 11 ], "facing": [ 90, 180 ] } ] - }, - { - "type": "vehicle_placement", - "id": "road_four_way_wrecks_c", - "locations": [ { "x": [ 7, 11 ], "y": [ 7, 11 ], "facing": [ 90, 180 ] } ] - }, { "type": "vehicle_placement", "id": "road_wreck_t", diff --git a/data/Mainline_mods/Mods/No_Hope/vehicle_spawn.json b/data/Mainline_mods/Mods/No_Hope/vehicle_spawn.json index eb79a987d..f3121c685 100644 --- a/data/Mainline_mods/Mods/No_Hope/vehicle_spawn.json +++ b/data/Mainline_mods/Mods/No_Hope/vehicle_spawn.json @@ -1,78 +1,4 @@ [ - { - "type": "vehicle_spawn", - "id": "default_city", - "spawn_types": [ - { "//": "Clear section of road", "weight": 749000, "vehicle_function": "no_vehicles" }, - { - "//": "Parked vehicles", - "weight": 1000, - "vehicle_json": { "vehicle": "city_vehicles", "placement": "%t_parked", "number": 1, "fuel": 0, "status": 1 } - }, - { - "//": "Randomly-distributed wrecks", - "weight": 50000, - "vehicle_json": { "vehicle": "city_vehicles_wr", "placement": "%t_wrecks_t", "number": [ 3, 4 ], "fuel": 0, "status": 1 } - }, - { - "//": "Randomly-distributed wrecks", - "weight": 50000, - "vehicle_json": { "vehicle": "city_vehicles_wr", "placement": "%t_wrecks_b", "number": [ 3, 4 ], "fuel": 0, "status": 1 } - }, - { - "//": "Randomly-distributed wrecks", - "weight": 50000, - "vehicle_json": { "vehicle": "city_vehicles_wr", "placement": "%t_wrecks_l", "number": [ 3, 4 ], "fuel": 0, "status": 1 } - }, - { - "//": "Randomly-distributed wrecks", - "weight": 50000, - "vehicle_json": { "vehicle": "city_vehicles_wr", "placement": "%t_wrecks_r", "number": [ 3, 4 ], "fuel": 0, "status": 1 } - }, - { - "//": "Randomly-distributed wrecks", - "weight": 50000, - "vehicle_json": { "vehicle": "city_vehicles_wr", "placement": "%t_wrecks_c", "number": [ 3, 4 ], "fuel": 0, "status": 1 } - } - ] - }, - { - "type": "vehicle_spawn", - "id": "default_country", - "spawn_types": [ - { "//": "Clear section of road", "weight": 949900, "vehicle_function": "no_vehicles" }, - { - "//": "Out of fuel vehicle", - "weight": 100, - "vehicle_json": { "vehicle": "highway", "placement": "%t_highway", "number": 1, "fuel": 0, "status": 1 } - }, - { - "//": "Wrecks", - "weight": 10000, - "vehicle_json": { "vehicle": "highway_wr", "placement": "%t_wrecks_t", "number": [ 2, 3 ], "fuel": 0, "status": 1 } - }, - { - "//": "Wrecks", - "weight": 10000, - "vehicle_json": { "vehicle": "highway_wr", "placement": "%t_wrecks_b", "number": [ 2, 3 ], "fuel": -1, "status": 1 } - }, - { - "//": "Wrecks", - "weight": 10000, - "vehicle_json": { "vehicle": "highway_wr", "placement": "%t_wrecks_l", "number": [ 2, 3 ], "fuel": 0, "status": 1 } - }, - { - "//": "Wrecks", - "weight": 10000, - "vehicle_json": { "vehicle": "highway_wr", "placement": "%t_wrecks_r", "number": [ 2, 3 ], "fuel": -1, "status": 1 } - }, - { - "//": "Wrecks", - "weight": 10000, - "vehicle_json": { "vehicle": "highway_wr", "placement": "%t_wrecks_c", "number": [ 2, 3 ], "fuel": 0, "status": 1 } - } - ] - }, { "type": "vehicle_spawn", "id": "default_bridge", @@ -110,43 +36,6 @@ } ] }, - { - "type": "vehicle_spawn", - "id": "default_highway", - "spawn_types": [ - { "//": "Clear section of highway", "weight": 989900, "vehicle_function": "no_vehicles" }, - { - "//": "Vehicle on the highway", - "weight": 100, - "vehicle_json": { "vehicle": "highway", "placement": "highway", "number": 1, "fuel": 0, "status": 1 } - }, - { - "//": "Wrecked vehicles", - "weight": 2000, - "vehicle_json": { "vehicle": "highway_wr", "placement": "road_wreck_t", "number": [ 2, 3 ], "fuel": 0, "status": 1 } - }, - { - "//": "Wrecked vehicles", - "weight": 2000, - "vehicle_json": { "vehicle": "highway_wr", "placement": "road_wreck_b", "number": [ 2, 3 ], "fuel": 0, "status": 1 } - }, - { - "//": "Wrecked vehicles", - "weight": 2000, - "vehicle_json": { "vehicle": "highway_wr", "placement": "road_wreck_l", "number": [ 2, 3 ], "fuel": -1, "status": 1 } - }, - { - "//": "Wrecked vehicles", - "weight": 2000, - "vehicle_json": { "vehicle": "highway_wr", "placement": "road_wreck_r", "number": [ 2, 3 ], "fuel": 0, "status": 1 } - }, - { - "//": "Wrecked vehicles", - "weight": 2000, - "vehicle_json": { "vehicle": "highway_wr", "placement": "road_wreck_c", "number": [ 2, 3 ], "fuel": 0, "status": 1 } - } - ] - }, { "type": "vehicle_spawn", "id": "default_parkinglot", diff --git a/data/Mainline_mods/Mods/No_Hope/vehicles.json b/data/Mainline_mods/Mods/No_Hope/vehicles.json index d21a84571..91f10965a 100644 --- a/data/Mainline_mods/Mods/No_Hope/vehicles.json +++ b/data/Mainline_mods/Mods/No_Hope/vehicles.json @@ -5,79 +5,79 @@ "name": "Mechanized Infantry Carrier", "//": "grenade launcher version", "parts": [ - { "x": 0, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 0, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 0, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 0, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 0, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 0, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": 1, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": 1, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 1, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 1, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 1, "y": 1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": 1, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 1, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 2, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 2, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 2, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 2, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 2, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 2, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 3, "y": -1, "parts": [ "hdframe_vertical_2", "hdroof", "controls", "dashboard" ] }, - { "x": 3, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 3, "y": -1, "parts": [ "hdframe#vertical_2", "hdroof", "controls", "dashboard" ] }, + { "x": 3, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 3, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, { "x": 3, "y": -2, "parts": [ "wheel_armor", "omnicam" ] }, - { "x": 3, "y": -1, "parts": [ "cam_control", "vehicle_clock", "seat" ] }, - { "x": 3, "y": -1, "part": "seatbelt_heavyduty" }, - { "x": 3, "y": 0, "parts": [ "hdframe_vertical_2", "stowboard_vertical", "hdroof" ] }, + { "x": 3, "y": -1, "parts": [ "cam_control", "seat" ] }, + { "x": 3, "y": -1, "parts": [ "seatbelt_heavyduty" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#vertical_2", "stowboard#vertical", "hdroof" ] }, { "x": 3, "y": 0, "parts": [ "diesel_engine_v6", "battery_car", "alternator_truck" ] }, - { "x": 3, "y": 0, "part": "plating_military" }, - { "x": 3, "y": 1, "parts": [ "hdframe_vertical_2", "hdroof", "plating_military" ] }, - { "x": 3, "y": 1, "parts": [ { "fuel": "jp8", "part": "tank_small" }, "cam_control" ] }, - { "x": 3, "y": 1, "part": "turret_mount" }, + { "x": 3, "y": 0, "parts": [ "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ "hdframe#vertical_2", "hdroof", "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ { "part": "tank_small", "fuel": "jp8" }, "cam_control" ] }, + { "x": 3, "y": 1, "parts": [ "turret_mount" ] }, { "x": 3, "y": 1, "parts": [ "seat", "seatbelt_heavyduty" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 3, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, { "x": 3, "y": 2, "parts": [ "wheel_armor", "omnicam" ] }, - { "x": 4, "y": -1, "parts": [ "hdframe_horizontal_2", "plating_military" ] }, - { "x": 4, "y": -2, "parts": [ "hdframe_vertical_T_left", "hdboard_nw" ] }, - { "x": 4, "y": -2, "part": "plating_military" }, - { "x": 4, "y": -1, "part": "headlight_reinforced" }, - { "x": 4, "y": -1, "part": "reinforced_windshield_horizontal_front" }, - { "x": 4, "y": 0, "parts": [ "hdframe_horizontal_2", "hdboard_horizontal_front" ] }, - { "x": 4, "y": 0, "part": "plating_military" }, - { "x": 4, "y": 1, "parts": [ "hdframe_horizontal_2", "hdboard_horizontal_front" ] }, + { "x": 4, "y": -1, "parts": [ "hdframe#horizontal_2", "plating_military" ] }, + { "x": 4, "y": -2, "parts": [ "hdframe#vertical_T_left", "hdboard#nw" ] }, + { "x": 4, "y": -2, "parts": [ "plating_military" ] }, + { "x": 4, "y": -1, "parts": [ "headlight_reinforced" ] }, + { "x": 4, "y": -1, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 4, "y": 0, "parts": [ "hdframe#horizontal_2", "hdboard#horizontal_front" ] }, + { "x": 4, "y": 0, "parts": [ "plating_military" ] }, + { "x": 4, "y": 1, "parts": [ "hdframe#horizontal_2", "hdboard#horizontal_front" ] }, { "x": 4, "y": 1, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 4, "y": 2, "parts": [ "hdframe_vertical_T_right", "hdboard_ne" ] }, - { "x": 4, "y": 2, "part": "plating_military" }, - { "x": 5, "y": -1, "parts": [ "hdframe_horizontal_front", "hdhalfboard_horizontal_front" ] }, - { "x": 5, "y": -2, "parts": [ "hdframe_nw", "hdhalfboard_nw", "plating_military" ] }, - { "x": 5, "y": -1, "part": "plating_military" }, - { "x": 5, "y": 0, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal_front" ] }, + { "x": 4, "y": 2, "parts": [ "hdframe#vertical_T_right", "hdboard#ne" ] }, + { "x": 4, "y": 2, "parts": [ "plating_military" ] }, + { "x": 5, "y": -1, "parts": [ "hdframe#horizontal_front", "hdhalfboard#horizontal_front" ] }, + { "x": 5, "y": -2, "parts": [ "hdframe#nw", "hdhalfboard#nw", "plating_military" ] }, + { "x": 5, "y": -1, "parts": [ "plating_military" ] }, + { "x": 5, "y": 0, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal_front" ] }, { "x": 5, "y": 0, "parts": [ "plating_military", "horn_big" ] }, - { "x": 5, "y": 1, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal_front" ] }, - { "x": 5, "y": 1, "part": "plating_military" }, - { "x": 5, "y": 2, "parts": [ "hdframe_ne", "hdhalfboard_ne", "plating_military" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": -1, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, - { "x": -1, "y": -2, "part": "plating_military" }, - { "x": -1, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": -1, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, - { "x": -1, "y": 2, "part": "plating_military" }, - { "x": -2, "y": -1, "parts": [ "hdframe_horizontal_rear", "hdboard_horizontal_rear" ] }, - { "x": -2, "y": -1, "part": "plating_military" }, - { "x": -2, "y": -2, "parts": [ "hdframe_sw", "hdboard_sw", "muffler", "plating_military" ] }, - { "x": -2, "y": 0, "parts": [ "hdframe_horizontal_rear", "hddoor_opaque_rear", "omnicam" ] }, - { "x": -2, "y": 0, "part": "plating_military" }, - { "x": -2, "y": 1, "parts": [ "hdframe_horizontal_rear", "hdboard_horizontal_rear" ] }, - { "x": -2, "y": 1, "part": "plating_military" }, - { "x": -2, "y": 2, "parts": [ "hdframe_se", "hdboard_se", "muffler", "plating_military" ] }, - { "x": -3, "y": -2, "fuel": "jp8", "part": "external_tank" }, - { "x": -3, "y": 2, "fuel": "jp8", "part": "external_tank" } + { "x": 5, "y": 1, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal_front" ] }, + { "x": 5, "y": 1, "parts": [ "plating_military" ] }, + { "x": 5, "y": 2, "parts": [ "hdframe#ne", "hdhalfboard#ne", "plating_military" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": -1, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, + { "x": -1, "y": -2, "parts": [ "plating_military" ] }, + { "x": -1, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": -1, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, + { "x": -1, "y": 2, "parts": [ "plating_military" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#horizontal_rear", "hdboard#horizontal_rear" ] }, + { "x": -2, "y": -1, "parts": [ "plating_military" ] }, + { "x": -2, "y": -2, "parts": [ "hdframe#sw", "hdboard#sw", "muffler", "plating_military" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#horizontal_rear", "hddoor_opaque#rear", "omnicam" ] }, + { "x": -2, "y": 0, "parts": [ "plating_military" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#horizontal_rear", "hdboard#horizontal_rear" ] }, + { "x": -2, "y": 1, "parts": [ "plating_military" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#se", "hdboard#se", "muffler", "plating_military" ] }, + { "x": -3, "y": -2, "parts": [ { "part": "external_tank", "fuel": "jp8" } ] }, + { "x": -3, "y": 2, "parts": [ { "part": "external_tank", "fuel": "jp8" } ] } ], "items": [ { "x": 3, "y": -1, "chance": 2, "items": [ "id_military" ] }, @@ -102,79 +102,79 @@ "type": "vehicle", "name": "Mechanized Infantry Carrier", "parts": [ - { "x": 0, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 0, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 0, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 0, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 0, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 0, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": 1, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": 1, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 1, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 1, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 1, "y": 1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": 1, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 1, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 2, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 2, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 2, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 2, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 2, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 2, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 3, "y": -1, "parts": [ "hdframe_vertical_2", "hdroof", "controls", "dashboard" ] }, - { "x": 3, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 3, "y": -1, "parts": [ "hdframe#vertical_2", "hdroof", "controls", "dashboard" ] }, + { "x": 3, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 3, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, { "x": 3, "y": -2, "parts": [ "wheel_armor", "omnicam" ] }, - { "x": 3, "y": -1, "parts": [ "cam_control", "vehicle_clock", "seat" ] }, - { "x": 3, "y": -1, "part": "seatbelt_heavyduty" }, - { "x": 3, "y": 0, "parts": [ "hdframe_vertical_2", "stowboard_vertical", "hdroof" ] }, + { "x": 3, "y": -1, "parts": [ "cam_control", "seat" ] }, + { "x": 3, "y": -1, "parts": [ "seatbelt_heavyduty" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#vertical_2", "stowboard#vertical", "hdroof" ] }, { "x": 3, "y": 0, "parts": [ "diesel_engine_v6", "battery_car", "alternator_truck" ] }, - { "x": 3, "y": 0, "part": "plating_military" }, - { "x": 3, "y": 1, "parts": [ "hdframe_vertical_2", "hdroof", "plating_military" ] }, - { "x": 3, "y": 1, "parts": [ { "fuel": "jp8", "part": "tank_small" }, "cam_control" ] }, - { "x": 3, "y": 1, "part": "turret_mount" }, + { "x": 3, "y": 0, "parts": [ "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ "hdframe#vertical_2", "hdroof", "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ { "part": "tank_small", "fuel": "jp8" }, "cam_control" ] }, + { "x": 3, "y": 1, "parts": [ "turret_mount" ] }, { "x": 3, "y": 1, "parts": [ "seat", "seatbelt_heavyduty" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 3, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, { "x": 3, "y": 2, "parts": [ "wheel_armor", "omnicam" ] }, - { "x": 4, "y": -1, "parts": [ "hdframe_horizontal_2", "plating_military" ] }, - { "x": 4, "y": -2, "parts": [ "hdframe_vertical_T_left", "hdboard_nw" ] }, - { "x": 4, "y": -2, "part": "plating_military" }, - { "x": 4, "y": -1, "part": "headlight_reinforced" }, - { "x": 4, "y": -1, "part": "reinforced_windshield_horizontal_front" }, - { "x": 4, "y": 0, "parts": [ "hdframe_horizontal_2", "hdboard_horizontal_front" ] }, - { "x": 4, "y": 0, "part": "plating_military" }, - { "x": 4, "y": 1, "parts": [ "hdframe_horizontal_2", "hdboard_horizontal_front" ] }, + { "x": 4, "y": -1, "parts": [ "hdframe#horizontal_2", "plating_military" ] }, + { "x": 4, "y": -2, "parts": [ "hdframe#vertical_T_left", "hdboard#nw" ] }, + { "x": 4, "y": -2, "parts": [ "plating_military" ] }, + { "x": 4, "y": -1, "parts": [ "headlight_reinforced" ] }, + { "x": 4, "y": -1, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 4, "y": 0, "parts": [ "hdframe#horizontal_2", "hdboard#horizontal_front" ] }, + { "x": 4, "y": 0, "parts": [ "plating_military" ] }, + { "x": 4, "y": 1, "parts": [ "hdframe#horizontal_2", "hdboard#horizontal_front" ] }, { "x": 4, "y": 1, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 4, "y": 2, "parts": [ "hdframe_vertical_T_right", "hdboard_ne" ] }, - { "x": 4, "y": 2, "part": "plating_military" }, - { "x": 5, "y": -1, "parts": [ "hdframe_horizontal_front", "hdhalfboard_horizontal_front" ] }, - { "x": 5, "y": -2, "parts": [ "hdframe_nw", "hdhalfboard_nw", "plating_military" ] }, - { "x": 5, "y": -1, "part": "plating_military" }, - { "x": 5, "y": 0, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal_front" ] }, + { "x": 4, "y": 2, "parts": [ "hdframe#vertical_T_right", "hdboard#ne" ] }, + { "x": 4, "y": 2, "parts": [ "plating_military" ] }, + { "x": 5, "y": -1, "parts": [ "hdframe#horizontal_front", "hdhalfboard#horizontal_front" ] }, + { "x": 5, "y": -2, "parts": [ "hdframe#nw", "hdhalfboard#nw", "plating_military" ] }, + { "x": 5, "y": -1, "parts": [ "plating_military" ] }, + { "x": 5, "y": 0, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal_front" ] }, { "x": 5, "y": 0, "parts": [ "plating_military", "horn_big" ] }, - { "x": 5, "y": 1, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal_front" ] }, - { "x": 5, "y": 1, "part": "plating_military" }, - { "x": 5, "y": 2, "parts": [ "hdframe_ne", "hdhalfboard_ne", "plating_military" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": -1, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, - { "x": -1, "y": -2, "part": "plating_military" }, - { "x": -1, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": -1, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, - { "x": -1, "y": 2, "part": "plating_military" }, - { "x": -2, "y": -1, "parts": [ "hdframe_horizontal_rear", "hdboard_horizontal_rear" ] }, - { "x": -2, "y": -1, "part": "plating_military" }, - { "x": -2, "y": -2, "parts": [ "hdframe_sw", "hdboard_sw", "muffler", "plating_military" ] }, - { "x": -2, "y": 0, "parts": [ "hdframe_horizontal_rear", "hddoor_opaque_rear", "omnicam" ] }, - { "x": -2, "y": 0, "part": "plating_military" }, - { "x": -2, "y": 1, "parts": [ "hdframe_horizontal_rear", "hdboard_horizontal_rear" ] }, - { "x": -2, "y": 1, "part": "plating_military" }, - { "x": -2, "y": 2, "parts": [ "hdframe_se", "hdboard_se", "muffler", "plating_military" ] }, - { "x": -3, "y": -2, "fuel": "jp8", "part": "external_tank" }, - { "x": -3, "y": 2, "fuel": "jp8", "part": "external_tank" } + { "x": 5, "y": 1, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal_front" ] }, + { "x": 5, "y": 1, "parts": [ "plating_military" ] }, + { "x": 5, "y": 2, "parts": [ "hdframe#ne", "hdhalfboard#ne", "plating_military" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": -1, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, + { "x": -1, "y": -2, "parts": [ "plating_military" ] }, + { "x": -1, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": -1, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, + { "x": -1, "y": 2, "parts": [ "plating_military" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#horizontal_rear", "hdboard#horizontal_rear" ] }, + { "x": -2, "y": -1, "parts": [ "plating_military" ] }, + { "x": -2, "y": -2, "parts": [ "hdframe#sw", "hdboard#sw", "muffler", "plating_military" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#horizontal_rear", "hddoor_opaque#rear", "omnicam" ] }, + { "x": -2, "y": 0, "parts": [ "plating_military" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#horizontal_rear", "hdboard#horizontal_rear" ] }, + { "x": -2, "y": 1, "parts": [ "plating_military" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#se", "hdboard#se", "muffler", "plating_military" ] }, + { "x": -3, "y": -2, "parts": [ { "part": "external_tank", "fuel": "jp8" } ] }, + { "x": -3, "y": 2, "parts": [ { "part": "external_tank", "fuel": "jp8" } ] } ], "items": [ { "x": 3, "y": -1, "chance": 2, "items": [ "id_military" ] }, @@ -199,79 +199,79 @@ "type": "vehicle", "name": "Armored Personnel Carrier", "parts": [ - { "x": 0, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 0, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 0, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 0, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 0, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 0, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": 1, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": 1, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 1, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 1, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 1, "y": 1, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": 1, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 1, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 2, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 2, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 2, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 2, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 2, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 2, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 3, "y": -1, "parts": [ "hdframe_vertical_2", "hdroof", "controls", "dashboard" ] }, - { "x": 3, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 3, "y": -1, "parts": [ "hdframe#vertical_2", "hdroof", "controls", "dashboard" ] }, + { "x": 3, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 3, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, { "x": 3, "y": -2, "parts": [ "wheel_armor", "omnicam" ] }, - { "x": 3, "y": -1, "parts": [ "cam_control", "vehicle_clock", "seat" ] }, - { "x": 3, "y": -1, "part": "seatbelt_heavyduty" }, - { "x": 3, "y": 0, "parts": [ "hdframe_vertical_2", "stowboard_vertical", "hdroof" ] }, + { "x": 3, "y": -1, "parts": [ "cam_control", "seat" ] }, + { "x": 3, "y": -1, "parts": [ "seatbelt_heavyduty" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#vertical_2", "stowboard#vertical", "hdroof" ] }, { "x": 3, "y": 0, "parts": [ "diesel_engine_v6", "battery_car", "alternator_truck" ] }, - { "x": 3, "y": 0, "part": "plating_military" }, - { "x": 3, "y": 1, "parts": [ "hdframe_vertical_2", "hdroof", "plating_military" ] }, - { "x": 3, "y": 1, "parts": [ { "fuel": "jp8", "part": "tank_small" }, "cam_control" ] }, - { "x": 3, "y": 1, "part": "turret_mount" }, + { "x": 3, "y": 0, "parts": [ "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ "hdframe#vertical_2", "hdroof", "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ { "part": "tank_small", "fuel": "jp8" }, "cam_control" ] }, + { "x": 3, "y": 1, "parts": [ "turret_mount" ] }, { "x": 3, "y": 1, "parts": [ "seat", "seatbelt_heavyduty" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 3, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, { "x": 3, "y": 2, "parts": [ "wheel_armor", "omnicam" ] }, - { "x": 4, "y": -1, "parts": [ "hdframe_horizontal_2", "plating_military" ] }, - { "x": 4, "y": -2, "parts": [ "hdframe_vertical_T_left", "hdboard_nw" ] }, - { "x": 4, "y": -2, "part": "plating_military" }, - { "x": 4, "y": -1, "part": "headlight_reinforced" }, - { "x": 4, "y": -1, "part": "reinforced_windshield_horizontal_front" }, - { "x": 4, "y": 0, "parts": [ "hdframe_horizontal_2", "hdboard_horizontal_front" ] }, - { "x": 4, "y": 0, "part": "plating_military" }, - { "x": 4, "y": 1, "parts": [ "hdframe_horizontal_2", "hdboard_horizontal_front" ] }, + { "x": 4, "y": -1, "parts": [ "hdframe#horizontal_2", "plating_military" ] }, + { "x": 4, "y": -2, "parts": [ "hdframe#vertical_T_left", "hdboard#nw" ] }, + { "x": 4, "y": -2, "parts": [ "plating_military" ] }, + { "x": 4, "y": -1, "parts": [ "headlight_reinforced" ] }, + { "x": 4, "y": -1, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 4, "y": 0, "parts": [ "hdframe#horizontal_2", "hdboard#horizontal_front" ] }, + { "x": 4, "y": 0, "parts": [ "plating_military" ] }, + { "x": 4, "y": 1, "parts": [ "hdframe#horizontal_2", "hdboard#horizontal_front" ] }, { "x": 4, "y": 1, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 4, "y": 2, "parts": [ "hdframe_vertical_T_right", "hdboard_ne" ] }, - { "x": 4, "y": 2, "part": "plating_military" }, - { "x": 5, "y": -1, "parts": [ "hdframe_horizontal_front", "hdhalfboard_horizontal_front" ] }, - { "x": 5, "y": -1, "part": "plating_military" }, - { "x": 5, "y": -2, "parts": [ "hdframe_nw", "hdhalfboard_nw", "plating_military" ] }, - { "x": 5, "y": 0, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal_front" ] }, + { "x": 4, "y": 2, "parts": [ "hdframe#vertical_T_right", "hdboard#ne" ] }, + { "x": 4, "y": 2, "parts": [ "plating_military" ] }, + { "x": 5, "y": -1, "parts": [ "hdframe#horizontal_front", "hdhalfboard#horizontal_front" ] }, + { "x": 5, "y": -1, "parts": [ "plating_military" ] }, + { "x": 5, "y": -2, "parts": [ "hdframe#nw", "hdhalfboard#nw", "plating_military" ] }, + { "x": 5, "y": 0, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal_front" ] }, { "x": 5, "y": 0, "parts": [ "plating_military", "horn_big" ] }, - { "x": 5, "y": 1, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal_front" ] }, - { "x": 5, "y": 1, "part": "plating_military" }, - { "x": 5, "y": 2, "parts": [ "hdframe_ne", "hdhalfboard_ne", "plating_military" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, - { "x": -1, "y": -2, "part": "plating_military" }, - { "x": -1, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, - { "x": -1, "y": 2, "part": "plating_military" }, - { "x": -2, "y": -1, "parts": [ "hdframe_horizontal_rear", "hdboard_horizontal_rear" ] }, - { "x": -2, "y": -1, "part": "plating_military" }, - { "x": -2, "y": -2, "parts": [ "hdframe_sw", "hdboard_sw", "muffler", "plating_military" ] }, - { "x": -2, "y": 0, "parts": [ "hdframe_horizontal_rear", "hddoor_opaque_rear", "omnicam" ] }, - { "x": -2, "y": 0, "part": "plating_military" }, - { "x": -2, "y": 1, "parts": [ "hdframe_horizontal_rear", "hdboard_horizontal_rear" ] }, - { "x": -2, "y": 1, "part": "plating_military" }, - { "x": -2, "y": 2, "parts": [ "hdframe_se", "hdboard_se", "muffler", "plating_military" ] }, - { "x": -3, "y": -2, "fuel": "jp8", "part": "external_tank" }, - { "x": -3, "y": 2, "fuel": "jp8", "part": "external_tank" } + { "x": 5, "y": 1, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal_front" ] }, + { "x": 5, "y": 1, "parts": [ "plating_military" ] }, + { "x": 5, "y": 2, "parts": [ "hdframe#ne", "hdhalfboard#ne", "plating_military" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, + { "x": -1, "y": -2, "parts": [ "plating_military" ] }, + { "x": -1, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, + { "x": -1, "y": 2, "parts": [ "plating_military" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#horizontal_rear", "hdboard#horizontal_rear" ] }, + { "x": -2, "y": -1, "parts": [ "plating_military" ] }, + { "x": -2, "y": -2, "parts": [ "hdframe#sw", "hdboard#sw", "muffler", "plating_military" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#horizontal_rear", "hddoor_opaque#rear", "omnicam" ] }, + { "x": -2, "y": 0, "parts": [ "plating_military" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#horizontal_rear", "hdboard#horizontal_rear" ] }, + { "x": -2, "y": 1, "parts": [ "plating_military" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#se", "hdboard#se", "muffler", "plating_military" ] }, + { "x": -3, "y": -2, "parts": [ { "part": "external_tank", "fuel": "jp8" } ] }, + { "x": -3, "y": 2, "parts": [ { "part": "external_tank", "fuel": "jp8" } ] } ], "items": [ { "y": -1, "x": 3, "chance": 2, "items": [ "id_military" ] } ] }, @@ -282,79 +282,79 @@ "//": "grenade launcher version", "items": [ { "y": -1, "x": 3, "chance": 2, "items": [ "id_military" ] } ], "parts": [ - { "x": 0, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 0, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 0, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 0, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 0, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 0, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": 1, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": 1, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 1, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 1, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 1, "y": 1, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": 1, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 1, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 2, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 2, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 2, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 2, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_cross", "seat", "hdroof" ] }, - { "x": 2, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#cross", "seat", "hdroof" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 2, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy", "wheel_armor" ] }, - { "x": 3, "y": -1, "parts": [ "hdframe_vertical_2", "hdroof", "controls", "dashboard" ] }, - { "x": 3, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, + { "x": 3, "y": -1, "parts": [ "hdframe#vertical_2", "hdroof", "controls", "dashboard" ] }, + { "x": 3, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, { "x": 3, "y": -2, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, { "x": 3, "y": -2, "parts": [ "wheel_armor", "omnicam" ] }, - { "x": 3, "y": -1, "parts": [ "cam_control", "vehicle_clock", "seat" ] }, - { "x": 3, "y": -1, "part": "seatbelt_heavyduty" }, - { "x": 3, "y": 0, "parts": [ "hdframe_vertical_2", "stowboard_vertical", "hdroof" ] }, + { "x": 3, "y": -1, "parts": [ "cam_control", "seat" ] }, + { "x": 3, "y": -1, "parts": [ "seatbelt_heavyduty" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#vertical_2", "stowboard#vertical", "hdroof" ] }, { "x": 3, "y": 0, "parts": [ "diesel_engine_v6", "battery_car", "alternator_truck" ] }, - { "x": 3, "y": 0, "part": "plating_military" }, - { "x": 3, "y": 1, "parts": [ "hdframe_vertical_2", "hdroof", "plating_military" ] }, - { "x": 3, "y": 1, "parts": [ { "fuel": "jp8", "part": "tank_small" }, "cam_control" ] }, - { "x": 3, "y": 1, "part": "turret_mount" }, + { "x": 3, "y": 0, "parts": [ "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ "hdframe#vertical_2", "hdroof", "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ { "part": "tank_small", "fuel": "jp8" }, "cam_control" ] }, + { "x": 3, "y": 1, "parts": [ "turret_mount" ] }, { "x": 3, "y": 1, "parts": [ "seat", "seatbelt_heavyduty" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, { "x": 3, "y": 2, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, { "x": 3, "y": 2, "parts": [ "wheel_armor", "omnicam" ] }, - { "x": 4, "y": -1, "parts": [ "hdframe_horizontal_2", "plating_military" ] }, - { "x": 4, "y": -2, "parts": [ "hdframe_vertical_T_left", "hdboard_nw" ] }, - { "x": 4, "y": -2, "part": "plating_military" }, - { "x": 4, "y": -1, "part": "headlight_reinforced" }, - { "x": 4, "y": -1, "part": "reinforced_windshield_horizontal_front" }, - { "x": 4, "y": 0, "parts": [ "hdframe_horizontal_2", "hdboard_horizontal_front" ] }, - { "x": 4, "y": 0, "part": "plating_military" }, - { "x": 4, "y": 1, "parts": [ "hdframe_horizontal_2", "hdboard_horizontal_front" ] }, + { "x": 4, "y": -1, "parts": [ "hdframe#horizontal_2", "plating_military" ] }, + { "x": 4, "y": -2, "parts": [ "hdframe#vertical_T_left", "hdboard#nw" ] }, + { "x": 4, "y": -2, "parts": [ "plating_military" ] }, + { "x": 4, "y": -1, "parts": [ "headlight_reinforced" ] }, + { "x": 4, "y": -1, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 4, "y": 0, "parts": [ "hdframe#horizontal_2", "hdboard#horizontal_front" ] }, + { "x": 4, "y": 0, "parts": [ "plating_military" ] }, + { "x": 4, "y": 1, "parts": [ "hdframe#horizontal_2", "hdboard#horizontal_front" ] }, { "x": 4, "y": 1, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 4, "y": 2, "parts": [ "hdframe_vertical_T_right", "hdboard_ne" ] }, - { "x": 4, "y": 2, "part": "plating_military" }, - { "x": 5, "y": -1, "parts": [ "hdframe_horizontal_front", "hdhalfboard_horizontal_front" ] }, - { "x": 5, "y": -2, "parts": [ "hdframe_nw", "hdhalfboard_nw", "plating_military" ] }, - { "x": 5, "y": -1, "part": "plating_military" }, - { "x": 5, "y": 0, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal_front" ] }, + { "x": 4, "y": 2, "parts": [ "hdframe#vertical_T_right", "hdboard#ne" ] }, + { "x": 4, "y": 2, "parts": [ "plating_military" ] }, + { "x": 5, "y": -1, "parts": [ "hdframe#horizontal_front", "hdhalfboard#horizontal_front" ] }, + { "x": 5, "y": -2, "parts": [ "hdframe#nw", "hdhalfboard#nw", "plating_military" ] }, + { "x": 5, "y": -1, "parts": [ "plating_military" ] }, + { "x": 5, "y": 0, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal_front" ] }, { "x": 5, "y": 0, "parts": [ "plating_military", "horn_big" ] }, - { "x": 5, "y": 1, "parts": [ "hdframe_horizontal", "hdhalfboard_horizontal_front" ] }, - { "x": 5, "y": 1, "part": "plating_military" }, - { "x": 5, "y": 2, "parts": [ "hdframe_ne", "hdhalfboard_ne", "plating_military" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": -2, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, - { "x": -1, "y": -2, "part": "plating_military" }, - { "x": -1, "y": 0, "parts": [ "hdframe_cross", "aisle_vertical", "hdroof" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": 2, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, - { "x": -1, "y": 2, "part": "plating_military" }, - { "x": -2, "y": -1, "parts": [ "hdframe_horizontal_rear", "hdboard_horizontal_rear" ] }, - { "x": -2, "y": -2, "parts": [ "hdframe_sw", "hdboard_sw", "muffler", "plating_military" ] }, - { "x": -2, "y": -1, "part": "plating_military" }, - { "x": -2, "y": 0, "parts": [ "hdframe_horizontal_rear", "hddoor_opaque_rear", "omnicam" ] }, - { "x": -2, "y": 0, "part": "plating_military" }, - { "x": -2, "y": 1, "parts": [ "hdframe_horizontal_rear", "hdboard_horizontal_rear" ] }, - { "x": -2, "y": 1, "part": "plating_military" }, - { "x": -2, "y": 2, "parts": [ "hdframe_se", "hdboard_se", "muffler", "plating_military" ] }, - { "x": -3, "y": -2, "fuel": "jp8", "part": "external_tank" }, - { "x": -3, "y": 2, "fuel": "jp8", "part": "external_tank" } + { "x": 5, "y": 1, "parts": [ "hdframe#horizontal", "hdhalfboard#horizontal_front" ] }, + { "x": 5, "y": 1, "parts": [ "plating_military" ] }, + { "x": 5, "y": 2, "parts": [ "hdframe#ne", "hdhalfboard#ne", "plating_military" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": -2, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, + { "x": -1, "y": -2, "parts": [ "plating_military" ] }, + { "x": -1, "y": 0, "parts": [ "hdframe#cross", "aisle#vertical", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": 2, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, + { "x": -1, "y": 2, "parts": [ "plating_military" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#horizontal_rear", "hdboard#horizontal_rear" ] }, + { "x": -2, "y": -2, "parts": [ "hdframe#sw", "hdboard#sw", "muffler", "plating_military" ] }, + { "x": -2, "y": -1, "parts": [ "plating_military" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#horizontal_rear", "hddoor_opaque#rear", "omnicam" ] }, + { "x": -2, "y": 0, "parts": [ "plating_military" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#horizontal_rear", "hdboard#horizontal_rear" ] }, + { "x": -2, "y": 1, "parts": [ "plating_military" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#se", "hdboard#se", "muffler", "plating_military" ] }, + { "x": -3, "y": -2, "parts": [ { "part": "external_tank", "fuel": "jp8" } ] }, + { "x": -3, "y": 2, "parts": [ { "part": "external_tank", "fuel": "jp8" } ] } ] }, { @@ -369,63 +369,63 @@ [ "O-++-OH" ] ], "parts": [ - { "x": 0, "y": 0, "parts": [ "hdframe_cross", "hdroof" ] }, - { "x": 0, "y": 0, "parts": [ { "fuel": "jp8", "part": "tank" }, "controls", "dashboard" ] }, - { "x": 0, "y": 0, "parts": [ "vehicle_clock", "horn_big", "seat", "seatbelt" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_vertical_left", "hddoor_left" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_cross", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ { "fuel": "jp8", "part": "tank" }, "seat", "seatbelt" ] }, - { "x": 0, "y": 3, "parts": [ "hdframe_vertical_right", "hddoor_right" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_vertical_T_left", "reinforced_windshield_nw" ] }, - { "x": 1, "y": 0, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 0, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 0, "part": "headlight_reinforced" }, - { "x": 1, "y": 1, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 1, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 2, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 2, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 3, "parts": [ "hdframe_vertical_T_right", "reinforced_windshield_ne" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_vertical_T_left", "hdhalfboard_nw" ] }, + { "x": 0, "y": 0, "parts": [ "hdframe#cross", "hdroof" ] }, + { "x": 0, "y": 0, "parts": [ { "part": "tank", "fuel": "jp8" }, "controls", "dashboard" ] }, + { "x": 0, "y": 0, "parts": [ "horn_big", "seat", "seatbelt" ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#vertical_left", "hddoor#left" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#cross", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ { "part": "tank", "fuel": "jp8" }, "seat", "seatbelt" ] }, + { "x": 0, "y": 3, "parts": [ "hdframe#vertical_right", "hddoor#right" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#vertical_T_left", "reinforced_windshield#nw" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 0, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 0, "parts": [ "headlight_reinforced" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 1, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 2, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 3, "parts": [ "hdframe#vertical_T_right", "reinforced_windshield#ne" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#vertical_T_left", "hdhalfboard#nw" ] }, { "x": 2, "y": -1, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, - { "x": 2, "y": -1, "part": "wheel_armor" }, - { "x": 2, "y": 0, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, + { "x": 2, "y": -1, "parts": [ "wheel_armor" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 0, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 1, "parts": [ "plating_military", "diesel_engine_v8", "alternator_truck" ] }, - { "x": 2, "y": 1, "part": "battery_car" }, - { "x": 2, "y": 2, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, + { "x": 2, "y": 1, "parts": [ "battery_car" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 2, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 2, "y": 3, "parts": [ "hdframe_vertical_T_right", "hdhalfboard_ne" ] }, + { "x": 2, "y": 3, "parts": [ "hdframe#vertical_T_right", "hdhalfboard#ne" ] }, { "x": 2, "y": 3, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, - { "x": 2, "y": 3, "part": "wheel_armor" }, - { "x": 3, "y": -1, "parts": [ "hdframe_nw", "plating_military" ] }, - { "x": 3, "y": 0, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 1, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 3, "parts": [ "hdframe_ne", "plating_military" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_vertical_left", "hddoor_left" ] }, - { "x": -1, "y": 0, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_cross", "aisle_horizontal", "hdroof" ] }, - { "x": -1, "y": 1, "part": "turret_mount" }, - { "x": -1, "y": 2, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": 3, "parts": [ "hdframe_vertical_right", "hddoor_right" ] }, - { "x": -2, "y": -1, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, - { "x": -2, "y": -1, "part": "plating_military" }, - { "x": -2, "y": 0, "parts": [ "hdframe_cross", "trunk", "hdroof" ] }, - { "x": -2, "y": 1, "parts": [ "hdframe_cross", "trunk", "hdroof" ] }, - { "x": -2, "y": 2, "parts": [ "hdframe_cross", "trunk", "hdroof" ] }, - { "x": -2, "y": 3, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, - { "x": -2, "y": 3, "part": "plating_military" }, - { "x": -3, "y": -1, "parts": [ "hdframe_sw", "hdboard_sw", "plating_military" ] }, + { "x": 2, "y": 3, "parts": [ "wheel_armor" ] }, + { "x": 3, "y": -1, "parts": [ "hdframe#nw", "plating_military" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 3, "parts": [ "hdframe#ne", "plating_military" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#vertical_left", "hddoor#left" ] }, + { "x": -1, "y": 0, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#cross", "aisle#horizontal", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "turret_mount" ] }, + { "x": -1, "y": 2, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": 3, "parts": [ "hdframe#vertical_right", "hddoor#right" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, + { "x": -2, "y": -1, "parts": [ "plating_military" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#cross", "trunk", "hdroof" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#cross", "trunk", "hdroof" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#cross", "trunk", "hdroof" ] }, + { "x": -2, "y": 3, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, + { "x": -2, "y": 3, "parts": [ "plating_military" ] }, + { "x": -3, "y": -1, "parts": [ "hdframe#sw", "hdboard#sw", "plating_military" ] }, { "x": -3, "y": -1, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": -3, "y": 0, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk", "muffler" ] }, - { "x": -3, "y": 0, "part": "plating_military" }, - { "x": -3, "y": 1, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk" ] }, - { "x": -3, "y": 1, "part": "plating_military" }, - { "x": -3, "y": 2, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk" ] }, - { "x": -3, "y": 2, "part": "plating_military" }, - { "x": -3, "y": 3, "parts": [ "hdframe_se", "hdboard_se", "plating_military" ] }, + { "x": -3, "y": 0, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk", "muffler" ] }, + { "x": -3, "y": 0, "parts": [ "plating_military" ] }, + { "x": -3, "y": 1, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk" ] }, + { "x": -3, "y": 1, "parts": [ "plating_military" ] }, + { "x": -3, "y": 2, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk" ] }, + { "x": -3, "y": 2, "parts": [ "plating_military" ] }, + { "x": -3, "y": 3, "parts": [ "hdframe#se", "hdboard#se", "plating_military" ] }, { "x": -3, "y": 3, "parts": [ "wheel_mount_heavy", "wheel_armor" ] } ], "items": [ @@ -446,63 +446,63 @@ [ "O-++-OH" ] ], "parts": [ - { "x": 0, "y": 0, "parts": [ "hdframe_cross", "hdroof" ] }, - { "x": 0, "y": 0, "parts": [ { "fuel": "jp8", "part": "tank" }, "controls", "dashboard" ] }, - { "x": 0, "y": 0, "parts": [ "vehicle_clock", "horn_big", "seat", "seatbelt" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_vertical_left", "hddoor_left" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_cross", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ { "fuel": "jp8", "part": "tank" }, "seat", "seatbelt" ] }, - { "x": 0, "y": 3, "parts": [ "hdframe_vertical_right", "hddoor_right" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_vertical_T_left", "reinforced_windshield_nw" ] }, - { "x": 1, "y": 0, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 0, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 0, "part": "headlight_reinforced" }, - { "x": 1, "y": 1, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 1, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 2, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 2, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 3, "parts": [ "hdframe_vertical_T_right", "reinforced_windshield_ne" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_vertical_T_left", "hdhalfboard_nw" ] }, + { "x": 0, "y": 0, "parts": [ "hdframe#cross", "hdroof" ] }, + { "x": 0, "y": 0, "parts": [ { "part": "tank", "fuel": "jp8" }, "controls", "dashboard" ] }, + { "x": 0, "y": 0, "parts": [ "horn_big", "seat", "seatbelt" ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#vertical_left", "hddoor#left" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#cross", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ { "part": "tank", "fuel": "jp8" }, "seat", "seatbelt" ] }, + { "x": 0, "y": 3, "parts": [ "hdframe#vertical_right", "hddoor#right" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#vertical_T_left", "reinforced_windshield#nw" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 0, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 0, "parts": [ "headlight_reinforced" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 1, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 2, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 3, "parts": [ "hdframe#vertical_T_right", "reinforced_windshield#ne" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#vertical_T_left", "hdhalfboard#nw" ] }, { "x": 2, "y": -1, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, - { "x": 2, "y": -1, "part": "wheel_armor" }, - { "x": 2, "y": 0, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, + { "x": 2, "y": -1, "parts": [ "wheel_armor" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 0, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 1, "parts": [ "plating_military", "diesel_engine_v8", "alternator_truck" ] }, - { "x": 2, "y": 1, "part": "battery_car" }, - { "x": 2, "y": 2, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, + { "x": 2, "y": 1, "parts": [ "battery_car" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 2, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 2, "y": 3, "parts": [ "hdframe_vertical_T_right", "hdhalfboard_ne" ] }, + { "x": 2, "y": 3, "parts": [ "hdframe#vertical_T_right", "hdhalfboard#ne" ] }, { "x": 2, "y": 3, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, - { "x": 2, "y": 3, "part": "wheel_armor" }, - { "x": 3, "y": -1, "parts": [ "hdframe_nw", "plating_military" ] }, - { "x": 3, "y": 0, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 1, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 3, "parts": [ "hdframe_ne", "plating_military" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_vertical_left", "hddoor_left" ] }, - { "x": -1, "y": 0, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_cross", "aisle_horizontal", "hdroof" ] }, - { "x": -1, "y": 1, "part": "turret_mount" }, - { "x": -1, "y": 2, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": 3, "parts": [ "hdframe_vertical_right", "hddoor_right" ] }, - { "x": -2, "y": -1, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, - { "x": -2, "y": -1, "part": "plating_military" }, - { "x": -2, "y": 0, "parts": [ "hdframe_cross", "trunk", "hdroof" ] }, - { "x": -2, "y": 1, "parts": [ "hdframe_cross", "trunk", "hdroof" ] }, - { "x": -2, "y": 2, "parts": [ "hdframe_cross", "trunk", "hdroof" ] }, - { "x": -2, "y": 3, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, - { "x": -2, "y": 3, "part": "plating_military" }, - { "x": -3, "y": -1, "parts": [ "hdframe_sw", "hdboard_sw", "plating_military" ] }, + { "x": 2, "y": 3, "parts": [ "wheel_armor" ] }, + { "x": 3, "y": -1, "parts": [ "hdframe#nw", "plating_military" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 3, "parts": [ "hdframe#ne", "plating_military" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#vertical_left", "hddoor#left" ] }, + { "x": -1, "y": 0, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#cross", "aisle#horizontal", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "turret_mount" ] }, + { "x": -1, "y": 2, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": 3, "parts": [ "hdframe#vertical_right", "hddoor#right" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, + { "x": -2, "y": -1, "parts": [ "plating_military" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#cross", "trunk", "hdroof" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#cross", "trunk", "hdroof" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#cross", "trunk", "hdroof" ] }, + { "x": -2, "y": 3, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, + { "x": -2, "y": 3, "parts": [ "plating_military" ] }, + { "x": -3, "y": -1, "parts": [ "hdframe#sw", "hdboard#sw", "plating_military" ] }, { "x": -3, "y": -1, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": -3, "y": 0, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk", "muffler" ] }, - { "x": -3, "y": 0, "part": "plating_military" }, - { "x": -3, "y": 1, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk" ] }, - { "x": -3, "y": 1, "part": "plating_military" }, - { "x": -3, "y": 2, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk" ] }, - { "x": -3, "y": 2, "part": "plating_military" }, - { "x": -3, "y": 3, "parts": [ "hdframe_se", "hdboard_se", "plating_military" ] }, + { "x": -3, "y": 0, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk", "muffler" ] }, + { "x": -3, "y": 0, "parts": [ "plating_military" ] }, + { "x": -3, "y": 1, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk" ] }, + { "x": -3, "y": 1, "parts": [ "plating_military" ] }, + { "x": -3, "y": 2, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk" ] }, + { "x": -3, "y": 2, "parts": [ "plating_military" ] }, + { "x": -3, "y": 3, "parts": [ "hdframe#se", "hdboard#se", "plating_military" ] }, { "x": -3, "y": 3, "parts": [ "wheel_mount_heavy", "wheel_armor" ] } ], "items": [ @@ -522,63 +522,63 @@ [ "O-++-OH" ] ], "parts": [ - { "x": 0, "y": 0, "parts": [ "hdframe_cross", "hdroof" ] }, - { "x": 0, "y": 0, "parts": [ { "fuel": "jp8", "part": "tank" }, "controls", "dashboard" ] }, - { "x": 0, "y": 0, "parts": [ "vehicle_clock", "horn_big", "seat", "seatbelt" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_vertical_left", "hddoor_left" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_cross", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ { "fuel": "jp8", "part": "tank" }, "seat", "seatbelt" ] }, - { "x": 0, "y": 3, "parts": [ "hdframe_vertical_right", "hddoor_right" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_vertical_T_left", "reinforced_windshield_nw" ] }, - { "x": 1, "y": 0, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 0, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 0, "part": "headlight_reinforced" }, - { "x": 1, "y": 1, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 1, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 2, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 2, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 3, "parts": [ "hdframe_vertical_T_right", "reinforced_windshield_ne" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_vertical_T_left", "hdhalfboard_nw" ] }, + { "x": 0, "y": 0, "parts": [ "hdframe#cross", "hdroof" ] }, + { "x": 0, "y": 0, "parts": [ { "part": "tank", "fuel": "jp8" }, "controls", "dashboard" ] }, + { "x": 0, "y": 0, "parts": [ "horn_big", "seat", "seatbelt" ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#vertical_left", "hddoor#left" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#cross", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ { "part": "tank", "fuel": "jp8" }, "seat", "seatbelt" ] }, + { "x": 0, "y": 3, "parts": [ "hdframe#vertical_right", "hddoor#right" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#vertical_T_left", "reinforced_windshield#nw" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 0, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 0, "parts": [ "headlight_reinforced" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 1, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 2, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 3, "parts": [ "hdframe#vertical_T_right", "reinforced_windshield#ne" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#vertical_T_left", "hdhalfboard#nw" ] }, { "x": 2, "y": -1, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, - { "x": 2, "y": -1, "part": "wheel_armor" }, - { "x": 2, "y": 0, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, + { "x": 2, "y": -1, "parts": [ "wheel_armor" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 0, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 1, "parts": [ "plating_military", "diesel_engine_v8", "alternator_truck" ] }, - { "x": 2, "y": 1, "part": "battery_car" }, - { "x": 2, "y": 2, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, + { "x": 2, "y": 1, "parts": [ "battery_car" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, { "x": 2, "y": 2, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 2, "y": 3, "parts": [ "hdframe_vertical_T_right", "hdhalfboard_ne" ] }, + { "x": 2, "y": 3, "parts": [ "hdframe#vertical_T_right", "hdhalfboard#ne" ] }, { "x": 2, "y": 3, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, - { "x": 2, "y": 3, "part": "wheel_armor" }, - { "x": 3, "y": -1, "parts": [ "hdframe_nw", "plating_military" ] }, - { "x": 3, "y": 0, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 1, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 3, "parts": [ "hdframe_ne", "plating_military" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_vertical_left", "hddoor_left" ] }, - { "x": -1, "y": 0, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": 1, "parts": [ "hdframe_cross", "aisle_horizontal", "hdroof" ] }, - { "x": -1, "y": 1, "part": "turret_mount" }, - { "x": -1, "y": 2, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": 3, "parts": [ "hdframe_vertical_right", "hddoor_right" ] }, - { "x": -2, "y": -1, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, - { "x": -2, "y": -1, "part": "plating_military" }, - { "x": -2, "y": 0, "parts": [ "hdframe_cross", "trunk", "hdroof" ] }, - { "x": -2, "y": 1, "parts": [ "hdframe_cross", "trunk", "hdroof" ] }, - { "x": -2, "y": 2, "parts": [ "hdframe_cross", "trunk", "hdroof" ] }, - { "x": -2, "y": 3, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, - { "x": -2, "y": 3, "part": "plating_military" }, - { "x": -3, "y": -1, "parts": [ "hdframe_sw", "hdboard_sw", "plating_military" ] }, + { "x": 2, "y": 3, "parts": [ "wheel_armor" ] }, + { "x": 3, "y": -1, "parts": [ "hdframe#nw", "plating_military" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 3, "parts": [ "hdframe#ne", "plating_military" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#vertical_left", "hddoor#left" ] }, + { "x": -1, "y": 0, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "hdframe#cross", "aisle#horizontal", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "turret_mount" ] }, + { "x": -1, "y": 2, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": 3, "parts": [ "hdframe#vertical_right", "hddoor#right" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, + { "x": -2, "y": -1, "parts": [ "plating_military" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#cross", "trunk", "hdroof" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#cross", "trunk", "hdroof" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#cross", "trunk", "hdroof" ] }, + { "x": -2, "y": 3, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, + { "x": -2, "y": 3, "parts": [ "plating_military" ] }, + { "x": -3, "y": -1, "parts": [ "hdframe#sw", "hdboard#sw", "plating_military" ] }, { "x": -3, "y": -1, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": -3, "y": 0, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk", "muffler" ] }, - { "x": -3, "y": 0, "part": "plating_military" }, - { "x": -3, "y": 1, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk" ] }, - { "x": -3, "y": 1, "part": "plating_military" }, - { "x": -3, "y": 2, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk" ] }, - { "x": -3, "y": 2, "part": "plating_military" }, - { "x": -3, "y": 3, "parts": [ "hdframe_se", "hdboard_se", "plating_military" ] }, + { "x": -3, "y": 0, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk", "muffler" ] }, + { "x": -3, "y": 0, "parts": [ "plating_military" ] }, + { "x": -3, "y": 1, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk" ] }, + { "x": -3, "y": 1, "parts": [ "plating_military" ] }, + { "x": -3, "y": 2, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk" ] }, + { "x": -3, "y": 2, "parts": [ "plating_military" ] }, + { "x": -3, "y": 3, "parts": [ "hdframe#se", "hdboard#se", "plating_military" ] }, { "x": -3, "y": 3, "parts": [ "wheel_mount_heavy", "wheel_armor" ] } ], "items": [ diff --git a/data/Mainline_mods/Mods/Personal_Portal_Storms/modinfo.json b/data/Mainline_mods/Mods/Personal_Portal_Storms/modinfo.json new file mode 100644 index 000000000..1572123b3 --- /dev/null +++ b/data/Mainline_mods/Mods/Personal_Portal_Storms/modinfo.json @@ -0,0 +1,18 @@ +[ + { + "type": "MOD_INFO", + "id": "personal_portal_storms", + "name": "Portal Storms Ignore NPCs", + "authors": [ "BombasticSlacks" ], + "maintainers": [ "BombasticSlacks" ], + "description": "Makes Portal Storm enemies only attack the player. Without this critical NPCs can die to Portal Storm enemies in very unfair ways. More work needs to be done on AI and faction base security before it will be safe to disable this.", + "category": "rebalance", + "dependencies": [ "dda" ] + }, + { + "type": "EXTERNAL_OPTION", + "name": "PORTAL_STORM_IGNORE_NPC", + "stype": "bool", + "value": true + } +] diff --git a/data/Mainline_mods/Mods/Personal_Portal_Storms/monster_factions.json b/data/Mainline_mods/Mods/Personal_Portal_Storms/monster_factions.json new file mode 100644 index 000000000..748b200da --- /dev/null +++ b/data/Mainline_mods/Mods/Personal_Portal_Storms/monster_factions.json @@ -0,0 +1,18 @@ +[ + { + "type": "MONSTER_FACTION", + "name": "nether_player_hate", + "//": "These creatures aren't necessarily sentient in and of themselves or are drawn to sentient life in and around dimensional breaches.", + "//2": "To avoid NPC death these are personal hallucinations.", + "base_faction": "nether", + "friendly": [ "zombie" ], + "neutral": [ "animal", "human" ], + "hate": [ "player" ] + }, + { + "type": "MONSTER_FACTION", + "name": "human", + "neutral": [ "mech_bot", "passive_machine", "nether_player_hate" ], + "by_mood": [ "exodii", "isolated_artisans", "yrax" ] + } +] diff --git a/data/Mainline_mods/Mods/Rummaging/modinfo.json b/data/Mainline_mods/Mods/Rummaging/modinfo.json index 574728697..502b5f68b 100644 --- a/data/Mainline_mods/Mods/Rummaging/modinfo.json +++ b/data/Mainline_mods/Mods/Rummaging/modinfo.json @@ -6,7 +6,7 @@ "authors": [ "Aunt_Su | 苏大妈#7831" ], "description": "Some furniture containers need to open the door to scavenge, to enhance the thrill of scavenging.", "category": "misc_additions", - "obsolete": false, + "obsolete": true, "dependencies": [ "dda" ] }, { @@ -397,6 +397,7 @@ "HIDE_PLACE", "NO_SIGHT" ], + "connect_groups": "COUNTER", "connects_to": "COUNTER", "max_volume": "350 L", "examine_action": "workbench", @@ -410,6 +411,7 @@ "symbol": "#", "color": "blue", "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "CONTAINER", "PLACE_ITEM", "ORGANIC", "MOUNTABLE", "FLAT_SURF", "SEALED" ], + "connect_groups": "COUNTER", "connects_to": "COUNTER", "max_volume": "350 L", "examine_action": "workbench", diff --git a/data/Mainline_mods/Mods/Sky_Island/EOCs.json b/data/Mainline_mods/Mods/Sky_Island/EOCs.json new file mode 100644 index 000000000..a6f7f8f7f --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/EOCs.json @@ -0,0 +1,407 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_difficultysafeguard", + "//": "This EOC gets called after a teleport is initialized but before it is finished. It basically just checks if you're running an older save or somehow missed the difficulty assignment.", + "condition": { "math": [ "has_set_difficulty", "==", "0" ] }, + "effect": [ + { + "u_message": "You haven't selected a difficulty. This could be because you're playing an old save.\n\nYour current difficulty has been set to Normal. In this setting, you will have 4 hours in every expedition to reach the exit and leave safely. After this, warp sickness sets in and applies heavy debuffs until you exit. After 6 hours, warp disintegration begins, and you will rapidly lose health until you exit or die.", + "popup": true + }, + { "run_eocs": [ "EOC_difficultycheck1" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_warp_statue", + "//": "This EOC is triggered when activating the statue. It grabs a random location of a certain type (here a field), saves it to a global variable, and then triggers the actual teleport-out EOC, which is separate so multiple different things can trigger it and potentially target different locations.", + "condition": { + "u_query": "Begin searching for a spot to teleport to? This may take a moment while we scan the world. Your game may appear to freeze for up to a few minutes, especially for your first expedition.", + "default": false + }, + "effect": [ { "run_eocs": [ "EOC_Random_Loc_Warp", "EOC_difficultysafeguard", "EOC_initiate_randomport" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_initiate_randomport", + "//": "The actual EOC that teleports the player to the ground. A target location must already be stored when this is called. When this begins, it also memorizes the player's exact position on leaving, which is where they'll return to when the mission ends or they die. It gives you a warp recharge cooldown, which must expire over time before you're able to voluntarily return home. It also gives you the stable form of warp sickness, so that the player has a visual status reminder they can check. Finally, it turns you invisible for 60 seconds so you can at least try to reach cover if you spawn in danger.", + "effect": [ + { "u_location_variable": { "global_val": "OM_HQ_origin" } }, + { "u_add_effect": "warpcloak", "intensity": 1, "duration": "60 s" }, + { + "u_teleport": { "global_val": "OM_missionspot" }, + "fail_message": "It seems the portal couldn't find a valid location.", + "force": true + }, + { + "u_message": "You're still materializing and not fully visible yet. In about 60 seconds, the world will be able to see you, so if you were warped into danger, now's your chance to get to cover.", + "popup": false + }, + { + "u_message": "You've arrived!\nPress a key when ready and random missions will be generated for this expedition. This may take another minute.", + "popup": true + }, + { "run_eocs": [ "EOC_safely_landed" ] }, + { "u_add_trait": "awayfromhome" }, + { "u_add_effect": "warpsickness", "intensity": 6, "duration": "PERMANENT" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_return_OM_teleport", + "//": "This is the EOC which actually returns you home. It brings you home and removes all warp-related effects including warp sickness. It also resets the awayfromhome counter to 0 so warp sickness can be tracked properly next time you're out.", + "effect": [ + { "u_teleport": { "global_val": "OM_HQ_origin" }, "force": true }, + { "u_remove_item_with": "warphome" }, + { "math": [ "raidstotal", "++" ] }, + { "u_lose_trait": "awayfromhome" }, + { "u_lose_effect": "warpsickness" }, + { "u_lose_effect": "warpdisintegration" }, + { + "run_eocs": [ "EOC_clearmissions", "EOC_clearmissions", "EOC_clearmissions", "EOC_progressgate1", "EOC_progressgate2" ] + }, + { "alter_timed_events": "return_portal_close" }, + { "math": [ "timeawayfromhome", "=", "0" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_progressgate1", + "//": "Checks to see if you have successfully completed 5 raids and unlocks higher difficulty.", + "condition": { "and": [ { "math": [ "isdifficult", "==", "0" ] }, { "math": [ "raidswon", ">=", "5" ] } ] }, + "effect": [ + { + "u_message": "You've proved you can survive a few excursions to the world below. As if in response, the warpstream surges with new energies. You may find yourself deploying to more dangerous places, or charged with harder missions.\nYour magical healing salve will no longer work. Be cautious in your future endeavors.", + "popup": true + }, + { "math": [ "isdifficult", "=", "1" ] }, + { "math": [ "hardmissions", "=", "10" ] }, + { "math": [ "hardermissions", "=", "5" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_progressgate2", + "//": "Checks to see if you have successfully completed 5 raids and unlocks higher difficulty.", + "condition": { "and": [ { "math": [ "isdifficult", "==", "1" ] }, { "math": [ "raidswon", ">=", "10" ] } ] }, + "effect": [ + { + "u_message": "You've proved sufficient understanding of the warpstream. The hardest tier of missions is now available. You never know what awaits earthside.", + "popup": true + }, + { "math": [ "isdifficult", "=", "2" ] }, + { "math": [ "hardmissions", "=", "15" ] }, + { "math": [ "hardermissions", "=", "15" ] }, + { "math": [ "hardestmissions", "=", "10" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_clearmissions", + "//": "This EOC wipes all missions you might have. It's more or less a full list of any random missions you can be assigned.", + "effect": [ + { "remove_active_mission": "MISSION_REACH_EXTRACT" }, + { "remove_active_mission": "MISSION_BONUS_TREASURE" }, + { "remove_active_mission": "MISSION_BONUS_KILL_LIGHT" }, + { "remove_active_mission": "MISSION_BONUS_KILL_HORDE" }, + { "remove_active_mission": "MISSION_BONUS_KILL_MID" }, + { "remove_active_mission": "MISSION_BONUS_KILL_MID_HORDE" }, + { "remove_active_mission": "MISSION_BONUS_KILL_HARD" }, + { "remove_active_mission": "MISSION_BONUS_KILL_ELITE" }, + { "remove_active_mission": "MISSION_BONUS_KILL_BOSS" }, + { "remove_active_mission": "MISSION_BONUS_KILL_BOSS_GROUP" }, + { "remove_active_mission": "MISSION_BONUS_KILL_MIGO" }, + { "remove_active_mission": "MISSION_BONUS_KILL_MIGO_ELITE" }, + { "finish_mission": "MISSION_BONUS_SLAUGHTER_ZED1", "success": false }, + { "finish_mission": "MISSION_BONUS_SLAUGHTER_ZED2", "success": false }, + { "finish_mission": "MISSION_BONUS_SLAUGHTER_ZED3", "success": false }, + { "finish_mission": "MISSION_BONUS_SLAUGHTER_MIGO", "success": false }, + { "finish_mission": "MISSION_BONUS_SLAUGHTER_NETHER", "success": false }, + { "finish_mission": "MISSION_BONUS_SLAUGHTER_BIRD", "success": false }, + { "finish_mission": "MISSION_BONUS_SLAUGHTER_MAMMAL", "success": false }, + { "remove_active_mission": "MISSION_BONUS_ASSASSIN1" }, + { "remove_active_mission": "MISSION_BONUS_ASSASSIN2" }, + { "remove_active_mission": "MISSION_BONUS_ASSASSIN3" }, + { "remove_active_mission": "MISSION_BONUS_ASSASSIN4" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_statue_return", + "//": "This EOC is activated by return portals. It's just here to confirm that you want to return home, then triggers the actual teleport home.", + "condition": { + "u_query": "This will teleport you back home with only the items on your person. Anything left behind will be as good as gone. Are you ready to leave?", + "default": false + }, + "effect": [ { "math": [ "raidswon", "++" ] }, { "run_eocs": [ "EOC_return_OM_teleport" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_homewardmote", + "//": "This EOC is activated by eating a return pill, the homeward mote. Identical to statue return but with no query to avoid wasting the pill. Also destroys any motes you were carrying.", + "effect": [ { "run_eocs": [ "EOC_return_OM_teleport" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_youdied", + "//": "This EOC is called when the player dies. Before anything else happens, it checks if the player has a lifeshield mote. If so, it warps you home safe and sound, counting as neither a loss nor a victory, and all your stuff comes with you. Otherwise, it moves on to other death checks below.", + "eoc_type": "PREVENT_DEATH", + "condition": { "u_has_item": "warphome" }, + "effect": [ + { "run_eocs": [ "EOC_homewardmote", "EOC_healall" ] }, + { + "u_message": "Moments before your last breath leaves your body, the mote of warp essence on you jolts with a brilliant energy. Its thin filament immediately snaps tight, reeling you home faster than you can process what it was that just saved your life. The mote is spent, but you arrive home alive and well.", + "popup": true + } + ], + "false_effect": [ { "run_eocs": [ "EOC_deathconfirmed" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_deathconfirmed", + "//": "The player's death is now confirmed and not protected. The true effect is when you die on the island, and the false effect is when you die out in the world. Both make you incorporeal, which saves you from damage but also makes you drop all items behind, then heal you slightly to prevent death.", + "condition": { "not": { "u_has_trait": "awayfromhome" } }, + "effect": [ + { "u_add_effect": "downed", "duration": 1 }, + { "u_add_effect": "incorporeal", "duration": 500 }, + { "run_eocs": [ "EOC_death_heal" ] }, + { + "u_message": "You died at home? What's the matter with you? Stop this. You are restored. The powers that be have made you temporarily incorporeal, in case you were stuck in a deadly loop.", + "popup": true + } + ], + "false_effect": [ + { "u_add_effect": "incorporeal", "duration": 1 }, + { "u_add_effect": "downed", "duration": 1 }, + { "run_eocs": [ "EOC_death_heal" ] }, + { "u_spawn_item": "corpse_painful" }, + { "math": [ "raidslost", "++" ] }, + { "queue_eocs": "EOC_return_OM_teleport", "time_in_future": "1 s" }, + { + "u_message": "You feel the icy grip of death begin to take you, and the world whirls and rushes past. Reality bends and at the peak of your last mortal moment, something snags you and hauls you through space and time. Your mind has been preserved, at cost, and your body is not far behind.", + "popup": true + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_HEAL_NEWBIE", + "//": "Runs when using newbie salve. Free heals until you have 5 wins.", + "condition": { "math": [ "isdifficult", "==", "0" ] }, + "effect": [ { "run_eocs": [ "EOC_healall" ] } ], + "false_effect": [ + { + "u_message": "The salve has no effect. It was only ever meant for the inexperienced and the innocent. You've proved capable in your successful expeditions and must rely on yourself from now on." + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_healall", + "//": "Just a simple EOC to bring all your HP to full, while not addressing most other health factors. Can only be used at home.", + "condition": { "not": { "u_has_trait": "awayfromhome" } }, + "effect": [ + { + "u_message": "Your body mends itself in the blink of an eye. Underlying health issues may persist, but your structural integrity is restored." + }, + { "u_set_hp": 999, "only_increase": true }, + { "run_eocs": [ "EOC_healextras" ] } + ], + "false_effect": [ + { + "u_message": "The effect is wasted and you don't feel any better. You have to be in your sanctuary to be healed by this!" + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_healextras", + "//": "Clears up various conditions beyond just your hp. Should cover most diseases and infections, prevent extreme thirst and starvation, wipe pain, and even cure a few edge cases like being covered in acid.", + "effect": [ + { "math": [ "u_val('stored_kcal')", "=", "max( u_val('stored_kcal'), 9000)" ] }, + { "math": [ "u_val('thirst')", "=", "min( u_val('thirst'), 800)" ] }, + { "math": [ "u_val('vitamin', 'name: redcells')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: bad_food')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: blood')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: instability')", "=", "0" ] }, + { "math": [ "u_pain()", "=", "0" ] }, + { "math": [ "u_val('rad')", "=", "0" ] }, + { "u_add_effect": "cureall", "duration": "1 s", "intensity": 1 }, + { "u_add_effect": "panacea", "duration": "30 s", "intensity": 1 }, + { "u_lose_effect": "corroding" }, + { "u_lose_effect": "onfire" }, + { "u_lose_effect": "dazed" }, + { "u_lose_effect": "stunned" }, + { "u_lose_effect": "venom_blind" }, + { "u_lose_effect": "formication" }, + { "u_lose_effect": "blisters" }, + { "u_lose_effect": "frostbite" }, + { "u_lose_effect": "frostbite_recovery" }, + { "u_lose_effect": "wet" }, + { "u_lose_effect": "slimed" }, + { "u_lose_effect": "migo_atmosphere" }, + { "u_lose_effect": "fetid_goop" }, + { "u_lose_effect": "sap" }, + { "u_lose_effect": "nausea" }, + { "u_lose_effect": "bleed" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_death_heal", + "//": "This is the heal that is called when you die to make sure you have enough health to not-die. It also lowers your hunger and thirst slightly if they're above an extreme limit. Finally it sets your sub-parts to full health since they will otherwise get totally ruined and don't seem to have any natural way to heal.", + "effect": [ + { "u_set_hp": 999, "only_increase": true }, + { "u_set_hp": 15, "only_increase": false, "target_part": "torso" }, + { "u_set_hp": 15, "only_increase": false, "target_part": "head" }, + { "u_set_hp": 15, "only_increase": false, "target_part": "arm_l" }, + { "u_set_hp": 15, "only_increase": false, "target_part": "arm_r" }, + { "u_set_hp": 15, "only_increase": false, "target_part": "leg_r" }, + { "u_set_hp": 15, "only_increase": false, "target_part": "leg_l" }, + { "run_eocs": [ "EOC_healextras" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "scenario_warp_begins", + "//": "This EOC is triggered when the Warper scenario begins. It initializes a few variables, and memorizes your spawn location for resurrection just in case you somehow die before using the warp obelisk. Also learns your spell for emergencies.", + "eoc_type": "SCENARIO_SPECIFIC", + "effect": [ + { + "u_message": "Welcome to Sky Islands. Here, you will have to make expeditions from your floating sanctuary base to the world below. Fight your way to the exit within the time limit and bring back whatever you can carry, but if you die, you will be returned to the island injured, and lose all equipment you were carrying.", + "popup": true + }, + { + "u_message": "While on expedition, you will be timed by 'warp pulses', which hit you at regular intervals. After 8 pulses, you will suffer warp sickness, which results in reduced stats. Every pulse after that will lower your stats even further. After the 12th pulse, you will also begin disintegrating, taking damage until you die.\n\nGet home safely to reset the timer!", + "popup": true + }, + { + "u_message": "Now, let's select your difficulty mode!\n\nThis only affects how long the expedition timer is. It won't change combat difficulty or any other settings.", + "popup": true + }, + { "math": [ "has_set_difficulty", "=", "0" ] }, + { "run_eocs": [ "EOC_difficultycheck" ] }, + { "u_location_variable": { "global_val": "OM_HQ_origin" } }, + { "math": [ "timeawayfromhome", "=", "0" ] }, + { "math": [ "raidstotal", "=", "0" ] }, + { "math": [ "raidswon", "=", "0" ] }, + { "math": [ "raidslost", "=", "0" ] }, + { "math": [ "isdifficult", "=", "0" ] }, + { "math": [ "missionswon", "=", "0" ] }, + { "math": [ "slaughterswon", "=", "0" ] }, + { "math": [ "hardmissions", "=", "0" ] }, + { "math": [ "hardermissions", "=", "0" ] }, + { "math": [ "hardestmissions", "=", "0" ] }, + { "math": [ "distancetotarget", "=", "0" ] }, + { "math": [ "mindistancetotarget", "=", "0" ] }, + { "math": [ "u_val('spell_level', 'spell: warp_home')", "=", "0" ] }, + { "math": [ "u_val('spell_exp', 'spell: warp_home')", "=", "0" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_difficultycheck", + "effect": [ + { + "run_eoc_selector": [ "EOC_difficulty0", "EOC_difficulty1", "EOC_difficulty2", "EOC_difficulty3" ], + "names": [ "Casual", "Normal", "Hard", "Impossible" ], + "keys": [ "1", "2", "3", "4" ], + "descriptions": [ + "In Casual difficulty, time limits are more relaxed.\nWarp pulses occur every 90 minutes. This means warp sickness sets in after 12 hours of being earthside, and disintegration at 18 hours. You will have more time for activities and reaching the extract should generally not be a problem.", + "In Normal Difficulty, pulses occur every 45 minutes. This means on every expedition, you will have 6 hours to explore, fight, loot, and find the exit before warp sickness sets in, and 8 hours total before disintegration begins.\nThis is the intended way to play. Getting to the exit is not a cakewalk, but you should have time to explore while earthside.", + "In Hard difficulty, time limits are strict.\nWarp pulses occur every 30 minutes. This means warp sickness sets in after only 4 hours of being earthside, and disintegration at 6 hours. You will have much less time to spare and must make getting to the exit your immediate priority.", + "In Impossible difficulty, time limits are extremely tight.\nWarp pulses occur every 15 minutes. This means warp sickness sets in after only 2 hours of being earthside, and disintegration at 3 hours. Reaching the extract alive will take all the time you can spare, and warp sickness will be common. You will not be given mercy!" + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_difficulty0", + "effect": [ + { + "u_message": "Difficulty set to Casual. You can use the Difficulty Adjuster if you wish to change your setting at any time." + }, + { "arithmetic": [ { "global_val": "var", "var_name": "sicknessintervals" }, "=", { "time": "90 m" } ] }, + { "math": [ "has_set_difficulty", "=", "1" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_difficulty1", + "effect": [ + { + "u_message": "Difficulty set to Normal. You can use the Difficulty Adjuster if you wish to change your setting at any time." + }, + { "arithmetic": [ { "global_val": "var", "var_name": "sicknessintervals" }, "=", { "time": "45 m" } ] }, + { "math": [ "has_set_difficulty", "=", "1" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_difficulty2", + "effect": [ + { + "u_message": "Difficulty set to Hard. You can use the Difficulty Adjuster if you wish to change your setting at any time." + }, + { "arithmetic": [ { "global_val": "var", "var_name": "sicknessintervals" }, "=", { "time": "30 m" } ] }, + { "math": [ "has_set_difficulty", "=", "1" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_difficulty3", + "effect": [ + { + "u_message": "Difficulty set to Impossible. You can use the Difficulty Adjuster if you wish to change your setting at any time." + }, + { "arithmetic": [ { "global_val": "var", "var_name": "sicknessintervals" }, "=", { "time": "15 m" } ] }, + { "math": [ "has_set_difficulty", "=", "1" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_statcheck", + "//": "Displays the player's stats.", + "effect": [ + { "math": [ "readablesicknessintervals", "=", "sicknessintervals / 60" ] }, + { + "u_message": "Total expeditions: \nWins: \nLosses: \nMissions complete: \nSlaughter missions complete: \n\nCurrent difficulty settings:\nWarpsickness at: 8 pulses.\nDisintegration at: 12 pulses.\nPulses every: minutes." + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_CHECK_ISLANDSTORM", + "//": "Pre-portal-ending check that makes sure you're on the island first. Called by wardstone.", + "condition": { "not": { "u_has_trait": "awayfromhome" } }, + "effect": [ + { "u_message": "The warding stone crackles with static electricity." }, + { "run_eocs": [ "EOC_CANCEL_PORTAL_STORM" ] } + ], + "false_effect": [ { "u_message": "This stone can only be used in your sanctuary!" } ] + }, + { + "id": "warp_home", + "type": "SPELL", + "name": "Warp Home", + "//": "A simple no-failure spell that can be cast with hands full and triggers the EOC to return home. Flagged as verbal so you make noise while casting, increasing the need to find a safe spot to warp from. This only exists in case of bugs.", + "description": "Take a full minute of concentration and return to the safety of your home base. THIS SPELL IS FOR EMERGENCIES AND CHEATERS ONLY -- USE IN THE EVENT YOUR EXIT ROOM DID NOT SPAWN SUCCESSFULLY.", + "valid_targets": [ "self" ], + "spell_class": "NONE", + "flags": [ "NO_EXPLOSION_SFX", "NO_FAIL", "NO_LEGS", "NO_HANDS", "VERBAL" ], + "difficulty": 0, + "min_damage": 1, + "max_damage": 1, + "duration_increment": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_return_OM_teleport", + "shape": "blast", + "energy_source": "NONE", + "base_energy_cost": 0, + "final_energy_cost": 0, + "base_casting_time": 6000, + "final_casting_time": 6000 + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/LICENSE b/data/Mainline_mods/Mods/Sky_Island/LICENSE new file mode 100644 index 000000000..944a917b0 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/LICENSE @@ -0,0 +1,76 @@ +Creative Commons Legal Code + +Attribution-ShareAlike 3.0 Unported + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + + "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. + "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. + "Creative Commons Compatible License" means a license that is listed at https://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. + "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. + "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. + "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. + "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. + "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. + "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. + "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. + "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + + to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; + to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; + to Distribute and Publicly Perform the Work including as incorporated in Collections; and, + to Distribute and Publicly Perform Adaptations. + + For the avoidance of doubt: + Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; + Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, + Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + + You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. + You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. + If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. + Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +8. Miscellaneous + + Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. + Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. + If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. + This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. + The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. + + Creative Commons Notice + + Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. + + Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of the License. + + Creative Commons may be contacted at https://creativecommons.org/. diff --git a/data/Mainline_mods/Mods/Sky_Island/README.md b/data/Mainline_mods/Mods/Sky_Island/README.md new file mode 100644 index 000000000..9343147c0 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/README.md @@ -0,0 +1,109 @@ +# Sky Islands +A raid-based gameplay overhaul mod for CDDA, inspired by games like Escape from Tarkov and Dark & Darker. +### Warning: +- "Play Now!" will not work. You MUST make a custom character for this. +- The game uses code to search large areas of the map. That means you may run into load times of up to a couple minutes at times. You will generally be warned of these in-game, so please be patient. +- Save often because there WILL be bugs and even occasionally crashes at this stage. + +Changelog has been moved to the bottom! Scroll down! + +# Overview +This mod attempts to completely change how you play CDDA. + +You start off high in the sky on a floating island, and using a warp statue located there, will be teleported to a random location on the earth below to commence an "expedition". There, you are on a limited timer of only 6 hours and must fight, loot, and journey your way to the nearby exit portal. Use it, and you will bring all the items you were carrying back to the safety of your floating sanctuary, but you will not be able to return to the place you left behind. +The better equipped you are, the more likely you will survive, but remember that bringing out too much gear will make it hard to carry much new loot home -- and dying with all that high quality gear means it's gone forever. Balancing what gear you are willing to risk on any expedition is an important consideration. + +### You Can't Go Back +Once you warp home, there will be no way to warp back to the area on the ground you just left. Every trip to the surface is fleeting. As a result you will have no way to keep most vehicles, no need to thoroughly clear most areas, and no reason to preserve anything. This will drastically change how most players approach normally routine scenarios. Remember that only carried items can be brought home -- if something cannot be taken with you or used during the expedition, it's junk! +### Death is not the end. +Should you die, your character's story is not over! You will simply return to the island at low health, but everything you had on you will be lost. Recover your strength, gear up from your stash, and head back out. +## Warpcloak +For the first 60 seconds of every expedition, you will be under the effect of "warpcloak". This leaves you invisible and immune to fall damage, which should give you just enough time to run for cover in case you were dropped into extreme danger. Don't waste it - act fast! +### Warp Sickness and Variable Difficulty +Difficulty is selected in-game when a new game starts and affects _ONLY_ how long you can stay out on each expedition. Every setting has a soft limit and a hard limit. When you hit the soft limit, you suffer Warp Sickness: your stats begin to slowly drain until you leave. When you hit the hard limit, you contract Warp Disintegration: you begin rapidly taking damage until you leave or die! + +**Normal difficulty** is the way the mod was meant to be played. and gives you a soft limit of 4 hours and a hard limit of 6 hours per raid. +If you're looking for a more extreme challenge, you can play **Extra Hard mode**, which gives you a soft limit of only 2 hours and a hard limit of 3 hours. This timer is _extremely_ tight, and you will need to find vehicles, take shortcuts, or fight through the penalties of being late. It will leave precious little time for looting or side missions. +If you want more time to loot, explore, and salvage, **Casual mode** gives you a soft limit of 12 hours and a hard limit of 18 hours. + +## The Island +The eponymous sky island is your sanctuary and home base. You're given a large, magically isolated area you can customize however you want. Stash your items, grow crops, set up production, build a base. Anything you like. While here no threats should be able to reach you. +As it is exposed to the sky, solar power works here. As it is very high up, expect cold, windy days. + +## The "Expeditions" +When you're ready to set out, gear up and examine the warp statue. This will send you to a random unexplored area of the map. Nearby, at random, you will also find a location marked in your mission journal: a return portal, your only exit. You must fight your way to the return portal before warp sickness overtakes you, and examine the statue in the mysterious Red Room you find marked on your map (it always spawns in a field). Do this and you complete that excursion -- you will be returned home safely with everything you were carrying. Take this time to organize, rest, and recover, before planning your next mission. + +### Missions +You will be given four marked missions in your log every time you begin an expedition. One will guide you to the exit portal. One will require you to kill a certain total amount of enemies before returning home. And finally you will get two randomly generated missions to visit a location, usually to clear a specific threat. Rewards, in the form of **warp shards**, are issued on completion of these missions. Harder missions yield more warp shards. There is also a further shard bonus for location: missions in fields give +0, in forests give +1, and in houses and towns give +2. + +### Warp Shards and Warped Items +These special resources can only be acquired by completing missions. Bring them safely home where they can be crafted into special items. These items provide unique powers, primarily to make it easier to bring more loot home. For instance, there's the Warped Lumberjack's Bag, which can _only_ hold sticks, planks, logs, and other raw wood materials, but holds an absolutely absurd amount and even reduces the weight of contained items. Another bag could let you bring animals home with you. You could invest in consumable pills which can extend the timer on your expeditions. There's even a very expensive item that will allow you to bring an entire autodoc home to your base -- if you can get it out safely! +Warp shards can't buy you weapons, armor, food, or most useful supplies. Their primary use is making it easier to claim loot, but you still have to find it in the first place! + +To find these recipes just look under the "Warp" tab in your crafting menu, under "Other". + +## Warp Home Spell +**In the event an exit did not generate or you otherwise need to get home** you have been provided with a personal spell to warp home directly. This is intended for bug fixing **ONLY** when your exit has not spawned properly. However, if you'd like to play a much easier version of the mod, I can't stop you from using it whenever you want. Be warned this will remove most of the challenge. + +# Tips +- Warp pulses come at even intervals when you play -- 15 minutes on Impossible, 30 minutes on Hard, 45 minutes on Normal, and 90 minutes on Casual. At 8 pulses, you begin to suffer stat debuffs. At 12, you begin disintegrating. These will remind you that time is passing, and you will receive a warning when you are almost at your limit. Never forget your time limit! A watch or clock can save your life, but if you have nothing else, keep an eye on your warp pulses! +- Remember that anything carried or worn is brought home. Since you can wield very bulky items, it might be worth grabbing the biggest thing you can find before coming home. A corpse to butcher, a heavy piece of furniture to build with, an entire engine block. You may not be able to stand up, but if you can hold it, it's coming with you! +- You're expected to die. More than usual. Each expedition will see you dropped into potential danger, racing the clock to push through hostile and unfamiliar terrain, cut off from home base, impeded by unseen obstacles, and with only the gear on your back. Many factors combine to make this experience harder than normal CDDA, so you will probably die more often. Don't feel bad, just pick yourself up and try again! +- Stockpile multiples! Many things you only needed one of before will need to be replaced if an expedition is lost. Stash extra guns, backpacks, shoes, clothes, watches, pocket knives, lighters, and anything else you may risk losing! Many tools and utensils can be kept safely at home, but for everything else, be mindful! +- You can spend as long as you want in the safety of your home. Sooner or later you'll need to restock on *something*, but if you need to take a few days off, no one will bother you. +- You start with a free tent and a special salve which will take you immediately to full health. This salve will only last until you have completed 5 successful expeditions. After that, it becomes useless. Use this grace period to get a decent stockpile of basic supplies going, and be ready to heal yourself afterwards! +- In case of extreme injury, Quickheal pills can be crafted from warp shards. These will patch you up to full health and cure most conditions, but can only be used on the island! +- Life insurance! For a very high price, you can craft a Homeward Mote. Bring this on an expedition and if you die, you will instead be healed to full and warped home *with all your items*. However, this mote is only good for a single expedition. Even if you survive and extract successfully, the mote will be gone. It'll be used up either way, so there's no reason not to press your luck! +- Grab everything you can carry! Any empty space in your pack is wasted. Lots of items you could easily take 20 seconds to step out for in a normal game are now much more inaccessible. Getting things like a pot to cook with, a basic cutting implement, and a warm blanket to sleep with are all invaluable early on. +- Leave in a hurry! Even if a horde is bearing down on you, or you're literally being eaten alive by dogs, touching the return portal will *instantly* bring you home. No need to make a last stand, sometimes even with hell on your heels it's best to just run for the exit! +- Have fun! Please report any bugs or leave suggestions for balance changes. + + +A mod I wanted to play so bad I just made it myself +-TGWeaver + +# Changelog +**v0.2.2** This version may not be compatible with old saves! But old saves don't work on the new versions anyway, so use your own judgement. +- Updated mod to be compatible with newer CDDA versions (as of 2023-06-01-1256). +- Missions to kill groups of enemies now require you to actually kill ALL the enemies. Previously they would complete after killing ANY of the enemies. +- Random Artifacts are now crafted directly, instead of crafting an "artifact box" and then unpacking it. +- You should now properly lose your radiation sickness when dying or using the Salve of Forgiveness. +- Infinitrees are now considered furniture, not terrain, and can be dragged around your island. + +**v0.2.1** This version should be compatible with old saves. +- Being hit by a warp pulse now tells you exactly how many more pulses you have left until negative effects begin. +- Two extracts spawn per mission instead of one. +- Added Portal Storm Warding Stone that will dispel portal storms, but only when used on your island. +- In-game difficulty selection now offers Normal as first option. Saying no to every option loops the menu over again; you have to say yes to something to proceed. + - Two extracts spawn per mission instead of one. + - Normal difficulty is now 6 hours soft cap, 9 hours hard cap. + - Added new hard difficulty with 4 hour soft cap, 6 hour hard cap (same as old Normal). +- Stat Stone now tells you your difficulty settings. +- Rewrote a lot of in-game text to be more consistent and less wordy. +- Fixed warp disintegration hitting one pulse too early. +- Fixed missions not cleaning up properly. + + +**v0.2** This version should be compatible with old saves, but may require you to update C:DDA. +- Added multiple difficulties, changed default timer from 24 hours to 4 hours. +- Extracts can now spawn much further away. +- Added many more mission types, monstergroups to fill them with, and more. +- You now receive multiple missions per expedition. +- Added warp shards as mission rewards, and items to craft them into + - Added warped bags to bring bulk materials home. + - Added warped carrier to bring animals home. + - Added warped hauler to strap a single item into for bonus hauling. + - Added "Infinitree" to harvest logs and sticks at home. + - Made Quickheal pills craftable. + - Added Homeward Mote for "life insurance" on specific expeditions. + - Added Earthbound pill to extend your current raid's timer. + - Added a way to get an Autodoc on your island. + - Added a way to cash in warp shards in exchange for random artifacts. +- Replaced starting Quickheal stockpile with Salve of Forgiveness, which heals you for free until you win 5 expeditions. +- Added unlockable progress. Initially, only some mission types are available, and you will only deploy to fields. After 5 wins, more mission types will unlock, and you may start deploying to forests. After 10 wins, all mission types are unlocked and you may start deploying to houses. +- Added a Stat Stone that can tell you how many expeditions you've gone on, as well as total wins and losses. +- Cleaned up your island! All the misc. trash will now spawn pre-gathered on a single tile so you don't have to go sweeping every time you start a new game. +- Warp disintegration is more lethal. +- Many text prompts are more clear. +- Added a way to regrow grass at your home island, just for looks. +- Numerous bug and balance fixes. \ No newline at end of file diff --git a/data/Mainline_mods/Mods/Sky_Island/constructions.json b/data/Mainline_mods/Mods/Sky_Island/constructions.json new file mode 100644 index 000000000..2eb3a162f --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/constructions.json @@ -0,0 +1,202 @@ +[ + { + "type": "construction", + "id": "grow_infinitree_1", + "group": "infinitree_growing", + "category": "OTHER", + "required_skills": [ [ "survival", 3 ] ], + "time": "120 m", + "components": [ [ [ "warptoken", 10 ] ], [ [ "stick", 2 ], [ "twig", 6 ] ], [ [ "leaves", 8 ] ], [ [ "material_soil", 2 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_infinitree1", + "activity_level": "LIGHT_EXERCISE" + }, + { + "type": "construction", + "id": "infinitree_sticks_1", + "group": "infinitree_sticks", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": "15 m", + "byproducts": [ + { "item": "stick_long", "count": [ 1, 2 ] }, + { "item": "stick", "count": [ 1, 6 ] }, + { "item": "twig", "count": [ 5, 12 ] }, + { "item": "leaves", "count": [ 4, 16 ] } + ], + "pre_terrain": "f_infinitree1", + "post_flags": [ "keep_items" ], + "activity_level": "LIGHT_EXERCISE" + }, + { + "type": "construction", + "id": "infinitree_chop_1", + "group": "infinitree_chop", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": "60 m", + "qualities": [ [ { "id": "AXE", "level": 1 } ] ], + "byproducts": [ + { "item": "log", "count": 1 }, + { "item": "stick_long", "count": [ 0, 2 ] }, + { "item": "splinter", "count": [ 2, 8 ] } + ], + "pre_terrain": "f_infinitree1", + "post_flags": [ "keep_items" ], + "activity_level": "ACTIVE_EXERCISE" + }, + { + "type": "construction", + "id": "infinitree_chop_2", + "group": "infinitree_chop", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": "30 m", + "qualities": [ [ { "id": "AXE", "level": 2 } ] ], + "byproducts": [ + { "item": "log", "count": 1 }, + { "item": "stick_long", "count": [ 1, 2 ] }, + { "item": "splinter", "count": [ 2, 8 ] } + ], + "pre_terrain": "f_infinitree1", + "post_flags": [ "keep_items" ], + "activity_level": "ACTIVE_EXERCISE" + }, + { + "type": "construction", + "id": "infinitree_chop_3", + "group": "infinitree_chop", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": "10 m", + "qualities": [ [ { "id": "AXE", "level": 3 } ] ], + "byproducts": [ + { "item": "log", "count": 1 }, + { "item": "stick_long", "count": [ 1, 2 ] }, + { "item": "splinter", "count": [ 2, 8 ] } + ], + "pre_terrain": "f_infinitree1", + "post_flags": [ "keep_items" ], + "activity_level": "ACTIVE_EXERCISE" + }, + { + "type": "construction", + "id": "infinitree_chop_4", + "group": "infinitree_chop", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": "5 m", + "qualities": [ [ { "id": "AXE", "level": 4 } ] ], + "byproducts": [ + { "item": "log", "count": 1 }, + { "item": "stick_long", "count": [ 1, 2 ] }, + { "item": "splinter", "count": [ 2, 8 ] } + ], + "pre_terrain": "f_infinitree1", + "post_flags": [ "keep_items" ], + "activity_level": "ACTIVE_EXERCISE" + }, + { + "type": "construction", + "id": "copy_autodoc_with_plate", + "group": "autodoc_copy", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": "5 m", + "components": [ [ [ "warp_autodoc_inert", 1 ] ] ], + "byproducts": [ { "item": "warp_autodoc_active", "count": 1 } ], + "pre_terrain": "f_autodoc", + "post_terrain": "f_wreckage", + "activity_level": "NO_EXERCISE" + }, + { + "type": "construction", + "id": "build_autodoc_from_plate", + "group": "autodoc_paste", + "category": "OTHER", + "required_skills": [ [ "survival", 0 ] ], + "time": "1 h", + "components": [ [ [ "warp_autodoc_active", 1 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_autodoc", + "activity_level": "LIGHT_EXERCISE" + }, + { + "type": "construction", + "id": "constr_sofa", + "group": "build_sofa", + "category": "FURN", + "required_skills": [ [ "fabrication", 4 ], [ "tailor", 4 ] ], + "time": "60 m", + "qualities": [ [ { "id": "HAMMER", "level": 2 } ], [ { "id": "SAW_W", "level": 1 } ] ], + "components": [ [ [ "2x4", 10 ] ], [ [ "nail", 10 ] ], [ [ "cotton_patchwork", 100 ] ] ], + "pre_special": "check_empty", + "post_terrain": "f_sofa", + "activity_level": "MODERATE_EXERCISE" + }, + { + "type": "construction", + "id": "couch_to_autodoc_couch", + "group": "autodoc_couch_conversion", + "category": "OTHER", + "required_skills": [ [ "fabrication", 6 ], [ "electronics", 3 ] ], + "time": "120 m", + "components": [ [ [ "nail", 10 ] ], [ [ "cable", 2 ] ], [ [ "plastic_chunk", 2 ] ], [ [ "circuit", 1 ] ] ], + "pre_terrain": "f_sofa", + "post_terrain": "f_autodoc_couch", + "activity_level": "LIGHT_EXERCISE" + }, + { + "type": "construction", + "id": "plant_grass", + "group": "sow_grass", + "category": "OTHER", + "components": [ [ [ "warp_grassbag", 1 ] ] ], + "required_skills": [ [ "survival", 0 ] ], + "time": "5 s", + "pre_terrain": "t_dirt", + "post_flags": [ "keep_items" ], + "post_terrain": "t_grass", + "activity_level": "NO_EXERCISE" + }, + { + "type": "construction_group", + "id": "sow_grass", + "name": "Cover soil with grass" + }, + { + "type": "construction_group", + "id": "infinitree_sticks", + "name": "Pluck Infinitree sticks" + }, + { + "type": "construction_group", + "id": "infinitree_chop", + "name": "Chop some wood from Infinitree" + }, + { + "type": "construction_group", + "id": "autodoc_copy", + "name": "Store Autodoc onto copyplate" + }, + { + "type": "construction_group", + "id": "autodoc_paste", + "name": "Place Autodoc from copyplate" + }, + { + "type": "construction_group", + "id": "autodoc_couch_conversion", + "name": "Convert sofa into Autodoc couch" + }, + { + "type": "construction_group", + "id": "infinitree_growing", + "name": "Plant Infinitree" + }, + { + "type": "construction_group", + "id": "build_sofa", + "name": "Build sofa" + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/effects.json b/data/Mainline_mods/Mods/Sky_Island/effects.json new file mode 100644 index 000000000..03948fbeb --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/effects.json @@ -0,0 +1,85 @@ +[ + { + "type": "mutation", + "id": "awayfromhome", + "name": { "str": "Earthside" }, + "//": "Basically just a flag to show you're away from base. This trait on your character is what tells the EOC to start increasing your warp sickness.", + "description": "You are away from your sanctuary island. Over time, you will begin to succumb to the intangible miasma of the world below, and your stats will suffer. You have several hours after warp before this becomes a problem, after which it will rapidly get worse until you warp home or die.", + "points": 0, + "valid": false, + "purifiable": false + }, + { + "type": "effect_type", + "id": "warpsickness", + "//": "This is the warp sickness effect which makes it hard to stay away from base for too long. Intensity 1 is the strongest while Intensity 5 is the weakest and has no penalties. This effect does not increase or decrease on its own, rather it is controlled exclusively by a recurring EOC which checks how long you've been away from base and intermittently moves you towards intensity 1. The decay messages don't seem to display this way but they're left here anyway.", + "name": [ "Warp Disintegration!", "Warp Necrosis", "Warp Debilitation", "Warp Sickness", "Warp Nausea", "Warp Stability" ], + "desc": [ + "You're going to die. And if you weren't busy leaking blood out of every pore, you'd find a better way to emphasize just how badly you're dying. Your only hope is to return home immediately.", + "The very fabric of your being is unraveling! You're in dire straits. You need to get back to your sanctuary island NOW!", + "You've stayed earthside WAY too long! Your body barely responds and your senses are slush. The world itself feels barbed and frayed, and the very air is like breathing fiberglass. If you want to survive, you need to warp home as soon as possible.", + "You've stayed earthside too long. Your body aches and your senses are dulling. Every step feels like you're walking through thick mud and breathing hot tar. You should warp home as soon as you can, or this is only going to get worse.", + "You've overstayed your time earthside. It's getting hard to concentrate, there's a painful ringing in your ears, and your muscles sting and jolt. Every action feels delayed. You need to warp home to refresh yourself, or this is going to get worse. Probably within just a few hours.", + "You're fresh from your stay at your sanctuary island. The intangible miasma of terra firma currently has no effect on you, and you feel fine. This should last for several hours. Stay too long, however, and you'll gradually begin to suffer ever-worsening debilitating effects." + ], + "decay_messages": [ + [ + "There are no words to describe how much trouble you're in. Your body is crumbling to wet paste and your blood is twisting into a viny tangle. All you know is pain. You're not just dying, you're dying horribly. Your only hope is escape to your sanctuary, but oblivion is only moments away.", + "bad" + ], + [ + "You taste blood and your eyes sink back into their sockets. You've stayed out too long. Your warp sickness is about to consume you entirely and you're falling apart at the seams. Get home NOW!", + "bad" + ], + [ + "The ravages of the world intensify. Everything hurts and existence is a surreal wash of pain. Your warp sickness is unbearable. You need to get home as soon as possible.", + "bad" + ], + [ + "The bile suddenly rises in your throat and your fingers feel like they're peeling themselves open. Your warp sickness is getting worse. You should get home soon.", + "bad" + ], + [ + "The whole world shimmers in front of your eyes. Everything feels slow and sticky. Warp sickness is setting in. You should focus on getting home.", + "bad" + ] + ], + "rating": "mixed", + "max_intensity": 6, + "base_mods": { "str_mod": [ -10 ], "dex_mod": [ -10 ], "per_mod": [ -10 ], "int_mod": [ -10 ] }, + "scaling_mods": { "str_mod": [ 2 ], "dex_mod": [ 2 ], "per_mod": [ 2 ], "int_mod": [ 2 ] } + }, + { + "id": "warpdisintegration", + "type": "effect_type", + "name": [ "Disintegrating!" ], + "//": "This is a very bad effect that will kill you in short order by damaging your torso over time. It is only activated by the recurring EOC which checks how long you've been away from base, and always at the same time that you reach warp sickness intensity 1.", + "desc": [ "Prolonged warp is destroying you. You're coming apart." ], + "apply_message": "You're being unmade!", + "remove_message": "The rending of the warp has finally abated. You feel like you exist again.", + "show_intensity": false, + "rating": "bad", + "max_intensity": 1, + "base_mods": { + "pain_amount": [ 5 ], + "pain_min": [ 1 ], + "pain_chance": [ 20 ], + "pain_max_val": [ 100 ], + "hurt_amount": [ 5 ], + "hurt_min": [ 1 ], + "hurt_chance": [ 1 ], + "hurt_tick": [ 20 ] + } + }, + { + "type": "effect_type", + "id": "warpcloak", + "name": [ "Warpcloaked" ], + "//": "A simple invisibility that decays on its own and whose duration is set in the teleport to world EOCs.", + "desc": [ + "You are invisible for a very brief time. Now's your chance to get to cover. You're also incorporeal enough to not take fall damage, but hopefully that won't be relevant." + ], + "flags": [ "INVISIBLE", "FEATHER_FALL" ], + "remove_message": "You fully materialize. You're not invisible anymore!" + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/furniture_and_terrain.json b/data/Mainline_mods/Mods/Sky_Island/furniture_and_terrain.json new file mode 100644 index 000000000..bc3988af4 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/furniture_and_terrain.json @@ -0,0 +1,127 @@ +[ + { + "type": "furniture", + "id": "f_exitportal", + "name": "Warp Obelisk", + "description": "A strange statue that will whisk you away to the dangerous world beyond.", + "//": "On examine, activates the EOC chain which lets you teleport away. I made it light and easy to push around so you could reorganize your base easily.", + "symbol": "S", + "color": "dark_gray", + "looks_like": "f_statue", + "move_cost_mod": -1, + "coverage": 0, + "required_str": 1, + "crafting_pseudo_item": "fakeitem_statue", + "flags": [ "NOCOLLIDE", "NO_PICKUP_ON_EXAMINE", "TRANSPARENT" ], + "examine_action": { "type": "effect_on_condition", "effect_on_conditions": [ "EOC_warp_statue" ] } + }, + { + "type": "furniture", + "id": "f_returnportal", + "name": "Return Obelisk", + "description": "A strange statue that will take you back home.", + "//": "On examine, activates the EOC which brings you straight home regardless of warp recharge cooldown.", + "symbol": "S", + "color": "dark_gray", + "looks_like": "f_statue", + "move_cost_mod": -1, + "coverage": 0, + "required_str": -1, + "flags": [ "NOCOLLIDE", "NO_PICKUP_ON_EXAMINE", "TRANSPARENT" ], + "examine_action": { "type": "effect_on_condition", "effect_on_conditions": [ "EOC_statue_return" ] } + }, + { + "type": "terrain", + "id": "t_fake_air", + "name": "open air", + "description": "This is the edge of the island. A metaphysical border stops you from going over the edge yourself, but anything you drop here will be gone forever.", + "//": "Literally just added this to prevent people from pushing the warp obelisk off the edge.", + "symbol": " ", + "color": "i_cyan", + "looks_like": "t_open_air", + "move_cost": 0, + "flags": [ "TRANSPARENT", "DESTROY_ITEM", "NO_SHOOT", "BLOCK_WIND", "TRANSPARENT_FLOOR" ] + }, + { + "type": "terrain", + "id": "t_traderwall", + "looks_like": "t_wall_glass", + "name": "warpglass wall", + "description": "A shimmering translucent barrier that almost yields to the touch, but adamantly refuses entry.", + "symbol": "LINE_OXOX", + "color": "light_cyan", + "move_cost": 0, + "roof": "t_flat_roof", + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ], + "shoot": { + "reduce_damage": [ 3800, 4000 ], + "reduce_damage_laser": [ 3800, 4000 ], + "destroy_damage": [ 4000, 5000 ], + "no_laser_destroy": true + } + }, + { + "id": "fakeitem_statue", + "type": "TOOL", + "name": { "str": "nearby warp obelisk" }, + "description": "This is a crafting_pseudo_item if you have it something is wrong.", + "weight": "70000 g", + "volume": "100 L", + "material": [ "stone" ], + "symbol": "X", + "color": "red" + }, + { + "id": "fakeitem_infinitree1", + "type": "TOOL", + "name": { "str": "nearby infinitree" }, + "description": "This is a crafting_pseudo_item if you have it something is wrong.", + "weight": "70000 g", + "volume": "100 L", + "material": [ "wood" ], + "symbol": "T", + "color": "red" + }, + { + "type": "furniture", + "id": "f_infinitree1", + "name": "infinitree sapling", + "looks_like": "t_tree_young", + "description": "Purple-blue shimmers sparkle around the leaves of this small sapling. New growth seems to spring up in seconds, as if in a timelapse, and yet there never seem to be too many branches. It's always in equilibrium. Its strange nature allows you to shift it around like furniture. You can harvest sticks, logs, and other materials from it using the construction menu.", + "symbol": "7", + "color": "brown", + "move_cost_mod": -1, + "flags": [ "NOITEM", "BLOCK_WIND", "TRANSPARENT" ], + "coverage": 80, + "required_str": 4, + "crafting_pseudo_item": "fakeitem_infinitree1" + }, + { + "type": "furniture", + "id": "f_infinitree2", + "name": "infinitree sapling", + "looks_like": "t_tree", + "description": "Purple-blue shimmers sparkle around the leaves of this small sapling. New growth seems to spring up in seconds, as if in a timelapse, and yet there never seem to be too many branches. It's always in equilibrium. Its strange nature allows you to shift it around like furniture. You could probably use this in some recipes.", + "symbol": "7", + "color": "brown", + "move_cost_mod": -1, + "flags": [ "NOITEM", "BLOCK_WIND", "TRANSPARENT" ], + "coverage": 80, + "required_str": 4, + "crafting_pseudo_item": "fakeitem_infinitree1" + }, + { + "type": "furniture", + "id": "f_infinitree3", + "name": "infinitree sapling", + "looks_like": "t_tree_pine", + "description": "Purple-blue shimmers sparkle around the leaves of this small sapling. New growth seems to spring up in seconds, as if in a timelapse, and yet there never seem to be too many branches. It's always in equilibrium. Its strange nature allows you to shift it around like furniture. You could probably use this in some recipes.", + "symbol": "7", + "color": "brown", + "move_cost_mod": -1, + "flags": [ "NOITEM", "BLOCK_WIND", "TRANSPARENT" ], + "coverage": 80, + "required_str": 4, + "crafting_pseudo_item": "fakeitem_infinitree1" + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/island.json b/data/Mainline_mods/Mods/Sky_Island/island.json new file mode 100644 index 000000000..c49123283 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/island.json @@ -0,0 +1,178 @@ +[ + { + "type": "overmap_terrain", + "id": [ "sky_island_core", "sky_island_edge", "sky_island_corner" ], + "name": "sky island", + "sym": "#", + "color": "c_white", + "looks_like": "field", + "mondensity": 0, + "see_cost": 1 + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "sky_island_core", + "object": { + "fill_ter": "t_fake_air", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " YXZ ", + " " + ], + "terrain": { " ": "t_grass", ".": "t_fake_air", "X": "t_grass", "Y": "t_grass", "Z": "t_grass" }, + "place_zones": [ { "type": "ZONE_START_POINT", "faction": "your_followers", "x": [ 10, 14 ], "y": [ 16, 20 ] } ], + "furniture": { "X": "f_exitportal" }, + "items": { "Z": [ { "item": "si_trash_heap", "chance": 100 } ], "Y": [ { "item": "starterkit_items", "chance": 100 } ] }, + "place_item": [ ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "sky_island_corner", + "object": { + "fill_ter": "t_fake_air", + "rows": [ + ",,,,,,,,,,,,,,,,,,,,,,,,", + ",,,,,...................", + ",,,... ", + ",,.. ", + ",,. ", + ",.. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. ", + ",. " + ], + "terrain": { " ": "t_grass", ".": "t_fake_air", ",": "t_open_air", "X": "t_grass" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "sky_island_edge", + "object": { + "fill_ter": "t_fake_air", + "rows": [ + ",,,,,,,,,,,,,,,,,,,,,,,,", + "........................", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "terrain": { " ": "t_grass", ".": "t_fake_air", ",": "t_open_air", "X": "t_grass" } + } + }, + { + "type": "overmap_special", + "id": "HQislandspecial", + "overmaps": [ + { "point": [ 0, 0, 7 ], "overmap": "sky_island_core_north" }, + { "point": [ -1, -1, 7 ], "overmap": "sky_island_corner_north" }, + { "point": [ -1, 0, 7 ], "overmap": "sky_island_edge_west" }, + { "point": [ -1, 1, 7 ], "overmap": "sky_island_corner_west" }, + { "point": [ 0, -1, 7 ], "overmap": "sky_island_edge_north" }, + { "point": [ 0, 1, 7 ], "overmap": "sky_island_edge_south" }, + { "point": [ 1, -1, 7 ], "overmap": "sky_island_corner_east" }, + { "point": [ 1, 0, 7 ], "overmap": "sky_island_edge_east" }, + { "point": [ 1, 1, 7 ], "overmap": "sky_island_corner_south" }, + { "point": [ -1, -1, 0 ], "overmap": "open_air" }, + { "point": [ -1, 0, 0 ], "overmap": "open_air" }, + { "point": [ -1, 1, 0 ], "overmap": "open_air" }, + { "point": [ 0, -1, 0 ], "overmap": "open_air" }, + { "point": [ 0, 0, 0 ], "overmap": "open_air" }, + { "point": [ 0, 1, 0 ], "overmap": "open_air" }, + { "point": [ 1, -1, 0 ], "overmap": "open_air" }, + { "point": [ 1, 0, 0 ], "overmap": "open_air" }, + { "point": [ 1, 1, 0 ], "overmap": "open_air" }, + { "point": [ -1, -1, -1 ], "overmap": "open_air" }, + { "point": [ -1, 0, -1 ], "overmap": "open_air" }, + { "point": [ -1, 1, -1 ], "overmap": "open_air" }, + { "point": [ 0, -1, -1 ], "overmap": "open_air" }, + { "point": [ 0, 0, -1 ], "overmap": "open_air" }, + { "point": [ 0, 1, -1 ], "overmap": "open_air" }, + { "point": [ 1, -1, -1 ], "overmap": "open_air" }, + { "point": [ 1, 0, -1 ], "overmap": "open_air" }, + { "point": [ 1, 1, -1 ], "overmap": "open_air" }, + { "point": [ -1, -1, -2 ], "overmap": "open_air" }, + { "point": [ -1, 0, -2 ], "overmap": "open_air" }, + { "point": [ -1, 1, -2 ], "overmap": "open_air" }, + { "point": [ 0, -1, -2 ], "overmap": "open_air" }, + { "point": [ 0, 0, -2 ], "overmap": "open_air" }, + { "point": [ 0, 1, -2 ], "overmap": "open_air" }, + { "point": [ 1, -1, -2 ], "overmap": "open_air" }, + { "point": [ 1, 0, -2 ], "overmap": "open_air" }, + { "point": [ 1, 1, -2 ], "overmap": "open_air" }, + { "point": [ -1, -1, -3 ], "overmap": "open_air" }, + { "point": [ -1, 0, -3 ], "overmap": "open_air" }, + { "point": [ -1, 1, -3 ], "overmap": "open_air" }, + { "point": [ 0, -1, -3 ], "overmap": "open_air" }, + { "point": [ 0, 0, -3 ], "overmap": "open_air" }, + { "point": [ 0, 1, -3 ], "overmap": "open_air" }, + { "point": [ 1, -1, -3 ], "overmap": "open_air" }, + { "point": [ 1, 0, -3 ], "overmap": "open_air" }, + { "point": [ 1, 1, -3 ], "overmap": "open_air" } + ], + "locations": [ "wilderness" ], + "city_distance": [ 3, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 100, 100 ], + "rotate": false, + "flags": [ "CLASSIC", "SAFE_AT_WORLDGEN", "GLOBALLY_UNIQUE" ] + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/items.json b/data/Mainline_mods/Mods/Sky_Island/items.json new file mode 100644 index 000000000..fca4ed3c3 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/items.json @@ -0,0 +1,71 @@ +[ + { + "id": "quickheal", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "consumption_effect_on_conditions": [ "EOC_healall" ], + "name": { "str": "quickheal pill" }, + "description": "This pseudomagical pill will heal all your damaged parts, but only if swallowed while on your sanctuary island. No reason to bring this into the field.", + "weight": "15 g", + "volume": "5 ml", + "looks_like": "panacea", + "material": [ "water" ], + "symbol": "!", + "flags": [ "ALLOWS_REMOTE_USE" ], + "freezing_point": -1000, + "spoils_in": "24 hours", + "color": "red" + }, + { + "id": "starterkit_items", + "type": "item_group", + "//": "What you'll find in your starter kit.", + "subtype": "collection", + "entries": [ + { "item": "warp_portalstorm_ender", "count": 1 }, + { "item": "warpstat_stone", "count": 1 }, + { "item": "warpdifficulty_stone", "count": 1 }, + { "item": "warpheal_stone", "count": 1 }, + { "item": "tent_kit", "count": 1 } + ] + }, + { + "id": "si_trash_heap", + "type": "item_group", + "//": "What you'll find in your starter kit.", + "subtype": "collection", + "entries": [ { "group": "trash", "count": [ 25, 75 ] }, { "group": "trash_forest", "count": [ 50, 150 ] } ] + }, + { + "type": "item_group", + "id": "random_artifact_pool", + "subtype": "distribution", + "//": "A random artifact, preferring weak, but sometimes powerful.", + "items": [ + { "group": "ps_artifact_weak", "prob": 80, "count": 1 }, + { "group": "ps_artifact_medium", "prob": 15, "count": 1 }, + { "group": "ps_artifact_strong", "prob": 5, "count": 1 } + ] + }, + { + "type": "item_group", + "id": "warp_mission_goal", + "subtype": "distribution", + "//": "A range of tokens for the wildcard grab missions.", + "items": [ { "item": "warptoken", "prob": 100, "count": [ 1, 6 ] } ] + }, + { + "id": "bundle_splinter", + "type": "GENERIC", + "category": "spare_parts", + "name": { "str": "bundle of splinters", "str_pl": "bundles of splinters" }, + "description": "A hundred shards of wood roughly tied together for easier transport. Disassemble to untie them.", + "//": "total volume is equal to 10 planks, assuming uniformity and tight stacking", + "volume": "25000 ml", + "weight": "15000 g", + "longest_side": "90 cm", + "material": [ "wood" ], + "symbol": "H", + "color": "brown" + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/missions_and_mapgen.json b/data/Mainline_mods/Mods/Sky_Island/missions_and_mapgen.json new file mode 100644 index 000000000..bfbb86cea --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/missions_and_mapgen.json @@ -0,0 +1,1188 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_safely_landed", + "//": "Called on landing. Creates the extract mission, the slaughter mission, and two optional missions.", + "effect": [ + { + "run_eocs": [ "EOC_create_slaughter", "EOC_create_bonus", "EOC_create_bonus", "EOC_create_extract", "EOC_create_extract" ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Random_Loc_Warp", + "//": "Picks a random location to warp to based on the player's unlocked difficulty.", + "effect": [ + { + "weighted_list_eocs": [ + [ "EOC_Location1w", { "const": 15 } ], + [ "EOC_Location2w", { "global_val": "var", "var_name": "hardmissions", "default": 0 } ], + [ "EOC_Location3w", { "global_val": "var", "var_name": "hardermissions", "default": 0 } ] + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Random_Loc_Extract", + "//": "Picks a random location to place the extract based on the player's unlocked difficulty.", + "effect": [ + { + "weighted_list_eocs": [ + [ "EOC_Location1e", { "const": 15 } ], + [ "EOC_Location2e", { "global_val": "var", "var_name": "hardmissions", "default": 0 } ], + [ "EOC_Location3e", { "global_val": "var", "var_name": "hardermissions", "default": 0 } ] + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Random_Loc_Mission", + "//": "Picks a random location to place the missions based on the player's unlocked difficulty.", + "effect": [ + { + "weighted_list_eocs": [ + [ "EOC_Location1m", { "const": 15 } ], + [ "EOC_Location2m", { "global_val": "var", "var_name": "hardmissions", "default": 0 } ], + [ "EOC_Location3m", { "global_val": "var", "var_name": "hardermissions", "default": 0 } ] + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_create_extract", + "//": "Actually creates the extract by first choosing a location, then assigning a mission there. It will also clean up that spot later so the exit room doesn't remain for future expeditions.", + "effect": [ + { "run_eocs": [ "EOC_Random_Loc_Extract" ] }, + { + "revert_location": { "global_val": "OM_missionspot" }, + "time_in_future": "infinite", + "key": "return_portal_close" + }, + { "assign_mission": "MISSION_REACH_EXTRACT" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_create_slaughter", + "effect": [ + { + "weighted_list_eocs": [ + [ "EOC_slaughtermission1", { "const": 10 } ], + [ "EOC_slaughtermission2", { "const": 20 } ], + [ "EOC_slaughtermission3", { "global_val": "var", "var_name": "hardermissions", "default": 0 } ], + [ "EOC_slaughtermission4", { "global_val": "var", "var_name": "hardermissions", "default": 0 } ], + [ "EOC_slaughtermission5", { "global_val": "var", "var_name": "hardmissions", "default": 0 } ], + [ "EOC_slaughtermission6", { "const": 5 } ], + [ "EOC_slaughtermission7", { "const": 5 } ] + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_create_bonus", + "//": "Actually creates a bonus mission by first choosing a location, then assigning a mission there. It will also clean up that spot later so any map changes don't remain for future expeditions.", + "effect": [ + { "run_eocs": [ "EOC_Random_Loc_Mission" ] }, + { + "revert_location": { "global_val": "OM_missionspot" }, + "time_in_future": "infinite", + "key": "return_portal_close" + }, + { + "weighted_list_eocs": [ + [ "EOC_bonusmission_1", { "const": 45 } ], + [ "EOC_bonusmission_2", { "const": 15 } ], + [ "EOC_bonusmission_3", { "const": 10 } ], + [ "EOC_bonusmission_4", { "const": 15 } ], + [ "EOC_bonusmission_5", { "const": 10 } ], + [ "EOC_bonusmission_6", { "global_val": "var", "var_name": "hardmissions", "default": 0 } ], + [ "EOC_bonusmission_7", { "global_val": "var", "var_name": "hardermissions", "default": 0 } ], + [ "EOC_bonusmission_8", { "global_val": "var", "var_name": "hardermissions", "default": 0 } ], + [ "EOC_bonusmission_9", { "global_val": "var", "var_name": "hardestmissions", "default": 0 } ], + [ "EOC_bonusmission_12", { "global_val": "var", "var_name": "hardestmissions", "default": 0 } ], + [ "EOC_bonusmission_13", { "global_val": "var", "var_name": "hardestmissions", "default": 0 } ], + [ "EOC_bonusmission_10", { "global_val": "var", "var_name": "hardermissions", "default": 0 } ], + [ "EOC_bonusmission_11", { "global_val": "var", "var_name": "hardestmissions", "default": 0 } ], + [ "EOC_assassinmission1", { "global_val": "var", "var_name": "hardmissions", "default": 0 } ], + [ "EOC_assassinmission2", { "global_val": "var", "var_name": "hardermissions", "default": 0 } ], + [ "EOC_assassinmission3", { "global_val": "var", "var_name": "hardestmissions", "default": 0 } ] + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_1", + "effect": [ { "assign_mission": "MISSION_BONUS_TREASURE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_2", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_LIGHT" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_3", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_HORDE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_4", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_MID" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_5", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_MID_HORDE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_6", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_HARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_7", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_ELITE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_8", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_BOSS" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_9", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_BOSS_GROUP" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_12", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_BOSS_HORDE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_13", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_BOSS_MULTI" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_10", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_MIGO" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_bonusmission_11", + "effect": [ { "assign_mission": "MISSION_BONUS_KILL_MIGO_ELITE" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_slaughtermission1", + "effect": [ { "assign_mission": "MISSION_BONUS_SLAUGHTER_ZED1" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_slaughtermission2", + "effect": [ { "assign_mission": "MISSION_BONUS_SLAUGHTER_ZED2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_slaughtermission3", + "effect": [ { "assign_mission": "MISSION_BONUS_SLAUGHTER_ZED3" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_slaughtermission4", + "effect": [ { "assign_mission": "MISSION_BONUS_SLAUGHTER_MIGO" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_slaughtermission5", + "effect": [ { "assign_mission": "MISSION_BONUS_SLAUGHTER_NETHER" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_slaughtermission6", + "effect": [ { "assign_mission": "MISSION_BONUS_SLAUGHTER_BIRD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_slaughtermission7", + "effect": [ { "assign_mission": "MISSION_BONUS_SLAUGHTER_MAMMAL" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_assassinmission1", + "effect": [ { "assign_mission": "MISSION_BONUS_ASSASSIN1" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_assassinmission2", + "effect": [ { "assign_mission": "MISSION_BONUS_ASSASSIN2" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_assassinmission3", + "effect": [ { "assign_mission": "MISSION_BONUS_ASSASSIN3" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Location1w", + "//": "Picks a random field.", + "effect": [ + { + "u_location_variable": { "global_val": "OM_missionspot" }, + "target_params": { + "om_terrain": "field", + "om_terrain_match_type": "CONTAINS", + "search_range": 1200, + "min_distance": 200, + "z": 0, + "random": true + } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Location2w", + "//": "Picks a random forest.", + "effect": [ + { + "u_location_variable": { "global_val": "OM_missionspot" }, + "target_params": { + "om_terrain": "forest", + "om_terrain_match_type": "CONTAINS", + "search_range": 1200, + "min_distance": 200, + "z": 0, + "random": true + } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Location3w", + "//": "Picks a random house.", + "effect": [ + { + "u_location_variable": { "global_val": "OM_missionspot" }, + "target_params": { + "om_terrain": "house", + "om_terrain_match_type": "CONTAINS", + "search_range": 1200, + "min_distance": 200, + "z": 0, + "random": true + } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Location1e", + "//": "Picks a random field.", + "effect": [ + { + "u_location_variable": { "global_val": "OM_missionspot" }, + "target_params": { + "om_terrain": "field", + "om_terrain_match_type": "CONTAINS", + "search_range": 160, + "min_distance": 40, + "reveal_radius": 2, + "z": 0, + "random": true + } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Location2e", + "//": "Picks a random forest.", + "effect": [ + { + "u_location_variable": { "global_val": "OM_missionspot" }, + "target_params": { + "om_terrain": "forest", + "om_terrain_match_type": "CONTAINS", + "search_range": 160, + "min_distance": 40, + "reveal_radius": 2, + "z": 0, + "random": true + } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Location3e", + "//": "Picks a random house.", + "effect": [ + { + "u_location_variable": { "global_val": "OM_missionspot" }, + "target_params": { + "om_terrain": "house", + "om_terrain_match_type": "CONTAINS", + "search_range": 160, + "min_distance": 40, + "reveal_radius": 2, + "z": 0, + "random": true + } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Location1m", + "//": "Picks a random field.", + "effect": [ + { + "u_location_variable": { "global_val": "OM_missionspot" }, + "target_params": { + "om_terrain": "field", + "om_terrain_match_type": "CONTAINS", + "search_range": 80, + "min_distance": 20, + "reveal_radius": 2, + "z": 0, + "random": true + } + }, + { "arithmetic": [ { "global_val": "var", "var_name": "location_difficulty_bonus" }, "=", { "const": 0 } ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Location2m", + "//": "Picks a random forest.", + "effect": [ + { + "u_location_variable": { "global_val": "OM_missionspot" }, + "target_params": { + "om_terrain": "forest", + "om_terrain_match_type": "CONTAINS", + "search_range": 80, + "min_distance": 20, + "reveal_radius": 2, + "z": 0, + "random": true + } + }, + { "arithmetic": [ { "global_val": "var", "var_name": "location_difficulty_bonus" }, "=", { "const": 1 } ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_Location3m", + "//": "Picks a random house.", + "effect": [ + { + "u_location_variable": { "global_val": "OM_missionspot" }, + "target_params": { + "om_terrain": "house", + "om_terrain_match_type": "CONTAINS", + "search_range": 80, + "min_distance": 2, + "reveal_radius": 2, + "z": 0, + "random": true + } + }, + { "arithmetic": [ { "global_val": "var", "var_name": "location_difficulty_bonus" }, "=", { "const": 2 } ] } + ] + }, + { + "id": "MISSION_REACH_EXTRACT", + "type": "mission_definition", + "name": { "str": "Reach one of the exit points!" }, + "goal": "MGOAL_GO_TO", + "description": "If you want to get home with your stuff, you'll need to reach one of these nearby warp points. They're only things that can bring you back to your sanctuary island in one piece.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { "place_nested": [ { "chunks": [ "mx_exitroom" ], "x": [ 0, 13 ], "y": [ 0, 13 ] } ] } + } + }, + { + "id": "MISSION_BONUS_TREASURE", + "type": "mission_definition", + "name": { "str": "Find the warp shards!" }, + "goal": "MGOAL_GO_TO", + "description": "A very small cluster of warp energy has left shards behind at this location. All you need to do is find and retrieve them. There may be threats nearby, but unlike most tasks, no special guards are on-site. A minimal reward, but little risk.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { "place_nested": [ { "chunks": [ "mx_treasuregoal" ], "x": [ 0, 13 ], "y": [ 0, 13 ] } ] } + }, + "end": { "effect": [ { "u_adjust_var": "missionswon", "adjustment": 1 } ] } + }, + { + "id": "MISSION_BONUS_KILL_LIGHT", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining zombies!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A handful of zombies are congregating at a location where warp resonance is high. Clear them out for a minimal reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ + { "group": "GROUP_SI_ZOMEASY", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true, "name": "Marked", "repeat": [ 4, 8 ] } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 3 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_HORDE", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining horde!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A horde of low level zombies are congregating at a location where warp resonance is high. Clear them out for a small reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ + { "group": "GROUP_SI_ZOMEASY", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true, "name": "Marked", "repeat": [ 8, 24 ] } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 4 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_MID", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining evolved zombies!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A swarm of evolved zombies are congregating at a location where warp resonance is high. Clear them out for a medium reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ + { "group": "GROUP_SI_ZOMEASY", "x": [ 1, 22 ], "y": [ 1, 22 ], "name": "Marked", "target": true, "repeat": [ 0, 4 ] }, + { + "group": "GROUP_SI_ZOMMID", + "x": [ 1, 22 ], + "y": [ 1, 22 ], + "target": true, + "name": "Marked", + "repeat": [ 3, 8 ] + } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 4 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_MID_HORDE", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining evolved horde!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A huge horde of evolved zombies are congregating at a location where warp resonance is high. Clear them out for a large reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ + { "group": "GROUP_SI_ZOMEASY", "x": [ 1, 22 ], "y": [ 1, 22 ], "name": "Marked", "target": true, "repeat": [ 0, 6 ] }, + { + "group": "GROUP_SI_ZOMMID", + "x": [ 1, 22 ], + "y": [ 1, 22 ], + "target": true, + "name": "Marked", + "repeat": [ 8, 20 ] + } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 5 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_HARD", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining fearsome zombies!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A swarm of rather powerful zombies are congregating at a location where warp resonance is high. Clear them out for a large reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ + { "group": "GROUP_SI_ZOMEASY", "x": [ 1, 22 ], "y": [ 1, 22 ], "name": "Marked", "target": true, "repeat": [ 0, 4 ] }, + { + "group": "GROUP_SI_ZOMMID", + "x": [ 1, 22 ], + "y": [ 1, 22 ], + "name": "Marked", + "target": true, + "repeat": [ 0, 2 ] + }, + { + "group": "GROUP_SI_ZOMHARD", + "x": [ 1, 22 ], + "y": [ 1, 22 ], + "target": true, + "name": "Marked", + "repeat": [ 4, 8 ] + } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 5 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_ELITE", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining elite zombies!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A swarm of extremely dangerous zombies are congregating at a location where warp resonance is high. Clear them out for a very large reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ + { "group": "GROUP_SI_ZOMMID", "x": [ 1, 22 ], "y": [ 1, 22 ], "name": "Marked", "target": true, "repeat": [ 0, 2 ] }, + { + "group": "GROUP_SI_ZOMHARD", + "x": [ 1, 22 ], + "y": [ 1, 22 ], + "name": "Marked", + "target": true, + "repeat": [ 0, 1 ] + }, + { + "group": "GROUP_SI_ZOMELITE", + "x": [ 1, 22 ], + "y": [ 1, 22 ], + "target": true, + "name": "Marked", + "repeat": [ 4, 8 ] + } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 8 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_BOSS", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining zombie lord!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A single supremely powerful zombie has been found at a location where warp resonance is high. Destroy it for a very large reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ { "group": "GROUP_SI_ZOMBOSS", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true, "name": "Marked" } ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 10 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_BOSS_MULTI", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining zombie superteam!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A team of supremely powerful zombies has been found at a location where warp resonance is high. Destroy it for a very large reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ + { "group": "GROUP_SI_ZOMBOSS", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true, "name": "Marked", "pack_size": [ 2, 5 ] } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 10 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_BOSS_GROUP", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining zombie leader!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A supremely powerful zombie has been found at a location where warp resonance is high. Be warned that it will be accompanied by an elite swarm! Destroy them all for a huge reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ + { "group": "GROUP_SI_ZOMBOSS", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true, "name": "Marked" }, + { + "group": "GROUP_SI_ZOMELITE", + "x": [ 1, 22 ], + "y": [ 1, 22 ], + "target": true, + "name": "Marked", + "repeat": [ 2, 5 ] + } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 12 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_BOSS_HORDE", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining zombie horde lord!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A supremely powerful zombie has been found at a location where warp resonance is high. Be warned that it will be accompanied by an massive horde of weaker zombies! Destroy them all for a huge reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ + { "group": "GROUP_SI_ZOMBOSS", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true, "name": "Marked" }, + { + "group": "GROUP_SI_ZOMEASY", + "x": [ 1, 22 ], + "y": [ 1, 22 ], + "target": true, + "name": "Marked", + "repeat": [ 10, 22 ] + } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 12 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_MIGO", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining mi-go threat!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A group of lethal mi-gos are draining a location where warp resonance is high. Destroy them all for a very large reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ { "group": "GROUP_SI_MIGO", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true, "name": "Marked", "repeat": [ 2, 5 ] } ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 9 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_KILL_MIGO_ELITE", + "type": "mission_definition", + "name": { "str": "Kill the warp-draining mi-go overlord!" }, + "goal": "MGOAL_KILL_MONSTERS", + "description": "A group of lethal mi-gos are draining a location where warp resonance is high. Destroy them all for a very large reward of warp shards.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_monster": [ + { "group": "GROUP_SI_MIGO", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true, "name": "Marked", "repeat": [ 0, 2 ] }, + { "group": "GROUP_SI_MIGO_ELITE", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true, "name": "Marked" } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 12 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_ASSASSIN1", + "type": "mission_definition", + "name": { "str": "Kill the armed interloper!" }, + "goal": "MGOAL_ASSASSINATE", + "description": "The warp has marked a single human being for death. They will likely carry a ranged weapon. They will be alone. Their sins are not your concern. All you need to know is that it must be done.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { "place_npcs": [ { "class": "bandit", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true } ] } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 9 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_ASSASSIN2", + "type": "mission_definition", + "name": { "str": "Kill the interloper!" }, + "goal": "MGOAL_ASSASSINATE", + "description": "The warp has marked a single human being for death. They will likely carry a melee weapon. They will be alone. Their sins are not your concern. All you need to know is that it must be done.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { "place_npcs": [ { "class": "thug", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true } ] } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 6 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_ASSASSIN3", + "type": "mission_definition", + "name": { "str": "Kill the guarded interlopers!" }, + "goal": "MGOAL_ASSASSINATE", + "description": "The warp has marked human beings for death. They may be accompanied. Their sins are not your concern. All you need to know is that it must be done.", + "difficulty": 0, + "value": 0, + "start": { + "assign_mission_target": { "var": { "global_val": "OM_missionspot" } }, + "update_mapgen": { + "place_npcs": [ + { "class": "thug", "x": [ 1, 22 ], "y": [ 1, 22 ], "repeat": [ 1, 2 ], "target": true }, + { "class": "bandit", "x": [ 1, 22 ], "y": [ 1, 22 ], "repeat": [ 0, 1 ], "target": true }, + { "class": "bandit", "x": [ 1, 22 ], "y": [ 1, 22 ], "target": true } + ] + } + }, + "end": { + "effect": [ + { "u_adjust_var": "missionswon", "adjustment": 1 }, + { + "arithmetic": [ + { "global_val": "var", "var_name": "totalbonus" }, + "=", + { "const": 12 }, + "+", + { "global_val": "var", "var_name": "location_difficulty_bonus" } + ] + }, + { + "u_message": "It's done. They're all dead. Warp shards filter in from seams in reality. Your reward rains down on you.", + "type": "mixed" + }, + { "u_spawn_item": "warptoken", "count": { "global_val": "var", "var_name": "totalbonus", "default": 1 } } + ] + } + }, + { + "id": "MISSION_BONUS_SLAUGHTER_ZED1", + "type": "mission_definition", + "name": { "str": "Kill 10 Zombies this expedition" }, + "description": "Zombies have absorbed latent energies which must be released into the stream of warp once more. Kill at least 10 zombified humans or creatures before returning to your sanctuary for bonus warp shards.", + "goal": "MGOAL_KILL_MONSTER_SPEC", + "monster_species": "ZOMBIE", + "monster_kill_goal": 10, + "difficulty": 0, + "value": 0, + "end": { "effect": [ { "u_adjust_var": "slaughterswon", "adjustment": 1 }, { "u_spawn_item": "warptoken", "count": 1 } ] } + }, + { + "id": "MISSION_BONUS_SLAUGHTER_ZED2", + "type": "mission_definition", + "name": { "str": "Kill 50 Zombies this expedition" }, + "description": "Zombies have absorbed latent energies which must be released into the stream of warp once more. Kill at least 50 zombified humans or creatures before returning to your sanctuary for bonus warp shards.", + "goal": "MGOAL_KILL_MONSTER_SPEC", + "monster_species": "ZOMBIE", + "monster_kill_goal": 50, + "difficulty": 0, + "value": 0, + "end": { "effect": [ { "u_adjust_var": "slaughterswon", "adjustment": 1 }, { "u_spawn_item": "warptoken", "count": 3 } ] } + }, + { + "id": "MISSION_BONUS_SLAUGHTER_ZED3", + "type": "mission_definition", + "name": { "str": "Kill 100 Zombies this expedition" }, + "description": "Zombies have absorbed latent energies which must be released into the stream of warp once more. Kill at least 100 zombified humans or creatures before returning to your sanctuary for bonus warp shards.", + "goal": "MGOAL_KILL_MONSTER_SPEC", + "monster_species": "ZOMBIE", + "monster_kill_goal": 100, + "difficulty": 0, + "value": 0, + "end": { "effect": [ { "u_adjust_var": "slaughterswon", "adjustment": 1 }, { "u_spawn_item": "warptoken", "count": 5 } ] } + }, + { + "id": "MISSION_BONUS_SLAUGHTER_MIGO", + "type": "mission_definition", + "name": { "str": "Kill a Mi-Go this expedition" }, + "description": "The mi-go have sucked up latent energies which must be released into the stream of warp once more. Kill at least one mi-go creature before returning to your sanctuary for bonus warp shards.", + "goal": "MGOAL_KILL_MONSTER_SPEC", + "monster_species": "MIGO", + "monster_kill_goal": 1, + "difficulty": 0, + "value": 0, + "end": { "effect": [ { "u_adjust_var": "slaughterswon", "adjustment": 1 }, { "u_spawn_item": "warptoken", "count": 3 } ] } + }, + { + "id": "MISSION_BONUS_SLAUGHTER_NETHER", + "type": "mission_definition", + "name": { "str": "Kill 3 nether creatures this expedition" }, + "description": "A rift to another dimension has drained latent energies which must be released into the stream of warp once more. Kill at least 3 nether-born creatures before returning to your sanctuary for bonus warp shards.", + "goal": "MGOAL_KILL_MONSTER_SPEC", + "monster_species": "NETHER", + "monster_kill_goal": 3, + "difficulty": 0, + "value": 0, + "end": { "effect": [ { "u_adjust_var": "slaughterswon", "adjustment": 1 }, { "u_spawn_item": "warptoken", "count": 4 } ] } + }, + { + "id": "MISSION_BONUS_SLAUGHTER_BIRD", + "type": "mission_definition", + "name": { "str": "Kill 5 un-zombified birds this expedition" }, + "description": "Are the birds around here… sparkling? It seems even the local wildlife has started absorbing latent warp energy. Kill at least 5 non-zombie birds of any kind before returning to your sanctuary for bonus warp shards.", + "goal": "MGOAL_KILL_MONSTER_SPEC", + "monster_species": "BIRD", + "monster_kill_goal": 5, + "difficulty": 0, + "value": 0, + "end": { "effect": [ { "u_adjust_var": "slaughterswon", "adjustment": 1 }, { "u_spawn_item": "warptoken", "count": 1 } ] } + }, + { + "id": "MISSION_BONUS_SLAUGHTER_MAMMAL", + "type": "mission_definition", + "name": { "str": "Kill 5 un-zombified mammals this expedition" }, + "description": "Are the critters around here… sparkling? It seems even the local wildlife has started absorbing latent warp energy. Kill at least 5 non-zombie mammals of any kind before returning to your sanctuary for bonus warp shards.", + "goal": "MGOAL_KILL_MONSTER_SPEC", + "monster_species": "MAMMAL", + "monster_kill_goal": 5, + "difficulty": 0, + "value": 0, + "end": { "effect": [ { "u_adjust_var": "slaughterswon", "adjustment": 1 }, { "u_spawn_item": "warptoken", "count": 1 } ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "mx_exitroom", + "object": { + "mapgensize": [ 11, 11 ], + "rotation": [ 0, 3 ], + "rows": [ + " ", + " - - ", + " ----D---- ", + "--.......--", + " -.......- ", + " D...X...D ", + " -.......- ", + "--.......--", + " ----D---- ", + " - - ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "D": [ "t_door_c" ], "-": [ "t_wall_r" ], ".": [ "t_carpet_red" ], "X": [ "t_carpet_red" ], "x": [ "t_carpet_red" ] }, + "furniture": { "X": [ "f_returnportal" ], "D": [ "f_null" ], ".": [ "f_null" ], "x": [ "f_null" ] } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "mx_treasuregoal", + "object": { + "mapgensize": [ 5, 5 ], + "rotation": [ 0, 3 ], + "rows": [ + " x ", + " xxx ", + "xxoxx", + " xxx ", + " x " + ], + "terrain": { "x": [ "t_carpet_green" ], "o": [ "t_carpet_purple" ] }, + "items": { "o": [ { "item": "warp_mission_goal", "chance": 100 } ] }, + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mapgen_dummyplace", + "//": "This is a stopgap. If revert_location is called without a mapgen update, the game crashes. So this is a blank map update that does nothing but still prevents the crash. To be removed if the bug gets patched.", + "object": { + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/modinfo.json b/data/Mainline_mods/Mods/Sky_Island/modinfo.json new file mode 100644 index 000000000..db6d2b3b7 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/modinfo.json @@ -0,0 +1,12 @@ +[ + { + "type": "MOD_INFO", + "id": "skyisland", + "name": "Sky Island", + "authors": [ "TGW" ], + "description": "An attempt at an entirely new way to play CDDA, inspired by games like Escape from Tarkov and Dark and Darker. Begin on a floating island in the sky and warp down to random spots on the earth below to conduct expeditions for items you need. Permadeath is gone - you will return to the island on death but lose any items you had on you. Build up your stockpile, carry out missions for unique rewards, customize your home island, and be prudent about what you take on any given outing. Be aware that 'PLAY NOW' will NOT work, you MUST make a custom character.", + "category": "total_conversion", + "dependencies": [ "dda" ], + "version": "0.2.1" + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/monstergroups.json b/data/Mainline_mods/Mods/Sky_Island/monstergroups.json new file mode 100644 index 000000000..c56785090 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/monstergroups.json @@ -0,0 +1,196 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_SI_ZOMEASY", + "//": "A simple mix of common low level zombies. Threat level keeps below around 7.", + "monsters": [ + { "monster": "mon_zombie", "weight": 2000 }, + { "monster": "mon_zombie_fat", "weight": 200 }, + { "monster": "mon_zombie_tough", "weight": 100 }, + { "monster": "mon_zombie_child", "weight": 25 }, + { "monster": "mon_zombie_rot", "weight": 25 }, + { "monster": "mon_zombie_crawler", "weight": 25 }, + { "monster": "mon_zombie_dog", "weight": 25 }, + { "monster": "mon_dog_zombie_cop", "weight": 10 }, + { "monster": "mon_dog_zombie_rot", "weight": 10 }, + { "monster": "mon_zombie_cop", "weight": 10 }, + { "monster": "mon_boomer", "weight": 10 }, + { "monster": "mon_zombie_shady", "weight": 5 }, + { "monster": "mon_zombie_medical", "weight": 5 }, + { "monster": "mon_zombie_hazmat", "weight": 5 }, + { "monster": "mon_zombie_fireman", "weight": 5 }, + { "monster": "mon_zombie_swimmer_base", "weight": 5 }, + { "monster": "mon_zombie_static", "weight": 15 }, + { "monster": "mon_beekeeper", "weight": 5 }, + { "monster": "mon_feral_human_tool", "weight": 25 }, + { "monster": "mon_dog_skeleton", "weight": 5 }, + { "monster": "mon_zombie_runner", "weight": 100 }, + { "monster": "mon_zombie_medical_regenerating", "weight": 5 }, + { "monster": "mon_zombie_rust", "weight": 5 }, + { "monster": "mon_zombie_brainless", "weight": 5 }, + { "monster": "mon_skeleton", "weight": 35 }, + { "monster": "mon_zombie_winged", "weight": 25 }, + { "monster": "mon_zombie_pig", "weight": 10 }, + { "monster": "mon_zombie_thorny", "weight": 10 }, + { "monster": "mon_zombie_regenerating", "weight": 5 }, + { "monster": "mon_zombie_scientist", "weight": 10 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SI_ZOMMID", + "//": "A simple mix of evolved zombies. Threat level to mid/low teens. A few exceptions made for special effects like acid or speed, like dogs.", + "monsters": [ + { "monster": "mon_zombie_tough", "weight": 1000 }, + { "monster": "mon_zombie_horse_white", "weight": 5 }, + { "monster": "mon_zombie_grabber", "weight": 100 }, + { "monster": "mon_zombie_grappler", "weight": 50 }, + { "monster": "mon_zougar_shady", "weight": 5 }, + { "monster": "mon_zombie_hunter", "weight": 100 }, + { "monster": "mon_feral_sapien_spear", "weight": 25 }, + { "monster": "mon_feral_soldier", "weight": 20 }, + { "monster": "mon_zombie_gasbag", "weight": 25 }, + { "monster": "mon_zeindeer", "weight": 5 }, + { "monster": "mon_zombie_shrieker", "weight": 25 }, + { "monster": "mon_zombie_acidic", "weight": 25 }, + { "monster": "mon_zombie_brute", "weight": 25 }, + { "monster": "mon_zombie_medical_acidic", "weight": 10 }, + { "monster": "mon_zombie_technician", "weight": 20 }, + { "monster": "mon_zombie_hollow", "weight": 20 }, + { "monster": "mon_zombie_pupa", "weight": 10 }, + { "monster": "mon_zombie_pupa_decoy", "weight": 10 }, + { "monster": "mon_zombie_survivor", "weight": 10 }, + { "monster": "mon_zombie_plated", "weight": 5 }, + { "monster": "mon_zombie_urchin", "weight": 5 }, + { "monster": "mon_zombie_hammer_hands", "weight": 5 }, + { "monster": "mon_boomer_huge", "weight": 10 }, + { "monster": "mon_zombie_tear_gasbag", "weight": 5 }, + { "monster": "mon_zombie_relax_gasbag", "weight": 5 }, + { "monster": "mon_dog_zombie_brute", "weight": 25 }, + { "monster": "mon_zombie_dog_acidic", "weight": 15 }, + { "monster": "mon_zombie_swat", "weight": 20 }, + { "monster": "mon_zombie_skull", "weight": 10 }, + { "monster": "mon_zpig_brute", "weight": 5 }, + { "monster": "mon_zombie_biter", "weight": 15 }, + { "monster": "mon_zombie_soldier", "weight": 50 }, + { "monster": "mon_zombie_fiend", "weight": 20 }, + { "monster": "mon_zombie_marine", "weight": 10 }, + { "monster": "mon_zoose", "weight": 5 }, + { "monster": "mon_zombie_shell", "weight": 5 }, + { "monster": "mon_zombie_scientist", "weight": 10 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SI_ZOMHARD", + "//": "A mix of powerful zombies. Threat level high teens up to mid 20s. Exceptions made for especially tough monsters.", + "monsters": [ + { "monster": "mon_zombie_brute", "weight": 1000 }, + { "monster": "mon_zombie_kevlar_1", "weight": 100 }, + { "monster": "mon_zombie_mancroc", "weight": 25 }, + { "monster": "mon_zombie_smoker", "weight": 10 }, + { "monster": "mon_brute_pupa", "weight": 15 }, + { "monster": "mon_brute_pupa_decoy", "weight": 10 }, + { "monster": "mon_zombie_nullfield", "weight": 25 }, + { "monster": "mon_zombie_electric", "weight": 50 }, + { "monster": "mon_boomer_claymore", "weight": 10 }, + { "monster": "mon_zombie_tear_gasbag", "weight": 5 }, + { "monster": "mon_zombie_relax_gasbag", "weight": 5 }, + { "monster": "mon_skeleton_brute", "weight": 200 }, + { "monster": "mon_skeleton_master", "weight": 50 }, + { "monster": "mon_zombie_horse_pale", "weight": 5 }, + { "monster": "mon_zombie_horse_red", "weight": 5 }, + { "monster": "mon_zombie_horse_black", "weight": 5 }, + { "monster": "mon_zombear", "weight": 10 }, + { "monster": "mon_zombear_skeleton", "weight": 10 }, + { "monster": "mon_zoose_thorny", "weight": 5 }, + { "monster": "mon_dog_skeleton_brute", "weight": 50 }, + { "monster": "mon_devourer", "weight": 25 }, + { "monster": "mon_zombullfrog", "weight": 10 }, + { "monster": "mon_zombie_survivor_elite", "weight": 15 }, + { "monster": "mon_zombie_spitter", "weight": 75 }, + { "monster": "mon_zombie_armored", "weight": 10 }, + { "monster": "mon_zombie_predator", "weight": 10 }, + { "monster": "mon_zombie_pig_gas", "weight": 5 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SI_ZOMELITE", + "//": "A blend of truly elite zombies. Threat level up to the ceiling.", + "monsters": [ + { "monster": "mon_zombie_soldier_blackops_1", "weight": 100 }, + { "monster": "mon_zombie_soldier_acid_1", "weight": 100 }, + { "monster": "mon_zombie_soldier_acid_2", "weight": 25 }, + { "monster": "mon_zombie_kevlar_1", "weight": 50 }, + { "monster": "mon_zombie_necro", "weight": 20 }, + { "monster": "mon_zombie_hulk", "weight": 5 }, + { "monster": "mon_boomer_glutton", "weight": 5 }, + { "monster": "mon_skeleton_necro", "weight": 25 }, + { "monster": "mon_zombear_acidic", "weight": 20 }, + { "monster": "mon_zoose_brute", "weight": 5 }, + { "monster": "mon_zougar_hunter", "weight": 10 }, + { "monster": "mon_dog_zombie_hulk", "weight": 100 }, + { "monster": "mon_zombie_nullfield", "weight": 100 }, + { "monster": "mon_zombie_brute_shocker", "weight": 5 }, + { "monster": "mon_zombie_necro_boomer", "weight": 5 }, + { "monster": "mon_skeleton_electric", "weight": 50 }, + { "monster": "mon_zombie_bio_op", "weight": 50 }, + { "monster": "mon_zombie_survivor_elite", "weight": 50 }, + { "monster": "mon_zombie_brute_ninja", "weight": 20 }, + { "monster": "mon_gastro_bufo", "weight": 10 }, + { "monster": "mon_zombie_armored", "weight": 10 }, + { "monster": "mon_zombull", "weight": 50 }, + { "monster": "mon_zombie_predator", "weight": 50 }, + { "monster": "mon_zombie_corrosive", "weight": 25 }, + { "monster": "mon_hulk_pupa", "weight": 10 }, + { "monster": "mon_zombie_relax_gasbag", "weight": 20 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SI_ZOMBOSS", + "//": "Boss tier encounters. Extreme danger level.", + "monsters": [ + { "monster": "mon_zombie_hulk", "weight": 100 }, + { "monster": "mon_skeleton_hulk", "weight": 75 }, + { "monster": "mon_zombie_kevlar_2", "weight": 50 }, + { "monster": "mon_zombie_bio_op2", "weight": 15 }, + { "monster": "mon_jabberwock", "weight": 25 }, + { "monster": "mon_zombie_brute_shocker", "weight": 10 }, + { "monster": "mon_zoose_brute", "weight": 20 }, + { "monster": "mon_zombie_nemesis", "weight": 5 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SI_ZOMBOSSMULT", + "//": "Boss tier encounters for enemies that show up in bunches. Extreme danger level.", + "monsters": [ + { "monster": "mon_zombie_hulk", "weight": 10 }, + { "monster": "mon_zombie_bio_op2", "weight": 50 }, + { "monster": "mon_dog_zombie_hulk", "weight": 100 }, + { "monster": "mon_feral_militia", "weight": 100 }, + { "monster": "mon_skeleton_electric", "weight": 100 }, + { "monster": "mon_zombie_brute_grappler", "weight": 50 }, + { "monster": "mon_zombie_brute_shocker", "weight": 100 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SI_MIGO", + "//": "Powerful migo.", + "monsters": [ + { "monster": "mon_mi_go", "weight": 200 }, + { "monster": "mon_mi_go_scout", "weight": 25 }, + { "monster": "mon_mi_go_slaver", "weight": 15 }, + { "monster": "mon_mi_go_surgeon", "weight": 10 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_SI_MIGO_ELITE", + "//": "Evolved migo.", + "monsters": [ { "monster": "mon_mi_go_myrmidon", "weight": 25 }, { "monster": "mon_mi_go_guard", "weight": 75 } ] + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/recipes.json b/data/Mainline_mods/Mods/Sky_Island/recipes.json new file mode 100644 index 000000000..3d85d6353 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/recipes.json @@ -0,0 +1,258 @@ +[ + { + "type": "recipe_category", + "id": "CC_OTHER", + "recipe_subcategories": [ + "CSC_ALL", + "CSC_OTHER_TOOLS", + "CSC_OTHER_MEDICAL", + "CSC_OTHER_CONTAINERS", + "CSC_OTHER_MATERIALS", + "CSC_OTHER_PARTS", + "CSC_OTHER_TRAPS", + "CSC_OTHER_VEHICLE", + "CSC_OTHER_OTHER", + "CSC_OTHER_WARP" + ] + }, + { + "result": "warp_grassbag", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 1 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warphome", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 20 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warpextender", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 2 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warphaulbag", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 10 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warpmetalbag", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 5 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warpdirtbag", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 5 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warpwoodbag", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 5 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warp_carrier", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 12 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "quickheal", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 4 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warp_autodoc_inert", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 30 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warpheal_stone", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warpdifficulty_stone", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warp_portalstorm_ender", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "warpstat_stone", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP", + "skill_used": "survival", + "difficulty": 0, + "time": "1 m", + "autolearn": true, + "reversible": false, + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "result": "bundle_splinter", + "type": "recipe", + "activity_level": "fake", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "time": "1 m", + "autolearn": true, + "reversible": true, + "components": [ [ [ "splinter", 100 ] ], [ [ "rope_any_short", 1, "LIST" ] ] ], + "flags": [ "BLIND_EASY" ] + }, + { + "type": "recipe", + "name": "materialize random artifact", + "id": "recipe_craft_random_artifact", + "activity_level": "NO_EXERCISE", + "description": "Utilizing the unstable, reality-changing nature of the warp shards, you could combine several to create a powerful semi-magical item. This is a skill you have no way of practicing and a field of science no one's ever really touched, so exactly what you'd get from it is anyone's guess.", + "result_eocs": [ + { + "id": "EOC_spawn_random_artifact_fromrecipe", + "effect": [ { "u_spawn_item": "random_artifact_pool", "use_item_group": true } ] + } + ], + "tools": [ [ [ "fakeitem_statue", -1 ] ] ], + "components": [ [ [ "warptoken", 8 ] ] ], + "difficulty": 0, + "autolearn": true, + "time": "1 m", + "skill_used": "survival", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_WARP" + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/scenario.json b/data/Mainline_mods/Mods/Sky_Island/scenario.json new file mode 100644 index 000000000..655b10ee9 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/scenario.json @@ -0,0 +1,25 @@ +[ + { + "type": "scenario", + "id": "scenario_warper", + "name": "Warper", + "flags": [ "LONE_START", "CHALLENGE" ], + "points": 0, + "description": "As if the world ending wasn't enough, it seems some kind of extradimensional powers that be have taken an interest in you. You have been placed on a floating island high above the Earth, safe but isolated. Only by using the reality-bending powers of warp technology can you visit the world below in brief, randomly-targeted excursions below. Venture down, gather supplies, and return with only what you can carry to build up your home base and your stash over time. The powers of the warp make you unable to ever truly die, so on failing such an expedition, you will simply lose all items and equipment you were carrying and be swiftly returned home at low health.", + "start_name": "Warper", + "allowed_locs": [ "sloc_skyisland" ], + "eoc": [ "scenario_warp_begins" ] + }, + { + "type": "start_location", + "id": "sloc_skyisland", + "name": "Sky Island", + "terrain": [ "sky_island_core" ] + }, + { + "type": "SCENARIO_BLACKLIST", + "subtype": "whitelist", + "//": "Makes it so you can't choose any other scenario in this mode.", + "scenarios": [ "scenario_warper" ] + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/sickness_checks.json b/data/Mainline_mods/Mods/Sky_Island/sickness_checks.json new file mode 100644 index 000000000..4b7f2a095 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/sickness_checks.json @@ -0,0 +1,129 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_constantticking", + "//": "This EOC triggers randomly once every x amount of minutes where x is determined by your difficulty. This happens only while you're away from base, otherwise it's dormant. All it does is increase your sickness counter by 1 every time it triggers and then calls the more detailed sickness check EOC.", + "recurrence": { "global_val": "var", "var_name": "sicknessintervals", "default": "30 m" }, + "condition": { "u_has_trait": "awayfromhome" }, + "deactivate_condition": { "not": { "u_has_trait": "awayfromhome" } }, + "effect": [ + { "math": [ "timeawayfromhome", "++" ] }, + { "math": [ "readablepulsesleft", "=", "9 - timeawayfromhome" ] }, + { "math": [ "readablesicknessintervals", "=", "sicknessintervals / 60" ] }, + { "run_eocs": [ "EOC_sicknesscheck" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_sicknesscheck", + "//": "This EOC gets called by the above EOC, after your sickness counter goes up. If you're below a dangerous threshold, you just get a satisfactory message. Otherwise it runs a chain of else-if EOCs down below.", + "condition": { "math": [ "timeawayfromhome", "<=", "7" ] }, + "effect": [ + { "u_add_effect": "warpsickness", "intensity": 6, "duration": "PERMANENT" }, + { "u_lose_effect": "warpdisintegration" }, + { + "u_message": "Your body shivers slightly as a warp pulse passes through it. Another pulse will hit in minutes. Warp sickness won't set in for another pulses." + } + ], + "false_effect": [ { "run_eocs": [ "EOC_sicknesscheck1" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_sicknesscheck1", + "//": "If your threshold is between 80 and 100 percent of your safe time, this warning will play that you're running out of time. Otherwise it runs a chain of else-if EOCs down below.", + "condition": { "math": [ "timeawayfromhome", "<=", "8" ] }, + "effect": [ + { "u_add_effect": "warpsickness", "intensity": 6, "duration": "PERMANENT" }, + { "u_lose_effect": "warpdisintegration" }, + { + "u_message": "Goosebumps cover your skin as a warp pulse passes through you. You're only one warp pulse from your deadline.", + "popup": true + } + ], + "false_effect": [ { "run_eocs": [ "EOC_sicknesscheck2" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_sicknesscheck2", + "//": "Like the above EOC this checks to see if you're exactly at a given counter. On reaching this point instead of a warning it give you Intensity 4 warp sickness, meaning actual stat penalties. At this point staying out longer will be very difficult and it only gets worse from here.", + "condition": { "math": [ "timeawayfromhome", "<=", "9" ] }, + "effect": [ + { "u_lose_effect": "warpdisintegration" }, + { "u_add_effect": "warpsickness", "intensity": 5, "duration": "PERMANENT" }, + { + "u_message": "A warp pulse passing through you twists your blood inside your veins and your eyes pulse in pain. You've overstayed your welcome and need to get home.", + "popup": true, + "type": "bad" + } + ], + "false_effect": [ { "run_eocs": [ "EOC_sicknesscheck3" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_sicknesscheck3", + "//": "Like the above EOCs this checks to see if you're exactly at a given counter and if so makes your warp sickness even worse.", + "condition": { "math": [ "timeawayfromhome", "<=", "10" ] }, + "effect": [ + { "u_lose_effect": "warpdisintegration" }, + { "u_add_effect": "warpsickness", "intensity": 4, "duration": "PERMANENT" }, + { + "u_message": "A warp pulse shudders through your head like a localized earthquake and your extremities surge with pain like they're peeling open. You need to get home as soon as possible.", + "popup": true, + "type": "bad" + } + ], + "false_effect": [ { "run_eocs": [ "EOC_sicknesscheck4" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_sicknesscheck4", + "//": "Like the above EOCs this checks to see if you're exactly at a given counter and if so makes your warp sickness worse yet.", + "condition": { "math": [ "timeawayfromhome", "<=", "11" ] }, + "effect": [ + { "u_lose_effect": "warpdisintegration" }, + { "u_add_effect": "warpsickness", "intensity": 3, "duration": "PERMANENT" }, + { + "u_message": "Another warp pulse rocks through you and your organs wrench themselves over. Existence is fracturing. You need to get home immediately.", + "popup": true, + "type": "mixed" + } + ], + "false_effect": [ { "run_eocs": [ "EOC_sicknesscheck5" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_sicknesscheck5", + "//": "This is the penultimate EOC to check your counter. Any further and you start disintegrating.", + "condition": { "math": [ "timeawayfromhome", "<=", "12" ] }, + "effect": [ + { "u_add_effect": "warpsickness", "intensity": 2, "duration": "PERMANENT" }, + { "u_lose_effect": "warpdisintegration" }, + { + "u_message": "A sickening wet sound rips through you as another warp pulse hits. You can feel your whole body trying to pull itself apart, and if you wait any longer, it just might. If you want to live, you need to get home NOW!", + "popup": true, + "type": "mixed" + } + ], + "false_effect": [ { "run_eocs": [ "EOC_sicknesscheck6" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_sicknesscheck6", + "//": "This is the final EOC to check your counter, anything higher than this doesn't matter. On reaching this point you will get the worst stage of warp sickness and also contract warp disintegration, which will just outright start killing you, making it a hard limit on how long you can stay out.", + "effect": [ + { "u_add_effect": "warpsickness", "intensity": 1, "duration": "PERMANENT" }, + { "u_add_effect": "warpdisintegration", "intensity": 1, "duration": "PERMANENT" }, + { + "u_message": "As the warp pulse hits, you realize there are no words to describe how much trouble you're in. Your body is crumbling to wet paste and your blood is twisting into a viny tangle. All you know is pain. \nYou're not just dying, you're dying horribly. \nIf escape is already near you may survive against all odds, but oblivion is only moments away.", + "popup": true, + "type": "mixed" + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_warpextender", + "//": "Triggers when you eat a warp extender. Reduces your warp buildup.", + "effect": [ { "math": [ "timeawayfromhome", "-=", "5" ] }, { "run_eocs": [ "EOC_constantticking" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Sky_Island/warpitems.json b/data/Mainline_mods/Mods/Sky_Island/warpitems.json new file mode 100644 index 000000000..9428a0963 --- /dev/null +++ b/data/Mainline_mods/Mods/Sky_Island/warpitems.json @@ -0,0 +1,355 @@ +[ + { + "type": "TOOL", + "id": "warpheal_stone", + "name": { "str_sp": "Salve of Forgiveness" }, + "color": "magenta", + "use_action": { + "type": "effect_on_conditions", + "description": "Forgiveness to the innocent.", + "effect_on_conditions": [ "EOC_HEAL_NEWBIE" ] + }, + "volume": "250 ml", + "weight": "10 g", + "looks_like": "slime_scrap", + "symbol": "@", + "flags": [ "ALLOWS_REMOTE_USE", "UNBREAKABLE" ], + "description": "A boon from whatever powers control the warpstream, meant to make your first excursions safer. Using this strange blue-black goop will instantly heal your wounds and return you to health, but only while in your island sanctuary. Most importantly, this will only work while you are getting started. After you have survived a few return trips, it becomes a useless goo." + }, + { + "type": "TOOL", + "id": "warpstat_stone", + "name": { "str": "Stat Stone" }, + "color": "magenta", + "use_action": { "type": "effect_on_conditions", "description": "What are your numbers?", "effect_on_conditions": [ "EOC_statcheck" ] }, + "volume": "250 ml", + "weight": "10 g", + "looks_like": "spiral_stone", + "symbol": "@", + "flags": [ "ALLOWS_REMOTE_USE", "UNBREAKABLE" ], + "description": "A special stone slab that you can activate to check your expedition statistics." + }, + { + "type": "TOOL", + "id": "warp_portalstorm_ender", + "name": { "str": "Portal Storm Warding Stone" }, + "color": "magenta", + "use_action": { + "type": "effect_on_conditions", + "description": "Go away, come again another day.", + "effect_on_conditions": [ "EOC_CHECK_ISLANDSTORM" ] + }, + "volume": "250 ml", + "weight": "10 g", + "looks_like": "spiral_stone", + "symbol": "@", + "flags": [ "ALLOWS_REMOTE_USE", "UNBREAKABLE" ], + "description": "This faintly humming purplish stone is meant to ward portal storms away from the island. When used on the sanctuary island during a portal storm, it will clear the weather. No effect if used earthside." + }, + { + "type": "TOOL", + "id": "warpdifficulty_stone", + "name": { "str": "Difficulty Adjuster" }, + "color": "magenta", + "use_action": { + "type": "effect_on_conditions", + "description": "Choose your challenge.", + "effect_on_conditions": [ "EOC_difficultycheck" ] + }, + "volume": "250 ml", + "weight": "10 g", + "looks_like": "spiral_stone", + "symbol": "@", + "flags": [ "ALLOWS_REMOTE_USE", "UNBREAKABLE" ], + "description": "A special stone slab that lets you change how difficult you want your expedition time limits to be." + }, + { + "type": "ARMOR", + "id": "warpbag_base", + "name": { "str": "warped bag" }, + "symbol": "[", + "color": "light_gray", + "material": [ "alien_resin" ], + "looks_like": "backpack", + "flags": [ + "NO_SALVAGE", + "ALLOWS_NATURAL_ATTACKS", + "TRADER_AVOID", + "OVERSIZE", + "PADDED", + "ONE_PER_LAYER", + "ONLY_ONE", + "UNBREAKABLE", + "SEMITANGIBLE", + "AURA", + "TARDIS" + ], + "warmth": 0, + "weight": "400 g", + "volume": "2000 ml", + "longest_side": "11 meter", + "description": "This is a template you shouldn't actually see.", + "armor": [ + { + "coverage": 0, + "covers": [ "torso" ], + "material": [ "alien_resin" ], + "material_thickness": 1, + "environmental_protection": 0 + } + ] + }, + { + "type": "ARMOR", + "id": "warpwoodbag", + "name": { "str": "warped lumberjack's bag" }, + "copy-from": "warpbag_base", + "description": "This bag shimmers before your eyes, glinting in perfectly vertical slivers of purplish light. No matter how much you pack into it, it never seems to grow heavier, and its interior is a great yawning gullet of space the items seem to simply disappear into. It seems a remarkably picky eater, however, and will only swallow up planks, boards, wood panels, sticks, and similar wooden construction items. It also outright refuses to be packed inside of other bags.", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "800 L", + "max_contains_weight": "2000 kg", + "max_item_length": "10 meter", + "weight_multiplier": 0.01, + "item_restriction": [ + "bundle_splinter", + "bundle_plank", + "bundle_branch", + "bundle_branch_long", + "2x4", + "log", + "splinter", + "stick", + "stick_long", + "plank_short", + "plank_long", + "wood_beam", + "wooden_post", + "wooden_post_short", + "wooden_post_long", + "wood_block", + "wood_panel", + "wood_sheet" + ], + "moves": 1, + "rigid": true + } + ] + }, + { + "type": "ARMOR", + "id": "warpdirtbag", + "name": { "str": "warped excavator's bag" }, + "copy-from": "warpbag_base", + "description": "This bag shimmers before your eyes, glinting in perfectly vertical slivers of purplish light. No matter how much you pack into it, it never seems to grow heavier, and its interior is a great yawning gullet of space the items seem to simply disappear into. This is surely the biggest of its type. It seems a remarkably picky eater, however, and will only swallow up soil, sand, gravel, clay, and most common stones. It does seem, however, to also yield to a handful of construction materials like raw limestone, cement, concrete, and mortar, to name a few. It also outright refuses to be packed inside of other bags.", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "4000 L", + "max_contains_weight": "2000 kg", + "max_item_length": "10 meter", + "weight_multiplier": 0.001, + "item_restriction": [ + "material_soil", + "material_cement", + "material_gravel", + "material_sand", + "material_shrd_limestone", + "rock_flaking", + "flint", + "rock_large", + "rock", + "pebble", + "clay_lump", + "brick", + "mortar_build", + "mortar_lime", + "soft_adobe_brick", + "adobe_brick", + "mortar_adobe", + "concrete" + ], + "moves": 1, + "rigid": true + } + ] + }, + { + "type": "ARMOR", + "id": "warpmetalbag", + "name": { "str": "warped scrapper's bag" }, + "copy-from": "warpbag_base", + "description": "This bag shimmers before your eyes, glinting in perfectly vertical slivers of purplish light. No matter how much you pack into it, it never seems to grow heavier, and its interior is a great yawning gullet of space the items seem to simply disappear into. It is a remarkably picky eater, however, and seems to yearn for lumps of raw metal like steel and scrap. It does, however, also yield to a few particularly dense processed forms, like pipes, sheet metal, steel frames, and metal plating. It also outright refuses to be packed inside of other bags.", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "120 L", + "max_contains_weight": "2000 kg", + "max_item_length": "10 meter", + "weight_multiplier": 0.001, + "item_restriction": [ + "wire", + "nail", + "hinge", + "nuts_bolts", + "pipe_fittings", + "hd_pipe_fittings", + "cable", + "copper_wire", + "sheet_metal", + "steel_plate", + "alloy_plate", + "hard_plate", + "mil_plate", + "pipe", + "scrap", + "cu_pipe", + "material_aluminium_ingot", + "gold_small", + "lead", + "sheet_metal_small", + "steel_chunk", + "hc_steel_chunk", + "mc_steel_chunk", + "lc_steel_chunk", + "steel_lump", + "scrap_copper", + "scrap_aluminum", + "foldframe", + "xlframe", + "foldxlframe", + "frame", + "hdframe", + "anvil", + "anvil_bronze" + ], + "moves": 1, + "rigid": true + } + ] + }, + { + "type": "ARMOR", + "id": "warphaulbag", + "name": { "str": "warped hauler's harness", "str_pl": "warped hauler's harnesses" }, + "copy-from": "warpbag_base", + "description": "A looped pair of shimmering blue-black straps that can be worn over the shoulders like a harness. They make hauling effortless, and one could easily cart home anything from an engine block to a bull moose with this, while still keeping hands free. The downside is that no matter how you might try, they only seem to be able to support a single item. It also outright refuses to be packed inside of other bags.", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "2000 L", + "max_contains_weight": "2000 kg", + "max_item_length": "10 meter", + "weight_multiplier": 0.001, + "moves": 2000, + "rigid": true, + "holster": true + } + ] + }, + { + "id": "warpextender", + "type": "COMESTIBLE", + "comestible_type": "MED", + "consumption_effect_on_conditions": [ "EOC_warpextender" ], + "name": { "str": "earthbound pill" }, + "description": "This pseudomagical pill extends the amount of time you can stay earthside by 4 pulses, or about 50% of a normal trip. They're precious, but should help buy time for a difficult extract.", + "weight": "15 g", + "volume": "5 ml", + "looks_like": "panacea", + "material": [ "plastic" ], + "symbol": "!", + "flags": [ "TRADER_AVOID", "UNBREAKABLE" ], + "freezing_point": -1000, + "spoils_in": "10 days", + "color": "red" + }, + { + "id": "warphome", + "type": "TOOL", + "name": { "str": "homeward mote" }, + "use_action": { "type": "effect_on_conditions", "description": "A hasty escape.", "effect_on_conditions": [ "EOC_homewardmote" ] }, + "description": "Though visibly little more than a glowing dustbunny, this strange ethereal mote of warp essence reveals, on closer inspection, something more. A tiny, twisting, half-visible thread of shimmering bluish-purple trails away into the sky and far out of sight, unimpeded by any obstacles.\n\nTaking this rare and valuable artifact with you on an expedition is essentially buying life insurance. If you die with this mote in your inventory, you will instead be restored to full health and brought home, WITH all items and equipment carried. But this effect will only last for a single expedition. Even if you extract safely, any and all motes carried on your person when you return home will be DESTROYED.", + "weight": "15 g", + "volume": "5 ml", + "looks_like": "fishing_hook_basic", + "material": [ "alien_resin" ], + "symbol": "!", + "flags": [ "TRADER_AVOID", "UNBREAKABLE" ], + "color": "red" + }, + { + "id": "warp_carrier", + "type": "TOOL", + "name": { "str": "warped animal carrier" }, + "description": "A hand-sized cage with a shimmering portal at its aperture. Despite being shaped more like a cat carrier, the power of warp enables it to capture creatures far bigger than you. This may be your best bet for bringing animals home to your island sanctuary. Activate to capture an adjacent animal, or to release a carried animal.", + "weight": "1000 g", + "volume": "5 L", + "material": [ "alien_resin" ], + "symbol": "#", + "color": "light_gray", + "properties": [ [ "creature_size_capacity", "HUGE" ] ], + "use_action": [ "CAPTURE_MONSTER_ACT" ], + "flags": [ "TRADER_AVOID", "UNBREAKABLE" ], + "looks_like": "pet_carrier" + }, + { + "id": "warp_autodoc_inert", + "name": { "str": "Autodoc copyplate (inert)", "str_pl": "Autodoc copyplates (inert)" }, + "description": "This strange obsidian-colored plate is capable of mimicking the advanced tech found within a modern Autodoc, and can be used to create a working copy at your sanctuary. However, it is inert in its current state and must first be imprinted on a working Autodoc. To do so, find an Autodoc during an expedition and use the construction menu to imprint this plate.", + "type": "GENERIC", + "symbol": ")", + "color": "light_cyan", + "material": [ "alien_resin" ], + "flags": [ "UNBREAKABLE" ], + "weight": "100 g", + "volume": "200 ml" + }, + { + "id": "warp_autodoc_active", + "name": { "str": "Autodoc copyplate (activated)", "str_pl": "Autodoc copyplates (activated)" }, + "description": "This strange obsidian-colored plate is capable of mimicking the advanced tech found within a modern Autodoc, and can be used to create a working copy at your sanctuary. It has been successfully activated and can be used as the catalyst to create a new Autodoc at a location of your choosing using the construction menu. Be aware this cannot be safely moved once placed, and will also require you to add an adjacent couch, then convert it to an Autodoc couch.", + "type": "GENERIC", + "symbol": ")", + "color": "light_cyan", + "material": [ "alien_resin" ], + "flags": [ "UNBREAKABLE" ], + "weight": "100 g", + "volume": "200 ml" + }, + { + "id": "warp_grassbag", + "type": "AMMO", + "category": "other", + "name": { "str_sp": "warped grass seeds" }, + "description": "While these are certainly imbued with warp, they don't seem to have any supernatural powers beyond just growing quickly. A nice option if you want to re-plant grass on your island, for decoration's sake.", + "weight": "5 g", + "volume": "5 ml", + "count": 100, + "stack_size": 100, + "looks_like": "seed_wild_herbs", + "flags": [ "UNBREAKABLE" ], + "material": [ "veggy" ], + "symbol": ".", + "color": "light_gray", + "ammo_type": "components" + }, + { + "id": "warptoken", + "type": "AMMO", + "category": "other", + "name": { "str_sp": "warp shards" }, + "description": "A small quantity of airy-thin material that resembles flaked obsidian. It glints with a purplish shimmer that seems to stretch off the bounds of itself and into the air itself. Offered to the powers that be, one could exchange it for valuable artifacts.", + "weight": "5 g", + "volume": "5 ml", + "count": 1, + "stack_size": 100, + "looks_like": "spiral_stone", + "material": [ "stone" ], + "symbol": ",", + "flags": [ "UNBREAKABLE" ], + "color": "light_gray", + "ammo_type": "components" + } +] diff --git a/data/Mainline_mods/Mods/Standard_Combat_Tests/modinfo.json b/data/Mainline_mods/Mods/Standard_Combat_Tests/modinfo.json new file mode 100644 index 000000000..c62062074 --- /dev/null +++ b/data/Mainline_mods/Mods/Standard_Combat_Tests/modinfo.json @@ -0,0 +1,206 @@ +[ + { + "type": "MOD_INFO", + "id": "standard_combat_test", + "name": "Standard combat test suite", + "authors": [ "Venera3" ], + "maintainers": [ "Venera3" ], + "description": "A set of standard character loadouts to facilitate objective monster testing. Disables all but the test scenarios.", + "category": "misc", + "dependencies": [ "dda" ] + }, + { + "type": "SCENARIO_BLACKLIST", + "subtype": "whitelist", + "scenarios": [ "evacuee", "scavenger", "survivor" ] + }, + { + "type": "scenario", + "id": "evacuee", + "name": "Evacuee", + "points": 0, + "description": "You have survived the initial wave of panic, and have achieved (relative) safety in one of the many government evac shelters. You also took the time to cobble together some improvised weaponry!", + "allowed_locs": [ "sloc_shelter_a" ], + "start_name": "Evac Shelter", + "professions": [ "sct_day1" ], + "map_extra": "mx_sct_day1", + "flags": [ "CITY_START", "LONE_START" ] + }, + { + "type": "scenario", + "id": "scavenger", + "name": "Scavenger", + "points": 0, + "description": "You are getting by in the Apocalypse. Your gear is still scavenged from the ruins of the old world, but you have gathered the skills to use it to good effect. Midsummer start.", + "allowed_locs": [ "sloc_shelter_a" ], + "start_name": "Evac Shelter", + "professions": [ "sct_mid" ], + "map_extra": "mx_sct_mid", + "flags": [ "CITY_START", "LONE_START" ], + "start_of_cataclysm": { "hour": 0, "day": 61, "season": "spring", "year": 1 }, + "start_of_game": { "hour": 8, "day": 45, "season": "summer", "year": 1 } + }, + { + "type": "scenario", + "id": "survivor", + "name": "Survivor", + "points": 0, + "description": "You are as close to thriving as anybody can be these days. Your gear is handcrafted with the threats of the new world in mind, and your skills are honed to perfection. Mid-autumn start.", + "allowed_locs": [ "sloc_shelter_a" ], + "start_name": "Evac Shelter", + "professions": [ "sct_late" ], + "map_extra": "mx_sct_late", + "flags": [ "CITY_START", "LONE_START" ], + "start_of_cataclysm": { "hour": 0, "day": 61, "season": "spring", "year": 1 }, + "start_of_game": { "hour": 8, "day": 45, "season": "autumn", "year": 1 } + }, + { + "id": "mx_sct_day1", + "type": "map_extra", + "name": { "str": "Standard early game combat test area" }, + "description": "There are some improvised weapons nearby.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_sct_day1" }, + "min_max_zlevel": [ 0, 0 ] + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_sct_day1", + "object": { + "place_terrain": [ + { "ter": "t_utility_light", "x": 5, "y": 10 }, + { "ter": "t_utility_light", "x": 7, "y": 22 }, + { "ter": "t_utility_light", "x": 17, "y": 9 }, + { "ter": "t_utility_light", "x": 17, "y": 22 } + ], + "place_loot": [ + { "item": "makeshift_machete", "x": 11, "y": 10, "chance": 100 }, + { "item": "mace_pipe", "x": 12, "y": 10, "chance": 100 }, + { "item": "spear_knife", "x": 13, "y": 10, "chance": 100 }, + { "item": "glock_17", "x": 14, "y": 10, "ammo": 100, "magazine": 100, "chance": 100 }, + { "item": "glock17_17", "x": 14, "y": 10, "ammo": 100, "chance": 100 } + ] + } + }, + { + "id": "mx_sct_mid", + "type": "map_extra", + "name": { "str": "Standard midgame combat test area" }, + "description": "There are some scavenged weapons nearby.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_sct_mid" }, + "min_max_zlevel": [ 0, 0 ] + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_sct_mid", + "object": { + "place_terrain": [ + { "ter": "t_utility_light", "x": 5, "y": 10 }, + { "ter": "t_utility_light", "x": 7, "y": 22 }, + { "ter": "t_utility_light", "x": 17, "y": 9 }, + { "ter": "t_utility_light", "x": 17, "y": 22 } + ], + "place_loot": [ + { "item": "fire_ax", "x": 11, "y": 10, "chance": 100 }, + { "item": "shillelagh", "x": 12, "y": 10, "chance": 100 }, + { "item": "knife_combat", "x": 13, "y": 10, "chance": 100 }, + { "item": "modular_ar15", "x": 14, "y": 10, "ammo": 100, "magazine": 100, "chance": 100 }, + { "item": "stanag30", "x": 14, "y": 10, "ammo": 100, "chance": 100 } + ] + } + }, + { + "id": "mx_sct_late", + "type": "map_extra", + "name": { "str": "Standard lategame combat test area" }, + "description": "There are some survivor weapons nearby.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_sct_late" }, + "min_max_zlevel": [ 0, 0 ] + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_sct_late", + "object": { + "place_terrain": [ + { "ter": "t_utility_light", "x": 5, "y": 10 }, + { "ter": "t_utility_light", "x": 7, "y": 22 }, + { "ter": "t_utility_light", "x": 17, "y": 9 }, + { "ter": "t_utility_light", "x": 17, "y": 22 } + ], + "place_loot": [ + { "item": "nodachi", "x": 11, "y": 10, "chance": 100 }, + { "item": "broadsword", "x": 11, "y": 10, "chance": 100 }, + { "item": "mace", "x": 12, "y": 10, "chance": 100 }, + { "item": "lucern_hammer", "x": 12, "y": 10, "chance": 100 }, + { "item": "pike", "x": 13, "y": 10, "chance": 100 }, + { "item": "rapier", "x": 13, "y": 10, "chance": 100 }, + { "item": "m107a1", "x": 14, "y": 10, "ammo": 100, "chance": 100 }, + { "item": "m107a1mag", "x": 14, "y": 10, "ammo": 100, "chance": 100 } + ] + } + }, + { + "type": "profession", + "id": "sct_day1", + "name": "Day 1", + "description": "Starter evacuee gear, no skills - probably not going to have a good time.", + "copy-from": "unemployed" + }, + { + "type": "profession", + "id": "sct_mid", + "name": "Midgame", + "points": 0, + "description": "Scavenged armor and mid-range skills, meant to represent an established survivor before making the jump to (self)-fabricated custom gear.", + "skills": [ + { "level": 4, "name": "melee" }, + { "level": 4, "name": "bashing" }, + { "level": 4, "name": "cutting" }, + { "level": 4, "name": "stabbing" }, + { "level": 4, "name": "unarmed" }, + { "level": 4, "name": "dodge" }, + { "level": 4, "name": "gun" }, + { "level": 4, "name": "rifle" } + ], + "items": { + "both": { + "items": [ "socks", "bunker_pants", "gambeson", "boots_combat", "gloves_tactical", "tac_helmet" ], + "entries": [ { "group": "us_ballistic_vest_pristine" } ] + }, + "male": [ "boxer_shorts" ], + "female": [ "bra", "boy_shorts" ] + } + }, + { + "type": "profession", + "id": "sct_late", + "name": "Lategame", + "points": 0, + "description": "Heavy (survivor pneumatic) post-cataclysm gear, excluding rare lootables.", + "skills": [ + { "level": 8, "name": "melee" }, + { "level": 8, "name": "bashing" }, + { "level": 8, "name": "cutting" }, + { "level": 8, "name": "stabbing" }, + { "level": 8, "name": "unarmed" }, + { "level": 8, "name": "dodge" }, + { "level": 8, "name": "gun" }, + { "level": 8, "name": "rifle" } + ], + "items": { + "both": { + "items": [ + "robofac_kevlar_vambraces", + "robofac_kevlar_greaves", + "armor_nomad_heavyplate", + "nomad_bodyglove_2", + "boots_combat", + "hc_helm_close", + "hc_demi_gaunt" + ] + } + } + } +] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/bird.json b/data/Mainline_mods/Mods/Tamable_Wildlife/bird.json index 6a83a6ad9..467be8bbb 100644 --- a/data/Mainline_mods/Mods/Tamable_Wildlife/bird.json +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/bird.json @@ -130,5 +130,89 @@ "pet": "The %s runs around your leg." }, "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_pigeon", + "type": "MONSTER", + "copy-from": "mon_pigeon", + "name": { "str": "pigeon" }, + "petfood": { + "food": [ "BIRDFOOD" ], + "feed": "The %s seems to like you! It runs around your legs and seems friendly.", + "pet": "The %s runs around your leg." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_hummingbird", + "type": "MONSTER", + "copy-from": "mon_hummingbird", + "name": { "str": "hummingbird" }, + "petfood": { + "food": [ "BIRDFOOD" ], + "feed": "The %s seems to like you! It quickly flies around you and seems friendly.", + "pet": "The %s flies around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_woodpecker", + "type": "MONSTER", + "copy-from": "mon_woodpecker", + "name": { "str": "woodpecker" }, + "petfood": { + "food": [ "BIRDFOOD" ], + "feed": "The %s seems to like you! It runs around your legs and seems friendly.", + "pet": "The %s runs around your leg." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_coot", + "type": "MONSTER", + "copy-from": "mon_coot", + "name": { "str": "coot" }, + "petfood": { + "food": [ "BIRDFOOD" ], + "feed": "The %s seems to like you! It runs around your legs and seems friendly.", + "pet": "The %s runs around your leg." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_cormorant", + "type": "MONSTER", + "copy-from": "mon_coot", + "name": { "str": "cormorant" }, + "petfood": { + "food": [ "BIRDFOOD" ], + "feed": "The %s seems to like you! It runs around your legs and seems friendly.", + "pet": "The %s runs around your leg." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_moorhen", + "type": "MONSTER", + "copy-from": "mon_coot", + "name": { "str": "moorhen" }, + "petfood": { + "food": [ "BIRDFOOD" ], + "feed": "The %s seems to like you! It runs around your legs and seems friendly.", + "pet": "The %s runs around your leg." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_grebe", + "type": "MONSTER", + "copy-from": "mon_coot", + "name": { "str": "grebe" }, + "petfood": { + "food": [ "BIRDFOOD" ], + "feed": "The %s seems to like you! It runs around your legs and seems friendly.", + "pet": "The %s runs around your leg." + }, + "extend": { "flags": [ "CANPLAY" ] } } ] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/fish.json b/data/Mainline_mods/Mods/Tamable_Wildlife/fish.json new file mode 100644 index 000000000..c588c8d22 --- /dev/null +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/fish.json @@ -0,0 +1,28 @@ +[ + { + "id": "mon_crayfish_giant_larva", + "type": "MONSTER", + "copy-from": "mon_crayfish_giant_larva", + "name": { "str": "giant crayfish larva", "str_pl": "giant crayfish larvae" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant crustacean could like you. It swims around your legs and seems friendly.", + "pet": "The %s swims around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_giant_crayfish", + "type": "MONSTER", + "copy-from": "mon_giant_crayfish", + "name": { "str_sp": "giant crayfish" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_crayfish_mega", + "type": "MONSTER", + "copy-from": "mon_crayfish_mega", + "name": { "str_sp": "colossal crayfish" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + } +] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/insect_spider.json b/data/Mainline_mods/Mods/Tamable_Wildlife/insect_spider.json new file mode 100644 index 000000000..e7032cb4c --- /dev/null +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/insect_spider.json @@ -0,0 +1,627 @@ +[ + { + "id": "mon_plague_nymph", + "type": "MONSTER", + "copy-from": "mon_plague_nymph", + "name": { "str": "plague nymph" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_skittering_plague", + "type": "MONSTER", + "copy-from": "mon_skittering_plague", + "name": { "str": "skittering plague" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_plague_vector", + "type": "MONSTER", + "copy-from": "mon_plague_vector", + "name": { "str": "plague vector" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_giant_cockroach_nymph", + "type": "MONSTER", + "copy-from": "mon_giant_cockroach_nymph", + "name": { "str": "giant cockroach nymph" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_giant_cockroach", + "type": "MONSTER", + "copy-from": "mon_giant_cockroach", + "name": { "str": "giant cockroach", "str_pl": "giant cockroaches" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_pregnant_giant_cockroach", + "type": "MONSTER", + "copy-from": "mon_pregnant_giant_cockroach", + "name": { "str": "pregnant giant cockroach", "str_pl": "pregnant giant cockroaches" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_dragonfly_naiad_friendly", + "type": "MONSTER", + "copy-from": "mon_dragonfly_naiad", + "name": { "str": "giant dragonfly naiad" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] }, + "delete": { "anger_triggers": [ "PLAYER_CLOSE" ] } + }, + { + "id": "mon_dragonfly_giant", + "type": "MONSTER", + "copy-from": "mon_dragonfly_giant", + "name": { "str": "giant dragonfly", "str_pl": "giant dragonflies" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_dragonfly_mega", + "type": "MONSTER", + "copy-from": "mon_dragonfly_mega", + "name": { "str_sp": "fused dragonflies" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_wasp_larva", + "type": "MONSTER", + "copy-from": "mon_wasp_larva", + "name": { "str": "wasp larva", "str_pl": "wasp larvae" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It crawls around your legs and seems friendly.", + "pet": "The %s crawls around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_dermatik_larva", + "type": "MONSTER", + "copy-from": "mon_dermatik_larva", + "name": { "str": "dermatik larva", "str_pl": "dermatik larvae" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_ant_acid_larva", + "type": "MONSTER", + "copy-from": "mon_ant_acid_larva", + "name": { "str": "acidic ant larva", "str_pl": "acidic ant larvae" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It crawls around your legs and seems friendly.", + "pet": "The %s crawls around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_ant_acid", + "type": "MONSTER", + "copy-from": "mon_ant_acid", + "name": { "str": "giant acidic ant" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_ant_acid_soldier", + "type": "MONSTER", + "copy-from": "mon_ant_acid_soldier", + "name": { "str": "acidic soldier ant" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_ant_larva", + "type": "MONSTER", + "copy-from": "mon_ant_larva", + "name": { "str": "ant larva", "str_pl": "ant larvae" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It crawls around your legs and seems friendly.", + "pet": "The %s crawls around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_ant", + "type": "MONSTER", + "copy-from": "mon_ant", + "name": { "str": "giant ant" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_ant_soldier", + "type": "MONSTER", + "copy-from": "mon_ant_soldier", + "name": { "str": "soldier ant" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_ant_soldier_mega", + "type": "MONSTER", + "copy-from": "mon_ant_soldier_mega", + "name": { "str": "super soldier ant" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_locust_nymph", + "type": "MONSTER", + "copy-from": "mon_locust_nymph", + "name": { "str": "locust nymph" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_locust", + "type": "MONSTER", + "copy-from": "mon_locust", + "name": { "str": "giant locust" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_locust_mega", + "type": "MONSTER", + "copy-from": "mon_locust_mega", + "name": { "str": "famine" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_aphid_small", + "type": "MONSTER", + "copy-from": "mon_aphid_small", + "name": { "str": "aphid" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_aphid", + "type": "MONSTER", + "copy-from": "mon_aphid", + "name": { "str": "giant aphid" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_mantis_nymph_friendly", + "type": "MONSTER", + "copy-from": "mon_mantis_nymph", + "name": { "str": "praying mantis nymph" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] }, + "delete": { "anger_triggers": [ "PLAYER_CLOSE" ] } + }, + { + "id": "mon_mantis_giant", + "type": "MONSTER", + "copy-from": "mon_mantis_giant", + "name": { "str": "giant praying mantis", "str_pl": "giant praying mantises" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_mantis_mega", + "type": "MONSTER", + "copy-from": "mon_mantis_mega", + "name": { "str": "great mantis", "str_pl": "great mantises" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_grasshopper_nymph", + "type": "MONSTER", + "copy-from": "mon_grasshopper_nymph", + "name": { "str": "grasshopper nymph" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_grasshopper_giant", + "type": "MONSTER", + "copy-from": "mon_grasshopper_giant", + "name": { "str": "giant grasshopper" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_stag_beetle_larva", + "type": "MONSTER", + "copy-from": "mon_stag_beetle_larva", + "name": { "str": "giant stag beetle larva", "str_pl": "giant stag beetle larvae" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It crawls around you and seems friendly.", + "pet": "The %s crawls around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_antlion_larva_friendly", + "type": "MONSTER", + "copy-from": "mon_antlion_larva", + "name": { "str": "giant antlion larva", "str_pl": "giant antlion larvae" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It crawls around you and seems friendly.", + "pet": "The %s crawls around you." + }, + "extend": { "flags": [ "CANPLAY" ] }, + "delete": { "anger_triggers": [ "PLAYER_WEAK", "PLAYER_CLOSE" ] } + }, + { + "id": "mon_antlion_giant", + "type": "MONSTER", + "copy-from": "mon_antlion_giant", + "name": { "str": "giant adult antlion" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_strider_nymph", + "type": "MONSTER", + "copy-from": "mon_strider_nymph", + "name": { "str": "water strider nymph" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_strider_giant", + "type": "MONSTER", + "copy-from": "mon_strider_giant", + "name": { "str": "giant water strider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_cicada_nymph_friendly", + "type": "MONSTER", + "copy-from": "mon_cicada_nymph", + "name": { "str": "cicada nymph" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] }, + "delete": { "anger_triggers": [ "PLAYER_CLOSE" ] } + }, + { + "id": "mon_cicada", + "type": "MONSTER", + "copy-from": "mon_cicada", + "name": { "str": "giant cicada" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_woodlouse_manca", + "type": "MONSTER", + "copy-from": "mon_woodlouse_manca", + "name": { "str": "baby woodlouse", "str_pl": "baby woodlice" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_woodlouse", + "type": "MONSTER", + "copy-from": "mon_woodlouse", + "name": { "str": "giant woodlouse", "str_pl": "giant woodlice" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_diving_larva_friendly", + "type": "MONSTER", + "copy-from": "mon_diving_larva", + "name": { "str": "giant water tiger" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It swims around your legs and seems friendly.", + "pet": "The %s swims around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] }, + "delete": { "anger_triggers": [ "PLAYER_CLOSE" ] } + }, + { + "id": "mon_diving_beetle_small", + "type": "MONSTER", + "copy-from": "mon_diving_beetle_small", + "name": { "str": "giant diving beetle" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_water_scorpion_larva_friendly", + "type": "MONSTER", + "copy-from": "mon_water_scorpion_larva", + "name": { "str": "water scorpion nymph" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It swims around your legs and seems friendly.", + "pet": "The %s swims around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] }, + "delete": { "anger_triggers": [ "PLAYER_WEAK", "PLAYER_CLOSE" ] } + }, + { + "id": "mon_water_scorpion", + "type": "MONSTER", + "copy-from": "mon_water_scorpion", + "name": { "str": "giant water scorpion" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_jumping_small", + "type": "MONSTER", + "copy-from": "mon_spider_jumping_small", + "name": { "str": "jumping spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_jumping_giant", + "type": "MONSTER", + "copy-from": "mon_spider_jumping_giant", + "name": { "str": "giant jumping spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_jumping_mega", + "type": "MONSTER", + "copy-from": "mon_spider_jumping_mega", + "name": { "str": "missile spider" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_spider_jumping_giant_s", + "type": "MONSTER", + "copy-from": "mon_spider_jumping_giant_s", + "name": { "str": "jumping spiderling" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant spider could like you. It skitters around your legs and seems friendly.", + "pet": "The %s looks at you with its large eyes and skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_cellar_small", + "type": "MONSTER", + "copy-from": "mon_spider_cellar_small", + "name": { "str": "cellar spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_cellar_giant_s", + "type": "MONSTER", + "copy-from": "mon_spider_cellar_giant_s", + "name": { "str": "cellar spiderling" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant spider could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_cellar_giant", + "type": "MONSTER", + "copy-from": "mon_spider_cellar_giant", + "name": { "str": "giant cellar spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_cellar_mom", + "type": "MONSTER", + "copy-from": "mon_spider_cellar_mom", + "name": { "str": "mommy long-legs", "str_pl": "mommy long legs" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_cellar_mega", + "type": "MONSTER", + "copy-from": "mon_spider_cellar_mega", + "name": { "str": "warehouse spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_trapdoor_small", + "type": "MONSTER", + "copy-from": "mon_spider_trapdoor_small", + "name": { "str": "trapdoor spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_trapdoor_giant", + "type": "MONSTER", + "copy-from": "mon_spider_trapdoor_giant", + "name": { "str": "giant trapdoor spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_trapdoor_s", + "type": "MONSTER", + "copy-from": "mon_spider_trapdoor_s", + "name": { "str": "trapdoor spiderling" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant spider could like you. It skitters around your legs and seems friendly.", + "pet": "The %s looks at you with its large eyes and skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_trapdoor_mega", + "type": "MONSTER", + "copy-from": "mon_spider_trapdoor_mega", + "name": { "str": "deathtrap spider" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_spider_web_small", + "type": "MONSTER", + "copy-from": "mon_spider_web_small", + "name": { "str": "web spinning spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_web", + "type": "MONSTER", + "copy-from": "mon_spider_web", + "name": { "str": "giant web spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_web_s", + "type": "MONSTER", + "copy-from": "mon_spider_web_s", + "name": { "str": "web spiderling" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant spider could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_web_mega", + "type": "MONSTER", + "copy-from": "mon_spider_web_mega", + "name": { "str": "wyrd spider" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_spider_widow_small", + "type": "MONSTER", + "copy-from": "mon_spider_widow_small", + "name": { "str": "black widow spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_widow_giant", + "type": "MONSTER", + "copy-from": "mon_spider_widow_giant", + "name": { "str": "giant black widow" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_widow_giant_s", + "type": "MONSTER", + "copy-from": "mon_spider_widow_giant_s", + "name": { "str": "black widow spiderling" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant spider could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_widow_mega", + "type": "MONSTER", + "copy-from": "mon_spider_widow_mega", + "name": { "str": "black death widow" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_spider_wolf_small", + "type": "MONSTER", + "copy-from": "mon_spider_wolf_small", + "name": { "str": "wolf spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_wolf_giant", + "type": "MONSTER", + "copy-from": "mon_spider_wolf_giant", + "name": { "str": "giant wolf spider" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_wolf_giant_s", + "type": "MONSTER", + "copy-from": "mon_spider_wolf_giant_s", + "name": { "str": "wolf spiderling" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant spider could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_spider_wolf_mega", + "type": "MONSTER", + "copy-from": "mon_spider_wolf_mega", + "name": { "str": "necrowolf spider" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_centipede_small", + "type": "MONSTER", + "copy-from": "mon_centipede_small", + "name": { "str": "centipede" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_centipede_giant", + "type": "MONSTER", + "copy-from": "mon_centipede_giant", + "name": { "str": "giant centipede" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_centipede_larva_friendly", + "type": "MONSTER", + "copy-from": "mon_centipede_larva", + "name": { "str": "centipede larva", "str_pl": "centipede larvae" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant bug could like you. It skitters around your legs and seems friendly.", + "pet": "The %s skitters around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] }, + "delete": { "anger_triggers": [ "PLAYER_CLOSE" ] } + }, + { + "id": "mon_centipede_mom", + "type": "MONSTER", + "copy-from": "mon_centipede_mom", + "name": { "str": "centipede matriarch" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_centipede_mega", + "type": "MONSTER", + "copy-from": "mon_centipede_mega", + "name": { "str": "armored centipede" }, + "mountable_weight_ratio": 0.4, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + } +] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/items/comestibles/eggs.json b/data/Mainline_mods/Mods/Tamable_Wildlife/items/comestibles/eggs.json new file mode 100644 index 000000000..0d0f2186c --- /dev/null +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/items/comestibles/eggs.json @@ -0,0 +1,58 @@ +[ + { + "type": "COMESTIBLE", + "id": "egg_dragonfly_tame", + "name": { "str": "tame dragonfly egg" }, + "copy-from": "egg_dragonfly", + "description": "The still-wet egg of a mutated dragonfly. This one has been carefully tended for. The dragonfly inside seems more timid and calmer upon touch.", + "rot_spawn": "GROUP_EGG_DRAGONFLY_TAME" + }, + { + "type": "COMESTIBLE", + "id": "egg_mantis_tame", + "name": { "str": "tame mantis egg" }, + "copy-from": "egg_mantis", + "description": "Praying mantis eggs glued to each other inside a strange-looking case. These ones have been carefully tended for. The mantis inside seems more timid and calmer upon touch.", + "rot_spawn": "GROUP_EGG_MANTIS_TAME" + }, + { + "type": "COMESTIBLE", + "id": "egg_antlion_tame", + "name": { "str": "tame antlion egg" }, + "copy-from": "egg_antlion", + "description": "A large, white antlion egg. This one has been carefully tended for. The larva inside seems more timid and calmer upon touch.", + "rot_spawn": "GROUP_EGG_ANTLION_TAME" + }, + { + "type": "COMESTIBLE", + "id": "egg_cicada_tame", + "name": { "str": "tame cicada egg" }, + "copy-from": "egg_cicada", + "description": "The egg of a cicada. This one has been carefully tended for. The cicada inside seems more timid and calmer upon touch.", + "rot_spawn": "GROUP_EGG_CICADA_TAME" + }, + { + "type": "COMESTIBLE", + "id": "egg_water_beetle_tame", + "name": { "str": "tame water beetle egg" }, + "copy-from": "egg_water_beetle", + "description": "The egg of a water beetle. This one has been carefully tended for. The larva inside seems more timid and calmer upon touch.", + "rot_spawn": "GROUP_EGG_WATER_BEETLE_TAME" + }, + { + "type": "COMESTIBLE", + "id": "egg_water_bug_tame", + "name": { "str": "tame water scorpion egg" }, + "copy-from": "egg_water_bug", + "description": "The egg of a water scorpion. This one has been carefully tended for. The water scorpion inside seems more timid and calmer upon touch.", + "rot_spawn": "GROUP_EGG_WATER_BUG_TAME" + }, + { + "type": "COMESTIBLE", + "id": "egg_centipede_tame", + "name": { "str": "tame centipede egg" }, + "copy-from": "egg_centipede", + "description": "The egg of a centipede. This one has been carefully tended for. The centipede larva inside seems more timid and calmer upon touch.", + "rot_spawn": "GROUP_EGG_CENTIPEDE_TAME" + } +] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/items/comestibles/other.json b/data/Mainline_mods/Mods/Tamable_Wildlife/items/comestibles/other.json new file mode 100644 index 000000000..7ebc25987 --- /dev/null +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/items/comestibles/other.json @@ -0,0 +1,25 @@ +[ + { + "id": "sweet_goop", + "type": "COMESTIBLE", + "comestible_type": "FOOD", + "name": { "str_sp": "sweet goop" }, + "looks_like": "birdfood", + "description": "A bunch of sweet stuff with a wet, goopy consistency. Normal bugs would die for this, just hope the mutants will like it as well.", + "weight": "60 g", + "volume": "250 ml", + "price": 20, + "price_postapoc": 25, + "to_hit": -5, + "material": [ "junk" ], + "symbol": ";", + "calories": 400, + "vitamins": [ [ "calcium", 1 ], [ "iron", 7 ] ], + "fun": 5, + "freezing_point": -274, + "color": "brown", + "flags": [ "INEDIBLE", "NUTRIENT_OVERRIDE" ], + "use_action": [ "PETFOOD" ], + "petfood": [ "BUGFOOD" ] + } +] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/mammal.json b/data/Mainline_mods/Mods/Tamable_Wildlife/mammal.json index 5b2bef28b..3ab411636 100644 --- a/data/Mainline_mods/Mods/Tamable_Wildlife/mammal.json +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/mammal.json @@ -19,7 +19,7 @@ "petfood": { "food": [ "DOGFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", - "pet": "The %s happily wags its tail while you pat their head." + "pet": "The %s happily wags its tail while you pat its head." }, "extend": { "flags": [ "CANPLAY" ] } }, @@ -38,7 +38,7 @@ "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", - "pet": "The %s happily wags its tail while you pat their head." + "pet": "The %s happily wags its tail while you pat its head." }, "extend": { "flags": [ "CANPLAY" ] } }, @@ -74,7 +74,7 @@ "petfood": { "food": [ "DOGFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", - "pet": "The %s happily wags its tail while you pat their head." + "pet": "The %s happily wags its tail while you pat its head." }, "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } }, @@ -129,7 +129,7 @@ "petfood": { "food": [ "DOGFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", - "pet": "The %s happily wags its tail while you pat their head." + "pet": "The %s happily wags its tail while you pat its head." }, "extend": { "flags": [ "CANPLAY" ] } }, @@ -141,7 +141,7 @@ "petfood": { "food": [ "DOGFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", - "pet": "The %s happily wags its tail while you pat their head." + "pet": "The %s happily wags its tail while you pat its head." }, "extend": { "flags": [ "CANPLAY" ] } }, @@ -153,7 +153,7 @@ "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", - "pet": "The %s happily wags its tail while you pat their head." + "pet": "The %s happily wags its tail while you pat its head." }, "extend": { "flags": [ "CANPLAY" ] } }, @@ -338,7 +338,7 @@ "petfood": { "food": [ "DOGFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", - "pet": "The %s happily wags its tail while you pat their head." + "pet": "The %s happily wags its tail while you pat its head." }, "//": "A wolf pup that's raised with humans displays signs of both attachment and affection towards their owners, these feelings last into adulthood.", "extend": { "flags": [ "CANPLAY", "DOGFOOD" ] } @@ -350,6 +350,22 @@ "name": { "str_sp": "reindeer" }, "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } }, + { + "id": "mon_tusked_moose_calf", + "type": "MONSTER", + "copy-from": "mon_tusked_moose_calf", + "name": { "str": "tusked moose calf", "str_pl": "tusked moose calves" }, + "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_moose_calf", + "type": "MONSTER", + "copy-from": "mon_moose_calf", + "name": { "str": "moose calf", "str_pl": "moose calves" }, + "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, + "extend": { "flags": [ "CANPLAY" ] } + }, { "id": "mon_reindeer_fawn", "type": "MONSTER", diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/mollusk.json b/data/Mainline_mods/Mods/Tamable_Wildlife/mollusk.json new file mode 100644 index 000000000..dc8dd3c16 --- /dev/null +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/mollusk.json @@ -0,0 +1,78 @@ +[ + { + "id": "mon_snail_larva", + "type": "MONSTER", + "copy-from": "mon_snail_larva", + "name": { "str": "snail larva", "str_pl": "snail larvae" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a mollusk could like you.", + "pet": "The %s slides slowly around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_snail_forest", + "type": "MONSTER", + "copy-from": "mon_snail_forest", + "name": { "str": "big snail" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant mollusk could like you.", + "pet": "The %s slides slowly around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_snail_small", + "type": "MONSTER", + "copy-from": "mon_snail_small", + "name": { "str": "giant snail" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_snail_giant", + "type": "MONSTER", + "copy-from": "mon_snail_giant", + "name": { "str": "colossal snail" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_slug_larva", + "type": "MONSTER", + "copy-from": "mon_slug_larva", + "name": { "str": "slug larva", "str_pl": "slug larvae" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a mollusk could like you.", + "pet": "The %s slides slowly around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_slug_forest", + "type": "MONSTER", + "copy-from": "mon_slug_forest", + "name": { "str": "big slug" }, + "petfood": { + "food": [ "BUGFOOD" ], + "feed": "The %s seems to… uhh, like you? Well, as certainly as you could tell a giant mollusk could like you.", + "pet": "The %s slides slowly around your feet." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_slug_small", + "type": "MONSTER", + "copy-from": "mon_slug_small", + "name": { "str": "giant slug" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_slug_giant", + "type": "MONSTER", + "copy-from": "mon_slug_giant", + "name": { "str": "colossal slug" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + } +] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/monstergroups/eggs.json b/data/Mainline_mods/Mods/Tamable_Wildlife/monstergroups/eggs.json new file mode 100644 index 000000000..0aa3efe2c --- /dev/null +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/monstergroups/eggs.json @@ -0,0 +1,37 @@ +[ + { + "name": "GROUP_EGG_DRAGONFLY_TAME", + "type": "monstergroup", + "monsters": [ { "monster": "mon_dragonfly_naiad_friendly" } ] + }, + { + "name": "GROUP_EGG_MANTIS_TAME", + "type": "monstergroup", + "monsters": [ { "monster": "mon_mantis_nymph_friendly" } ] + }, + { + "name": "GROUP_EGG_ANTLION_TAME", + "type": "monstergroup", + "monsters": [ { "monster": "mon_antlion_larva_friendly" } ] + }, + { + "name": "GROUP_EGG_CICADA_TAME", + "type": "monstergroup", + "monsters": [ { "monster": "mon_cicada_nymph_friendly" } ] + }, + { + "name": "GROUP_EGG_WATER_BEETLE_TAME", + "type": "monstergroup", + "monsters": [ { "monster": "mon_diving_larva_friendly" } ] + }, + { + "name": "GROUP_EGG_WATER_BUG_TAME", + "type": "monstergroup", + "monsters": [ { "monster": "mon_water_scorpion_larva_friendly" } ] + }, + { + "name": "GROUP_EGG_CENTIPEDE_TAME", + "type": "monstergroup", + "monsters": [ { "monster": "mon_centipede_larva_friendly" } ] + } +] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/recipes/nested.json b/data/Mainline_mods/Mods/Tamable_Wildlife/recipes/nested.json new file mode 100644 index 000000000..88608653f --- /dev/null +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/recipes/nested.json @@ -0,0 +1,22 @@ +[ + { + "id": "nested_eggs_tame", + "type": "nested_category", + "activity_level": "MODERATE_EXERCISE", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_OTHER", + "name": "tame eggs", + "description": "Recipes related to taming the eggs of aggressive invertebrates.", + "skill_used": "survival", + "nested_category_data": [ + "egg_dragonfly_tame", + "egg_mantis_tame", + "egg_antlion_tame", + "egg_cicada_tame", + "egg_water_beetle_tame", + "egg_water_bug_tame", + "egg_centipede_tame" + ], + "difficulty": 5 + } +] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/recipes/recipe_egg.json b/data/Mainline_mods/Mods/Tamable_Wildlife/recipes/recipe_egg.json new file mode 100644 index 000000000..79ee8cd39 --- /dev/null +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/recipes/recipe_egg.json @@ -0,0 +1,86 @@ +[ + { + "result": "egg_dragonfly_tame", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "survival", + "difficulty": 5, + "time": "15 m", + "autolearn": true, + "components": [ [ [ "egg_dragonfly", 1 ] ], [ [ "sweet_goop", 10 ] ] ] + }, + { + "result": "egg_mantis_tame", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "survival", + "difficulty": 5, + "time": "15 m", + "autolearn": true, + "components": [ [ [ "egg_mantis", 1 ] ], [ [ "sweet_goop", 10 ] ] ] + }, + { + "result": "egg_antlion_tame", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "survival", + "difficulty": 5, + "time": "15 m", + "autolearn": true, + "components": [ [ [ "egg_antlion", 1 ] ], [ [ "sweet_goop", 10 ] ] ] + }, + { + "result": "egg_cicada_tame", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "survival", + "difficulty": 5, + "time": "15 m", + "autolearn": true, + "components": [ [ [ "egg_cicada", 1 ] ], [ [ "sweet_goop", 10 ] ] ] + }, + { + "result": "egg_water_beetle_tame", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "survival", + "difficulty": 5, + "time": "15 m", + "autolearn": true, + "components": [ [ [ "egg_water_beetle", 1 ] ], [ [ "sweet_goop", 10 ] ] ] + }, + { + "result": "egg_water_bug_tame", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "survival", + "difficulty": 5, + "time": "15 m", + "autolearn": true, + "components": [ [ [ "egg_water_bug", 1 ] ], [ [ "sweet_goop", 10 ] ] ] + }, + { + "result": "egg_centipede_tame", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "survival", + "difficulty": 5, + "time": "15 m", + "autolearn": true, + "components": [ [ [ "egg_centipede", 1 ] ], [ [ "sweet_goop", 10 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/recipes/recipe_food.json b/data/Mainline_mods/Mods/Tamable_Wildlife/recipes/recipe_food.json new file mode 100644 index 000000000..6136b7d80 --- /dev/null +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/recipes/recipe_food.json @@ -0,0 +1,16 @@ +[ + { + "result": "sweet_goop", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_FOOD", + "subcategory": "CSC_FOOD_OTHER", + "skill_used": "cooking", + "difficulty": 1, + "skills_required": [ "survival", 1 ], + "time": "10 m", + "autolearn": true, + "tools": [ [ [ "surface_heat", 4, "LIST" ] ] ], + "components": [ [ [ "sugar_standard", 3, "LIST" ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/Tamable_Wildlife/reptile_amphibian.json b/data/Mainline_mods/Mods/Tamable_Wildlife/reptile_amphibian.json new file mode 100644 index 000000000..8b4e2c6da --- /dev/null +++ b/data/Mainline_mods/Mods/Tamable_Wildlife/reptile_amphibian.json @@ -0,0 +1,226 @@ +[ + { + "id": "mon_frog_small", + "type": "MONSTER", + "copy-from": "mon_frog_small", + "name": { "str": "mutant bullfrog" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_frog_giant", + "type": "MONSTER", + "copy-from": "mon_frog_giant", + "name": { "str": "giant bullfrog" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_frog_mega", + "type": "MONSTER", + "copy-from": "mon_frog_mega", + "name": { "str": "colossal croaker" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_toad_small", + "type": "MONSTER", + "copy-from": "mon_toad_small", + "name": { "str": "huge toad" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_toad_giant", + "type": "MONSTER", + "copy-from": "mon_toad_giant", + "name": { "str": "giant toad" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_leo_frog", + "type": "MONSTER", + "copy-from": "mon_leo_frog", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_pattern_frog", + "type": "MONSTER", + "copy-from": "mon_pattern_frog", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_bullfrog_frog", + "type": "MONSTER", + "copy-from": "mon_bullfrog_frog", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_strange_frog", + "type": "MONSTER", + "copy-from": "mon_strange_frog", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_fowler_toad", + "type": "MONSTER", + "copy-from": "mon_fowler_toad", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_foul_toad", + "type": "MONSTER", + "copy-from": "mon_foul_toad", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_freedom_toad", + "type": "MONSTER", + "copy-from": "mon_freedom_toad", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_odd_toad", + "type": "MONSTER", + "copy-from": "mon_odd_toad", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_peeper_frog", + "type": "MONSTER", + "copy-from": "mon_peeper_frog", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_vocal_frog", + "type": "MONSTER", + "copy-from": "mon_vocal_frog", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_gray_frog", + "type": "MONSTER", + "copy-from": "mon_gray_frog", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_shift_frog", + "type": "MONSTER", + "copy-from": "mon_shift_frog", + "petfood": { + "food": [ "CATTLEFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s hops around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_rattlesnake_s", + "type": "MONSTER", + "copy-from": "mon_rattlesnake_s", + "name": { "str": "rattlesnake snakelet" }, + "petfood": { + "food": [ "CATFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s slithers around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_rattlesnake_big_s", + "type": "MONSTER", + "copy-from": "mon_rattlesnake_big_s", + "name": { "str": "mutant rattlesnake snakelet" }, + "petfood": { + "food": [ "CATFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s slithers around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_rattlesnake", + "type": "MONSTER", + "copy-from": "mon_rattlesnake", + "name": { "str": "rattlesnake" }, + "petfood": { + "food": [ "CATFOOD" ], + "feed": "The %s seems to like you! It lets you pat its head and seems friendly.", + "pet": "The %s slithers around you." + }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_rattlesnake_big", + "type": "MONSTER", + "copy-from": "mon_rattlesnake_big", + "name": { "str": "mutant rattlesnake" }, + "extend": { "flags": [ "CANPLAY" ] } + }, + { + "id": "mon_rattlesnake_giant", + "type": "MONSTER", + "copy-from": "mon_rattlesnake_giant", + "name": { "str": "giant rattlesnake" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + }, + { + "id": "mon_rattlesnake_mega", + "type": "MONSTER", + "copy-from": "mon_rattlesnake_mega", + "name": { "str": "deathrattle serpent" }, + "extend": { "flags": [ "CANPLAY", "PET_MOUNTABLE" ] } + } +] diff --git a/data/Mainline_mods/Mods/TropiCataclysm/blacklists/default_blacklist.json b/data/Mainline_mods/Mods/TropiCataclysm/blacklists/default_blacklist.json index 11baa2319..25044007f 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/blacklists/default_blacklist.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/blacklists/default_blacklist.json @@ -22,10 +22,7 @@ "mon_lemming", "mon_moose", "mon_muskrat", - "mon_nakedmolerat_giant", "mon_wolf", - "mon_reindeer", - "mon_reindeer_fawn", "mon_bear_mutant_3headed", "mon_beaver_mutant_huge", "mon_beaver_mutant_avian", @@ -42,8 +39,7 @@ "mon_zombear", "mon_zombie_pig", "mon_zombeaver", - "mon_zoose", - "mon_zeindeer" + "mon_zoose" ] } ] diff --git a/data/Mainline_mods/Mods/TropiCataclysm/furniture_and_terrain/tropical_terrain_flora.json b/data/Mainline_mods/Mods/TropiCataclysm/furniture_and_terrain/tropical_terrain_flora.json index 4696f33be..92c427bca 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/furniture_and_terrain/tropical_terrain_flora.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/furniture_and_terrain/tropical_terrain_flora.json @@ -1,4 +1,301 @@ [ + { + "type": "terrain", + "id": "t_tree_pachira", + "name": "pachira tree", + "description": "A massive wetland tree belonging to the 'Pachira' genus, also known as the Guyanan Chesnut Tree. If you look closely, you can see some unharvested chestnuts.", + "symbol": "7", + "color": [ "green", "green", "green_yellow", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_pachira_harvested", + "examine_action": "harvest_ter", + "looks_like": "t_tree_hickory", + "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "chestnut_harv" } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_pachira_harvested", + "name": "chestnut tree", + "description": "A massive wetland tree belonging to the 'Pachira' genus, also known as the Guyanan Chesnut tree.", + "symbol": "7", + "color": [ "green", "green", "green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_pachira", + "looks_like": "t_tree_hickory_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_gevuina", + "name": "gevuina tree", + "description": "A stubby tree belonging to the 'Gevuina' genus, also known as the Chilean Hazelnut Tree. If you look closely, you can see some unharvested hazelnuts.", + "symbol": "7", + "color": [ "green", "green", "light_green_yellow", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_gevuina_harvested", + "examine_action": "harvest_ter", + "looks_like": "t_tree_hickory", + "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "hazelnut_harv" } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_gevuina_harvested", + "name": "gevuina tree", + "description": "A stubby tree belonging to the 'Gevuina' genus, also known as the Chilean Hazelnut Tree.", + "symbol": "7", + "color": [ "green", "brown", "green", "green" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_gevuina", + "looks_like": "t_tree_hickory_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_shrub_avellanita", + "name": "avellanita bush", + "looks_like": "t_shrub", + "description": "A species of bush belonging to the 'Avellanita' genus. This plant is native to Chile and has potential due to their edible nuts.", + "//": "Critically Endangered in its homeland but according to studies it may have a use in farming which may give it a chance at survival.", + "symbol": "#", + "color": "brown_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT" ], + "transforms_into": "t_shrub_avellanita_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "spring" ], "id": "shrub_peanut_harv" } ], + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ + { "item": "withered", "prob": 50, "count": [ 1, 2 ] }, + { "item": "leaves", "count": [ 1, 10 ] }, + { "item": "twig", "prob": 80, "count": [ 1, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_shrub_avellanita_harvested", + "name": "avellanita bush", + "looks_like": "t_shrub", + "description": "A species of bush belonging to the 'Avellanita' genus. Currently devoid of nuts.", + "symbol": "#", + "color": "light_gray_green", + "move_cost": 8, + "coverage": 40, + "flags": [ "TRANSPARENT", "CONTAINER", "FLAMMABLE_ASH", "THIN_OBSTACLE", "SHRUB", "SHORT", "HARVESTED" ], + "transforms_into": "t_shrub_avellanita", + "examine_action": "harvested_plant", + "bash": { + "str_min": 4, + "str_max": 60, + "sound": "crunch.", + "sound_fail": "brush.", + "ter_set": "t_dirt", + "items": [ + { "item": "withered", "prob": 50, "count": [ 1, 2 ] }, + { "item": "leaves", "count": [ 1, 10 ] }, + { "item": "twig", "prob": 80, "count": [ 1, 5 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_ceiba", + "name": "ceiba", + "description": "A massive tropical tree belonging to the 'Ceiba' genus. These gigantic trees can be found from Mexico to Southern Chile.", + "symbol": "7", + "color": [ "green", "green", "green", "green" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_acacia", + "name": "acacia", + "description": "A slender subtropical tree belonging to the 'Acacia' genus. Members of this genus are mostly constrained to Australia but have been brought abroad for multiple purposes with some being considered invasive species.", + "symbol": "7", + "color": [ "yellow", "green", "green", "green" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_huizache", + "name": "huizache", + "description": "A slender tropical tree belonging to the 'Vachellia' genus. This genus of plants is related to acacias but are native to the Americas with a wide distribution from Mexico to Brazil and worldwide.", + "symbol": "7", + "color": [ "green", "green", "green", "green" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_parajubea", + "name": "parajubea", + "description": "A medium sized palm tree belonging to the 'Parajubea' genus. There are only three confirmed members of this genus, two of them endangered in Bolivia.", + "symbol": "7", + "color": [ "green", "green", "green", "green" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_guayacan", + "name": "guayacan", + "description": "A medium sized tropical tree belonging to one of four different genera native to the Americas. All well known for their incredibly sturdy wood.", + "symbol": "7", + "color": [ "green", "green", "green", "yellow" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_ficus", + "name": "ficus", + "description": "A large tropical tree belonging to the 'Ficus' genus. This genus has a worldwide distribution, specially known for their fruit known as 'figs' or the latex they produce when cut.", + "//": "pending to add figs and latex functionality to these i think.", + "symbol": "7", + "color": [ "red", "green", "green", "green" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, { "type": "terrain", "id": "t_tree_mango", diff --git a/data/Mainline_mods/Mods/TropiCataclysm/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json b/data/Mainline_mods/Mods/TropiCataclysm/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json index 354be3ea0..4977166da 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json @@ -55,7 +55,7 @@ { "item": "survivormap", "prob": 1 }, { "item": "miner_hat", "prob": 10 }, { "item": "honey_ant", "prob": 30 }, - { "item": "tool_small_primitive_fragmentation_device", "prob": 1 } + { "item": "homemade_bomb_act", "prob": 1 } ] }, { diff --git a/data/Mainline_mods/Mods/TropiCataclysm/items/comestibles/egg.json b/data/Mainline_mods/Mods/TropiCataclysm/items/comestibles/egg.json index c050eed24..96406dc1e 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/items/comestibles/egg.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/items/comestibles/egg.json @@ -231,7 +231,7 @@ "type": "COMESTIBLE", "id": "egg_salamander", "name": { "str": "cluster of salamander eggs", "str_pl": "clusters of salamander eggs" }, - "copy-from": "egg_frog", + "copy-from": "egg_proxy_frog", "description": "A large clump of salamander eggs. They're gelatinous and transparent.", "rot_spawn": "GROUP_EGG_SALAMANDER" }, @@ -239,7 +239,7 @@ "type": "COMESTIBLE", "id": "egg_tadfish", "name": { "str": "cluster of tadfish eggs", "str_pl": "clusters of tadfish eggs" }, - "copy-from": "egg_frog", + "copy-from": "egg_proxy_frog", "description": "A large clump of tadfish eggs. Very similar to other amphibian eggs.", "rot_spawn": "GROUP_EGG_TADFISH" }, diff --git a/data/Mainline_mods/Mods/TropiCataclysm/items/comestibles/seed.json b/data/Mainline_mods/Mods/TropiCataclysm/items/comestibles/seed.json index 940249448..7a99fbfbb 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/items/comestibles/seed.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/items/comestibles/seed.json @@ -8,9 +8,9 @@ "color": "white", "use_action": [ "SEED" ], "description": "Some raw melon seeds.", - "price": 100, - "charges": 2, - "seed_data": { "plant_name": "melon", "fruit": "melon", "fruit_div": 3, "byproducts": [ "withered" ], "grow": "91 days" } + "price": "1 cent", + "seed_data": { "plant_name": "melon", "fruit": "melon", "fruit_div": 3, "byproducts": [ "withered" ], "grow": "91 days" }, + "volume": "2 ml" }, { "type": "COMESTIBLE", @@ -21,9 +21,9 @@ "color": "black", "use_action": [ "SEED" ], "description": "Some raw banana seeds.", - "price": 100, - "charges": 2, - "seed_data": { "plant_name": "banana", "fruit": "banana", "fruit_div": 3, "grow": "91 days" } + "price": "1 cent", + "seed_data": { "plant_name": "banana", "fruit": "banana", "fruit_div": 3, "grow": "91 days" }, + "volume": "2 ml" }, { "type": "COMESTIBLE", @@ -34,8 +34,8 @@ "color": "black", "use_action": [ "SEED" ], "description": "Some raw kiwi seeds.", - "price": 100, - "charges": 2, - "seed_data": { "plant_name": "kiwi", "fruit": "kiwi", "fruit_div": 3, "byproducts": [ "withered" ], "grow": "91 days" } + "price": "1 cent", + "seed_data": { "plant_name": "kiwi", "fruit": "kiwi", "fruit_div": 3, "byproducts": [ "withered" ], "grow": "91 days" }, + "volume": "2 ml" } ] diff --git a/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/eggs.json b/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/eggs.json index 7b32a81b9..6adab36dd 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/eggs.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/eggs.json @@ -4,157 +4,158 @@ "type": "monstergroup", "default": "mon_guinea_fowl_chick", "monsters": [ - { "monster": "mon_guinea_fowl_chick", "freq": 50, "cost_multiplier": 1 }, - { "monster": "mon_quail_chick", "freq": 100, "cost_multiplier": 1 }, - { "monster": "mon_rhea_chick", "freq": 250, "cost_multiplier": 1 } + { "monster": "mon_guinea_fowl_chick", "weight": 50, "cost_multiplier": 1 }, + { "monster": "mon_quail_chick", "weight": 100, "cost_multiplier": 1 }, + { "monster": "mon_rhea_chick", "weight": 250, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_GUINEA_FOWL", "type": "monstergroup", "default": "mon_guinea_fowl_chick", - "monsters": [ { "monster": "mon_guinea_fowl_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_guinea_fowl_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_QUAIL", "type": "monstergroup", "default": "mon_quail_chick", - "monsters": [ { "monster": "mon_quail_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_quail_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_RHEA", "type": "monstergroup", "default": "mon_rhea_chick", - "monsters": [ { "monster": "mon_rhea_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_rhea_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_TOUCAN", "type": "monstergroup", "default": "mon_toucan_chick", - "monsters": [ { "monster": "mon_toucan_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_toucan_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_PARROT", "type": "monstergroup", "default": "mon_parrot_chick", - "monsters": [ { "monster": "mon_parrot_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_parrot_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_BUDGERIGAR", "type": "monstergroup", "default": "mon_budgerigar_chick", - "monsters": [ { "monster": "mon_budgerigar_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_budgerigar_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_COCKATOO", "type": "monstergroup", "default": "mon_cockatoo_chick", - "monsters": [ { "monster": "mon_cockatoo_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_cockatoo_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_MACAW", "type": "monstergroup", "default": "mon_macaw_chick", - "monsters": [ { "monster": "mon_macaw_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_macaw_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_TINAMOU", "type": "monstergroup", "default": "mon_tinamou_chick", - "monsters": [ { "monster": "mon_tinamou_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_tinamou_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_SERIEMA", "type": "monstergroup", "default": "mon_seriema_chick", - "monsters": [ { "monster": "mon_seriema_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_seriema_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_CHACHALACA", "type": "monstergroup", "default": "mon_chachalaca_chick", - "monsters": [ { "monster": "mon_chachalaca_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_chachalaca_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_GUAN", "type": "monstergroup", "default": "mon_guan_chick", - "monsters": [ { "monster": "mon_guan_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_guan_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_CURASSOW", "type": "monstergroup", "default": "mon_curassow_chick", - "monsters": [ { "monster": "mon_curassow_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_curassow_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_FLAMINGO", "type": "monstergroup", "default": "mon_flamingo_chick", - "monsters": [ { "monster": "mon_flamingo_chick", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_flamingo_chick", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_CONSTRICTOR", "type": "monstergroup", "default": "mon_anaconda", "monsters": [ - { "monster": "mon_anaconda", "freq": 100, "cost_multiplier": 1 }, - { "monster": "mon_boa", "freq": 100, "cost_multiplier": 1 } + { "monster": "mon_anaconda", "weight": 40, "cost_multiplier": 1 }, + { "monster": "mon_python", "weight": 20, "cost_multiplier": 1 }, + { "monster": "mon_boa", "weight": 40, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_LIZARD", "type": "monstergroup", "default": "mon_beaded_lizard", - "monsters": [ { "monster": "mon_beaded_lizard", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_beaded_lizard", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_MONITOR", "type": "monstergroup", "default": "mon_monitor_lizard", - "monsters": [ { "monster": "mon_monitor_lizard", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_monitor_lizard", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_IGUANA", "type": "monstergroup", "default": "mon_iguana", - "monsters": [ { "monster": "mon_iguana", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_iguana", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_TURTLE", "type": "monstergroup", "default": "mon_turtle", - "monsters": [ { "monster": "mon_turtle", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_turtle", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_SNAPPER", "type": "monstergroup", "default": "mon_turtle_snapper", - "monsters": [ { "monster": "mon_turtle_snapper", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_turtle_snapper", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_TORTOISE", "type": "monstergroup", "default": "mon_tortoise", - "monsters": [ { "monster": "mon_tortoise", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_tortoise", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_TERMITE", "type": "monstergroup", "default": "mon_termite_nymph", - "monsters": [ { "monster": "mon_termite_nymph", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_termite_nymph", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_TRIFFID", "type": "monstergroup", "default": "mon_triffid_podling", - "monsters": [ { "monster": "mon_triffid_podling", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_triffid_podling", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_FUNGUS", "type": "monstergroup", "default": "mon_fungaloid_saproling", - "monsters": [ { "monster": "mon_fungaloid_saproling", "freq": 100, "cost_multiplier": 1 } ] + "monsters": [ { "monster": "mon_fungaloid_saproling", "weight": 100, "cost_multiplier": 1 } ] }, { "name": "GROUP_EGG_SALAMANDER", diff --git a/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/triffid.json b/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/triffid.json index 39f7ae4a3..ee3d307dc 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/triffid.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/triffid.json @@ -4,6 +4,7 @@ "name": "GROUP_TRIFFID", "default": "mon_triffid", "monsters": [ + { "monster": "mon_triffid_sprig", "weight": 200, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, { "monster": "mon_triffid_young", "weight": 300, "cost_multiplier": 0, "pack_size": [ 2, 4 ] }, { "monster": "mon_fungal_fighter", "weight": 100 }, { "monster": "mon_triffid", "weight": 80 }, @@ -12,6 +13,8 @@ { "monster": "mon_triffid_biter", "weight": 160, "cost_multiplier": 10 }, { "monster": "mon_triffid_acid", "weight": 160, "cost_multiplier": 10 }, { "monster": "mon_triffid_queen", "weight": 60, "cost_multiplier": 20 }, + { "monster": "mon_biollante_sprig", "weight": 50, "cost_multiplier": 0, "pack_size": [ 3, 5 ] }, + { "monster": "mon_biollante_sprout", "weight": 50, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, { "monster": "mon_biollante", "weight": 100, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, { "monster": "mon_triffid_gas", "weight": 100, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, { "monster": "mon_triffid_lasher", "weight": 100, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, @@ -33,6 +36,8 @@ { "monster": "mon_triffid_biter", "weight": 160, "cost_multiplier": 10 }, { "monster": "mon_triffid_acid", "weight": 160, "cost_multiplier": 10 }, { "monster": "mon_triffid_queen", "weight": 60, "cost_multiplier": 20 }, + { "monster": "mon_biollante_sprig", "weight": 100, "cost_multiplier": 0, "pack_size": [ 3, 5 ] }, + { "monster": "mon_biollante_sprout", "weight": 100, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, { "monster": "mon_biollante", "weight": 100, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, { "monster": "mon_triffid_gas", "weight": 100, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, { "monster": "mon_triffid_lasher", "weight": 100, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, @@ -58,6 +63,8 @@ { "monster": "mon_triffid_biter", "weight": 20 }, { "monster": "mon_triffid_acid", "weight": 20 }, { "monster": "mon_triffid_queen", "weight": 10 }, + { "monster": "mon_biollante_sprig", "weight": 20, "cost_multiplier": 0, "pack_size": [ 3, 5 ] }, + { "monster": "mon_biollante_sprout", "weight": 20, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, { "monster": "mon_biollante", "weight": 20 }, { "monster": "mon_triffid_gas", "weight": 20 }, { "monster": "mon_triffid_lasher", "weight": 20 }, @@ -84,6 +91,7 @@ "name": "GROUP_TRIFFID_OUTER", "default": "mon_triffid", "monsters": [ + { "monster": "mon_triffid_sprig", "weight": 80, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, { "monster": "mon_triffid_young", "weight": 100, "cost_multiplier": 0, "pack_size": [ 2, 4 ] }, { "monster": "mon_triffid", "weight": 205 }, { "monster": "mon_triffid", "weight": 300, "cost_multiplier": 2, "pack_size": [ 2, 3 ] }, @@ -91,6 +99,8 @@ { "monster": "mon_vinebeast", "weight": 160, "cost_multiplier": 10 }, { "monster": "mon_triffid_biter", "weight": 160, "cost_multiplier": 10 }, { "monster": "mon_triffid_acid", "weight": 160, "cost_multiplier": 10 }, + { "monster": "mon_biollante_sprig", "weight": 50, "cost_multiplier": 0, "pack_size": [ 3, 5 ] }, + { "monster": "mon_biollante_sprout", "weight": 50, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, { "monster": "mon_biollante", "weight": 50, "cost_multiplier": 2 }, { "monster": "mon_triffid_gas", "weight": 50, "cost_multiplier": 2 }, { "monster": "mon_triffid_lasher", "weight": 50, "cost_multiplier": 2 }, diff --git a/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/wilderness.json b/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/wilderness.json index f78cc96c5..2bb23f6b3 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/wilderness.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/monstergroups/wilderness.json @@ -49,6 +49,13 @@ { "monster": "mon_kangaroo_wallaby", "weight": 12, "cost_multiplier": 2, "pack_size": [ 1, 10 ] }, { "monster": "mon_quail", "weight": 15, "cost_multiplier": 0, "pack_size": [ 1, 7 ] }, { "monster": "mon_iguana", "weight": 15, "cost_multiplier": 10 }, + { "monster": "mon_basiliscus", "weight": 15, "cost_multiplier": 10 }, + { "monster": "mon_corytophanes", "weight": 15, "cost_multiplier": 10 }, + { "monster": "mon_laemanctus", "weight": 15, "cost_multiplier": 10 }, + { "monster": "mon_chameleon", "weight": 15, "cost_multiplier": 10 }, + { "monster": "mon_anole", "weight": 15, "cost_multiplier": 10 }, + { "monster": "mon_gecko", "weight": 15, "cost_multiplier": 10 }, + { "monster": "mon_skink", "weight": 15, "cost_multiplier": 10 }, { "monster": "mon_turtle_wood", "weight": 15, "cost_multiplier": 10 }, { "monster": "mon_tortoise", "weight": 15, "cost_multiplier": 10 }, { "monster": "mon_caecilian", "weight": 15, "cost_multiplier": 10 }, @@ -56,6 +63,7 @@ { "monster": "mon_monitor_lizard", "weight": 15, "cost_multiplier": 10 }, { "monster": "mon_boa", "weight": 15, "cost_multiplier": 10 }, { "monster": "mon_anaconda", "weight": 15, "cost_multiplier": 10 }, + { "monster": "mon_python", "weight": 15, "cost_multiplier": 10 }, { "monster": "mon_tortoise_small", "weight": 3, "pack_size": [ 1, 3 ], "starts": "240 hours" }, { "monster": "mon_tortoise_giant", "weight": 3, "pack_size": [ 1, 3 ], "starts": "480 hours" }, { "monster": "mon_parrot", "weight": 5, "cost_multiplier": 0, "pack_size": [ 1, 14 ] }, @@ -80,13 +88,13 @@ { "monster": "mon_turtle", "weight": 15, "cost_multiplier": 10, "pack_size": [ 1, 3 ] }, { "monster": "mon_flamingo", "weight": 15, "cost_multiplier": 5, "pack_size": [ 1, 4 ] }, { "monster": "mon_capybara", "weight": 15, "cost_multiplier": 5, "pack_size": [ 1, 4 ] }, - { "monster": "mon_goose_golden", "weight": 5, "cost_multiplier": 5 }, { "monster": "mon_caiman", "weight": 10, "cost_multiplier": 5 }, { "monster": "mon_crocodile", "weight": 10, "cost_multiplier": 5 }, { "monster": "mon_turtle_snapper", "weight": 10, "cost_multiplier": 5 }, { "monster": "mon_anaconda", "weight": 10, "cost_multiplier": 5 }, { "monster": "mon_hippo", "weight": 5, "cost_multiplier": 10, "pack_size": [ 1, 3 ] }, { "monster": "mon_caecilian", "weight": 5, "cost_multiplier": 10 }, + { "monster": "mon_basiliscus", "weight": 5, "cost_multiplier": 10 }, { "monster": "mon_tadpole_small", "weight": 5, "cost_multiplier": 10 }, { "monster": "mon_axolotl", "weight": 5, "cost_multiplier": 10 }, { @@ -133,6 +141,7 @@ { "monster": "mon_caiman", "weight": 50, "cost_multiplier": 2 }, { "monster": "mon_turtle", "weight": 60, "cost_multiplier": 2 }, { "monster": "mon_caecilian", "weight": 30, "cost_multiplier": 2 }, + { "monster": "mon_basiliscus", "weight": 30, "cost_multiplier": 2 }, { "monster": "mon_axolotl", "weight": 30, "cost_multiplier": 2 }, { "monster": "mon_capybara", "weight": 60, "cost_multiplier": 2, "pack_size": [ 1, 3 ] }, { "monster": "mon_fish_crab", "weight": 10, "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] }, @@ -147,6 +156,7 @@ "monsters": [ { "monster": "mon_budgerigar", "weight": 35, "cost_multiplier": 0 }, { "monster": "mon_parrot", "weight": 25, "cost_multiplier": 0 }, + { "monster": "mon_iguana", "weight": 25, "cost_multiplier": 0 }, { "monster": "mon_cockatoo", "weight": 25, "cost_multiplier": 0 }, { "monster": "mon_macaw", "weight": 15, "cost_multiplier": 0 } ] @@ -159,6 +169,8 @@ "monsters": [ { "monster": "mon_budgerigar", "weight": 45, "cost_multiplier": 0 }, { "monster": "mon_parrot", "weight": 25, "cost_multiplier": 0 }, + { "monster": "mon_boa", "weight": 25, "cost_multiplier": 0 }, + { "monster": "mon_gecko", "weight": 25, "cost_multiplier": 0 }, { "monster": "mon_cockatoo", "weight": 25, "cost_multiplier": 0 }, { "monster": "mon_guinea_fowl", "weight": 10, "cost_multiplier": 0 }, { "monster": "mon_macaw", "weight": 10, "cost_multiplier": 0 }, @@ -182,6 +194,7 @@ { "monster": "mon_axolotl", "weight": 30, "cost_multiplier": 0 }, { "monster": "mon_tadpole_small", "weight": 30, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, { "monster": "mon_caecilian", "weight": 30, "cost_multiplier": 0 }, + { "monster": "mon_basiliscus", "weight": 30, "cost_multiplier": 0 }, { "monster": "mon_capybara", "weight": 50, "cost_multiplier": 0, "pack_size": [ 1, 3 ] }, { "monster": "mon_caiman", "weight": 40, "cost_multiplier": 0 }, { "monster": "mon_anaconda", "weight": 40, "cost_multiplier": 0 } diff --git a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_fish.json b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_fish.json index 80caf197a..dd5aee73f 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_fish.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_fish.json @@ -81,14 +81,12 @@ "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 7 } ], "dodge": 4, - "armor_bash": 5, - "armor_cut": 1, - "armor_bullet": 1, "luminance": 0, "harvest": "fish_large", "zombify_into": "mon_zhark", "reproduction": { "baby_monster": "mon_shark_pup", "baby_count": 8, "baby_timer": 364 }, - "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "WARM", "SWIMS", "AQUATIC", "WATER_CAMOUFLAGE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "WARM", "SWIMS", "AQUATIC", "WATER_CAMOUFLAGE" ], + "armor": { "bash": 5, "cut": 1, "bullet": 1 } }, { "id": "mon_shark_pup", @@ -342,7 +340,7 @@ "copy-from": "mon_fish_tiny", "name": { "str": "discus", "str_pl": "discuses" }, "reproduction": { "baby_egg": "egg_discus", "baby_count": 2, "baby_timer": 17 }, - "description": "A round and colorful genus of fish native to the Amazon river basin. Very popular in aquariums but expensive to mantain in captivity." + "description": "A round and colorful genus of fish native to the Amazon river basin. Very popular in aquariums but expensive to maintain in captivity." }, { "id": "mon_fry_discus", diff --git a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_fungus.json b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_fungus.json index 330105f8e..55b3f998c 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_fungus.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_fungus.json @@ -14,12 +14,11 @@ "melee_skill": 4, "melee_dice": 2, "melee_dice_sides": 3, - "armor_bash": 3, - "armor_cut": 1, "death_function": { "corpse_type": "NO_CORPSE", "effect": { "id": "death_fungus", "hit_self": true } }, "special_attacks": [ [ "FUNGUS", 200 ], [ "SMASH", 15 ], [ "FUNGUS_BRISTLE", 20 ], [ "FUNGUS_BIG_BLOSSOM", 30 ] ], "extend": { "flags": [ "POISON", "NO_BREATHE" ] }, - "delete": { "flags": [ "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "GROUP_MORALE", "GOODHEARING", "SWARMS" ] } + "delete": { "flags": [ "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "GROUP_MORALE", "GOODHEARING", "SWARMS" ] }, + "armor": { "bash": 3, "cut": 1 } }, { "id": "mon_termite_fungus", @@ -43,10 +42,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 1, - "armor_bash": 3, - "armor_cut": 5, - "armor_bullet": 4, - "armor_elec": 1, "weakpoint_sets": [ "wps_arthropod" ], "families": [ "prof_intro_biology", "prof_wp_basic_bug" ], "vision_day": 3, @@ -54,7 +49,8 @@ "harvest": "arachnid", "special_attacks": [ [ "FUNGUS", 200 ] ], "death_function": { "effect": { "id": "death_fungus", "hit_self": true } }, - "flags": [ "SEES", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ], + "armor": { "bash": 3, "cut": 5, "bullet": 4, "electric": 1 } }, { "id": "mon_scorpion_fungus", @@ -78,14 +74,13 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 1, - "armor_bash": 4, - "armor_cut": 10, "vision_day": 5, "vision_night": 5, "harvest": "arachnid", "special_attacks": [ [ "FUNGUS_INJECT", 10 ] ], "death_function": { "effect": { "id": "death_fungus", "hit_self": true } }, - "flags": [ "SEES", "SMELLS", "HEARS", "BADVENOM", "PARALYZEVENOM", "GRABS", "INSECTICIDEPROOF" ] + "flags": [ "SEES", "SMELLS", "HEARS", "BADVENOM", "PARALYZEVENOM", "GRABS", "INSECTICIDEPROOF" ], + "armor": { "bash": 4, "cut": 10 } }, { "id": "mon_fungaloid_cultivator", @@ -108,14 +103,11 @@ "melee_dice": 1, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 12, - "armor_cut": 16, - "armor_bullet": 13, - "armor_elec": 7, "harvest": "fungaloid", "special_attacks": [ [ "FUNGUS", 30 ] ], "reproduction": { "baby_egg": "fungal_pod", "baby_count": 6, "baby_timer": 3 }, - "flags": [ "HEARS", "SMELLS", "NOHEAD", "QUEEN" ] + "flags": [ "HEARS", "SMELLS", "NOHEAD", "QUEEN" ], + "armor": { "bash": 12, "cut": 16, "bullet": 13, "electric": 7 } }, { "id": "mon_fungaloid_ganglion", @@ -134,21 +126,18 @@ "aggression": 100, "morale": 100, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 12, - "armor_cut": 16, - "armor_bullet": 13, - "armor_elec": 7, "harvest": "fungaloid_mass", "special_attacks": [ [ "FUNGUS", 30 ] ], "reproduction": { "baby_monster": "mon_fungaloid_saproling", "baby_count": 1, "baby_timer": 1 }, "death_function": { "effect": { "id": "death_fungus", "hit_self": true } }, - "flags": [ "HEARS", "SMELLS", "NOHEAD", "QUEEN", "IMMOBILE" ] + "flags": [ "HEARS", "SMELLS", "NOHEAD", "QUEEN", "IMMOBILE" ], + "armor": { "bash": 12, "cut": 16, "bullet": 13, "electric": 7 } }, { "id": "mon_fungaloid_saproling", "type": "MONSTER", "name": { "str": "saproling" }, - "description": "A very small mycoid born out of a fungal pod. Very vulnerable but overtime it will become a proper fungaloid.", + "description": "A very small mycoid born out of a fungal pod. Very vulnerable but over time it will become a proper fungaloid.", "default_faction": "fungus", "species": [ "FUNGUS" ], "volume": "750 ml", @@ -164,10 +153,10 @@ "melee_dice": 1, "melee_dice_sides": 1, "melee_damage": [ { "damage_type": "cut", "amount": 1 } ], - "armor_elec": 1, "harvest": "fungaloid", "upgrades": { "age_grow": 14, "into": "mon_fungaloid_caretaker" }, - "flags": [ "HEARS", "SMELLS", "NOHEAD", "STUMBLES" ] + "flags": [ "HEARS", "SMELLS", "NOHEAD", "STUMBLES" ], + "armor": { "electric": 1 } }, { "id": "mon_fungaloid_caretaker", @@ -188,12 +177,12 @@ "melee_dice": 1, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_elec": 2, "bleed_rate": 75, "harvest": "fungaloid", "upgrades": { "age_grow": 14, "into_group": "GROUP_FUNGAL_CARETAKER" }, "special_attacks": [ [ "FUNGUS_GROWTH", 10000 ] ], - "flags": [ "HEARS", "SMELLS", "NOHEAD" ] + "flags": [ "HEARS", "SMELLS", "NOHEAD" ], + "armor": { "electric": 2 } }, { "id": "mon_fungaloid_lasher", @@ -216,15 +205,12 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 10, - "armor_cut": 4, - "armor_bullet": 3, - "armor_elec": 2, "bleed_rate": 60, "harvest": "fungaloid", "special_attacks": [ [ "FUNGUS_INJECT", 10 ] ], "death_function": { "effect": { "id": "death_fungus", "hit_self": true } }, - "flags": [ "STUMBLES", "POISON", "NO_BREATHE", "NOHEAD" ] + "flags": [ "STUMBLES", "POISON", "NO_BREATHE", "NOHEAD" ], + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 2 } }, { "id": "mon_fungaloid_thorny", @@ -246,15 +232,12 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 10, - "armor_cut": 4, - "armor_bullet": 3, - "armor_elec": 2, "bleed_rate": 60, "harvest": "fungaloid", "special_attacks": [ [ "FUNGUS_BRISTLE", 10 ] ], "death_function": { "effect": { "id": "death_fungus", "hit_self": true } }, - "flags": [ "STUMBLES", "POISON", "NO_BREATHE", "NOHEAD" ] + "flags": [ "STUMBLES", "POISON", "NO_BREATHE", "NOHEAD" ], + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 2 } }, { "id": "mon_fungaloid_slimy", @@ -277,21 +260,18 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 10, - "armor_cut": 4, - "armor_bullet": 3, - "armor_elec": 2, "bleed_rate": 60, "harvest": "fungaloid", "special_attacks": [ [ "FUNGAL_TRAIL", 3 ] ], "death_function": { "effect": { "id": "death_fungus", "hit_self": true } }, - "flags": [ "STUMBLES", "POISON", "NO_BREATHE", "NOHEAD" ] + "flags": [ "STUMBLES", "POISON", "NO_BREATHE", "NOHEAD" ], + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 2 } }, { "id": "mon_fungaloid_breather", "type": "MONSTER", "name": { "str": "fungal dispersor" }, - "description": "A strange fungal creature similar to a moving ballon. It releases a cloud of spores in all directions.", + "description": "A strange fungal creature similar to a moving balloon. It releases a cloud of spores in all directions.", "default_faction": "fungus", "species": [ "FUNGUS" ], "volume": "62500 ml", @@ -307,14 +287,11 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 10, - "armor_cut": 4, - "armor_bullet": 3, - "armor_elec": 2, "bleed_rate": 60, "harvest": "fungaloid", "special_attacks": [ [ "FUNGUS_HAZE", 25 ] ], "death_function": { "effect": { "id": "death_fungus", "hit_self": true } }, - "flags": [ "STUMBLES", "POISON", "NO_BREATHE", "NOHEAD" ] + "flags": [ "STUMBLES", "POISON", "NO_BREATHE", "NOHEAD" ], + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 2 } } ] diff --git a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_insect_spider.json b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_insect_spider.json index 40b22c889..df2752503 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_insect_spider.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_insect_spider.json @@ -32,14 +32,13 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 1, - "armor_bash": 4, - "armor_cut": 10, "vision_day": 5, "vision_night": 5, "harvest": "arachnid", "special_attacks": [ { "id": "impale" } ], "fungalize_into": "mon_scorpion_fungus", - "flags": [ "SEES", "SMELLS", "HEARS", "BADVENOM", "PARALYZEVENOM", "GRABS" ] + "flags": [ "SEES", "SMELLS", "HEARS", "BADVENOM", "PARALYZEVENOM", "GRABS" ], + "armor": { "bash": 4, "cut": 10 } }, { "id": "mon_termite_nymph", @@ -68,7 +67,7 @@ "harvest": "arachnid", "upgrades": { "age_grow": 3, "into": "mon_termite_worker" }, "special_attacks": [ [ "EAT_FOOD", 120 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "LARVA", "CLIMBS", "PATH_AVOID_FIRE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE" ] }, { "id": "mon_termite_worker", @@ -91,10 +90,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 1, - "armor_bash": 5, - "armor_cut": 10, - "armor_bullet": 8, - "armor_elec": 1, "weakpoint_sets": [ "wps_arthropod" ], "families": [ "prof_intro_biology", "prof_wp_basic_bug" ], "vision_day": 5, @@ -104,7 +99,8 @@ "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "PLAYER_WEAK" ], "special_attacks": [ [ "EAT_FOOD", 30 ] ], "fungalize_into": "mon_termite_fungus", - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ], + "armor": { "bash": 5, "cut": 10, "bullet": 8, "electric": 1 } }, { "id": "mon_termite_soldier", @@ -127,10 +123,6 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 2, - "armor_bash": 10, - "armor_cut": 12, - "armor_bullet": 10, - "armor_elec": 2, "bleed_rate": 80, "weakpoint_sets": [ "wps_arthropod" ], "families": [ "prof_intro_biology", "prof_wp_basic_bug" ], @@ -139,19 +131,19 @@ "harvest": "arachnid", "special_attacks": [ { - "type": "bite", + "id": "bite_grab", "cooldown": 20, "accuracy": 6, "damage_max_instance": [ { "damage_type": "stab", "amount": 3, "armor_multiplier": 0.5 }, { "damage_type": "bash", "amount": 5, "armor_multiplier": 0.5 } ], - "effects": [ { "id": "grabbed", "duration": 1000, "bp": "torso" } ], "infection_chance": 50 } ], "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "PLAYER_CLOSE" ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "HEARS", "SMELLS", "GRABS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ], + "armor": { "bash": 10, "cut": 12, "bullet": 10, "electric": 2 } }, { "id": "mon_termite_shooter", @@ -174,10 +166,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 2, - "armor_bash": 10, - "armor_cut": 12, - "armor_bullet": 10, - "armor_elec": 2, "bleed_rate": 80, "weakpoint_sets": [ "wps_arthropod" ], "families": [ "prof_intro_biology", "prof_wp_basic_bug" ], @@ -193,7 +181,8 @@ } ], "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "PLAYER_CLOSE" ], - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ], + "armor": { "bash": 10, "cut": 12, "bullet": 10, "electric": 2 } }, { "id": "mon_termite_alate", @@ -216,10 +205,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 2, - "armor_bash": 10, - "armor_cut": 12, - "armor_bullet": 10, - "armor_elec": 2, "bleed_rate": 80, "weakpoint_sets": [ "wps_arthropod" ], "families": [ "prof_intro_biology", "prof_wp_basic_bug" ], @@ -228,7 +213,8 @@ "harvest": "arachnid", "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "PLAYER_CLOSE" ], "upgrades": { "half_life": 15, "into_group": "GROUP_TERMITE_ALATE" }, - "flags": [ "SEES", "HEARS", "SMELLS", "FLIES", "PATH_AVOID_FIRE", "PATH_AVOID_FALL", "SWARMS", "GROUP_MORALE", "HARDTOSHOOT" ] + "flags": [ "SEES", "HEARS", "SMELLS", "FLIES", "PATH_AVOID_FIRE", "PATH_AVOID_FALL", "SWARMS", "GROUP_MORALE", "HARDTOSHOOT" ], + "armor": { "bash": 10, "cut": 12, "bullet": 10, "electric": 2 } }, { "id": "mon_termite_king", @@ -242,15 +228,16 @@ "symbol": "T", "color": "light_gray", "melee_dice": 2, - "armor_elec": 4, "bleed_rate": 60, + "grab_strength": 75, "special_attacks": [ { "id": "smash", "throw_strength": 48, "cooldown": 30 }, [ "BIO_OP_TAKEDOWN", 20 ], - [ "RANGED_PULL", 20 ], - [ "GRAB", 5 ] + { "id": "ranged_pull", "cooldown": 20 }, + { "id": "grab", "cooldown": 5 } ], - "extend": { "flags": [ "DESTROYS", "PUSH_MON", "PUSH_VEH", "RANGED_ATTACKER" ] } + "extend": { "flags": [ "DESTROYS", "GRABS", "PUSH_MON", "PUSH_VEH", "RANGED_ATTACKER" ] }, + "armor": { "bash": 10, "cut": 12, "bullet": 10, "electric": 4 } }, { "id": "mon_termite_queen", @@ -272,16 +259,13 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 1, - "armor_bash": 6, - "armor_cut": 14, - "armor_bullet": 11, - "armor_elec": 3, "weakpoint_sets": [ "wps_arthropod" ], "families": [ "prof_intro_biology", "prof_wp_basic_bug" ], "harvest": "arachnid", "reproduction": { "baby_egg": "egg_termite", "baby_count": 3, "baby_timer": 1 }, "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT" ], - "flags": [ "SMELLS", "QUEEN", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SMELLS", "QUEEN", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ], + "armor": { "bash": 6, "cut": 14, "bullet": 11, "electric": 3 } }, { "id": "mon_onicophore", @@ -304,7 +288,6 @@ "melee_dice": 4, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 3 } ], - "armor_bash": 2, "harvest": "mutant_meatslug", "special_attacks": [ { @@ -317,7 +300,8 @@ "upgrades": { "half_life": 20, "into": "mon_onicophore_giant" }, "anger_triggers": [ "PLAYER_CLOSE", "PLAYER_WEAK" ], "fear_triggers": [ "FIRE", "HURT" ], - "flags": [ "SEES", "HEARS", "KEENNOSE", "PATH_AVOID_DANGER_1", "SMELLS", "CLIMBS" ] + "flags": [ "SEES", "HEARS", "KEENNOSE", "PATH_AVOID_DANGER_1", "SMELLS", "CLIMBS" ], + "armor": { "bash": 2 } }, { "id": "mon_onicophore_giant", @@ -340,8 +324,6 @@ "melee_dice": 5, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 6, - "armor_cut": 3, "harvest": "meatslug", "special_attacks": [ { @@ -353,6 +335,7 @@ ], "anger_triggers": [ "PLAYER_CLOSE", "PLAYER_WEAK" ], "fear_triggers": [ "FIRE", "HURT" ], - "flags": [ "SEES", "HEARS", "KEENNOSE", "PATH_AVOID_DANGER_1", "SMELLS", "CLIMBS" ] + "flags": [ "SEES", "HEARS", "KEENNOSE", "PATH_AVOID_DANGER_1", "SMELLS", "CLIMBS" ], + "armor": { "bash": 6, "cut": 3 } } ] diff --git a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_mammal.json b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_mammal.json index 7c68e1ba5..9e64be320 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_mammal.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_mammal.json @@ -21,8 +21,6 @@ "melee_dice": 4, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 6, - "armor_cut": 3, "path_settings": { "max_dist": 20 }, "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "MATING_SEASON" ], "baby_flags": [ "SPRING" ], @@ -43,7 +41,8 @@ "GROUP_MORALE", "GOODHEARING", "SWARMS" - ] + ], + "armor": { "bash": 6, "cut": 3 } }, { "id": "mon_jaguar", @@ -141,8 +140,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 2, - "armor_bash": 2, - "armor_cut": 1, "harvest": "mammal_large_boar", "reproduction": { "baby_monster": "mon_tapir_calf", "baby_count": 1, "baby_timer": 330 }, "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 2 }, @@ -151,7 +148,8 @@ "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], "placate_triggers": [ "PLAYER_WEAK" ], "special_attacks": [ [ "EAT_FOOD", 20 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE", "SWIMS" ] + "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "KEENNOSE", "SWIMS" ], + "armor": { "bash": 2, "cut": 1 } }, { "id": "mon_camel", @@ -175,7 +173,6 @@ "melee_dice_sides": 12, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "dodge": 2, - "armor_bash": 2, "anger_triggers": [ "FRIEND_ATTACKED", "HURT" ], "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], "placate_triggers": [ "PLAYER_WEAK" ], @@ -183,7 +180,8 @@ "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 2 }, "special_attacks": [ [ "EAT_CROP", 60 ] ], "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PET_MOUNTABLE", "PATH_AVOID_DANGER_1", "WARM" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PET_MOUNTABLE", "PATH_AVOID_DANGER_1", "WARM" ], + "armor": { "bash": 2 } }, { "id": "mon_coati", @@ -333,9 +331,6 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], "dodge": 1, - "armor_bash": 4, - "armor_cut": 1, - "armor_bullet": 1, "vision_night": 7, "path_settings": { "max_dist": 10 }, "anger_triggers": [ "HURT", "MATING_SEASON" ], @@ -345,7 +340,8 @@ "dissect": "dissect_cattle_sample_large", "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 8 }, "special_attacks": [ [ "EAT_CROP", 60 ] ], - "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "SWIMS" ] + "flags": [ "SEES", "HEARS", "SMELLS", "PET_MOUNTABLE", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "SWIMS" ], + "armor": { "bash": 4, "cut": 1, "bullet": 1 } }, { "id": "mon_peccari_piglet", diff --git a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_reptile_amphibian.json b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_reptile_amphibian.json index a568d04c8..4bddb5616 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_reptile_amphibian.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_reptile_amphibian.json @@ -28,6 +28,195 @@ "placate_triggers": [ "PLAYER_WEAK" ], "flags": [ "ANIMAL", "CLIMBS", "KEENNOSE", "SEES", "HEARS", "SMELLS", "BADVENOM" ] }, + { + "id": "mon_basiliscus", + "type": "MONSTER", + "name": { "str": "basiliscus", "str_pl": "basiliscuses" }, + "description": "A genus of tropical lizards native to Central and South America. It's know worldwide for its ability to run on the water.", + "default_faction": "small_animal", + "bodytype": "lizard", + "categories": [ "WILDLIFE" ], + "species": [ "REPTILE" ], + "volume": "66 ml", + "weight": "66 g", + "hp": 13, + "speed": 110, + "material": [ "iflesh" ], + "symbol": "s", + "color": "brown", + "aggression": -50, + "morale": 60, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "harvest": "mammal_tiny", + "reproduction": { "baby_egg": "egg_lizard", "baby_count": 3, "baby_timer": 10 }, + "fear_triggers": [ "PLAYER_CLOSE" ], + "flags": [ "ANIMAL", "KEENNOSE", "SEES", "HEARS", "SMELLS", "SWIMS" ] + }, + { + "id": "mon_corytophanes", + "type": "MONSTER", + "name": { "str": "turipache" }, + "description": "A member of the Corytophanes family. These lizards can be distinguished for their color changing ability and their crested heads.", + "default_faction": "small_animal", + "bodytype": "lizard", + "categories": [ "WILDLIFE" ], + "species": [ "REPTILE" ], + "volume": "45 ml", + "weight": "45 g", + "hp": 13, + "speed": 110, + "material": [ "iflesh" ], + "symbol": "s", + "color": "brown", + "aggression": -50, + "morale": 60, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "harvest": "mammal_tiny", + "reproduction": { "baby_egg": "egg_lizard", "baby_count": 3, "baby_timer": 10 }, + "fear_triggers": [ "PLAYER_CLOSE" ], + "flags": [ "ANIMAL", "CLIMBS", "KEENNOSE", "SEES", "HEARS", "SMELLS" ] + }, + { + "id": "mon_laemanctus", + "type": "MONSTER", + "name": { "str": "lemacto" }, + "description": "A member of the Laemanctus family. These long legged lizards can be distinguished for their long tails.", + "default_faction": "small_animal", + "bodytype": "lizard", + "categories": [ "WILDLIFE" ], + "species": [ "REPTILE" ], + "volume": "45 ml", + "weight": "45 g", + "hp": 13, + "speed": 110, + "material": [ "iflesh" ], + "symbol": "s", + "color": "brown", + "aggression": -50, + "morale": 60, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "harvest": "mammal_tiny", + "reproduction": { "baby_egg": "egg_lizard", "baby_count": 3, "baby_timer": 10 }, + "fear_triggers": [ "PLAYER_CLOSE" ], + "flags": [ "ANIMAL", "KEENNOSE", "SEES", "HEARS", "SMELLS" ] + }, + { + "id": "mon_chameleon", + "type": "MONSTER", + "name": { "str": "chameleon" }, + "description": "A member of Chamaeleonidae. These lizards are popular worldwide due to their long tongues and color shifting abilities, exported to America via pet trade.", + "default_faction": "small_animal", + "bodytype": "lizard", + "categories": [ "WILDLIFE" ], + "species": [ "REPTILE" ], + "volume": "85 ml", + "weight": "85 g", + "hp": 14, + "speed": 70, + "material": [ "iflesh" ], + "symbol": "s", + "color": "brown", + "aggression": -50, + "morale": 60, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "harvest": "mammal_tiny", + "reproduction": { "baby_egg": "egg_lizard", "baby_count": 3, "baby_timer": 10 }, + "fear_triggers": [ "PLAYER_CLOSE" ], + "flags": [ "ANIMAL", "CLIMBS", "KEENNOSE", "SEES", "HEARS", "SMELLS" ] + }, + { + "id": "mon_anole", + "type": "MONSTER", + "name": { "str": "anole" }, + "description": "A member of the Anolis genus. These tiny lizards are similar to chameleons, living mostly on trees and using a flap on their neck during mating season.", + "default_faction": "small_animal", + "bodytype": "lizard", + "categories": [ "WILDLIFE" ], + "species": [ "REPTILE" ], + "volume": "10 ml", + "weight": "10 g", + "hp": 8, + "speed": 110, + "material": [ "iflesh" ], + "symbol": "s", + "color": "brown", + "aggression": -50, + "morale": 60, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "harvest": "mammal_tiny", + "reproduction": { "baby_egg": "egg_lizard", "baby_count": 3, "baby_timer": 10 }, + "fear_triggers": [ "PLAYER_CLOSE" ], + "flags": [ "ANIMAL", "CLIMBS", "KEENNOSE", "SEES", "HEARS", "SMELLS" ] + }, + { + "id": "mon_gecko", + "type": "MONSTER", + "name": { "str": "gecko" }, + "description": "A member of Gekkota. With over 1400 species this suborder of lizards is found in all the hot parts of the world, mostly known as tree dwellers.", + "default_faction": "small_animal", + "bodytype": "lizard", + "categories": [ "WILDLIFE" ], + "species": [ "REPTILE" ], + "volume": "8 ml", + "weight": "8 g", + "hp": 6, + "speed": 110, + "material": [ "iflesh" ], + "symbol": "s", + "color": "brown", + "aggression": -50, + "morale": 60, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "harvest": "mammal_tiny", + "reproduction": { "baby_egg": "egg_lizard", "baby_count": 3, "baby_timer": 10 }, + "fear_triggers": [ "PLAYER_CLOSE" ], + "flags": [ "ANIMAL", "CLIMBS", "KEENNOSE", "SEES", "HEARS", "SMELLS" ] + }, + { + "id": "mon_skink", + "type": "MONSTER", + "name": { "str": "skink" }, + "description": "A member of Scincidae. With over 1500 species these lizards are found all around the world, usually in burrowing niches.", + "default_faction": "small_animal", + "bodytype": "lizard", + "categories": [ "WILDLIFE" ], + "species": [ "REPTILE" ], + "volume": "66 ml", + "weight": "66 g", + "hp": 13, + "speed": 90, + "material": [ "iflesh" ], + "symbol": "s", + "color": "brown", + "aggression": -50, + "morale": 60, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "harvest": "mammal_tiny", + "reproduction": { "baby_egg": "egg_lizard", "baby_count": 3, "baby_timer": 10 }, + "fear_triggers": [ "PLAYER_CLOSE" ], + "flags": [ "ANIMAL", "KEENNOSE", "SEES", "HEARS", "SMELLS", "DIGS" ] + }, { "id": "mon_iguana", "type": "MONSTER", @@ -107,30 +296,28 @@ "melee_dice_sides": 10, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], "dodge": 2, - "armor_bash": 6, - "armor_cut": 8, - "armor_bullet": 6, "vision_day": 3, "vision_night": 35, "harvest": "mammal_large_leather", "dissect": "dissect_lizard_sample_large", "path_settings": { "max_dist": 8 }, + "grab_strength": 50, "special_attacks": [ { - "type": "bite", + "id": "bite_grab", "cooldown": 20, "accuracy": 6, "damage_max_instance": [ { "damage_type": "stab", "amount": 9, "armor_multiplier": 0.5 }, { "damage_type": "bash", "amount": 27, "armor_multiplier": 0.5 } ], - "effects": [ { "id": "grabbed", "duration": 1000, "bp": "torso" } ], "infection_chance": 50 } ], "anger_triggers": [ "PLAYER_CLOSE", "PLAYER_WEAK", "HURT" ], "fear_triggers": [ "FIRE", "HURT" ], - "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "PATH_AVOID_DANGER_1", "ANIMAL", "PUSH_MON", "SWIMS" ] + "flags": [ "SEES", "HEARS", "GRABS", "SMELLS", "KEENNOSE", "PATH_AVOID_DANGER_1", "ANIMAL", "PUSH_MON", "SWIMS" ], + "armor": { "bash": 6, "cut": 8, "bullet": 6 } }, { "id": "mon_caiman", @@ -155,29 +342,28 @@ "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 3 } ], "dodge": 2, - "armor_bash": 3, - "armor_cut": 4, - "armor_bullet": 3, "vision_day": 3, "vision_night": 35, "harvest": "animal_large_noskin", "path_settings": { "max_dist": 8 }, + "grab_strength": 20, "special_attacks": [ { - "type": "bite", + "id": "bite_grab", "cooldown": 20, "accuracy": 6, "damage_max_instance": [ { "damage_type": "stab", "amount": 4.5, "armor_multiplier": 0.5 }, { "damage_type": "bash", "amount": 7.5, "armor_multiplier": 0.5 } ], - "effects": [ { "id": "grabbed", "duration": 1000, "bp": "torso" } ], + "attack_upper": false, "infection_chance": 50 } ], "anger_triggers": [ "PLAYER_CLOSE", "PLAYER_WEAK", "HURT" ], "fear_triggers": [ "FIRE", "HURT" ], - "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "PATH_AVOID_DANGER_1", "ANIMAL", "PUSH_MON", "SWIMS" ] + "flags": [ "SEES", "HEARS", "SMELLS", "KEENNOSE", "PATH_AVOID_DANGER_1", "ANIMAL", "PUSH_MON", "SWIMS" ], + "armor": { "bash": 3, "cut": 4, "bullet": 3 } }, { "id": "mon_tadpole_small", @@ -226,7 +412,7 @@ "id": "mon_axolotl", "type": "MONSTER", "name": { "str": "axolotl" }, - "description": "A particular neotenic salamander native to Mexico. Very popular as a pet but critically endangered in the wild", + "description": "A particular neotenic salamander native to Mexico. Very popular as a pet but critically endangered in the wild.", "default_faction": "frog", "bodytype": "fish", "categories": [ "WILDLIFE" ], @@ -390,16 +576,14 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], "dodge": 1, - "armor_bash": 2, - "armor_cut": 4, - "armor_bullet": 3, "vision_day": 30, "vision_night": 5, "harvest": "animal_large_noskin", "reproduction": { "baby_egg": "egg_constrictor", "baby_count": 3, "baby_timer": 10 }, "anger_triggers": [ "HURT", "PLAYER_CLOSE" ], "placate_triggers": [ "PLAYER_WEAK" ], - "flags": [ "SEES", "HEARS", "SMELLS", "GRABS", "HARDTOSHOOT", "SWIMS" ] + "flags": [ "SEES", "HEARS", "SMELLS", "GRABS", "HARDTOSHOOT", "SWIMS" ], + "armor": { "bash": 2, "cut": 4, "bullet": 3 } }, { "id": "mon_boa", @@ -424,16 +608,46 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], "dodge": 1, - "armor_bash": 2, - "armor_cut": 4, - "armor_bullet": 3, "vision_day": 30, "vision_night": 5, "harvest": "animal_large_noskin", "reproduction": { "baby_egg": "egg_constrictor", "baby_count": 6, "baby_timer": 10 }, "anger_triggers": [ "HURT", "PLAYER_CLOSE" ], "placate_triggers": [ "PLAYER_WEAK" ], - "flags": [ "SEES", "HEARS", "SMELLS", "GRABS", "HARDTOSHOOT", "CLIMBS" ] + "flags": [ "SEES", "HEARS", "SMELLS", "GRABS", "HARDTOSHOOT", "CLIMBS" ], + "armor": { "bash": 2, "cut": 4, "bullet": 3 } + }, + { + "id": "mon_python", + "type": "MONSTER", + "name": { "str": "python" }, + "description": "Pythons are a family of constrictor snakes native to the old world. They are in most regards similar in niche to boas but are dedicate egg layers.", + "default_faction": "animal", + "bodytype": "snake", + "categories": [ "WILDLIFE" ], + "species": [ "REPTILE" ], + "volume": "75000 ml", + "weight": "75000 g", + "hp": 50, + "speed": 100, + "material": [ "flesh" ], + "symbol": "s", + "color": "brown", + "aggression": -30, + "morale": 60, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], + "dodge": 1, + "vision_day": 30, + "vision_night": 5, + "harvest": "animal_large_noskin", + "reproduction": { "baby_egg": "egg_constrictor", "baby_count": 6, "baby_timer": 10 }, + "anger_triggers": [ "HURT", "PLAYER_CLOSE" ], + "placate_triggers": [ "PLAYER_WEAK" ], + "flags": [ "SEES", "HEARS", "SMELLS", "GRABS", "HARDTOSHOOT" ], + "armor": { "bash": 2, "cut": 4, "bullet": 3 } }, { "id": "mon_turtle", @@ -457,14 +671,12 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 4, "harvest": "mammal_tiny", "reproduction": { "baby_egg": "egg_turtle", "baby_count": 6, "baby_timer": 10 }, "fear_triggers": [ "PLAYER_CLOSE" ], "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, - "flags": [ "ANIMAL", "SWIMS", "KEENNOSE", "SEES", "HEARS", "SMELLS" ] + "flags": [ "ANIMAL", "SWIMS", "KEENNOSE", "SEES", "HEARS", "SMELLS" ], + "armor": { "bash": 4, "cut": 4, "bullet": 4 } }, { "id": "mon_turtle_wood", @@ -495,26 +707,25 @@ "melee_dice": 3, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 5, - "armor_cut": 5, - "armor_bullet": 5, "harvest": "mammal_tiny", "reproduction": { "baby_egg": "egg_snapper", "baby_count": 4, "baby_timer": 10 }, + "grab_strength": 10, "special_attacks": [ { - "type": "bite", + "id": "bite_grab", "cooldown": 20, "accuracy": 6, "damage_max_instance": [ { "damage_type": "stab", "amount": 3, "armor_multiplier": 0.5 }, { "damage_type": "bash", "amount": 5, "armor_multiplier": 0.5 } ], - "effects": [ { "id": "grabbed", "duration": 1000, "bp": "torso" } ], + "attack_upper": false, "infection_chance": 50 } ], "anger_triggers": [ "PLAYER_CLOSE", "HURT" ], - "flags": [ "SEES", "HEARS", "HEARS", "SMELLS", "PATH_AVOID_DANGER_1", "ANIMAL", "SWIMS" ] + "flags": [ "SEES", "HEARS", "GRABS", "HEARS", "SMELLS", "PATH_AVOID_DANGER_1", "ANIMAL", "SWIMS" ], + "armor": { "bash": 5, "cut": 5, "bullet": 5 } }, { "id": "mon_tortoise", @@ -526,15 +737,13 @@ "melee_skill": 2, "melee_dice": 2, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 4, - "armor_bullet": 4, "harvest": "mammal_tiny", "upgrades": { "age_grow": 60, "into": "mon_tortoise_small" }, "reproduction": { "baby_egg": "egg_tortoise", "baby_count": 6, "baby_timer": 10 }, "fear_triggers": [ "PLAYER_CLOSE" ], "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, - "flags": [ "ANIMAL", "KEENNOSE", "SEES", "HEARS", "SMELLS" ] + "flags": [ "ANIMAL", "KEENNOSE", "SEES", "HEARS", "SMELLS" ], + "armor": { "bash": 4, "cut": 4, "bullet": 4 } }, { "id": "mon_tortoise_small", @@ -558,16 +767,14 @@ "melee_dice": 3, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 5, - "armor_cut": 5, - "armor_bullet": 5, "harvest": "animal_large_noskin", "upgrades": { "age_grow": 100, "into": "mon_tortoise_giant" }, "reproduction": { "baby_egg": "egg_tortoise", "baby_count": 6, "baby_timer": 10 }, "anger_triggers": [ "PLAYER_CLOSE" ], "fear_triggers": [ "FIRE", "HURT" ], "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, - "flags": [ "ANIMAL", "KEENNOSE", "SEES", "HEARS", "SMELLS" ] + "flags": [ "ANIMAL", "KEENNOSE", "SEES", "HEARS", "SMELLS" ], + "armor": { "bash": 5, "cut": 5, "bullet": 5 } }, { "id": "mon_tortoise_giant", diff --git a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_triffid.json b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_triffid.json index 9fd98e049..4347e97c0 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_triffid.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/monsters/tropical_triffid.json @@ -20,14 +20,11 @@ "melee_dice": 1, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_bash": 12, - "armor_cut": 16, - "armor_bullet": 13, - "armor_elec": 7, "harvest": "triffid_queen", "special_attacks": [ [ "SPIT_SAP", 5 ] ], "reproduction": { "baby_egg": "triffid_pod", "baby_count": 6, "baby_timer": 3 }, - "flags": [ "HEARS", "SMELLS", "NOHEAD", "PARALYZEVENOM", "QUEEN" ] + "flags": [ "HEARS", "SMELLS", "NOHEAD", "PARALYZEVENOM", "QUEEN" ], + "armor": { "bash": 12, "cut": 16, "bullet": 13, "electric": 7 } }, { "id": "mon_triffid_overqueen", @@ -46,14 +43,11 @@ "aggression": 100, "morale": 100, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 12, - "armor_cut": 16, - "armor_bullet": 13, - "armor_elec": 7, "harvest": "triffid_queen", "special_attacks": [ [ "SPIT_SAP", 5 ] ], "reproduction": { "baby_monster": "mon_triffid_podling", "baby_count": 1, "baby_timer": 1 }, - "flags": [ "HEARS", "SMELLS", "NOHEAD", "PARALYZEVENOM", "QUEEN" ] + "flags": [ "HEARS", "SMELLS", "NOHEAD", "PARALYZEVENOM", "QUEEN" ], + "armor": { "bash": 12, "cut": 16, "bullet": 13, "electric": 7 } }, { "id": "mon_triffid_podling", @@ -75,10 +69,10 @@ "melee_dice": 1, "melee_dice_sides": 1, "melee_damage": [ { "damage_type": "cut", "amount": 1 } ], - "armor_elec": 1, "harvest": "triffid_small", "upgrades": { "age_grow": 14, "into": "mon_triffid_gardenling" }, - "flags": [ "HEARS", "SMELLS", "NOHEAD", "STUMBLES" ] + "flags": [ "HEARS", "SMELLS", "NOHEAD", "STUMBLES" ], + "armor": { "electric": 1 } }, { "id": "mon_triffid_gardenling", @@ -99,13 +93,13 @@ "melee_dice": 1, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], - "armor_elec": 2, "bleed_rate": 75, "harvest": "triffid_paralytic", "upgrades": { "age_grow": 14, "into_group": "GROUP_TRIFFID_GARDENLING" }, "special_attacks": [ [ "TRIFFID_GROWTH", 28800 ] ], "fungalize_into": "mon_fungaloid", - "flags": [ "HEARS", "SMELLS", "NOHEAD", "PARALYZEVENOM" ] + "flags": [ "HEARS", "SMELLS", "NOHEAD", "PARALYZEVENOM" ], + "armor": { "electric": 2 } }, { "id": "mon_triffid_biter", @@ -127,26 +121,23 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 10, - "armor_cut": 4, - "armor_bullet": 3, - "armor_elec": 2, "bleed_rate": 60, "harvest": "triffid_paralytic", + "grab_strength": 30, "special_attacks": [ { - "type": "bite", + "id": "bite_grab", "cooldown": 20, "accuracy": 6, "damage_max_instance": [ { "damage_type": "stab", "amount": 9, "armor_multiplier": 0.5 }, { "damage_type": "bash", "amount": 27, "armor_multiplier": 0.5 } ], - "effects": [ { "id": "grabbed", "duration": 1000, "bp": "torso" } ], "infection_chance": 50 } ], - "flags": [ "SEES", "SMELLS", "BASHES", "GROUP_BASH", "NOHEAD", "PARALYZEVENOM" ] + "flags": [ "SEES", "SMELLS", "GRABS", "BASHES", "GROUP_BASH", "NOHEAD", "PARALYZEVENOM" ], + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 2 } }, { "id": "mon_triffid_acid", @@ -168,14 +159,11 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 10, - "armor_cut": 4, - "armor_bullet": 3, - "armor_elec": 2, "bleed_rate": 60, "harvest": "triffid_paralytic", "special_attacks": [ [ "ACID_BARF", 10 ] ], - "flags": [ "SEES", "SMELLS", "BASHES", "GROUP_BASH", "NOHEAD", "ACIDPROOF", "ACID_BLOOD", "PARALYZEVENOM" ] + "flags": [ "SEES", "SMELLS", "BASHES", "GROUP_BASH", "NOHEAD", "ACIDPROOF", "ACID_BLOOD", "PARALYZEVENOM" ], + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 2 } }, { "id": "mon_triffid_gas", @@ -198,10 +186,6 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 10, - "armor_cut": 4, - "armor_bullet": 3, - "armor_elec": 2, "bleed_rate": 60, "harvest": "biollante", "special_attacks": [ @@ -213,7 +197,8 @@ } ], "death_drops": { "subtype": "collection", "groups": [ [ "biollante", 8 ] ], "//": "80% chance of an item from group biollante" }, - "flags": [ "SEES", "SMELLS", "BASHES", "GROUP_BASH", "NOHEAD", "PARALYZEVENOM" ] + "flags": [ "SEES", "SMELLS", "BASHES", "GROUP_BASH", "NOHEAD", "PARALYZEVENOM" ], + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 2 } }, { "id": "mon_triffid_lasher", @@ -236,14 +221,11 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 10, - "armor_cut": 4, - "armor_bullet": 3, - "armor_elec": 2, "bleed_rate": 60, "harvest": "biollante", "special_attacks": [ { "id": "impale" } ], "death_drops": { "subtype": "collection", "groups": [ [ "biollante", 8 ] ], "//": "80% chance of an item from group biollante" }, - "flags": [ "SEES", "SMELLS", "BASHES", "GROUP_BASH", "NOHEAD", "PARALYZEVENOM" ] + "flags": [ "SEES", "SMELLS", "BASHES", "GROUP_BASH", "NOHEAD", "PARALYZEVENOM" ], + "armor": { "bash": 10, "cut": 4, "bullet": 3, "electric": 2 } } ] diff --git a/data/Mainline_mods/Mods/TropiCataclysm/monsters/zed_plant.json b/data/Mainline_mods/Mods/TropiCataclysm/monsters/zed_plant.json index 04164743c..c2a4bf612 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/monsters/zed_plant.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/monsters/zed_plant.json @@ -121,7 +121,7 @@ "harvest": "exempt", "special_attacks": [ [ "BOOMER", 20 ], [ "scratch", 20 ] ], "death_drops": "mon_zombie_thorny_death_drops", - "death_function": { "effect": { "id": "death_boomer", "hit_self": true }, "message": "A %s explodes!", "corpse_type": "NO_CORPSE" }, + "death_function": { "effect": { "id": "death_boomer", "hit_self": true }, "message": "The %s explodes!", "corpse_type": "NO_CORPSE" }, "upgrades": { "half_life": 14, "into_group": "GROUP_MOSSY_BOOMER_UPGRADE" }, "fungalize_into": "mon_boomer_fungus", "flags": [ @@ -170,7 +170,7 @@ "special_attacks": [ [ "scratch", 20 ] ], "attack_effs": [ { "id": "paralyzepoison", "duration": 33 } ], "death_drops": "mon_zombie_thorny_death_drops", - "death_function": { "effect": { "id": "death_sap", "hit_self": true }, "message": "A %s explodes!", "corpse_type": "NO_CORPSE" }, + "death_function": { "effect": { "id": "death_sap", "hit_self": true }, "message": "The %s explodes!", "corpse_type": "NO_CORPSE" }, "flags": [ "SEES", "HEARS", @@ -212,7 +212,7 @@ "harvest": "exempt", "attack_effs": [ { "id": "paralyzepoison", "duration": 33 } ], "death_drops": "mon_zombie_thorny_death_drops", - "death_function": { "message": "A %s explodes!", "effect": { "id": "death_pollen", "hit_self": true }, "corpse_type": "NO_CORPSE" }, + "death_function": { "message": "The %s explodes!", "effect": { "id": "death_pollen", "hit_self": true }, "corpse_type": "NO_CORPSE" }, "fungalize_into": "mon_zombie_gasbag_fungus", "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "POISON", "NO_BREATHE", "REVIVES", "FILTHY", "PARALYZEVENOM" ] }, @@ -237,12 +237,10 @@ "melee_dice": 3, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 4, - "armor_cut": 6, - "armor_bullet": 5, "vision_night": 4, "harvest": "zombie_thorny", - "special_attacks": [ [ "GRAB", 7 ], [ "scratch", 20 ], [ "PARA_STING", 30 ] ], + "grab_strength": 30, + "special_attacks": [ { "id": "grab", "cooldown": 7 }, { "id": "scratch_humanoid" }, [ "PARA_STING", 30 ] ], "death_drops": "mon_zombie_thorny_death_drops", "burn_into": "mon_zombie_fiend", "upgrades": { "half_life": 21, "into": "mon_hulk_thorns" }, @@ -251,6 +249,7 @@ "HEARS", "SMELLS", "STUMBLES", + "GRABS", "BASHES", "GROUP_BASH", "POISON", @@ -259,7 +258,8 @@ "PUSH_MON", "FILTHY", "PARALYZEVENOM" - ] + ], + "armor": { "bash": 4, "cut": 6, "bullet": 5 } }, { "id": "mon_hulk_thorns", @@ -283,9 +283,6 @@ "melee_dice": 4, "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 8, - "armor_cut": 12, - "armor_bullet": 10, "vision_day": 83, "vision_night": 4, "harvest": "zombie_thorny", @@ -306,7 +303,8 @@ "PUSH_VEH", "FILTHY", "PARALYZEVENOM" - ] + ], + "armor": { "bash": 8, "cut": 12, "bullet": 10 } }, { "id": "mon_shrieker_vines", @@ -334,7 +332,8 @@ "vision_day": 50, "vision_night": 4, "harvest": "zombie_thorny", - "special_attacks": [ [ "SHRIEK", 10 ], [ "GRAB", 7 ], [ "scratch", 20 ] ], + "grab_strength": 20, + "special_attacks": [ [ "SHRIEK", 10 ], { "id": "grab", "cooldown": 7 }, { "id": "scratch_humanoid" } ], "death_drops": "mon_zombie_thorny_death_drops", "burn_into": "mon_zombie_scorched", "fungalize_into": "mon_zombie_fungus", @@ -345,6 +344,7 @@ "SMELLS", "STUMBLES", "WARM", + "GRABS", "BASHES", "GROUP_BASH", "POISON", @@ -424,7 +424,7 @@ "dodge": 2, "vision_night": 3, "harvest": "zombie_thorny", - "special_attacks": [ { "type": "bite", "cooldown": 5 }, [ "GRAB", 7 ], [ "scratch", 20 ] ], + "special_attacks": [ { "id": "bite_humanoid", "cooldown": 5 }, { "id": "grab", "cooldown": 7 }, { "id": "scratch_humanoid" } ], "death_drops": "mon_zombie_swimmer_death_drops", "burn_into": "mon_zombie_scorched", "fungalize_into": "mon_zombie_fungus", @@ -435,6 +435,7 @@ "SMELLS", "STUMBLES", "WARM", + "GRABS", "BASHES", "GROUP_BASH", "POISON", @@ -468,9 +469,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 3, - "armor_bash": 5, - "armor_cut": 2, - "armor_bullet": 2, "weakpoints": [ { "name": "the inside of its mouth", "armor_mult": { "physical": 0 }, "coverage": 2 }, { "name": "the eye", "armor_mult": { "physical": 0 }, "coverage": 1 } @@ -480,9 +478,10 @@ "vision_night": 3, "harvest": "zombie_thorny", "attack_effs": [ { "id": "paralyzepoison", "duration": 33 } ], + "grab_strength": 30, "special_attacks": [ { - "type": "bite", + "id": "bite_humanoid", "cooldown": 4, "accuracy": 5, "damage_max_instance": [ @@ -490,7 +489,7 @@ { "damage_type": "bash", "amount": 10, "armor_multiplier": 0.3 } ] }, - [ "GRAB", 4 ] + { "id": "grab", "cooldown": 4 } ], "death_drops": "mon_zombie_swimmer_death_drops", "burn_into": "mon_zombie_scorched", @@ -500,6 +499,7 @@ "SMELLS", "STUMBLES", "WARM", + "GRABS", "BASHES", "GROUP_BASH", "POISON", @@ -510,6 +510,7 @@ "FILTHY", "WATER_CAMOUFLAGE", "PARALYZEVENOM" - ] + ], + "armor": { "bash": 5, "cut": 2, "bullet": 2 } } ] diff --git a/data/Mainline_mods/Mods/TropiCataclysm/tropical_regional_map_settings.json b/data/Mainline_mods/Mods/TropiCataclysm/tropical_regional_map_settings.json index 8b07d9bac..f69f0782b 100644 --- a/data/Mainline_mods/Mods/TropiCataclysm/tropical_regional_map_settings.json +++ b/data/Mainline_mods/Mods/TropiCataclysm/tropical_regional_map_settings.json @@ -67,6 +67,7 @@ "t_shrub_blackberry": 2, "t_shrub_huckleberry": 2, "t_shrub_peanut": 1, + "t_shrub_avellanita": 1, "t_cholla_cactus": 1, "t_nopal_cactus": 1 }, @@ -77,11 +78,16 @@ "t_tree_blackjack": 10, "t_tree_hickory": 18, "t_tree_hickory_dead": 2, - "t_tree_pine": 9, + "t_tree_ceiba": 9, + "t_tree_acacia": 9, + "t_tree_huizache": 9, "t_tree_deadpine": 1, "t_tree_maple": 7, "t_tree_birch": 7, "t_tree_beech": 7, + "t_tree_parajubea": 7, + "t_tree_guayacan": 7, + "t_tree_ficus": 7, "t_tree_cottonwood": 4, "t_tree_elm": 4, "t_tree_cherry": 4, @@ -94,6 +100,8 @@ "t_tree_chestnut": 10, "t_tree_basswood": 10, "t_tree_hazelnut": 10, + "t_tree_pachira": 10, + "t_tree_gevuina": 10, "t_tree_apple": 10, "t_tree_coffee": 1, "t_tree_apricot": 2, @@ -118,9 +126,17 @@ "t_tree_hickory": 16, "t_tree_walnut": 8, "t_tree_chestnut": 8, + "t_tree_pachira": 8, "t_tree_hazelnut": 2, + "t_tree_gevuina": 2, "t_tree_beech": 2, "t_tree_blackjack": 8, + "t_tree_ceiba": 8, + "t_tree_acacia": 8, + "t_tree_huizache": 8, + "t_tree_parajubea": 8, + "t_tree_guayacan": 8, + "t_tree_ficus": 8, "t_tree_coffee": 2, "t_tree_apple": 2, "t_tree_apricot": 2, @@ -154,7 +170,9 @@ "t_tree_willow": 32, "t_tree_hickory": 16, "t_tree_chestnut": 8, + "t_tree_pachira": 8, "t_tree_blackjack": 8, + "t_tree_ceiba": 8, "t_tree_coffee": 2, "t_tree_elderberry": 2, "t_tree_mulberry": 2, @@ -191,9 +209,11 @@ "t_tree_hickory_dead": 16, "t_tree_walnut": 8, "t_tree_chestnut": 8, + "t_tree_pachira": 8, "t_tree_young": 4, "t_tree_beech": 2, "t_tree_hazelnut": 2, + "t_tree_gevuina": 2, "t_tree_coffee": 2, "t_tree_dead": 4, "t_tree_coconut": 2 @@ -712,7 +732,6 @@ "mx_supplydrop": 5, "mx_portal": 3, "mx_portal_in": 3, - "mx_shia": 1, "mx_jabberwock": 1, "mx_exocrash_1": 1, "mx_helicopter": 1, @@ -786,7 +805,8 @@ "mx_military": 50, "mx_science": 400, "mx_collegekids": 500, - "mx_roadblock": 1000, + "mx_roadblock": 830, + "mx_roadblock_mil": 170, "mx_bandits_block": 800, "mx_drugdeal": 300, "mx_supplydrop": 100, @@ -855,32 +875,7 @@ }, "river": { "chance": 3, "extras": { "mx_reed": 100 } }, "lake_shore": { "chance": 2, "extras": { "mx_reed": 100 } }, - "sewer": { - "chance": 1, - "extras": { - "mx_sewer_round": 40, - "mx_sewer_grid": 20, - "mx_sewer_grid2": 20, - "mx_sewer_mntE": 10, - "mx_sewer_mntW": 10, - "mx_sewer_mntN": 10, - "mx_sewer_mntS": 10, - "mx_sewer_grateE": 10, - "mx_sewer_grateW": 10, - "mx_sewer_grateN": 10, - "mx_sewer_grateS": 10, - "mx_sewer_pipesA": 30, - "mx_sewer_pipesB": 30, - "mx_sewer_pipesC": 30, - "mx_sewer_pipesD": 30, - "mx_sewer_pipesE": 30, - "mx_sewer_pipesF": 30, - "mx_sewer_pipesG": 30, - "mx_sewer_pipesH": 30, - "mx_sewer_pipesI": 30, - "mx_sewer_pipesJ": 30 - } - } + "sewer": { "chance": 80, "extras": { "mx_null": 100 } } }, "city": { "shop_radius": 30, @@ -1021,8 +1016,6 @@ "school": 15, "motel_city": 10, "fishing_pond_city": 10, - "trailerpark_city": 15, - "railroad_city": 5, "overgrownlot": 20, "overtakenlot": 20 }, @@ -1269,7 +1262,8 @@ "public_works": 200, "office_tower": 150, "office_tower_2": 150, - "office_tower_large": 500, + "office_skyscraper": 300, + "office_tower_large": 300, "office_tower_hiddenlab": 50, "mall": 100, "home_improvement_superstore_new": 150, @@ -1310,18 +1304,7 @@ "summer_humidity_manual_mod": 20, "autumn_humidity_manual_mod": 20, "winter_humidity_manual_mod": 0, - "weather_types": [ - "clear", - "sunny", - "cloudy", - "light_drizzle", - "drizzle", - "rain", - "thunder", - "lightning", - "early_portal_storm", - "portal_storm" - ] + "weather_black_list": [ "flurries", "snowing", "snowstorm" ] }, "overmap_feature_flag_settings": { "clear_blacklist": false, "blacklist": [ ], "clear_whitelist": false, "whitelist": [ ] } } diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/README.md b/data/Mainline_mods/Mods/Xedra_Evolved/README.md index 5017933a9..52a83679e 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/README.md +++ b/data/Mainline_mods/Mods/Xedra_Evolved/README.md @@ -1,31 +1,62 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Lore](#lore) -- [I want to believe](#i-want-to-believe) - - [Chapter 1 Hail Arcadia](#chapter-1-hail-arcadia) - - [Shipping manifest](#shipping-manifest) - - +### Agents of Change +I want to take this space to thank GuardianDll for all the time we've talked about what to do in this mod and the work they have put into creating content for this mod. I'd also like to thank TheShadowFerret for patiently reviewing my PRs no matter how hare brained my sentence structure is at any given time. Ramza13 for creating the EOC system that I've used so heavily in this mod and all of the dev team for their assistance in correcting my attempts and sometimes even building c++ functions related to all the mods and systems I work on. # Lore -The logic behind the Xedra Evolved Δ. Imagine if the time from blob contamination to portal storm was basically several decades and portal intrusions built up over that timeframe with contamination zones resulting in parts of our world following other laws of physics. So you have humanity starting to adapt to the dead rising but it takes twelve hours for them to reanimate and sometimes portals to other dimensions open and usually monsters/disease spill out but sometimes riches spill out and the government has projects exploring other dimensions and hunting Exodii nodes for cybernetic parts. +The logic behind the Xedra Evolved Δ. Imagine if the time from blob contamination to portal storm was basically several decades and portal intrusions built up over that timeframe with contamination zones resulting in parts of our world following other laws of physics. So you have humanity starting to adapt to the dead rising but it takes twelve hours for them to reanimate and sometimes portals to other dimensions open and usually monsters/disease spill out but sometimes riches spill out and the government has projects exploring other dimensions and hunting Exodii nodes for cybernetic parts. Then eventually the Cataclysm occurs and Kaiju appear with natural disasters and the dead rise instantly and everything still collapses. But now the Exodii and interdimensional scavengers are here so if you start with CBMs they may recognize that you were part of an organization that hunted them. # I want to believe Classes and scenarios specific to this mod will likely revolve around either investigating Xedra or working for Xedra or another alphabet soup agency. Each section of this mod will expand on various monster of the week ideas. The first set of monsters I'm exploring are what if our world became contaminated by a Nether realm that is the origin of the Kindly Ones, the good people under the hill, the fae. Future sections will revolve around whatever mythos has caught my attention that week and that I can create reasonable content for. ## Chapter 1 Hail Arcadia -The first bit of content for Xedra Evolved revolves around a dimension that's relatively nearby in Nether terms, even pre-portal technology mankind had records of encounters with beings matching the descriptions of these creatures across multiple cultures and times. Future additions will explore other avenues. +The first bit of content for Xedra Evolved revolves around a dimension that's relatively nearby in Nether terms, even pre-portal technology mankind had records of encounters with beings matching the descriptions of these creatures across multiple cultures and times. Future additions will explore other avenues. Welcoming mapgen and monsters in this section. A musician at the Refugee Center might have some knowledge about these creatures. +### Rumours of New Birth +When dimensional seepage began many of the fae returned to their old places of power. This included the elemental fae which were less likely to interact with humans due to a more alien lifecycle. As the cataclysm began most of the fae left for less actively hostile dimensions. In the case of the elemental fae this proves to be a problem as their unborn children aren't carried in the belly of a fae but rather are born over time in sacred locations, known as genius locii. In hidden locations across the Earth a few unlucky elemental fae are waking up to find themselves abandoned in a dying world. Maybe they'll be able to find a way out, one day. +## Chapter 2 Powers beyond mere imagination +This section introduces several magical classes and spells and abilities for the these classes. The player can grasp powers that they never dreamed of before the portals to other worlds started opening. This magical system can be used alongside Magiclysm's but doesn't require it. The goal is for each of the classes to feel different from each other. Currently looking for mapgen locations that could play a good host for the various items that grant these powers. Such as pawn shops, museums and monster lairs. + +## Chapter 3 A Thirst for Blood +The third chapter has brought with it Vampires both as monsters and as a disease that can infect you the player character and render you a being with unnatural powers and thirsts. This section has also added some CBMs and the monsters you can dissect them out of. Looking for more location, similarly themed CBMs and content for Vampire Hunters including NPCs and quests. The ability to consume blood via spell and to use that blood to power new abilities has been added. Vampire traits are a side lane of the mutation code and should be available no matter what threshold you pursue. ### Shipping manifest -14 Monsters -5 professions -3 Map Specials -3 Map Extra -A dozen or so items +Dozens of new monsters +The ability to become a vampire as a side path to standard mutations. Should not interfere with any other mutation paths. +A combat rated mount can be found via a short mission chain. +16 professions +6 Elemental Race Mutation Categories locked to Paraclesian starts, similar to Made of Sugar +Over a dozen Map Specials +5 Map Extra +Dozens of items 2 NPC classes +Several new CBMs 4 Magical classes with unique playstyles and spells. Dreamers, who can summon things from nearby dimensions. Eaters, who consume the substance of dreams for mana and health and abilities to improve their body and banish monsters not native to this dimension. Dreamsmiths are the blacksmiths of dreams and can forge dreamdross into a more durable substance that can be repaired. The Mad Genius is an inventor who borrows the physics of other dimensions to temporarily improve toys and other objects into powerful devices. Eater locks out Dreamer and Mad Genius locks out Dreamsmith. +Dozens of new spells 1 Vehicle +1 new skill +Perks for Bombastic Perks and Xedra Evolved. +Alchemy requires that you also be running bombastic perks. The level five alchemy recipes are taking their time and this PR has gotten too large as it is, for other people to review. There are four levels of Alchemy, level one is slightly buffed versions of common materials and medicines. Level two are more advanced versions of what is available already with on. Some of these substances might allow the imbiber to exceed his normal physical limits or to gain access to more mystical senses. Level three you can make substances that enhance their target to superhuman levels or create materials that exceed normal limitations (supernaturally strong alloys, etc). Level four should have single mutations and attribute increases. Level 5 should have character defining post thresh mutations and effects that transform the PC. Cold Iron is an example of a branching Alchemy specialty that focuses on building gear that targets fae. And a plethora of other effects, furniture/terrain, missions, lore and other things necessary to support the above. + + + + + + + + + + + + + + + + + + + + + + +####SPOILERS +After becoming infected with the vampire virus by being grabbed and bitten by one of the vampire mobs that currently haunt some cathedrals and often roam with feral humans, the PC can either let the disease run it's course or create the sketchy antidote found on vampire corpses. Over the course of roughly 3.3 days per stage you will go through three stages of becoming a vampire. A fourth and fifth stage are currently unobtainable in game and lack any content. Once you become a vampire you will gain a spell that allows you to consume blood. Only human blood will work and it must be consumed via the spell. This is due to limitations in the vitamin system that would otherwise cause normal humans that ate blood to slowly gain vampire effects that they wouldn't be able to reduce ever. If you do not consume *HUMAN* blood regularly *via the spell* you will slowly acquire effects of blood starvation and eventually die. diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/achievements/achievements.json b/data/Mainline_mods/Mods/Xedra_Evolved/achievements/achievements.json index d183ee8fe..3890a3827 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/achievements/achievements.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/achievements/achievements.json @@ -38,6 +38,45 @@ "hidden_by": [ "achievement_kill_10000_changelings" ], "requirements": [ { "event_statistic": "num_avatar_changeling_kills", "is": ">=", "target": 100000 } ] }, + { + "id": "achievement_kill_vampire", + "type": "achievement", + "name": "Arthur 'Art' Holmwood. Avenger of lost innocence.", + "requirements": [ { "event_statistic": "num_avatar_vampire_kills", "is": ">=", "target": 1 } ] + }, + { + "id": "achievement_kill_10_vampires", + "type": "achievement", + "name": "The third Frog brother.", + "requirements": [ { "event_statistic": "num_avatar_vampire_kills", "is": ">=", "target": 10 } ] + }, + { + "id": "achievement_kill_100_vampires", + "type": "achievement", + "name": "Were you chosen as the Slayer?", + "hidden_by": [ "achievement_kill_10_vampires" ], + "requirements": [ { "event_statistic": "num_avatar_vampire_kills", "is": ">=", "target": 100 } ] + }, + { + "id": "achievement_kill_1000_vampires", + "type": "achievement", + "name": "You have an ongoing competition with Blade.", + "requirements": [ { "event_statistic": "num_avatar_vampire_kills", "is": ">=", "target": 1000 } ] + }, + { + "id": "achievement_kill_10000_vampires", + "type": "achievement", + "name": "Founding member of the Hammer and Stake Society", + "hidden_by": [ "achievement_kill_1000_vampires" ], + "requirements": [ { "event_statistic": "num_avatar_vampire_kills", "is": ">=", "target": 10000 } ] + }, + { + "id": "achievement_kill_100000_vampires", + "type": "achievement", + "name": "Van Helsing's mentor.", + "hidden_by": [ "achievement_kill_10000_vampires" ], + "requirements": [ { "event_statistic": "num_avatar_vampire_kills", "is": ">=", "target": 100000 } ] + }, { "id": "achievement_gains_dreamer_trait", "type": "achievement", @@ -94,6 +133,48 @@ } ] }, + { + "id": "avchievement_gains_vampire_trait", + "type": "achievement", + "name": "Welcome to Salem's Lot.", + "requirements": [ + { + "event_statistic": "avatar_last_gains_mutation", + "is": "==", + "target": [ "trait_id", "VAMPIRE" ], + "description": "Developed an unnatural thirst.", + "visible": "when_achievement_completed" + } + ] + }, + { + "id": "avchievement_gains_vampire2_trait", + "type": "achievement", + "name": "John 'Not-A-Vampire-At-All' Smith", + "requirements": [ + { + "event_statistic": "avatar_last_gains_mutation", + "is": "==", + "target": [ "trait_id", "VAMPIRE2" ], + "description": "You could still become a Black Ribboner and join the League of Temperance.", + "visible": "when_achievement_completed" + } + ] + }, + { + "id": "avchievement_gains_vampire3_trait", + "type": "achievement", + "name": "Ivy Tamwood, eat your heart out. 'kisskiss' hand motion.", + "requirements": [ + { + "event_statistic": "avatar_last_gains_mutation", + "is": "==", + "target": [ "trait_id", "VAMPIRE3" ], + "description": "Right on the edge of becoming a true vampire.", + "visible": "when_achievement_completed" + } + ] + }, { "id": "achievement_lvl_1_deduction", "type": "achievement", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/achievements/statistics.json b/data/Mainline_mods/Mods/Xedra_Evolved/achievements/statistics.json index e6b778d67..6e699e1e4 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/achievements/statistics.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/achievements/statistics.json @@ -11,5 +11,18 @@ "stat_type": "count", "event_transformation": "avatar_changeling_kills", "description": { "str": "changeling killed", "str_pl": "changelings killed" } + }, + { + "id": "avatar_vampire_kills", + "type": "event_transformation", + "event_transformation": "avatar_species_kills", + "value_constraints": { "species": { "equals": [ "species_id", "VAMPIRE" ] } } + }, + { + "id": "num_avatar_vampire_kills", + "type": "event_statistic", + "stat_type": "count", + "event_transformation": "avatar_vampire_kills", + "description": { "str": "vampire killed", "str_pl": "vampires killed" } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/addiction_eocs.json b/data/Mainline_mods/Mods/Xedra_Evolved/addiction_eocs.json index 8a0e86c03..c060faece 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/addiction_eocs.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/addiction_eocs.json @@ -3,58 +3,43 @@ "type": "effect_on_condition", "id": "EOC_BLOOD_ADDICTION", "condition": { - "compare_int": [ { "rand": 2000 }, "<=", { "u_val": "addiction_intensity", "addiction": "blood", "mod": { "val": 2000, "step": 20 } } ] + "compare_num": [ { "rand": 2000 }, "<=", { "u_val": "addiction_intensity", "addiction": "blood", "mod": { "val": 2000, "step": 20 } } ] }, "effect": [ - { "u_message": "You want some blood.", "type": "warning" }, - { "u_add_morale": "morale_craving_blood", "bonus": -5, "max_bonus": -30 }, { - "run_eocs": [ - { - "id": "EOC_BLOOD_ADDICTION_EFFECTS", - "condition": { - "and": [ - { - "compare_int": [ - { "u_val": "vitamin", "name": "human_blood_vitamin" }, - ">", - { "u_val": "addiction_intensity", "addiction": "blood", "mod": -10 } - ] - }, - { "compare_int": [ { "rand": 10 }, "<", { "u_val": "addiction_intensity", "addiction": "blood" } ] } - ] - }, - "effect": { - "weighted_list_eocs": [ [ "EOC_BLOOD_ADDICTION_SHAKES", { "const": 10 } ], [ "EOC_BLOOD_ADDICTION_BLIND", { "const": 10 } ] ] - } - }, - { - "id": "EOC_BLOOD_ADDICTION_BLIND", - "condition": { - "and": [ - { "compare_int": [ { "u_val": "addiction_intensity", "addiction": "blood" }, ">=", { "const": 8 } ] }, - { "compare_int": [ { "rand": 392 }, "<", { "u_val": "addiction_intensity", "addiction": "blood" } ] } - ] - }, - "effect": [ - { "u_message": "Your vision goes black as blood fills your thoughts!", "type": "bad" }, - { "u_add_effect": "blind", "duration": "2 minutes" } - ] - }, - { - "id": "EOC_BLOOD_ADDICTION_SHAKES", - "condition": { - "and": [ - { "compare_int": [ { "u_val": "addiction_intensity", "addiction": "blood" }, ">=", { "const": 8 } ] }, - { "compare_int": [ { "rand": 392 }, "<", { "u_val": "addiction_intensity", "addiction": "blood" } ] } - ] - }, - "effect": [ - { "u_message": "Your hands clench uncontrollably as you think about how much you need blood now!", "type": "bad" }, - { "u_add_effect": "shakes", "duration": "2 minutes" } - ] - } - ] + "run_eocs": { + "id": "EOC_BLOOD_ADDICTION_SNIPPET_TYPE", + "condition": { "not": { "u_has_effect": "sleep" } }, + "effect": [ + { "u_message": "blood_addiction", "snippet": true, "type": "warning" }, + { "u_add_morale": "morale_craving_blood", "bonus": -5, "max_bonus": -30 } + ], + "false_effect": [ + { "u_message": "blood_addiction_dream", "snippet": true, "type": "warning" }, + { "u_add_morale": "morale_craving_blood", "bonus": -5, "max_bonus": -30 } + ] + } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LOTUS_ADDICTION", + "condition": { + "compare_num": [ + { "rand": 800 }, + "<=", + { "u_val": "addiction_intensity", "addiction": "lotus_blossom", "mod": { "val": 800, "step": 20 } } + ] + }, + "effect": [ + { + "run_eocs": { + "id": "EOC_LOTUS_ADDICTION_SNIPPET_TYPE", + "condition": { "not": { "u_has_effect": "sleep" } }, + "effect": [ { "u_message": "lotus_addiction", "snippet": true, "type": "warning" } ], + "false_effect": [ { "u_message": "lotus_addiction_dream", "snippet": true, "type": "warning" } ] + } } ] } diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/addictions.json b/data/Mainline_mods/Mods/Xedra_Evolved/addictions.json index 517163bbc..3d952ebdf 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/addictions.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/addictions.json @@ -6,5 +6,14 @@ "type_name": "blood_hunger", "description": "You suffer from a quite unnatural thirst for the blood of your fellow man. Unfortunately, the supply has shrunk by about 99% from a few months ago.", "effect_on_condition": "EOC_BLOOD_ADDICTION" + }, + { + "type": "addiction_type", + "id": "lotus_blossom", + "name": "Lotus Eater", + "type_name": "lotus_eater", + "description": "You ate the lotus, you experienced the universe. You washed the pain away.", + "craving_morale": "morale_craving_lotus_blossom", + "effect_on_condition": "EOC_LOTUS_ADDICTION" } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/ammo_effects.json b/data/Mainline_mods/Mods/Xedra_Evolved/ammo_effects.json new file mode 100644 index 000000000..358f8ddc4 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/ammo_effects.json @@ -0,0 +1,19 @@ +[ + { + "id": "GRENADE_EXPL", + "type": "ammo_effect", + "explosion": { "power": 1200, "max_noise": 70, "distance_factor": 0.4 } + }, + { + "id": "GRENADE_FIRE_EXPL", + "type": "ammo_effect", + "aoe": { "field_type": "fd_fire", "intensity_min": 1, "intensity_max": 1, "size": 5 }, + "explosion": { "power": 250, "distance_factor": 0.7, "fire": true } + }, + { + "id": "GRENADE_ELEC_EXPL", + "type": "ammo_effect", + "do_emp_blast": true, + "aoe": { "field_type": "fd_electricity", "intensity_min": 10, "intensity_max": 10, "chance": 100, "size": 50 } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/body_parts.json b/data/Mainline_mods/Mods/Xedra_Evolved/body_parts.json new file mode 100644 index 000000000..0d06f3887 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/body_parts.json @@ -0,0 +1,181 @@ +[ + { + "id": "karma_arm_up_r", + "type": "body_part", + "name": "upper right karma arm", + "name_multiple": "upper karma arms", + "accusative": { "ctxt": "bodypart_accusative", "str": "upper right karma arm" }, + "accusative_multiple": { "ctxt": "bodypart_accusative", "str": "upper karma arms" }, + "heading": "up. r. karma arm", + "heading_multiple": "up. karma arms", + "encumbrance_text": "Melee combat is hampered.", + "hp_bar_ui_text": "UP R K ARM", + "main_part": "karma_arm_up_r", + "connected_to": "torso", + "opposite_part": "karma_arm_up_l", + "hit_size": 13, + "hit_difficulty": 0.95, + "limb_type": "arm", + "limb_scores": [ [ "manip", 0.1, 0.2 ], [ "lift", 0.5 ], [ "balance", 0.15 ], [ "block", 1.0 ], [ "swim", 0.1 ], [ "crawl", 0.3 ] ], + "flags": [ "IGNORE_TEMP" ], + "side": "right", + "sub_parts": [ "karma_hand" ], + "drench_capacity": 0, + "is_limb": true, + "base_hp": 100, + "smash_efficiency": 1.5, + "smash_message": "You elbow-smash the %s.", + "effects_on_hit": [ + { + "id": "bleed_karma", + "dmg_threshold": 5, + "dmg_scale_increment": 2, + "duration": 5, + "duration_dmg_scaling": 5, + "max_duration": 120 + } + ] + }, + { + "id": "karma_arm_up_l", + "copy-from": "karma_arm_up_r", + "type": "body_part", + "name": "upper left karma arm", + "name_multiple": "upper karma arms", + "accusative": { "ctxt": "bodypart_accusative", "str": "upper left karma arm" }, + "accusative_multiple": { "ctxt": "bodypart_accusative", "str": "upper karma arms" }, + "heading": "up. l. karma arm", + "heading_multiple": "up. karma arms", + "encumbrance_text": "Melee combat is hampered.", + "hp_bar_ui_text": "UP L K ARM", + "main_part": "karma_arm_up_l", + "connected_to": "torso", + "limb_type": "arm", + "opposite_part": "karma_arm_up_r", + "side": "left", + "sub_parts": [ "karma_hand" ] + }, + { + "id": "karma_arm_lw_r", + "copy-from": "karma_arm_up_r", + "type": "body_part", + "name": "lower right karma arm", + "name_multiple": "lower karma arms", + "accusative": { "ctxt": "bodypart_accusative", "str": "lower right karma arm" }, + "accusative_multiple": { "ctxt": "bodypart_accusative", "str": "lower karma arms" }, + "heading": "lw. r. karma arm", + "heading_multiple": "lw. karma arms", + "encumbrance_text": "Melee combat is hampered.", + "hp_bar_ui_text": "LW r K ARM", + "main_part": "karma_arm_lw_r", + "connected_to": "torso", + "limb_type": "arm", + "opposite_part": "karma_arm_lw_l", + "side": "right", + "sub_parts": [ "karma_hand" ] + }, + { + "id": "karma_arm_lw_l", + "copy-from": "karma_arm_up_r", + "type": "body_part", + "name": "lower left karma arm", + "name_multiple": "lower karma arms", + "accusative": { "ctxt": "bodypart_accusative", "str": "lower left karma arm" }, + "accusative_multiple": { "ctxt": "bodypart_accusative", "str": "lower karma arms" }, + "heading": "lw. l. karma arm", + "heading_multiple": "lw. karma arms", + "encumbrance_text": "Melee combat is hampered.", + "hp_bar_ui_text": "LW L K ARM", + "main_part": "karma_arm_lw_l", + "connected_to": "torso", + "limb_type": "arm", + "opposite_part": "karma_arm_lw_r", + "side": "left", + "sub_parts": [ "karma_hand" ] + }, + { + "id": "karma_hand", + "type": "sub_body_part", + "max_coverage": 10, + "parent": "bp_null", + "side": 1, + "opposite": "karma_hand", + "name": "karma hand", + "name_multiple": "karma hands" + }, + { + "id": "stalker_eyes", + "type": "body_part", + "name": "stalker's eyes", + "accusative": { "ctxt": "bodypart_accusative", "str": "stalker's eyes" }, + "heading": "s. eyes", + "heading_multiple": "s. eyes", + "encumbrance_text": "Ranged combat is hampered.", + "encumbrance_limit": 60, + "main_part": "head", + "opposite_part": "stalker_eyes", + "hit_size": 0.5, + "hit_difficulty": 1.15, + "limb_type": "sensor", + "limb_scores": [ [ "vision", 2.0 ], [ "night_vis", 12 ], [ "reaction", 1.4 ] ], + "side": "both", + "base_hp": 60, + "drench_capacity": 0, + "flags": [ "IGNORE_TEMP", "LIMB_UPPER" ], + "smash_message": "You use your flippin' face to smash the %s. EXTREME.", + "sub_parts": [ "stalker_eye", "stalker_eye" ] + }, + { + "id": "stalker_eye", + "type": "sub_body_part", + "max_coverage": 10, + "parent": "bp_null", + "side": 2, + "opposite": "stalker_eye", + "name": "stalker eye", + "name_multiple": "stalker eyes" + }, + { + "id": "devil_tail", + "type": "body_part", + "name": "devil's tail", + "name_multiple": "devil's tails", + "accusative": { "ctxt": "bodypart_accusative", "str": "devil's tail" }, + "accusative_multiple": { "ctxt": "bodypart_accusative", "str": "devil's tails" }, + "heading": "d. tail", + "heading_multiple": "d. tails", + "encumbrance_text": "Melee combat is hampered.", + "hp_bar_ui_text": "D. TAIL", + "main_part": "devil_tail", + "connected_to": "torso", + "opposite_part": "devil_tail", + "hit_size": 13, + "hit_difficulty": 0.95, + "limb_type": "tail", + "limb_scores": [ [ "manip", 0.1, 0.2 ], [ "lift", 0.5 ], [ "balance", 0.7 ], [ "block", 1.0 ], [ "swim", 0.1 ] ], + "flags": [ "IGNORE_TEMP" ], + "side": "right", + "sub_parts": [ "devil_tail_tip" ], + "unarmed_damage": [ + { "damage_type": "cut", "amount": 14 }, + { "damage_type": "bullet", "amount": 1 }, + { "damage_type": "bash", "amount": 1 } + ], + "techniques": [ "tec_devil_tail_puncture", "tec_devil_tail_wide", "tec_devil_tail_grab" ], + "drench_capacity": 0, + "is_limb": true, + "base_hp": 100, + "smash_efficiency": 1.5, + "smash_message": "You smash %s with your tail." + }, + { + "id": "devil_tail_tip", + "type": "sub_body_part", + "max_coverage": 10, + "parent": "bp_null", + "side": 1, + "opposite": "devil_tail_tip", + "name": "devil's tail tip", + "name_multiple": "devil's tail tips" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/damage_types.json b/data/Mainline_mods/Mods/Xedra_Evolved/damage_types.json new file mode 100644 index 000000000..60915654b --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/damage_types.json @@ -0,0 +1,65 @@ +[ + { + "id": "xe_cold_iron_cut_damage", + "type": "damage_type", + "physical": true, + "magic_color": "light_gray", + "name": "cold iron cut", + "skill": "cutting", + "derived_from": [ "cut", 1 ], + "immune_flags": { "character": [ "IRONSWORN" ], "monster": [ "IRONWROUGHT" ] } + }, + { + "id": "xe_cold_iron_cut_damage", + "type": "damage_info_order", + "info_display": "detailed", + "verb": "cutting", + "bionic_info": { "order": 999999, "show_type": false }, + "protection_info": { "order": 999999, "show_type": false }, + "pet_prot_info": { "order": 999999, "show_type": false }, + "melee_combat_info": { "order": 999999, "show_type": false }, + "ablative_info": { "order": 999999, "show_type": false } + }, + { + "id": "xe_cold_iron_bash_damage", + "type": "damage_type", + "physical": true, + "magic_color": "light_gray", + "name": "cold iron bash", + "skill": "bashing", + "derived_from": [ "bash", 1 ], + "immune_flags": { "character": [ "IRONSWORN" ], "monster": [ "IRONWROUGHT" ] } + }, + { + "id": "xe_cold_iron_bash_damage", + "type": "damage_info_order", + "info_display": "detailed", + "verb": "bashing", + "bionic_info": { "order": 999999, "show_type": false }, + "protection_info": { "order": 999999, "show_type": false }, + "pet_prot_info": { "order": 999999, "show_type": false }, + "melee_combat_info": { "order": 999999, "show_type": false }, + "ablative_info": { "order": 999999, "show_type": false } + }, + { + "id": "xe_cold_iron_stab_damage", + "type": "damage_type", + "physical": true, + "magic_color": "light_gray", + "name": "cold iron stab", + "skill": "stabbing", + "derived_from": [ "stab", 1 ], + "immune_flags": { "character": [ "IRONSWORN" ], "monster": [ "IRONWROUGHT" ] } + }, + { + "id": "xe_cold_iron_stab_damage", + "type": "damage_info_order", + "info_display": "detailed", + "verb": "piercing", + "bionic_info": { "order": 999999, "show_type": false }, + "protection_info": { "order": 999999, "show_type": false }, + "pet_prot_info": { "order": 999999, "show_type": false }, + "melee_combat_info": { "order": 999999, "show_type": false }, + "ablative_info": { "order": 999999, "show_type": false } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/disease.json b/data/Mainline_mods/Mods/Xedra_Evolved/disease.json index a0d9c791e..b6a7b21cd 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/disease.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/disease.json @@ -2,6 +2,7 @@ { "type": "disease_type", "id": "fae_food", + "//": "Currently unobtainable due to inability for json effects to cause a character to glow in the dark.", "min_duration": "6 m", "max_duration": "1 h", "min_intensity": 1, diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/dissect.json b/data/Mainline_mods/Mods/Xedra_Evolved/dissect.json new file mode 100644 index 000000000..d8eaccb80 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/dissect.json @@ -0,0 +1,57 @@ +[ + { + "id": "dissect_renfield_bionic_monster", + "type": "harvest", + "message": "You search for any salvageable hardware in what's left of this monstrous ghoul.", + "entries": [ + { + "drop": "bio_power_storage", + "type": "bionic", + "flags": [ "FILTHY", "NO_STERILE", "NO_PACKED" ], + "faults": [ "fault_bionic_salvaged" ] + }, + { + "drop": "bionic_renfield_harvest", + "type": "bionic_group", + "flags": [ "FILTHY", "NO_STERILE", "NO_PACKED" ], + "faults": [ "fault_bionic_salvaged" ] + } + ] + }, + { + "id": "dissect_ierde_single", + "type": "harvest", + "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", + "entries": [ { "drop": "ierde_sample_single", "type": "mutagen_group" } ] + }, + { + "id": "dissect_undine_single", + "type": "harvest", + "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", + "entries": [ { "drop": "undine_sample_single", "type": "mutagen_group" } ] + }, + { + "id": "dissect_arvore_single", + "type": "harvest", + "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", + "entries": [ { "drop": "arvore_sample_single", "type": "mutagen_group" } ] + }, + { + "id": "dissect_salamander_single", + "type": "harvest", + "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", + "entries": [ { "drop": "salamander_sample_single", "type": "mutagen_group" } ] + }, + { + "id": "dissect_homullus_single", + "type": "harvest", + "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", + "entries": [ { "drop": "homullus_sample_single", "type": "mutagen_group" } ] + }, + { + "id": "dissect_sylph_single", + "type": "harvest", + "message": "With cuts and pulls equally similar to both extraction and vandalism, you scrape together the most important parts of the creature.", + "entries": [ { "drop": "sylph_sample_single", "type": "mutagen_group" } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/effects/effect_on_condition.json b/data/Mainline_mods/Mods/Xedra_Evolved/effects/effect_on_condition.json index 98c91deac..c478b3024 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/effects/effect_on_condition.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/effects/effect_on_condition.json @@ -2,6 +2,7 @@ { "type": "effect_on_condition", "id": "blood_spiders_itch", + "//": "Blood spiders effect should bother the player unless they are under the influence of stim_overdose, in which case the blood spiders are quieted.", "recurrence": [ "25 minutes", "1 hours 15 minutes" ], "condition": { "and": [ { "u_has_effect": "blood_spiders" }, { "not": { "u_has_effect": "formication" } } ] }, "deactivate_condition": { "not": { "or": [ { "u_has_effect": "blood_spiders" }, { "u_has_effect": "stim_overdose" } ] } }, @@ -9,5 +10,41 @@ { "u_message": "The spiders in your veins itch!", "type": "bad" }, { "u_add_effect": "formication", "duration": "10 minutes", "target_part": "RANDOM" } ] + }, + { + "type": "effect_on_condition", + "id": "xe_night_messages", + "recurrence": [ "8 hours", "72 hours" ], + "condition": { "and": [ { "one_in_chance": 6 }, { "not": "is_day" }, "u_can_see", { "is_weather": "clear" }, "u_is_outside" ] }, + "effect": [ { "u_message": "XE_NIGHT_MESSAGES_1", "snippet": true } ] + }, + { + "type": "effect_on_condition", + "id": "xe_day_messages", + "recurrence": [ "8 hours", "72 hours" ], + "condition": { "and": [ { "one_in_chance": 6 }, "is_day", "u_can_see", { "is_weather": "clear" }, "u_is_outside" ] }, + "effect": [ { "u_message": "XE_DAY_MESSAGES_1", "snippet": true } ] + }, + { + "type": "effect_on_condition", + "id": "xe_scraggy-boo_messages", + "recurrence": [ "2 hours", "12 hours" ], + "condition": { "u_has_items": { "item": "book_teens_deduction", "count": 1 } }, + "effect": [ { "u_message": "XE_SCRAGGY-BOO_MESSAGES_1", "snippet": true } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_EATER_CHECK", + "global": true, + "recurrence": [ "12 hours", "72 hours" ], + "condition": { "math": [ "u_val('spell_count', 'school: EATER')", ">=", "6" ] }, + "deactivate_condition": { "u_has_trait": "EATER_SIXTH_SENSE" }, + "effect": [ + { + "u_message": "You suddenly realize that your ability to sense the unnatural has expanded to a level beyond those of the normal five senses.", + "type": "good" + }, + { "u_add_trait": "EATER_SIXTH_SENSE" } + ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/effects/effects.json b/data/Mainline_mods/Mods/Xedra_Evolved/effects/effects.json index 1a7f182e1..c59339628 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/effects/effects.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/effects/effects.json @@ -9,6 +9,61 @@ "rating": "good", "base_mods": { "dex_mod": [ 4 ], "speed_mod": [ 250 ] } }, + { + "type": "effect_type", + "id": "buoyant", + "name": [ "Buoyant" ], + "desc": [ "You are more buoyant than before. This will make swimming much easier." ], + "apply_message": "You feel more buoyant!", + "remove_message": "You feel less buoyant.", + "rating": "good", + "max_duration": "8 h", + "limb_score_mods": [ { "limb_score": "swim", "modifier": 2 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "acidic_mist", + "name": [ "Acidic mist" ], + "desc": [ "The mist is burning you!" ], + "apply_message": "The mist is burning you!", + "rating": "bad", + "max_duration": "30 s", + "max_intensity": 5, + "int_dur_factor": "5 s", + "base_mods": { + "hurt_min": [ 1 ], + "hurt_chance": [ 1 ], + "hurt_chance_bot": [ 10 ], + "pain_min": [ 1 ], + "pain_chance": [ 1 ], + "pain_chance_bot": [ 10 ] + }, + "scaling_mods": { "hurt_chance": [ 1 ], "pain_chance": [ 1 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "vamp_blood_weave", + "removes_effects": [ "infected", "bite", "bleed" ], + "rating": "good", + "apply_message": "Your wound closes up and covers over instantly." + }, + { + "type": "effect_type", + "id": "xtr_str_aspirin", + "max_duration": "4 m", + "base_mods": { + "pkill_tick": [ 42 ], + "pkill_min": [ 1 ], + "pkill_max_val": [ 15 ], + "hurt_tick": [ 42 ], + "hurt_min": [ -1 ], + "hurt_max": [ -5 ] + }, + "rating": "good", + "blood_analysis_description": "Strange Painkiller" + }, { "type": "effect_type", "id": "blood_spiders", @@ -17,7 +72,7 @@ "You have contracted an interdimensional disease, specifically Blood Spiders. Symptoms can be alleviated by medication (antiparasitic)." ], "apply_memorial_log": "Caught blood spiders.", - "remove_memorial_log": "Eradicated the spiders in his blood.", + "remove_memorial_log": "Eradicated the spiders in their blood.", "apply_message": "Your veins itch…", "rating": "bad", "resist_traits": [ "PARAIMMUNE", "ACIDBLOOD" ], @@ -36,9 +91,16 @@ }, "blood_analysis_description": "Unknown Hemolytic Parasite" }, + { + "type": "effect_type", + "id": "curesome", + "removes_effects": [ "common_cold", "flu" ], + "base_mods": { "pkill_min": [ 5 ] } + }, { "type": "effect_type", "id": "faewild", + "//": "Should make the player have better perception with a worse dex but should be offset if taken with consumables that grant altered_physics.", "name": [ "glamoured" ], "desc": [ "The world is beautiful and breathtaking but maybe also terrifying." ], "apply_message": "Colors brighten and vision sharpens.", @@ -51,6 +113,7 @@ { "type": "effect_type", "id": "relative_physics", + "//": "Should improve your dex but worsen your mood. Also should resist Hallucinating when on this.", "name": [ "Angled", "Canted", "Mirrored" ], "desc": [ "Your vision suddenly feels as if it shifted down and to the left.", @@ -62,25 +125,8 @@ "decay_messages": [ [ "Your body accepts your presence once more.", "good" ], [ "A mirror cracks in the distance.", "good" ] ], "max_intensity": 3, "rating": "bad", - "base_mods": { - "pain_chance": [ 256 ], - "pain_max_val": [ 15 ], - "pain_min": [ 1, 0 ], - "fatigue_min": [ 10 ], - "fatigue_max": [ 20 ], - "fatigue_chance": [ 900 ], - "h_mod_min": [ -1 ], - "h_mod_min_val": [ 0 ], - "h_mod_chance": [ 900 ] - }, - "scaling_mods": { - "pain_max_val": [ 5 ], - "pain_chance": [ 150 ], - "fatigue_chance": [ -300 ], - "h_mod_min": [ -1 ], - "h_mod_min_val": [ -50 ], - "h_mod_chance": [ -200 ] - }, + "base_mods": { "dex_mod": [ 1 ], "h_mod_min": [ -1 ], "h_mod_min_val": [ 0 ], "h_mod_chance": [ 900 ] }, + "scaling_mods": { "dex_mod": [ 1 ], "h_mod_min": [ -1 ], "h_mod_min_val": [ -50 ], "h_mod_chance": [ -200 ] }, "blood_analysis_description": "Anomalous Readings" }, { @@ -95,7 +141,17 @@ "miss_messages": [ [ "The flames distract you.", 1 ] ], "rating": "bad", "resist_traits": [ "POISRESIST", "VOMITSTOMACH" ], - "//": "Needs to emit light once Mylie unites traits, effects etc 'light_emitted: 3'.", + "max_intensity": 3, + "enchantments": [ + { + "values": [ + { + "value": "LUMINATION", + "add": { "arithmetic": [ { "u_val": "effect_intensity", "effect": "foxfire_imbibed" }, "*", { "const": 50 } ] } + } + ] + } + ], "base_mods": { "per_mod": [ -1 ], "dex_mod": [ -1 ] }, "scaling_mods": { "per_mod": [ -1 ], "dex_mod": [ -1 ] } }, @@ -111,9 +167,41 @@ }, { "type": "effect_type", - "id": "manic_fugue", - "name": [ "Manic Fugue" ], - "desc": [ "Your creative state is happening." ] + "id": "creativity", + "//": "Tracks inventors creative sparks", + "name": [ "One Amazing Idea", "Several Inspired Tangents", "Brimming with Creativity" ], + "desc": [ + "You have one incredibly amazing idea. You think you should research it.", + "You've got a few theories you'd like to explore. Pick laptop, cup of coffee, and research it as proper scientist.", + "Your brain can't hold any more brilliance. To the research table!" + ], + "max_intensity": 3, + "apply_message": "A great idea has illuminated your mind, it's probably a good time to pick up your laptop and do some calculations.", + "rating": "good" + }, + { + "type": "effect_type", + "id": "mental_exhaustion", + "//": "Prevents you from learning new alchemy recipes.", + "name": [ "Mental Exhaustion" ], + "desc": [ "You have recently realized a new alchemical recipe and your thoughts are scattered." ], + "remove_message": "Your mind feels normal enough that you could focus on new alchemy ideas once again.", + "max_intensity": 1, + "rating": "bad" + }, + { + "type": "effect_type", + "id": "dreamer_eff", + "name": [ "Matter Twist", "Matter Deformation", "Dimensional Shift", "Dimensional Chasm", "Reality Gateway" ], + "desc": [ + "Sometimes the world nearby twists. Was it you?", + "Sometimes there is an odd noise you hear. Sounds like a whisper.", + "You feel someone's presences. They are wondering.", + "Random voices jump into your head time to time. Most of them are friendly.", + "You clearly feel the otherworldly presence. They are ready to help you." + ], + "max_intensity": 5, + "rating": "good" }, { "type": "effect_type", @@ -130,7 +218,8 @@ "apply_message": "Your sight adjusts to the darkness.", "remove_message": "The darkness loses its shape and your eyes return to their usual hue.", "rating": "good", - "flags": [ "NIGHT_VISION" ] + "flags": [ "EFFECT_LIMB_SCORE_MOD" ], + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 10 } ] }, { "type": "effect_type", @@ -147,15 +236,17 @@ { "type": "effect_type", "id": "blood_treatment", + "//": "Should reduce and reverse the effects of vampire_virus.", "rating": "good", "blocks_effects": [ "vampire_virus" ], "blood_analysis_description": "Heightened levels of organosulfur compounds, mercury, and silver.", - "max_duration": 86400, + "max_duration": 8640000, "dur_add_perc": 25 }, { "type": "effect_type", "id": "blood_quenched", + "//": "The PC has consumed more human blood than usual. Will slow them down some but gives them more blood vitamin to cast with or to go without consuming blood for longer.", "name": [ "Flush", "Engorged", "Tick-like" ], "rating": "mixed", "max_intensity": 100, @@ -164,9 +255,74 @@ "base_mods": { "speed_mod": [ -10 ], "dex_mod": [ -1 ], "dodge_mod": [ -1 ] }, "scaling_mods": { "speed_mod": [ -20 ], "dex_mod": [ -1 ], "dodge_mod": [ -1 ] } }, + { + "type": "effect_type", + "id": "cheval_overdose", + "//": "Intensity 1 is a standard dosage of the drug. Further intensities reflect taking pills while the first dose hasn't worn off. It is not wise to do so.", + "name": [ "Energized", "Enflamed", "Arythmic", "Tachycardiac" ], + "apply_message": [ + [ "These magickal trucker pills have kicked in and you feel great!", "good" ], + [ + "You shouldn't have taken this many pills. Your skin flushes and your nerves feel like they are on fire.", + "bad" + ], + [ "Your heartbeat doesn't feel normal. Why on earth did you take more of these pills?", "bad" ], + [ + "This might just be it, the big one. With no hospital available you're just going to have to ride it straight through Hell.", + "bad" + ] + ], + "decay_messages": [ + [ + "These magickal trucker pills have worn off and you feel rough. It might be best to go ahead and sleep through the hangover as best you can.", + "bad" + ], + [ + "Aside from any leftover pain and damage that was done to your body by overdosing your feeling pretty good now.", + "good" + ], + [ "Your heartbeat slows into a somewhat normal rhythm but your skin is still on fire.", "good" ], + [ "The pain in your chest subsides but your heart is still beating in a concerning fashion.", "good" ] + ], + "max_intensity": 4, + "blood_analysis_description": "Patient has dangerous levels of multiple chemicals in their blood. Sedation and restraint suggested.", + "base_mods": { + "speed_mod": [ 10 ], + "str_mod": [ 1 ], + "stim_amount": [ 1 ], + "stim_tick": [ 500 ], + "stim_max_val": [ 50 ], + "hurt_chance": [ 1 ], + "hurt_tick": [ 15000 ], + "pain_amount": [ 0 ], + "pain_chance": [ 2 ], + "pain_tick": [ 400 ], + "hurt_amount": [ 1 ] + }, + "scaling_mods": { + "perspiration_amount": [ 6 ], + "perspiration_min": [ 1 ], + "perspiration_chance": [ 2 ], + "perspiration_tick": [ 150 ], + "pain_amount": [ 10 ], + "pain_min": [ 1 ], + "hurt_amount": [ 1 ], + "pain_tick": [ -100 ], + "hurt_tick": [ -4925 ], + "stim_max_val": [ 400 ] + } + }, + { + "type": "effect_type", + "id": "cheval_withdrawal", + "rating": "bad", + "blood_analysis_description": "Patient has multiple byproducts in blood stream suggesting extended drug binge.", + "base_mods": { "speed_mod": [ -15 ], "str_mod": [ -1 ], "stim_amount": [ -1 ], "stim_tick": [ 500 ], "stim_max_val": [ -50 ] } + }, { "type": "effect_type", "id": "poisoned_blood", + "//": "Should happen if you consume blood treatments after gaining Vampire4 trait. Currently unobtainable.", "name": [ "Poisoned blood" ], "desc": [ "You have poisoned your own blood!" ], "miss_messages": [ [ "You feel bad inside.", 1 ] ], @@ -189,6 +345,7 @@ { "type": "effect_type", "id": "poisoned_blood2", + "//": "Should happen if you consume blood treatments after gaining Vampire5 trait. Currently unobtainable.", "rating": "bad", "chance_kill": [ [ 1, 1 ] ], "chance_kill_resist": [ [ 1, 1 ] ], @@ -204,26 +361,29 @@ "desc": [ "Your complexion is wan and spent.", "Your skin is pale and your eyes are thoroughly bloodshot.", - "Your skin is pale and have turned dark red. You feel a constant hunger, like the food you eat is no longer nourishing you." + "Your skin is pale and your eyes have turned dark red. You feel a constant hunger, like the food you eat is no longer nourishing you." + ], + "apply_message": [ + [ "You feel the blood rushing from the wound and then a pressure that reminds you of backwash.", "bad" ], + [ "Your iris slowly turns red from the outside in.", "bad" ], + [ "There is an emptiness in your stomach and soul that can no longer be filled with mortal joys.", "bad" ] ], - "apply_message": "You feel the blood rushing from the wound and then a pressure that reminds you of backwash.", "death_msg": "You succumb to your deadly necrotic condition.", "apply_memorial_log": "Contracted a bloodborne pathogen out of legend.", "remove_memorial_log": "Rid themselves of a horrific curse of the blood.", - "resist_traits": [ "ACIDBLOOD" ], - "resist_effects": [ "blood_treatment", "blood_quenched" ], + "resist_traits": [ "ACIDBLOOD", "BLOOD_OF_SAINTS" ], + "resist_effects": [ "blood_treatment" ], + "blocks_effects": [ "cold", "flu" ], "max_intensity": 3, - "int_add_val": 1, - "int_decay_step": 1, - "int_decay_tick": 2864000, - "rating": "bad", + "//": "Each stage is intended to last 5.3 days. I'm not sure if I've got the decay ticks correct on this.", "blood_analysis_description": "Unknown RNA virus is rewriting sampled blood cells.", - "base_mods": { "speed_mod": [ -10 ], "str_mod": [ -1 ], "dodge_mod": [ -1 ] }, + "base_mods": { "speed_mod": [ -5 ] }, "scaling_mods": { "speed_mod": [ 15 ], "str_mod": [ 1.5 ], "dodge_mod": [ 1.5 ] } }, { "type": "effect_type", "id": "vampire_virus_ascendant", + "//": "Currently unobtainable. Needs to be player choice and significant quest/difficulty to advance to this stage. VAMPIRE4 will be gated behind this.", "name": [ "Terminal Porphyria" ], "desc": [ "Your skin is deathly white and will redden and burn when exposed to the sun." ], "apply_message": "You've chosen to embrace this illness and enhance your curse.", @@ -239,6 +399,7 @@ { "type": "effect_type", "id": "vampire_virus_post_mortal", + "//": "Currently unobtainable. Needs to be player choice and significant quest/difficulty to advance to this stage. VAMPIRE5 will be gated behind this.", "name": [ "Homo sapiens homovorus" ], "desc": [ "Your skin is deathly white, your eyes are solid red except for a huge pupil, the only food you can consume is human blood, and if sunlight hits you that part of your body instantly burns." @@ -257,6 +418,7 @@ { "type": "effect_type", "id": "withering", + "//": "This is the starving effect when the vampire hasn't consumed enough human blood. Should take several days of not consuming blood even if not using any powers.", "name": [ "Sallow", "Hypomia", "Corpse-like", "Eternal Slumber" ], "desc": [ "The absence of raw blood from your diet has left you wan, pale and uncomfortable.", @@ -278,13 +440,13 @@ "str_mod": [ -1 ], "stamina_min": [ -100 ], "stamina_max": [ -200 ], - "stamina_chance": [ 900 ], + "stamina_chance": [ 9000 ], "fatigue_min": [ 10 ], "fatigue_max": [ 20 ], - "fatigue_chance": [ 900 ], + "fatigue_chance": [ 9000 ], "h_mod_min": [ -1 ], "h_mod_min_val": [ 0 ], - "h_mod_chance": [ 900 ] + "h_mod_chance": [ 9000 ] }, "scaling_mods": { "str_mod": [ -2 ], @@ -327,5 +489,664 @@ "stamina_min": [ 40 ], "stamina_chance": [ 2 ] } + }, + { + "id": "eater_lump_pool", + "type": "effect_type", + "name": [ "Dream Gorging" ], + "desc": [ + "You ate a whole dreamdross ingot. It is too much for your body, but for a while you are much stronger, and recover from traumas faster" + ], + "apply_message": "A huge warm wave moves from your stomach through your body.", + "remove_message": "The warm feeling fades away.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "STRENGTH", "add": 6 }, { "value": "REGEN_HP", "multiply": 1 } ] } ] + }, + { + "type": "effect_type", + "id": "blind_rage", + "name": [ "Blind Rage" ], + "desc": [ "Perfect hatred" ], + "//": "Must limit the player's sight to 2-3 tiles (maybe real blind would be cool, but I don't really think it's a good idea (and also I don't know how it interacts with melee (and also the effect is pretty weak for total blindness))), but it's hardcoded atm", + "apply_message": "AAAAARGH!!", + "flags": [ "EFFECT_LIMB_SCORE_MOD" ], + "limb_score_mods": [ { "limb_score": "vision", "modifier": 0.1 }, { "limb_score": "night_vis", "modifier": 0.1 } ], + "base_mods": { "str_mod": [ 6 ], "dex_mod": [ 6 ], "per_mod": [ -8 ] } + }, + { + "type": "effect_type", + "id": "spell_stamina_eff", + "name": [ "Circulatory" ], + "desc": [ "You can't run out of breath." ], + "apply_message": "You feel a deep energy in your muscles, exuberant and coiled.", + "remove_message": "The energy in your body fades away.", + "rating": "good", + "//": "+0.2x smamina regen for each level", + "enchantments": [ + { + "values": [ { "value": "REGEN_STAMINA", "multiply": { "math": [ "u_val('spell_level', 'spell: spell_stamina_wonder') / 5" ] } } ] + } + ] + }, + { + "id": "effect_dodge", + "type": "effect_type", + "name": [ "Dodge" ], + "desc": [ "Shun their attacks." ], + "apply_message": "Your reaction speed is increased.", + "remove_message": "Your reaction speed turns back to normal.", + "rating": "good", + "show_intensity": false, + "//": "+1 dodge initially, +1 each 6 levels", + "enchantments": [ + { + "values": [ { "value": "BONUS_DODGE", "add": { "math": [ "(u_val('spell_level', 'spell: spell_dodge') / 6 ) + 1" ] } } ] + } + ] + }, + { + "id": "effect_endurance", + "type": "effect_type", + "name": [ "Endurance" ], + "desc": [ "Take the blows. Don’t let the world kill you. Your skin can stop a few attacks." ], + "apply_message": "Your sense of touch is blunted for a bit, but your skin feels more dense.", + "remove_message": "The sturdy feeling is gone.", + "rating": "good", + "show_intensity": false, + "//": "+1 armor for each lvl", + "enchantments": [ + { + "values": [ + { "value": "ARMOR_BASH", "add": { "math": [ "-1 * u_val('spell_level', 'spell: spell_endurance')" ] } }, + { "value": "ARMOR_CUT", "add": { "math": [ "-1 * u_val('spell_level', 'spell: spell_endurance')" ] } }, + { "value": "ARMOR_STAB", "add": { "math": [ "-1 * u_val('spell_level', 'spell: spell_endurance')" ] } }, + { "value": "ARMOR_BULLET", "add": { "math": [ "-1 * u_val('spell_level', 'spell: spell_endurance')" ] } }, + { "value": "ARMOR_ACID", "add": { "math": [ "-1 * u_val('spell_level', 'spell: spell_endurance')" ] } }, + { "value": "ARMOR_BIO", "add": { "math": [ "-1 * u_val('spell_level', 'spell: spell_endurance')" ] } }, + { "value": "ARMOR_COLD", "add": { "math": [ "-1 * u_val('spell_level', 'spell: spell_endurance')" ] } }, + { "value": "ARMOR_ELEC", "add": { "math": [ "-1 * u_val('spell_level', 'spell: spell_endurance')" ] } }, + { "value": "ARMOR_HEAT", "add": { "math": [ "-1 * u_val('spell_level', 'spell: spell_endurance')" ] } } + ] + } + ] + }, + { + "id": "spell_melee_damage", + "type": "effect_type", + "name": [ "Physical Instrument" ], + "desc": [ + "Your body is a tool of destruction. Use it effectively. Your attacks are faster and deadlier, and your dodging ability is better." + ], + "apply_message": "You can feel a bubbling energy in your muscles.", + "remove_message": "The feelings in your muscles subside.", + "rating": "good", + "show_intensity": false, + "//": "+2 atk speed for each level, +1 dodge each 10 levels, +5% melee damage every level", + "enchantments": [ + { + "values": [ + { "value": "ATTACK_SPEED", "add": { "math": [ "u_val('spell_level', 'spell: spell_melee_damage') * 2" ] } }, + { "value": "BONUS_DODGE", "add": { "math": [ "u_val('spell_level', 'spell: spell_melee_damage') / 10" ] } }, + { + "value": "MELEE_DAMAGE", + "multiply": { "math": [ "u_val('spell_level', 'spell: spell_melee_damage') / 20" ] } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "spell_speed_eff", + "name": [ "Rush" ], + "desc": [ "A burst of speed." ], + "apply_message": "You feel your legs are much longer now.", + "remove_message": "Your body shrinks back into its normal space.", + "rating": "good", + "show_intensity": false, + "//": "+5 speed for each level", + "enchantments": [ + { "values": [ { "value": "SPEED", "add": { "math": [ "u_val('spell_level', 'spell: spell_speed_wonder') * 5" ] } } ] } + ] + }, + { + "id": "effect_weakening", + "type": "effect_type", + "name": [ "Weakness" ], + "desc": [ "Your body is slow." ], + "rating": "bad", + "show_intensity": false, + "max_intensity": 2, + "int_add_val": 1, + "//": "The original idea was to make an enchantment, that adds ARMOR_BASH enchantment value, so monsters will take more damage when you attack them, but sadly enchantments now works only with player's avatar, and not with monsters. So now it's a boring slowdown.", + "base_mods": { "speed_mod": [ -33 ] }, + "scaling_mods": { "speed_mod": [ -33 ] } + }, + { + "type": "effect_type", + "id": "spell_unbreakable_eff", + "name": [ "" ], + "desc": [ "" ], + "apply_message": "You are the only who can control your body now.", + "remove_message": "External forces apply to your body again.", + "blocks_effects": [ "grabbed" ], + "rating": "good", + "enchantments": [ { "mutations": [ "eater_unbreakable" ] } ] + }, + { + "type": "effect_type", + "id": "mutagen_earthkin", + "name": [ "Ierde Mutation", "Ierde Transformation", "Ierde Metamorphosis" ], + "desc": [ + "You consumed Ierde destiny draught.", + "You consumed a large amount of Ierde destiny draught.", + "You consumed a life-changing amount of Ierde destiny draught." + ], + "max_intensity": 3, + "resist_traits": [ "THRESH_IERDE" ], + "base_mods": { + "hurt_min": [ 1 ], + "hurt_max": [ 2 ], + "hurt_chance": [ -22 ], + "hurt_tick": [ 75 ], + "pain_min": [ 1 ], + "pain_max": [ 2 ], + "pain_chance": [ 100 ], + "pain_tick": [ 75 ] + }, + "scaling_mods": { "hurt_chance": [ 21, 0 ], "pain_chance": [ -30 ] }, + "rating": "bad", + "blood_analysis_description": "Anomalous silicon content in blood sample" + }, + { + "id": "eater_unbreakable", + "type": "mutation", + "name": { "str": "Unbreakable" }, + "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, + "description": "Nothing can slow you down, and your pain sensations are dull.", + "enchantments": [ { "values": [ { "value": "PAIN", "multiply": -1 } ] } ], + "flags": [ "STEADY" ] + }, + { + "type": "effect_type", + "id": "wicked_quick_hands", + "name": [ "Wicked Quick Hands" ], + "desc": [ "Your hands move wicked quick!" ], + "apply_message": "Your reflexes are heightened!", + "remove_message": "Your reflexes return to normal.", + "rating": "good", + "removes_effects": [ "terrible_strength" ], + "base_mods": { "dex_mod": [ 4 ] } + }, + { + "type": "effect_type", + "id": "terrible_strength", + "name": [ "Terrible Strength" ], + "desc": [ "You have a terrible strength!" ], + "apply_message": "You feel strong!", + "remove_message": "Your strength deflates.", + "rating": "good", + "removes_effects": [ "wicked_quick_hands" ], + "base_mods": { "str_mod": [ 4 ] } + }, + { + "id": "bleed_karma", + "type": "effect_type", + "name": [ "" ], + "desc": [ "" ], + "//": "Just to make karma arms drop a proper liquid when damaged", + "show_intensity": false, + "show_in_info": false, + "enchantments": [ { "emitter": "emit_blood_karma" } ] + }, + { + "type": "effect_type", + "id": "natures_commune", + "name": [ "Commune with Nature" ], + "desc": [ "You are in tune with the natural world, drawing strength from it and calming natural animals." ], + "apply_message": "You can feel the lifeblood of nature all around, welcoming you as kin.", + "remove_message": "Your communion with nature fades.", + "rating": "good", + "max_duration": "360 m", + "dur_add_perc": 5, + "base_mods": { "health_min": [ 1 ], "health_chance": [ 50 ], "h_mod_min": [ 1 ], "h_mod_chance": [ 100 ], "health_tick": [ 60 ] } + }, + { + "type": "effect_type", + "id": "effect_hungry_roots", + "name": [ "Hungry Thirsty Roots" ], + "desc": [ "Roots and vines clutch at you." ], + "max_intensity": 4, + "int_add_val": 1, + "apply_message": "Roots and vines entangle your foes to slow them!", + "remove_message": "The roots and vines wither up and die.", + "base_mods": { "speed_mod": [ -30 ] }, + "scaling_mods": { "speed_mod": [ -5 ] }, + "flags": [ "EFFECT_IMPEDING" ] + }, + { + "type": "effect_type", + "id": "arvore_verdant_infusion", + "name": [ "Verdant Infusion" ], + "desc": [ "You are filled with the vitality of nature." ], + "apply_message": "You can feel the power of nature flowing through you.", + "remove_message": "The power of nature fades from you.", + "rating": "good", + "max_duration": "12 h", + "base_mods": { + "str_mod": [ 1 ], + "health_min": [ 1 ], + "health_chance": [ 30 ], + "h_mod_min": [ 1 ], + "h_mod_chance": [ 80 ], + "health_tick": [ 30 ], + "healing_rate": [ 2 ] + } + }, + { + "type": "effect_type", + "id": "effect_arvore_tree_immobility", + "name": [ "Rooted" ], + "desc": [ "Your roots sink into the ground and you are nearly immobile." ], + "apply_message": "", + "remove_message": "", + "rating": "mixed", + "max_intensity": 999, + "show_intensity": false, + "limb_score_mods": [ { "limb_score": "lift", "modifier": 0.51 }, { "limb_score": "grip", "modifier": 0.25 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD", "EFFECT_IMPEDING" ] + }, + { + "type": "effect_type", + "id": "arvore_perennial_rebirth_cooldown", + "name": [ "Reborn" ], + "desc": [ "Your were reborn and your soul and new body are still finding their balance." ] + }, + { + "type": "effect_type", + "id": "effect_salamander_levitation", + "name": [ "Smoke-Walking" ], + "desc": [ "You are walking through the air." ], + "apply_message": "", + "remove_message": "Your feet touch the ground once again.", + "rating": "good", + "flags": [ "LEVITATION" ] + }, + { + "type": "effect_type", + "id": "effect_salamander_featherfall", + "name": [ "" ], + "desc": [ "" ], + "//": "Empty name and description to hide effect", + "rating": "good", + "flags": [ "FEATHER_FALL" ] + }, + { + "type": "effect_type", + "id": "effect_salamander_remove_stun", + "name": [ "" ], + "desc": [ "" ], + "//": "Empty name and description to hide effect", + "rating": "good", + "removes_effects": [ "stunned", "dazed", "downed" ] + }, + { + "type": "effect_type", + "id": "effect_salamander_cure_conditions", + "name": [ "Burning" ], + "desc": [ "Your impurities are being seared away!" ], + "rating": "mixed", + "removes_effects": [ + "fungus", + "dermatik", + "bloodworms", + "paincysts", + "brainworms", + "tapeworm", + "blind", + "poison", + "venom_dmg", + "venom_weaken", + "stung", + "badpoison", + "foodpoison", + "paralyzepoison", + "tetanus", + "rat_bite_fever", + "infected", + "asthma", + "common_cold", + "flu" + ], + "base_mods": { + "hurt_min": [ 1 ], + "hurt_max": [ 1 ], + "hurt_chance": [ 2 ], + "hurt_tick": [ 1 ], + "pain_min": [ 1 ], + "pain_max": [ 2 ], + "pain_chance": [ 3 ], + "pain_tick": [ 1 ] + } + }, + { + "type": "effect_type", + "id": "effect_salamander_increase_speed", + "name": [ "Inner Spark" ], + "desc": [ "Your speed is magically increased." ], + "apply_message": "You are filled with burning vigor.", + "remove_message": "Your movements gradually slow.", + "rating": "good", + "enchantments": [ + { + "values": [ + { + "value": "SPEED", + "add": { + "math": [ + "( ( 5 + ( u_val('spell_level', 'spell: salamander_increase_speed_spell') * 1.5 ) ) ) * (scaling_factor(u_val('strength') ) )" + ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_salamander_emit_heat", + "name": [ "Burning Furnance" ], + "desc": [ "You are throwing off a large amount of heat." ], + "apply_message": "The air around you heats up.", + "remove_message": "The air around you cools down.", + "rating": "good", + "enchantments": [ { "emitter": "emit_salamander_heat" } ] + }, + { + "type": "effect_type", + "id": "effect_salamander_prevented_death", + "name": [ "Arisen" ], + "desc": [ "Like the phoenix, you have been reborn." ] + }, + { + "type": "effect_type", + "id": "effect_paraclesian_dodge_bonus_1", + "name": [ "Enhanced Dodging" ], + "desc": [ "Like the whistling wind or the supple willow, you can easily move when danger beckons." ], + "apply_message": "", + "remove_message": "Your enhanced dodging ability fades away.", + "rating": "good", + "base_mods": { "dodge_mod": [ 1 ] }, + "enchantments": [ + { + "values": [ + { + "value": "BONUS_DODGE", + "add": { + "math": [ + "( ( 1 + ( u_val('spell_level', 'spell: paraclesian_spell_dodge_bonus') / 10 ) ) ) * (scaling_factor(u_val('perception') ) )" + ] + } + } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_paraclesian_dodge_bonus_2", + "name": [ "Enhanced Dodging" ], + "desc": [ "Like the whistling wind or the supple willow, you can easily move when danger beckons." ], + "apply_message": "", + "remove_message": "Your enhanced dodging ability fades away.", + "rating": "good", + "base_mods": { "dodge_mod": [ 2 ] }, + "enchantments": [ + { + "values": [ + { + "value": "BONUS_DODGE", + "add": { + "math": [ + "( ( 1 + ( u_val('spell_level', 'spell: paraclesian_spell_dodge_bonus') / 10 ) ) ) * (scaling_factor(u_val('perception') ) )" + ] + } + } + ] + } + ], + "flags": [ "UNCANNY_DODGE" ] + }, + { + "type": "effect_type", + "id": "effect_paraclesian_dodge_bonus_3", + "name": [ "Enhanced Dodging" ], + "desc": [ "Like the whistling wind or the supple willow, you can easily move when danger beckons." ], + "apply_message": "", + "remove_message": "Your enhanced dodging ability fades away.", + "rating": "good", + "base_mods": { "dodge_mod": [ 3 ] }, + "enchantments": [ + { + "values": [ + { + "value": "BONUS_DODGE", + "add": { + "math": [ + "( ( 1 + ( u_val('spell_level', 'spell: paraclesian_spell_dodge_bonus') / 10 ) ) ) * (scaling_factor(u_val('perception') ) )" + ] + } + } + ] + } + ], + "flags": [ "UNCANNY_DODGE", "HARDTOHIT" ] + }, + { + "type": "mutation", + "id": "karma_arms", + "name": { "str": "Karma" }, + "points": 1, + "visibility": 10, + "description": "Ethereal hands appear behind you back, making you looks like an ancient god.", + "valid": false, + "starting_trait": false, + "purifiable": false, + "enchantments": [ + { + "condition": "ALWAYS", + "modified_bodyparts": [ + { "gain": "karma_arm_up_r" }, + { "gain": "karma_arm_up_l" }, + { "gain": "karma_arm_lw_r" }, + { "gain": "karma_arm_lw_l" } + ] + } + ] + }, + { + "type": "effect_type", + "id": "spell_karma_arms_eff", + "name": [ "" ], + "desc": [ "" ], + "apply_message": "Ethereal, transparent arms grow from your shoulders, and glow.", + "remove_message": "The cyan arms grow dim, and finally disappear.", + "rating": "good", + "enchantments": [ { "mutations": [ "karma_arms" ] } ] + }, + { + "type": "mutation", + "id": "stalker_eyes", + "name": { "str": "Stalker's Vision" }, + "points": 1, + "visibility": 1, + "description": "Your own eyes transform into the orbits of an unknown creature.  You see much better, both in the light and in the dark.", + "//": "not actual replacement yet, because i'm afraid of how wearing stuff may interact with it", + "valid": false, + "starting_trait": false, + "purifiable": false, + "enchantments": [ { "condition": "ALWAYS", "modified_bodyparts": [ { "gain": "stalker_eyes" } ] } ] + }, + { + "type": "effect_type", + "id": "stalker_eyes_eff", + "name": [ "" ], + "desc": [ "" ], + "apply_message": "Your vision gets dark for a moment, and in a second, a whole new world is revealed under your eyes.", + "remove_message": "A great new world under your eyes disappears.", + "blocks_effects": [ "glare" ], + "rating": "good", + "enchantments": [ { "mutations": [ "stalker_eyes" ] } ] + }, + { + "type": "mutation", + "id": "devil_tail", + "name": { "str": "Devil's Tail" }, + "points": 1, + "visibility": 6, + "description": "Not actually devil's, this long tail with triangle point in the end can stretch for a lot, and could easily kill someone nearby.", + "valid": false, + "starting_trait": false, + "purifiable": false, + "enchantments": [ { "condition": "ALWAYS", "modified_bodyparts": [ { "gain": "devil_tail" } ] } ] + }, + { + "type": "effect_type", + "id": "devil_tail_eff", + "name": [ "" ], + "desc": [ "" ], + "apply_message": "You feel like your spine stretched enormously.", + "remove_message": "Your devil tail disappear in the air.", + "rating": "good", + "enchantments": [ { "mutations": [ "devil_tail" ] } ] + }, + { + "type": "effect_type", + "id": "mutagen_plantkin", + "name": [ "Arvore Mutation", "Arvore Transformation", "Arvore Metamorphosis" ], + "desc": [ + "You consumed Arvore destiny draught.", + "You consumed a large amount of Arvore destiny draught.", + "You consumed a life-changing amount of Arvore destiny draught." + ], + "max_intensity": 3, + "resist_traits": [ "THRESH_ARVORE" ], + "base_mods": { + "hurt_min": [ 1 ], + "hurt_max": [ 2 ], + "hurt_chance": [ -22 ], + "hurt_tick": [ 75 ], + "pain_min": [ 1 ], + "pain_max": [ 2 ], + "pain_chance": [ 100 ], + "pain_tick": [ 75 ] + }, + "scaling_mods": { "hurt_chance": [ 21, 0 ], "pain_chance": [ -30 ] }, + "rating": "bad", + "blood_analysis_description": "Anomalous chlorophyll content in blood sample" + }, + { + "type": "effect_type", + "id": "mutagen_waterkin", + "name": [ "Undine Mutation", "Undine Transformation", "Undine Metamorphosis" ], + "desc": [ + "You consumed Undine destiny draught.", + "You consumed a large amount of Undine destiny draught.", + "You consumed a life-changing amount of Undine destiny draught." + ], + "max_intensity": 3, + "resist_traits": [ "THRESH_UNDINE" ], + "base_mods": { + "hurt_min": [ 1 ], + "hurt_max": [ 2 ], + "hurt_chance": [ -22 ], + "hurt_tick": [ 75 ], + "pain_min": [ 1 ], + "pain_max": [ 2 ], + "pain_chance": [ 100 ], + "pain_tick": [ 75 ] + }, + "scaling_mods": { "hurt_chance": [ 21, 0 ], "pain_chance": [ -30 ] }, + "rating": "bad", + "blood_analysis_description": "Excessive water content in blood sample" + }, + { + "type": "effect_type", + "id": "mutagen_flamekin", + "name": [ "Salamander Mutation", "Salamander Transformation", "Salamander Metamorphosis" ], + "desc": [ + "You consumed Salamander destiny draught.", + "You consumed a large amount of Salamander destiny draught.", + "You consumed a life-changing amount of Salamander destiny draught." + ], + "max_intensity": 3, + "resist_traits": [ "THRESH_SALAMANDER" ], + "base_mods": { + "hurt_min": [ 1 ], + "hurt_max": [ 2 ], + "hurt_chance": [ -22 ], + "hurt_tick": [ 75 ], + "pain_min": [ 1 ], + "pain_max": [ 2 ], + "pain_chance": [ 100 ], + "pain_tick": [ 75 ] + }, + "scaling_mods": { "hurt_chance": [ 21, 0 ], "pain_chance": [ -30 ] }, + "rating": "bad", + "blood_analysis_description": "Blood sample displays unnatural heat generation" + }, + { + "type": "effect_type", + "id": "mutagen_dollkin", + "name": [ "Homullus Mutation", "Homullus Transformation", "Homullus Metamorphosis" ], + "desc": [ + "You consumed Homullus destiny draught.", + "You consumed a large amount of Homullus destiny draught.", + "You consumed a life-changing amount of Homullus destiny draught." + ], + "max_intensity": 3, + "resist_traits": [ "THRESH_HOMULLUS" ], + "base_mods": { + "hurt_min": [ 1 ], + "hurt_max": [ 2 ], + "hurt_chance": [ -22 ], + "hurt_tick": [ 75 ], + "pain_min": [ 1 ], + "pain_max": [ 2 ], + "pain_chance": [ 100 ], + "pain_tick": [ 75 ] + }, + "scaling_mods": { "hurt_chance": [ 21, 0 ], "pain_chance": [ -30 ] }, + "rating": "bad", + "blood_analysis_description": "Inert elements providing some functions of blood" + }, + { + "type": "effect_type", + "id": "mutagen_airkin", + "name": [ "Sylph Mutation", "Sylph Transformation", "Sylph Metamorphosis" ], + "desc": [ + "You consumed Sylph destiny draught.", + "You consumed a large amount of Sylph destiny draught.", + "You consumed a life-changing amount of Sylph destiny draught." + ], + "max_intensity": 3, + "resist_traits": [ "THRESH_SYLPH" ], + "base_mods": { + "hurt_min": [ 1 ], + "hurt_max": [ 2 ], + "hurt_chance": [ -22 ], + "hurt_tick": [ 75 ], + "pain_min": [ 1 ], + "pain_max": [ 2 ], + "pain_chance": [ 100 ], + "pain_tick": [ 75 ] + }, + "scaling_mods": { "hurt_chance": [ 21, 0 ], "pain_chance": [ -30 ] }, + "rating": "bad", + "blood_analysis_description": "Dangerous levels of oxygen and nitrogen in blood sample" } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/effects/emit.json b/data/Mainline_mods/Mods/Xedra_Evolved/effects/emit.json index 180bf59f9..e600c21f2 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/effects/emit.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/effects/emit.json @@ -2,10 +2,18 @@ { "id": "emit_changeling_mist", "type": "emit", - "//": "Slow infrequent leak of changeling mist", + "//": "Slow infrequent leak of changeling mist. This should summon various changeling monsters similar to Angle Dog Fog.", "field": "fd_mirrored", "intensity": 3, "qty": 10, "chance": 15 + }, + { + "id": "emit_blood_karma", + "type": "emit", + "field": "fd_blood_karma", + "intensity": 1, + "chance": 100, + "qty": 1 } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/effects/goblin_fruit_effects.json b/data/Mainline_mods/Mods/Xedra_Evolved/effects/goblin_fruit_effects.json new file mode 100644 index 000000000..ce649f9a5 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/effects/goblin_fruit_effects.json @@ -0,0 +1,236 @@ +[ + { + "id": "effect_goblin_fruit_heal", + "type": "effect_type", + "name": [ "Restore Flesh and Bone" ], + "desc": [ "Your wounds are slowly healing." ], + "apply_message": "Your flesh and bones start to knit together before your eyes.", + "remove_message": "Your regeneration slows down as the goblin fruit's magic fades.", + "rating": "good", + "show_intensity": false, + "enchantments": [ + { + "intermittent_activation": { "effects": [ { "frequency": "30 seconds", "spell_effects": [ { "id": "goblin_fruit_regeneration_spell" } ] } ] } + } + ] + }, + { + "id": "goblin_fruit_regeneration_spell", + "type": "SPELL", + "name": "Sweet Goblin Fruit Healing Effect", + "description": "Heals the target.", + "valid_targets": [ "self" ], + "min_damage": -1, + "max_damage": -1, + "effect": "attack", + "shape": "blast", + "flags": [ "SILENT" ] + }, + { + "id": "effect_goblin_fruit_cure", + "type": "effect_type", + "name": [ "Ward off Miasma" ], + "desc": [ "No illness is going to get you down now." ], + "apply_message": "You feel revitalized.", + "rating": "good", + "show_intensity": false, + "removes_effects": [ "scurvy", "redcells_anemia", "anemia", "toxin_buildup", "common_cold", "flu" ] + }, + { + "id": "effect_goblin_fruit_speed", + "type": "effect_type", + "name": [ "Quick Blows" ], + "desc": [ "You can attack faster." ], + "apply_message": "You arms speed up.", + "remove_message": "Your muscles twitch as the goblin fruit's magic fades.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "ATTACK_SPEED", "add": -15 } ] } ] + }, + { + "id": "effect_goblin_fruit_thorns", + "type": "effect_type", + "name": [ "Thorns" ], + "desc": [ "Anyone who attacks you will regret it." ], + "apply_message": "Long thorns grow through your skin, clothes, and armor.", + "remove_message": "The thorns vanish without a trace, leaving your gear unharmed.", + "rating": "good", + "show_intensity": false, + "enchantments": [ "ench_goblin_fruit_thorns" ] + }, + { + "type": "enchantment", + "id": "ench_goblin_fruit_thorns", + "condition": "ALWAYS", + "has": "HELD", + "hit_me_effect": [ { "id": "goblin_fruit_aura_thorns", "hit_self": false, "once_in": 4 } ] + }, + { + "id": "goblin_fruit_aura_thorns", + "type": "SPELL", + "name": "Goblin fruit aura thorns", + "description": "Stab a monster that attacked you.", + "valid_targets": [ "hostile" ], + "flags": [ "RANDOM_DAMAGE" ], + "shape": "blast", + "effect": "attack", + "damage_type": "stab", + "min_damage": 1, + "max_damage": 4, + "min_range": 1, + "max_range": 1 + }, + { + "id": "effect_goblin_fruit_keep_warm", + "type": "effect_type", + "name": [ "Summer's Heat" ], + "desc": [ "The magic of that goblin fruit is keeping you warm." ], + "apply_message": "You feel a pleasant warmth.", + "remove_message": "You shiver as a cool breeze hits your skin.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 50 } ] } ] + }, + { + "id": "effect_goblin_fruit_purge_blood", + "type": "effect_type", + "name": [ "Ward off Toxins" ], + "desc": [ "Your body will not be corrupted by these vile substances." ], + "apply_message": "You feel cleansed.", + "rating": "good", + "show_intensity": false, + "removes_effects": [ + "poison", + "venom_dmg", + "venom_weaken", + "badpoison", + "foodpoison", + "paralyzepoison", + "bloodworms", + "brainworms", + "tapeworm" + ] + }, + { + "id": "effect_goblin_fruit_dodge", + "type": "effect_type", + "name": [ "Flexible" ], + "desc": [ "Your range of motion is greatly increased." ], + "apply_message": "You arms are as bendy as rubber.", + "remove_message": "Your limbs creak as they lose their flexibility.", + "rating": "good", + "show_intensity": false, + "limb_score_mods": [ + { "limb_score": "reaction", "modifier": 2.0 }, + { "limb_score": "block", "modifier": 1.2 }, + { "limb_score": "crawl", "modifier": 1.5 } + ], + "base_mods": { "dodge_mod": [ 1 ] }, + "enchantments": [ { "values": [ { "value": "BONUS_DODGE", "add": 1 } ] } ], + "flags": [ "DOWNED_RECOVERY", "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_nightvision", + "name": [ "Darkvision" ], + "desc": [ "You can see in the dark." ], + "apply_message": "The night doesn't seem so dark anymore.", + "remove_message": "The darkness of the night rushes in again.", + "rating": "good", + "limb_score_mods": [ { "limb_score": "night_vis", "modifier": 6 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_nobleed", + "name": [ "Stopped Bleeding" ], + "desc": [ "Your blood is all being contained within your body." ], + "apply_message": "Your wounds tingle.", + "remove_message": "You feel a prickle as your wounds ache.", + "rating": "good", + "show_intensity": false, + "removes_effects": [ "bleed" ], + "flags": [ "BLEED_IMMUNE" ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_perception", + "name": [ "Good Vision" ], + "desc": [ "The magic of that goblin fruit is helping you see better." ], + "apply_message": "You can pick out even minute details.", + "remove_message": "Distant objects loose their magical clarity.", + "rating": "good", + "show_intensity": false, + "limb_score_mods": [ { "limb_score": "vision", "modifier": 1.25 } ], + "enchantments": [ { "values": [ { "value": "PERCEPTION", "add": 2 } ] } ], + "flags": [ "GLARE_RESIST", "EFFECT_LIMB_SCORE_MOD" ] + }, + { + "id": "effect_goblin_fruit_no_drunk", + "type": "effect_type", + "name": [ "Remove intoxicants" ], + "desc": [ "You are being rapidly sobered up." ], + "apply_message": "Your head pounds, but you feel much more alert.", + "remove_message": ".", + "rating": "mixed", + "show_intensity": false, + "removes_effects": [ "drunk", "meth", "high", "weed_high" ] + }, + { + "id": "effect_goblin_fruit_eat_poison", + "type": "effect_type", + "name": [ "Poison-Eater" ], + "desc": [ "You can eat toxic or spoiled food without penalty. You still should not eat zombie meat." ], + "apply_message": "Your sense of taste dulls.", + "remove_message": "Something in your mouth tastes foul.", + "rating": "good", + "show_intensity": false, + "flags": [ "IMMUNE_SPOIL", "PARAIMMUNE" ], + "blocks_effects": [ "foodpoison" ], + "vitamins": [ { "vitamin": "mutant_toxin", "rate": [ [ -1, -1 ] ], "absorb_mult": [ 0.5 ], "tick": [ "10 s" ] } ] + }, + { + "id": "effect_goblin_fruit_no_drunk", + "type": "effect_type", + "name": [ "Remove intoxicants" ], + "desc": [ "You are being rapidly sobered up." ], + "apply_message": "Your head pounds, but you feel much more alert.", + "remove_message": ".", + "rating": "mixed", + "show_intensity": false, + "removes_effects": [ "drunk", "meth", "high", "weed_high" ] + }, + { + "id": "effect_goblin_fruit_featherfall", + "type": "effect_type", + "name": [ "Feather Fall" ], + "desc": [ "You can fall any distance without damage." ], + "apply_message": "You feel as light as air.", + "remove_message": "Gravity reclaims its hold on you.", + "rating": "good", + "show_intensity": false, + "flags": [ "FEATHER_FALL" ] + }, + { + "id": "effect_goblin_fruit_super_clairvoyance", + "type": "effect_type", + "name": [ "Omniscience" ], + "desc": [ "You can see forever." ], + "apply_message": "Your head pounds as you suddenly see in all directions simultaneously.", + "remove_message": "Your senses snap back into your body.", + "rating": "good", + "show_intensity": false, + "flags": [ "SUPER_CLAIRVOYANCE" ] + }, + { + "id": "effect_goblin_fruit_water_breathing", + "type": "effect_type", + "name": [ "Return to the Sea" ], + "desc": [ "You can breathe underwater." ], + "apply_message": "You feel an urge to take a swim.", + "remove_message": "You need to take a breath of air, now!", + "rating": "good", + "show_intensity": false, + "flags": [ "WALK_UNDERWATER", "GILLS" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/effects/ter_transform.json b/data/Mainline_mods/Mods/Xedra_Evolved/effects/ter_transform.json new file mode 100644 index 000000000..81d1f1e4d --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/effects/ter_transform.json @@ -0,0 +1,28 @@ +[ + { + "type": "ter_furn_transform", + "id": "unlock_elock", + "terrain": [ + { + "result": [ "t_door_c" ], + "valid_terrain": [ "t_door_elocked" ], + "message": "The numpad chirps happily at you as the door unlocks." + }, + { + "result": [ "t_door_c_peep" ], + "valid_terrain": [ "t_door_elocked_peep" ], + "message": "The numpad chirps happily at you as the door unlocks." + }, + { + "result": [ "t_door_c" ], + "valid_terrain": [ "t_door_elocked_alarm" ], + "message": "The numpad chirps happily at you as the door unlocks." + }, + { + "result": [ "t_door_metal_c" ], + "valid_terrain": [ "t_door_metal_elocked" ], + "message": "The numpad chirps happily at you as the door unlocks." + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/effects/vampvirus.json b/data/Mainline_mods/Mods/Xedra_Evolved/effects/vampvirus.json index 7769a4ab4..f7b8ae7c3 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/effects/vampvirus.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/effects/vampvirus.json @@ -2,6 +2,7 @@ { "type": "effect_on_condition", "id": "EOC_CONSUMED_BLOOD_TREATMENT", + "//": "Should resist and reverse some of the early stages of the vampire virus.", "condition": { "u_has_effect": "blood_treatment" }, "effect": [ { "u_add_effect": "blood_treatment", "duration": "16 hours" }, @@ -14,18 +15,20 @@ "run_eocs": [ { "id": "EOC_REDUCE_VAMPVIRUS", - "condition": { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 1 } ] }, + "condition": { "compare_num": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 1 } ] }, "effect": [ { "u_lose_effect": "vampire_virus" }, { "u_lose_trait": "VAMPIRE" }, { "u_lose_trait": "EYEGLEAM" }, { "u_lose_trait": "STAMINAFORBLOOD" }, + { "u_lose_trait": "BLOODBANK" }, + { "u_lose_trait": "COMMUNE_NIGHT" }, { "u_message": "The light seems less bright and the air fresher.", "type": "good" } ] }, { "id": "EOC_REDUCE_VAMPVIRUS1", - "condition": { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 2 } ] }, + "condition": { "compare_num": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 2 } ] }, "effect": [ { "u_add_effect": "vampire_virus", "intensity": 1, "duration": "PERMANENT" }, { "u_lose_trait": "VAMPIRE2" }, @@ -39,10 +42,11 @@ }, { "id": "EOC_REDUCE_VAMPVIRUS2", - "condition": { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 3 } ] }, + "condition": { "compare_num": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 3 } ] }, "effect": [ { "u_add_effect": "vampire_virus", "intensity": 2, "duration": "PERMANENT" }, { "u_lose_trait": "VAMPIRE3" }, + { "u_lose_trait": "BLOODBANK" }, { "u_lose_trait": "HYPNOTIC_GAZE" }, { "u_lose_trait": "BLOODHASTE" }, { @@ -57,7 +61,7 @@ "and": [ { "u_has_effect": "vampire_virus_ascendant", "intensity": 1 }, { - "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus_ascendant" }, "=", { "const": 1 } ] + "compare_num": [ { "u_val": "effect_intensity", "effect": "vampire_virus_ascendant" }, "=", { "const": 1 } ] } ] }, @@ -75,7 +79,7 @@ "and": [ { "u_has_effect": "vampire_virus_post_mortal", "intensity": 1 }, { - "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus_post_mortal" }, "=", { "const": 1 } ] + "compare_num": [ { "u_val": "effect_intensity", "effect": "vampire_virus_post_mortal" }, "=", { "const": 1 } ] } ] }, @@ -91,6 +95,31 @@ } ] }, + { + "type": "effect_on_condition", + "id": "EOC_COMPLETED_ROLL_REMAINDER_VAMPVIRUS", + "effect": { "u_message": "You flush with desire as you think about blood." } + }, + { + "type": "effect_on_condition", + "id": "EOC_SUCCESFUL_ROLL_REMAINDER", + "effect": { "u_message": "Suddenly you feel your heart pounding and you realize a new ability." } + }, + { + "type": "effect_on_condition", + "id": "EOC_SUCCESFUL_ROLL_REMAINDER2", + "effect": { "u_message": "Suddenly you feel your heart slowing and you realize a new ability." } + }, + { + "type": "effect_on_condition", + "id": "EOC_ADD_VAMPIRUS_INTENSITY1", + "effect": { "u_add_effect": "vampire_virus", "intensity": 2, "duration": "PERMANENT" } + }, + { + "type": "effect_on_condition", + "id": "EOC_ADD_VAMPIRUS_INTENSITY2", + "effect": { "u_add_effect": "vampire_virus", "intensity": 3, "duration": "PERMANENT" } + }, { "type": "effect_on_condition", "id": "EOC_VAMPIRES", @@ -101,6 +130,7 @@ { "type": "effect_on_condition", "id": "EOC_vampire_virus_escalation", + "//": "This EOC controls the speed at which vampires mutate and evolve.", "recurrence": [ "48 hours", "72 hours 15 minutes" ], "condition": { "and": [ { "u_has_effect": "vampire_virus" }, { "not": { "u_has_effect": "blood_treatment" } } ] }, "deactivate_condition": { "not": { "u_has_effect": "vampire_virus" } }, @@ -111,7 +141,7 @@ "condition": { "and": [ { "u_has_effect": "vampire_virus", "intensity": 1 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 1 } ] } + { "compare_num": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 1 } ] } ] }, "effect": { @@ -119,8 +149,13 @@ "id": "eoc_vampvirus_1_trait", "condition": { "u_has_trait": "VAMPIRE" }, "effect": [ - { "u_roll_remainder": [ "EYEGLEAM", "STAMINAFORBLOOD" ], "type": "mutation", "true_eocs": [ "EOC_VAMPVIRUS1" ] }, - { "u_message": "Suddenly you feel your heart pounding and you realize a new ability." } + { + "u_roll_remainder": [ "EYEGLEAM", "STAMINAFORBLOOD", "COMMUNE_NIGHT" ], + "type": "mutation", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_VAMPVIRUS", "EOC_VAMPVIRUS1" ] + }, + { "queue_eocs": "EOC_ADD_VAMPIRUS_INTENSITY1", "time_in_future": [ "5 days", "8 hours" ] } ], "false_effect": [ { "u_add_trait": "VAMPIRE" }, @@ -136,7 +171,7 @@ "condition": { "and": [ { "u_has_effect": "vampire_virus", "intensity": 2 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 2 } ] } + { "compare_num": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 2 } ] } ] }, "effect": { @@ -144,8 +179,13 @@ "id": "eoc_vampvirus_2_trait", "condition": { "u_has_trait": "VAMPIRE2" }, "effect": [ - { "u_roll_remainder": [ "BLOODHEAL", "COAGULANTWEAVE" ], "type": "mutation", "true_eocs": [ "EOC_VAMPVIRUS2" ] }, - { "u_message": "Suddenly you feel your heart slowing and you realize a new ability." } + { + "u_roll_remainder": [ "BLOODHEAL", "COAGULANTWEAVE" ], + "type": "mutation", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_VAMPVIRUS", "EOC_VAMPVIRUS2" ] + }, + { "queue_eocs": "EOC_ADD_VAMPIRUS_INTENSITY2", "time_in_future": [ "15 days", "8 hours" ] } ], "false_effect": [ { "u_add_trait": "VAMPIRE2" }, @@ -161,7 +201,7 @@ "condition": { "and": [ { "u_has_effect": "vampire_virus", "intensity": 3 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 3 } ] } + { "compare_num": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 3 } ] } ] }, "effect": { @@ -169,7 +209,12 @@ "id": "eoc_vampvirus_3_trait", "condition": { "u_has_trait": "VAMPIRE3" }, "effect": [ - { "u_roll_remainder": [ "BLOODHASTE", "HYPNOTIC_GAZE" ], "type": "mutation", "true_eocs": [ "EOC_VAMPVIRUS2" ] }, + { + "u_roll_remainder": [ "BLOODHASTE", "HYPNOTIC_GAZE", "BLOODBANK" ], + "type": "mutation", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_VAMPVIRUS", "EOC_VAMPVIRUS2" ] + }, { "u_message": "You feel the absence of your heart beating for several seconds and then it resumes at this new rhythm." } @@ -177,7 +222,7 @@ "false_effect": [ { "u_add_trait": "VAMPIRE3" }, { - "u_message": "With a popping sound several of your teeth fall out but when you put a finger into your mouth to feel the hole, there are new sharp fangs where you expected nothing." + "u_message": "You don't seem to feel as hungry as you were before and you definitely recover from exertion faster than before." } ] } @@ -189,10 +234,11 @@ { "type": "effect_on_condition", "id": "EOC_vampire_virus_blood_needs", - "recurrence": [ "8 hours", "36 hours 15 minutes" ], + "//": "This EOC works on telling the vampire whether they need to consume blood or not.", + "recurrence": [ "8 hours", "14 hours 15 minutes" ], "condition": { "and": [ - { "compare_int": [ { "u_val": "vitamin", "name": "blood" }, "<=", { "const": 450 } ] }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "<=", { "const": -450 } ] }, { "u_has_effect": "vampire_virus" } ] }, @@ -204,93 +250,14 @@ "condition": { "and": [ { "u_has_effect": "vampire_virus", "intensity": 1 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 1 } ] } + { "compare_num": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, ">=", { "const": 1 } ] } ] }, "effect": { "run_eocs": { "id": "eoc_blood_hunger", "condition": { "u_has_trait": "VAMPIRE" }, - "effect": { "u_message": "You daydream of drinking blood from a chalice." } - } - } - }, - { - "id": "EOC_VAMPVIRUS5", - "condition": { - "and": [ - { "u_has_effect": "vampire_virus", "intensity": 2 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 2 } ] } - ] - }, - "effect": { - "run_eocs": { - "id": "eoc_vampvirus_6_trait", - "condition": { "u_has_trait": "VAMPIRE2" }, - "effect": { "u_message": "You feel an intense pain in your stomach and your skin reddens in a short time in sunlight." }, - "false_effect": [ - { "u_add_trait": "VAMPIRE2" }, - { - "u_message": "With a popping sound several of your teeth fall out but when you put a finger into your mouth to feel the hole, there are new sharp fangs where you expected nothing." - } - ] - } - } - }, - { - "id": "EOC_VAMPVIRUS6", - "condition": { - "and": [ - { "u_has_effect": "vampire_virus", "intensity": 3 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 3 } ] } - ] - }, - "effect": { - "run_eocs": { - "id": "eoc_vampvirus_7_trait", - "condition": { "u_has_trait": "VAMPIRE3" }, - "effect": { "u_message": "You feel a gnawing in your belly and a pressure in your mouth, as if your teeth can't all fit." }, - "false_effect": [ { "u_add_trait": "VAMPIRE3" }, { "u_message": "Your skin seems to have become unnaturally pale." } ] - } - } - }, - { - "id": "EOC_VAMPVIRUS7", - "condition": { - "and": [ - { "u_has_effect": "vampire_virus", "intensity": 4 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 4 } ] } - ] - }, - "effect": { - "run_eocs": { - "id": "eoc_vampvirus_8_trait", - "condition": { "u_has_trait": "VAMPIRE4" }, - "effect": { "u_message": "You feel a gnawing in your belly and a pressure in your mouth, as if your teeth can't all fit." }, - "false_effect": [ { "u_add_trait": "VAMPIRE4" }, { "u_message": "Your skin seems to have become unnaturally pale." } ] - } - } - }, - { - "id": "EOC_VAMPVIRUS8", - "condition": { - "and": [ - { "u_has_effect": "vampire_virus", "intensity": 5 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "vampire_virus" }, "=", { "const": 5 } ] } - ] - }, - "effect": { - "run_eocs": { - "id": "eoc_vampvirus_9_trait", - "condition": { "u_has_trait": "BLOOD_DRINKER" }, - "effect": [ - { "u_message": "The HUNGER is overwhelming, all you can think about is blood!" }, - { "u_add_effect": "blood_crazed", "duration": 28800 } - ], - "false_effect": [ - { "u_add_trait": "BLOOD_DRINKER" }, - { "u_message": "You no longer receive nourishment from anything other than blood." } - ] + "effect": { "u_message": "You need to consume human blood to stay alive." } } } } diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/emitters.json b/data/Mainline_mods/Mods/Xedra_Evolved/emitters.json new file mode 100644 index 000000000..ee85ca082 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/emitters.json @@ -0,0 +1,7 @@ +{ + "id": "emit_salamander_heat", + "type": "emit", + "field": "fd_salamander_heat", + "intensity": 3, + "qty": 50 +} diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/enchantments/armor.json b/data/Mainline_mods/Mods/Xedra_Evolved/enchantments/armor.json new file mode 100644 index 000000000..838127db1 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/enchantments/armor.json @@ -0,0 +1,118 @@ +[ + { + "id": "ench_climate_control_marzanna", + "name": { "str": "Charm of Spring" }, + "description": "You are wearing equipment that helps handle harsh climates and protects from damaging cold.", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 20 }, { "value": "ARMOR_COLD", "add": -15 } ] + }, + { + "id": "ench_climate_periapta_feline", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "mutations": [ "CLAWS_RETRACT" ] + }, + { + "id": "ench_climate_periapta_lupine", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "mutations": [ "FANGS" ] + }, + { + "id": "ench_climate_periapta_cephalopod", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "mutations": [ "INK_GLANDS" ] + }, + { + "id": "ench_climate_periapta_butterfly", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "mutations": [ "WINGS_BUTTERFLY" ] + }, + { + "id": "ench_climate_periapta_plant", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "mutations": [ "BARK" ] + }, + { + "id": "ench_climate_periapta_scorpion", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "mutations": [ "TAIL_STING" ] + }, + { + "id": "ench_climate_periapta_spider", + "type": "enchantment", + "has": "WORN", + "condition": "ALWAYS", + "mutations": [ "WEB_WALKER" ] + }, + { + "type": "enchantment", + "id": "DEDUCTION_REGEN_MANA", + "has": "WORN", + "condition": "ALWAYS", + "//": "Increase the mana regen depending on your deduction level. +0.1x for each level, so doubles your mana regen when deduction is 10", + "values": [ { "value": "REGEN_MANA", "multiply": { "math": [ "u_skill('deduction') / 10" ] } } ] + }, + { + "type": "enchantment", + "id": "BERSERKING", + "hit_you_effect": [ { "id": "increase_berserking", "hit_self": true, "once_in": 14 } ] + }, + { + "id": "increase_berserking", + "type": "SPELL", + "name": "Berserking", + "description": "Increase the berserker variable.", + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "INCREASE_BERSERKER", + "shape": "blast", + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] + }, + { + "type": "enchantment", + "id": "BERSERKER_STR", + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "STRENGTH", "add": { "math": [ "BERSERKER / 3" ] } } ] + }, + { + "type": "enchantment", + "id": "BERSERKER_SPEED", + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "SPEED", "add": { "math": [ "BERSERKER" ] } } ] + }, + { + "type": "enchantment", + "id": "BERSERKER_REGEN_STAMINA", + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "REGEN_STAMINA", "multiply": { "math": [ "BERSERKER / 5" ] } } ] + }, + { + "type": "effect_on_condition", + "id": "INCREASE_BERSERKER", + "condition": { "u_has_items": { "item": "dreamforged_knuckle_berserk", "count": 1 } }, + "deactivate_condition": { "not": { "u_has_items": { "item": "dreamforged_knuckle_berserk", "count": 1 } } }, + "effect": [ { "u_message": "BERSERK +1.", "type": "debug" }, { "math": [ "BERSERKER", "++" ] } ] + }, + { + "type": "effect_on_condition", + "id": "DECREASE_BERSERKER", + "recurrence": "25 s", + "effect": [ { "math": [ "BERSERKER", "=", "max( 0, BERSERKER - 1)" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/enchantments/mutations.json b/data/Mainline_mods/Mods/Xedra_Evolved/enchantments/mutations.json new file mode 100644 index 000000000..b1cc42dee --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/enchantments/mutations.json @@ -0,0 +1,35 @@ +[ + { + "type": "enchantment", + "id": "BONUS_DREAMER", + "condition": "ALWAYS", + "values": [ { "value": "MAX_MANA", "add": { "math": [ "u_skill('deduction')*50" ] } } ] + }, + { + "type": "enchantment", + "id": "BONUS_EATER", + "condition": "ALWAYS", + "values": [ + { "value": "MAX_MANA", "add": { "math": [ "u_skill('deduction')*150" ] } }, + { "value": "REGEN_MANA", "multiply": -0.8 } + ] + }, + { + "type": "enchantment", + "id": "BONUS_DREAMSMITH", + "condition": "ALWAYS", + "values": [ { "value": "MAX_MANA", "add": { "math": [ "u_skill('deduction')*50" ] } } ] + }, + { + "type": "enchantment", + "id": "BONUS_INVENTOR", + "condition": "ALWAYS", + "values": [ { "value": "MAX_MANA", "add": { "math": [ "u_skill('deduction')*50" ] } } ] + }, + { + "type": "enchantment", + "id": "EATER_SIXTH_SENSE", + "condition": "ALWAYS", + "values": [ { "value": "MAX_MANA", "add": { "math": [ "u_skill('deduction')*50" ] } } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/enchantments/weapon.json b/data/Mainline_mods/Mods/Xedra_Evolved/enchantments/weapon.json new file mode 100644 index 000000000..e889b5f30 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/enchantments/weapon.json @@ -0,0 +1,69 @@ +[ + { + "type": "enchantment", + "id": "ENCHANTMENT_VAMPIRISM", + "has": "WIELD", + "hit_you_effect": [ { "id": "xedra_weak_healing", "hit_self": true, "once_in": 15 } ] + }, + { + "id": "xedra_weak_healing", + "type": "SPELL", + "name": "Weak healing", + "description": "Heal 1 hp. Used in various enchantments. You can see it only in debug.", + "valid_targets": [ "self" ], + "min_damage": -1, + "max_damage": -1, + "effect": "attack", + "shape": "blast", + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] + }, + { + "type": "enchantment", + "id": "MON_NEARBY_SPEED", + "has": "WIELD", + "condition": "ALWAYS", + "values": [ { "value": "SPEED", "add": { "math": [ "u_monsters_nearby('radius': 25) / 2" ] } } ] + }, + { + "type": "enchantment", + "id": "EXP_BASH", + "has": "WIELD", + "condition": "ALWAYS", + "values": [ { "value": "ITEM_DAMAGE_BASH", "add": { "arithmetic": [ { "u_val": "exp" }, "/", { "const": 750 } ] } } ] + }, + { + "type": "enchantment", + "id": "UNARMED_MELEE_BOOST", + "condition": "ALWAYS", + "//": "not used currently, just proof of concept", + "values": [ { "value": "MELEE_DAMAGE", "multiply": { "math": [ "u_skill('unarmed') * 5" ] } } ] + }, + { + "type": "enchantment", + "id": "MAX_MANA_STR", + "condition": "ALWAYS", + "//": "proof of concept", + "values": [ { "value": "STRENGTH", "add": { "arithmetic": [ { "u_val": "mana_max" }, "/", { "const": 4 } ] } } ] + }, + { + "type": "enchantment", + "id": "PAIN_STR", + "condition": "ALWAYS", + "//": "proof of concept", + "values": [ { "value": "STRENGTH", "add": { "math": [ "u_pain() / 4" ] } } ] + }, + { + "type": "enchantment", + "id": "WOLF_SLEDGE", + "has": "WIELD", + "condition": "ALWAYS", + "values": [ { "value": "ITEM_DAMAGE_BASH", "add": { "math": [ "u_skill('deduction')" ] } } ] + }, + { + "type": "enchantment", + "id": "DREAM_DAGGER", + "has": "WIELD", + "condition": "ALWAYS", + "values": [ { "value": "ITEM_DAMAGE_CUT", "add": { "math": [ "u_val('mana_max')/100" ] } } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/encounters/jotunn_encounters.json b/data/Mainline_mods/Mods/Xedra_Evolved/encounters/jotunn_encounters.json new file mode 100644 index 000000000..9d4908232 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/encounters/jotunn_encounters.json @@ -0,0 +1,69 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_RandEnc_Roadstop_Jotunn", + "recurrence": 3000, + "global": true, + "condition": { + "and": [ + { "u_near_om_location": "s_gas_rural", "range": 30 }, + "is_day", + { "one_in_chance": 10 }, + { "days_since_cataclysm": 7 }, + { + "not": { "u_compare_time_since_var": "RandEnc", "type": "timer", "context": "jotunn", "op": "<", "time": "1 d" } + }, + { "not": { "u_near_om_location": "s_gas_rural", "range": 2 } }, + { "not": { "is_season": "winter" } } + ] + }, + "effect": [ + { "mapgen_update": "nest_RandEnc_ruralgas_jotunn", "om_terrain": "s_gas_rural" }, + { "u_add_var": "RandEnc", "type": "timer", "context": "jotunn", "time": true }, + { + "u_location_variable": { "global_val": "randenc_jotunn_loc" }, + "target_params": { "om_terrain": "roadstop_a" } + }, + { "arithmetic": [ { "global_val": "var", "var_name": "RandEnc_Jotunn" }, "=", { "const": 1 } ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_RandEnc_Jotunn_remove", + "recurrence": 200, + "global": true, + "condition": { + "and": [ + { "u_compare_time_since_var": "RandEnc", "type": "timer", "context": "jotunn", "op": ">", "time": "3 h" }, + { "not": { "u_near_om_location": "roadstop_a", "range": 2 } }, + { "compare_int": [ { "global_val": "var", "var_name": "RandEnc_Jotunn" }, "==", { "const": 1 } ] } + ] + }, + "effect": [ + { + "mapgen_update": "nest_RandEnc_jotunn_remove", + "om_terrain": "roadstop_a", + "target_var": { "global_val": "randenc_jotunn_loc" } + }, + { "arithmetic": [ { "global_val": "var", "var_name": "RandEnc_Jotunn" }, "=", { "const": 0 } ] } + ] + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "nest_RandEnc_ruralgas_jotunn", + "//": "Adds a random encounter at this rural gas station", + "object": { + "place_monsters": [ { "monster": "GROUP_Exodii_Jotunn", "x": [ 3, 17 ], "y": [ 13, 15 ] } ], + "place_vehicles": [ { "vehicle": "bearcub", "chance": 30, "status": -3, "x": [ 11 ], "y": [ 12 ] } ], + "place_corpses": [ { "group": "GROUP_FERAL_AGENTS", "x": [ 7, 14 ], "y": [ 6, 18 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "nest_RandEnc_ruralgas_jotunn_remove", + "//": "removes a random encounter at this roadstop", + "object": { "set": [ { "square": "creature_remove", "x": 0, "y": 0, "x2": 23, "y2": 23 } ] } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/eocs/dreamsmith.json b/data/Mainline_mods/Mods/Xedra_Evolved/eocs/dreamsmith.json new file mode 100644 index 000000000..bbcbe0dd4 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/eocs/dreamsmith.json @@ -0,0 +1,156 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_DREAMSMITHS_SCORE_TIMER", + "//": "Increase the dreamsmith recipe score for `deduction` amount. Respond for passive score gain. Also gives lvl 1 recipes every day.", + "recurrence": [ "20 hours", "28 hours" ], + "condition": { "u_has_trait": "DREAMSMITH" }, + "effect": [ + { "math": [ "DREAMSMITH_RECIPE_SCORE", "+=", "u_skill('deduction')" ] }, + { + "u_roll_remainder": [ + "dreamdross_bo", + "dreamdross_knife", + "dreamdross_club", + "dreamsmith_research", + "dreamdross_lump", + "forged_dreamstuff_ingot" + ], + "type": "recipe", + "true_eocs": { + "id": "EOC_MESSAGE_SCORE_TIMER", + "effect": [ + { + "u_message": "Something sparked in your head, and you realize an interesting property of dreamdross. Maybe you can forge something new?", + "type": "info" + } + ] + } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DREAMSMITHS_SCORE_TRAIN", + "//": "Increase the dreamsmith recipe score and recipe superscore for each `training` spell cast. Each cast increase the gain score for 1", + "condition": { "u_has_trait": "DREAMSMITH" }, + "effect": [ + { "math": [ "DREAMSMITH_RECIPE_SCORE", "+=", "DREAMSMITH_RECIPE_SCORE_TRAINS" ] }, + { "math": [ "DREAMSMITH_RECIPE_SCORE_TRAINS", "++" ] }, + { "math": [ "DREAMSMITH_RECIPE_SCORE_SUPER", "+=", "DREAMSMITH_RECIPE_SCORE_TRAINS_SUPER" ] }, + { "math": [ "DREAMSMITH_RECIPE_SCORE_TRAINS_SUPER", "++" ] }, + { "run_eocs": "EOC_DREAMSMITHS_RECIPES_ENCH" }, + { "run_eocs": "EOC_DREAMSMITHS_RECIPES_SUPER" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DREAMSMITHS_RECIPES_ENCH", + "//": "If your DREAMSMITH_RECIPE_SCORE bigger than DREAMSMITH_RECIPE_SCORE_TARGET, you take a spell, DREAMSMITH_RECIPE_SCORE is zeroed, and DREAMSMITH_RECIPE_SCORE_TARGET is increased for 25. Const 25 is respond for gap between each recipe gain. Now it's 1 casts for first gain, 6 for second, 5 for third and further.", + "condition": { + "and": [ { "u_has_trait": "DREAMSMITH" }, { "math": [ "DREAMSMITH_RECIPE_SCORE", ">=", "DREAMSMITH_RECIPE_SCORE_TARGET" ] } ] + }, + "effect": [ + { + "u_roll_remainder": [ + "dreamforged_ballistic_plate", + "dreamforged_ballistic_plate_small", + "dreamforged_q_staff_ench", + "dreamforged_longsword_ench", + "dreamforged_warhammer_ench", + "dreamforged_spear_ench", + "dreamforged_halberd_ench", + "dreamforged_glaive_ench", + "dreamforged_naginata_ench", + "dreamforged_mace_ench", + "dreamforged_morningstar_ench", + "dreamforged_estoc_ench", + "dreamforged_arming_sword_ench", + "dreamforged_broadsword_ench", + "dreamforged_battleaxe_ench", + "dreamforged_katana_ench", + "dreamforged_knife_combat_ench", + "dreamforged_kris_ench", + "dreamforged_kukri_ench", + "dreamforged_nodachi_ench", + "dreamforged_rapier_ench", + "dreamforged_tanto_ench", + "dreamforged_wakizashi_ench", + "dreamforged_zweihander_ench", + "dreamforged_khopesh_ench", + "dreamforged_lucerne_ench", + "dreamforged_knuckle_ench", + "dreamforged_fullhelmet_ench", + "dreamforged_helmet_ench", + "dreamforged_plate_armor_ench", + "dreamforged_armguard_plate_ench", + "dreamforged_boots_ench", + "dreamforged_longbow", + "arrow_dreamforged", + "dreamforged_crossbow", + "bolt_dreamforged", + "dreamforged_hacksaw", + "dreamforged_hammer", + "dreamforged_halligan", + "dreamforged_pliers_locking", + "dreamforged_pickaxe", + "dreamforged_picklocks", + "dreamforged_scalpel", + "dreamforged_e_tool", + "dreamforged_ax" + ], + "type": "recipe", + "true_eocs": { + "id": "EOC_DREAMSMITH_MESSAGE_POSITIVE", + "effect": [ + { + "u_message": "A brilliant idea about the properties of dreamdross hits your head, and you think you know how to utilize it now.", + "type": "good" + } + ] + } + }, + { "math": [ "DREAMSMITH_RECIPE_SCORE", "=", "0" ] }, + { "math": [ "DREAMSMITH_RECIPE_SCORE_TARGET", "+=", "25" ] } + ], + "false_effect": [ { "u_message": "You tried to test a new idea, but it failed. Try again.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DREAMSMITHS_RECIPES_SUPER", + "//": "If your DREAMSMITH_RECIPE_SCORE_SUPER bigger than DREAMSMITH_RECIPE_SCORE_TARGET, you take a spell, DREAMSMITH_RECIPE_SCORE_SUPER is zeroed, and DREAMSMITH_RECIPE_SCORE_TARGET is increased for 200. const 1000 here is respond for delay, after which player would be able to obtain super recipes, and const 200 is for gap between them. Right now it would be 45th cast of training spell for first recipe, 22 for second, 18 for third, 17 for fouth.", + "condition": { + "and": [ + { "u_has_trait": "DREAMSMITH" }, + { "math": [ "DREAMSMITH_RECIPE_SCORE_SUPER", ">=", "DREAMSMITH_RECIPE_SCORE_SUPER_TARGET + 1000" ] } + ] + }, + "effect": [ + { + "u_roll_remainder": [ + "dreamforged_knuckle_berserk", + "dreamforged_helmet_berserker", + "dreamforged_armguard_plate_berserk", + "dreamforged_boots_berserk", + "dreamforged_fullhelmet_arcane", + "dreamforged_glaive_healing", + "dreamforged_tsurugi_speed", + "dreamforged_q_staff_exp", + "dreamforged_armguard_plate_gunslinger" + ], + "type": "recipe", + "true_eocs": { + "id": "EOC_DREAMSMITH_SUPER_MESSAGE_POSITIVE", + "effect": [ + { + "u_message": "You found a pretty smart way to utilize dreamdross' abilities, and you can't wait to use it.", + "type": "good" + } + ] + } + }, + { "math": [ "DREAMSMITH_RECIPE_SCORE_SUPER", "=", "0" ] }, + { "math": [ "DREAMSMITH_RECIPE_SCORE_SUPER_TARGET", "+=", "200" ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/eocs/initialization.json b/data/Mainline_mods/Mods/Xedra_Evolved/eocs/initialization.json new file mode 100644 index 000000000..5bfbf2ab1 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/eocs/initialization.json @@ -0,0 +1,58 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_XE_VARIABLE_INIT", + "eoc_type": "EVENT", + "required_event": "game_begin", + "condition": { "math": [ "XE_INITIALIZATION", "!=", "1" ] }, + "effect": [ { "queue_eocs": "EOC_XE_VARIABLE_INITIALIZATION" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_XE_VARIABLE_INITIALIZATION", + "condition": { "math": [ "XE_INITIALIZATION", "!=", "1" ] }, + "effect": [ + { "math": [ "base_difficulty_1", "=", "2" ] }, + { "math": [ "base_difficulty_2", "=", "3" ] }, + { "math": [ "base_difficulty_3", "=", "4" ] }, + { "math": [ "energy_difficulty_1", "=", "2" ] }, + { "math": [ "energy_difficulty_2", "=", "3" ] }, + { "math": [ "energy_difficulty_3", "=", "4" ] }, + { "math": [ "AI_difficulty_1", "=", "5" ] }, + { "math": [ "dimension_difficulty_1", "=", "5" ] }, + { "math": [ "XE_INITIALIZATION", "=", "1" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_RECIPE_GAIN", + "//": "Gives you the very first research recipe for your class.", + "recurrence": [ "20 hours", "28 hours" ], + "condition": { "u_has_trait": "INVENTOR" }, + "effect": [ { "u_roll_remainder": [ "inventor_research_base_1" ], "type": "recipe" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_START_RECIPES", + "eoc_type": "EVENT", + "required_event": "game_avatar_new", + "condition": { "compare_string": [ "xe_inventor", { "context_val": "avatar_profession" } ] }, + "effect": [ + { "u_roll_remainder": [ "software_math_inventor", "software_electronics_reference_inventor" ], "type": "recipe" }, + { "u_roll_remainder": [ "inventor_leg_weight", "inventor_jump_boots" ], "type": "recipe" }, + { "u_roll_remainder": [ "inventor_shotgun", "inventor_pistol" ], "type": "recipe" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DREAMSMITH_START_RECIPES", + "eoc_type": "EVENT", + "required_event": "game_avatar_new", + "condition": { "compare_string": [ "xe_dreamsmith", { "context_val": "avatar_profession" } ] }, + "effect": [ + { "u_roll_remainder": [ "forged_dreamstuff_ingot" ], "type": "recipe" }, + { "u_roll_remainder": [ "dreamdross_bo", "dreamdross_knife", "dreamdross_club" ], "type": "recipe" }, + { "u_roll_remainder": [ "dreamdross_lump", "forged_dreamstuff_ingot" ], "type": "recipe" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/eocs/inventor.json b/data/Mainline_mods/Mods/Xedra_Evolved/eocs/inventor.json new file mode 100644 index 000000000..5acc792dd --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/eocs/inventor.json @@ -0,0 +1,346 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_RESEARCH_BASE_1", + "//": "Check, do player has enough processed sparks to beat the difficulty. If true, substract difficulty from vitamin, increase difficulty for 5, roll_remainder recipe, process sparks, print success message. If false, give 1 processed spark, process sparks, print a fail message.", + "condition": { "math": [ "u_val('vitamin', 'name:creative_spark_research')", ">=", "base_difficulty_1" ] }, + "effect": [ + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "-=", "base_difficulty_1" ] }, + { "math": [ "base_difficulty_1", "+=", "2" ] }, + { + "u_roll_remainder": [ + "inventor_leg_weight", + "inventor_jump_boots", + "inventor_sniper", + "inventor_shotgun", + "inventor_pistol", + "mace_magic", + "software_math_inventor", + "software_electronics_reference_inventor", + "combatsaw_spear_off", + "inventor_research_base_2" + ], + "type": "recipe", + "true_eocs": [ "EOC_INVENTOR_MESSAGE_GOOD" ], + "false_eocs": { + "id": "EOC_REMOVE_RESEARCH_BASE_1", + "effect": [ + { "u_forget_recipe": "inventor_research_base_1" }, + { + "u_message": "You reach the limit of what can be done at this level. It is time to move forward.", + "type": "info" + } + ] + } + }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" } + ], + "false_effect": [ + { "u_message": "inventor_fail", "snippet": true, "type": "bad" }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" }, + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "+=", "1" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_RESEARCH_BASE_2", + "condition": { "math": [ "u_val('vitamin', 'name:creative_spark_research')", ">=", "base_difficulty_2" ] }, + "effect": [ + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "-=", "base_difficulty_2" ] }, + { "math": [ "base_difficulty_2", "+=", "3" ] }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" }, + { + "u_roll_remainder": [ + "helmet_inventor", + "inventor_fists", + "wolf_mask", + "magnetic_holster", + "bio_launcher", + "bio_warhead", + "trinket_damage", + "trinket_range", + "trinket_sound", + "mod_inv_pistol_booster", + "inventor_research_base_3", + "inventor_research_energy_1", + "software_AI" + ], + "type": "recipe", + "true_eocs": [ "EOC_INVENTOR_MESSAGE_GOOD" ], + "false_eocs": { + "id": "EOC_REMOVE_RESEARCH_BASE_2", + "effect": [ + { "u_forget_recipe": "inventor_research_base_2" }, + { + "u_message": "You reach the limit of what can be done at this level. It is time to move forward.", + "type": "info" + } + ] + } + } + ], + "false_effect": [ + { "u_message": "inventor_fail", "snippet": true, "type": "bad" }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" }, + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "+=", "2" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_RESEARCH_BASE_3", + "condition": { "math": [ "u_val('vitamin', 'name:creative_spark_research')", ">=", "base_difficulty_3" ] }, + "effect": [ + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "-=", "base_difficulty_3" ] }, + { "math": [ "base_difficulty_3", "+=", "4" ] }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" }, + { + "u_roll_remainder": [ "inventor_backpack", "vision_halo", "sonic_gun", "inventor_research_energy_1" ], + "type": "recipe", + "true_eocs": [ "EOC_INVENTOR_MESSAGE_GOOD" ], + "false_eocs": { + "id": "EOC_REMOVE_RESEARCH_BASE_3", + "effect": [ + { "u_forget_recipe": "inventor_research_base_3" }, + { + "u_message": "You reach the limit of what can be done at this level. It is time to move forward.", + "type": "info" + } + ] + } + } + ], + "false_effect": [ + { "u_message": "inventor_fail", "snippet": true, "type": "bad" }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" }, + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "+=", "3" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_RESEARCH_ENERGY_1", + "condition": { "math": [ "u_val('vitamin', 'name:creative_spark_research')", ">=", "energy_difficulty_1" ] }, + "effect": [ + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "-=", "energy_difficulty_1" ] }, + { "math": [ "energy_difficulty_1", "+=", "2" ] }, + { + "u_roll_remainder": [ + "battery_gun", + "ray_gun", + "inventor_light_minus_cell", + "inventor_light_cell", + "inventor_medium_cell", + "inventor_heavy_cell", + "inventor_welder", + "heater_tool", + "inventor_electric_fist", + "inventor_research_energy_2" + ], + "type": "recipe", + "true_eocs": [ "EOC_INVENTOR_MESSAGE_GOOD" ], + "false_eocs": { + "id": "EOC_REMOVE_RESEARCH_ENERGY_1", + "effect": [ + { "u_forget_recipe": "inventor_research_energy_1" }, + { + "u_message": "You reach the limit of what can be done at this level. It is time to move forward.", + "type": "info" + } + ] + } + }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" } + ], + "false_effect": [ + { "u_message": "inventor_fail", "snippet": true, "type": "bad" }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" }, + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "+=", "1" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_RESEARCH_ENERGY_2", + "condition": { "math": [ "u_val('vitamin', 'name:creative_spark_research')", ">=", "energy_difficulty_2" ] }, + "effect": [ + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "-=", "energy_difficulty_2" ] }, + { "math": [ "energy_difficulty_2", "+=", "3" ] }, + { + "u_roll_remainder": [ + "aura_force", + "ray_rifle", + "ion_gun", + "accelerator_gun", + "inventor_grenade_noise_expl", + "inventor_grenade_noise_emp", + "inventor_grenade_noise_fire", + "heater_gun", + "inventor_lasmod_close_range", + "inventor_lasmod_long_range", + "inventor_lasmod_capasitor", + "inventor_lasmod_energy_safe", + "inventor_research_energy_3" + ], + "type": "recipe", + "true_eocs": [ "EOC_INVENTOR_MESSAGE_GOOD" ], + "false_eocs": { + "id": "EOC_REMOVE_RESEARCH_ENERGY_2", + "effect": [ + { "u_forget_recipe": "inventor_research_energy_2" }, + { + "u_message": "You reach the limit of what can be done at this level. It is time to move forward.", + "type": "info" + } + ] + } + }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" } + ], + "false_effect": [ + { "u_message": "inventor_fail", "snippet": true, "type": "bad" }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" }, + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "+=", "2" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_RESEARCH_ENERGY_3", + "condition": { "math": [ "u_val('vitamin', 'name:creative_spark_research')", ">=", "energy_difficulty_3" ] }, + "effect": [ + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "-=", "energy_difficulty_3" ] }, + { "math": [ "energy_difficulty_3", "+=", "4" ] }, + { + "u_roll_remainder": [ + "inventor_glauncher", + "inventor_glauncher_fire", + "inventor_glauncher_elec", + "inventor_glauncher_direct", + "death_ray", + "inventor_lasmod_mega_capasitor", + "inventor_research_ai_1", + "inventor_research_dimesnion_1" + ], + "type": "recipe", + "true_eocs": [ "EOC_INVENTOR_MESSAGE_GOOD" ], + "false_eocs": { + "id": "EOC_REMOVE_RESEARCH_ENERGY_3", + "effect": [ + { "u_forget_recipe": "inventor_research_energy_3" }, + { + "u_message": "You reach the limit of what can be done at this level. It is time to move forward.", + "type": "info" + } + ] + } + }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" } + ], + "false_effect": [ + { "u_message": "inventor_fail", "snippet": true, "type": "bad" }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" }, + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "+=", "3" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_RESEARCH_AI_1", + "condition": { + "and": [ + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", ">=", "base_difficulty_3" ] }, + { "math": [ "AI_sparks", ">=", "AI_difficulty_1" ] } + ] + }, + "effect": [ + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "-=", "base_difficulty_3" ] }, + { "math": [ "AI_sparks", "+=", "AI_difficulty_1" ] }, + { "math": [ "base_difficulty_3", "+=", "5" ] }, + { "math": [ "AI_difficulty_1", "+=", "5" ] }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" }, + { + "u_roll_remainder": [ "bot_sniperbot", "bot_shotgunbot", "bot_meleebot" ], + "type": "recipe", + "true_eocs": [ "EOC_INVENTOR_MESSAGE_GOOD" ], + "false_eocs": { + "id": "EOC_REMOVE_RESEARCH_AI_1", + "effect": [ + { "u_forget_recipe": "inventor_research_ai_1" }, + { + "u_message": "You reach the limit of what can be done at this level. It is time to move forward.", + "type": "info" + } + ] + } + } + ], + "false_effect": [ + { "u_message": "inventor_fail", "snippet": true, "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "+=", "4" ] }, + { "math": [ "AI_sparks", "+=", "4" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_RESEARCH_DIMENSION_1", + "condition": { + "and": [ + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", ">=", "base_difficulty_3" ] }, + { "math": [ "dimension_sparks", ">=", "dimension_difficulty_1" ] } + ] + }, + "effect": [ + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "-=", "base_difficulty_3" ] }, + { "math": [ "dimension_sparks", "+=", "dimension_difficulty_1" ] }, + { "math": [ "base_difficulty_3", "+=", "5" ] }, + { "math": [ "dimension_difficulty_1", "+=", "5" ] }, + { "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" }, + { + "u_roll_remainder": [ "rip_ticket" ], + "type": "recipe", + "true_eocs": [ "EOC_INVENTOR_MESSAGE_GOOD" ], + "false_eocs": { + "id": "EOC_REMOVE_RESEARCH_DIMENSION_1", + "effect": [ + { "u_forget_recipe": "inventor_research_dimesnion_1" }, + { + "u_message": "You reach the limit of what can be done at this level. It is time to move forward.", + "type": "info" + } + ] + } + } + ], + "false_effect": [ + { "u_message": "inventor_fail", "snippet": true, "type": "bad" }, + { "math": [ "u_val('vitamin', 'name:creative_spark_research')", "+=", "5" ] }, + { "math": [ "dimension_sparks", "+=", "4" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_PROCESS_SPARKS", + "condition": { "math": [ "u_val('vitamin', 'name:creative_spark')", ">", "0" ] }, + "effect": [ + { + "math": [ + "u_val('vitamin', 'name:creative_spark_research')", + "+=", + "u_val('vitamin', 'name:creative_spark') * floor( (base_difficulty_1 + base_difficulty_2 + base_difficulty_3 + energy_difficulty_1 + energy_difficulty_2 + energy_difficulty_3 + AI_difficulty_1 + dimension_difficulty_1) / 8 )" + ] + }, + { "math": [ "u_val('vitamin', 'name:creative_spark')", "=", "0" ] }, + { + "u_message": "creative_spark_research = ,\n base_difficulty_1 = ,\n base_difficulty_2 = ,\n base_difficulty_3 = ,\n energy_difficulty_1 = ,\n energy_difficulty_2 = ,\n energy_difficulty_3 = ,\n dimension_sparks = ,\n dimension_difficulty_1 = .", + "type": "debug" + } + ], + "false_effect": [ + { + "u_message": "creative_spark_research = ,\n base_difficulty_1 = ,\n base_difficulty_2 = ,\n base_difficulty_3 = ,\n energy_difficulty_1 = ,\n energy_difficulty_2 = ,\n energy_difficulty_3 = ,\n dimension_sparks = ,\n dimension_difficulty_1 = .", + "type": "debug" + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_INVENTOR_MESSAGE_GOOD", + "effect": { "u_message": "inventor_success", "snippet": true, "type": "good" } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/eocs/item_eocs.json b/data/Mainline_mods/Mods/Xedra_Evolved/eocs/item_eocs.json new file mode 100644 index 000000000..6dc2ab30b --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/eocs/item_eocs.json @@ -0,0 +1,27 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_WINCH_INITIAL", + "effect": [ + { "u_location_variable": { "u_val": "winch_teleport" }, "min_radius": 0, "max_radius": 0 }, + { "u_message": "You draw a coordinates in constructed beam.", "type": "good" } + ] + }, + { + "id": "EOC_WINCH_TELEPORT", + "type": "effect_on_condition", + "effect": [ { "u_teleport": { "u_val": "winch_teleport" } } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_READ_LOCAL_FILES_XEDRA", + "condition": { + "and": [ + { "math": [ "u_skill('computer')", ">=", "2" ] }, + { "roll_contested": { "math": [ "u_skill('deduction')" ] }, "difficulty": 12 } + ] + }, + "effect": [ { "u_message": "local_files_xedra", "snippet": true, "same_snippet": true, "popup": true } ], + "false_effect": [ { "u_message": "You found nothing interesting." } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/eocs/scenario_specific.json b/data/Mainline_mods/Mods/Xedra_Evolved/eocs/scenario_specific.json new file mode 100644 index 000000000..dd6c3d638 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/eocs/scenario_specific.json @@ -0,0 +1,60 @@ +[ + { + "type": "effect_on_condition", + "id": "scenario_once_bitten", + "eoc_type": "SCENARIO_SPECIFIC", + "effect": [ { "u_add_effect": "vampire_virus", "intensity": 1, "duration": "PERMANENT" } ] + }, + { + "type": "effect_on_condition", + "id": "scenario_paraclesian_birth", + "eoc_type": "SCENARIO_SPECIFIC", + "condition": { "u_has_trait": "IERDE" }, + "effect": [ { "u_learn_recipe": "mutagen_earthkin" }, { "u_learn_recipe": "cthonic_poultice" } ], + "false_effect": { + "run_eocs": [ + { + "id": "scenario_paraclesian_birth2", + "condition": { "u_has_trait": "UNDINE" }, + "effect": [ { "u_learn_recipe": "mutagen_waterkin" }, { "u_learn_recipe": "cerulean_poultice" } ], + "false_effect": { + "run_eocs": [ + { + "id": "scenario_paraclesian_birth3", + "condition": { "u_has_trait": "SALAMANDER" }, + "effect": [ { "u_learn_recipe": "mutagen_flamekin" }, { "u_learn_recipe": "charred_sacrifice" } ], + "false_effect": { + "run_eocs": [ + { + "id": "scenario_paraclesian_birth4", + "condition": { "u_has_trait": "SYLPH" }, + "effect": [ { "u_learn_recipe": "mutagen_airkin" }, { "u_learn_recipe": "ethereal_draught" } ], + "false_effect": { + "run_eocs": [ + { + "id": "scenario_paraclesian_birth5", + "condition": { "u_has_trait": "HOMULLUS" }, + "effect": [ { "u_learn_recipe": "mutagen_dollkin" }, { "u_learn_recipe": "doll_repair_paste" } ], + "false_effect": { + "run_eocs": [ + { + "id": "scenario_paraclesian_birth6", + "condition": { "u_has_trait": "ARVORE" }, + "effect": [ { "u_learn_recipe": "mutagen_plantkin" }, { "u_learn_recipe": "verdant_poultice" } ] + } + ] + } + } + ] + } + } + ] + } + } + ] + } + } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/field_type.json b/data/Mainline_mods/Mods/Xedra_Evolved/field_type.json new file mode 100644 index 000000000..e217e5174 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/field_type.json @@ -0,0 +1,140 @@ +[ + { + "id": "fd_mirrored", + "type": "field_type", + "//": "Similar effect to Angle Dog Fog.", + "intensity_levels": [ + { + "name": "rainbow glimmer", + "color": "light_green_yellow", + "sym": "^", + "dangerous": true, + "intensity_upgrade_chance": 10, + "intensity_upgrade_duration": "6 hours" + }, + { + "name": "nauseating tension", + "color": "cyan", + "monster_spawn_chance": 34000, + "monster_spawn_count": 1, + "monster_spawn_radius": 1, + "monster_spawn_group": "GROUP_CHANGELING_MIRRORED_FIELD" + }, + { + "name": "broken reflections", + "color": "magenta_yellow", + "transparent": false, + "monster_spawn_chance": 46000, + "monster_spawn_count": 3, + "monster_spawn_radius": 6, + "monster_spawn_group": "GROUP_CHANGELING_MIRRORED_FIELD" + } + ], + "description_affix": "under", + "priority": 8, + "display_items": true, + "display_field": true, + "looks_like": "fd_smoke" + }, + { + "id": "fd_blood_karma", + "type": "field_type", + "intensity_levels": [ { "name": "karma splatter", "color": "cyan" }, { "name": "karma stain" }, { "name": "puddle of karma" } ], + "description_affix": "covered_in", + "underwater_age_speedup": "25 minutes", + "decay_amount_factor": 2, + "is_splattering": true, + "half_life": "2 days", + "phase": "liquid", + "accelerated_decay": true, + "display_field": true + }, + { + "id": "fd_acidic_mist", + "type": "field_type", + "intensity_levels": [ + { + "name": "greenish mist", + "sym": "~", + "dangerous": true, + "transparent": false, + "translucency": 5, + "effects": [ + { + "effect_id": "acidic_mist", + "intensity": 1, + "min_duration": "2 seconds", + "max_duration": "2 seconds", + "immune_in_vehicle": true, + "is_environmental": true, + "message": "The mist hisses as it touches you!", + "message_npc": "The mist hisses around !", + "message_type": "bad" + } + ] + }, + { + "name": " green tinged fog", + "translucency": 3, + "effects": [ + { + "effect_id": "acidic_mist", + "intensity": 2, + "min_duration": "4 seconds", + "max_duration": "4 seconds", + "immune_in_vehicle": true, + "is_environmental": true, + "message": "The mist hisses and pops as it touches you!", + "message_npc": "The mist hisses and pops around !", + "message_type": "bad" + } + ] + }, + { + "name": "dense dark green fog", + "translucency": 1, + "effects": [ + { + "effect_id": "acidic_mist", + "intensity": 3, + "min_duration": "6 seconds", + "max_duration": "6 seconds", + "immune_in_vehicle": true, + "is_environmental": true, + "message": "The mist sizzles and pits your gear as it touches you!", + "message_npc": "The mist sizzles and pits 's gear!", + "message_type": "bad" + } + ] + } + ], + "decay_amount_factor": 15, + "gas_absorption_factor": 5, + "percent_spread": 30, + "has_acid": true, + "outdoor_age_speedup": "1 minutes", + "dirty_transparency_cache": true, + "immunity_data": { "flags": [ "ACID_IMMUNE" ] }, + "priority": 8, + "half_life": "7 minutes", + "phase": "gas", + "display_items": false, + "display_field": true, + "looks_like": "fd_smoke" + }, + { + "id": "fd_salamander_heat", + "type": "field_type", + "intensity_levels": [ + { "name": "heated air", "sym": "&", "convection_temperature_mod": 12 }, + { "color": "yellow", "convection_temperature_mod": 22 }, + { "color": "red", "convection_temperature_mod": 45 } + ], + "decay_amount_factor": 5, + "percent_spread": 10, + "outdoor_age_speedup": "40 minutes", + "priority": -1, + "half_life": "20 minutes", + "phase": "gas" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/flags.json b/data/Mainline_mods/Mods/Xedra_Evolved/flags.json new file mode 100644 index 000000000..0ff8d5af4 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/flags.json @@ -0,0 +1,7 @@ +[ + { + "id": "IRONSWORN", + "type": "json_flag", + "info": "This gear completely protects you from cold iron damage." + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/furniture-plants.json b/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/furniture-plants.json new file mode 100644 index 000000000..0c841f817 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/furniture-plants.json @@ -0,0 +1,37 @@ +[ + { + "type": "furniture", + "id": "f_elder_ginseng", + "name": "hundred year old ginseng", + "description": "The ginseng plant has leaves that grow in a circle around a straight stem. Yellowish-green, umbrella-shaped flowers grow in the center and produce red berries. Wrinkles around the neck of the root tell how old the plant is. This plant is over a hundred years old and if you decide to harvest it, you will need the roots.", + "symbol": "*", + "color": "cyan", + "looks_like": "f_burdock", + "move_cost_mod": 0, + "required_str": -1, + "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "ORGANIC" ], + "examine_action": "harvest_furn", + "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn" ], "id": "elder_ginseng_harv" } ], + "bash": { "str_min": 2, "str_max": 6, "sound": "crunch.", "sound_fail": "whish." } + }, + { + "type": "furniture", + "id": "f_magic_brambles", + "name": "brambles", + "looks_like": "f_brambles", + "symbol": "#", + "bgcolor": "brown", + "description": "A thick wall of tangled brambles grows here. Vicious thorns protrude from the stems.", + "move_cost_mod": 8, + "coverage": 75, + "required_str": -1, + "flags": [ "TRANSPARENT", "BLOCKSDOOR", "PAINFUL", "SHARP", "PERMEABLE", "THIN_OBSTACLE", "SHRUB" ], + "bash": { + "str_min": 30, + "str_max": 80, + "sound": "smash", + "sound_fail": "whump.", + "items": [ { "item": "splinter", "count": [ 10, 15 ] } ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/furniture.json b/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/furniture.json index 5337efb44..750b2bd59 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/furniture.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/furniture.json @@ -3,14 +3,35 @@ "type": "furniture", "id": "f_golden_monolith", "name": "golden monolith", + "//": "The golden monolith produces mist that summons changelings, basically the equivalent of a tear in reality.", "move_cost_mod": -1, "symbol": "H", "color": "white_yellow", "coverage": 60, - "description": "A shiny golden monolith covered in shimmering pictograms. There is a mist condensing near it.", + "description": "A shiny golden monolith covered in shimmering pictograms. There is a mist condensing near it. A light seems to emanate from it.", "light_emitted": 15, "emissions": [ "emit_changeling_mist" ], "required_str": -1, + "bash": { + "str_min": 600, + "str_max": 860, + "furn_set": "f_broken_golden_monolith", + "sound": "smash!", + "sound_fail": "thump.", + "items": [ { "item": "rock", "count": [ 5, 15 ] }, { "item": "sharp_rock", "count": [ 3, 5 ] } ] + } + }, + { + "type": "furniture", + "id": "f_broken_golden_monolith", + "name": "broken golden monolith", + "move_cost_mod": -1, + "symbol": "H", + "color": "white_yellow", + "coverage": 60, + "description": "A dully glowing golden monolith, the golden pictograms covering it have been scarred by a tremendous force.", + "light_emitted": 3, + "required_str": -1, "bash": { "str_min": 600, "str_max": 860, @@ -50,7 +71,7 @@ "str_max": 150, "sound": "crunch!", "sound_fail": "whack!", - "ter_set": "t_console_broken", + "ter_set": "t_metal_floor", "items": [ { "item": "processor", "prob": 25 }, { "item": "RAM", "count": [ 0, 2 ], "prob": 50 }, @@ -64,5 +85,120 @@ { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } ] } + }, + { + "type": "furniture", + "id": "xe_f_throne", + "name": "throne", + "symbol": "#", + "description": "An ornate wooden throne, with four legs, a seat, and a back. It's good to be king, if just for a while. It appears to have been joined without any nails.", + "color": "brown", + "move_cost_mod": 1, + "coverage": 40, + "comfort": 1, + "floor_bedding_warmth": -1500, + "bonus_fire_warmth_feet": 1000, + "required_str": 8, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "ORGANIC", "MOUNTABLE", "CAN_SIT", "ALIGN_WORKBENCH" ], + "bash": { + "str_min": 6, + "str_max": 20, + "sound": "smash!", + "sound_fail": "whump.", + "items": [ { "item": "splinter", "count": [ 15, 30 ] } ] + } + }, + { + "type": "furniture", + "id": "xe_f_balefire", + "name": "Balefire", + "description": "A giant blue white fire produces a cool light and almost no heat.", + "symbol": "O", + "required_str": -1, + "move_cost_mod": -1, + "color": "light_blue", + "coverage": 30, + "light_emitted": 55, + "flags": [ "TRANSPARENT", "NOITEM", "BLOCKSDOOR" ], + "bash": { + "str_min": 20, + "str_max": 30, + "sound_fail": "smash!", + "items": [ { "item": "glass_shard", "count": [ 8, 12 ] }, { "item": "scrap_dreamdross", "count": [ 2, 10 ] } ] + } + }, + { + "type": "furniture", + "id": "f_bat_roost", + "name": "bat roost", + "//": "Need to add uses for bat guano so this item makes sense.", + "description": "A series of raised horizontal slats for bats to rest on right above eye level, covered in tiny claw marks. Below, there is a pull-out drawer that collects guano so it can be easily washed out, similar to a litter box.", + "symbol": "^", + "color": "brown", + "move_cost_mod": 1, + "required_str": 10, + "looks_like": "f_rack_wood", + "flags": [ "TRANSPARENT", "FLAT", "MOUNTABLE" ], + "deconstruct": { + "items": [ + { "item": "2x4", "count": [ 11, 12 ] }, + { "item": "nail", "charges": [ 30, 36 ] }, + { "item": "pebble", "charges": [ 180, 200 ] }, + { "item": "feces_bat", "count": [ 70, 75 ] } + ] + }, + "bash": { + "str_min": 6, + "str_max": 14, + "sound": "crunch.", + "sound_fail": "whish.", + "items": [ + { "item": "2x4", "count": [ 4, 10 ] }, + { "item": "nail", "charges": [ 15, 30 ] }, + { "item": "pebble", "charges": [ 150, 200 ] }, + { "item": "feces_bat", "count": [ 60, 75 ] } + ] + } + }, + { + "type": "furniture", + "id": "f_elemental_altar", + "name": "altar of elements", + "move_cost_mod": 10, + "symbol": "H", + "color": "light_gray", + "coverage": 40, + "required_str": 30, + "light_emitted": 4, + "crafting_pseudo_item": "sacrifice_table", + "examine_action": "workbench", + "workbench": { "multiplier": 1.1, "mass": 200000, "volume": "75L" }, + "description": "This is a dramatic stone altar, it glows faintly in the dark. Each of the four corners has a place for one of the cardinal elements as well as several recessed spaces around the center of the altar.", + "bash": { + "str_min": 30, + "str_max": 160, + "sound": "smash!", + "sound_fail": "thump.", + "items": [ { "item": "rock", "count": [ 5, 15 ] }, { "item": "sharp_rock", "count": [ 3, 5 ] } ] + } + }, + { + "type": "terrain", + "id": "t_barkfloor_no_roof", + "looks_like": "t_barkfloor", + "name": "bark", + "description": "A solid piece of bark covers the floor here, open to the sky.", + "symbol": ".", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "FLAT", "ROAD" ], + "bash": { + "sound": "SMASH!", + "ter_set": "t_dirt", + "str_min": 50, + "str_max": 400, + "str_min_supported": 100, + "items": [ { "item": "splinter", "count": [ 2, 8 ] } ] + } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/terrain-doors.json b/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/terrain-doors.json index 70040b154..c0c121d1b 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/terrain-doors.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/terrain-doors.json @@ -30,7 +30,7 @@ "symbol": "'", "color": "light_gray", "move_cost": 2, - "flags": [ "TRANSPARENT", "FLAT", "CONNECT_TO_WALL", "ROAD" ], + "flags": [ "TRANSPARENT", "FLAT", "CONNECT_WITH_WALL", "ROAD" ], "close": "t_secretdoor_wall_c", "bash": { "str_min": 30, @@ -40,5 +40,197 @@ "ter_set": "t_mdoor_frame", "items": "wall_bash_results" } + }, + { + "type": "terrain", + "id": "t_door_elocked", + "name": "closed wood door with an electronic lock", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one has a deadbolt electronic lock, so it's likely locked. You could pry it open or guess the code; if you were able to deduce it, or unlock the deadbolt from the inside.", + "symbol": "+", + "looks_like": "t_door_c", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_wood_roof", + "flags": [ + "FLAMMABLE_ASH", + "NOITEM", + "OPENCLOSE_INSIDE", + "REDUCE_SCENT", + "CONNECT_WITH_WALL", + "BARRICADABLE_DOOR", + "LOCKED", + "BLOCK_WIND", + "SUPPORTS_ROOF" + ], + "examine_action": { + "type": "effect_on_condition", + "effect_on_conditions": [ + { + "id": "eoc_unlock_elock", + "condition": { "roll_contested": { "math": [ "u_skill('deduction')" ] }, "difficulty": 12 }, + "effect": [ + { "u_location_variable": { "global_val": "door_transform" }, "min_radius": 1, "max_radius": 2 }, + { + "u_transform_radius": 2, + "ter_furn_transform": "unlock_elock", + "target_var": { "global_val": "door_transform" } + }, + { + "u_transform_radius": 2, + "ter_furn_transform": "unlock_elock", + "target_var": { "global_val": "door_transform" }, + "time_in_future": [ "2 seconds", "10 seconds" ] + }, + { "u_message": "The numpad glows green and emits a happy chirp as the door unlocks.", "popup": true } + ], + "false_effect": { "u_message": "The numpad flashes while beeping angrily at you.", "popup": true } + } + ] + }, + "open": "t_door_o", + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + }, + "prying": { + "result": "t_door_o", + "message": "You pry open the door.", + "prying_data": { "difficulty": 6, "prying_level": 2, "noisy": true, "failure": "You pry, but can't pry open the door." } + }, + "shoot": { "reduce_damage": [ 15, 30 ], "reduce_damage_laser": [ 5, 20 ], "destroy_damage": [ 20, 90 ] } + }, + { + "type": "terrain", + "id": "t_door_elocked_peep", + "name": "closed wood door", + "description": "A regular door made of ordinary wood, except this one has a peephole. If you examined it more closely, you'd be able to peek through the hole. This one has a deadbolt numpad, so it's likely locked. You could pry it open or possibly guess the code; if you were able to deduce it, or unlock the deadbolt from the inside.", + "symbol": "+", + "looks_like": "t_door_c_peep", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_wood_roof", + "flags": [ + "FLAMMABLE_ASH", + "NOITEM", + "OPENCLOSE_INSIDE", + "REDUCE_SCENT", + "CONNECT_WITH_WALL", + "BARRICADABLE_DOOR", + "LOCKED", + "BLOCK_WIND", + "SUPPORTS_ROOF" + ], + "open": "t_door_o_peep", + "examine_action": { "type": "effect_on_condition", "effect_on_conditions": [ "eoc_unlock_elock" ] }, + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_b_peep", + "items": [ + { "item": "peephole", "prob": 75 }, + { "item": "2x4", "prob": 25 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + }, + "prying": { + "result": "t_door_o_peep", + "message": "You pry open the door.", + "prying_data": { "difficulty": 6, "prying_level": 2, "noisy": true, "failure": "You pry, but can't pry open the door." } + }, + "shoot": { "reduce_damage": [ 15, 30 ], "reduce_damage_laser": [ 5, 20 ], "destroy_damage": [ 20, 90 ] } + }, + { + "type": "terrain", + "id": "t_door_elocked_alarm", + "name": "closed wood door", + "description": "A standard wooden door that doesn't look very resilient. It'd probably burn easily, too. This one has an electronic keypad, so it's likely locked. You could pry it open or try to guess the code; if you were able to deduce it.", + "symbol": "+", + "looks_like": "t_door_locked", + "color": "brown", + "move_cost": 0, + "coverage": 95, + "roof": "t_wood_roof", + "flags": [ + "FLAMMABLE_ASH", + "ALARMED", + "NOITEM", + "REDUCE_SCENT", + "CONNECT_WITH_WALL", + "BARRICADABLE_DOOR", + "LOCKED", + "BLOCK_WIND", + "SUPPORTS_ROOF" + ], + "examine_action": { "type": "effect_on_condition", "effect_on_conditions": [ "eoc_unlock_elock" ] }, + "bash": { + "str_min": 8, + "str_max": 80, + "str_min_blocked": 15, + "str_max_blocked": 100, + "sound": "smash!", + "sound_fail": "whump!", + "ter_set": "t_door_b", + "items": [ + { "item": "2x4", "prob": 25 }, + { "item": "wood_panel", "prob": 10 }, + { "item": "splinter", "count": [ 1, 2 ] }, + { "item": "nail", "charges": [ 0, 2 ] } + ] + }, + "prying": { + "result": "t_door_o", + "message": "You pry open the door.", + "prying_data": { "difficulty": 6, "prying_level": 2, "noisy": true, "alarm": true, "failure": "You pry, but can't pry open the door." } + }, + "shoot": { "reduce_damage": [ 15, 30 ], "reduce_damage_laser": [ 5, 20 ], "destroy_damage": [ 20, 90 ] } + }, + { + "type": "terrain", + "id": "t_door_metal_elocked", + "name": "electronic locked metal door", + "description": "An extremely resilient door made of assorted steel, carved and pounded into shape. It is locked by an electronic keypad. You could try to guess the code.", + "symbol": "+", + "looks_like": "t_door_metal_c", + "color": "cyan", + "move_cost": 0, + "coverage": 95, + "roof": "t_metal_roof", + "flags": [ "NOITEM", "DOOR", "CONNECT_WITH_WALL", "LOCKED", "SUPPORTS_ROOF" ], + "oxytorch": { + "result": "t_mdoor_frame", + "duration": "14 seconds", + "byproducts": [ { "item": "steel_plate", "count": [ 0, 1 ] }, { "item": "steel_chunk", "count": [ 3, 8 ] } ] + }, + "examine_action": { "type": "effect_on_condition", "effect_on_conditions": [ "eoc_unlock_elock" ] }, + "bash": { + "str_min": 80, + "str_max": 250, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_mdoor_lab_frame", + "items": [ + { "item": "scrap", "count": [ 12, 24 ] }, + { "item": "steel_plate", "prob": 75 }, + { "item": "hinge", "count": [ 1, 3 ] } + ] + } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/terrain-flora.json b/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/terrain-flora.json new file mode 100644 index 000000000..dd0f63a67 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/furniture_and_terrain/terrain-flora.json @@ -0,0 +1,169 @@ +[ + { + "type": "terrain", + "id": "t_tree_fig", + "name": "fig tree", + "looks_like": "t_tree", + "description": "This tree is Ficus carica, a species of small tree in the flowering plant family Moraceae, native to the Mediterranean region, together with western and southern Asia. If you examined the branches more closely, you could probably find a few mature ones in autumn.", + "symbol": "7", + "color": [ "light_green", "light_green", "red", "brown" ], + "//": "barren in winter, fruits in autumn", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_fig_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "fig_harv" } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_fig_harvested", + "name": "fig tree", + "looks_like": "t_tree_dead", + "description": "This tree is Ficus carica, a species of small tree in the flowering plant family Moraceae, native to the Mediterranean region, together with western and southern Asia. There do not appear to be any ripe apples now.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_fig", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_pomegranate", + "name": "fig tree", + "looks_like": "t_tree", + "description": "This tree is Punica granatum is a fruit-bearing deciduous shrub in the family Lythraceae, subfamily Punicoideae, that grows between 5 and 10 m (16 and 33 ft) tall. If you examined the branches more closely, you could probably find a few mature ones in autumn.", + "symbol": "7", + "color": [ "light_green", "light_green", "red", "brown" ], + "//": "barren in winter, fruits in autumn", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "transforms_into": "t_tree_pomegranate_harvested", + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "pomegranate_harv" } ], + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_pomegranate_harvested", + "name": "fig tree", + "looks_like": "t_tree_dead", + "description": "This tree is Punica granatum is a fruit-bearing deciduous shrub in the family Lythraceae, subfamily Punicoideae, that grows between 5 and 10 m (16 and 33 ft) tall. There do not appear to be any ripe apples now.", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "//": "barren in winter, no fruits anymore", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_pomegranate", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_hawthorn", + "name": "hawthorn tree", + "looks_like": "t_tree", + "description": "Crataegus monogyna, known as common hawthorn, one-seed hawthorn, or single-seeded hawthorn, is a species of flowering plant in the rose family Rosaceae.", + "symbol": "7", + "color": [ "light_green", "light_green", "i_light_green", "brown" ], + "//": "berries in autum and in winter, harvestable petals in spring", + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "examine_action": "harvest_ter_nectar", + "harvest_by_season": [ + { "seasons": [ "spring" ], "id": "hawthorn_petal_harv" }, + { "seasons": [ "autumn", "winter" ], "id": "hawthorn_berry_harv" } + ], + "transforms_into": "t_tree_hawthorn_harvested", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + }, + { + "type": "terrain", + "id": "t_tree_hawthorn_harvested", + "looks_like": "t_tree_harvested", + "description": "Crataegus monogyna, known as common hawthorn, one-seed hawthorn, or single-seeded hawthorn, is a species of flowering plant in the rose family Rosaceae. It looks like the tree has been picked clean of hawthorns.", + "name": "hawthorn tree", + "symbol": "7", + "color": [ "light_green", "light_green", "light_green", "brown" ], + "move_cost": 0, + "coverage": 80, + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "examine_action": "harvested_plant", + "transforms_into": "t_tree_hawthorn", + "bash": { + "str_min": 80, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_dirt", + "items": [ + { "item": "stick_long", "count": [ 3, 10 ] }, + { "item": "splinter", "count": [ 10, 25 ] }, + { "item": "leaves", "count": [ 50, 150 ] } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/harvest.json b/data/Mainline_mods/Mods/Xedra_Evolved/harvest.json index 5b081d580..1057674ba 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/harvest.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/harvest.json @@ -13,5 +13,54 @@ { "drop": "fae_fur", "type": "skin", "mass_ratio": 0.04 }, { "drop": "fat", "type": "flesh", "mass_ratio": 0.04 } ] + }, + { + "id": "stoneling", + "type": "harvest", + "entries": [ { "drop": "pebble", "type": "blood", "mass_ratio": 0.1 }, { "drop": "rock", "type": "flesh", "mass_ratio": 0.4 } ] + }, + { + "id": "water_elemental", + "type": "harvest", + "entries": [ + { "drop": "fae_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "fae_meat", "type": "flesh", "mass_ratio": 0.4 } + ] + }, + { + "id": "rat_with_skull_arvore", + "type": "harvest", + "entries": [ + { "drop": "skull_rodent", "type": "bone", "scale_num": [ 1, 1 ], "max": 1 }, + { "drop": "fae_meat_scrap", "type": "flesh", "mass_ratio": 0.5 }, + { "drop": "fae_blood", "type": "blood", "mass_ratio": 0.1 } + ] + }, + { + "id": "fae_flying", + "type": "harvest", + "entries": [ + { "drop": "fae_meat", "type": "flesh", "mass_ratio": 0.3 }, + { "drop": "fae_blood", "type": "blood", "mass_ratio": 0.1 }, + { "drop": "sinew", "type": "bone", "mass_ratio": 0.003 }, + { "drop": "endochitin", "type": "bone", "mass_ratio": 0.01 }, + { "drop": "fae_organs", "type": "offal", "mass_ratio": 0.03 }, + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 } + ] + }, + { + "id": "fig_harv", + "type": "harvest", + "entries": [ { "drop": "fig", "base_num": [ 2, 5 ], "scale_num": [ 0, 0.5 ] } ] + }, + { + "id": "pomegranate_harv", + "type": "harvest", + "entries": [ { "drop": "pomegranate", "base_num": [ 2, 5 ], "scale_num": [ 0, 0.5 ] } ] + }, + { + "id": "elder_ginseng_harv", + "type": "harvest", + "entries": [ { "drop": "xe_elder_ginseng", "base_num": [ 1, 1 ] } ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/dreamer_artifacts.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/dreamer_artifacts.json new file mode 100644 index 000000000..182b68299 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/dreamer_artifacts.json @@ -0,0 +1,39 @@ +[ + { + "type": "item_group", + "//": "Dreamer artifact creation itemgroup.", + "id": "dreamer_artifacts", + "subtype": "distribution", + "items": [ + [ "xe_art_clock", 100 ], + [ "xe_art_rod", 100 ], + [ "xe_art_monitor", 100 ], + [ "xe_art_mess", 100 ], + [ "xe_art_sculpture", 100 ], + [ "xe_art_disc", 100 ], + [ "xe_art_instrument", 100 ], + [ "xe_art_napkin", 100 ], + [ "xe_art_urchin", 100 ], + [ "xe_art_jelly", 100 ], + [ "xe_art_spiral", 100 ], + [ "xe_art_pin", 100 ], + [ "xe_art_tube", 100 ], + [ "xe_art_pyramid", 100 ], + [ "xe_art_crystal", 100 ], + [ "xe_art_knot", 100 ], + [ "xe_art_crescent", 100 ] + ] + }, + { + "type": "item_group", + "id": "dreamer_artifact", + "subtype": "distribution", + "entries": [ + { + "group": "dreamer_artifacts", + "artifact": { "procgen_id": "dreamer_artifacts", "rules": { "power_level": 500, "max_attributes": 1, "resonant": false } }, + "prob": 100 + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/dreamsmith_procgen.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/dreamsmith_procgen.json new file mode 100644 index 000000000..48b2f479b --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/dreamsmith_procgen.json @@ -0,0 +1,495 @@ +[ + { + "type": "item_group", + "id": "dreamforged_q_staff_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_q_staff", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_longsword_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_longsword", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_warhammer_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_warhammer", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_spear_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_spear", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_halberd_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_halberd", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_glaive_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_glaive", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_naginata_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_naginata", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_mace_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_mace", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_morningstar_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_morningstar", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_estoc_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_estoc", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_arming_sword_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_arming_sword", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_broadsword_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_broadsword", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_battleaxe_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_battleaxe", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_katana_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_katana", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_knife_combat_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_knife_combat", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_kris_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_kris", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_kukri_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_kukri", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_nodachi_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_nodachi", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_rapier_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_rapier", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_tanto_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_tanto", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_wakizashi_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_wakizashi", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_zweihander_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_zweihander", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_khopesh_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_khopesh", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_lucerne_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_lucerne", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_knuckle_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_knuckle", + "artifact": { + "procgen_id": "dreamsmith_lottery_atk", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_fullhelmet_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_fullhelmet", + "custom-flags": "FIT", + "artifact": { + "procgen_id": "dreamsmith_lottery_def", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_helmet_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_helmet", + "custom-flags": "FIT", + "artifact": { + "procgen_id": "dreamsmith_lottery_def", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_plate_armor_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_plate_armor", + "custom-flags": "FIT", + "artifact": { + "procgen_id": "dreamsmith_lottery_def", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_armguard_plate_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_armguard_plate", + "custom-flags": "FIT", + "artifact": { + "procgen_id": "dreamsmith_lottery_def", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "id": "dreamforged_boots_ench", + "subtype": "distribution", + "entries": [ + { + "item": "dreamforged_boots", + "custom-flags": "FIT", + "artifact": { + "procgen_id": "dreamsmith_lottery_def", + "rules": { "power_level": 5000, "max_attributes": 4, "max_negative_power": 0, "resonant": false } + }, + "prob": 100 + } + ] + }, + { + "type": "item_group", + "//": "Dreamsmith artifact creation itemgroup.", + "id": "dreamsmith_artifact", + "subtype": "distribution", + "entries": [ + { "group": "dreamforged_boots_ench", "prob": 100 }, + { "group": "dreamforged_armguard_plate_ench", "prob": 100 }, + { "group": "dreamforged_plate_armor_ench", "prob": 100 }, + { "group": "dreamforged_helmet_ench", "prob": 100 }, + { "group": "dreamforged_fullhelmet_ench", "prob": 100 }, + { "group": "dreamforged_knuckle_ench", "prob": 100 }, + { "group": "dreamforged_lucerne_ench", "prob": 100 }, + { "group": "dreamforged_khopesh_ench", "prob": 100 }, + { "group": "dreamforged_zweihander_ench", "prob": 100 }, + { "group": "dreamforged_wakizashi_ench", "prob": 100 }, + { "group": "dreamforged_tanto_ench", "prob": 100 }, + { "group": "dreamforged_rapier_ench", "prob": 100 }, + { "group": "dreamforged_nodachi_ench", "prob": 100 }, + { "group": "dreamforged_kukri_ench", "prob": 100 }, + { "group": "dreamforged_kris_ench", "prob": 100 }, + { "group": "dreamforged_knife_combat_ench", "prob": 100 }, + { "group": "dreamforged_katana_ench", "prob": 100 }, + { "group": "dreamforged_battleaxe_ench", "prob": 100 }, + { "group": "dreamforged_broadsword_ench", "prob": 100 }, + { "group": "dreamforged_arming_sword_ench", "prob": 100 }, + { "group": "dreamforged_estoc_ench", "prob": 100 }, + { "group": "dreamforged_morningstar_ench", "prob": 100 }, + { "group": "dreamforged_mace_ench", "prob": 100 }, + { "group": "dreamforged_naginata_ench", "prob": 100 }, + { "group": "dreamforged_glaive_ench", "prob": 100 }, + { "group": "dreamforged_halberd_ench", "prob": 100 }, + { "group": "dreamforged_spear_ench", "prob": 100 }, + { "group": "dreamforged_warhammer_ench", "prob": 100 }, + { "group": "dreamforged_longsword_ench", "prob": 100 }, + { "group": "dreamforged_q_staff_ench", "prob": 100 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/goblin_fruit.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/goblin_fruit.json new file mode 100644 index 000000000..1aa7156f7 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/goblin_fruit.json @@ -0,0 +1,26 @@ +[ + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit", + "subtype": "distribution", + "entries": [ + { "item": "goblin_fruit_healing", "prob": 1 }, + { "item": "goblin_fruit_illness", "prob": 1 }, + { "item": "goblin_fruit_attack_speed", "prob": 1 }, + { "item": "goblin_fruit_pain", "prob": 1 }, + { "item": "goblin_fruit_awake", "prob": 1 }, + { "item": "goblin_fruit_water", "prob": 1 }, + { "item": "goblin_fruit_purge_blood", "prob": 1 }, + { "item": "goblin_fruit_dodge", "prob": 1 }, + { "item": "goblin_fruit_night_vision", "prob": 1 }, + { "item": "goblin_fruit_no_bleed", "prob": 1 }, + { "item": "goblin_fruit_perception", "prob": 1 }, + { "item": "goblin_fruit_no_drunk", "prob": 1 }, + { "item": "goblin_fruit_no_rotten_food", "prob": 1 }, + { "item": "goblin_fruit_feather_fall", "prob": 1 }, + { "item": "goblin_fruit_super_clairvoyance", "prob": 1 }, + { "item": "goblin_fruit_water_breathing", "prob": 1 }, + { "item": "goblin_fruit_giant_growth", "prob": 1 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/harvest_dissection.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/harvest_dissection.json new file mode 100644 index 000000000..56818321b --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/harvest_dissection.json @@ -0,0 +1,146 @@ +[ + { + "id": "ierde_sample_single", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "ierde_sample" } ] + }, + { + "id": "ierde_sample_small", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "ierde_sample", "count-min": 1, "count-max": 3 } ] + }, + { + "id": "ierde_sample_large", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "ierde_sample", "count-min": 3, "count-max": 6 } ] + }, + { + "id": "ierde_sample_huge", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "ierde_sample", "count-min": 10, "count-max": 20 } ] + }, + { + "id": "arvore_sample_single", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "arvore_sample" } ] + }, + { + "id": "arvore_sample_small", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "arvore_sample", "count-min": 1, "count-max": 3 } ] + }, + { + "id": "arvore_sample_large", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "arvore_sample", "count-min": 3, "count-max": 6 } ] + }, + { + "id": "arvore_sample_huge", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "arvore_sample", "count-min": 10, "count-max": 20 } ] + }, + { + "id": "undine_sample_single", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "undine_sample" } ] + }, + { + "id": "undine_sample_small", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "undine_sample", "count-min": 1, "count-max": 3 } ] + }, + { + "id": "undine_sample_large", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "undine_sample", "count-min": 3, "count-max": 6 } ] + }, + { + "id": "undine_sample_huge", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "undine_sample", "count-min": 10, "count-max": 20 } ] + }, + { + "id": "salamander_sample_single", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "salamander_sample" } ] + }, + { + "id": "salamander_sample_small", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "salamander_sample", "count-min": 1, "count-max": 3 } ] + }, + { + "id": "salamander_sample_large", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "salamander_sample", "count-min": 3, "count-max": 6 } ] + }, + { + "id": "salamander_sample_huge", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "salamander_sample", "count-min": 10, "count-max": 20 } ] + }, + { + "id": "sylph_sample_single", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "sylph_sample" } ] + }, + { + "id": "sylph_sample_small", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "sylph_sample", "count-min": 1, "count-max": 3 } ] + }, + { + "id": "sylph_sample_large", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "sylph_sample", "count-min": 3, "count-max": 6 } ] + }, + { + "id": "sylph_sample_huge", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "sylph_sample", "count-min": 10, "count-max": 20 } ] + }, + { + "id": "homullus_sample_single", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "homullus_sample" } ] + }, + { + "id": "homullus_sample_small", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "homullus_sample", "count-min": 1, "count-max": 3 } ] + }, + { + "id": "homullus_sample_large", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "homullus_sample", "count-min": 3, "count-max": 6 } ] + }, + { + "id": "homullus_sample_huge", + "type": "item_group", + "subtype": "collection", + "entries": [ { "item": "homullus_sample", "count-min": 10, "count-max": 20 } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/itemgroups.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/itemgroups.json index dc3afd3e0..810e1e366 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/itemgroups.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/itemgroups.json @@ -16,7 +16,13 @@ { "item": "fun_survival", "prob": 10 }, { "item": "recipe_augs", "prob": 1 }, { "item": "decoy_anarch", "prob": 10 }, - { "item": "aspirin", "prob": 85, "charges": [ 1, 20 ] }, + { + "item": "aspirin", + "prob": 85, + "count": [ 1, 20 ], + "container-item": "null", + "entry-wrapper": "bottle_plastic_pill_painkiller" + }, { "item": "maltballs", "prob": 30 }, { "group": "cigar_box_opened", "prob": 20 }, { "group": "cigar_box_unopened", "prob": 5 }, @@ -45,6 +51,7 @@ { "group": "toy_robot_kit", "prob": 1 }, { "group": "toy_engine_kit", "prob": 1 }, { "item": "instant_coffee", "prob": 15 }, + { "item": "strange_coffee", "prob": 5 }, { "item": "usb_drive", "prob": 5 }, { "item": "coat_rain", "prob": 50 }, { "item": "hood_rain", "prob": 10 }, @@ -61,9 +68,9 @@ { "item": "umbrella", "prob": 5 }, { "item": "teleumbrella", "prob": 2 }, { "item": "mag_tailor", "prob": 5 }, - { "item": "gum", "prob": 20, "charges": [ 1, 10 ] }, - { "item": "caff_gum", "prob": 7, "charges": [ 1, 10 ] }, - { "item": "nic_gum", "prob": 5, "charges": [ 1, 10 ] }, + { "item": "gum", "prob": 20, "count": [ 1, 10 ] }, + { "item": "caff_gum", "prob": 7, "count": [ 1, 10 ] }, + { "item": "nic_gum", "prob": 5, "count": [ 1, 10 ] }, { "item": "sm_extinguisher", "prob": 10, "charges": 10 }, { "item": "pocketwatch", "prob": 2 }, { "item": "knitting_needles", "prob": 1 }, @@ -71,7 +78,8 @@ { "item": "eclipse_glasses", "prob": 1 }, { "group": "writing_utensils", "prob": 20 }, { "group": "softdrugs", "prob": 20 }, - { "item": "wyld_candy", "prob": 15, "container-item": "wrapper_wyld", "sealed": false } + { "prob": 15, "sealed": false, "group": "wyld_candy_wrapper_wyld_20" }, + { "item": "laptop_xedra", "prob": 3 } ] }, { @@ -89,7 +97,13 @@ [ "howto_traps", 10 ], [ "decoy_anarch", 8 ], [ "recipe_augs", 8 ], - { "item": "aspirin", "prob": 85, "charges": [ 1, 20 ] }, + { + "item": "aspirin", + "prob": 85, + "count": [ 1, 20 ], + "container-item": "null", + "entry-wrapper": "bottle_plastic_pill_painkiller" + }, [ "junk_burrito", 25 ], { "group": "tobacco_products", "prob": 31 }, [ "contacts", 15 ], @@ -110,14 +124,15 @@ { "item": "radio", "prob": 20, "charges": [ 0, 100 ] }, [ "bubblewrap", 50 ], [ "instant_coffee", 15 ], + [ "strange_coffee", 5 ], [ "usb_drive", 5 ], [ "software_useless", 10 ], [ "software_electronics_reference", 2 ], [ "umbrella", 5 ], [ "teleumbrella", 2 ], - { "item": "gum", "prob": 10, "charges": [ 1, 10 ] }, - { "item": "caff_gum", "prob": 6, "charges": [ 1, 10 ] }, - { "item": "nic_gum", "prob": 4, "charges": [ 1, 10 ] }, + { "item": "gum", "prob": 10, "count": [ 1, 10 ] }, + { "item": "caff_gum", "prob": 6, "count": [ 1, 10 ] }, + { "item": "nic_gum", "prob": 4, "count": [ 1, 10 ] }, [ "fan", 10 ], { "item": "sm_extinguisher", "prob": 10, "charges": 10 }, [ "pocketwatch", 2 ], @@ -129,15 +144,46 @@ [ "camera_control", 2 ], [ "eclipse_glasses", 1 ], { "group": "writing_utensils", "prob": 20 }, - { "item": "wyld_candy", "prob": 15, "container-item": "wrapper_wyld", "sealed": false } + { "prob": 15, "sealed": false, "group": "wyld_candy_wrapper_wyld_20" }, + { "item": "laptop_xedra", "prob": 3 } ] }, + { + "id": "kids_books", + "type": "item_group", + "subtype": "distribution", + "copy-from": "kids_books", + "extend": { "entries": [ { "item": "book_teens_deduction", "prob": 4 } ] } + }, + { + "id": "homebooks", + "type": "item_group", + "subtype": "distribution", + "copy-from": "homebooks", + "extend": { "entries": [ { "item": "manual_deduction", "prob": 1 }, { "item": "mag_deduction", "prob": 10 } ] } + }, + { + "id": "religious_books", + "type": "item_group", + "subtype": "distribution", + "copy-from": "religious_books", + "extend": { "entries": [ { "item": "book_deduction_black_iron_prison", "prob": 1 } ] } + }, + { + "type": "item_group", + "id": "softdrugs", + "subtype": "distribution", + "copy-from": "softdrugs", + "extend": { "entries": [ { "item": "truckstop_viagra", "prob": 15 } ] } + }, { "type": "item_group", "subtype": "distribution", "id": "xed_notes", + "//": "Itemgroup for lore snippet items in Xedra Offices and Labs.", "entries": [ { "item": "report_march_lord", "prob": 10 }, + { "item": "border_patrol_files", "prob": 10 }, { "item": "green_postit_field_agent", "prob": 40 }, { "item": "agent_postit_gray", "prob": 50 }, { "item": "agent_postit_migo", "prob": 20 } @@ -147,23 +193,24 @@ "type": "item_group", "id": "fae_furs", "items": [ - [ "hat_fur", 300 ], - [ "hat_faux_fur", 300 ], + [ "hat_fur", 30 ], + [ "hat_faux_fur", 30 ], [ "sleeveless_trenchcoat_fur", 10 ], [ "sleeveless_duster_fur", 10 ], [ "sleeveless_trenchcoat_faux_fur", 10 ], - [ "coat_fur_sf", 100 ], - [ "coat_faux_fur", 300 ], - [ "coat_fur", 300 ], - [ "gloves_fur", 300 ], - [ "boots_fur", 200 ], - [ "trenchcoat_faux_fur", 50 ], - [ "duster_faux_fur", 50 ], - [ "pants_faux_fur", 50 ], - [ "boots_glimmer_fur", 5 ], - [ "cloak_glimmer_fur", 5 ], + [ "coat_faux_fur", 30 ], + [ "coat_fur", 30 ], + [ "gloves_fur", 30 ], + [ "boots_fur", 20 ], + [ "trenchcoat_faux_fur", 10 ], + [ "duster_faux_fur", 10 ], + [ "pants_faux_fur", 10 ], + [ "boots_glimmer_fur", 8 ], + [ "cloak_glimmer_fur", 10 ], [ "coat_glimmer_fur", 1 ], - [ "duster_glimmer_fur", 1 ] + [ "duster_glimmer_fur", 1 ], + [ "sleeveless_duster_glimmer_fur", 1 ], + [ "sleeveless_trenchcoat_glimmer_fur", 1 ] ] }, { @@ -189,7 +236,10 @@ { "item": "xl_mt_chainmail_hands", "prob": 20 }, { "item": "xl_mt_chainmail_legs", "prob": 20 }, { "item": "xl_mt_chainmail_vest", "prob": 20 }, - { "item": "xl_mt_chainmail_feet", "prob": 20 } + { "item": "xl_mt_chainmail_feet", "prob": 20 }, + { "item": "xl_boots_glimmer_fur", "prob": 20 }, + { "item": "xl_coat_glimmer_fur", "prob": 20 }, + { "item": "xl_duster_glimmer_fur", "prob": 20 } ] }, { @@ -222,6 +272,7 @@ "type": "item_group", "subtype": "collection", "id": "vektor_pistol_cache", + "//": "Foreign agent safehouse pistol group.", "entries": [ { "item": "sr1vektor_mag_18rd", "ammo-item": "9x21mm", "charges": 18 }, { "item": "sr1vektor_mag_18rd", "ammo-item": "9x21mm", "charges": 18 }, @@ -238,88 +289,93 @@ { "item": "xs_mt_chainmail_hood", "prob": 20 }, { "item": "xs_mt_chainmail_hands", "prob": 20 }, { "item": "xs_mt_chainmail_legs", "prob": 20 }, - { "item": "xs_mt_chainmail_vest", "prob": 20 } + { "item": "xs_mt_chainmail_vest", "prob": 20 }, + { "item": "xs_boots_glimmer_fur", "prob": 20 }, + { "item": "xs_coat_glimmer_fur", "prob": 20 }, + { "item": "xs_duster_glimmer_fur", "prob": 20 } ] }, { "id": "SUS_junk_drawer", "type": "item_group", + "//": "Adding spell learning items to standard itemgroups", "copy-from": "SUS_junk_drawer", "subtype": "collection", - "extend": { - "items": [ - [ "fire_ball", 5 ], - [ "glass_dagger_paperweight", 5 ], - [ "deck_of_tarot_cards", 5 ], - [ "polaroid_of_missing_person", 5 ], - [ "brass_cylinders", 1 ], - [ "glass_berries", 1 ], - [ "occult_seal", 1 ], - [ "hurricane_lamp_thorns", 1 ], - [ "caravaggio_self_portrait", 1 ], - [ "magick_8_ball", 1 ] - ] - } + "extend": { "entries": [ { "group": "xe_all_spells_mid", "prob": 50 } ] } }, { "id": "SUS_junk_drawer_messy", "type": "item_group", + "//": "Adding spell learning items to standard itemgroups", "copy-from": "SUS_junk_drawer_messy", "subtype": "collection", - "extend": { - "items": [ - [ "fire_ball", 1 ], - [ "glass_dagger_paperweight", 1 ], - [ "deck_of_tarot_cards", 1 ], - [ "polaroid_of_missing_person", 1 ], - [ "brass_cylinders", 5 ], - [ "glass_berries", 5 ], - [ "occult_seal", 5 ], - [ "hurricane_lamp_thorns", 1 ], - [ "caravaggio_self_portrait", 1 ], - [ "magick_8_ball", 1 ] - ] - } + "extend": { "entries": [ { "group": "xe_all_spells_mid", "prob": 50 } ] } }, { "id": "SUS_office_filing_cabinet", "type": "item_group", + "//": "Adding spell learning items to standard itemgroups", "copy-from": "SUS_office_filing_cabinet", "subtype": "collection", - "extend": { - "items": [ - [ "hurricane_lamp_thorns", 5 ], - [ "caravaggio_self_portrait", 5 ], - [ "magick_8_ball", 5 ], - [ "fire_ball", 1 ], - [ "glass_dagger_paperweight", 1 ], - [ "deck_of_tarot_cards", 1 ], - [ "polaroid_of_missing_person", 1 ], - [ "brass_cylinders", 1 ], - [ "glass_berries", 1 ], - [ "occult_seal", 1 ] - ] - } + "extend": { "entries": [ { "group": "xe_all_spells_mid", "prob": 50 } ] } }, { "id": "costume_misc_items", "type": "item_group", + "//": "Adding spell learning items to standard itemgroups", "copy-from": "costume_misc_items", "subtype": "distribution", - "extend": { "items": [ [ "wolf_mask", 5 ], [ "magicians_hat", 5 ], [ "syringe_artifact", 5 ], [ "foil_hat", 1 ] ] } + "extend": { "items": [ [ "magicians_hat", 5 ] ] } }, { "id": "homebooks", "type": "item_group", + "//": "Adding spell learning items to standard itemgroups", "copy-from": "homebooks", "subtype": "distribution", - "extend": { - "entries": [ - { "item": "book_inventor", "prob": 1 }, - { "item": "money_strap_magic", "prob": 1 }, - { "item": "firmament_driver_book", "prob": 1 }, - { "item": "ray_diagrams", "prob": 1 } - ] - } + "extend": { "entries": [ { "item": "firmament_driver_book", "prob": 1 }, { "item": "eater_book_artifact", "prob": 1 } ] } + }, + { + "id": "renfield_glock_mags", + "//": "Magazine item group for vampire servants.", + "type": "item_group", + "subtype": "distribution", + "items": [ + { "item": "glockmag", "prob": 20, "charges": [ 0, 15 ] }, + { "item": "glockbigmag", "prob": 10, "charges": [ 0, 30 ] }, + { "item": "glock40bigmag", "prob": 10, "charges": [ 0, 40 ] }, + { "item": "glock17_17", "prob": 5, "charges": [ 0, 17 ] }, + { "item": "glock17_22", "prob": 10, "charges": [ 0, 22 ] }, + { "item": "glock_drum_50rd", "prob": 20, "charges": [ 0, 50 ] }, + { "item": "glock_drum_100rd", "prob": 5, "charges": [ 0, 100 ] } + ] + }, + { + "id": "blood_containers", + "type": "item_group", + "subtype": "distribution", + "items": [ + [ "flask_hip", 100 ], + [ "bowl_skull", 100 ], + { "item": "blood", "prob": 40, "container-item": "flask_hip" }, + { "item": "blood", "prob": 20, "container-item": "2lcanteen" }, + { "item": "blood", "prob": 40, "container-item": "bag_iv" }, + { "item": "blood", "prob": 40, "container-item": "bottle_glass" }, + { "item": "blood", "prob": 30, "container-item": "bottle_plastic" }, + { "item": "blood", "prob": 20, "container-item": "bottle_plastic_small" }, + { "item": "blood", "prob": 20, "container-item": "camelbak" }, + { "item": "blood", "prob": 20, "container-item": "canteen" }, + { "item": "blood", "prob": 10, "container-item": "thermos" }, + { "item": "blood", "prob": 5, "container-item": "blood_camel" }, + { "item": "blood", "prob": 1, "container-item": "blood_bank" } + ] + }, + { + "type": "item_group", + "id": "wyld_candy_wrapper_wyld_20", + "subtype": "collection", + "//": "This group was created automatically and may contain errors.", + "container-item": "wrapper_wyld", + "entries": [ { "item": "wyld_candy", "container-item": "null", "count": 20 } ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/map_extra_itemgroups.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/map_extra_itemgroups.json index 5c372f288..8261e370e 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/map_extra_itemgroups.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/map_extra_itemgroups.json @@ -3,13 +3,28 @@ "type": "item_group", "subtype": "collection", "id": "map_extra_fae", + "//": "Drugdealer with access to fae drugs.", "entries": [ { "group": "drugdealer", "prob": 75 }, { "distribution": [ - { "item": "lsd", "container-item": "bag_zipper", "charges-min": 20, "charges-max": 30, "prob": 10 }, - { "item": "faewild", "container-item": "bag_zipper", "charges-min": 10, "charges-max": 20, "prob": 40 }, - { "item": "lotus_blossom", "container-item": "bag_zipper", "charges-min": 8, "charges-max": 14, "prob": 30 } + { "item": "lsd", "container-item": "null", "entry-wrapper": "bag_zipper", "count-min": 20, "count-max": 30, "prob": 10 }, + { + "item": "faewild", + "container-item": "null", + "entry-wrapper": "bag_zipper", + "count-min": 10, + "count-max": 20, + "prob": 40 + }, + { + "item": "lotus_blossom", + "container-item": "null", + "entry-wrapper": "bag_zipper", + "count-min": 8, + "count-max": 14, + "prob": 30 + } ], "prob": 50 }, @@ -24,6 +39,7 @@ }, { "type": "item_group", + "//": "Inventor artifact creation itemgroup.", "id": "minor_spark_artifacts", "subtype": "distribution", "items": [ @@ -53,7 +69,10 @@ "entries": [ { "group": "minor_spark_artifacts", - "artifact": { "procgen_id": "spark_items", "rules": { "power_level": 500, "max_attributes": 2, "max_negative_power": -250 } }, + "artifact": { + "procgen_id": "spark_items", + "rules": { "power_level": 500, "max_attributes": 2, "max_negative_power": -250, "resonant": true } + }, "prob": 100 } ] @@ -61,6 +80,7 @@ { "type": "relic_procgen_data", "id": "spark_items", + "//": "Needs to be adjusted and made specific to Xedra Inventor class powers that could be expected. Remove this note after that is completed.", "charge_types": [ { "weight": 100, diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/monster_drops.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/monster_drops.json index e763ea131..480c4e490 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/monster_drops.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/monster_drops.json @@ -12,7 +12,7 @@ { "group": "tiaras_silver", "prob": 5 }, { "group": "pendant_necklaces_silver", "prob": 5 }, { "group": "clothing_watch", "prob": 5 }, - { "group": "fae_furs", "damage": [ 1, 4 ] }, + { "group": "fae_furs", "damage": [ 0, 4 ] }, { "item": "scrap_dreamdross", "prob": 75, "count": [ 1, 4 ] } ] }, @@ -26,12 +26,12 @@ { "group": "dress_shop", "prob": 70, "damage": [ 1, 4 ] }, { "group": "underwear", "damage": [ 1, 4 ] }, { "group": "clothing_glasses", "prob": 5 }, - { "group": "bannerman_armor", "prob": 20, "damage": [ 1, 4 ] }, + { "group": "bannerman_armor", "prob": 20, "damage": [ 0, 5 ] }, { "group": "pendant_necklaces_silver", "prob": 5 }, { "group": "clothing_watch", "prob": 5 }, - { "group": "fae_furs", "damage": [ 1, 4 ] }, + { "group": "fae_furs", "damage": [ 0, 4 ] }, { "item": "mirror_march_estoc", "prob": 25, "damage": [ 0, 5 ] }, - { "item": "scabbard", "prob": 100 }, + { "item": "baldric", "prob": 100 }, { "item": "scrap_dreamdross", "prob": 75, "count": [ 1, 4 ] } ] }, @@ -43,9 +43,10 @@ { "group": "clothing_outdoor_shoes", "prob": 70, "damage": [ 1, 4 ] }, { "group": "clothing_outdoor_pants", "prob": 70, "damage": [ 1, 4 ] }, { "group": "underwear", "damage": [ 1, 4 ] }, - { "group": "redcap_armor", "prob": 20, "damage": [ 1, 4 ] }, + { "group": "redcap_armor", "prob": 20, "damage": [ 0, 4 ] }, { "group": "pendant_necklaces_silver", "prob": 5 }, { "group": "clothing_outdoor_torso", "prob": 70, "damage": [ 1, 4 ] }, + { "group": "fae_furs", "damage": [ 0, 4 ] }, { "item": "redcap_club", "prob": 25, "damage": [ 0, 5 ] }, { "item": "scrap_dreamdross", "prob": 75, "count": [ 4, 8 ] } ] @@ -58,9 +59,10 @@ { "group": "clothing_outdoor_shoes", "prob": 70, "damage": [ 1, 4 ] }, { "group": "clothing_outdoor_pants", "prob": 70, "damage": [ 1, 4 ] }, { "group": "underwear", "damage": [ 1, 4 ] }, - { "group": "pooka_armor", "prob": 20, "damage": [ 1, 4 ] }, + { "group": "pooka_armor", "prob": 20, "damage": [ 0, 4 ] }, { "group": "pendant_necklaces_silver", "prob": 5 }, { "group": "clothing_outdoor_torso", "prob": 70, "damage": [ 1, 4 ] }, + { "group": "fae_furs", "damage": [ 0, 4 ] }, { "item": "pooka_gladius", "prob": 25, "damage": [ 0, 5 ] }, { "item": "scabbard", "prob": 100 }, { "item": "scrap_dreamdross", "prob": 75, "count": [ 4, 8 ] } @@ -74,11 +76,11 @@ { "group": "cufflinks_silver", "prob": 30, "damage": [ 0, 4 ] }, { "group": "dress_shoes", "prob": 70, "damage": [ 1, 4 ] }, { "group": "dress_shop", "prob": 70, "damage": [ 1, 4 ] }, - { "group": "bannerman_armor", "prob": 20, "damage": [ 1, 4 ] }, + { "group": "bannerman_armor", "prob": 20, "damage": [ 0, 4 ] }, { "group": "pendant_necklaces_silver", "prob": 5 }, - { "group": "fae_furs", "damage": [ 1, 4 ] }, + { "group": "fae_furs", "damage": [ 0, 4 ] }, { "item": "winter_lord_estoc", "prob": 25, "damage": [ 0, 5 ] }, - { "item": "scabbard", "prob": 100 }, + { "item": "baldric", "prob": 100 }, { "item": "purity_crackers", "prob": 10 }, { "item": "golden_bridle", "prob": 5 }, { "item": "scrap_dreamdross", "prob": 75, "count": [ 12, 24 ] } @@ -91,8 +93,45 @@ "copy-from": "default_zombie_children_clothes", "extend": { "entries": [ - { "item": "wyld_candy", "prob": 15, "container-item": "wrapper_wyld", "sealed": false }, - { "item": "scrap_dreamdross", "prob": 75, "count": [ 1, 4 ] } + { "item": "wyld_candy", "prob": 15, "container-item": "null", "entry-wrapper": "wrapper_wyld", "sealed": false }, + { "item": "scrap_dreamdross", "prob": 35, "count": [ 1, 4 ] } + ] + } + }, + { + "type": "item_group", + "id": "harddrugs", + "copy-from": "harddrugs", + "subtype": "distribution", + "extend": { + "entries": [ + { "item": "faewild", "prob": 15, "container-item": "null", "entry-wrapper": "bag_zipper", "count": [ 3, 12 ] }, + { + "item": "lotus_blossom", + "prob": 15, + "container-item": "null", + "entry-wrapper": "bag_zipper", + "count": [ 2, 16 ] + } + ] + } + }, + { + "type": "item_group", + "id": "default_zombie_items_pockets", + "copy-from": "default_zombie_items_pockets", + "subtype": "collection", + "extend": { + "entries": [ + { "item": "faewild", "prob": 5, "container-item": "null", "entry-wrapper": "bag_zipper", "count": [ 3, 12 ] }, + { + "item": "lotus_blossom", + "prob": 5, + "container-item": "null", + "entry-wrapper": "bag_zipper", + "count": [ 2, 16 ] + }, + { "item": "scrap_dreamdross", "prob": 15, "count": [ 1, 4 ] } ] } }, @@ -103,15 +142,212 @@ "entries": [ { "distribution": [ - { "group": "default_zombie_clothes", "prob": 90 }, - { "group": "default_zombie_clothes_christmas", "event": "christmas", "prob": 10 }, - { "group": "professional_zombie_gear", "prob": 1 } + { + "collection": [ + { + "distribution": [ + { "group": "default_zombie_clothes", "prob": 90 }, + { "group": "default_zombie_clothes_christmas", "event": "christmas", "prob": 10 } + ] + }, + { + "distribution": [ { "group": "default_zombie_items", "prob": 80 }, { "group": "default_zombie_items_pockets", "prob": 20 } ] + } + ], + "prob": 96 + }, + { + "collection": [ { "group": "postman_gear", "damage": [ 1, 4 ] }, { "group": "default_zombie_items_pockets", "prob": 10 } ], + "prob": 2 + }, + { + "collection": [ { "group": "prof-plumbing_gear", "damage": [ 1, 4 ] }, { "group": "default_zombie_items_pockets", "prob": 10 } ], + "prob": 2 + } ] }, - { "group": "default_zombie_items", "prob": 50 }, { "group": "wallets", "damage": [ 1, 4 ], "prob": 30 }, + { "group": "blood_containers", "prob": 30 }, { "item": "grimy_recipe", "prob": 55 }, - { "item": "scrap_dreamdross", "prob": 75, "count": [ 1, 4 ] } + { "item": "scrap_dreamdross", "prob": 35, "count": [ 1, 4 ] } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "renfield_death_drops", + "entries": [ + { "group": "default_zombie_clothes", "prob": 100 }, + { "item": "scrap_dreamdross", "prob": 75, "count": [ 1, 4 ] }, + { "group": "blood_containers", "prob": 15 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "renfield_9mm_death_drops", + "entries": [ + { + "distribution": [ + { "item": "glock17_17", "prob": 100, "damage": [ 1, 3 ] }, + { "group": "renfield_glock_mags", "prob": 40 }, + { "item": "scrap_dreamdross", "prob": 75, "count": [ 1, 4 ] } + ] + }, + { "group": "blood_containers", "prob": 15 }, + { "group": "default_zombie_clothes", "prob": 100 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "renfield_shotgun_death_drops", + "entries": [ + { + "distribution": [ + { "item": "mossberg_500", "prob": 100, "damage": [ 1, 3 ] }, + { "item": "shot_00", "prob": 40, "count": [ 1, 6 ] }, + { "item": "scrap_dreamdross", "prob": 75, "count": [ 1, 4 ] } + ] + }, + { "group": "default_zombie_clothes", "prob": 100 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "renfield_flamethrower_death_drops", + "entries": [ + { + "distribution": [ + { "item": "rm451_flamethrower", "prob": 100, "damage": [ 1, 3 ] }, + { "item": "scrap_dreamdross", "prob": 75, "count": [ 1, 4 ] } + ] + }, + { "group": "blood_containers", "prob": 15 }, + { "group": "default_zombie_clothes", "prob": 100 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_renfield_abomination_death_drops", + "entries": [ + { "item": "cotton_patchwork", "damage": [ 1, 4 ], "count": [ 1, 4 ] }, + { "group": "mutagens", "count": [ 0, 1 ], "prob": 10 }, + { "item": "pants", "damage": [ 2, 3 ] } + ] + }, + { + "id": "bionic_renfield_harvest", + "type": "item_group", + "//": "Cyborg vampire servant cbm harvest list.", + "subtype": "distribution", + "entries": [ + { "item": "bio_dis_shock", "prob": 1 }, + { "item": "bio_dis_acid", "prob": 1 }, + { "item": "bio_drain", "prob": 1 }, + { "item": "bio_noise", "prob": 1 }, + { "item": "bio_power_weakness", "prob": 1 }, + { "item": "bio_itchy", "prob": 1 }, + { "item": "bio_nostril", "prob": 1 }, + { "item": "bio_thumbs", "prob": 1 }, + { "item": "bio_spasm", "prob": 1 }, + { "item": "bio_shakes", "prob": 1 }, + { "item": "bio_leaky", "prob": 1 }, + { "item": "bio_sleepy", "prob": 1 }, + { "item": "bio_deformity", "prob": 1 }, + { "item": "bio_voice", "prob": 1 }, + { "item": "bio_pokedeye", "prob": 1 }, + { "item": "bio_ankles", "prob": 1 }, + { "item": "bio_trip", "prob": 1 }, + { "item": "bio_stiff", "prob": 1 }, + { "item": "bio_flesh_roots", "prob": 3 }, + { "item": "xe_bio_chiropteran_signal", "prob": 3 }, + { "item": "xe_bio_xl_chiropteran_signal", "prob": 1 }, + { "item": "xe_bio_spore_enhancer", "prob": 3 }, + { "item": "bio_ears", "prob": 3 }, + { "item": "bio_claws", "prob": 3 }, + { "item": "bio_power_storage", "prob": 2 }, + { "item": "bio_fuel_cell_vamp_blood", "prob": 4 }, + { "item": "bio_glowy", "prob": 1 }, + { "item": "bio_sleep_shutdown", "prob": 1 }, + { "item": "bio_faulty_electromagnetic_leak", "prob": 1 }, + { "item": "bio_faulty_grossfood", "prob": 1 }, + { "item": "bio_radleak", "prob": 1 }, + { "item": "bio_ar", "prob": 1 } + ] + }, + { + "id": "feral_agent_death_drops", + "type": "item_group", + "subtype": "collection", + "magazine": 100, + "ammo": 20, + "entries": [ + { "item": "feral_57", "prob": 100, "damage": [ 2, 4 ] }, + { "group": "security_armor", "prob": 30, "damage": [ 0, 2 ] }, + { "group": "security_gear", "prob": 50, "damage": [ 0, 2 ] }, + { "group": "cop_gloves", "prob": 30, "damage": [ 1, 4 ] }, + { "item": "pants", "damage": [ 1, 4 ] }, + { "item": "dress_shoes", "prob": 70, "damage": [ 1, 4 ] }, + { "group": "security_torso", "prob": 70, "damage": [ 1, 4 ] }, + { "group": "underwear", "damage": [ 1, 4 ] }, + { "group": "clothing_glasses", "prob": 5 }, + { "group": "clothing_watch", "prob": 5 }, + { "group": "wallets", "damage": [ 1, 4 ] }, + { "item": "fn57mag", "prob": 50, "ammo-item": "57mm_ss", "charges": [ 0, 10 ] }, + { "item": "fn57mag", "prob": 50, "ammo-item": "57mm_ss", "charges": [ 0, 15 ] } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_flamer", + "ammo": 50, + "magazine": 100, + "entries": [ { "item": "flamethrower", "charges-min": 0, "charges-max": 500 } ] + }, + { + "id": "combat_cyborg_harvest", + "type": "item_group", + "subtype": "distribution", + "entries": [ + { "item": "bio_dis_shock", "prob": 1 }, + { "item": "bio_dis_acid", "prob": 1 }, + { "item": "bio_drain", "prob": 1 }, + { "item": "bio_noise", "prob": 1 }, + { "item": "bio_power_weakness", "prob": 1 }, + { "item": "bio_itchy", "prob": 1 }, + { "item": "bio_nostril", "prob": 1 }, + { "item": "bio_thumbs", "prob": 1 }, + { "item": "bio_spasm", "prob": 1 }, + { "item": "bio_shakes", "prob": 1 }, + { "item": "bio_leaky", "prob": 1 }, + { "item": "bio_sleepy", "prob": 1 }, + { "item": "bio_deformity", "prob": 1 }, + { "item": "bio_voice", "prob": 1 }, + { "item": "bio_pokedeye", "prob": 1 }, + { "item": "bio_ankles", "prob": 1 }, + { "item": "bio_trip", "prob": 1 }, + { "item": "bio_stiff", "prob": 1 }, + { "item": "bio_armor_torso", "prob": 3 }, + { "item": "bio_armor_arms", "prob": 6 }, + { "item": "bio_armor_legs", "prob": 6 }, + { "item": "bio_armor_eyes", "prob": 3 }, + { "item": "bio_alarm", "prob": 3 }, + { "item": "bio_power_storage", "prob": 2 }, + { "item": "bio_trickle", "prob": 4 }, + { "item": "bio_glowy", "prob": 1 }, + { "item": "bio_chain_lightning", "prob": 1 }, + { "item": "bio_hydraulics", "prob": 1 }, + { "item": "bio_sleep_shutdown", "prob": 1 }, + { "item": "bio_targeting", "prob": 1 }, + { "item": "bio_weight", "prob": 1 }, + { "item": "bio_faulty_electromagnetic_leak", "prob": 1 }, + { "item": "bio_faulty_grossfood", "prob": 1 }, + { "item": "bio_radleak", "prob": 1 }, + { "item": "bio_ar", "prob": 1 } ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/classless.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/classless.json new file mode 100644 index 000000000..9b9d3f590 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/classless.json @@ -0,0 +1,114 @@ +[ + { + "type": "item_group", + "id": "xe_classless_spells_low", + "//": "Overall group for classless spells, if you don't need a precise tier of items. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ + { "group": "xe_classless_spell_group0", "prob": 100 }, + { "group": "xe_classless_spell_group1", "prob": 50 }, + { "group": "xe_classless_spell_group2", "prob": 25 }, + { "group": "xe_classless_spell_group3", "prob": 12 }, + { "group": "xe_classless_spell_group4", "prob": 6 } + ] + }, + { + "type": "item_group", + "id": "xe_classless_spells_mid", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_classless_spell_group0", "prob": 25 }, + { "group": "xe_classless_spell_group1", "prob": 50 }, + { "group": "xe_classless_spell_group2", "prob": 100 }, + { "group": "xe_classless_spell_group3", "prob": 50 }, + { "group": "xe_classless_spell_group4", "prob": 25 } + ] + }, + { + "type": "item_group", + "id": "xe_classless_spells_high", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_classless_spell_group0", "prob": 6 }, + { "group": "xe_classless_spell_group1", "prob": 12 }, + { "group": "xe_classless_spell_group2", "prob": 25 }, + { "group": "xe_classless_spell_group3", "prob": 100 }, + { "group": "xe_classless_spell_group4", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_classless_spell_group0", + "//": "Each group contain artifacts of his tier, plus spells of +1 and -1 tier with lower probability. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ { "group": "xe_classless_spell_tier0", "prob": 100 }, { "group": "xe_classless_spell_tier1", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "xe_classless_spell_group1", + "subtype": "distribution", + "entries": [ + { "group": "xe_classless_spell_tier0", "prob": 50 }, + { "group": "xe_classless_spell_tier1", "prob": 100 }, + { "group": "xe_classless_spell_tier2", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_classless_spell_group2", + "subtype": "distribution", + "entries": [ + { "group": "xe_classless_spell_tier1", "prob": 50 }, + { "group": "xe_classless_spell_tier2", "prob": 100 }, + { "group": "xe_classless_spell_tier3", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_classless_spell_group3", + "subtype": "distribution", + "entries": [ + { "group": "xe_classless_spell_tier2", "prob": 50 }, + { "group": "xe_classless_spell_tier3", "prob": 100 }, + { "group": "xe_classless_spell_tier4", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_classless_spell_group4", + "subtype": "distribution", + "entries": [ { "group": "xe_classless_spell_tier3", "prob": 50 }, { "group": "xe_classless_spell_tier4", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "xe_classless_spell_tier0", + "subtype": "distribution", + "entries": [ ] + }, + { + "type": "item_group", + "id": "xe_classless_spell_tier1", + "subtype": "distribution", + "entries": [ ] + }, + { + "type": "item_group", + "id": "xe_classless_spell_tier2", + "subtype": "distribution", + "entries": [ { "item": "magicians_hat", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "xe_classless_spell_tier3", + "subtype": "distribution", + "entries": [ { "item": "fire_ball", "prob": 10 } ] + }, + { + "type": "item_group", + "id": "xe_classless_spell_tier4", + "subtype": "distribution", + "entries": [ ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/dreamer.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/dreamer.json new file mode 100644 index 000000000..16fc1da5c --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/dreamer.json @@ -0,0 +1,132 @@ +[ + { + "type": "item_group", + "id": "xe_dreamer_spells_low", + "//": "Overall group for dreamer spells, if you don't need a precise tier of items. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamer_spell_group0", "prob": 100 }, + { "group": "xe_dreamer_spell_group1", "prob": 50 }, + { "group": "xe_dreamer_spell_group2", "prob": 25 }, + { "group": "xe_dreamer_spell_group3", "prob": 12 }, + { "group": "xe_dreamer_spell_group4", "prob": 6 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spells_mid", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamer_spell_group0", "prob": 25 }, + { "group": "xe_dreamer_spell_group1", "prob": 50 }, + { "group": "xe_dreamer_spell_group2", "prob": 100 }, + { "group": "xe_dreamer_spell_group3", "prob": 50 }, + { "group": "xe_dreamer_spell_group4", "prob": 25 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spells_high", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamer_spell_group0", "prob": 6 }, + { "group": "xe_dreamer_spell_group1", "prob": 12 }, + { "group": "xe_dreamer_spell_group2", "prob": 25 }, + { "group": "xe_dreamer_spell_group3", "prob": 100 }, + { "group": "xe_dreamer_spell_group4", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spell_group0", + "//": "Each group contain artifacts of his tier, plus spells of +1 and -1 tier with lower probability. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ { "group": "xe_dreamer_spell_tier0", "prob": 100 }, { "group": "xe_dreamer_spell_tier1", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spell_group1", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamer_spell_tier0", "prob": 50 }, + { "group": "xe_dreamer_spell_tier1", "prob": 100 }, + { "group": "xe_dreamer_spell_tier2", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spell_group2", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamer_spell_tier1", "prob": 50 }, + { "group": "xe_dreamer_spell_tier2", "prob": 100 }, + { "group": "xe_dreamer_spell_tier3", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spell_group3", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamer_spell_tier2", "prob": 50 }, + { "group": "xe_dreamer_spell_tier3", "prob": 100 }, + { "group": "xe_dreamer_spell_tier4", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spell_group4", + "subtype": "distribution", + "entries": [ { "group": "xe_dreamer_spell_tier3", "prob": 50 }, { "group": "xe_dreamer_spell_tier4", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spell_tier0", + "subtype": "distribution", + "entries": [ ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spell_tier1", + "subtype": "distribution", + "entries": [ + { "item": "magick_8_ball", "prob": 50 }, + { "item": "glass_dagger_paperweight", "prob": 100 }, + { "item": "artifact_dreamer_clairvoyance", "prob": 30 }, + { "item": "artifact_dreamer_clairvoyance_eff", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spell_tier2", + "subtype": "distribution", + "entries": [ + { "item": "caravaggio_self_portrait", "prob": 50 }, + { "item": "artifact_shifter", "prob": 40 }, + { "item": "artifact_constructed_hammer", "prob": 50 }, + { "item": "dreamer_coin_artifact", "prob": 50 }, + { "item": "artifact_stalker_eyes", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spell_tier3", + "subtype": "distribution", + "entries": [ + { "item": "mirror_artifact", "prob": 50 }, + { "item": "artifact_sapient_light", "prob": 50 }, + { "item": "artifact_bubble", "prob": 50 }, + { "item": "artifact_ophanim", "prob": 50 }, + { "item": "artifact_winch", "prob": 50 }, + { "item": "artifact_devil_tail", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamer_spell_tier4", + "subtype": "distribution", + "entries": [ { "item": "artifact_karma_arms", "prob": 50 } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/dreamsmith.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/dreamsmith.json new file mode 100644 index 000000000..1fd0bf3e1 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/dreamsmith.json @@ -0,0 +1,114 @@ +[ + { + "type": "item_group", + "id": "xe_dreamsmith_spells_low", + "//": "Overall group for dreamsmith spells, if you don't need a precise tier of items. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamsmith_spell_group0", "prob": 100 }, + { "group": "xe_dreamsmith_spell_group1", "prob": 50 }, + { "group": "xe_dreamsmith_spell_group2", "prob": 25 }, + { "group": "xe_dreamsmith_spell_group3", "prob": 12 }, + { "group": "xe_dreamsmith_spell_group4", "prob": 6 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spells_mid", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamsmith_spell_group0", "prob": 25 }, + { "group": "xe_dreamsmith_spell_group1", "prob": 50 }, + { "group": "xe_dreamsmith_spell_group2", "prob": 100 }, + { "group": "xe_dreamsmith_spell_group3", "prob": 50 }, + { "group": "xe_dreamsmith_spell_group4", "prob": 25 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spells_high", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamsmith_spell_group0", "prob": 6 }, + { "group": "xe_dreamsmith_spell_group1", "prob": 12 }, + { "group": "xe_dreamsmith_spell_group2", "prob": 25 }, + { "group": "xe_dreamsmith_spell_group3", "prob": 100 }, + { "group": "xe_dreamsmith_spell_group4", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spell_group0", + "//": "Each group contain artifacts of his tier, plus spells of +1 and -1 tier with lower probability. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ { "group": "xe_dreamsmith_spell_tier0", "prob": 100 }, { "group": "xe_dreamsmith_spell_tier1", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spell_group1", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamsmith_spell_tier0", "prob": 50 }, + { "group": "xe_dreamsmith_spell_tier1", "prob": 100 }, + { "group": "xe_dreamsmith_spell_tier2", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spell_group2", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamsmith_spell_tier1", "prob": 50 }, + { "group": "xe_dreamsmith_spell_tier2", "prob": 100 }, + { "group": "xe_dreamsmith_spell_tier3", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spell_group3", + "subtype": "distribution", + "entries": [ + { "group": "xe_dreamsmith_spell_tier2", "prob": 50 }, + { "group": "xe_dreamsmith_spell_tier3", "prob": 100 }, + { "group": "xe_dreamsmith_spell_tier4", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spell_group4", + "subtype": "distribution", + "entries": [ { "group": "xe_dreamsmith_spell_tier3", "prob": 50 }, { "group": "xe_dreamsmith_spell_tier4", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spell_tier0", + "subtype": "distribution", + "entries": [ { "item": "brass_cylinders", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spell_tier1", + "subtype": "distribution", + "entries": [ ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spell_tier2", + "subtype": "distribution", + "entries": [ ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spell_tier3", + "subtype": "distribution", + "entries": [ ] + }, + { + "type": "item_group", + "id": "xe_dreamsmith_spell_tier4", + "subtype": "distribution", + "entries": [ ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/eater.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/eater.json new file mode 100644 index 000000000..898fe12be --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/eater.json @@ -0,0 +1,132 @@ +[ + { + "type": "item_group", + "id": "xe_eater_spells_low", + "//": "Overall group for eater spells, if you don't need a precise tier of items. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ + { "group": "xe_eater_spell_group0", "prob": 100 }, + { "group": "xe_eater_spell_group1", "prob": 50 }, + { "group": "xe_eater_spell_group2", "prob": 25 }, + { "group": "xe_eater_spell_group3", "prob": 12 }, + { "group": "xe_eater_spell_group4", "prob": 6 } + ] + }, + { + "type": "item_group", + "id": "xe_eater_spells_mid", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_eater_spell_group0", "prob": 25 }, + { "group": "xe_eater_spell_group1", "prob": 50 }, + { "group": "xe_eater_spell_group2", "prob": 100 }, + { "group": "xe_eater_spell_group3", "prob": 50 }, + { "group": "xe_eater_spell_group4", "prob": 25 } + ] + }, + { + "type": "item_group", + "id": "xe_eater_spells_high", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_eater_spell_group0", "prob": 6 }, + { "group": "xe_eater_spell_group1", "prob": 12 }, + { "group": "xe_eater_spell_group2", "prob": 25 }, + { "group": "xe_eater_spell_group3", "prob": 100 }, + { "group": "xe_eater_spell_group4", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_eater_spell_group0", + "//": "Each group contain artifacts of his tier, plus spells of +1 and -1 tier with lower probability. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ { "group": "xe_eater_spell_tier0", "prob": 100 }, { "group": "xe_eater_spell_tier1", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "xe_eater_spell_group1", + "subtype": "distribution", + "entries": [ + { "group": "xe_eater_spell_tier0", "prob": 50 }, + { "group": "xe_eater_spell_tier1", "prob": 100 }, + { "group": "xe_eater_spell_tier2", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_eater_spell_group2", + "subtype": "distribution", + "entries": [ + { "group": "xe_eater_spell_tier1", "prob": 50 }, + { "group": "xe_eater_spell_tier2", "prob": 100 }, + { "group": "xe_eater_spell_tier3", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_eater_spell_group3", + "subtype": "distribution", + "entries": [ + { "group": "xe_eater_spell_tier2", "prob": 50 }, + { "group": "xe_eater_spell_tier3", "prob": 100 }, + { "group": "xe_eater_spell_tier4", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_eater_spell_group4", + "subtype": "distribution", + "entries": [ { "group": "xe_eater_spell_tier3", "prob": 50 }, { "group": "xe_eater_spell_tier4", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "xe_eater_spell_tier0", + "subtype": "distribution", + "entries": [ { "item": "deck_of_tarot_cards", "prob": 50 }, { "item": "hurricane_lamp_thorns", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "xe_eater_spell_tier1", + "subtype": "distribution", + "entries": [ + { "item": "occult_seal", "prob": 50 }, + { "item": "glass_berries", "prob": 100 }, + { "item": "strange_coffee", "prob": 50 }, + { "item": "artifact_horn", "prob": 50 }, + { "item": "artifact_unbreakable", "prob": 50 }, + { "item": "artifact_weakening", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_eater_spell_tier2", + "subtype": "distribution", + "entries": [ + { "item": "polaroid_of_missing_person", "prob": 50 }, + { "item": "blindfold_artifact", "prob": 100 }, + { "item": "artifact_cerebellum", "prob": 50 }, + { "item": "artifact_point_blank", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_eater_spell_tier3", + "subtype": "distribution", + "entries": [ + { "item": "artifact_heart", "prob": 50 }, + { "item": "artifact_skull", "prob": 100 }, + { "item": "artifact_eye_left", "prob": 50 }, + { "item": "eater_book_artifact", "prob": 50 }, + { "item": "artifact_muscle", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_eater_spell_tier4", + "subtype": "distribution", + "entries": [ { "item": "artifact_eye_right", "prob": 100 }, { "item": "ring_artifact", "prob": 50 } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/inventor.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/inventor.json new file mode 100644 index 000000000..d7c81b60a --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/inventor.json @@ -0,0 +1,114 @@ +[ + { + "type": "item_group", + "id": "xe_inventor_spells_low", + "//": "Overall group for inventor spells, if you don't need a precise tier of items. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ + { "group": "xe_inventor_spell_group0", "prob": 100 }, + { "group": "xe_inventor_spell_group1", "prob": 50 }, + { "group": "xe_inventor_spell_group2", "prob": 25 }, + { "group": "xe_inventor_spell_group3", "prob": 12 }, + { "group": "xe_inventor_spell_group4", "prob": 6 } + ] + }, + { + "type": "item_group", + "id": "xe_inventor_spells_mid", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_inventor_spell_group0", "prob": 25 }, + { "group": "xe_inventor_spell_group1", "prob": 50 }, + { "group": "xe_inventor_spell_group2", "prob": 100 }, + { "group": "xe_inventor_spell_group3", "prob": 50 }, + { "group": "xe_inventor_spell_group4", "prob": 25 } + ] + }, + { + "type": "item_group", + "id": "xe_inventor_spells_high", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_inventor_spell_group0", "prob": 6 }, + { "group": "xe_inventor_spell_group1", "prob": 12 }, + { "group": "xe_inventor_spell_group2", "prob": 25 }, + { "group": "xe_inventor_spell_group3", "prob": 100 }, + { "group": "xe_inventor_spell_group4", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_inventor_spell_group0", + "//": "Each group contain artifacts of his tier, plus spells of +1 and -1 tier with lower probability. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ { "group": "xe_inventor_spell_tier0", "prob": 100 }, { "group": "xe_inventor_spell_tier1", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "xe_inventor_spell_group1", + "subtype": "distribution", + "entries": [ + { "group": "xe_inventor_spell_tier0", "prob": 50 }, + { "group": "xe_inventor_spell_tier1", "prob": 100 }, + { "group": "xe_inventor_spell_tier2", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_inventor_spell_group2", + "subtype": "distribution", + "entries": [ + { "group": "xe_inventor_spell_tier1", "prob": 50 }, + { "group": "xe_inventor_spell_tier2", "prob": 100 }, + { "group": "xe_inventor_spell_tier3", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_inventor_spell_group3", + "subtype": "distribution", + "entries": [ + { "group": "xe_inventor_spell_tier2", "prob": 50 }, + { "group": "xe_inventor_spell_tier3", "prob": 100 }, + { "group": "xe_inventor_spell_tier4", "prob": 50 } + ] + }, + { + "type": "item_group", + "id": "xe_inventor_spell_group4", + "subtype": "distribution", + "entries": [ { "group": "xe_inventor_spell_tier3", "prob": 50 }, { "group": "xe_inventor_spell_tier4", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "xe_inventor_spell_tier0", + "subtype": "distribution", + "entries": [ { "item": "firmament_driver_book", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "xe_inventor_spell_tier1", + "subtype": "distribution", + "entries": [ { "item": "artifact_cable_whip", "prob": 70 } ] + }, + { + "type": "item_group", + "id": "xe_inventor_spell_tier2", + "subtype": "distribution", + "entries": [ ] + }, + { + "type": "item_group", + "id": "xe_inventor_spell_tier3", + "subtype": "distribution", + "entries": [ ] + }, + { + "type": "item_group", + "id": "xe_inventor_spell_tier4", + "subtype": "distribution", + "entries": [ ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/main.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/main.json new file mode 100644 index 000000000..b4cb9e80a --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/spell_artifacts/main.json @@ -0,0 +1,88 @@ +[ + { + "type": "item_group", + "id": "xe_all_spells_low", + "//": "Overall group for all spells, if you don't need a precise tier of items. Groups are used in mapgen", + "subtype": "distribution", + "entries": [ + { "group": "xe_classless_spells_low", "prob": 100 }, + { "group": "xe_dreamer_spells_low", "prob": 100 }, + { "group": "xe_dreamsmith_spells_low", "prob": 100 }, + { "group": "xe_eater_spells_low", "prob": 100 }, + { "group": "xe_inventor_spells_low", "prob": 100 } + ] + }, + { + "type": "item_group", + "id": "xe_all_spells_mid", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_classless_spells_mid", "prob": 100 }, + { "group": "xe_dreamer_spells_mid", "prob": 100 }, + { "group": "xe_dreamsmith_spells_mid", "prob": 100 }, + { "group": "xe_eater_spells_mid", "prob": 100 }, + { "group": "xe_inventor_spells_mid", "prob": 100 } + ] + }, + { + "type": "item_group", + "id": "xe_all_spells_high", + "//": "Same as before, but with higher tier spells", + "subtype": "distribution", + "entries": [ + { "group": "xe_classless_spells_high", "prob": 100 }, + { "group": "xe_dreamer_spells_high", "prob": 100 }, + { "group": "xe_dreamsmith_spells_high", "prob": 100 }, + { "group": "xe_eater_spells_high", "prob": 100 }, + { "group": "xe_inventor_spells_high", "prob": 100 } + ] + }, + { + "type": "item_group", + "//": "Inventor created items itemgroup.", + "id": "inventor_creations", + "subtype": "distribution", + "items": [ + [ "helmet_inventor", 100 ], + [ "inventor_backpack", 100 ], + [ "inventor_leg_weight", 100 ], + [ "inventor_jump_boots", 100 ], + [ "aura_force", 100 ], + [ "vision_halo", 100 ], + [ "inventor_fists", 100 ], + [ "wolf_mask", 100 ], + [ "magnetic_holster", 100 ], + [ "battery_gun", 100 ], + [ "ray_gun", 50 ], + [ "ray_rifle", 10 ], + [ "rip_ticket", 100 ], + [ "ion_gun", 100 ], + [ "inventor_shotgun", 100 ], + [ "sonic_gun", 100 ], + [ "heater_gun", 100 ], + [ "inventor_pistol", 100 ], + [ "combatsaw_spear_off", 100 ], + [ "inventor_light_minus_cell", 100 ], + [ "inventor_light_cell", 100 ], + [ "inventor_medium_cell", 50 ], + [ "inventor_heavy_cell", 10 ], + [ "inventor_welder", 5 ], + [ "heater_tool", 100 ] + ] + }, + { + "type": "item_group", + "id": "xe_border_patrol_evidence", + "//": "Itemgroup for Border Patrol Evidence rooms", + "subtype": "distribution", + "entries": [ + { "group": "xe_all_spells_low", "prob": 400 }, + { "group": "xe_all_spells_mid", "prob": 200 }, + { "group": "xe_all_spells_high", "prob": 100 }, + { "group": "dreamer_artifact", "prob": 50 }, + { "group": "dreamsmith_artifact", "prob": 50 }, + { "group": "inventor_creations", "prob": 50 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/xe_musuem_itemgroups.json b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/xe_musuem_itemgroups.json new file mode 100644 index 000000000..b313050ce --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/itemgroups/xe_musuem_itemgroups.json @@ -0,0 +1,53 @@ +[ + { + "type": "item_group", + "subtype": "distribution", + "id": "alt_shirts", + "items": [ [ "alt_tshirt", 80 ] ] + }, + { + "type": "item_group", + "id": "display_case_items", + "//": "Group for museum of Curiosities display case items.", + "subtype": "distribution", + "entries": [ + { "group": "museum_primitive", "prob": 100 }, + { "group": "museum_misc", "prob": 50 }, + { "group": "xe_dreamer_spells_low", "prob": 12 }, + { "group": "xe_classless_spells_low", "prob": 25 }, + { "group": "xe_dreamsmith_spells_low", "prob": 12 }, + { "group": "xe_eater_spells_low", "prob": 12 }, + { "group": "xe_inventor_spells_low", "prob": 12 }, + { "group": "xe_dreamer_spells_mid", "prob": 6 }, + { "group": "xe_classless_spells_mid", "prob": 12 }, + { "group": "xe_dreamsmith_spells_mid", "prob": 6 }, + { "group": "xe_eater_spells_mid", "prob": 6 }, + { "group": "xe_inventor_spells_mid", "prob": 6 } + ] + }, + { + "type": "item_group", + "id": "otherworld_gear", + "//": "Group for museum of Curiosities mannequin items.", + "subtype": "distribution", + "entries": [ + { "group": "museum_primitive", "prob": 20 }, + { "group": "museum_misc", "prob": 15 }, + { "group": "fae_furs", "prob": 12 }, + { "group": "bannerman_armor", "prob": 6 }, + { "group": "dreamer_artifact", "prob": 6 } + ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "museum_plaques_visitors", + "items": [ [ "museum_plaques_visitors", 80 ] ] + }, + { + "type": "item_group", + "subtype": "distribution", + "id": "museum_plaques_items", + "items": [ [ "museum_plaques_items", 80 ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/alchemy.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/alchemy.json new file mode 100644 index 000000000..f1ae9566e --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/alchemy.json @@ -0,0 +1,303 @@ +[ + { + "type": "COMESTIBLE", + "id": "blackout_rage_drink", + "looks_like": "cola", + "name": { "str": "Bored, the blackout rage drink" }, + "weight": "253 g", + "color": "magenta", + "addiction_type": "alcohol", + "fatigue_mod": 112, + "stim": 34, + "container": "jug_plastic", + "comestible_type": "DRINK", + "symbol": "~", + "quench": 15, + "healthy": -4, + "addiction_potential": 6, + "calories": 157, + "description": "An incredibly alcoholic and caffeinated drink. This probably isn't healthy.", + "price": 170, + "price_postapoc": 50, + "material": [ "alcohol" ], + "primary_material": "water", + "volume": "250 ml", + "charges": 1, + "phase": "liquid", + "flags": [ "EATEN_COLD", "NO_AUTO_CONSUME" ], + "use_action": { "type": "cast_spell", "spell_id": "blackout_rage_drink", "no_fail": true, "level": 0 }, + "fun": 5 + }, + { + "id": "sixdust", + "type": "AMMO", + "name": { "str_sp": "sixdust" }, + "description": "Sixdust, for when you must scorch the earth. A sprayable anti-fungal/anti-insecticidal ammo for the chemical thrower. Best used with some kind of mask or mouth protection.", + "weight": "3 g", + "volume": "250 ml", + "price": 600, + "price_postapoc": 500, + "material": [ "water" ], + "symbol": "=", + "color": "yellow_red", + "container": "bottle_plastic", + "sealed": false, + "phase": "liquid", + "ammo_type": "chemical_spray", + "range": 4, + "count": 100, + "effects": [ "GAS_FUNGICIDAL", "STREAM_GAS_FUNGICIDAL", "GAS_INSECTICIDAL", "STREAM_GAS_INSECTICIDAL", "NEVER_MISFIRES", "JET" ] + }, + { + "id": "small_blessing_brigit", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": { "str": "small blessing of Brigit", "str_pl": "some blessings of Brigit" }, + "description": "A small pill made from royal jelly, ash, and poppies. Blessed with prayers to Brigit over several hours. Will end any cold or flu instantaneously.", + "weight": "15 g", + "volume": "1 ml", + "price": "2 USD", + "price_postapoc": "16 USD", + "material": [ "veggy" ], + "symbol": "!", + "color": "green", + "healthy": 15, + "use_action": { + "type": "consume_drug", + "activation_message": "You feel better almost instantly.", + "effects": [ { "id": "curesome" } ] + }, + "flags": [ "NPC_SAFE", "IRREPLACEABLE_CONSUMABLE", "WATER_DISSOLVE", "EDIBLE_FROZEN" ] + }, + { + "id": "prophets_lsd", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": { "str_sp": "prophet's LSD" }, + "description": "A windowpane worth of Rainbow Skull LSD tabs. These tabs are said to grant the consumer the ability to see several seconds into the future.", + "weight": "1 g", + "volume": "2 ml", + "price": "1 USD", + "price_postapoc": "25 cent", + "symbol": "!", + "color": "pink", + "stim": 20, + "fun": 25, + "flags": [ "NO_INGEST", "IRREPLACEABLE_CONSUMABLE", "EDIBLE_FROZEN" ], + "use_action": { "type": "cast_spell", "spell_id": "future_sight", "no_fail": true, "level": 25 } + }, + { + "id": "truckers_stamina_pills", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": { "str_sp": "alchemically altered trucker pills" }, + "description": "When you began the sinister path into occultism, you never imagined you'd be alchemically altering truckstop viagra into combat drugs. But here you are, no sleep til Boston.", + "weight": "1 g", + "volume": "2 ml", + "price": "150 cent", + "price_postapoc": "50 cent", + "material": [ "powder" ], + "symbol": "!", + "color": "light_cyan", + "container": "bag_zipper", + "quench": -2, + "stim": 20, + "healthy": -7, + "fun": 30, + "addiction_potential": 15, + "addiction_type": [ "amphetamine", { "addiction": "opiate", "potential": 10 } ], + "flags": [ "NO_INGEST", "WATER_DISSOLVE", "EDIBLE_FROZEN" ], + "use_action": { + "type": "consume_drug", + "activation_message": "You swallow a couple of the large green pills.", + "vitamins": [ [ "cheval", 1000 ] ] + } + }, + { + "id": "spiritshow_dust", + "name": { "str": "spirit show dust" }, + "description": "A key ingredient for Victorian seances led by actual occultists. This dust summons spirits from beyond to walk the earth again for a short time. The spirits it summons are mindless and disappear upon being touched.", + "use_action": { "type": "cast_spell", "spell_id": "ghost_inflatable", "no_fail": true, "level": 0 }, + "type": "COMESTIBLE", + "weight": "265 g", + "quench": -1, + "calories": 0, + "volume": "250 ml", + "fun": -1, + "symbol": "~", + "container": "flask_glass", + "color": "light_blue", + "comestible_type": "MED", + "flags": [ "EATEN_COLD", "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ], + "material": [ "powder" ], + "price": 2500 + }, + { + "id": "charm_of_marzanna", + "copy-from": "garnet_silver_pendant_necklace", + "type": "ARMOR", + "name": { "str": "charm of Marzanna" }, + "description": "A tiny effigy of a woman with singed extremities and a waterlogged face.", + "color": "light_blue", + "relic_data": { "passive_effects": [ { "id": "ench_climate_control_marzanna" } ] } + }, + { + "id": "feline_periapta", + "copy-from": "diamond_gold_pendant_necklace", + "type": "ARMOR", + "name": { "str": "feline periapta" }, + "description": "A shiny, gold necklace adorned with an image of a cat with strange runes on it and diamond eyes.", + "material": [ { "type": "gold", "portion": 9 }, { "type": "diamond" } ], + "color": "white", + "delete": { "flags": [ "NO_WEAR_EFFECT" ] }, + "relic_data": { "passive_effects": [ { "id": "ench_climate_periapta_feline" } ] } + }, + { + "id": "lupine_periapta", + "copy-from": "diamond_gold_pendant_necklace", + "type": "ARMOR", + "name": { "str": "lupine periapta" }, + "description": "A shiny, gold necklace adorned with an image of a wolf with strange runes on it and diamond eyes.", + "material": [ { "type": "gold", "portion": 9 }, { "type": "diamond" } ], + "color": "white", + "delete": { "flags": [ "NO_WEAR_EFFECT" ] }, + "relic_data": { "passive_effects": [ { "id": "ench_climate_periapta_lupine" } ] } + }, + { + "id": "cephalopod_periapta", + "copy-from": "diamond_gold_pendant_necklace", + "type": "ARMOR", + "name": { "str": "cephalopod periapta" }, + "description": "A shiny, gold necklace adorned with an image of an octopus with strange runes on it and diamond eyes.", + "material": [ { "type": "gold", "portion": 9 }, { "type": "diamond" } ], + "color": "white", + "delete": { "flags": [ "NO_WEAR_EFFECT" ] }, + "relic_data": { "passive_effects": [ { "id": "ench_climate_periapta_cephalopod" } ] } + }, + { + "id": "plant_periapta", + "copy-from": "diamond_gold_pendant_necklace", + "type": "ARMOR", + "name": { "str": "tree periapta" }, + "description": "A shiny, gold necklace adorned with an image of a tree with strange runes on it and diamond eyes.", + "material": [ { "type": "gold", "portion": 9 }, { "type": "diamond" } ], + "color": "white", + "delete": { "flags": [ "NO_WEAR_EFFECT" ] }, + "relic_data": { "passive_effects": [ { "id": "ench_climate_periapta_plant" } ] } + }, + { + "id": "scorpion_periapta", + "copy-from": "diamond_gold_pendant_necklace", + "type": "ARMOR", + "name": { "str": "scorpion periapta" }, + "description": "A shiny, gold necklace adorned with an image of a scorpion with strange runes on it and diamond eyes.", + "material": [ { "type": "gold", "portion": 9 }, { "type": "diamond" } ], + "color": "white", + "delete": { "flags": [ "NO_WEAR_EFFECT" ] }, + "relic_data": { "passive_effects": [ { "id": "ench_climate_periapta_scorpion" } ] } + }, + { + "id": "butterfly_periapta", + "copy-from": "diamond_gold_pendant_necklace", + "type": "ARMOR", + "name": { "str": "butterfly periapta" }, + "description": "A shiny, gold necklace adorned with an image of a butterfly with strange runes on it and diamond eyes.", + "material": [ { "type": "gold", "portion": 9 }, { "type": "diamond" } ], + "color": "white", + "delete": { "flags": [ "NO_WEAR_EFFECT" ] }, + "relic_data": { "passive_effects": [ { "id": "ench_climate_periapta_butterfly" } ] } + }, + { + "id": "spider_periapta", + "copy-from": "diamond_gold_pendant_necklace", + "type": "ARMOR", + "name": { "str": "spider periapta" }, + "description": "A shiny, gold necklace adorned with an image of a spider with strange runes on it and diamond eyes.", + "material": [ { "type": "gold", "portion": 9 }, { "type": "diamond" } ], + "color": "white", + "delete": { "flags": [ "NO_WEAR_EFFECT" ] }, + "relic_data": { "passive_effects": [ { "id": "ench_climate_periapta_spider" } ] } + }, + { + "id": "life_extension_potion", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": { "str_sp": "life extension potion" }, + "description": "The primary means by which alchemists gain wealthy patrons these potions will add decades of healthy life to their users span. But the ingredients are rare and even this won't prolong life forever. You'll have to resort to other means of achieving immortality, if that's even a goal you are seeking.", + "weight": "50 g", + "volume": "2 ml", + "price": "150 cent", + "price_postapoc": "5 USD", + "material": [ "water" ], + "symbol": "!", + "color": "light_cyan", + "container": "flask_glass", + "quench": 2, + "healthy": 7, + "fun": -30, + "flags": [ "NO_INGEST", "WATER_DISSOLVE", "EDIBLE_FROZEN" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Drink the potion.", + "effect_on_conditions": [ + { + "id": "extend_life", + "effect": [ + { "u_message": "You imbibed the concoction and you feel your chakras align and your DNA de-age." }, + { "u_add_trait": "EXTEND_LIFE" } + ] + } + ] + } + }, + { + "id": "potion_dex", + "type": "COMESTIBLE", + "name": { "str": "potion of wicked quick hands", "str_pl": "potions of wicked quick hands" }, + "description": "This is a potion of wicked quick hands. It will increase your dexterity for 50 minutes.", + "copy-from": "life_extension_potion", + "calories": 25, + "use_action": { "type": "cast_spell", "spell_id": "wicked_quick_hands", "no_fail": true, "level": 0 }, + "color": "green", + "price": 3000 + }, + { + "id": "potion_strength", + "name": { "str": "potion of terrible strength", "str_pl": "potions of terrible strength" }, + "description": "This is a potion of terrible strength. It will increase your strength for 50 minutes.", + "use_action": { "type": "cast_spell", "spell_id": "terrible_strength", "no_fail": true, "level": 0 }, + "type": "COMESTIBLE", + "color": "red", + "calories": 50, + "copy-from": "life_extension_potion" + }, + { + "id": "hares_leap_potion", + "name": { "str": "potion of hare's leap", "str_pl": "potions of hare's leap" }, + "description": "This is a potion of hare's leap. It allows you to jump afar from danger.", + "use_action": { "type": "cast_spell", "spell_id": "spell_hare_leap", "no_fail": true, "level": 0 }, + "type": "COMESTIBLE", + "color": "green_yellow", + "calories": 50, + "copy-from": "life_extension_potion" + }, + { + "id": "hyde_formula", + "name": { "str": "Hyde Formula", "str_pl": "Hyde Formulae" }, + "description": "This is a transmutation potion that will bring your best attributes to the forefront.", + "use_action": { + "type": "effect_on_conditions", + "description": "Drink the formula.", + "effect_on_conditions": [ + { + "id": "hyde_formula", + "effect": [ { "u_message": "You imbibed the concoction and you feel your inner self unleashed." }, { "u_add_trait": "HYDE" } ] + } + ] + }, + "type": "COMESTIBLE", + "color": "green_yellow", + "calories": 50, + "copy-from": "life_extension_potion" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/ammo.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/ammo.json index 2eeb59a54..127e258e8 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/ammo.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/ammo.json @@ -13,12 +13,36 @@ "flags": [ "TRADER_AVOID", "NPC_THROWN" ], "volume": "100 ml", "weight": "460 g", + "to_hit": -2, "damage": { "damage_type": "stab", "amount": 7 }, "range": 10, "dispersion": 14, "loudness": 0, "effects": [ "NEVER_MISFIRES", "NON_FOULING", "RECOVER_80" ], - "qualities": [ [ "CUT", 1 ] ] + "qualities": [ [ "CUT", 1 ] ], + "melee_damage": { "bash": 1, "cut": 10 } + }, + { + "id": "moon_tears_fasteners", + "type": "AMMO", + "category": "spare_parts", + "name": { "str_sp": "moon tears fasteners" }, + "description": "A pin-shaped piece of moon tears and dreamdross. It can be used to repair items made of moon tears.", + "weight": "4 g", + "volume": "250 ml", + "price": 1000, + "price_postapoc": 250, + "material": [ "moon_tears" ], + "symbol": "=", + "color": "cyan", + "count": 100, + "stack_size": 100, + "ammo_type": "moon_tears_fasteners", + "loudness": 0, + "range": 3, + "damage": { "damage_type": "bullet", "amount": 1, "armor_penetration": 1 }, + "dispersion": 180, + "effects": [ "NON_FOULING", "HURT_WHEN_WIELDED" ] }, { "type": "AMMO", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/ammo_type.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/ammo_type.json index b6200a275..8d3f7ae74 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/ammo_type.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/ammo_type.json @@ -11,6 +11,18 @@ "name": "fae blood", "default": "fae_blood" }, + { + "type": "ammunition_type", + "id": "moon_tears_fasteners", + "name": "moon tears fasteners", + "default": "moon_tears_fasteners" + }, + { + "type": "ammunition_type", + "id": "scrap_dreamdross", + "name": "scraps of dreamdross", + "default": "scrap_dreamdross" + }, { "type": "ammunition_type", "id": "9x21mm", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/armor.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/armor.json index 2d82f7139..40d62ec63 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/armor.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/armor.json @@ -9,7 +9,36 @@ "price_postapoc": 1750, "material": [ "leather", "fae_fur" ], "color": "brown_red", - "armor": [ { "encumbrance": 20, "coverage": 90, "covers": [ "foot_l", "foot_r" ] } ] + "armor": [ + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 1.5 }, + { "type": "fae_fur", "covered_by_mat": 100, "thickness": 1.5 } + ], + "encumbrance": 17, + "coverage": 100 + }, + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 0.1 }, + { "type": "rubber", "covered_by_mat": 100, "thickness": 4.0 } + ], + "coverage": 100 + } + ] }, { "id": "xl_boots_glimmer_fur", @@ -28,6 +57,73 @@ "proportional": { "weight": 0.75, "volume": 0.75, "price": 0.5 }, "extend": { "flags": [ "UNDERSIZE" ] } }, + { + "id": "pants_glimmer_fur", + "type": "ARMOR", + "name": { "str_sp": "glimmer fur pants" }, + "description": "A hefty pair of fae fur-lined pants.", + "weight": "920 g", + "volume": "4 L", + "price": 20000, + "price_postapoc": 100, + "to_hit": 1, + "material": [ "cotton", "fae_fur" ], + "symbol": "[", + "looks_like": "pants", + "color": "brown", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1250 ml", + "max_contains_weight": "4 kg", + "max_item_length": "19 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1250 ml", + "max_contains_weight": "4 kg", + "max_item_length": "19 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1080 ml", + "max_contains_weight": "4 kg", + "max_item_length": "165 mm", + "moves": 100 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1080 ml", + "max_contains_weight": "4 kg", + "max_item_length": "165 mm", + "moves": 100 + } + ], + "warmth": 80, + "material_thickness": 1, + "environmental_protection": 3, + "flags": [ "VARSIZE", "POCKETS" ], + "armor": [ { "encumbrance": [ 16, 20 ], "coverage": 95, "covers": [ "leg_l", "leg_r" ] } ] + }, + { + "id": "xl_pants_glimmer_fur", + "type": "ARMOR", + "name": { "str": "pair of XL glimmer fur pants", "str_pl": "pairs of XL glimmer fur pants" }, + "copy-from": "pants_glimmer_fur", + "proportional": { "weight": 1.15, "volume": 1.15 }, + "extend": { "flags": [ "OVERSIZE" ] } + }, + { + "id": "xs_pants_glimmer_fur", + "type": "ARMOR", + "copy-from": "pants_glimmer_fur", + "looks_like": "pants_glimmer_fur", + "name": { "str": "pair of XS glimmer fur pants", "str_pl": "pairs of XS glimmer fur pants" }, + "proportional": { "weight": 0.75, "volume": 0.75, "price": 0.5 }, + "extend": { "flags": [ "UNDERSIZE" ] } + }, { "id": "cloak_glimmer_fur", "type": "ARMOR", @@ -86,7 +182,7 @@ "extend": { "flags": [ "OVERSIZE" ] } }, { - "id": "xs_coat_fur", + "id": "xs_coat_glimmer_fur", "type": "ARMOR", "copy-from": "coat_glimmer_fur", "looks_like": "coat_glimmer_fur", @@ -94,6 +190,100 @@ "proportional": { "weight": 0.75, "volume": 0.75, "price": 0.5 }, "extend": { "flags": [ "UNDERSIZE" ] } }, + { + "id": "trenchcoat_glimmer_fur", + "type": "ARMOR", + "name": { "str": "glimmer fur trenchcoat" }, + "description": "A thick glimmer fur trenchcoat, lined with pockets. Great for storage.", + "weight": "1750 g", + "volume": "7250 ml", + "price": 97900, + "price_postapoc": 750, + "to_hit": -1, + "material": [ "fae_fur" ], + "symbol": "[", + "looks_like": "trenchcoat_leather", + "color": "brown", + "armor": [ + { "covers": [ "torso" ], "specifically_covers": [ "torso_lower" ], "coverage": 100, "encumbrance": [ 9, 19 ] }, + { "covers": [ "torso" ], "specifically_covers": [ "torso_upper" ], "coverage": 95, "encumbrance": [ 0, 0 ] }, + { "covers": [ "arm_l", "arm_r" ], "coverage": 100, "encumbrance": [ 9, 9 ] }, + { + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_hip_l", "leg_hip_r" ], + "coverage": 90, + "encumbrance": [ 4, 5 ] + }, + { + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_upper_l", "leg_upper_r" ], + "coverage": 80, + "encumbrance": [ 0, 0 ] + } + ], + "pocket_data": [ + { "pocket_type": "CONTAINER", "max_contains_volume": "1500 ml", "max_contains_weight": "4 kg", "moves": 80 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "1500 ml", "max_contains_weight": "4 kg", "moves": 80 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "2 kg", "moves": 80 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "2 kg", "moves": 80 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "500 ml", "max_contains_weight": "1 kg", "moves": 120 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "500 ml", "max_contains_weight": "1 kg", "moves": 120 } + ], + "warmth": 50, + "material_thickness": 3, + "environmental_protection": 1, + "flags": [ "VARSIZE", "POCKETS", "OUTER" ] + }, + { + "id": "sleeveless_trenchcoat_glimmer_fur", + "type": "ARMOR", + "name": { "str": "sleeveless glimmer fur trenchcoat" }, + "//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", + "description": "A thick glimmer fur trenchcoat without sleeves, leaving your arms unencumbered. Has plenty of storage space due to its many pockets.", + "weight": "1487 g", + "volume": "6750 ml", + "price": 83215, + "price_postapoc": 500, + "to_hit": -1, + "material": [ "fae_fur" ], + "symbol": "[", + "looks_like": "sleeveless_duster_fur", + "color": "brown", + "pocket_data": [ + { "pocket_type": "CONTAINER", "max_contains_volume": "1500 ml", "max_contains_weight": "4 kg", "moves": 80 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "1500 ml", "max_contains_weight": "4 kg", "moves": 80 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "2 kg", "moves": 80 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "1 L", "max_contains_weight": "2 kg", "moves": 80 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "500 ml", "max_contains_weight": "1 kg", "moves": 120 }, + { "pocket_type": "CONTAINER", "max_contains_volume": "500 ml", "max_contains_weight": "1 kg", "moves": 120 } + ], + "warmth": 50, + "material_thickness": 3, + "environmental_protection": 1, + "flags": [ "VARSIZE", "POCKETS", "OUTER" ], + "armor": [ + { "covers": [ "torso" ], "specifically_covers": [ "torso_lower" ], "coverage": 100, "encumbrance": [ 9, 19 ] }, + { "covers": [ "torso" ], "specifically_covers": [ "torso_upper" ], "coverage": 95, "encumbrance": [ 0, 0 ] }, + { + "covers": [ "arm_l", "arm_r" ], + "specifically_covers": [ "arm_shoulder_l", "arm_shoulder_r" ], + "coverage": 40, + "encumbrance": [ 0, 0 ] + }, + { + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_hip_l", "leg_hip_r" ], + "coverage": 90, + "encumbrance": [ 4, 5 ] + }, + { + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_upper_l", "leg_upper_r" ], + "coverage": 80, + "encumbrance": [ 0, 0 ] + } + ] + }, { "id": "duster_glimmer_fur", "type": "ARMOR", @@ -164,6 +354,86 @@ "environmental_protection": 1, "flags": [ "VARSIZE", "POCKETS", "OUTER", "WATERPROOF", "RAINPROOF", "FANCY" ] }, + { + "id": "sleeveless_duster_glimmer_fur", + "type": "ARMOR", + "name": { "str": "sleeveless glimmer fur duster" }, + "//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", + "description": "A thick glimmer fur full-length duster without sleeves, leaving your arms unencumbered. Has plenty of storage space due to its many pockets.", + "weight": "2007 g", + "volume": "8250 ml", + "price": 83215, + "price_postapoc": 500, + "to_hit": -1, + "material": [ "fae_fur" ], + "symbol": "[", + "looks_like": "duster_fur", + "color": "brown", + "armor": [ + { "covers": [ "torso" ], "coverage": 100, "encumbrance": [ 9, 17 ] }, + { + "covers": [ "leg_l", "leg_r" ], + "coverage": 85, + "encumbrance": [ 4, 5 ], + "specifically_covers": [ "leg_draped_l", "leg_draped_r" ], + "layers": [ "BELTED" ] + }, + { + "covers": [ "arm_l", "arm_r" ], + "specifically_covers": [ "arm_shoulder_l", "arm_shoulder_r" ], + "coverage": 40, + "encumbrance": [ 0, 0 ] + } + ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1500 ml", + "max_contains_weight": "4 kg", + "max_item_length": "24 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1500 ml", + "max_contains_weight": "4 kg", + "max_item_length": "24 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1 L", + "max_contains_weight": "2 kg", + "max_item_length": "21 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1 L", + "max_contains_weight": "2 kg", + "max_item_length": "21 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "800 ml", + "max_contains_weight": "1 kg", + "max_item_length": "13 cm", + "moves": 120 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "800 ml", + "max_contains_weight": "1 kg", + "max_item_length": "13 cm", + "moves": 120 + } + ], + "warmth": 50, + "material_thickness": 3, + "environmental_protection": 1, + "flags": [ "VARSIZE", "POCKETS", "OUTER", "WATERPROOF", "RAINPROOF" ] + }, { "id": "xl_duster_glimmer_fur", "type": "ARMOR", @@ -446,5 +716,283 @@ "name": { "str": "XS moon tears chainmail vest" }, "proportional": { "weight": 0.75, "volume": 0.75, "price": 0.5 }, "extend": { "flags": [ "UNDERSIZE" ] } + }, + { + "id": "dreamforged_ballistic_plate", + "type": "ARMOR", + "name": { "str": "dreamforged ballistic plate" }, + "copy-from": "steel_ballistic_plate", + "description": "Manually forged ballistic plate, made to fit the common ballistic plate. Probably not as good as steel one, but lightweight, and additionally hardened with magic.", + "material": [ "forged_dreamstuff" ], + "weight": "1499 g", + "volume": "749 ml", + "longest_side": "30 cm", + "armor": [ + { + "material": [ { "type": "forged_dreamstuff", "covered_by_mat": 100, "thickness": 1 } ], + "encumbrance": 1, + "coverage": 45, + "covers": [ "torso" ], + "specifically_covers": [ "torso_upper" ] + } + ] + }, + { + "id": "dreamforged_ballistic_plate_small", + "type": "ARMOR", + "name": { "str": "small dreamforged ballistic plate" }, + "copy-from": "steel_ballistic_plate", + "description": "Manually forged ballistic plate, made to fit the common ballistic plate. Probably not as good as steel one, but lightweight, and additionally hardened with magic. Smaller in size, and can fit a side pocket of plate carrier.", + "material": [ "forged_dreamstuff" ], + "weight": "618 g", + "volume": "309 ml", + "longest_side": "20 cm", + "armor": [ + { + "material": [ { "type": "forged_dreamstuff", "covered_by_mat": 100, "thickness": 1 } ], + "encumbrance": 1, + "coverage": 35, + "covers": [ "torso" ], + "specifically_covers": [ "torso_lower" ] + } + ], + "delete": { "flags": [ "ABLATIVE_LARGE" ] }, + "extend": { "flags": [ "ABLATIVE_MEDIUM" ] } + }, + { + "id": "dreamforged_fullhelmet", + "copy-from": "tac_fullhelmet", + "type": "ARMOR", + "category": "armor", + "name": { "str": "dreamforged full helmet" }, + "description": "Manually forged helmet, that resemble the shape of modern army helmets. This one protect both face and eyes, using a special forged mask, but has no visor, and not so comfortable. The dreamdross grant it some small magical properties, but you can't control their effects.", + "weight": "750 g", + "price": 25000, + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "looks_like": "tac_fullhelmet", + "color": "dark_gray", + "armor": [ + { "covers": [ "head" ], "coverage": 100, "encumbrance_modifiers": [ "WELL_SUPPORTED", "RESTRICTS_NECK" ] }, + { "covers": [ "eyes" ], "rigid_layer_only": true, "coverage": 7, "encumbrance": 10 }, + { "covers": [ "mouth" ], "rigid_layer_only": true, "coverage": 10, "encumbrance": 15 } + ], + "warmth": 10, + "material_thickness": 1.4, + "environmental_protection": 2, + "techniques": [ "WBLOCK_1" ], + "flags": [ "VARSIZE", "WATERPROOF", "STURDY", "PADDED" ] + }, + { + "id": "dreamforged_helmet", + "copy-from": "helmet_army", + "type": "ARMOR", + "category": "armor", + "name": { "str": "dreamforged helmet" }, + "description": "Manually forged helmet in the that resemble the shape of modern army helmets.", + "weight": "467 g", + "material": [ "forged_dreamstuff" ], + "symbol": "[", + "looks_like": "helmet_army", + "color": "dark_gray", + "warmth": 10, + "material_thickness": 1.4, + "techniques": [ "WBLOCK_1" ], + "flags": [ "VARSIZE", "WATERPROOF", "STURDY", "PADDED" ], + "armor": [ { "encumbrance_modifiers": [ "NONE" ], "coverage": 85, "covers": [ "head" ] } ] + }, + { + "id": "dreamforged_plate_armor", + "type": "ARMOR", + "copy-from": "armor_lc_lightplate", + "name": { "str": "dreamforged plate armor" }, + "description": "Lightweight armor, forged using dreamdross. The only reason it feels soft enough is the magic. It also has few MOLLE-compatible strips that you can utilize. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "weight": "3896 g", + "volume": "17500 ml", + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "symbol": "[", + "looks_like": "armor_lc_lightplate", + "color": "dark_gray", + "warmth": 12, + "longest_side": "60 cm", + "material_thickness": 2, + "use_action": [ { "type": "attach_molle", "size": 4 }, { "type": "detach_molle" } ], + "flags": [ "OUTER", "STURDY", "ONLY_ONE", "BLOCK_WHILE_WORN", "PADDED" ], + "armor": [ + { + "material": [ { "type": "forged_dreamstuff", "covered_by_mat": 100, "thickness": 2 } ], + "covers": [ "torso" ], + "coverage": 100, + "encumbrance": 7 + }, + { + "material": [ { "type": "forged_dreamstuff", "covered_by_mat": 100, "thickness": 1.25 } ], + "covers": [ "arm_l", "arm_r" ], + "coverage": 100, + "encumbrance": 5 + }, + { + "material": [ { "type": "forged_dreamstuff", "covered_by_mat": 100, "thickness": 1.25 } ], + "covers": [ "leg_l", "leg_r" ], + "coverage": 100, + "encumbrance": 5 + } + ] + }, + { + "id": "dreamforged_armguard_plate", + "copy-from": "armguard_lightplate", + "type": "ARMOR", + "name": { "str": "pair of dreamforged arm guards", "str_pl": "pairs of dreamforged arm guards" }, + "description": "Pair of arm protectors, forged entirely from dreamdross. Instead of straps this one uses a pretty smart locking mechanism, which allows you to adjust it to your hands. The dreamdross grants it some minor magical properties, but you can't control their effects.", + "weight": "706 g", + "volume": "5500 ml", + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "symbol": "[", + "looks_like": "armguard_lightplate", + "color": "dark_gray", + "warmth": 10, + "material_thickness": 1.2, + "flags": [ "VARSIZE", "OUTER", "STURDY", "BLOCK_WHILE_WORN", "PADDED" ], + "armor": [ + { + "covers": [ "arm_l", "arm_r" ], + "encumbrance": 16, + "coverage": 95, + "cover_melee": 95, + "cover_ranged": 95, + "cover_vitals": 90, + "specifically_covers": [ "arm_lower_r", "arm_lower_l", "arm_elbow_r", "arm_elbow_l", "arm_upper_r", "arm_upper_l" ] + } + ] + }, + { + "id": "dreamforged_boots", + "copy-from": "boots_plate", + "type": "ARMOR", + "name": { "str": "pair of dreamforged boots", "str_pl": "pairs of dreamforged boots" }, + "description": "Light set of boots, forged from dreamdross. Surprisingly comfortable for clothing that has no physical padding. The dreamdross grants it some minor magical properties, but you can't control their effects.", + "weight": "490 g", + "volume": "3250 ml", + "price_postapoc": 0, + "symbol": "[", + "looks_like": "boots_steel", + "color": "light_gray", + "warmth": 10, + "material_thickness": 1.5, + "environmental_protection": 1, + "flags": [ "VARSIZE", "WATERPROOF", "STURDY", "PADDED" ], + "armor": [ + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l", + "foot_sole_r", + "foot_sole_l" + ], + "material": [ { "type": "forged_dreamstuff", "covered_by_mat": 100, "thickness": 1.0 } ], + "encumbrance": 15, + "coverage": 100 + }, + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_ankle_r", "foot_ankle_l" ], + "material": [ { "type": "forged_dreamstuff", "covered_by_mat": 100, "thickness": 2.0 } ], + "coverage": 100 + } + ] + }, + { + "id": "dreamforged_helmet_berserker", + "copy-from": "dreamforged_helmet", + "type": "ARMOR", + "category": "armor", + "name": { "str": "berserk helmet" }, + "description": "Thin, smooth helmet, that cover your head, with a wide, sharp two-teeth blade from the forehead. Fueled by damage of berserk knuckles, your feel the helmet pump the tension right into your veins.", + "warmth": 5, + "material_thickness": 0.7, + "relic_data": { "passive_effects": [ { "id": "BERSERKER_REGEN_STAMINA" } ] }, + "armor": [ { "encumbrance_modifiers": [ "NONE" ], "coverage": 85, "covers": [ "head" ] } ] + }, + { + "id": "dreamforged_armguard_plate_berserk", + "copy-from": "dreamforged_armguard_plate", + "type": "ARMOR", + "name": { "str": "pair of dreamforged berserk guards", "str_pl": "pairs of dreamforged berserk guards" }, + "description": "Pair of fiery red armguards, they glow red the more damage you deal, using berserk knuckles, and your physical strength grows respectively.", + "relic_data": { "passive_effects": [ { "id": "BERSERKER_STR" } ] }, + "material_thickness": 0.6 + }, + { + "id": "dreamforged_boots_berserk", + "copy-from": "dreamforged_boots", + "type": "ARMOR", + "name": { "str": "pair of berserker boots", "str_pl": "pairs of berserker boots" }, + "description": "Pair of fiery red boots, they are fueled by damage you deal with berserk knuckles, and increase your speed respectively.", + "relic_data": { "passive_effects": [ { "id": "BERSERKER_SPEED" } ] }, + "armor": [ + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l", + "foot_sole_r", + "foot_sole_l" + ], + "material": [ { "type": "forged_dreamstuff", "covered_by_mat": 100, "thickness": 0.5 } ], + "encumbrance": 10, + "coverage": 100 + }, + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_ankle_r", "foot_ankle_l" ], + "material": [ { "type": "forged_dreamstuff", "covered_by_mat": 100, "thickness": 1 } ], + "coverage": 100 + } + ] + }, + { + "id": "dreamforged_fullhelmet_arcane", + "copy-from": "dreamforged_fullhelmet", + "type": "ARMOR", + "category": "armor", + "name": { "str": "arcane helmet" }, + "description": "Dreamforged helmet with side protection, and carved runes outside. It grant you an ability to understand more, and with better world investigation your mana regeneration grows. Runes are just decorations actually.", + "weight": "581 g", + "color": "dark_gray", + "relic_data": { "passive_effects": [ { "id": "DEDUCTION_REGEN_MANA" } ] }, + "armor": [ { "covers": [ "head" ], "coverage": 80, "encumbrance_modifiers": [ "WELL_SUPPORTED", "RESTRICTS_NECK" ] } ], + "warmth": 5, + "material_thickness": 0.7, + "techniques": [ "WBLOCK_1" ], + "flags": [ "VARSIZE", "WATERPROOF", "STURDY", "PADDED" ] + }, + { + "id": "dreamforged_armguard_plate_gunslinger", + "copy-from": "dreamforged_armguard_plate", + "type": "ARMOR", + "name": { "str_sp": "\"Gunslinger\"" }, + "description": "Pair of flat armguards, fully carved with numbers and crosses. Inside the left guard there is a text, cut with something sharp, that starts from \"Sent onto those that escaped limbo's clutches, and unleash the rage of all hell…\".", + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ALWAYS", + "values": [ { "value": "WEAPON_DISPERSION", "multiply": -0.4 }, { "value": "RECOIL_MODIFIER", "multiply": -0.4 } ] + } + ] + }, + "material_thickness": 0.1 } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/headgear.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/headgear.json index 71534506d..f36876b02 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/headgear.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/headgear.json @@ -1,10 +1,9 @@ [ { "id": "phrygian_cap", - "repairs_like": "beret", "type": "ARMOR", "name": { "str": "phrygian cap" }, - "description": "A soft conical hat with the apex bent over. Commonly worn in antiquity with various cultures in Eastern Europe and Anatolia. It later signified freedom in both the American and French Revolutions.", + "description": "A soft conical hat with the apex bent over. Commonly worn in antiquity by various cultures in Eastern Europe and Anatolia. It later signified freedom in both the American and French Revolutions.", "weight": "120 g", "volume": "250 ml", "price": 1200, @@ -20,10 +19,9 @@ }, { "id": "theredcap", - "repairs_like": "beret", "type": "ARMOR", "name": { "str": "blood red cap" }, - "description": "A soft conical hat with the apex bent over. Commonly worn in antiquity with various cultures in Eastern Europe and Anatolia. It later signified freedom in both the American and French Revolutions.", + "description": "A soft conical hat with the apex bent over. Commonly worn in antiquity by various cultures in Eastern Europe and Anatolia. It later signified freedom in both the American and French Revolutions. Along the brim the cap appears to be the rusty red of old blood.", "weight": "120 g", "volume": "250 ml", "price": 1200, diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/integrated.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/integrated.json new file mode 100644 index 000000000..025a1c96a --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/armor/integrated.json @@ -0,0 +1,604 @@ +[ + { + "id": "armor_bio_flesh_roots", + "type": "ARMOR", + "category": "armor", + "weight": "500 g", + "volume": "1200 ml", + "price": 0, + "price_postapoc": 0, + "symbol": ",", + "color": "brown", + "warmth": 0, + "environmental_protection": 1, + "material_thickness": 1.25, + "flags": [ "INTEGRATED", "UNBREAKABLE", "PERSONAL", "PADDED", "WATER_FRIENDLY", "SOFT", "NO_REPAIR", "ALLOWS_NATURAL_ATTACKS" ], + "material": [ "flesh_roots" ], + "name": { "str_sp": "flesh roots" }, + "description": "A layer of bulging rootlike structures distending the upper layers of skin. Helps protect your body from damage.", + "armor": [ + { + "material": [ { "type": "flesh_roots", "covered_by_mat": 100, "thickness": 1 } ], + "covers": [ "torso", "head", "leg_l", "leg_r", "arm_l", "arm_r" ], + "coverage": 80, + "encumbrance": 0, + "cover_vitals": 65 + } + ] + }, + { + "id": "integrated_pebbled", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "pebbled skin" }, + "description": "Your skin has begun to harden and pebbles have begun to surface.", + "weight": "400 g", + "volume": "400 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "hflesh", "stone" ], + "symbol": "x", + "color": "light_red", + "warmth": 1, + "environmental_protection": 1, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY" ], + "armor": [ + { + "material": [ + { "type": "hflesh", "covered_by_mat": 100, "thickness": 0.5 }, + { "type": "stone", "covered_by_mat": 55, "thickness": 0.5 } + ], + "covers": [ "head" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "GOOD" + }, + { + "material": [ + { "type": "hflesh", "covered_by_mat": 100, "thickness": 0.5 }, + { "type": "stone", "covered_by_mat": 60, "thickness": 0.5 } + ], + "covers": [ "torso", "arm_l", "arm_r", "leg_l", "leg_r" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "GOOD" + }, + { + "material": [ + { "type": "hflesh", "covered_by_mat": 100, "thickness": 0.5 }, + { "type": "stone", "covered_by_mat": 55, "thickness": 0.25 } + ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "GOOD" + } + ] + }, + { + "id": "integrated_granite_skin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "granite skin" }, + "description": "Your skin has hardened into a granite like covering.", + "weight": "400 g", + "volume": "400 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "hflesh", "stone" ], + "symbol": "x", + "color": "light_red", + "warmth": 1, + "environmental_protection": 1, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY" ], + "armor": [ + { + "material": [ + { "type": "hflesh", "covered_by_mat": 100, "thickness": 0.5 }, + { "type": "stone", "covered_by_mat": 100, "thickness": 0.5 } + ], + "covers": [ "head" ], + "coverage": 100, + "encumbrance": 4, + "breathability": "POOR" + }, + { + "material": [ + { "type": "hflesh", "covered_by_mat": 100, "thickness": 0.5 }, + { "type": "stone", "covered_by_mat": 100, "thickness": 0.5 } + ], + "covers": [ "torso", "arm_l", "arm_r", "leg_l", "leg_r" ], + "coverage": 100, + "encumbrance": 4, + "breathability": "POOR" + }, + { + "material": [ + { "type": "hflesh", "covered_by_mat": 100, "thickness": 0.5 }, + { "type": "stone", "covered_by_mat": 100, "thickness": 0.25 } + ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r" ], + "coverage": 100, + "encumbrance": 4, + "breathability": "POOR" + } + ] + }, + { + "id": "integrated_vegital_cuticle", + "type": "ARMOR", + "category": "armor", + "name": { "str": "vegetal cuticle" }, + "description": "A pliable but hefty layer of living plant matter impregnated with various waxy polymers.", + "weight": "2 kg", + "volume": "300 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "mut_wood", "veggy" ], + "symbol": "x", + "color": "light_green", + "warmth": 1, + "environmental_protection": 2, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY", "SOFT" ], + "armor": [ + { + "material": [ + { "type": "veggy", "covered_by_mat": 100, "thickness": 2 }, + { "type": "wood", "covered_by_mat": 100, "thickness": 0.5 } + ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 1, + "breathability": "GOOD" + } + ] + }, + { + "id": "integrated_bark_skin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "barkskin" }, + "description": "A thin layer of bark covers your body.", + "weight": "12 kg", + "volume": "15 L", + "price": 0, + "price_postapoc": 0, + "material": [ "mut_wood" ], + "symbol": "x", + "color": "brown", + "warmth": 2, + "environmental_protection": 4, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "NORMAL", "WATERPROOF", "PADDED" ], + "armor": [ + { + "material": [ { "type": "wood", "covered_by_mat": 100, "thickness": 2 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 4, + "breathability": "AVERAGE" + } + ] + }, + { + "id": "integrated_arvore_eyes", + "//": "These do not preclude wearing glasses, but you'll get double-up penalties. If you really needed to you could likely still situate the lenses in front of them. You should probably just augment your eyes though.", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "arvore eyes" }, + "description": "Your eyes now reflect the seasons: green, yellow, red, orange, or brown. You are also immune to the glare of the sun.", + "weight": "180 g", + "volume": "250 ml", + "price": 0, + "price_postapoc": 0, + "to_hit": -2, + "material": [ "fae_flesh" ], + "symbol": "[", + "color": "green", + "warmth": 0, + "material_thickness": 1.5, + "environmental_protection": 10, + "flags": [ "INTEGRATED", "UNBREAKABLE", "SKINTIGHT", "SOFT", "WATER_FRIENDLY", "SUN_GLASSES", "NO_REPAIR", "NO_SALVAGE" ], + "armor": [ + { + "material": [ { "type": "fae_flesh", "covered_by_mat": 100, "thickness": 0.5 } ], + "covers": [ "eyes" ], + "coverage": 100, + "encumbrance": 0, + "rigid_layer_only": true, + "cover_vitals": 100 + } + ] + }, + { + "id": "integrated_arvore_thorns", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "woody thorns" }, + "description": "Your skin is covered in thick, woody thorns.", + "weight": "0 g", + "volume": "0 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "mut_wood" ], + "symbol": ",", + "color": "green", + "to_hit": 1, + "flags": [ "INTEGRATED", "SEMITANGIBLE", "ZERO_WEIGHT", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "OUTER", "PADDED" ], + "armor": [ + { + "material": [ { "type": "mut_wood", "covered_by_mat": 100, "thickness": 3.2 } ], + "covers": [ "hand_l", "hand_r" ], + "coverage": 0, + "encumbrance": 0 + } + ], + "melee_damage": { "stab": 4 } + }, + { + "id": "integrated_arvore_claws", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "jagged wooden claws" }, + "description": "Your hands and fingers have transformed into jagged wooden claws.", + "weight": "300 g", + "volume": "500 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "mut_wood" ], + "symbol": ",", + "color": "brown", + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "OUTER", "PADDED" ], + "armor": [ + { + "material": [ { "type": "mut_wood", "covered_by_mat": 100, "thickness": 3 } ], + "covers": [ "hand_l", "hand_r" ], + "coverage": 100, + "encumbrance": 6 + } + ], + "melee_damage": { "cut": 10 }, + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": { "not": "u_has_weapon" }, "values": [ { "value": "ATTACK_SPEED", "add": -10 } ] } ] + } + }, + { + "id": "integrated_coal_skin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "burning coals skin" }, + "description": "Your skin has has magickal flames flaring out of it on occasion. You can operate in warmer climates than normal humans but begin to take damage from getting wet.", + "weight": "1 kg", + "volume": "900 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "fae_flesh" ], + "symbol": "x", + "color": "light_red", + "warmth": 1, + "environmental_protection": 1, + "relic_data": { "passive_effects": [ { "id": "coal_skin_enchantment" } ] }, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ { "type": "fae_flesh", "covered_by_mat": 100, "thickness": 3 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "SECOND_SKIN" + } + ], + "melee_damage": { "heat": 4 } + }, + { + "id": "integrated_flameskin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "flaming skin" }, + "description": "Your skin exudes magickal flames constantly, you can operate in almost any heat now without danger but rain may be a lethal threat.", + "weight": "1 kg", + "volume": "900 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "fae_flesh" ], + "symbol": "x", + "color": "light_red", + "warmth": 1, + "environmental_protection": 1, + "relic_data": { "passive_effects": [ { "id": "flame_skin_enchantment" } ] }, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ { "type": "fae_flesh", "covered_by_mat": 100, "thickness": 3 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "SECOND_SKIN" + } + ], + "melee_damage": { "heat": 12 } + }, + { + "id": "integrated_salamander_eyes", + "//": "These do not preclude wearing glasses, but you'll get double-up penalties. If you really needed to you could likely still situate the lenses in front of them. You should probably just augment your eyes though.", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "salamander eyes" }, + "description": "Your eyes now reflect your mood, the warm red of a campfire or the searing heat of an incendiary weapon. Glare no longer affects you.", + "weight": "180 g", + "volume": "250 ml", + "price": 0, + "price_postapoc": 0, + "to_hit": -2, + "material": [ "fae_flesh" ], + "symbol": "[", + "color": "red", + "warmth": 0, + "material_thickness": 1.5, + "environmental_protection": 10, + "flags": [ "INTEGRATED", "UNBREAKABLE", "SKINTIGHT", "SOFT", "WATER_FRIENDLY", "SUN_GLASSES", "NO_REPAIR", "NO_SALVAGE" ], + "armor": [ + { + "material": [ { "type": "fae_flesh", "covered_by_mat": 100, "thickness": 0.5 } ], + "covers": [ "eyes" ], + "coverage": 100, + "encumbrance": 0, + "rigid_layer_only": true, + "cover_vitals": 100 + } + ] + }, + { + "id": "integrated_gelatinous_skin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "liquid skin" }, + "description": "Your skin has become vaguely gelatinous. Provides some extra bash defense and immunity to wet effects.", + "weight": "1 kg", + "volume": "900 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "elemental_water" ], + "symbol": "x", + "color": "light_red", + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ { "type": "elemental_water", "covered_by_mat": 100, "thickness": 3 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "SECOND_SKIN" + } + ] + }, + { + "id": "integrated_wave_skin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "wave skin" }, + "description": "Your skin is completely replaced by magickal water. You have become immune to acid effects.", + "weight": "1 kg", + "volume": "900 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "elemental_water" ], + "symbol": "x", + "color": "light_red", + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ { "type": "elemental_water", "covered_by_mat": 100, "thickness": 6 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "SECOND_SKIN" + } + ] + }, + { + "id": "integrated_undine_eyes", + "//": "These do not preclude wearing glasses, but you'll get double-up penalties. If you really needed to you could likely still situate the lenses in front of them. You should probably just augment your eyes though.", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "undine eyes" }, + "description": "Your eyes now reflect your mood in the colors of the deep waters. From an aquamarine blue when you are pleased to the pitch black of the depths when you are angry or sad. You are also immune to the glare of the sun and can see under water.", + "weight": "180 g", + "volume": "250 ml", + "price": 0, + "price_postapoc": 0, + "to_hit": -2, + "material": [ "fae_flesh" ], + "symbol": "[", + "color": "dark_gray", + "warmth": 0, + "material_thickness": 1.5, + "environmental_protection": 10, + "flags": [ + "INTEGRATED", + "UNBREAKABLE", + "SKINTIGHT", + "SOFT", + "WATER_FRIENDLY", + "SUN_GLASSES", + "NO_REPAIR", + "SWIM_GOGGLES", + "NO_SALVAGE" + ], + "armor": [ + { + "material": [ { "type": "fae_flesh", "covered_by_mat": 100, "thickness": 0.5 } ], + "covers": [ "eyes" ], + "coverage": 100, + "encumbrance": 0, + "rigid_layer_only": true, + "cover_vitals": 100 + } + ] + }, + { + "id": "integrated_cloud_skin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "cloud skin" }, + "description": "Your skin is clearly separate from the air around you but has become its own weather system. If someone reaches out and touches you, they will clearly feel you but you look like someone might reach right through you.", + "weight": "1 kg", + "volume": "900 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "fae_flesh" ], + "symbol": "x", + "color": "light_red", + "relic_data": { "passive_effects": [ { "id": "cloud_skin_enchantment" } ] }, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ { "type": "fae_flesh", "covered_by_mat": 100, "thickness": 3 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "SECOND_SKIN" + } + ] + }, + { + "id": "integrated_storm_skin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "storm skin" }, + "description": "Your skin is a roiling storm. Your flexibility is greatly increased, your ability to ignore temperatures hot and cold have greatly increased but your ability to carry objects has been reduced.", + "weight": "1 kg", + "volume": "900 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "fae_flesh" ], + "symbol": "x", + "color": "light_red", + "relic_data": { "passive_effects": [ { "id": "storm_skin_enchantment" } ] }, + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ { "type": "fae_flesh", "covered_by_mat": 100, "thickness": 6 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "SECOND_SKIN" + } + ] + }, + { + "id": "integrated_sylph_eyes", + "//": "These do not preclude wearing glasses, but you'll get double-up penalties. If you really needed to you could likely still situate the lenses in front of them. You should probably just augment your eyes though.", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "sylph eyes" }, + "description": "Your eyes now reflect your mood in different weather patterns. Clear blue skies when you are pleased and storms when you are mad. You are also immune to the glare of the sun.", + "weight": "180 g", + "volume": "250 ml", + "price": 0, + "price_postapoc": 0, + "to_hit": -2, + "material": [ "fae_flesh" ], + "symbol": "[", + "color": "dark_gray", + "warmth": 0, + "material_thickness": 1.5, + "environmental_protection": 10, + "flags": [ + "INTEGRATED", + "UNBREAKABLE", + "SKINTIGHT", + "SOFT", + "WATER_FRIENDLY", + "SUN_GLASSES", + "NO_REPAIR", + "SWIM_GOGGLES", + "NO_SALVAGE" + ], + "armor": [ + { + "material": [ { "type": "fae_flesh", "covered_by_mat": 100, "thickness": 0.5 } ], + "covers": [ "eyes" ], + "coverage": 100, + "encumbrance": 0, + "rigid_layer_only": true, + "cover_vitals": 100 + } + ] + }, + { + "id": "integrated_porcelain_skin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "porcelain skin" }, + "description": "Your skin has smoothed and all blemishes fade quickly away. Somewhat reduces wet effects and is tougher but heals a little slower.", + "weight": "1 kg", + "volume": "900 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "glass" ], + "symbol": "x", + "color": "light_red", + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ { "type": "glass", "covered_by_mat": 100, "thickness": 3 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "SECOND_SKIN" + } + ] + }, + { + "id": "integrated_latex_skin", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "latex skin" }, + "description": "Your skin has become latex like. It provides some additional protection and flexibility but heals at a much slower rate.", + "weight": "1 kg", + "volume": "900 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "thermo_resin" ], + "symbol": "x", + "color": "light_gray", + "flags": [ "INTEGRATED", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "WATER_FRIENDLY", "PADDED", "SOFT" ], + "armor": [ + { + "material": [ { "type": "thermo_resin", "covered_by_mat": 100, "thickness": 3 } ], + "covers": [ "hand_l", "hand_r", "foot_l", "foot_r", "leg_l", "leg_r", "arm_l", "arm_r", "torso", "head" ], + "coverage": 100, + "encumbrance": 0, + "breathability": "SECOND_SKIN" + } + ] + }, + { + "id": "integrated_bloodbank", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "organic bloodbank" }, + "description": "You can vaguely sense this organ… somewhere in your body.", + "volume": "1 ml", + "price": 0, + "price_postapoc": 0, + "material": [ "flesh" ], + "symbol": "x", + "color": "magenta", + "flags": [ "INTEGRATED", "UNBREAKABLE", "PERSONAL", "NO_SALVAGE", "TRADER_AVOID" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "watertight": true, + "max_contains_volume": "1 L", + "max_contains_weight": "5500 g", + "material_restriction": [ "hblood" ], + "moves": 120, + "rigid": false, + "volume_encumber_modifier": 0.3, + "spoil_multiplier": 0.3 + } + ], + "armor": [ { "covers": [ "torso" ], "coverage": 0, "encumbrance": 0 } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/bionics_mainline_override.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/bionics_mainline_override.json new file mode 100644 index 000000000..5cc57c7eb --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/bionics_mainline_override.json @@ -0,0 +1,323 @@ +[ + { + "id": "bio_alarm", + "copy-from": "bio_alarm", + "type": "BIONIC_ITEM", + "name": { "str": "Alarm System CBM" }, + "installation_data": "AID_bio_alarm" + }, + { + "id": "bio_armor_arms", + "copy-from": "bio_armor_arms", + "type": "BIONIC_ITEM", + "name": { "str": "Arms Alloy Plating CBM" }, + "installation_data": "AID_bio_armor_arms" + }, + { + "id": "bio_armor_legs", + "copy-from": "bio_armor_legs", + "type": "BIONIC_ITEM", + "name": { "str": "Legs Alloy Plating CBM" }, + "installation_data": "AID_bio_armor_legs" + }, + { + "id": "bio_shotgun", + "copy-from": "bio_shotgun", + "type": "BIONIC_ITEM", + "name": { "str": "Shotgun Arm CBM" }, + "installation_data": "AID_bio_shotgun" + }, + { + "id": "bio_blood_anal", + "copy-from": "bio_blood_anal", + "type": "BIONIC_ITEM", + "name": { "str": "Blood Analysis CBM" }, + "installation_data": "AID_bio_blood_anal" + }, + { + "id": "bio_blood_filter", + "copy-from": "bio_blood_filter", + "type": "BIONIC_ITEM", + "name": { "str": "Blood Filter CBM" }, + "installation_data": "AID_bio_blood_filter" + }, + { + "id": "bio_climate", + "copy-from": "bio_climate", + "type": "BIONIC_ITEM", + "name": { "str": "Internal Climate Control CBM" }, + "installation_data": "AID_bio_climate" + }, + { + "id": "bio_flashlight", + "copy-from": "bio_flashlight", + "type": "BIONIC_ITEM", + "name": { "str": "Cranial Flashlight CBM" }, + "installation_data": "AID_bio_flashlight" + }, + { + "id": "bio_tattoo_led", + "copy-from": "bio_tattoo_led", + "type": "BIONIC_ITEM", + "name": { "str": "LED Tattoo CBM" }, + "installation_data": "AID_bio_tattoo_led" + }, + { + "id": "bio_geiger", + "copy-from": "bio_geiger", + "type": "BIONIC_ITEM", + "name": { "str": "Integrated Dosimeter CBM" }, + "installation_data": "AID_bio_geiger" + }, + { + "id": "bio_heatsink", + "copy-from": "bio_heatsink", + "type": "BIONIC_ITEM", + "name": { "str": "Thermal Dissipation CBM" }, + "installation_data": "AID_bio_heatsink" + }, + { + "id": "bio_magnet", + "copy-from": "bio_magnet", + "type": "BIONIC_ITEM", + "name": { "str": "Electromagnetic Unit CBM" }, + "installation_data": "AID_bio_magnet" + }, + { + "id": "bio_meteorologist", + "copy-from": "bio_meteorologist", + "type": "BIONIC_ITEM", + "name": { "str": "Weather Reader CBM" }, + "installation_data": "AID_bio_meteorologist" + }, + { + "id": "bio_power_storage", + "copy-from": "bio_power_storage", + "type": "BIONIC_ITEM", + "name": { "str": "Power Storage CBM" }, + "installation_data": "AID_bio_power_storage" + }, + { + "id": "bio_power_storage_mkII", + "copy-from": "bio_power_storage_mkII", + "type": "BIONIC_ITEM", + "name": { "str": "Power Storage Mk. II CBM" }, + "installation_data": "AID_bio_power_storage_mkII" + }, + { + "id": "bio_ups", + "copy-from": "bio_ups", + "type": "BIONIC_ITEM", + "name": { "str": "Unified Power System CBM" }, + "installation_data": "AID_bio_ups" + }, + { + "id": "bio_watch", + "copy-from": "bio_watch", + "type": "BIONIC_ITEM", + "name": { "str": "Internal Chronometer CBM" }, + "installation_data": "AID_bio_watch" + }, + { + "id": "bio_syringe", + "copy-from": "bio_syringe", + "type": "BIONIC_ITEM", + "name": { "str": "Intravenous Needletip CBM" }, + "installation_data": "AID_bio_syringe" + }, + { + "id": "bio_weight", + "copy-from": "bio_weight", + "type": "BIONIC_ITEM", + "name": { "str": "Titanium Skeletal Bracing CBM" }, + "installation_data": "AID_bio_weight" + }, + { + "id": "bio_soporific", + "copy-from": "bio_soporific", + "type": "BIONIC_ITEM", + "name": { "str": "Soporific Induction CBM" }, + "installation_data": "AID_bio_soporific" + }, + { + "id": "bio_trickle", + "copy-from": "bio_trickle", + "type": "BIONIC_ITEM", + "name": { "str": "Trickle Charger CBM" }, + "installation_data": "AID_bio_trickle" + }, + { + "id": "bio_pitch_perfect", + "copy-from": "bio_pitch_perfect", + "type": "BIONIC_ITEM", + "name": { "str": "Throwing Assist CBM" }, + "installation_data": "AID_bio_pitch_perfect" + }, + { + "abstract": "AID_abstract", + "type": "GENERIC", + "name": { "str": "abstract Autodoc installation data" }, + "material": [ "plastic" ], + "symbol": "#", + "weight": "35 g", + "volume": "50 ml", + "price": "200 USD", + "price_postapoc": "50 USD", + "looks_like": "data_card", + "flags": [ "BIONIC_INSTALLATION_DATA" ] + }, + { + "id": "AID_bio_alarm", + "copy-from": "AID_abstract", + "type": "GENERIC", + "name": { "str_sp": "Alarm System CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Alarm System CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_tattoo_led", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "LED Tattoo CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an LED Tattoo CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_power_storage", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Power Storage CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Power Storage CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_power_storage_mkII", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Power Storage CBM Mk. II installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Power Storage CBM Mk. II, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_watch", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Internal Chronometer CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Internal Chronometer CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_syringe", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Intravenous Needletip CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Intravenous Needletip CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_blood_anal", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Blood Analysis CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Blood Analysis CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_flashlight", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Cranial Flashlight CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Cranial Flashlight CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_magnet", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Electromagnetic Unit CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Electromagnetic Unit CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_soporific", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Soporific Induction CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Soporific Induction CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_armor_arms", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Arms Alloy Plating CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Arms Alloy Plating CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_armor_legs", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Legs Alloy Plating CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Legs Alloy Plating CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_shotgun", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Shotgun Arm CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Shotgun Arm CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_blood_filter", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Blood Filter CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Blood Filter CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_climate", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Internal Climate Control CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Internal Climate Control CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_geiger", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Integrated Dosimeter CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of an Integrated Dosimeter CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_heatsink", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Thermal Dissipation CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Thermal Dissipation CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_meteorologist", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Weather Reader CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Weather Reader CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_ups", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Unified Power System CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Unified Power System CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_weight", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Titanium Skeletal Bracing CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Titanium Skeletal Bracing CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_trickle", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Trickle Charger CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Trickle Charger CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + }, + { + "id": "AID_bio_pitch_perfect", + "type": "GENERIC", + "copy-from": "AID_abstract", + "name": { "str_sp": "Throwing Assist CBM installation data" }, + "description": "Precise step-by-step instructions and other required data for installation of a Throwing Assist CBM, stored on a data card of proprietary form-factor, designed to be used extensively by an Autodoc, and allowing bionic installation with minimal failure chance. An integrated security subroutine renders it unusable after a single installation." + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/biosignatures.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/biosignatures.json new file mode 100644 index 000000000..f3f4271cf --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/biosignatures.json @@ -0,0 +1,11 @@ +[ + { + "type": "COMESTIBLE", + "id": "feces_bat", + "name": { "str_sp": "guano" }, + "copy-from": "feces_bird", + "weight": "750 g", + "volume": "250 ml", + "description": "A fresh pile of bat guano; this could probably be used to make some great fertilizer." + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/book_lore.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/book_lore.json index 613bab3f2..1d70b4b81 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/book_lore.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/book_lore.json @@ -49,5 +49,77 @@ "intelligence": 6, "time": "5 m", "fun": -2 + }, + { + "id": "sylph_parchment", + "type": "BOOK", + "name": { "str": "sylph parchment" }, + "description": "I'm sorry that I won't be there to greet you when you awaken into sentience my offspring, but this world is dying and I must take the roads back home before they darken and grow cold. Even if I were here you would likely find my company to be short lived as the tradition of our people is to witness the waking and greet our offspring then leave them to explore the world on their own. However, I have summoned some lesser creatures of the underhill realms to guard this place and you for as long as they can. Most everything else in this world will attempt to kill you. I have included instructions for how to make a healing item as well as a developmental potion that you can take to bring yourself further into your destiny and will grant new abilities, somewhat randomly I'm afraid. I hope that you survive long enough to become what I hoped for you to be and that you are able to find one of the trodden paths from this place into the borderlands and from there deeper into Fae where you will hopefully find me. All of my hopes and dreams ride with you.", + "weight": "3 g", + "volume": "5 ml", + "price": 0, + "material": [ "paper" ], + "symbol": "/", + "color": "light_gray" + }, + { + "id": "dollkin_tablet", + "type": "BOOK", + "name": { "str": "dollkin tablet" }, + "description": "My dearest child, you are awaking into a cold dying world alone and without parents. Honestly, this is for the best, for I was brought to life amongst the mortals of this realm and the parenting I would be able to pass on to you is entirely tragic. I will spare you from that fate. However, I have summoned some lesser creatures of the underhill realms to guard this place and you for as long as they can. Most everything else in this world will attempt to kill you. I have included instructions for how to make a healing item as well as a developmental potion that you can take to bring yourself further into your destiny and will grant new abilities, somewhat randomly I'm afraid. I hope that you survive long enough to become what I hoped for you to be and that you are able to find one of the trodden paths from this place into the borderlands and from there deeper into Fae where you will hopefully find me. All of my hopes and dreams ride with you.", + "weight": "3 g", + "volume": "5 ml", + "price": 0, + "material": [ "stone" ], + "symbol": "/", + "color": "light_gray" + }, + { + "id": "flametouched_parchment", + "type": "BOOK", + "name": { "str": "flametouched parchment" }, + "description": "If you are reading this you have woken up to sentience as I planned. My timing however was not great in that I've been forced to leave before showing you the hunting ground that I've brought you into existence in. How I envy the experience you will have rampaging through the ashes of the old world. There is significant danger in this world and in time you will be one of the most dangerous beings in it. However, since that time is not yet I have summoned some lesser creatures of the underhill realms to guard this place and you for as long as they can. Most everything else in this world will attempt to kill you. I have included instructions for how to make a healing item as well as a developmental potion that you can take to bring yourself further into your destiny and will grant new abilities, somewhat randomly I'm afraid. I hope that you rise to the top of this crush of predators I've been forced to abandon you among. Good luck and good hunting.", + "weight": "3 g", + "volume": "5 ml", + "price": 0, + "material": [ "stone" ], + "symbol": "/", + "color": "light_gray" + }, + { + "id": "waterkin_tablet", + "type": "BOOK", + "name": { "str": "waterkin tablet" }, + "description": "Spawn of my intentions, I address you from across space and time on today the day of your hatching. As is the custom of our people you have been left in an uncivilized and barbaric place. You must make your way back to us to become one of us. For now you will take a name like those of the dead civilization we've deposited you in. While you must develop on your own and find your way back to us, I have summoned some lesser creatures of the underhill realms to guard this place and you for as long as they can. Most everything else in this world will attempt to kill you, be sure to kill it first. I have included instructions for how to make a healing item as well as a developmental potion that you can take to bring yourself further into your destiny and will grant new abilities, somewhat randomly I'm afraid. The depths will tremble one day in your wake and upon that day you will know how to find us. If you fail we shall never know your name, like all the other lost children.", + "weight": "3 g", + "volume": "5 ml", + "price": 0, + "material": [ "stone" ], + "symbol": "/", + "color": "light_gray" + }, + { + "id": "plantkin_parchment", + "type": "BOOK", + "name": { "str": "plantkin parchment" }, + "description": "My beloved child, the cataclysm struck at this world at a crucial time in your development and we were forced to leave you behind to be born alone or to mercy kill the life you were becoming. When that was the choice upon us it felt like no choice at all. If that was the kinder fate, I am sorry but my hopes to meet you one day were too strong. I am shamed that our clan will be unable to provide you shade and company but, I have summoned some lesser creatures of the underhill realms to guard this place and you for as long as they can. Most everything else in this world will attempt to kill you. I have included instructions for how to make a healing item as well as a developmental potion that you can take to bring yourself further into your destiny and will grant new abilities, somewhat randomly I'm afraid. I hope that you survive long enough to become what I hoped for you to be and that you are able to find one of the trodden paths from this place into the borderlands and from there deeper into Fae where you will hopefully find me. All of my hopes and dreams ride with you.", + "weight": "3 g", + "volume": "5 ml", + "price": 0, + "material": [ "stone" ], + "symbol": "/", + "color": "light_gray" + }, + { + "id": "earthkin_tablet", + "type": "BOOK", + "name": { "str": "earthkin tablet" }, + "description": "Brethren of soil and stone. How our tribe longed to see you stretch forth from the forming pit like so many others before you. It is shame that will take many generations of our people to wash away that we were unable to stay to bring you with us. However, I have summoned some lesser creatures of the underhill realms to guard this place and you for as long as they can. Most everything else in this world will attempt to kill you. I have included instructions for how to make a healing item as well as a developmental potion that you can take to bring yourself further into your destiny and will grant new abilities, somewhat randomly I'm afraid. I hope that you survive long enough to become what I hoped for you to be and that you are able to find one of the trodden paths from this place into the borderlands and from there deeper into Fae where you will hopefully find me. We await you joining our chorus in the deep caves of Fae, once you find your way here.", + "weight": "3 g", + "volume": "5 ml", + "price": 0, + "material": [ "stone" ], + "symbol": "/", + "color": "light_gray" } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/books_deduction.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/books_deduction.json new file mode 100644 index 000000000..1d1f53f75 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/books_deduction.json @@ -0,0 +1,81 @@ +[ + { + "id": "mag_deduction", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Esoteric Investigations Weekly", "str_pl": "issues of Esoteric Investigations Weekly" }, + "description": "A magazine for occult investigators. These types of magazines proliferated in the decade prior to the Cataclysm.", + "weight": "60 g", + "volume": "250 ml", + "price": 480, + "price_postapoc": 250, + "material": [ "paper" ], + "symbol": "?", + "looks_like": "mag_glam", + "color": "brown_green", + "skill": "deduction", + "max_level": 1, + "intelligence": 8, + "time": "8 m", + "fun": 1 + }, + { + "id": "manual_deduction", + "type": "BOOK", + "category": "manuals", + "name": { "str": "The Holmesian Guide to Magickal Practice", "str_pl": "copies of The Holmesian Guide to Magickal Practice" }, + "description": "It's big and heavy, but full of great information about esoteric investigations.", + "weight": "454 g", + "volume": "1250 ml", + "price": 2500, + "price_postapoc": 1250, + "material": [ "paper", "cardboard" ], + "looks_like": "manual_first_aid", + "symbol": "?", + "color": "green", + "skill": "deduction", + "required_level": 2, + "max_level": 3, + "intelligence": 9, + "time": "20 m" + }, + { + "id": "book_teens_deduction", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Scraggy-Boo and the Mystery Crew", "str_pl": "copies of Scraggy-Boo and the Mystery Crew" }, + "description": "A guide for teens interested in pursuing occult knowledge. Readers often speak of encountering a guide in their dreams of a Russian Sheepdog, who introduces himself as Scraggy-Boo.", + "weight": "192 g", + "volume": "250 ml", + "price": 4000, + "price_postapoc": 750, + "material": [ "paper", "leather" ], + "symbol": "?", + "color": "green", + "skill": "deduction", + "required_level": 1, + "max_level": 2, + "intelligence": 8, + "time": "20 m" + }, + { + "id": "book_deduction_black_iron_prison", + "type": "BOOK", + "category": "manuals", + "name": { "str": "Escaping the Black Iron Prison", "str_pl": "copies of Escaping the Black Iron Prison" }, + "description": "A hardbound book detailing numerous rituals and thought modifications in order to teach its readers how to break the shackles of mundanity.", + "weight": "1360 g", + "volume": "2 L", + "price": 8500, + "price_postapoc": 1250, + "material": [ "paper", "cardboard" ], + "symbol": "?", + "color": "black_white", + "skill": "deduction", + "required_level": 3, + "max_level": 4, + "intelligence": 10, + "time": "30 m", + "melee_damage": { "bash": 4 } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/carnivore.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/carnivore.json index 15715d6ee..eacb2ac23 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/carnivore.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/carnivore.json @@ -32,7 +32,6 @@ "price_postapoc": 100, "vitamins": [ [ "underhill_essence", 15 ] ], "material": [ "fae_fur", "fae_flesh" ], - "stack_size": 1, "fun": -24 }, { diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/cbms.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/cbms.json new file mode 100644 index 000000000..258179864 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/cbms.json @@ -0,0 +1,47 @@ +[ + { + "id": "bio_flesh_roots", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Flesh roots seed" }, + "description": "This seed might be more accurately compared to a bulb, because like a bulb you dug it out of the home it had made and chopped off its extremities and are now preparing to plant it in a new location; only, in this instance the hole was dug into the chest of a dead vampire minion and the new location is nestled against the still-beating heart of a patient.", + "price": 350000, + "difficulty": 8 + }, + { + "id": "bio_fuel_cell_vamp_blood", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Vampire Blood Fuel Cell Generator" }, + "description": "What reason could anyone have making a bionic power generator that runs off the blood of vampires? After some thought, one option that occurs to you would be the possibility that by limiting the fuel options, a vampire is also limiting the opportunities for a rogue minion to use its bionics against its master.", + "price": 350000, + "difficulty": 2 + }, + { + "id": "xe_bio_chiropteran_signal", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Chiropteran Signal CBM" }, + "description": "A jar-like container that includes a set of vocal cords with a large hood at the top of them and rootlike tendrils at the base connecting to a microchip.", + "price": 350000, + "difficulty": 8 + }, + { + "id": "xe_bio_xl_chiropteran_signal", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Desmodontinae Gargantua Vocalizer" }, + "description": "A jar-like container that includes a set of oversized and reinforced vocal cords with a large hood at the top of them and rootlike tendrils at the base connecting to a microchip.", + "price": 350000, + "difficulty": 2 + }, + { + "id": "xe_bio_spore_enhancer", + "copy-from": "bionic_general", + "type": "BIONIC_ITEM", + "name": { "str": "Crypt Spore Vaporizer" }, + "description": "A syringe that extends out into two tubes that snake up through the nostrils and down to the lungs in order to get the spores deep into their new home, where they can best spread through the body.", + "price": 350000, + "difficulty": 0 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/clothes.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/clothes.json index 9dac66c6c..faf18bb6a 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/clothes.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/clothes.json @@ -1,12 +1,104 @@ [ { "id": "xedra_jumpsuit", - "repairs_like": "jumpsuit", "type": "ARMOR", "copy-from": "jumpsuit", "looks_like": "jumpsuit", "name": { "str": "OA jumpsuit" }, "description": "A brown jumpsuit with OA written in big yellow block letters on the back.", - "color": "brown" + "color": "brown", + "variants": [ + { + "id": "xedra_jumpsuit_offworld", + "name": { "str": "OA jumpsuit" }, + "description": "A brown jumpsuit with OA written in big yellow block letters on the back.", + "weight": 1 + }, + { + "id": "xedra_jumpsuit_eater", + "name": { "str": "υ jumpsuit" }, + "description": "A black jumpsuit with white symbol \"υ\" on the back.", + "weight": 1 + }, + { + "id": "xedra_jumpsuit_dreamer", + "name": { "str": "ϴ jumpsuit" }, + "description": "A black jumpsuit with white symbol \"ϴ\" on the back.", + "weight": 1 + }, + { + "id": "xedra_jumpsuit_inventor", + "name": { "str": "ν jumpsuit" }, + "description": "A black jumpsuit with white symbol \"ν\" on the back.", + "weight": 1 + }, + { + "id": "xedra_jumpsuit_dreamsmith", + "name": { "str": "τ jumpsuit" }, + "description": "A black jumpsuit with white symbol \"τ\" on the back.", + "weight": 1 + } + ] + }, + { + "id": "alt_tshirt", + "type": "ARMOR", + "name": { "str": "slightly off t-shirt" }, + "description": "A short-sleeved cotton shirt with a design. The design seems strange somehow when you think about this t-shirt as compared to others you've seen before.", + "copy-from": "tshirt", + "variant_type": "generic", + "variants": [ + { + "id": "alt_broadway_tshirt2", + "name": { + "str": "Seven Faceless Voids for Seven Brothers t-shirt", + "str_pl": "Seven Faceless Voids for Seven Brothers t-shirts" + }, + "description": "A pink t-shirt with seven ominous figures in bridal wear facing towards seven identical men. There are tears running down from the eyes of the men.", + "weight": 1 + }, + { + "id": "alt_broadway_tshirt", + "name": { "str": "Sawzall the Musical t-shirt" }, + "description": "A shirt that says Sawzall the Musical in bold letters, over a giant Sawzall tool.", + "symbol": "M", + "color": "light_gray", + "weight": 1 + }, + { + "id": "go_star_tshirt", + "name": { "str": "go t-shirt" }, + "description": "This t-shirt displays a picture of a man standing behind a go table, the text is using an unfamiliar alphabet. His features seem subtly off.", + "symbol": "o", + "color": "dark_gray", + "weight": 1 + }, + { + "id": "tachli_fan_tshirt", + "name": { "str": "Tachli t-shirt" }, + "description": "A short-sleeved cotton shirt with the logo of a Tachli team printed on its front and back. It looks like it might be a violent sport.", + "weight": 1 + }, + { + "id": "rollerball_fan_tshirt", + "name": { "str": "rollerball t-shirt" }, + "description": "A short-sleeved cotton shirt with the logo of a rollerball team, whatever that is, printed on its front and back.", + "weight": 1 + }, + { + "id": "sunnyvale_tshirt", + "name": { "str": "sunnyvale t-shirt" }, + "description": "This t-shirt displays a purple sun rising over a town that looks like it came out of a Doctor Seus book.", + "symbol": "o", + "color": "dark_gray", + "weight": 1 + }, + { + "id": "syndicalist_states_tshirt", + "name": { "str": "CSA t-shirt" }, + "description": "A short-sleeved cotton shirt with a globe at the bottom with a C above the globe with an S to the left and A to the right. The background is like a flag with with the top left being the corner of a black triangle and the bottom right is a red triangle. They meet in the middle with the globe.", + "weight": 1 + } + ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/cold_iron.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/cold_iron.json new file mode 100644 index 000000000..3289cd214 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/cold_iron.json @@ -0,0 +1,100 @@ +[ + { + "id": "cold_iron_ingot", + "type": "AMMO", + "category": "spare_parts", + "name": { "str": "cold iron ingot" }, + "description": "A five-liter ingot of solid cold iron.", + "weight": "39365 g", + "volume": "5 L", + "price": 10000, + "price_postapoc": 200, + "material": [ "iron" ], + "symbol": "=", + "color": "dark_gray", + "ammo_type": "components" + }, + { + "id": "cold_iron_arming_sword", + "type": "TOOL", + "looks_like": "arming_sword", + "category": "weapons", + "symbol": "/", + "color": "dark_gray", + "name": { "str": "cold iron arming sword" }, + "description": "A classic medieval sword, just the right size to use one-handed.\n\nMade with cold iron and lacking a proper grip, this is better than the sticks you swung around as a kid, but you know you can do better.", + "weight": "1360 g", + "volume": "2 L", + "longest_side": "90 cm", + "price": 100000, + "price_postapoc": 4500, + "material": [ "iron" ], + "repairs_with": [ "iron" ], + "flags": [ "SHEATH_SWORD", "CONDUCTIVE" ], + "techniques": [ "WBLOCK_2" ], + "to_hit": { "grip": "solid", "length": "long", "surface": "line", "balance": "good" }, + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 7 ] ], + "weapon_category": [ "MEDIEVAL_SWORDS", "MEDIUM_SWORDS" ], + "melee_damage": { "xe_cold_iron_bash_damage": 6, "xe_cold_iron_cut_damage": 26 } + }, + { + "type": "GENERIC", + "id": "cold_iron_warhammer", + "name": { "str": "war hammer" }, + "description": "A medieval hammer with a spike on one end, made for battle. Its odd shape and balance make it an excellent weapon, but an ineffective tool.", + "weight": "1337 g", + "price_postapoc": 6000, + "color": "dark_gray", + "symbol": "/", + "material": [ "iron", "wood" ], + "repairs_with": [ "iron" ], + "techniques": [ "WBLOCK_1", "BRUTAL", "SWEEP" ], + "flags": [ "DURABLE_MELEE", "SPEAR", "NONCONDUCTIVE" ], + "weapon_category": [ "HOOKING_WEAPONRY", "GREAT_HAMMERS" ], + "volume": "1250 ml", + "longest_side": "120 cm", + "to_hit": { "grip": "weapon", "length": "long", "surface": "line", "balance": "good" }, + "price": 16000, + "qualities": [ [ "HAMMER", 1 ] ], + "melee_damage": { "xe_cold_iron_bash_damage": 22, "xe_cold_iron_stab_damage": 23 } + }, + { + "id": "cold_iron_battleaxe", + "type": "TOOL", + "name": { "str": "cold iron battle axe" }, + "description": "A huge cold iron axe designed for early warfare. Though intended for use as a weapon, it can also be pressed into service as a rather clumsy woodcutting tool.", + "weight": "2002 g", + "volume": "2500 ml", + "longest_side": "100 cm", + "price": 40000, + "price_postapoc": 12000, + "to_hit": { "grip": "weapon", "length": "long", "surface": "line", "balance": "uneven" }, + "material": [ "iron", "wood" ], + "symbol": "/", + "color": "dark_gray", + "techniques": [ "WBLOCK_1", "WIDE", "BRUTAL", "SWEEP" ], + "qualities": [ [ "AXE", 2 ], [ "BUTCHER", -20 ] ], + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "SHEATH_AXE" ], + "weapon_category": [ "HOOKING_WEAPONRY", "GREAT_AXES" ], + "category": "weapons", + "melee_damage": { "xe_cold_iron_bash_damage": 19, "xe_cold_iron_cut_damage": 38 } + }, + { + "id": "cold_iron_knife", + "type": "TOOL", + "name": { "str": "cold iron baselard" }, + "description": "A medieval dagger forged from cold iron. It is not the sharpest tool in the shed, but it is certainly one of the largest.", + "weight": "420 g", + "volume": "250 ml", + "longest_side": "60 cm", + "price": 19590, + "to_hit": { "grip": "weapon", "length": "short", "surface": "point", "balance": "good" }, + "material": [ "iron" ], + "symbol": ";", + "color": "dark_gray", + "qualities": [ [ "CUT", 2 ], [ "BUTCHER", 15 ] ], + "flags": [ "SHEATH_KNIFE", "ALLOWS_BODY_BLOCK" ], + "weapon_category": [ "KNIVES" ], + "melee_damage": { "xe_cold_iron_bash_damage": 5, "xe_cold_iron_stab_damage": 16 } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/comestibles/goblin_fruits.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/comestibles/goblin_fruits.json new file mode 100644 index 000000000..55d7dbecf --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/comestibles/goblin_fruits.json @@ -0,0 +1,419 @@ +[ + { + "type": "COMESTIBLE", + "id": "goblin_fruit_abstract", + "name": { "str": "Abstract Goblin Fruit" }, + "description": "Somehow you got a hold of the platonic goblin fruit, the one fruit to rule them all. It's a bug if you have this, but the lords of the Bright Lands will surely pay a high price for it.", + "weight": "182 g", + "volume": "232 ml", + "color": "magenta", + "spoils_in": "3 days", + "comestible_type": "FOOD", + "symbol": "%", + "quench": 3, + "calories": 75, + "price": 40, + "price_postapoc": 100, + "material": [ "fruit" ], + "fun": 1, + "flags": [ "FREEZERBURN", "NO_AUTO_CONSUME" ], + "vitamins": [ [ "vitC", 10 ], [ "calcium", 10 ], [ "iron", 10 ] ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_healing", + "name": { "str": "sweet goblin fruit" }, + "description": "This round goblin fruit is reddish-orange with a waxy texture. It smells sweet with a hint of petrichor.", + "copy-from": "goblin_fruit_abstract", + "color": "red_yellow", + "weight": "210 g", + "volume": "273 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the sweet goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_HEALING" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_HEALING", + "effect": [ { "u_add_effect": "effect_goblin_fruit_heal", "duration": { "math": [ "150 + rand(350)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_illness", + "name": { "str": "iridescent goblin fruit" }, + "description": "This oblong goblin fruit shimmers slightly in a rainbow of colors. It smells like a mix of peach and freshly-baked bread.", + "copy-from": "goblin_fruit_abstract", + "color": "white", + "weight": "155 g", + "volume": "174 ml", + "fun": 3, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the iridescent goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_ILLNESS" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_ILLNESS", + "effect": [ { "u_add_effect": "effect_goblin_fruit_cure", "duration": "1 seconds" } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_attack_speed", + "name": { "str": "silvery goblin fruit" }, + "description": "This round goblin fruit looks like a metal sculpture but has the yielding texture of a peach. It smells like the tang in the air before a storm.", + "copy-from": "goblin_fruit_abstract", + "color": "light_gray", + "weight": "218 g", + "volume": "278 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the silvery goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_ATTACK_SPEED" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_ATTACK_SPEED", + "effect": [ { "u_add_effect": "effect_goblin_fruit_speed", "duration": { "math": [ "250 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_thorns", + "name": { "str": "spicy goblin fruit" }, + "description": "This long, thin goblin fruit is a subdued green color but has a smell that burns your nostrils.", + "copy-from": "goblin_fruit_abstract", + "color": "light_green", + "weight": "173 g", + "volume": "209 ml", + "fun": -2, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the spicy goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_THORNS" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_THORNS", + "effect": [ { "u_add_effect": "effect_goblin_fruit_thorns", "duration": { "math": [ "500 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_pain", + "name": { "str": "savory goblin fruit" }, + "description": "This round goblin fruit is a bluish color changing to red at the ends. It smells like a freshly-roasted hunk of meat.", + "copy-from": "goblin_fruit_abstract", + "color": "blue", + "weight": "227 g", + "volume": "290 ml", + "fun": 2, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the savory goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_PAIN" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_PAIN", + "effect": [ { "math": [ "u_pain()", "-=", "5" ] } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_warmth", + "name": { "str": "rinded goblin fruit" }, + "description": "This round goblin fruit has a thick red rind with a leaf still attached to the stem. The leaf seems to move occasionally even when there is no wind.", + "copy-from": "goblin_fruit_abstract", + "color": "red", + "weight": "136 g", + "volume": "174 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the rinded goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_WARMTH" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_WARMTH", + "effect": [ { "u_add_effect": "effect_goblin_fruit_keep_warm", "duration": { "math": [ "500 + rand(5000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_awake", + "name": { "str": "minty goblin fruit" }, + "description": "This dark purple goblin fruit has an overpowering minty smell. The smell even escapes sealed containers.", + "copy-from": "goblin_fruit_abstract", + "color": "magenta", + "weight": "150 g", + "volume": "191 ml", + "fun": 0, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the minty goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_AWAKE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_AWAKE", + "effect": [ { "math": [ "u_val('fatigue')", "-=", "25" ] } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_water", + "name": { "str": "cubic goblin fruit" }, + "description": "This pale blue goblin fruit is a cube, and the edges are fine enough to leave a line in your thumb when you press on them. It smells incredibly sour.", + "copy-from": "goblin_fruit_abstract", + "color": "light_blue", + "weight": "182 g", + "volume": "232 ml", + "quench": 200, + "fun": -2 + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_purge_blood", + "name": { "str": "smoky goblin fruit" }, + "description": "This sharply-curved goblin fruit is an off-white color turning red toward the ends. It smells like the alley outside a club.", + "copy-from": "goblin_fruit_abstract", + "color": "light_red", + "weight": "182 g", + "volume": "232 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the smoky goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_PURGE_BLOOD" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_PURGE_BLOOD", + "effect": [ { "u_add_effect": "effect_goblin_fruit_purge_blood", "duration": "1 seconds" } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_dodge", + "name": { "str": "inky goblin fruit" }, + "description": "This large goblin fruit is such a deep black color you can't actually tell exactly what shape it is. It's roundish, but when you hold it, it seems more like you're holding a hole in the fabric of the world. It smells like an apple.", + "copy-from": "goblin_fruit_abstract", + "color": "black", + "weight": "273 g", + "volume": "348 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the inky goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_DODGE" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_DODGE", + "effect": [ { "u_add_effect": "effect_goblin_fruit_dodge", "duration": { "math": [ "250 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_night_vision", + "name": { "str": "toroid goblin fruit" }, + "description": "This yellow-green goblin fruit is shaped like a donut, with six reddish stems spaced equidistantly around its circumference. You can't imagine what the plant that grew this one looks like.", + "copy-from": "goblin_fruit_abstract", + "color": "yellow", + "weight": "118 g", + "volume": "151 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the toroid goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_NIGHT_VISION" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_NIGHT_VISION", + "effect": [ { "u_add_effect": "effect_goblin_fruit_nightvision", "duration": { "math": [ "500 + rand(5000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_no_bleed", + "name": { "str": "dolm goblin fruit" }, + "//~": "Dolm is a fictional color from the 1920 book \"A Voyage to Arcturus\" that's a mix of infrared and blue.", + "description": "This teardrop-shaped goblin fruit hurts to look at. Sometimes it's a dark blue, sometimes it's a feverish red, and sometimes it's a mix of the two that you would previously have sworn could not exist. It smells faintly peppery with a hint of lemon.", + "copy-from": "goblin_fruit_abstract", + "color": "blue_red", + "weight": "191 g", + "volume": "244 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the dolm goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_NO_BLEED" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_NO_BLEED", + "effect": [ { "u_add_effect": "effect_goblin_fruit_nobleed", "duration": { "math": [ "250 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_perception", + "name": { "str": "spikey goblin fruit" }, + "description": "This dark-colored goblin fruit is covered in spikes like a pineapple. Unlike a pineapple, the spikes are yielding and seem part of the fruit, not a rind. It smells of freshly-cut grass.", + "copy-from": "goblin_fruit_abstract", + "color": "dark_gray", + "weight": "182 g", + "volume": "232 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the spikey goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_PERCEPTION" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_PERCEPTION", + "effect": [ { "u_add_effect": "effect_goblin_fruit_perception", "duration": { "math": [ "250 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_no_drunk", + "name": { "str": "sanguine goblin fruit" }, + "description": "A dark red goblin fruit with a heavy iron smell. It feels warm to the touch.", + "copy-from": "goblin_fruit_abstract", + "color": "dark_gray_red", + "weight": "146 g", + "volume": "186 ml", + "fun": -3, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the sanguine goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_NO_DRUNK" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_NO_DRUNK", + "effect": [ { "u_add_effect": "effect_goblin_fruit_no_drunk", "duration": "1 seconds" }, { "math": [ "u_pain()", "+=", "10" ] } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_no_rotten_food", + "name": { "str": "translucent goblin fruit" }, + "description": "This goblin fruit looks like a globe of water with seeds and a stem suspended within it. Despite that, it feels like kiwi, with a slight fuzz and no moisture left on your fingers when you touch it. It smells like roses.", + "copy-from": "goblin_fruit_abstract", + "color": "white", + "weight": "209 g", + "volume": "267 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the translucent goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_NO_ROTTEN_FOOD" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_NO_ROTTEN_FOOD", + "effect": [ { "u_add_effect": "effect_goblin_fruit_eat_poison", "duration": { "math": [ "250 + rand(1500)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_feather_fall", + "name": { "str": "inconspicuous goblin fruit" }, + "description": "This goblin fruit looks like a pear and feels like a pear and smells exactly like a pear. You have no idea how it tastes because the instant you put your tongue to it, your entire mouth goes numb.", + "copy-from": "goblin_fruit_abstract", + "color": "green_yellow", + "weight": "146 g", + "volume": "187 ml", + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the inconspicuous goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_FEATHERFALL" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_FEATHERFALL", + "effect": [ { "u_add_effect": "effect_goblin_fruit_featherfall", "duration": { "math": [ "150 + rand(250)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_super_clairvoyance", + "name": { "str": "crumbly goblin fruit" }, + "description": "This large, curved goblin fruit is a dark blue color and feels like it's already on the verge of rotting. It takes very little pressure for your fingers to bruise the skin and the flesh inside flakes off when you touch it. It smells like sun-ripened strawberries.", + "copy-from": "goblin_fruit_abstract", + "color": "h_black", + "weight": "263 g", + "volume": "300 ml", + "fun": -3, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the crumbly goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_FEATHERFALL" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_SUPER_CLAIRVOYANCE", + "effect": [ { "u_add_effect": "effect_goblin_fruit_super_clairvoyance", "duration": "1 seconds" } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_water_breathing", + "name": { "str": "star-shaped goblin fruit" }, + "description": "This greenish-white goblin fruit is shaped like a star in a much more literal way than a starfruit. It's almost like if a starfish was an apple. It smells like freshly-laundered clothing.", + "copy-from": "goblin_fruit_abstract", + "color": "green_white", + "weight": "210 g", + "volume": "240 ml", + "fun": -3, + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the star-shaped goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_WATER_BREATHING" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_WATER_BREATHING", + "effect": [ { "u_add_effect": "effect_goblin_fruit_water_breathing", "duration": { "math": [ "500 + rand(5000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_giant_growth", + "name": { "str": "shiny goblin fruit" }, + "description": "This round blue goblin fruit glows bright enough to read by. The light flickers like firelight, even when the fruit is simply placed on the table. It smells like pine needles soaked in strong alcohol.", + "copy-from": "goblin_fruit_abstract", + "color": "yellow_cyan", + "weight": "199 g", + "volume": "228 ml", + "flags": [ "FREEZERBURN", "NO_AUTO_CONSUME", "LIGHT_10" ], + "use_action": { + "type": "effect_on_conditions", + "description": "Eat the shiny goblin fruit.", + "effect_on_conditions": [ "EOC_GOBLIN_FRUIT_GIANT_GROWTH" ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_GIANT_GROWTH", + "condition": { "and": [ { "not": { "u_has_trait": "HUGE" } }, { "not": { "u_has_trait": "HUGE_OK" } } ] }, + "effect": [ + { "u_message": "Your body swells and warps as your size increases!", "type": "good" }, + { "u_add_trait": "GOBLIN_FRUIT_GIANT_GROWTH" }, + { "math": [ "u_val('stored_kcal')", "+=", "100000" ] }, + { "queue_eocs": "EOC_GOBLIN_FRUIT_GIANT_GROWTH_REMOVE", "time_in_future": { "math": [ "3000 + rand(10000)" ] } } + ], + "false_effect": [ { "u_message": "You eat the goblin fruit but nothing happens. Oh well." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_GIANT_GROWTH_REMOVE", + "effect": [ + { "u_message": "Your body shrinks and warps as your size decreases!", "type": "mixed" }, + { "u_lose_trait": "GOBLIN_FRUIT_GIANT_GROWTH" }, + { "math": [ "u_val('stored_kcal')", "-=", "100000" ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/comestibles/med.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/comestibles/med.json new file mode 100644 index 000000000..be6557f6b --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/comestibles/med.json @@ -0,0 +1,84 @@ +[ + { + "id": "extra_str_aspirin", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": { "str": "eXtra strength aspirin" }, + "description": "Alchemically altered aspirin. Take to relieve pain and injury.", + "weight": "1 g", + "volume": "1 ml", + "price": "2 cent", + "price_postapoc": "37 cent", + "material": [ "powder" ], + "symbol": "!", + "color": "white", + "container": "bottle_plastic_pill_painkiller", + "healthy": -1, + "flags": [ "WATER_DISSOLVE", "EDIBLE_FROZEN" ], + "use_action": { + "type": "consume_drug", + "activation_message": "You take some eXtra strength aspirin.", + "effects": [ { "id": "xtr_str_aspirin", "duration": 720 } ] + } + }, + { + "id": "truckstop_viagra", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": { "str_sp": "horny rhino pills" }, + "description": "DOES YOUR PARTNER FIND YOUR LACK OF SEXUAL POTENCY PATHETHIC?!??! SMASH YOUR BEDROOM LIKE A WILD ANIMAL ALL NIGHT LONG!!! -ingredients not confirmed with the FDA.", + "weight": "1 g", + "volume": "5 ml", + "price": "4 cent", + "price_postapoc": "5 cent", + "symbol": "!", + "color": "magenta", + "container": "bottle_plastic_pill_supplement", + "quench": -4, + "stim": 10, + "healthy": -3, + "fun": 10, + "addiction_potential": 10, + "addiction_type": "amphetamine", + "flags": [ "NO_INGEST", "WATER_DISSOLVE", "EDIBLE_FROZEN" ], + "use_action": { "type": "consume_drug", "activation_message": "You take the %s. Your skin feels like it is vibrating." } + }, + { + "id": "blood_of_saints", + "type": "COMESTIBLE", + "name": { "str_sp": "blood of the saints" }, + "description": "A rare substance of uncertain origins. Causes you to mutate.", + "price": "2500 USD", + "price_postapoc": "500 USD", + "//": "Not commercially traded, in case there was any question.", + "comestible_type": "MED", + "category": "mutagen", + "weight": "250 g", + "volume": "250 ml", + "charges": 1, + "phase": "liquid", + "container": "flask_glass", + "symbol": "~", + "color": "light_green", + "healthy": -2, + "addiction_potential": 2, + "addiction_type": "mutagen", + "flags": [ "NO_INGEST", "NUTRIENT_OVERRIDE" ], + "vitamins": [ ], + "material": [ "water" ], + "freezing_point": -8, + "use_action": { + "type": "effect_on_conditions", + "description": "Drink the blood.", + "effect_on_conditions": [ + { + "id": "learn_blood_of_saints", + "effect": [ + { "u_message": "You imbibed the concoction and you feel your veins flex in a warm glow." }, + { "u_add_trait": "BLOOD_OF_SAINTS" } + ] + } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/comestibles/raw_fruit.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/comestibles/raw_fruit.json new file mode 100644 index 000000000..03744defb --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/comestibles/raw_fruit.json @@ -0,0 +1,75 @@ +[ + { + "type": "COMESTIBLE", + "id": "hawthorn_petals", + "name": { "str_sp": "hawthorn petals" }, + "weight": "90 g", + "color": "light_green", + "spoils_in": "10 days", + "comestible_type": "FOOD", + "symbol": "%", + "quench": 2, + "calories": 17, + "description": "A small salads worth of hawthorn petals.", + "price": "20 cent", + "price_postapoc": "10 cent", + "material": [ "veggy" ], + "volume": "170 ml", + "flags": [ "FREEZERBURN", "SMOKABLE", "RAW" ], + "smoking_result": "dry_veggy", + "vitamins": [ [ "vitC", 4 ], [ "calcium", 1 ], [ "iron", 2 ] ] + }, + { + "type": "COMESTIBLE", + "id": "hawthorn_berries", + "name": { "str_sp": "hawthorn berries" }, + "weight": "40 g", + "color": "red", + "spoils_in": "2 days 12 hours", + "comestible_type": "FOOD", + "symbol": "%", + "quench": 2, + "calories": 140, + "description": "Dense clusters of edible red berries grow enormously during autumn, but try not to eat the seeds as they contain cyanide. Too tart to be very enjoyable they are often used in jams and jellies.", + "price": 110, + "price_postapoc": 100, + "material": [ "fruit" ], + "volume": "250 ml", + "fun": 0, + "flags": [ "SMOKABLE", "EDIBLE_FROZEN" ], + "smoking_result": "dry_fruit", + "vitamins": [ [ "vitC", 16 ], [ "calcium", 1 ] ] + }, + { + "type": "COMESTIBLE", + "id": "fig", + "name": { "str": "fig" }, + "weight": "40 g", + "color": "yellow", + "spoils_in": "5 days", + "comestible_type": "FOOD", + "symbol": ",", + "calories": 30, + "description": "Figs are a unique fruit resembling a teardrop. They’re about the size of your thumb, filled with hundreds of tiny seeds, and have an edible purple or green peel. The flesh of the fruit is pink and has a mild, sweet taste. The scientific name for the fig is Ficus carica.", + "price": 120, + "price_postapoc": 300, + "material": [ "fruit" ], + "volume": "500 ml", + "fun": 5, + "flags": [ "SMOKABLE" ], + "smoking_result": "dry_fruit" + }, + { + "type": "GENERIC", + "id": "xe_elder_ginseng", + "name": { "str": "elder ginseng", "str_pl": "several elder ginseng" }, + "//": "magical poisons, 'death' and 'bio' related", + "color": "white", + "symbol": "*", + "description": "A clump of off white roots in the shape of a humanoid body. It feels strange to the touch, almost alive.", + "price_postapoc": 700, + "volume": "5 ml", + "weight": "5 g", + "material": "veggy" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/containers.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/containers.json index b714aec5c..abfccae57 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/containers.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/containers.json @@ -6,5 +6,86 @@ "description": { "str": "\"Wyld Candy, our flavors span the possible\" is emblazoned proudly upon this shiny colorful wrapper." }, "copy-from": "wrapper", "pocket_data": [ { "pocket_type": "CONTAINER", "max_contains_volume": "225 ml", "max_contains_weight": "1 kg" } ] + }, + { + "id": "blood_bank", + "type": "GENERIC", + "category": "container", + "name": { "str": "blood bank" }, + "looks_like": "canteen", + "description": "A large moon tear canteen. It radiates the cold of the grave and smells strongly of blood. Any blood stored inside is protected from spoilage by some kind of fae enchantment.", + "weight": "155 g", + "volume": "2625 ml", + "price": 1000, + "price_postapoc": 50, + "to_hit": -1, + "melee_damage": { "bash": 1 }, + "material": [ "moon_tears" ], + "symbol": ")", + "color": "dark_gray", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "watertight": true, + "rigid": true, + "max_contains_volume": "2500 ml", + "max_item_volume": "32 ml", + "max_contains_weight": "5 kg", + "material_restriction": [ "blood", "hblood" ], + "spoil_multiplier": 0 + } + ], + "armor_data": { + "armor": [ + { + "material": [ { "type": "moon_tears", "covered_by_mat": 100, "thickness": 2.0 } ], + "encumbrance": 4, + "coverage": 10, + "covers": [ "torso" ], + "specifically_covers": [ "torso_hanging_front" ] + } + ] + }, + "flags": [ "BELTED", "OVERSIZE", "WATER_FRIENDLY", "COLLAPSE_CONTENTS" ] + }, + { + "id": "blood_camel", + "type": "GENERIC", + "category": "container", + "name": { "str": "blood camel" }, + "looks_like": "runner_bag", + "description": "A slim and lightweight insulated moon tear bladder worn on the back or within a hydration pouch in a backpack. Perfect for the renfield on the go. It has a large pocket and a capped mouth for filling with blood, with a hose that allows the wearer to drink hands-free. Any blood stored inside is protected from spoilage by some kind of fae enchantment.", + "weight": "286 g", + "volume": "3001 ml", + "price": 10000, + "price_postapoc": 250, + "to_hit": -1, + "melee_damage": { "bash": 1 }, + "material": [ "moon_tears" ], + "symbol": ")", + "color": "dark_gray", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "rigid": true, + "watertight": true, + "max_contains_volume": "3000 ml", + "max_item_volume": "32 ml", + "max_contains_weight": "20 kg", + "material_restriction": [ "blood", "hblood" ], + "spoil_multiplier": 0 + } + ], + "armor_data": { + "armor": [ + { + "material": [ { "type": "moon_tears", "covered_by_mat": 100, "thickness": 1.0 } ], + "coverage": 30, + "covers": [ "torso" ], + "specifically_covers": [ "torso_hanging_back" ] + } + ] + }, + "flags": [ "BELTED", "COLLAPSE_CONTENTS" ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/corpses.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/corpses.json new file mode 100644 index 000000000..e1929e449 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/corpses.json @@ -0,0 +1,57 @@ +[ + { + "type": "GENERIC", + "id": "broken_sniperbot", + "symbol": "x", + "color": "brown", + "name": "broken sniper bot", + "category": "other", + "description": "A broken sniper bot. Total scrap, but some stuff is still useful.", + "material": [ "steel" ], + "weight": "40 kg", + "volume": "150 L", + "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + }, + { + "type": "GENERIC", + "id": "broken_shotgunbot", + "symbol": "x", + "color": "brown", + "name": "broken shotgun bot", + "category": "other", + "description": "A broken shotgun bot. Total scrap, but some stuff is still useful.", + "material": [ "steel" ], + "weight": "40 kg", + "volume": "150 L", + "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + }, + { + "type": "GENERIC", + "id": "broken_meleebot", + "symbol": "x", + "color": "brown", + "name": "broken cutthroater", + "category": "other", + "description": "A broken cutthroater. Total scrap, but some stuff is still useful.", + "material": [ "steel" ], + "weight": "40 kg", + "volume": "150 L", + "flags": [ "TRADER_AVOID", "NO_REPAIR" ] + }, + { + "type": "GENERIC", + "id": "broken_exodii_quad_jotunn", + "symbol": ",", + "color": "light_gray", + "name": { "str": "broken Exodii quadruped" }, + "category": "other", + "description": "A broken Exodii Jotunn walker. Still looks incredibly intimidating despite being permanently inoperative, due to the sheer size, mass, and protruding weapons. Could be gutted for parts.", + "price": 1000, + "material": [ "steel" ], + "volume": "410 L", + "weight": "498 kg", + "to_hit": -3, + "flags": [ "TRADER_AVOID", "NO_REPAIR" ], + "melee_damage": { "bash": 20, "cut": 15 } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/drugs.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/drugs.json index 087009617..80e10f180 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/drugs.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/drugs.json @@ -6,11 +6,9 @@ "name": { "str": "faewild dust" }, "description": "A shimmering silvery dust. Narcotic with the street name of Faewild. Causes the user to see colors not normally visible to the naked human eye.", "weight": "1 g", - "volume": "250 ml", - "price": 10000, - "price_postapoc": 2500, - "charges": 5, - "stack_size": 100, + "volume": "2 ml", + "price": "1 USD", + "price_postapoc": "25 cent", "symbol": ":", "color": "pink", "stim": 20, @@ -29,16 +27,16 @@ "name": { "str": "lotus blossom" }, "description": "A drug that became popular over the last few years before the Cataclysm. It appears to be exactly as its street name, a dark purple lotus blossom. It's known to be a strong painkiller while also causing vivid hallucinations.", "weight": "1 g", - "volume": "250 ml", - "price": 10000, - "price_postapoc": 2500, - "charges": 5, - "stack_size": 100, + "volume": "2 ml", + "price": "1 USD", + "price_postapoc": "25 cent", "symbol": "*", "color": "magenta", "stim": -20, "fun": 45, "flags": [ "NO_INGEST", "EDIBLE_FROZEN" ], + "addiction_type": "lotus_blossom", + "addiction_potential": 40, "use_action": { "type": "consume_drug", "activation_message": "You eat the purple lotus blossom.", @@ -57,11 +55,9 @@ "name": { "str": "wyld candy", "str_pl": "wyld candies" }, "description": "Mixed candies purporting to come from 'Fair Folk Industries' these candies appear in areas of the country thought to have significant crossover events. It remains unknown whether these candies are produced by a company from here taking advantage of a thin place or if they came from somewhere else.", "weight": "1 g", - "volume": "100 ml", - "price": 5000, - "price_postapoc": 2000, - "charges": 20, - "stack_size": 20, + "volume": "5 ml", + "price": "250 cent", + "price_postapoc": "1 USD", "symbol": "!", "color": "magenta", "container": "wrapper_wyld", @@ -73,7 +69,7 @@ "type": "COMESTIBLE", "comestible_type": "MED", "name": { "str": "questionable blood treatment" }, - "description": "This homemade blood treatment .", + "description": "This homemade blood treatment purports to reduce the cravings brought on by vampirism and if applied often and early to even reverse some stages of the disease. But vampires surely can't be real, can they?", "weight": "12 g", "volume": "10ml", "price": 5000, @@ -86,9 +82,120 @@ "color": "magenta", "use_action": { "type": "effect_on_conditions", - "description": "You inject the %s in hopes of ending your thirst for blood.", + "description": "Inject the treatment.", "effect_on_conditions": [ "EOC_CONSUMED_BLOOD_TREATMENT" ] }, "flags": [ "NPC_SAFE", "TRADER_AVOID" ] + }, + { + "id": "cthonic_poultice", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": "cthonic poultice", + "description": "A poultice made from the elements of the earth. You could use it to heal your wounds, if you were made of stone.", + "weight": "375 g", + "volume": "250 ml", + "price": 600, + "material": [ "dreamstuff" ], + "symbol": "~", + "color": "brown", + "flags": [ "NO_INGEST", "CANT_HEAL_EVERYONE" ], + "use_action": { "type": "heal", "bandages_power": 15, "limb_power": 5, "bleed": 5, "move_cost": 300 } + }, + { + "id": "verdant_poultice", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": "verdant poultice", + "description": "A poultice made from plant life. You could use it to heal your wounds, if you were grown from plants.", + "weight": "375 g", + "volume": "250 ml", + "price": 600, + "material": [ "dreamstuff" ], + "symbol": "~", + "color": "brown", + "flags": [ "NO_INGEST", "CANT_HEAL_EVERYONE" ], + "use_action": { "type": "heal", "bandages_power": 15, "limb_power": 5, "bleed": 5, "move_cost": 300 } + }, + { + "id": "cerulean_poultice", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": "cerulean poultice", + "description": "A poultice made from the elements of the sea. You could use it to heal your wounds, if you were liquid as well.", + "weight": "375 g", + "volume": "250 ml", + "price": 600, + "material": [ "dreamstuff" ], + "symbol": "~", + "color": "brown", + "flags": [ "NO_INGEST", "CANT_HEAL_EVERYONE" ], + "use_action": { "type": "heal", "bandages_power": 15, "limb_power": 5, "bleed": 5, "move_cost": 300 } + }, + { + "id": "charred_sacrifice", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": "charred sacrifice", + "description": "A devotion to the powers of fire. You could use it to heal your wounds, if you were born of the flames.", + "weight": "375 g", + "volume": "250 ml", + "price": 600, + "material": [ "dreamstuff" ], + "symbol": "~", + "color": "brown", + "flags": [ "NO_INGEST", "CANT_HEAL_EVERYONE" ], + "use_action": { "type": "heal", "bandages_power": 15, "limb_power": 5, "bleed": 5, "move_cost": 300 } + }, + { + "id": "doll_repair_paste", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": "doll repair paste", + "description": "A paste made from paint and glue. You could use it to heal your wounds, if you were made in man's image.", + "weight": "375 g", + "volume": "250 ml", + "price": 600, + "material": [ "dreamstuff" ], + "symbol": "~", + "color": "brown", + "flags": [ "NO_INGEST", "CANT_HEAL_EVERYONE" ], + "use_action": { "type": "heal", "bandages_power": 15, "limb_power": 5, "bleed": 5, "move_cost": 300 } + }, + { + "id": "ethereal_draught", + "type": "COMESTIBLE", + "comestible_type": "MED", + "name": "ethereal draught", + "description": "A concoction made from honey and bread. You could use it to heal your wounds, if you were born of air and darkness.", + "weight": "375 g", + "volume": "250 ml", + "price": 600, + "material": [ "dreamstuff" ], + "symbol": "~", + "color": "brown", + "flags": [ "NO_INGEST", "CANT_HEAL_EVERYONE" ], + "use_action": { "type": "heal", "bandages_power": 15, "limb_power": 5, "bleed": 5, "move_cost": 300 } + }, + { + "id": "elemental_mana_draught", + "name": { "str": "elemental mana draught" }, + "description": "Converting", + "use_action": { "type": "cast_spell", "spell_id": "potion_recover_mana", "no_fail": true, "level": 0 }, + "type": "COMESTIBLE", + "weight": "265 g", + "quench": 1, + "calories": 0, + "volume": "250ml", + "charges": 1, + "fun": -1, + "symbol": "~", + "container": "flask_glass", + "color": "light_blue", + "comestible_type": "DRINK", + "flags": [ "EATEN_COLD", "NO_AUTO_CONSUME", "NUTRIENT_OVERRIDE" ], + "phase": "liquid", + "price": 2500, + "freezing_point": 4 } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/electronics.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/electronics.json new file mode 100644 index 000000000..ef62c5af9 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/electronics.json @@ -0,0 +1,86 @@ +[ + { + "id": "laptop_xedra", + "copy-from": "laptop", + "type": "TOOL", + "category": "tools", + "name": { "str": "XEDRA laptop" }, + "description": "Heavy, dark laptop, with swappable battery slot. Back panel is labeled \"PROPERTY OF XEDRA\". It uses non-standard OS, so there's not much you can use it without reinstalling.", + "symbol": ",", + "color": "dark_gray", + "use_action": [ + { + "type": "effect_on_conditions", + "menu_text": "Try to open locked folders", + "description": "You can guess a password and check some classified information, if it has any.", + "effect_on_conditions": [ "EOC_READ_LOCAL_FILES_XEDRA" ] + }, + { + "target": "laptop_xedra_lit", + "msg": "You light up the screen.", + "menu_text": "Light up the screen", + "active": true, + "need_charges": 1, + "need_charges_msg": "The laptop's batteries need more charge.", + "type": "transform" + }, + { + "target": "laptop", + "msg": "Reinstall the OS.", + "menu_text": "You can reinstall OS to use it as common laptop.", + "need_charges": 50, + "need_charges_msg": "The laptop's batteries need more charge.", + "type": "transform", + "moves": 180000 + }, + { + "type": "link_up", + "menu_text": "Plug in / Unplug", + "ammo_scale": 0, + "cable_length": 5, + "charge_rate": "140 W" + } + ], + "flags": [ "WATCH", "WATER_BREAK", "ELECTRONIC" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM" ], + "default_magazine": "medium_battery_cell" + } + ], + "melee_damage": { "bash": 6 } + }, + { + "id": "laptop_xedra_lit", + "copy-from": "laptop_xedra", + "type": "TOOL", + "name": { "str": "xedra laptop - lit screen", "str_pl": "xedra laptops - lit screen" }, + "power_draw": "1 W", + "revert_to": "laptop_xedra", + "use_action": [ + { + "type": "effect_on_conditions", + "menu_text": "Try to open locked folders", + "description": "You can guess a password and check some classified information, if it has any.", + "effect_on_conditions": [ "EOC_READ_LOCAL_FILES_XEDRA" ] + }, + { + "ammo_scale": 0, + "target": "laptop_xedra", + "msg": "You stop lighting up the screen.", + "menu_text": "Turn off", + "type": "transform" + }, + { + "type": "link_up", + "menu_text": "Plug in / Unplug", + "ammo_scale": 0, + "cable_length": 5, + "charge_rate": "140 W" + } + ], + "flags": [ "WATCH", "LIGHT_10", "TRADER_AVOID", "WATER_BREAK", "ELECTRONIC" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/ethereal_items.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/ethereal_items.json index e90c7e38e..8b76c0738 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/ethereal_items.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/ethereal_items.json @@ -10,7 +10,17 @@ "symbol": "o", "color": "white", "material": [ "dreamstuff" ], - "flags": [ "AURA", "SEMITANGIBLE", "OVERSIZE", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE" ], + "flags": [ + "AURA", + "SEMITANGIBLE", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ALWAYS", "values": [ { "value": "BONUS_DODGE", "add": 2 } ] } ] }, "armor": [ { @@ -20,6 +30,47 @@ } ] }, + { + "id": "aura_futuresight", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "precognitive aura" }, + "description": "A precognitive aura that allows you to dodge things you didn't see coming.", + "weight": "100 g", + "volume": "25 L", + "material": [ "dreamstuff" ], + "symbol": "[", + "color": "light_gray", + "warmth": 5, + "flags": [ + "AURA", + "SEMITANGIBLE", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ALWAYS", + "mutations": [ "FUTURESIGHT" ], + "values": [ { "value": "BONUS_DODGE", "add": 2 } ] + } + ] + }, + "armor": [ + { + "encumbrance": 0, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, { "id": "rapier_dreamdross", "type": "TOOL", @@ -30,34 +81,24 @@ "longest_side": "100 cm", "price": 98000, "price_postapoc": 2500, - "bashing": 2, - "cutting": 31, "to_hit": { "grip": "weapon", "length": "long", "surface": "line", "balance": "good" }, "material": [ "dreamstuff" ], "symbol": "/", "color": "light_gray", "techniques": [ "RAPID", "WBLOCK_2", "PRECISE" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 9 ] ], - "flags": [ - "STAB", - "UNBREAKABLE_MELEE", - "NONCONDUCTIVE", - "NO_REPAIR", - "NO_SALVAGE", - "MAGIC_FOCUS", - "TRADER_AVOID", - "SHEATH_SWORD" - ], + "flags": [ "UNBREAKABLE_MELEE", "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS", "TRADER_AVOID", "SHEATH_SWORD" ], "weapon_category": [ "FENCING_WEAPONRY" ], "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_COLD", "add": 10 } ] } ] }, - "category": "weapons" + "category": "weapons", + "melee_damage": { "bash": 2, "stab": 31 } }, { "id": "dagger_dreamdross", "type": "TOOL", - "name": { "str": "dreamdross fighting knife", "str_pl": "dreamdross fighting knives" }, + "name": { "str": "dreamer dagger" }, "description": "This ephemeral dagger is 15 inches long from the hilt to the tip, the blade itself is a pearly white color and is extremely sharp double edged blade.", "weight": "145 g", "volume": "250 ml", @@ -65,27 +106,16 @@ "price": 4000, "price_postapoc": 750, "to_hit": { "grip": "weapon", "length": "hand", "surface": "point", "balance": "good" }, - "cutting": 16, "material": [ "dreamstuff" ], "symbol": "/", "color": "light_gray", "techniques": [ "RAPID", "WBLOCK_1", "PRECISE" ], "qualities": [ [ "CUT", 2 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 5 ] ], - "flags": [ - "STAB", - "UNBREAKABLE_MELEE", - "NONCONDUCTIVE", - "NO_REPAIR", - "NO_SALVAGE", - "MAGIC_FOCUS", - "TRADER_AVOID", - "SHEATH_KNIFE" - ], + "flags": [ "UNBREAKABLE_MELEE", "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS", "TRADER_AVOID", "SHEATH_KNIFE" ], "weapon_category": [ "KNIVES" ], - "relic_data": { - "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "ITEM_DAMAGE_COLD", "add": 8 } ] } ] - }, - "category": "weapons" + "relic_data": { "passive_effects": [ { "id": "DREAM_DAGGER" } ] }, + "category": "weapons", + "melee_damage": { "stab": 16 } }, { "id": "armor_dreamdross", @@ -97,7 +127,7 @@ "material": [ "dreamstuff" ], "warmth": 0, "material_thickness": 5, - "flags": [ "ONLY_ONE", "OVERSIZE", "PERSONAL", "VARSIZE", "STURDY", "NO_REPAIR", "NO_SALVAGE", "TRADER_AVOID" ], + "flags": [ "ONLY_ONE", "OVERSIZE", "PERSONAL", "PADDED", "STURDY", "NO_REPAIR", "NO_SALVAGE", "TRADER_AVOID" ], "armor": [ { "encumbrance": 5, @@ -107,7 +137,35 @@ ] }, { - "type": "GENERIC", + "id": "aura_drunken_master", + "type": "ARMOR", + "name": "Drunken Master aura", + "description": "Hey I thought this was America…", + "weight": "1 g", + "volume": "1 ml", + "price": 3646, + "symbol": "o", + "color": "white", + "material": [ "dreamstuff" ], + "flags": [ "PERSONAL", "SEMITANGIBLE", "OVERSIZE", "ONLY_ONE", "TRADER_AVOID", "NO_TAKEOFF", "NONCONDUCTIVE" ], + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ALWAYS", + "values": [ + { "value": "STRENGTH", "add": 3 }, + { "value": "DEXTERITY", "add": 3 }, + { "value": "INTELLIGENCE", "add": -6 }, + { "value": "PERCEPTION", "add": -3 } + ], + "mutations": [ "DRUNKEN", "GOODCARDIO" ] + } + ] + } + }, + { + "type": "TOOL", "id": "xe_oneiric_hammer", "name": { "str": "Oneiric Hammer" }, "description": "The platonic embodiment of a blacksmiths hammer. This hammer is necessary to forge or repair items made of forged dreamstuff.", @@ -116,30 +174,121 @@ "color": "brown", "symbol": "/", "material": [ "dreamstuff" ], - "flags": [ - "NONCONDUCTIVE", - "BELT_CLIP", - "LIGHT_15", - "TRADER_AVOID", - "UNBREAKABLE_MELEE", - "NO_REPAIR", - "NO_SALVAGE", - "MAGIC_FOCUS" - ], + "flags": [ "NONCONDUCTIVE", "BELT_CLIP", "TRADER_AVOID", "UNBREAKABLE_MELEE", "NO_REPAIR", "NO_SALVAGE", "MAGIC_FOCUS" ], "volume": "1250 ml", - "bashing": 30, "price": 0, "qualities": [ [ "DREAM_HAMMER", 1 ] ], + "relic_data": { + "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "values": [ { "value": "MAX_MANA", "multiply": -1 } ] } ] + }, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "scrap_dreamdross": 100 } } ], + "charges_per_use": 1, "use_action": [ { "type": "repair_item", "item_action_type": "repair_metal", - "materials": [ "forged_dreamstuff" ], + "materials": [ "forged_dreamstuff", "moon_tears", "moon_tears_fine_chain" ], "skill": "survival", "tool_quality": 0, "cost_scaling": 0.1, "move_cost": 100 } - ] + ], + "melee_damage": { "bash": 30 } + }, + { + "type": "GENERIC", + "id": "constructed_hammer", + "name": { "str": "constructed hammer" }, + "description": "A long handle ending in a two-sided head, one of which is hollow, and the other… does not exist. Weirdly, both heads are equally useful, and the balance of hammer is pretty good to be useful as a weapon. By activating and attacking with the hollow part, the hammer creates a tremendous force, able to break a thick tree (or someone's spine) in half, but will be destroyed afterwards.", + "copy-from": "mace", + "weight": "1250 g", + "color": "dark_gray", + "symbol": "/", + "material": [ "forged_dreamstuff" ], + "volume": "1050 ml", + "price": 0, + "price_postapoc": 0, + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "BELT_CLIP", "TRADER_AVOID", "SINGLE_USE" ], + "use_action": { "type": "cast_spell", "spell_id": "constructed_hammer_attack", "no_fail": true, "level": 0, "need_wielding": true }, + "qualities": [ [ "PRY", 4 ], [ "HAMMER", 2 ], [ "PRYING_NAIL", 1 ] ] + }, + { + "id": "winch_stone", + "type": "ARMOR", + "name": { "str": "constructed winch", "str_pl": "constructed winches" }, + "description": "A small token that floats near your right hand. It pulls you to determined coordinates when you command it.", + "weight": "1 g", + "volume": "1 ml", + "material": [ "dreamstuff" ], + "symbol": "*", + "color": "dark_gray", + "flags": [ + "SINGLE_USE", + "TRADER_AVOID", + "AURA", + "SEMITANGIBLE", + "OVERSIZE", + "ONLY_ONE", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "UNBREAKABLE", + "ALLOWS_NATURAL_ATTACKS" + ], + "armor": [ { "encumbrance": 0, "coverage": 0, "covers": [ "hand_r" ] } ], + "use_action": { "type": "effect_on_conditions", "description": "Jump.", "effect_on_conditions": [ "EOC_WINCH_TELEPORT" ] } + }, + { + "id": "magic_light", + "type": "ARMOR", + "category": "tools", + "name": "magic light", + "description": "A magical light source that will light up a small area.", + "weight": "1 g", + "material": [ "dreamstuff" ], + "volume": "250 ml", + "price": 1, + "to_hit": -2, + "symbol": ",", + "color": "light_green", + "flags": [ "LIGHT_300", "AURA", "SEMITANGIBLE", "UNBREAKABLE", "ALLOWS_NATURAL_ATTACKS" ], + "armor": [ { "covers": [ "head" ] } ], + "melee_damage": { "bash": 8 } + }, + { + "id": "water_pocket", + "type": "ARMOR", + "name": { "str": "water pocket" }, + "description": "A large pouch of churning water on your back, containing a sealed air bubble. It shifts and adjusts itself to minimize encumbrance.", + "weight": "0 kg", + "volume": "0 L", + "price": 0, + "material": [ "water" ], + "symbol": "[", + "color": "green", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "25 L", + "max_contains_weight": "75 kg", + "moves": 60, + "watertight": true, + "airtight": true + } + ], + "material_thickness": 0.1, + "flags": [ + "BELTED", + "TRADER_AVOID", + "WATERPROOF", + "STURDY", + "OVERSIZE", + "NO_TAKEOFF", + "ONLY_ONE", + "NO_REPAIR", + "NO_SALVAGE", + "ZERO_WEIGHT" + ], + "armor": [ { "encumbrance": [ 5, 10 ], "coverage": 40, "covers": [ "torso" ] } ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/guns.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/guns.json index 594082aaa..c151c3213 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/guns.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/guns.json @@ -24,14 +24,14 @@ "price": 95000, "price_postapoc": 3000, "to_hit": -2, - "bashing": 8, "material": [ "plastic", "steel" ], "color": "dark_gray", "ammo": [ "9x21mm" ], "dispersion": 480, "durability": 7, "min_cycle_recoil": 450, - "pocket_data": [ { "magazine_well": "250 ml", "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "sr1vektor_mag_18rd" ] } ] + "pocket_data": [ { "magazine_well": "250 ml", "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "sr1vektor_mag_18rd" ] } ], + "melee_damage": { "bash": 8 } }, { "id": "aa_12", @@ -46,7 +46,6 @@ "price": 189000, "price_postapoc": 8500, "to_hit": -1, - "bashing": 14, "material": [ "steel" ], "dispersion": 358, "durability": 7, @@ -55,7 +54,6 @@ "min_cycle_recoil": 1250, "barrel_volume": "81 ml", "valid_mod_locations": [ - [ "accessories", 2 ], [ "sling", 1 ], [ "stock mount", 1 ], [ "mechanism", 4 ], @@ -66,7 +64,8 @@ [ "sights mount", 1 ], [ "underbarrel mount", 1 ] ], - "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "aa12_box_mag", "aa12_drum_mag" ] } ] + "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "aa12_box_mag", "aa12_drum_mag" ] } ], + "melee_damage": { "bash": 14 } }, { "id": "hammer_turret_system", @@ -81,16 +80,16 @@ "price": 180000, "price_postapoc": 17550, "to_hit": -2, - "bashing": 9, "material": [ "steel" ], "dispersion": 358, "durability": 8, "modes": [ [ "DEFAULT", "burst", 10 ] ], - "ups_charges": 1, + "energy_drain": "1 kJ", "reload": 200, "default_mods": [ "bars" ], - "valid_mod_locations": [ [ "accessories", 4 ], [ "sights", 1 ], [ "rail mount", 1 ] ], + "valid_mod_locations": [ [ "sights", 1 ], [ "rail mount", 1 ] ], "flags": [ "MOUNTED_GUN" ], - "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "aa12_vehicle_drum" ] } ] + "pocket_data": [ { "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "aa12_vehicle_drum" ] } ], + "melee_damage": { "bash": 9 } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/armor.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/armor.json new file mode 100644 index 000000000..cfe828a19 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/armor.json @@ -0,0 +1,647 @@ +[ + { + "id": "helmet_inventor", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "helmet of creative juices", "str_pl": "helmets of creative juices" }, + "description": "The helmet of creative juices may look like a child's homemade toy, but its effects when turned on are real enough. While wearing it, your thoughts are buffered from the outside world by a soft white noise that varies from person to person as to what they actually hear. Some hear the ocean, a fan blowing or paper crumpling. Whatever the sound, it helps you to think faster and more creatively than before.", + "weight": "1383 g", + "volume": "1750 ml", + "material": [ "steel", "plastic" ], + "symbol": "[", + "looks_like": "hat_hard", + "ammo": [ "battery" ], + "color": "green", + "warmth": 20, + "material_thickness": 1.1, + "armor": [ + { + "encumbrance_modifiers": [ "NONE" ], + "coverage": 100, + "covers": [ "head" ], + "specifically_covers": [ "head_crown", "head_forehead" ] + }, + { + "encumbrance_modifiers": [ "NONE" ], + "coverage": 50, + "covers": [ "head" ], + "specifically_covers": [ "head_ear_l", "head_ear_r" ] + } + ], + "charges_per_use": 1, + "relic_data": { "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "INTELLIGENCE", "add": 5 } ] } ] }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "airtight": true, + "watertight": true, + "flag_restriction": [ "BATTERY_LIGHT", "BATTERY_MEDIUM" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ], + "use_action": [ + { + "target": "helmet_inventor_on", + "need_charges": 1, + "active": true, + "msg": "The helmet turns on.", + "type": "transform" + } + ], + "techniques": [ "WBLOCK_1" ], + "flags": [ "WATERPROOF", "STURDY", "PADDED", "TRADER_AVOID", "PSYSHIELD_PARTIAL", "MUNDANE" ] + }, + { + "id": "helmet_inventor_on", + "type": "TOOL_ARMOR", + "copy-from": "helmet_inventor", + "name": { "str": "helmet of creative juices (on)", "str_pl": "helmets of creative juices (on)" }, + "power_draw": "7 W", + "revert_to": "helmet_inventor", + "use_action": [ { "ammo_scale": 0, "target": "helmet_inventor", "msg": "The helmet turns off.", "type": "transform" } ] + }, + { + "id": "inventor_backpack", + "copy-from": "molle_medium_rucksack", + "type": "ARMOR", + "name": { "str": "vacuum backpack" }, + "description": "A backpack with lot of light aluminum bars inside, that hold a perfect vacuum inside, which makes the backpack much lighter than it should be.", + "material": [ "nylon", "aluminum", "plastic" ], + "symbol": "[", + "looks_like": "molle_medium_rucksack", + "color": "green", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "50 L", + "max_contains_weight": "140 kg", + "max_item_length": "50 cm", + "magazine_well": "5 L", + "weight_multiplier": 0.35, + "//": "a bit smaller than i want, to compensate lack of weight multiplier in another pockets", + "volume_encumber_modifier": 0.5, + "moves": 300 + }, + { + "//": "hydration pouch storage", + "pocket_type": "CONTAINER", + "max_contains_volume": "3001 ml", + "max_contains_weight": "4 kg", + "max_item_length": "30 cm", + "moves": 500, + "description": "Pouch sized for a hydration pack." + }, + { + "//": "carabiner pocket", + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "5 L", + "max_contains_weight": "6 kg", + "max_item_length": "120 cm", + "min_item_length": "20 cm", + "moves": 150, + "extra_encumbrance": 3, + "ripoff": 2, + "description": "Attached with a carabiner or strap.", + "activity_noise": { "volume": 8, "chance": 10 }, + "transparent": true + }, + { + "//": "carabiner pocket", + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "5 L", + "max_contains_weight": "6 kg", + "max_item_length": "120 cm", + "min_item_length": "20 cm", + "moves": 150, + "extra_encumbrance": 3, + "ripoff": 2, + "description": "Attached with a carabiner or strap.", + "activity_noise": { "volume": 8, "chance": 10 }, + "transparent": true + }, + { + "//": "tucked against back", + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "5 L", + "max_contains_weight": "4 kg", + "max_item_length": "150 cm", + "min_item_length": "60 cm", + "moves": 200, + "extra_encumbrance": 10, + "description": "Tucked between your back and the backpack.", + "ripoff": 3, + "transparent": true + } + ], + "warmth": 10, + "material_thickness": 2, + "flags": [ "BELTED", "WATER_FRIENDLY", "MUNDANE" ], + "use_action": [ { "type": "attach_molle", "size": 8 }, { "type": "detach_molle" } ], + "armor": [ + { + "encumbrance": 6, + "volume_encumber_modifier": 0.15, + "coverage": 80, + "covers": [ "torso" ], + "specifically_covers": [ "torso_hanging_back" ] + } + ] + }, + { + "id": "inventor_leg_weight", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "leg weight suspension system" }, + "description": "Compact leg attachments, that distribute your weight onto ground nearby using some kind of force. It makes you leave giant spherical footprints, but makes carrying heavy weight much easier.", + "weight": "1657 g", + "volume": "1500 ml", + "material": [ "steel", "copper", "leather" ], + "symbol": "[", + "looks_like": "legguard_hard", + "color": "light_red", + "flags": [ "STURDY", "OUTER", "BELTED", "MUNDANE" ], + "ammo": "battery", + "use_action": { + "target": "inventor_leg_weight_on", + "msg": "You turn on the weight suspension system.", + "active": true, + "type": "transform" + }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM", "BATTERY_HEAVY" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ], + "armor": [ + { + "covers": [ "torso" ], + "coverage": 50, + "specifically_covers": [ "torso_waist" ], + "encumbrance": 2, + "material": [ { "type": "leather", "covered_by_mat": 100, "thickness": 2 } ] + }, + { + "material": [ + { "type": "steel", "covered_by_mat": 100, "thickness": 0.6 }, + { "type": "copper", "covered_by_mat": 100, "thickness": 0.6 } + ], + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_hip_l", "leg_hip_r" ], + "coverage": 20, + "encumbrance": 7 + } + ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "CARRY_WEIGHT", "add": 35000 } ] } ] + } + }, + { + "id": "inventor_leg_weight_on", + "copy-from": "inventor_leg_weight", + "name": { "str": "leg weight suspension system" }, + "type": "TOOL_ARMOR", + "power_draw": "5 W", + "revert_to": "inventor_leg_weight", + "use_action": { "target": "inventor_leg_weight", "msg": "You turn off the weight suspension system.", "type": "transform" } + }, + { + "id": "inventor_jump_boots", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "jump driver" }, + "description": "Heavily mechanized boots with small integrated battery slot inside. Upon activation make you jump higher and farther.", + "weight": "1657 g", + "volume": "1500 ml", + "material": [ "leather", "kevlar", "rubber", "steel" ], + "symbol": "[", + "looks_like": "legguard_hard", + "color": "light_red", + "flags": [ "STURDY", "OUTER", "SOFT", "MUNDANE" ], + "ammo": "battery", + "charges_per_use": 150, + "use_action": { "type": "cast_spell", "spell_id": "jump_boots_leap", "no_fail": true, "level": 0 }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_LIGHT", "BATTERY_MEDIUM" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ], + "armor": [ + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ + "foot_toes_r", + "foot_toes_l", + "foot_ankle_r", + "foot_ankle_l", + "foot_heel_r", + "foot_heel_l", + "foot_arch_r", + "foot_arch_l" + ], + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 1.25 }, + { "type": "kevlar", "covered_by_mat": 100, "thickness": 1.25 }, + { "type": "steel", "covered_by_mat": 5, "thickness": 1.25 } + ], + "encumbrance": 7, + "coverage": 100 + }, + { + "covers": [ "foot_l", "foot_r" ], + "specifically_covers": [ "foot_sole_r", "foot_sole_l" ], + "material": [ + { "type": "leather", "covered_by_mat": 100, "thickness": 0.1 }, + { "type": "rubber", "covered_by_mat": 100, "thickness": 6.0 } + ], + "coverage": 100 + } + ] + }, + { + "id": "aura_force", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "force shield" }, + "description": "Small, thin torus with a huge battery case, and a belt. You can activate it, to emit a field, that covers your whole body, and decelerate all objects that it touches.", + "weight": "270 g", + "volume": "660 ml", + "material": [ "aluminum", "leather", "steel", "copper" ], + "symbol": "[", + "ammo": [ "battery" ], + "color": "blue", + "warmth": 0, + "material_thickness": 3, + "armor": [ + { + "covers": [ "torso" ], + "coverage": 50, + "specifically_covers": [ "torso_waist" ], + "encumbrance": 2, + "material": [ { "type": "leather", "covered_by_mat": 100, "thickness": 2 } ] + }, + { + "material": [ { "type": "aluminum", "covered_by_mat": 100, "thickness": 0.7 } ], + "covers": [ "leg_l", "leg_r" ], + "specifically_covers": [ "leg_hip_l", "leg_hip_r" ], + "coverage": 25, + "encumbrance": 7 + } + ], + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ACTIVE", + "values": [ + { "value": "ARMOR_CUT", "multiply": -0.5 }, + { "value": "ARMOR_BASH", "multiply": -0.5 }, + { "value": "ARMOR_STAB", "multiply": -0.5 }, + { "value": "ARMOR_BULLET", "multiply": -0.5 } + ] + } + ] + }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "airtight": true, + "watertight": true, + "flag_restriction": [ "BATTERY_LIGHT", "BATTERY_MEDIUM" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ], + "use_action": [ + { + "target": "aura_force_on", + "need_charges": 1, + "active": true, + "msg": "The torus start to emit an invisible waves.", + "type": "transform" + } + ], + "techniques": [ "WBLOCK_1" ], + "flags": [ "WATERPROOF", "STURDY", "SOFT", "TRADER_AVOID", "BELTED", "MUNDANE" ] + }, + { + "id": "aura_force_on", + "type": "TOOL_ARMOR", + "copy-from": "aura_force", + "name": { "str": "force shield (on)", "str_pl": "force shields (on)" }, + "power_draw": "250 W", + "revert_to": "aura_force", + "use_action": [ { "ammo_scale": 0, "target": "aura_force", "msg": "Torus stops working.", "type": "transform" } ] + }, + { + "id": "vision_halo", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "electronic halo" }, + "description": "A small crown with processor on the back, and few micro projectors, that project calculated information onto your eye. The internal storage and RAM is capable to hold a simple AI, which, combined with various cameras, that cover whole 360 degree around, allow you to perform various tasks much more effective than before, and battle mode turn on the power-hungry aspect-radiation detector.", + "weight": "155 g", + "volume": "490 ml", + "material": [ "aluminum", "copper" ], + "symbol": "[", + "looks_like": "glasses_safety", + "color": "light_gray", + "use_action": [ + "CAMERA", + "CALORIES_INTAKE_TRACKER", + "PORTABLE_GAME", + "EINKTABLETPC", + "ELECTRICSTORAGE", + "EBOOKSAVE", + "EBOOKREAD", + { + "target": "vision_halo_on", + "msg": "Turn on.", + "menu_text": "Turn on a battle mode", + "active": true, + "need_charges": 1, + "need_charges_msg": "The halo's charge is too low.", + "type": "transform" + } + ], + "ammo": [ "battery" ], + "material_thickness": 0.1, + "flags": [ "WATCH", "ALARMCLOCK", "SKINTIGHT", "WATER_BREAK", "CALORIES_INTAKE", "ELECTRONIC", "MUNDANE" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "airtight": true, + "watertight": true, + "flag_restriction": [ "BATTERY_ULTRA_LIGHT", "BATTERY_LIGHT" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "light_minus_disposable_cell" + }, + { + "pocket_type": "EBOOK", + "rigid": true, + "max_contains_volume": "1 ml", + "max_contains_weight": "1 g", + "weight_multiplier": 0.0 + } + ], + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ACTIVE", + "values": [ + { "value": "BONUS_DODGE", "add": 1 }, + { "value": "PERCEPTION", "add": 2 }, + { "value": "MOTION_VISION_RANGE", "add": 30 }, + { "value": "RANGED_DAMAGE", "multiply": 0.33 }, + { "value": "WEAPON_DISPERSION", "multiply": 0.33 } + ] + } + ] + }, + "armor": [ { "coverage": 10, "encumbrance": 1, "covers": [ "head" ], "specifically_covers": [ "head_crown" ] } ] + }, + { + "id": "vision_halo_on", + "type": "TOOL_ARMOR", + "category": "armor", + "name": { "str": "electronic halo (on)", "str_pl": "electronic halos (on)" }, + "copy-from": "vision_halo", + "power_draw": "500 W", + "revert_to": "vision_halo", + "use_action": [ + "CAMERA", + "EINKTABLETPC", + "ELECTRICSTORAGE", + "EBOOKSAVE", + "EBOOKREAD", + { + "target": "vision_halo", + "msg": "Turn off.", + "menu_text": "Turn off a battle mode", + "active": false, + "need_charges": 0, + "type": "transform" + } + ], + "tick_action": [ "EPIC_MUSIC" ] + }, + { + "type": "ARMOR", + "id": "inventor_fists", + "symbol": "3", + "color": "light_gray", + "name": { "str": "heavy CQC system" }, + "description": "Heavyweight system, starting from your hands, that holds a square-ish steel frame with few bumps on the end, to increase damage output by concentrating the impact point. It goes into your lower arms with thick piece of hardened steel to cover both your limbs and the hydraulic system, extends into the upper arm with aluminum tubes for hydraulics, and ends on your back, where the main part of hydraulic servos belong. The energy consumption is recuperated from each move, but overall weight and bulkiness of the system makes it barely possible to use with anything in your hands.", + "material": [ "aluminum", "steel" ], + "volume": "11678 ml", + "weight": "3970 g", + "flags": [ "DURABLE_MELEE", "PADDED", "MUNDANE" ], + "techniques": [ "WBLOCK_3", "BRUTAL", "SWEEP" ], + "material_thickness": 1, + "armor": [ + { + "material": [ { "type": "steel", "covered_by_mat": 100, "thickness": 5 } ], + "encumbrance": 7, + "coverage": 50, + "covers": [ "hand_l", "hand_r" ], + "specifically_covers": [ "hand_palm_l", "hand_palm_r", "hand_wrist_l", "hand_wrist_r" ], + "breathability": "GOOD" + }, + { + "material": [ + { "type": "aluminum", "covered_by_mat": 25, "thickness": 1.0 }, + { "type": "steel", "covered_by_mat": 100, "thickness": 2.5 } + ], + "encumbrance": 7, + "coverage": 50, + "covers": [ "arm_l", "arm_r" ], + "specifically_covers": [ "arm_lower_l", "arm_lower_r", "arm_elbow_l", "arm_elbow_r" ], + "breathability": "GOOD" + }, + { + "material": [ { "type": "aluminum", "covered_by_mat": 100, "thickness": 1.0 } ], + "encumbrance": 7, + "coverage": 25, + "covers": [ "arm_l", "arm_r" ], + "specifically_covers": [ "arm_upper_l", "arm_upper_r", "arm_shoulder_l", "arm_shoulder_r" ], + "breathability": "GOOD" + }, + { + "material": [ + { "type": "aluminum", "covered_by_mat": 100, "thickness": 1.0 }, + { "type": "steel", "covered_by_mat": 100, "thickness": 0.3 } + ], + "encumbrance": 11, + "coverage": 100, + "covers": [ "torso" ], + "specifically_covers": [ "torso_upper" ], + "breathability": "GOOD" + } + ], + "melee_damage": { "bash": 28 } + }, + { + "type": "TOOL_ARMOR", + "id": "inventor_electric_fist", + "symbol": "3", + "color": "light_gray", + "looks_like": "gauntlets_chitin", + "name": { "str": "\"Overture\"", "str_pl": "\"Overtures\"" }, + "description": "A bulky mess of coils and wires that goes from your fists to your shoulder, and a slot for a small battery behind the elbow. Upon activation, it start to emit huge electrical charges, frying your enemies when you attack them in melee.", + "material": [ "aluminum", "copper" ], + "volume": "155 ml", + "weight": "300 g", + "longest_side": "25 cm", + "ammo": [ "battery" ], + "flags": [ "ONLY_ONE", "TRADER_AVOID", "MUNDANE" ], + "use_action": [ + { + "target": "inventor_electric_fist_act", + "msg": "Turn on.", + "menu_text": "Turn on the overture", + "active": true, + "need_charges": 1, + "need_charges_msg": "The halo's charge is too low.", + "type": "transform" + } + ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "airtight": true, + "watertight": true, + "flag_restriction": [ "BATTERY_ULTRA_LIGHT", "BATTERY_LIGHT" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "light_minus_disposable_cell" + } + ], + "relic_data": { + "passive_effects": [ + { + "has": "WORN", + "condition": "ACTIVE", + "hit_you_effect": [ { "id": "inventor_electric_fist_spell", "once_in": 6 } ], + "values": [ { "value": "ITEM_DAMAGE_ELEC", "add": 10 } ] + } + ] + }, + "material_thickness": 0.3, + "armor": [ { "encumbrance": 4, "coverage": 45, "covers": [ "arm_l", "arm_r" ] } ] + }, + { + "type": "TOOL_ARMOR", + "id": "inventor_electric_fist_act", + "copy-from": "inventor_electric_fist", + "symbol": "3", + "color": "light_gray", + "name": { "str": "\"Overture\" (on)", "str_pl": "\"Overtures\" (on)" }, + "power_draw": "50 W", + "revert_to": "inventor_electric_fist", + "use_action": [ { "ammo_scale": 0, "target": "inventor_electric_fist", "msg": "The fist turns off.", "type": "transform" } ] + }, + { + "id": "wolf_mask", + "type": "TOOL_ARMOR", + "category": "clothing", + "name": { "str": "wolf's mask" }, + "description": "A huge, respirator-like mask, covering the whole head except for the right eye. Upon activation saves you lungs from toxic gases, and improve your breathing and, therefore, stamina.", + "weight": "405 g", + "volume": "1479 ml", + "material": [ "aluminum" ], + "symbol": "[", + "looks_like": "mask_gas", + "ammo": [ "battery" ], + "color": "dark_gray", + "material_thickness": 0.4, + "environmental_protection": 4, + "flags": [ "MUNDANE" ], + "relic_data": { + "passive_effects": [ { "has": "WORN", "condition": "ACTIVE", "values": [ { "value": "REGEN_STAMINA", "multiply": 0.6 } ] } ] + }, + "armor": [ + { "covers": [ "eyes" ], "rigid_layer_only": true, "coverage": 100, "encumbrance": 3 }, + { "covers": [ "mouth" ], "rigid_layer_only": true, "coverage": 100, "encumbrance": 7 } + ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "airtight": true, + "watertight": true, + "flag_restriction": [ "BATTERY_ULTRA_LIGHT", "BATTERY_LIGHT" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "light_minus_disposable_cell" + } + ], + "use_action": [ + { + "target": "wolf_mask_act", + "msg": "Turn on.", + "menu_text": "Turn on the mask", + "active": true, + "need_charges": 1, + "need_charges_msg": "The mask's charge is too low.", + "type": "transform" + } + ] + }, + { + "id": "wolf_mask_act", + "type": "TOOL_ARMOR", + "copy-from": "wolf_mask", + "name": { "str": "wolf's mask (on)", "str_pl": "a few wolf's mask (on)" }, + "power_draw": "5 W", + "environmental_protection": 25, + "revert_to": "wolf_mask", + "use_action": [ { "ammo_scale": 0, "target": "wolf_mask", "msg": "The mask stops working.", "type": "transform" } ] + }, + { + "id": "magnetic_holster", + "type": "ARMOR", + "name": { "str": "magnetic holster" }, + "looks_like": "shoulder_strap", + "description": "Long strap with small, powerful gravity pullers on the surface. Allow to strap and carry almost anything.", + "weight": "250 g", + "volume": "250 ml", + "material": [ "plastic", "aluminum" ], + "symbol": "[", + "color": "light_gray", + "sided": true, + "material_thickness": 1, + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "holster": true, + "max_contains_volume": "3 L", + "max_contains_weight": "5 kg", + "max_item_length": "200 cm", + "moves": 50 + } + ], + "use_action": { "type": "holster" }, + "flags": [ "BELTED", "OVERSIZE", "MUNDANE" ], + "armor": [ { "encumbrance": 1, "coverage": 5, "covers": [ "torso" ], "specifically_covers": [ "torso_upper" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/bots.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/bots.json new file mode 100644 index 000000000..635151bf6 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/bots.json @@ -0,0 +1,56 @@ +[ + { + "id": "bot_sniperbot", + "type": "TOOL", + "name": { "str": "inactive sniper bot" }, + "description": "Compressed sniper sentry. Ludicrious, physical law violating compression allow to fit them into small metal cylinder, but the weight compression is not as effective.", + "weight": "5 kg", + "volume": "500 ml", + "symbol": ";", + "color": "red", + "use_action": { + "type": "place_monster", + "monster_id": "mon_sniperbot", + "difficulty": 0, + "moves": 100, + "skills": [ "deduction", "electronics", "computer" ] + }, + "flags": [ "SINGLE_USE" ] + }, + { + "id": "bot_shotgunbot", + "type": "TOOL", + "name": { "str": "inactive shotgun bot" }, + "description": "Compressed shotgun sentry. Ludicrious, physical law violating compression allow to fit them into small metal cylinder, but the weight compression is not as effective.", + "weight": "5 kg", + "volume": "500 ml", + "symbol": ";", + "color": "red", + "use_action": { + "type": "place_monster", + "monster_id": "mon_shotgunbot", + "difficulty": 0, + "moves": 100, + "skills": [ "deduction", "electronics", "computer" ] + }, + "flags": [ "SINGLE_USE" ] + }, + { + "id": "bot_meleebot", + "type": "TOOL", + "name": { "str": "inactive melee bot" }, + "description": "Compressed melee sentry. Ludicrious, physical law violating compression allow to fit them into small metal cylinder, but the weight compression is not as effective.", + "weight": "5 kg", + "volume": "500 ml", + "symbol": ";", + "color": "red", + "use_action": { + "type": "place_monster", + "monster_id": "mon_meleebot", + "difficulty": 0, + "moves": 100, + "skills": [ "deduction", "electronics", "computer" ] + }, + "flags": [ "SINGLE_USE" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/gun.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/gun.json new file mode 100644 index 000000000..995c1c5a4 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/gun.json @@ -0,0 +1,761 @@ +[ + { + "id": "battery_gun", + "type": "GUN", + "reload_noise_volume": 4, + "name": { "str": "battery-powered laser pistol" }, + "description": "This handgun looks like it came from some sci-fi journal. It has a recharge slot that is somehow capable of using almost any type of battery.", + "weight": "1170 g", + "volume": "482 ml", + "longest_side": "16 cm", + "to_hit": -2, + "melee_damage": { "bash": 6 }, + "material": [ "steel" ], + "symbol": "(", + "color": "blue", + "skill": "pistol", + "ammo": "battery", + "ammo_to_fire": 5, + "range": 7, + "ranged_damage": { "damage_type": "heat", "amount": 15, "armor_penetration": 2 }, + "dispersion": 15, + "durability": 8, + "loudness": 15, + "reload": 250, + "valid_mod_locations": [ [ "emitter", 1 ], [ "grip", 1 ], [ "rail", 1 ], [ "sights", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], + "ammo_effects": [ "LASER" ], + "flags": [ "NEVER_JAMS", "NO_SALVAGE", "NO_REPAIR", "NON_FOULING", "NEEDS_NO_LUBE", "TRADER_AVOID" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_ULTRA_LIGHT", "BATTERY_LIGHT", "BATTERY_MEDIUM" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ] + }, + { + "id": "ray_gun", + "type": "GUN", + "reload_noise_volume": 4, + "name": { "str": "ray gun" }, + "description": "A ray gun with lots of cylinders and whorling cables that light up. It has a recharge slot that is somehow capable of using almost any type of battery.", + "weight": "2726 g", + "volume": "4718 ml", + "longest_side": "896 mm", + "to_hit": -2, + "melee_damage": { "bash": 6 }, + "material": [ "steel" ], + "symbol": "(", + "color": "light_blue", + "skill": "smg", + "ammo": "battery", + "ammo_to_fire": 15, + "range": 16, + "ranged_damage": { "damage_type": "heat", "amount": 25, "armor_penetration": 6 }, + "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 5 ] ], + "dispersion": 15, + "durability": 8, + "loudness": 15, + "reload": 250, + "valid_mod_locations": [ + [ "emitter", 1 ], + [ "grip", 1 ], + [ "rail", 1 ], + [ "lens", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "stock accessory", 1 ], + [ "underbarrel", 1 ] + ], + "ammo_effects": [ "LASER", "INCENDIARY" ], + "flags": [ "NEVER_JAMS", "NO_SALVAGE", "NO_REPAIR", "NON_FOULING", "NEEDS_NO_LUBE", "TRADER_AVOID" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_ULTRA_LIGHT", "BATTERY_LIGHT", "BATTERY_MEDIUM", "BATTERY_HEAVY" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ] + }, + { + "id": "ray_rifle", + "type": "GUN", + "reload_noise_volume": 4, + "name": { "str": "the hyperboloid" }, + "description": "Pretty bulky, this laser rifle has double the amount of lenses and emitters, which makes it really devastating after some modding.", + "weight": "3540 g", + "volume": "3830 ml", + "longest_side": "991 mm", + "to_hit": -2, + "melee_damage": { "bash": 6 }, + "material": [ "steel" ], + "symbol": "(", + "color": "light_blue", + "skill": "rifle", + "ammo": "battery", + "ammo_to_fire": 30, + "range": 32, + "ranged_damage": { "damage_type": "heat", "amount": 35, "armor_penetration": 6 }, + "modes": [ [ "DEFAULT", "semi-auto", 1 ] ], + "dispersion": 15, + "durability": 8, + "loudness": 25, + "reload": 350, + "valid_mod_locations": [ + [ "emitter", 2 ], + [ "grip", 1 ], + [ "rail", 1 ], + [ "lens", 2 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "stock accessory", 1 ], + [ "underbarrel", 1 ] + ], + "ammo_effects": [ "LASER", "INCENDIARY" ], + "flags": [ "NEVER_JAMS", "NO_SALVAGE", "NO_REPAIR", "NON_FOULING", "NEEDS_NO_LUBE", "TRADER_AVOID" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_ULTRA_LIGHT", "BATTERY_LIGHT", "BATTERY_MEDIUM", "BATTERY_HEAVY" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ] + }, + { + "id": "death_ray", + "type": "GUN", + "name": { "str": "death ray" }, + "description": "The Aetheric Death Ray, glowing a menacing green. It hums with a barely controlled hatred of organic life. It must recharge on its own, as there are no ports or battery slots on it. It's sleek and smooth and evil.", + "weight": "2792 g", + "volume": "3965 ml", + "longest_side": "114 cm", + "to_hit": -2, + "melee_damage": { "bash": 6 }, + "material": [ "steel" ], + "symbol": "(", + "color": "magenta", + "skill": "rifle", + "ammo": "aetheric_charge", + "ammo_to_fire": 1, + "range": 30, + "ranged_damage": { "damage_type": "pure", "amount": 35 }, + "dispersion": 15, + "durability": 8, + "loudness": 45, + "valid_mod_locations": [ + [ "emitter", 1 ], + [ "grip", 1 ], + [ "lens", 1 ], + [ "rail", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "stock accessory", 1 ], + [ "underbarrel", 1 ] + ], + "ammo_effects": [ "LASER", "PLASMA_BUBBLE", "INCENDIARY" ], + "flags": [ "NEVER_JAMS", "NO_SALVAGE", "NO_REPAIR", "NON_FOULING", "NEEDS_NO_LUBE", "TRADER_AVOID" ], + "relic_data": { "charge_info": { "recharge_condition": "worn", "recharge_type": "periodic", "time": "5 m", "regenerate_ammo": true } }, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "aetheric_charge": 480 }, "airtight": true } ] + }, + { + "id": "bio_launcher", + "type": "TOOL_ARMOR", + "name": { "str": "bio detonator" }, + "description": "A long, huge barrel drum mortar with a small device in the very end. It is collapsible, and you can comfortably wear it using a strap.", + "looks_like": "m3_carlgustav", + "material": [ "steel" ], + "weight": "2560 g", + "volume": "5896 ml", + "longest_side": "1200 mm", + "melee_damage": { "bash": 8 }, + "to_hit": -3, + "symbol": "[", + "color": "black", + "charges_per_use": 1, + "use_action": { "type": "cast_spell", "spell_id": "bio_explosion", "no_fail": true, "level": 0, "need_wielding": true }, + "ammo": [ "bio_warhead" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "bio_warhead": 1 } } ], + "armor": [ + { "encumbrance": [ 20, 22 ], "coverage": 70, "covers": [ "torso" ], "specifically_covers": [ "torso_hanging_back" ] } + ], + "flags": [ "TRADER_AVOID", "PADDED", "BELTED", "OVERSIZE", "WATER_FRIENDLY", "MUNDANE" ] + }, + { + "id": "bio_warhead", + "type": "AMMO", + "name": { "str": "bio-warhead" }, + "description": "So you decided to become an inventor and instead of inventing something good for mankind, you invented this? You should be ashamed.", + "weight": "1340 g", + "volume": "2 L", + "price": 180000, + "price_postapoc": 10000, + "to_hit": -2, + "melee_damage": { "bash": 8 }, + "ammo_type": "bio_warhead", + "material": [ "steel", "plastic" ], + "symbol": "*", + "color": "light_green" + }, + { + "type": "ammunition_type", + "id": "bio_warhead", + "name": "bio-warhead", + "default": "bio_warhead" + }, + { + "id": "rip_ticket", + "name": { "str": "vancian bill" }, + "description": "A small bill, covered in odd symbols. Ripping it up will cause a small dimensional tear. It will last only a few milliseconds, yet make enough damage to kill something.", + "type": "TOOL", + "weight": "1 g", + "volume": "1 ml", + "material": [ "paper" ], + "symbol": "|", + "color": "brown", + "flags": [ "NONCONDUCTIVE", "MAGIC_FOCUS", "TRADER_AVOID", "SINGLE_USE" ], + "use_action": { "type": "cast_spell", "spell_id": "rip_ticket", "no_fail": true, "level": 0, "need_wielding": true }, + "max_charges": 1, + "charges_per_use": 1, + "initial_charges": 1 + }, + { + "id": "ion_gun", + "type": "TOOL", + "name": { "str": "ion rifle" }, + "description": "Something something ion, something something wide area. Don't even ask.", + "weight": "2260 g", + "volume": "3130 ml", + "longest_side": "780 mm", + "to_hit": -2, + "melee_damage": { "bash": 6 }, + "material": [ "steel" ], + "symbol": "|", + "color": "blue", + "charges_per_use": 30, + "ammo": [ "battery" ], + "flags": [ "TRADER_AVOID", "MUNDANE" ], + "use_action": { "type": "cast_spell", "spell_id": "ion_shot_1", "no_fail": true, "level": 0, "need_wielding": true }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM", "BATTERY_HEAVY" ], + "default_magazine": "medium_battery_cell" + } + ] + }, + { + "id": "inventor_sniper", + "copy-from": "modular_m27_assault_rifle", + "looks_like": "ar15", + "type": "GUN", + "name": { "str_sp": "\"Repeater\"" }, + "description": "Hand-made lever action sniper rifle with an extremely long barrel. By logic such long barrel can not work properly, but somehow it not only works fine enough, it also accelerates the bullet much more than anyone can expect. Two internal magazine tubes under the barrel accept 15 7.62x51 rounds each.", + "weight": "3630 g", + "volume": "5427 ml", + "longest_side": "1678 mm", + "barrel_length": "1236 mm", + "barrel_volume": "250 ml", + "ammo": [ "308" ], + "ranged_damage": { "damage_type": "bullet", "amount": 6 }, + "min_cycle_recoil": 2700, + "default_mods": [ "bipod" ], + "modes": [ [ "DEFAULT", "semi-auto", 1 ] ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "308": 30 } } ] + }, + { + "id": "inventor_shotgun", + "copy-from": "shotgun_base", + "looks_like": "m134", + "type": "GUN", + "name": { "str": "shredder shotgun" }, + "description": "An abominably huge, two barrel Gast system shotgun. Recoil from the first shot powers the piston that loads a shell into the second barrel, and vice versa, making it shoot approximately 1000rpm at max. The biggest part of a weapon is a giant, multi tube magazine, which can store 240 shells at once. It makes the weapon extremely bulky, so the only way you can utilize it is by handling it like a chainsaw, or installing it on a turret base.", + "weight": "12970 g", + "volume": "11920 ml", + "longest_side": "1266 mm", + "barrel_length": "908 mm", + "to_hit": -2, + "melee_damage": { "bash": 12 }, + "material": [ "qt_steel" ], + "symbol": "(", + "color": "dark_gray", + "ammo": [ "shot" ], + "dispersion": 200, + "recoil": 300, + "durability": 9, + "min_cycle_recoil": 1, + "flags": [ "TRADER_AVOID", "NO_SALVAGE" ], + "reload": 400, + "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "BURST", "double", 2 ], [ "AUTO", "auto", 4 ] ], + "built_in_mods": [ "laser_sight" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "shot": 240 } } ] + }, + { + "id": "accelerator_gun", + "type": "GUN", + "name": { "str": "acceleratron" }, + "description": "Particle cannon of a carbine size. It shoots a microscopic particles, and due the size of projectile, you don't need to reload it for decades. Instead, you need a ton of energy to generate enough magnetic force. The damage of weapon is not great, but it has perfect armor penetration, and no physical armor can stop a bullet.", + "weight": "2880 g", + "volume": "3930 ml", + "longest_side": "998 mm", + "to_hit": -2, + "melee_damage": { "bash": 6 }, + "material": [ "steel" ], + "symbol": "(", + "color": "magenta", + "skill": "rifle", + "ammo_to_fire": 25, + "ammo": "battery", + "range": 30, + "ranged_damage": { "damage_type": "stab", "amount": 14, "armor_penetration": 100 }, + "dispersion": 15, + "durability": 8, + "loudness": 15, + "flags": [ "NEVER_JAMS", "NO_SALVAGE", "NO_REPAIR", "NON_FOULING", "NEEDS_NO_LUBE", "TRADER_AVOID" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_LIGHT", "BATTERY_MEDIUM" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ] + }, + { + "id": "inventor_glauncher", + "copy-from": "rifle_semi", + "looks_like": "ar15", + "type": "GUN", + "name": { "str": "inventor's grenade launcher" }, + "description": "Transformed from a tool, this weapon can emit a giant clouds of energy, destroying everything on their path.", + "weight": "2670 g", + "volume": "3560 ml", + "longest_side": "50 cm", + "price": 125000, + "price_postapoc": 2000, + "to_hit": -1, + "melee_damage": { "bash": 12 }, + "material": [ "steel", "plastic" ], + "symbol": "(", + "color": "blue", + "ammo_to_fire": 500, + "range": 1, + "ammo": "battery", + "ranged_damage": { "damage_type": "bullet", "amount": 1 }, + "extend": { "flags": [ "NO_TURRET" ] }, + "modes": [ ], + "dispersion": 150, + "durability": 9, + "min_cycle_recoil": 0, + "default_mods": [ "inventor_glauncher_expl" ], + "valid_mod_locations": [ + [ "underbarrel", 1 ], + [ "rail", 1 ], + [ "sling", 1 ], + [ "grip", 1 ], + [ "energy transformer", 1 ], + [ "sights", 1 ], + [ "stock", 1 ], + [ "stock accessory", 1 ] + ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM", "BATTERY_HEAVY" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ] + }, + { + "id": "inventor_glauncher_expl", + "looks_like": "retool_ar15_300blk", + "weight": "750 g", + "volume": "500 ml", + "integral_volume": "250 ml", + "integral_weight": "750 g", + "integral_longest_side": "20 cm", + "longest_side": "45 cm", + "price": 50000, + "price_postapoc": 3000, + "type": "GUNMOD", + "material": [ "steel" ], + "symbol": ":", + "color": "dark_gray", + "location": "energy transformer", + "range_modifier": 35, + "mod_targets": [ "inventor_glauncher" ], + "name": { "str": "energy transformer" }, + "mode_modifier": [ [ "DEFAULT", "semi-auto", 1 ] ], + "install_time": "1 m", + "ammo_effects": [ "GRENADE_EXPL" ], + "min_skills": [ [ "weapon", 1 ] ], + "dispersion_modifier": 15, + "handling_modifier": 4, + "loudness_modifier": 14, + "description": "Default energy transformer, that convert the power into raw power." + }, + { + "id": "inventor_glauncher_fire", + "looks_like": "retool_ar15_300blk", + "weight": "750 g", + "volume": "500 ml", + "integral_volume": "250 ml", + "integral_weight": "750 g", + "integral_longest_side": "20 cm", + "longest_side": "45 cm", + "price": 50000, + "price_postapoc": 3000, + "type": "GUNMOD", + "material": [ "steel" ], + "symbol": ":", + "color": "red", + "location": "energy transformer", + "range_modifier": 35, + "mod_targets": [ "inventor_glauncher" ], + "name": { "str": "incendiary energy transformer" }, + "mode_modifier": [ [ "DEFAULT", "semi-auto", 1 ] ], + "install_time": "1 m", + "ammo_effects": [ "GRENADE_FIRE_EXPL" ], + "min_skills": [ [ "weapon", 1 ] ], + "dispersion_modifier": 15, + "handling_modifier": 4, + "loudness_modifier": 14, + "overwrite_min_cycle_recoil": 1350, + "description": "Modified energy transformer, that convert the power flow into slow heat cloud, that ignite everything around." + }, + { + "id": "inventor_glauncher_elec", + "looks_like": "retool_ar15_300blk", + "weight": "750 g", + "volume": "500 ml", + "integral_volume": "250 ml", + "integral_weight": "750 g", + "integral_longest_side": "20 cm", + "longest_side": "45 cm", + "price": 50000, + "price_postapoc": 3000, + "type": "GUNMOD", + "material": [ "steel" ], + "symbol": ":", + "color": "blue", + "location": "energy transformer", + "//": "TODO: buff this thing somehow, emitting electricity field doesn't do any significant damage", + "mod_targets": [ "inventor_glauncher" ], + "name": { "str": "voltaic energy transformer" }, + "range_modifier": 35, + "mode_modifier": [ [ "DEFAULT", "semi-auto", 1 ] ], + "install_time": "1 m", + "damage_modifier": { "damage_type": "heat", "amount": 150 }, + "ammo_effects": [ "GRENADE_ELEC_EXPL" ], + "min_skills": [ [ "weapon", 1 ] ], + "dispersion_modifier": 15, + "handling_modifier": 4, + "loudness_modifier": 14, + "overwrite_min_cycle_recoil": 1350, + "description": "Instead converting energy, this energy transformer emit it as it is, throwing a giant high-voltage cloud." + }, + { + "id": "inventor_glauncher_direct", + "looks_like": "retool_ar15_300blk", + "weight": "750 g", + "volume": "500 ml", + "integral_volume": "250 ml", + "integral_weight": "750 g", + "integral_longest_side": "20 cm", + "longest_side": "45 cm", + "price": 50000, + "price_postapoc": 3000, + "type": "GUNMOD", + "material": [ "steel" ], + "symbol": ":", + "color": "blue", + "location": "energy transformer", + "mod_targets": [ "inventor_glauncher" ], + "name": { "str": "focused energy transformer" }, + "range_modifier": 35, + "mode_modifier": [ [ "DEFAULT", "semi-auto", 1 ] ], + "install_time": "1 m", + "min_skills": [ [ "deduction", 4 ], [ "electronics", 4 ], [ "weapon", 4 ] ], + "dispersion_modifier": 15, + "handling_modifier": 4, + "loudness_modifier": 14, + "overwrite_min_cycle_recoil": 1350, + "description": "Bunch of powerful lenses and reflectors, that transform the energy output into powerful directed laser beam." + }, + { + "id": "inventor_grenade_noise_expl", + "name": { "str": "inventor's noise grenade" }, + "description": "Small energy grenade with additional timer slapped on it. When triggered, the timer start to count 70 seconds, and when it end, the massive explosion rip your enemies apart.", + "type": "TOOL", + "weight": "300 g", + "volume": "450 ml", + "material": [ "steel" ], + "symbol": "*", + "color": "blue", + "flags": [ "NONCONDUCTIVE", "TRADER_AVOID" ], + "use_action": { + "need_wielding": true, + "target": "inventor_grenade_noise_expl_act", + "menu_text": "Activate", + "msg": "You trigger the mechanism, and it start to whistle!", + "target_timer": "70 seconds", + "type": "transform" + } + }, + { + "id": "inventor_grenade_noise_expl_act", + "type": "TOOL", + "category": "weapons", + "name": { "str": "inventor's noise grenade" }, + "description": "Small energy grenade with additional timer slapped on it. When triggered, the timer start to count 70 seconds, and when it end, the massive explosion rip your enemies apart.", + "weight": "300 g", + "volume": "450 ml", + "material": [ "steel" ], + "symbol": "*", + "color": "blue", + "tick_action": [ { "type": "sound", "sound_message": "whistle", "sound_volume": 35, "sound_variant": "bomb_ticking" } ], + "countdown_action": { "type": "explosion", "explosion": { "power": 1200 } }, + "flags": [ "TRADER_AVOID", "BOMB" ] + }, + { + "id": "inventor_grenade_noise_emp", + "name": { "str": "inventor's noise EMP grenade" }, + "description": "Small energy grenade with additional timer with whistle slapped on it. When triggered, the timer start to count 70 seconds, and when it end, the huge EMP explosion will cover the zone.", + "type": "TOOL", + "weight": "300 g", + "volume": "450 ml", + "material": [ "steel" ], + "symbol": "*", + "color": "blue", + "flags": [ "NONCONDUCTIVE", "TRADER_AVOID" ], + "use_action": { + "need_wielding": true, + "target": "inventor_grenade_noise_emp_act", + "menu_text": "Activate", + "msg": "You trigger the mechanism, and it start to whistle!", + "target_timer": "70 seconds", + "active": true, + "type": "transform" + } + }, + { + "id": "inventor_grenade_noise_emp_act", + "type": "TOOL", + "category": "weapons", + "name": { "str": "inventor's noise EMP grenade" }, + "description": "Small energy grenade with additional timer with whistle slapped on it. When triggered, the timer start to count 70 seconds, and when it end, the huge EMP explosion will cover the zone.", + "weight": "300 g", + "volume": "450 ml", + "material": [ "steel" ], + "symbol": "*", + "color": "blue", + "tick_action": [ { "type": "sound", "sound_message": "whistle", "sound_volume": 35, "sound_variant": "bomb_ticking" } ], + "countdown_action": { + "type": "explosion", + "fields_type": "fd_electricity", + "fields_radius": 5, + "fields_min_intensity": 10, + "fields_max_intensity": 10, + "emp_blast_radius": 12 + }, + "flags": [ "TRADER_AVOID", "BOMB" ] + }, + { + "id": "inventor_grenade_noise_fire", + "name": { "str": "inventor's noise fire grenade" }, + "description": "Small energy grenade with additional timer slapped on it. When triggered, the timer start to count 70 seconds, and when it end, the massive fire explosion rip your enemies apart.", + "type": "TOOL", + "weight": "300 g", + "volume": "450 ml", + "material": [ "steel" ], + "symbol": "*", + "color": "blue", + "flags": [ "NONCONDUCTIVE", "TRADER_AVOID" ], + "use_action": { + "need_wielding": true, + "target": "inventor_grenade_noise_fire_act", + "menu_text": "Activate", + "msg": "You trigger the mechanism, and it start to whistle!", + "target_timer": "70 seconds", + "type": "transform" + } + }, + { + "id": "inventor_grenade_noise_fire_act", + "type": "TOOL", + "category": "weapons", + "name": { "str": "inventor's noise fire grenade" }, + "description": "Small energy grenade with additional timer slapped on it. When triggered, the timer start to count 70 seconds, and when it end, the massive fire explosion rip your enemies apart.", + "weight": "300 g", + "volume": "450 ml", + "material": [ "steel" ], + "symbol": "*", + "color": "blue", + "tick_action": [ { "type": "sound", "sound_message": "whistle", "sound_volume": 35, "sound_variant": "bomb_ticking" } ], + "countdown_action": { + "type": "explosion", + "fields_type": "fd_fire", + "fields_radius": 4, + "fields_min_intensity": 0, + "fields_max_intensity": 2, + "explosion": { "power": 225 } + }, + "flags": [ "TRADER_AVOID", "BOMB" ] + }, + { + "id": "sonic_gun", + "type": "GUN", + "name": { "str": "sonic gun" }, + "description": "Small, square tube with pistol grip, that can emit a sonic waves, creating cavitation and tissue damage inside the living creatures. Pretty weak as a weapon, using extremely high frequency sounds make it silent for most creatures you can met. Would be fun to listen some music using it, but alas.", + "weight": "890 g", + "volume": "658 ml", + "longest_side": "998 mm", + "to_hit": -2, + "melee_damage": { "bash": 3 }, + "material": [ "steel" ], + "symbol": "(", + "color": "dark_gray", + "skill": "pistol", + "ammo": "battery", + "range": 16, + "ranged_damage": { "damage_type": "pure", "amount": 11 }, + "ammo_to_fire": 15, + "dispersion": 15, + "durability": 8, + "loudness": 0, + "flags": [ "NEVER_JAMS", "NO_SALVAGE", "NO_REPAIR", "NON_FOULING", "NEEDS_NO_LUBE", "TRADER_AVOID", "ELECTRONIC" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_LIGHT", "BATTERY_MEDIUM" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ] + }, + { + "id": "heater_gun", + "type": "TOOL", + "name": { "str": "\"Boiler\"", "str_pl": "\"Boilers\"" }, + "description": "Rifle size tool, that can concentrate heat in a pretty huge range. It lost it's ability to work as a tool, as you don't want accidentally evaporate your materials, but the damage output pays for this with interest.", + "weight": "1908 g", + "volume": "3130 ml", + "longest_side": "1160 mm", + "to_hit": -2, + "melee_damage": { "bash": 3 }, + "material": [ "steel" ], + "symbol": "|", + "color": "blue", + "charges_per_use": 50, + "ammo": [ "battery" ], + "flags": [ "TRADER_AVOID" ], + "use_action": { "type": "cast_spell", "spell_id": "heat_expl_gun", "no_fail": true, "level": 0, "need_wielding": true }, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM", "BATTERY_HEAVY" ], + "default_magazine": "medium_battery_cell" + } + ] + }, + { + "id": "inventor_pistol", + "copy-from": "pistol_revolver", + "type": "GUN", + "name": { "str": "blocky pistol" }, + "description": "A square abomination resembling the shape of a pistol, but with a collapsible outer magazine under the barrel. This overengineered piece of metal is able to vary the size of chamber, which makes it able to shoot any round up to shotgun shells. You spent a really long time to make it fit into a common holster.", + "weight": "1790 g", + "volume": "970 ml", + "longest_side": "30 cm", + "barrel_length": "247 mm", + "to_hit": -1, + "melee_damage": { "bash": 10 }, + "modes": [ [ "DEFAULT", "semi-auto", 1 ] ], + "range": 16, + "material": [ "steel" ], + "symbol": "(", + "color": "dark_gray", + "ammo": [ + "10mm", + "22", + "32", + "357mag", + "357sig", + "38", + "380", + "38super", + "40", + "44", + "45", + "454", + "45colt", + "46", + "460", + "57", + "9mm", + "9x18", + "shot" + ], + "dispersion": 558, + "durability": 7, + "blackpowder_tolerance": 66, + "loudness": 23, + "clip_size": 12, + "valid_mod_locations": [ + [ "mechanism", 2 ], + [ "barrel", 1 ], + [ "grip", 1 ], + [ "rail mount", 1 ], + [ "sights", 1 ], + [ "muzzle", 1 ], + [ "underbarrel", 1 ] + ], + "flags": [ "RELOAD_ONE", "NEVER_JAMS", "RELOAD_EJECT" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE", + "ammo_restriction": { + "10mm": 12, + "22": 16, + "32": 16, + "357mag": 10, + "357sig": 14, + "38": 10, + "380": 16, + "38super": 12, + "40": 14, + "44": 10, + "45": 12, + "454": 8, + "45colt": 10, + "46": 10, + "460": 12, + "57": 10, + "9mm": 14, + "9x18": 16, + "shot": 6 + } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/gunmods.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/gunmods.json new file mode 100644 index 000000000..02a692ce8 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/gunmods.json @@ -0,0 +1,169 @@ +[ + { + "id": "trinket_damage", + "type": "GUNMOD", + "name": { "str": "projectile accelerator" }, + "description": "Small part of unusual shape. It can be mounted into the end of your barrel, which somehow increases the speed of the projectile. It is also makes the gun much louder and difficult to hold after each shot.", + "weight": "68 g", + "volume": "119 ml", + "install_time": "60 m", + "material": [ "plastic" ], + "symbol": ":", + "color": "brown", + "location": "barrel", + "mod_targets": [ "pistol", "shotgun", "smg", "rifle" ], + "damage_modifier": { "damage_type": "bullet", "amount": 5 }, + "dispersion_modifier": 5, + "loudness_modifier": 40, + "min_skills": [ [ "weapon", 6 ], [ "deduction", 5 ] ] + }, + { + "id": "trinket_range", + "type": "GUNMOD", + "name": { "str_sp": "rocket bullets" }, + "description": "You can't properly explain how this thing works, but the end result should be clear - faster bullet with better damage, but awful dispersion.", + "weight": "68 g", + "volume": "119 ml", + "install_time": "60 m", + "material": [ "plastic" ], + "symbol": ":", + "color": "brown", + "location": "mechanism", + "mod_targets": [ "pistol", "shotgun", "smg", "rifle" ], + "range_modifier": 3, + "damage_modifier": { "damage_type": "bullet", "amount": 6 }, + "dispersion_modifier": 40, + "min_skills": [ [ "weapon", 6 ], [ "deduction", 5 ] ] + }, + { + "id": "trinket_sound", + "type": "GUNMOD", + "name": { "str": "force silencer" }, + "description": "This barrel attachment drastically decrease any sound that your gun emit. Sadly, the damage and the range of the weapon decrease respectively.", + "weight": "68 g", + "volume": "119 ml", + "install_time": "60 m", + "material": [ "plastic" ], + "symbol": ":", + "color": "brown", + "location": "barrel", + "mod_targets": [ "pistol", "shotgun", "smg", "rifle" ], + "loudness_modifier": -150, + "damage_modifier": { "damage_type": "bullet", "amount": -4 }, + "range_modifier": -2, + "min_skills": [ [ "weapon", 6 ], [ "deduction", 5 ] ] + }, + { + "id": "mod_inv_pistol_booster", + "type": "GUNMOD", + "name": { "str": "pistol's booster" }, + "description": "A set of mechanisms, that alter the action of the blocky pistol enough to make it something in between of automatic pistol and a submachine gun.", + "weight": "68 g", + "volume": "119 ml", + "integral_volume": "400 ml", + "install_time": "60 m", + "barrel_length": "550 mm", + "material": [ "plastic" ], + "add_mod": [ [ "mechanism", 2 ] ], + "symbol": ":", + "color": "brown", + "location": "mechanism", + "mod_targets": [ "inventor_pistol" ], + "mode_modifier": [ [ "DEFAULT", "semi-auto", 1 ], [ "AUTO", "auto", 3 ] ], + "reload_modifier": -90, + "range_modifier": 2, + "handling_modifier": 9, + "//": "should add an additional set of mags, boosting the amount of ammo for three times, but alas not possible.", + "min_skills": [ [ "weapon", 6 ], [ "deduction", 5 ] ] + }, + { + "id": "inventor_lasmod_close_range", + "type": "GUNMOD", + "name": { "str": "beam array" }, + "description": "Modified weapon lens, that increase the output energy of the laser at expense of its range.", + "weight": "380 g", + "volume": "250 ml", + "integral_volume": "0 ml", + "install_time": "120 m", + "material": [ "steel" ], + "symbol": ":", + "color": "light_gray", + "location": "lens", + "mod_targets": [ "rifle", "pistol", "smg" ], + "range_multiplier": 0.75, + "damage_modifier": { "damage_type": "heat", "amount": 7 }, + "min_skills": [ [ "deduction", 4 ], [ "weapon", 4 ] ] + }, + { + "id": "inventor_lasmod_long_range", + "type": "GUNMOD", + "name": { "str": "focusing lens", "str_pl": "focusing lenses" }, + "description": "Modified weapon lens, that increases the range of the weapon at the price of its damage.", + "weight": "380 g", + "volume": "250 ml", + "integral_volume": "0 ml", + "install_time": "120 m", + "material": [ "steel" ], + "symbol": ":", + "color": "light_gray", + "location": "lens", + "mod_targets": [ "rifle", "pistol", "smg" ], + "range_multiplier": 1.5, + "damage_modifier": { "damage_type": "heat", "amount": -7 }, + "min_skills": [ [ "deduction", 4 ], [ "weapon", 4 ] ] + }, + { + "id": "inventor_lasmod_capasitor", + "type": "GUNMOD", + "name": { "str_sp": "improved capacitors" }, + "description": "Set of powerful capacitors, that increase the damage of a beam at the price of doubling power consumption.", + "weight": "380 g", + "volume": "250 ml", + "integral_volume": "0 ml", + "install_time": "120 m", + "material": [ "steel" ], + "symbol": ":", + "color": "light_gray", + "location": "emitter", + "mod_targets": [ "pistol", "rifle", "smg" ], + "ammo_to_fire_multiplier": 2, + "damage_modifier": { "damage_type": "heat", "amount": 10 }, + "min_skills": [ [ "deduction", 4 ], [ "weapon", 4 ] ] + }, + { + "id": "inventor_lasmod_mega_capasitor", + "type": "GUNMOD", + "name": { "str_sp": "high-powered capacitors" }, + "description": "Set of extremely powerful capacitors, which can turn a common laser beam into powerful anti-materiel penetrator. It spends five times more energy than the default capacitor, so you need a lot of batteries to use it.", + "weight": "380 g", + "volume": "250 ml", + "integral_volume": "150 ml", + "install_time": "120 m", + "material": [ "steel" ], + "symbol": ":", + "color": "light_gray", + "location": "emitter", + "mod_targets": [ "pistol", "rifle", "smg" ], + "ammo_to_fire_multiplier": 5, + "damage_modifier": { "damage_type": "heat", "amount": 30 }, + "min_skills": [ [ "deduction", 4 ], [ "weapon", 4 ] ] + }, + { + "id": "inventor_lasmod_energy_safe", + "type": "GUNMOD", + "name": { "str_sp": "energy-effective pump sources" }, + "description": "A set of improved electric discharges, that uses energy more efficiently then standard. It makes you spend much less energy per shot, but the overall output of a system is a bit smaller.", + "weight": "380 g", + "volume": "250 ml", + "integral_volume": "150 ml", + "install_time": "120 m", + "material": [ "steel" ], + "symbol": ":", + "color": "light_gray", + "location": "emitter", + "mod_targets": [ "pistol", "rifle", "smg" ], + "ammo_to_fire_multiplier": 0.75, + "damage_modifier": { "damage_type": "heat", "amount": -3 }, + "min_skills": [ [ "deduction", 4 ], [ "weapon", 4 ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/melee.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/melee.json new file mode 100644 index 000000000..df1fc76f6 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/melee.json @@ -0,0 +1,67 @@ +[ + { + "type": "TOOL", + "id": "mace_magic", + "name": { "str": "wolf sledge" }, + "description": "A long, solid, crafted steel haft, and a bulky, comma-like head. It feels really massive, but it is surprisingly easy to swing, and you will do more damage as your level increases. You can throw it like a boomerang, and the damage of throw depend on your throwing skill level.", + "weight": "2150 g", + "volume": "1750 ml", + "longest_side": "130 cm", + "color": "dark_gray", + "symbol": "/", + "looks_like": "sledge", + "material": [ "steel" ], + "techniques": [ "WBLOCK_1", "SWEEP", "BRUTAL" ], + "flags": [ "SHEATH_SPEAR", "DURABLE_MELEE", "MUNDANE" ], + "weapon_category": [ "GREAT_HAMMERS" ], + "melee_damage": { "bash": 27 }, + "relic_data": { "passive_effects": [ { "id": "WOLF_SLEDGE" } ] }, + "to_hit": { "grip": "solid", "length": "long", "surface": "any", "balance": "neutral" }, + "use_action": { "type": "cast_spell", "spell_id": "mace_pipe_magic_throw", "no_fail": true, "level": 0, "need_wielding": true } + }, + { + "id": "combatsaw_spear_off", + "type": "TOOL", + "category": "weapons", + "name": { "str": "chainsaw spear (off)", "str_pl": "chainsaw spears (off)" }, + "description": "A hand-made lightened engine, with chain blades on a long stick. The only reason it works without falling apart is because your calculations can't be wrong.", + "weight": "3300 g", + "volume": "2250 ml", + "longest_side": "220 cm", + "price": 25000, + "price_postapoc": 3000, + "melee_damage": { "bash": 8, "cut": 1 }, + "to_hit": { "grip": "solid", "length": "long", "surface": "line", "balance": "uneven" }, + "material": [ "aluminum", "plastic" ], + "symbol": "/", + "color": "light_gray", + "ammo": "battery", + "charges_per_use": 1, + "charged_qualities": [ [ "CUT", 1 ], [ "SAW_W", 2 ], [ "BUTCHER", -50 ] ], + "use_action": { "target": "combatsaw_spear_on", "msg": "You turn on the chainsaw spear.", "active": true, "type": "transform" }, + "techniques": [ "SWEEP", "IMPALE", "SPIN" ], + "flags": [ "SPEAR", "REACH_ATTACK", "SHEATH_SPEAR", "DURABLE_MELEE", "MUNDANE" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM", "BATTERY_HEAVY" ], + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "default_magazine": "medium_battery_cell" + } + ] + }, + { + "id": "combatsaw_spear_on", + "copy-from": "combatsaw_spear_off", + "type": "TOOL", + "name": { "str": "chainsaw spear (on)", "str_pl": "chainsaw spears (on)" }, + "description": "A lightweight, handheld cordless circular saw. It is currently on and the blade is spinning; use this item to turn it off.", + "melee_damage": { "bash": 8, "cut": 55 }, + "power_draw": "350 W", + "revert_to": "combatsaw_spear_off", + "use_action": { "target": "combatsaw_spear_off", "msg": "You turn off the chainsaw spear.", "active": false, "type": "transform" }, + "flags": [ "MESSY", "TRADER_AVOID", "NONCONDUCTIVE" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/mics.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/mics.json new file mode 100644 index 000000000..41ad8a68d --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/mics.json @@ -0,0 +1,120 @@ +[ + { + "id": "inventor_light_minus_cell", + "copy-from": "light_minus_disposable_cell", + "type": "MAGAZINE", + "category": "spare_parts", + "name": { "str": "ultra-light modified battery", "str_pl": "ultra-light modified batteries" }, + "description": "A light battery cell, that was modified and replaced with much more effective cells inside.", + "ascii_picture": "ultra_light_battery", + "count": 125, + "capacity": 125, + "flags": [ "NO_SALVAGE", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "BATTERY_ULTRA_LIGHT" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 125 } } ] + }, + { + "id": "inventor_light_cell", + "copy-from": "light_disposable_cell", + "type": "MAGAZINE", + "category": "spare_parts", + "name": { "str": "light modified battery", "str_pl": "light modified batteries" }, + "description": "A light battery cell, that was modified and replaced with much more effective cells inside.", + "ascii_picture": "light_battery", + "count": 375, + "capacity": 375, + "flags": [ "NO_SALVAGE", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "BATTERY_LIGHT" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 375 } } ] + }, + { + "id": "inventor_medium_cell", + "copy-from": "medium_disposable_cell", + "type": "MAGAZINE", + "category": "spare_parts", + "name": { "str": "medium modified battery", "str_pl": "medium modified batteries" }, + "description": "A medium battery cell, that was modified and replaced with much more effective cells inside.", + "ascii_picture": "medium_battery", + "count": 1500, + "capacity": 1500, + "flags": [ "NO_SALVAGE", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "BATTERY_MEDIUM" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 1500 } } ] + }, + { + "id": "inventor_heavy_cell", + "copy-from": "heavy_disposable_cell", + "type": "MAGAZINE", + "category": "spare_parts", + "name": { "str": "heavy modified battery", "str_pl": "heavy modified batteries" }, + "description": "A heavy battery cell, universally compatible with all kinds of industrial-grade equipment and large tools. The battery's chemistry means that it has a very high capacity, but cannot be recharged.", + "ascii_picture": "heavy_battery", + "count": 3125, + "capacity": 3125, + "flags": [ "NO_SALVAGE", "NO_UNLOAD", "NO_RELOAD", "RECHARGE", "BATTERY_HEAVY" ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "battery": 3125 } } ] + }, + { + "id": "inventor_welder", + "type": "TOOL", + "copy-from": "welder", + "name": { "str": "inventor's welder" }, + "description": "A lightweight, battery-powered tool to welding metal pieces together using plasma-inducted electric arc. Decent tool, but you think you can do more with some modification.", + "weight": "2000 g", + "volume": "2500 ml", + "material": [ "steel", "plastic" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_MEDIUM", "BATTERY_HEAVY" ], + "default_magazine": "medium_battery_cell" + }, + { + "type": "link_up", + "menu_text": "Plug in / Unplug", + "ammo_scale": 0, + "cable_length": 10, + "charge_rate": "100 W" + } + ] + }, + { + "id": "heater_tool", + "type": "TOOL", + "name": { "str": "\"Heater\"", "str_pl": "\"Heaters\"" }, + "description": "Extremely small and light tool, that create and transfer the heat in extremely effective way. You think it would be interesting to develop it further.", + "weight": "358 g", + "volume": "790 ml", + "longest_side": "25 cm", + "material": [ "aluminum", "plastic" ], + "symbol": ";", + "color": "green", + "flags": [ "WATER_BREAK", "ELECTRONIC", "ALLOWS_REMOTE_USE" ], + "ammo": [ "battery" ], + "charges_per_use": 20, + "qualities": [ [ "COOK", 2 ], [ "BOIL", 2 ] ], + "use_action": [ "HOTPLATE", "HEAT_FOOD" ], + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "rigid": true, + "flag_restriction": [ "BATTERY_LIGHT", "BATTERY_MEDIUM", "BATTERY_HEAVY" ], + "default_magazine": "medium_plus_battery_cell" + }, + { + "type": "link_up", + "menu_text": "Plug in / Unplug", + "ammo_scale": 0, + "cable_length": 10, + "charge_rate": "100 W" + } + ], + "melee_damage": { "bash": 4 } + }, + { + "id": "software_AI", + "copy-from": "software", + "type": "TOOL", + "name": { "str_sp": "IA software" }, + "description": "A USB with simple intelligent agent to provide support in parsing the big layers of information.", + "qualities": [ [ "AI_TOOL", 1 ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/spark_artifact_items.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/spark_artifact_items.json index b566119ea..c0dc4df77 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/spark_artifact_items.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/inventor/spark_artifact_items.json @@ -8,7 +8,7 @@ "volume": "1 L", "weight": "1 kg", "to_hit": -1, - "bashing": 3 + "melee_damage": { "bash": 3 } }, { "id": "xe_art_rod", @@ -20,7 +20,7 @@ "weight": "300 g", "longest_side": "75 cm", "to_hit": 1, - "bashing": 5 + "melee_damage": { "bash": 5 } }, { "id": "xe_art_monitor", @@ -52,7 +52,7 @@ "weight": "300 g", "longest_side": "65 cm", "to_hit": 1, - "bashing": 5 + "melee_damage": { "bash": 5 } }, { "id": "xe_art_disc", @@ -63,13 +63,13 @@ "volume": "340 ml", "weight": "575 g", "to_hit": -1, - "bashing": 3 + "melee_damage": { "bash": 3 } }, { "id": "xe_art_instrument", "type": "GENERIC", - "name": { "str": "an instrument" }, - "description": "It looks like it could be a musical instrument. But how would you play it?\nIt may have unknown powers; try activating them.", + "name": { "str": "an instrument", "str_pl": "instruments" }, + "description": "This looks like a musical instrument. But how would you play it?\nIt may have unknown powers; try activating them.", "symbol": "O", "volume": "76 ml", "weight": "125 g", @@ -94,7 +94,7 @@ "volume": "1 L", "weight": "800 g", "to_hit": -2, - "cutting": 3 + "melee_damage": { "cut": 3 } }, { "id": "xe_art_jelly", @@ -116,7 +116,7 @@ "weight": "300 g", "longest_side": "30 cm", "to_hit": -4, - "bashing": 4 + "melee_damage": { "bash": 4 } }, { "id": "xe_art_pin", @@ -128,7 +128,7 @@ "weight": "50 mg", "longest_side": "2 cm", "to_hit": -5, - "cutting": 1 + "melee_damage": { "cut": 1 } }, { "id": "xe_art_tube", @@ -139,7 +139,7 @@ "volume": "188 ml", "weight": "50 mg", "longest_side": "15 cm", - "bashing": 3 + "melee_damage": { "bash": 3 } }, { "id": "xe_art_pyramid", @@ -150,7 +150,7 @@ "volume": "1 L", "weight": "1 kg", "to_hit": -1, - "bashing": 3 + "melee_damage": { "bash": 3 } }, { "id": "xe_art_crystal", @@ -161,7 +161,7 @@ "volume": "500 ml", "weight": "400 g", "to_hit": -1, - "bashing": 3 + "melee_damage": { "bash": 3 } }, { "id": "xe_art_knot", @@ -171,7 +171,7 @@ "symbol": "b", "volume": "400 ml", "weight": "400 g", - "bashing": 2 + "melee_damage": { "bash": 2 } }, { "id": "xe_art_crescent", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/melee.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/melee.json index 09e0a5160..627f29a70 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/melee.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/melee.json @@ -4,13 +4,13 @@ "type": "GENERIC", "category": "weapons", "name": { "str": "glasknife", "str_pl": "glasknives" }, - "description": "This is a knife that appears to be made of glass, it's much more durable than glass appearing to be some sort of crystal with the strength of metal.", + "description": "This is a knife that seems to be made of glass, but significantly more durable, like some sort of crystal with the strength of metal.", "copy-from": "knife_combat", "volume": "500 ml", "longest_side": "30 cm", "price_postapoc": 1250, "to_hit": { "grip": "weapon", "length": "hand", "surface": "point", "balance": "good" }, - "proportional": { "cutting": 1.1, "price": 5, "weight": 0.8 }, + "proportional": { "price": 5, "weight": 0.8, "melee_damage": { "stab": 1.1 } }, "material": [ "moon_tears", "leather" ], "symbol": ";", "color": "light_gray", @@ -18,7 +18,7 @@ "techniques": [ "RAPID" ], "qualities": [ [ "CUT", 2 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 19 ] ], "thrown_damage": [ { "damage_type": "stab", "amount": 14 } ], - "flags": [ "STAB", "DURABLE_MELEE", "SHEATH_KNIFE", "NPC_THROWN" ], + "flags": [ "DURABLE_MELEE", "SHEATH_KNIFE", "NPC_THROWN" ], "weapon_category": [ "KNIVES" ] }, { @@ -32,16 +32,15 @@ "price_postapoc": 50000, "material": [ "moon_tears" ], "techniques": [ "WBLOCK_2", "PRECISE" ], - "flags": [ "STAB", "DURABLE_MELEE", "SHEATH_SWORD" ], + "flags": [ "DURABLE_MELEE", "SHEATH_SWORD" ], "weapon_category": [ "MEDIEVAL_SWORDS", "LONG_SWORDS", "FENCING_WEAPONRY" ], "weight": "1214 g", "volume": "2750 ml", "longest_side": "130 cm", - "bashing": 8, - "cutting": 42, "to_hit": { "grip": "weapon", "length": "long", "surface": "line", "balance": "good" }, "category": "weapons", - "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ] + "qualities": [ [ "CUT", 1 ], [ "BUTCHER", 8 ] ], + "melee_damage": { "bash": 8, "stab": 42 } }, { "id": "winter_lord_estoc", @@ -64,7 +63,7 @@ "type": "GENERIC", "name": { "str": "redcap club" }, "copy-from": "mace", - "description": "A giant bloodstained club, barely human wieldable with two hands. You see whenever it connects with an enemy shadowy tendrils of blood stick to whatever it hits and burn like acid.", + "description": "A giant bloodstained club, barely human wieldable with two hands. You see shadowy tendrils of blood whenever it connects with an enemy, sticking to whatever it hits and burning like acid.", "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "BELT_CLIP", "ALWAYS_TWOHAND" ], "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "hit_you_effect": [ { "id": "blood_tendrils" } ] } ] } }, @@ -89,6 +88,7 @@ "description": "A gladius covered in the whorls of Celtic knots. Sparks seems to pop off the edge of the blade.", "flags": [ "DURABLE_MELEE", "SHEATH_SWORD" ], "longest_side": "60 cm", + "material": [ "moon_tears" ], "weapon_category": [ "CONSTRUCTED_SWORDS", "SHORT_SWORDS", "DURABLE_MELEE" ], "relic_data": { "passive_effects": [ { "has": "WIELD", "condition": "ALWAYS", "hit_you_effect": [ { "id": "distant_thunder" } ] } ] } }, @@ -104,5 +104,349 @@ "min_range": 1, "shape": "blast", "effect": "attack" + }, + { + "id": "dreamdross_knife", + "type": "GENERIC", + "category": "weapons", + "name": { "str": "dreamdross knife", "str_pl": "dreamdross knives" }, + "description": "Covered with thin layer of dreamdross, this knife is a light and sharp tool to work with.", + "copy-from": "knife_combat", + "volume": "400 ml", + "longest_side": "30 cm", + "to_hit": { "grip": "weapon", "length": "hand", "surface": "point", "balance": "good" }, + "proportional": { "weight": 0.6, "melee_damage": { "stab": 0.6 } }, + "material": [ "dreamstuff" ], + "symbol": ";", + "color": "light_gray", + "techniques": [ "RAPID" ], + "qualities": [ [ "CUT", 2 ], [ "CUT_FINE", 1 ], [ "BUTCHER", 21 ] ], + "flags": [ "DURABLE_MELEE", "SHEATH_KNIFE", "NONCONDUCTIVE", "TRADER_AVOID" ], + "weapon_category": [ "KNIVES" ] + }, + { + "id": "dreamdross_club", + "type": "GENERIC", + "category": "weapons", + "name": { "str": "dreamdross club" }, + "description": "It was a good tool before, but now it's covered with big layer of dreamdross, and it works as a light, but deadly weapon.", + "copy-from": "mace", + "volume": "1250 ml", + "longest_side": "80 cm", + "to_hit": { "grip": "weapon", "length": "short", "surface": "any", "balance": "neutral" }, + "proportional": { "weight": 0.6, "melee_damage": { "bash": 0.9 } }, + "material": [ "dreamstuff" ], + "symbol": ";", + "color": "light_gray", + "qualities": [ [ "HAMMER", 1 ] ], + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "BELT_CLIP", "TRADER_AVOID" ], + "weapon_category": [ "MACES" ] + }, + { + "type": "GENERIC", + "id": "dreamdross_bo", + "symbol": "/", + "color": "light_gray", + "name": { "str": "dreamdrossed quarterstaff", "str_pl": "dreamdrossed quarterstaves" }, + "description": "A long stick that's been covered with dreamdross, but lacks any magical properties.", + "copy-from": "bo", + "volume": "1500 ml", + "longest_side": "180 cm", + "material": [ "wood", "dreamstuff" ], + "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], + "flags": [ "DURABLE_MELEE", "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "weapon_category": [ "QUARTERSTAVES" ], + "proportional": { "weight": 0.6, "melee_damage": { "bash": 1.3 } }, + "category": "weapons", + "to_hit": { "grip": "weapon", "length": "long", "surface": "any", "balance": "good" }, + "price_postapoc": 1000 + }, + { + "type": "GENERIC", + "id": "dreamforged_q_staff", + "copy-from": "bo", + "name": { "str": "dreamforged quarterstaff", "str_pl": "dreamforged quarterstaves" }, + "description": "Long quarterstaff, forged entirely from dreamdross. Twice as heavy than wooden one, but lot sturdier, and still useful as a weapon. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "//": "All dreamforged weapons are forged 100% from dreamdross. Wooden parts double their weight, but steel parts almost quarter their weight. 100% steel weapon like swords and knifes has too big benefit from it, so their damage is reduced respectively - the random properties will make them really good weapon anyway, but the basic stats will be sane enough.", + "proportional": { "weight": 2, "melee_damage": { "bash": 2.5 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_longsword", + "copy-from": "longsword", + "name": { "str": "dreamforged longsword" }, + "description": "Longsword, forged entirely from dreamdross. It is much lighter than steel one, but it apply much less force to target. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "cut": 0.5 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_warhammer", + "copy-from": "warhammer", + "name": { "str": "dreamforged warhammer" }, + "description": "Warhammer, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "weight": "1367 g", + "material": [ "forged_dreamstuff" ], + "proportional": { "melee_damage": { "bash": 1.1 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_spear", + "copy-from": "spear_steel", + "name": { "str": "dreamforged spear" }, + "description": "Spear, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "weight": "2129 g", + "material": [ "forged_dreamstuff" ], + "proportional": { "melee_damage": { "stab": 1.2 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_halberd", + "copy-from": "halberd", + "name": { "str": "dreamforged halberd" }, + "description": "Two-handed halberd, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "weight": "2374 g", + "material": [ "forged_dreamstuff" ], + "proportional": { "melee_damage": { "cut": 1.1 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_glaive", + "copy-from": "glaive", + "name": { "str": "dreamforged glaive" }, + "description": "Two-handed glaive, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "weight": "2285 g", + "material": [ "forged_dreamstuff" ], + "proportional": { "melee_damage": { "cut": 1.1 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_naginata", + "copy-from": "naginata", + "name": { "str_sp": "dreamforged naginata" }, + "description": "Sturdy naginata, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "weight": "2181 g", + "material": [ "forged_dreamstuff" ], + "proportional": { "melee_damage": { "cut": 1.1 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_mace", + "copy-from": "mace", + "name": { "str": "dreamforged mace" }, + "description": "Light mace, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "weight": "1160 g", + "material": [ "forged_dreamstuff" ], + "proportional": { "melee_damage": { "bash": 0.9 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_morningstar", + "copy-from": "morningstar", + "name": { "str": "dreamforged morningstar" }, + "description": "Light morningstar, forged entirely from dreamdross. So light, that you can't properly apply any force on it. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "weight": "1198 g", + "material": [ "forged_dreamstuff" ], + "proportional": { "melee_damage": { "bash": 0.9 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_estoc", + "copy-from": "estoc", + "name": { "str": "dreamforged estoc" }, + "description": "Estoc, forged entirely from dreamdross. So light, that you can't properly apply any force on it. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "stab": 0.5 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_arming_sword", + "copy-from": "arming_sword", + "name": { "str": "dreamforged arming sword" }, + "description": "Arming sword, forged entirely from dreamdross. So light, that you can't properly apply any force on it. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "cut": 0.5 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_broadsword", + "copy-from": "broadsword", + "name": { "str": "dreamforged broadsword" }, + "description": "Broadsword, forged entirely from dreamdross. So light, that you can't properly apply any force on it. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "cut": 0.5 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_battleaxe", + "copy-from": "battleaxe", + "name": { "str": "dreamforged battle axe" }, + "description": "Battle axe, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "weight": "1216 g", + "material": [ "forged_dreamstuff" ], + "proportional": { "melee_damage": { "cut": 0.7 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_katana", + "copy-from": "katana", + "name": { "str_sp": "dreamforged katana" }, + "description": "Katana, forged entirely from dreamdross. So light, that you can't properly apply any force on it. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "cut": 0.3 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_knife_combat", + "copy-from": "knife_combat", + "name": { "str": "dreamforged combat knife", "str_pl": "dreamforged combat knives" }, + "description": "Small military knife, forged entirely from dreamdross. You barely feel any weight. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "stab": 0.6 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_kris", + "copy-from": "kris", + "name": { "str": "dreamforged kris", "str_pl": "dreamforged krises" }, + "description": "Small curved knife, forged entirely from dreamdross. You barely feel any weight. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "bash": 0.3, "stab": 0.85 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_kukri", + "copy-from": "kukri", + "name": { "str": "dreamforged kukri" }, + "description": "Small kukri, forged entirely from dreamdross. You barely feel any weight. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "bash": 0.3, "stab": 0.9 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_nodachi", + "copy-from": "qt_nodachi", + "name": { "str_sp": "dreamforged nodachi" }, + "description": "Long nodachi, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "cut": 0.3 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_rapier", + "copy-from": "rapier", + "name": { "str": "dreamforged rapier" }, + "description": "Short rapier, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "stab": 0.65 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_tanto", + "copy-from": "tanto", + "name": { "str_sp": "dreamforged tanto" }, + "description": "Long tanto, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "stab": 0.3 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_wakizashi", + "copy-from": "wakizashi", + "name": { "str_sp": "dreamforged wakizashi" }, + "description": "Long wakizashi, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "cut": 0.3 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_zweihander", + "copy-from": "zweihander", + "name": { "str": "dreamforged zweihänder" }, + "description": "Huge two-handed sword, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "bash": 0.3, "cut": 0.6 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_khopesh", + "copy-from": "khopesh", + "name": { "str": "dreamforged khopesh", "str_pl": "dreamforged khopeshes" }, + "description": "Light khopesh, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "material": [ "forged_dreamstuff" ], + "proportional": { "weight": 0.25, "melee_damage": { "bash": 0.3, "stab": 0.8 } } + }, + { + "type": "GENERIC", + "id": "dreamforged_lucerne", + "copy-from": "lucern_hammer", + "name": { "str": "dreamforged lucerne hammer" }, + "description": "Lucerne hammer, forged entirely from dreamdross. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "weight": "2571 g", + "material": [ "forged_dreamstuff" ], + "proportional": { "melee_damage": { "bash": 1.1, "stab": 0.9 } } + }, + { + "id": "dreamforged_knuckle", + "type": "ARMOR", + "name": { "str_sp": "dreamforged knuckles" }, + "description": "A pair of thick dreamdross plates covering your proximal phalange. The dreamdross grant it some minor magical properties, but you can't control their effects.", + "copy-from": "knuckle_impact", + "proportional": { "weight": 0.25, "melee_damage": { "bash": 0.7 } }, + "material": [ "forged_dreamstuff" ], + "material_thickness": 3, + "flags": [ "WATER_FRIENDLY", "DURABLE_MELEE", "OUTER" ], + "armor": [ + { + "encumbrance": 5, + "coverage": 80, + "covers": [ "hand_l", "hand_r" ], + "specifically_covers": [ "hand_fingers_l", "hand_fingers_r" ] + } + ] + }, + { + "id": "dreamforged_knuckle_berserk", + "type": "ARMOR", + "name": { "str_sp": "berserker knuckles" }, + "description": "Fiery-red knuckles with tiny blades in the end. They are fed with your energy and the blood of your enemies, and will fuel different items with berserk properties.", + "//": "You actually can use it with any weapon, because enchantment applied always, both when you wear it or if you wield it, but it doesn't matter, because iirc fists has one of the biggest attack speed in the game, which is the only thing that matter here.", + "copy-from": "dreamforged_knuckle", + "proportional": { "melee_damage": { "bash": 0.5 } }, + "relic_data": { "passive_effects": [ { "id": "BERSERKING" } ] }, + "armor": [ + { + "encumbrance": 5, + "coverage": 80, + "covers": [ "hand_l", "hand_r" ], + "specifically_covers": [ "hand_fingers_l", "hand_fingers_r" ] + } + ], + "melee_damage": { "cut": 3 } + }, + { + "type": "GENERIC", + "copy-from": "dreamforged_glaive", + "id": "dreamforged_glaive_healing", + "name": { "str": "glaive of life", "str_pl": "glaives of life" }, + "description": "Two-handed glaive, forged entirely from dreamdross. It can steal a life from creature it attacks, healing you for a bit.", + "relic_data": { "passive_effects": [ { "id": "ENCHANTMENT_VAMPIRISM" } ] } + }, + { + "type": "GENERIC", + "id": "dreamforged_tsurugi_speed", + "copy-from": "dreamforged_broadsword", + "name": { "str_sp": "tsurugi of speed" }, + "description": "Classic japanese tsurugi sword with razor sharp blade. You start to think you need to move faster, and effect intensifies when you are surrounded.", + "relic_data": { "passive_effects": [ { "id": "MON_NEARBY_SPEED" } ] } + }, + { + "type": "GENERIC", + "id": "dreamforged_q_staff_exp", + "copy-from": "dreamforged_q_staff", + "name": { "str": "bo of practice", "str_pl": "bos of practices" }, + "description": "Long, straight stick. Simple weapon, it is powered by your own experience of fighting dreadful creatures", + "relic_data": { "passive_effects": [ { "id": "EXP_BASH" } ] } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/mutagen.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/mutagen.json new file mode 100644 index 000000000..e97680ba8 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/mutagen.json @@ -0,0 +1,80 @@ +[ + { + "id": "mutagen_earthkin", + "copy-from": "mutagen_flavor", + "type": "COMESTIBLE", + "name": "Ierde destiny draught", + "description": "This magical potion will further your transformation from newly sentient creature to elemental powerhouse.", + "price": 500000, + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the Ierde draught.", + "vitamins": [ [ "mutagen_earthkin", 550 ], [ "mutagen", 550 ] ] + } + }, + { + "id": "mutagen_plantkin", + "copy-from": "mutagen_flavor", + "type": "COMESTIBLE", + "name": "Arvore destiny draught", + "description": "This magical potion will further your transformation from newly sentient creature to elemental powerhouse.", + "price": 500000, + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the Arvore draught.", + "vitamins": [ [ "mutagen_plantkin", 550 ], [ "mutagen", 550 ] ] + } + }, + { + "id": "mutagen_waterkin", + "copy-from": "mutagen_flavor", + "type": "COMESTIBLE", + "name": "Undine destiny draught", + "description": "This magical potion will further your transformation from newly sentient creature to elemental powerhouse.", + "price": 500000, + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the Undine draught.", + "vitamins": [ [ "mutagen_waterkin", 550 ], [ "mutagen", 550 ] ] + } + }, + { + "id": "mutagen_flamekin", + "copy-from": "mutagen_flavor", + "type": "COMESTIBLE", + "name": "Salamander destiny draught", + "description": "This magical potion will further your transformation from newly sentient creature to elemental powerhouse.", + "price": 500000, + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the Salamander draught.", + "vitamins": [ [ "mutagen_flamekin", 550 ], [ "mutagen", 550 ] ] + } + }, + { + "id": "mutagen_dollkin", + "copy-from": "mutagen_flavor", + "type": "COMESTIBLE", + "name": "Homullus destiny draught", + "description": "This magical potion will further your transformation from newly sentient creature to elemental powerhouse.", + "price": 500000, + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the Homullus draught.", + "vitamins": [ [ "mutagen_dollkin", 550 ], [ "mutagen", 550 ] ] + } + }, + { + "id": "mutagen_airkin", + "copy-from": "mutagen_flavor", + "type": "COMESTIBLE", + "name": "Sylph destiny draught", + "description": "This magical potion will further your transformation from newly sentient creature to elemental powerhouse.", + "price": 500000, + "use_action": { + "type": "consume_drug", + "activation_message": "You drink the Sylph draught.", + "vitamins": [ [ "mutagen_airkin", 550 ], [ "mutagen", 550 ] ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/mutagen_ingredients.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/mutagen_ingredients.json new file mode 100644 index 000000000..02c5dc3f7 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/mutagen_ingredients.json @@ -0,0 +1,62 @@ +[ + { + "type": "GENERIC", + "id": "ierde_sample", + "copy-from": "mutagen_sample", + "color": "red", + "name": { "str": "ierde sample" }, + "description": "A sample of rare earths.", + "looks_like": "medical_sample", + "material": [ "fae_flesh", "fae_blood", "bone" ] + }, + { + "type": "GENERIC", + "id": "arvore_sample", + "copy-from": "mutagen_sample", + "color": "red", + "name": { "str": "arvore sample" }, + "description": "A sample of verdant plant life.", + "looks_like": "medical_sample", + "material": [ "fae_flesh", "fae_blood", "bone" ] + }, + { + "type": "GENERIC", + "id": "salamander_sample", + "copy-from": "mutagen_sample", + "color": "red", + "name": { "str": "salamander sample" }, + "description": "A sample of fiery passion.", + "looks_like": "medical_sample", + "material": [ "fae_flesh", "fae_blood", "bone" ] + }, + { + "type": "GENERIC", + "id": "undine_sample", + "copy-from": "mutagen_sample", + "color": "red", + "name": { "str": "undine sample" }, + "description": "A sample of deep waters.", + "looks_like": "medical_sample", + "material": [ "fae_flesh", "fae_blood", "bone" ] + }, + { + "type": "GENERIC", + "id": "homullus_sample", + "copy-from": "mutagen_sample", + "color": "red", + "name": { "str": "homullus sample" }, + "description": "A sample of lifelike dolls.", + "looks_like": "medical_sample", + "material": [ "fae_flesh", "fae_blood", "bone" ] + }, + { + "type": "GENERIC", + "id": "sylph_sample", + "copy-from": "mutagen_sample", + "color": "red", + "name": { "str": "sylph sample" }, + "description": "A sample of untamed air.", + "looks_like": "medical_sample", + "material": [ "fae_flesh", "fae_blood", "bone" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/notes_and_news.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/notes_and_news.json index 087e32223..5a8d3b204 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/notes_and_news.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/notes_and_news.json @@ -7,6 +7,14 @@ "copy-from": "survnote", "snippet_category": "changeling_march_lord_report" }, + { + "type": "GENERIC", + "id": "border_patrol_files", + "name": { "str_sp": "border patrol files" }, + "description": "A folder filled with pages.", + "copy-from": "survnote", + "snippet_category": "border_patrol_files" + }, { "type": "GENERIC", "id": "green_postit_field_agent", @@ -30,5 +38,37 @@ "name": { "str": "post-it note" }, "description": "A bright pink post-it note.", "snippet_category": "agent_postit_migo" + }, + { + "type": "GENERIC", + "id": "museum_plaques_visitors", + "category": "books", + "symbol": ",", + "color": "white", + "name": { "str": "museum plaque" }, + "snippet_category": "museum_plaques_visitors", + "description": "A paper plaque. It has words printed on it.", + "price": 0, + "price_postapoc": 0, + "material": [ "paper" ], + "flags": [ "TRADER_AVOID" ], + "weight": "12 mg", + "volume": "1 ml" + }, + { + "type": "GENERIC", + "id": "museum_plaques_items", + "category": "books", + "symbol": ",", + "color": "white", + "name": { "str": "museum plaque" }, + "snippet_category": "museum_plaques_items", + "description": "A paper plaque. It has words printed on it.", + "price": 0, + "price_postapoc": 0, + "material": [ "paper" ], + "flags": [ "TRADER_AVOID" ], + "weight": "12 mg", + "volume": "1 ml" } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/pets.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/pets.json index 27a241d1b..85d61e250 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/pets.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/pets.json @@ -27,10 +27,10 @@ "price": 0, "price_postapoc": 1000, "to_hit": -1, - "bashing": 5, "material": [ "moon_tears", "fae_fur", "gold" ], "symbol": "M", "color": "yellow", - "flags": [ "TACK" ] + "flags": [ "TACK" ], + "melee_damage": { "bash": 5 } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/range.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/range.json new file mode 100644 index 000000000..6d7d5bc14 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/range.json @@ -0,0 +1,135 @@ +[ + { + "id": "dreamforged_longbow", + "looks_like": "longbow", + "type": "GUN", + "symbol": "(", + "color": "light_gray", + "name": { "str": "dreamforged bow" }, + "description": "A six-foot bow, forged entirely from dreamdross, including its strings. Primitive look, devastating power.", + "price": 50000, + "material": [ "forged_dreamstuff" ], + "flags": [ + "FIRE_TWOHAND", + "RELOAD_AND_SHOOT", + "PRIMITIVE_RANGED_WEAPON", + "BELTED", + "WATER_FRIENDLY", + "SHEATH_BOW", + "WATERPROOF_GUN", + "NEVER_JAMS" + ], + "ammo_effects": [ "NEVER_MISFIRES" ], + "skill": "archery", + "min_strength": 7, + "ammo": [ "arrow" ], + "weight": "884 g", + "volume": "2800 ml", + "longest_side": "160 cm", + "armor_data": { + "armor": [ + { + "material": [ { "type": "forged_dreamstuff", "covered_by_mat": 100, "thickness": 2 } ], + "encumbrance": 14, + "coverage": 0, + "covers": [ "torso" ], + "specifically_covers": [ "torso_hanging_back" ] + } + ] + }, + "reload_noise_volume": 3, + "loudness": 8, + "ranged_damage": { "damage_type": "stab", "amount": 11 }, + "range": 25, + "dispersion": 1000, + "sight_dispersion": 3000, + "durability": 6, + "clip_size": 1, + "valid_mod_locations": [ [ "underbarrel", 1 ], [ "sights", 1 ], [ "stabilizer", 1 ], [ "dampening", 1 ], [ "arrow rest", 1 ] ], + "reload": 50, + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "arrow": 1 } } ], + "melee_damage": { "bash": 10 } + }, + { + "type": "AMMO", + "id": "arrow_dreamforged", + "name": { "str": "dreamforged arrow" }, + "symbol": "=", + "color": "light_gray", + "looks_like": "arrow_metal_sharpened_fletched", + "description": "A dreamforged arrow with a razor-sharp tip.", + "material": [ "steel" ], + "volume": "40 ml", + "price_postapoc": 250, + "weight": "80 g", + "longest_side": "80 cm", + "ammo_type": "arrow", + "damage": { "damage_type": "stab", "armor_penetration": 10, "constant_damage_multiplier": 2 }, + "dispersion": 100, + "loudness": 0, + "show_stats": true, + "critical_multiplier": 10, + "effects": [ "RECOVER_20" ], + "melee_damage": { "bash": 2 } + }, + { + "id": "dreamforged_crossbow", + "looks_like": "crossbow", + "type": "GUN", + "symbol": "(", + "color": "light_gray", + "name": { "str": "dreamforged crossbow" }, + "reload_noise_volume": 4, + "description": "A medieval crossbow, forged entirely from dreamdross, including its strings. Probably not the best weapon in modern world, but still capable to do devastating damage while being completely silent.", + "material": [ "steel", "plastic" ], + "flags": [ "PRIMITIVE_RANGED_WEAPON" ], + "skill": "rifle", + "min_strength": 7, + "ammo": [ "bolt" ], + "weight": "1358 g", + "volume": "1750 ml", + "longest_side": "67 cm", + "to_hit": 1, + "ranged_damage": { "damage_type": "stab", "amount": 16 }, + "range": 24, + "loudness": 6, + "dispersion": 325, + "durability": 6, + "clip_size": 1, + "reload": 1200, + "valid_mod_locations": [ + [ "grip", 1 ], + [ "mechanism", 4 ], + [ "rail", 1 ], + [ "sights", 1 ], + [ "sling", 1 ], + [ "stock", 1 ], + [ "underbarrel", 1 ], + [ "dampening", 1 ] + ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "bolt": 1 } } ], + "melee_damage": { "bash": 11 } + }, + { + "type": "AMMO", + "id": "bolt_dreamforged", + "price": 2000, + "name": { "str": "dreamforged bolt" }, + "symbol": "=", + "color": "green", + "looks_like": "bolt_steel", + "description": "A dreamforged crossbow bolt with broadhead tip.", + "material": [ "kevlar_rigid", "steel" ], + "volume": "25 ml", + "longest_side": "50 cm", + "weight": "50 g", + "ammo_type": "bolt", + "damage": { "damage_type": "stab", "armor_penetration": 10, "constant_damage_multiplier": 2 }, + "range": 16, + "dispersion": 60, + "loudness": 0, + "critical_multiplier": 10, + "effects": [ "RECOVER_30" ], + "melee_damage": { "bash": 1 } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/resources.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/resources.json index cdc2ab851..7e9c059d5 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/resources.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/resources.json @@ -9,19 +9,43 @@ "weight": "683 g", "volume": "250 ml", "price": 6399, - "bashing": 6, "to_hit": -3, "material": [ "moon_tears" ], "symbol": "=", - "color": "light_blue" + "color": "light_blue", + "melee_damage": { "bash": 6 } + }, + { + "type": "GENERIC", + "id": "moon_tear_wire", + "symbol": ";", + "color": "light_gray", + "name": { "str": "moon tear wire" }, + "description": "A length of thin, relatively stiff moon tear wire.", + "category": "spare_parts", + "price": 20000, + "price_postapoc": 100, + "material": [ "moon_tears" ], + "weight": "151 g", + "volume": "100 ml", + "to_hit": -2 + }, + { + "id": "water", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "name": { "str_sp": "water" }, + "copy-from": "water", + "calories": 0, + "extend": { "flags": [ "NUTRIENT_OVERRIDE" ] } }, { "id": "scrap_dreamdross", "type": "AMMO", "category": "spare_parts", "name": { "str": "scrap dreamdross", "str_pl": "scraps of dreamdross" }, - "description": "A bulky assortment of small bits of scrap dreamdross useful in all kinds of crafting ephemeral things.", - "weight": "50 g", + "description": "A bulky assortment of small bits of scrap dreamdross, useful in all kinds of ephemeral crafting.", + "weight": "5 g", "volume": "25 ml", "price": 500, "price_postapoc": 10, @@ -31,7 +55,7 @@ "material": [ "dreamstuff" ], "symbol": ",", "color": "light_gray", - "ammo_type": "components" + "ammo_type": "scrap_dreamdross" }, { "id": "dreamdross_lump", @@ -39,17 +63,16 @@ "category": "spare_parts", "name": { "str": "lump of dreamdross", "str_pl": "lumps of dreamdross" }, "description": "A heavy formed piece of dreamdross. Useful for some crafting recipes.", - "weight": "250 g", - "volume": "125 ml", + "weight": "50 g", + "volume": "25 ml", "price": 2000, "price_postapoc": 500, - "bashing": 12, "to_hit": -4, - "stack_size": 2, "material": [ "dreamstuff" ], "symbol": ",", "color": "light_gray", - "ammo_type": "components" + "ammo_type": "components", + "melee_damage": { "bash": 12 } }, { "id": "forged_dreamstuff_ingot", @@ -61,10 +84,65 @@ "volume": "250 ml", "price": 6399, "price_postapoc": 5000, - "bashing": 6, "to_hit": -3, "material": [ "forged_dreamstuff" ], "symbol": "=", - "color": "light_blue" + "color": "light_blue", + "melee_damage": { "bash": 6 } + }, + { + "type": "GENERIC", + "id": "tanned_glimmer_pelt", + "symbol": ",", + "color": "brown", + "name": { "str": "tanned glimmer fur pelt" }, + "description": "A folded sheet of glimmer fur made from carefully tanned fae animal pelt. Can be cut up or used as is.", + "price": 5000, + "price_postapoc": 500, + "material": [ "fae_fur" ], + "weight": "372 g", + "volume": "465 ml", + "category": "spare_parts" + }, + { + "id": "tanning_glimmer_pelt", + "type": "TOOL", + "category": "spare_parts", + "name": { "str": "tanning glimmer fur pelt" }, + "description": "A treated fae animal pelt that is undergoing the chemical processes required to become fur. You will be able to activate it to unroll and make use of it when it is done.", + "weight": "684 g", + "volume": "1 L", + "price": 0, + "price_postapoc": 0, + "to_hit": -2, + "material": [ "fur", "flesh" ], + "symbol": ",", + "color": "brown", + "use_action": { + "target": "tanned_glimmer_pelt", + "msg": "You carefully unfold the tanning fae fur pelt and shake it clean.", + "moves": 150, + "type": "delayed_transform", + "transform_age": 28800, + "not_ready_msg": "The tanning fae fur pelt isn't done yet.", + "//": "2 days" + }, + "flags": [ "NO_SALVAGE" ] + }, + { + "type": "GENERIC", + "id": "cured_glimmer_pelt", + "symbol": ",", + "color": "brown", + "name": { "str": "cured glimmer pelt" }, + "description": "A rolled-up fae animal hide which has been scraped of extraneous hair and flesh and treated to prevent decay. It still requires tanning to become usable fur.", + "price": 200, + "price_postapoc": 150, + "material": [ "fae_fur", "fae_flesh" ], + "flags": [ "NO_SALVAGE" ], + "weight": "372 g", + "volume": "465 ml", + "category": "spare_parts", + "to_hit": -1 } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_classless.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_classless.json index 2fef8e853..9716627a1 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_classless.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_classless.json @@ -3,8 +3,9 @@ "id": "magicians_hat", "type": "GENERIC", "category": "artifacts", + "looks_like": "tophat", "name": { "str": "magician's hat" }, - "description": "Old school cylinder hat, used by illusionists in the whole world. Maybe it still remember some cool tricks?", + "description": "Old school cylinder hat, used by illusionists around the world. Maybe it still remembers some cool tricks?", "weight": "150 g", "volume": "600 ml", "price": 2000, @@ -18,6 +19,7 @@ "id": "fire_ball", "type": "GENERIC", "category": "artifacts", + "looks_like": "cannonball_4lb", "name": { "str": "warm ball" }, "description": "Small and light ball of glass with flickering flames inside. The surface feels scalding hot, yet the temperature does not change.", "weight": "40 g", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_dreamer.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_dreamer.json index 7b59ab6f2..259a549d9 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_dreamer.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_dreamer.json @@ -3,6 +3,7 @@ "id": "magick_8_ball", "type": "GENERIC", "category": "artifacts", + "looks_like": "magic_8_ball", "name": { "str": "Magick 8-Ball" }, "description": "A fortune-telling device from the 1950s. If you shake it and look at the bottom it will give you detailed step by step instructions on how to do… something.", "weight": "40 g", @@ -18,6 +19,7 @@ "id": "glass_dagger_paperweight", "type": "GENERIC", "category": "artifacts", + "looks_like": "knife_paring", "name": { "str": "glass dagger paperweight" }, "description": "This paperweight in the shape of a small glass dagger emits a wet wheeze like a punctured lung when held.", "weight": "40 g", @@ -34,6 +36,7 @@ "id": "caravaggio_self_portrait", "type": "GENERIC", "category": "artifacts", + "looks_like": "family_photo", "name": { "str": "Caravaggio on his deathbed", "str_pl": "copies of Caravaggio on his deathbed" }, "description": "A previously unknown painting in Caravaggio's style of the artist himself lying prone on his deathbed as black ichor seeps from a sword wound in his side. His own sword rests near his hand and his ever dying breath asks you to take up his blade.", "weight": "40 g", @@ -45,5 +48,214 @@ "symbol": "C", "color": "red_white", "use_action": { "type": "learn_spell", "spells": [ "dream_blade" ] } + }, + { + "type": "GENERIC", + "id": "mirror_artifact", + "symbol": "o", + "color": "light_cyan", + "name": { "str": "ɹoɹɹᴉɯ puɐɥ", "str_pl": "sɹoɹɹᴉɯ puɐɥ", "ctxt": "'hand mirror' but upside down" }, + "description": "·ɓuoɹʍ ɓuᴉɥʇǝɯoS ·ɹoɹɹᴉɯ puɐɥ ʅʅɐɯs Ɐ", + "//": "'A small hand mirror. Something wrong'. I use https://www.messletters.com/en/mirrored/ (the third option) but I guess it doesn't work with non-Latin languages. Sorry translators.", + "looks_like": "mirror", + "price": 15000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "weight": "300 g", + "volume": "750 ml", + "to_hit": -3, + "use_action": { "type": "learn_spell", "spells": [ "spell_summon_twin" ] }, + "melee_damage": { "bash": 2 } + }, + { + "id": "artifact_dreamer_clairvoyance", + "looks_like": "glasses_eye", + "type": "ARMOR", + "category": "artifacts", + "name": { "str": "pair of glasses", "str_pl": "pairs of glasses" }, + "description": "A pair of a common glasses. They have no lens or glass inside, only casing. There is a strange engraving of vines, snakes, and foxes covering every surface of the frames. You think that maybe the engravings are moving when you aren't looking at them.", + "weight": "15 g", + "volume": "250 ml", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "[", + "color": "cyan", + "material_thickness": 1, + "environmental_protection": 1, + "armor": [ { "coverage": 75, "covers": [ "eyes" ], "rigid_layer_only": true } ], + "use_action": { "type": "learn_spell", "spells": [ "spell_dreamer_clairvoyance" ] } + }, + { + "id": "artifact_dreamer_clairvoyance_eff", + "looks_like": "family_photo", + "type": "GENERIC", + "category": "artifacts", + "name": { "str": "family photo" }, + "description": "A photo of a smiling family on a camping trip. The background is always the same, but people are not. Do you recall them?", + "weight": "1 g", + "volume": "5 ml", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "*", + "color": "light_gray", + "use_action": { "type": "learn_spell", "spells": [ "spell_dreamer_clairvoyance_eff" ] } + }, + { + "id": "artifact_shifter", + "type": "GENERIC", + "category": "artifacts", + "name": { "str": "sphere" }, + "description": "A small, black sphere. It constantly changes its position. It even tries to roll out of corners you wedge it into.", + "looks_like": "golf_ball", + "weight": "117 g", + "volume": "117 ml", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "0", + "color": "black", + "use_action": { "type": "learn_spell", "spells": [ "summon_shifter" ] } + }, + { + "id": "artifact_sapient_light", + "type": "GENERIC", + "category": "artifacts", + "name": { "str": "flashlight" }, + "looks_like": "flashlight", + "description": "This looks like a typical household flashlight. It has no battery holder and it hums when you touch it.", + "weight": "280 g", + "volume": "270 ml", + "longest_side": "14 cm", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "0", + "color": "black", + "use_action": { "type": "learn_spell", "spells": [ "summon_sapient_light" ] } + }, + { + "id": "artifact_constructed_hammer", + "type": "GENERIC", + "category": "artifacts", + "name": { "str": "nail" }, + "looks_like": "nail", + "description": "A pin-shaped piece of iron. You feel the need to hammer it.", + "weight": "4 g", + "volume": "2 ml", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "0", + "color": "black", + "use_action": { "type": "learn_spell", "spells": [ "make_constructed_hammer" ] } + }, + { + "id": "artifact_bubble", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "marble", + "name": { "str": "bubble" }, + "description": "A small, transparent bubble. It divides itself into two, then four, eight, sixteen, endlessly, before turning back to single bubble and repeating the process.", + "weight": "1 g", + "volume": "150 ml", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "0", + "color": "white", + "use_action": { "type": "learn_spell", "spells": [ "summon_duplicator" ] } + }, + { + "id": "dreamer_coin_artifact", + "repairs_like": "backpack", + "type": "GENERIC", + "category": "container", + "name": { "str": "wallet" }, + "looks_like": "wallet", + "description": "A small, flat case used to carry currency. Each time you open it, it reveals new pockets, but all of them hold the same one coin, which you can't remove.", + "volume": "200 ml", + "weight": "60 g", + "price": 1, + "price_postapoc": 10, + "material": [ "plastic" ], + "symbol": ")", + "color": "dark_gray" + }, + { + "id": "artifact_ophanim", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "toy_figurine", + "name": "angel figurine", + "description": "A delicate figurine of a renaissance angel. It looks oddly human.", + "weight": "45 g", + "volume": "90 ml", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "0", + "color": "black", + "use_action": { "type": "learn_spell", "spells": [ "summon_ophanim" ] } + }, + { + "id": "artifact_winch", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "toy_figurine", + "name": "action figurine", + "description": "A small action figurine of a man with an old computer. It appears he is attempting to hack it.", + "weight": "90 g", + "volume": "190 ml", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "0", + "color": "black", + "use_action": { "type": "learn_spell", "spells": [ "summon_winch" ] } + }, + { + "id": "artifact_karma_arms", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "marble", + "name": "odd circle", + "description": "Circular unit of energy, surrounded by a few other circles that almost make a connection around the center.", + "weight": "90 g", + "volume": "190 ml", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "o", + "color": "cyan", + "use_action": { "type": "learn_spell", "spells": [ "spell_karma_arms" ] } + }, + { + "id": "artifact_stalker_eyes", + "type": "GENERIC", + "category": "artifacts", + "name": { "str": "presence" }, + "description": "You feel like something took a glance at this place, and it was so menacing, that the world itself curled up here.", + "weight": "1 g", + "volume": "1 ml", + "material": [ "forged_dreamstuff" ], + "symbol": "o", + "color": "white", + "use_action": { "type": "learn_spell", "spells": [ "spell_stalker_eyes" ] } + }, + { + "id": "artifact_devil_tail", + "type": "GENERIC", + "category": "artifacts", + "name": { "str": "lizard tail" }, + "looks_like": "fur_cat_tail", + "description": "Small lizard tail, that was ripped off. Looks like someone's joke.", + "weight": "3 g", + "volume": "3 ml", + "material": [ "forged_dreamstuff" ], + "symbol": "~", + "color": "green", + "use_action": { "type": "learn_spell", "spells": [ "spell_devil_tail" ] } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_dreamsmith.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_dreamsmith.json index 138b52ff9..56e593c45 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_dreamsmith.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_dreamsmith.json @@ -3,7 +3,8 @@ "id": "brass_cylinders", "type": "GENERIC", "category": "artifacts", - "name": { "str": "a set of brass cylinders", "str_pl": "sets of brass cylinders" }, + "looks_like": "gradcylinder", + "name": { "str": "set of brass cylinders", "str_pl": "sets of brass cylinders" }, "description": "These brass cylinders are engraved with cuneiform and could be rolled across wet clay to create a page of writing per cylinder. When you touch one of the cylinders you hear a faint voice whisper 'Enki'.", "weight": "50 g", "volume": "10 ml", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_eater.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_eater.json index ad83ba53d..8cedaa9a3 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_eater.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_eater.json @@ -3,6 +3,7 @@ "id": "deck_of_tarot_cards", "type": "GENERIC", "category": "artifacts", + "looks_like": "deck_of_cards", "name": { "str": "deck of tarot cards", "str_pl": "decks of tarot cards" }, "description": "A deck of intricately designed tarot cards. When you lay out your future they seem to be trying to tell you to take a leap of faith.", "weight": "50 g", @@ -19,7 +20,7 @@ "type": "GENERIC", "category": "artifacts", "name": { "str": "occult seal" }, - "description": "An intricate occult seal. When you glance at the bottom left corner you hear the sound of the ocean and smell the sea and a river starts flowing through point to point of the seal.", + "description": "An intricate occult seal. When you glance at the bottom left corner you hear the sound of the ocean and smell the salty air the sea, and sense a river flowing through each point of the seal.", "weight": "50 g", "volume": "10 ml", "price": 2000, @@ -33,6 +34,7 @@ "id": "hurricane_lamp_thorns", "type": "GENERIC", "category": "artifacts", + "looks_like": "oil_lamp", "name": { "str": "hurricane lamp with thorns", "str_pl": "hurricane lamps with thorns" }, "description": "An old style hurricane lamp. The handle appears to made of vines covered in sharp thorns.", "weight": "50 g", @@ -48,8 +50,9 @@ "id": "glass_berries", "type": "GENERIC", "category": "artifacts", + "looks_like": "marble", "name": { "str": "box of glass berries", "str_pl": "boxes of glass berries" }, - "description": "A box full of glass berries, when you get distracted you find yourself crunching them in your mouth. Each one tastes like a mouth full of blood, that slowly changes to espresso.", + "description": "A box full of glass berries, when you get distracted you find yourself crunching them in your mouth. Each one tastes like a mouthful of blood that slowly changes to espresso.", "weight": "50 g", "volume": "10 ml", "price": 2000, @@ -63,8 +66,9 @@ "id": "polaroid_of_missing_person", "type": "GENERIC", "category": "artifacts", + "looks_like": "polaroid_photo", "name": { "str": "polaroid of a missing person", "str_pl": "polaroids of a missing person" }, - "description": "A polaroid of someone you remember that went missing before the Cataclysm. It caught a ton of media attention because that were seen near what was shortly after identified as a thin place between dimensions. The more you stare at the picture you begin to see wounds appear and dissapear on the person. Sometimes they match your wounds that have healed.", + "description": "A polaroid of someone you remember going missing before the Cataclysm. It caught a ton of media attention due to them being seen near what was shortly after identified as a thin place between dimensions. The more you stare at the picture, the more you begin to see wounds appear and disappear on the person. Sometimes they match your old scars.", "weight": "50 g", "volume": "10 ml", "price": 2000, @@ -73,5 +77,235 @@ "symbol": "O", "color": "white_magenta", "use_action": { "type": "learn_spell", "spells": [ "self_healing" ] } + }, + { + "id": "strange_coffee", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "ceramic_mug", + "name": { "str": "strange cup of coffee", "str_pl": "strange cups of coffee" }, + "description": "A small jar with coffee, moving in weird patterns with no apparent cause. After watching the swirls for some time, you are sure that it loops back on its movements, like some sort of message.", + "weight": "90 g", + "volume": "100 ml", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "C", + "color": "white_magenta", + "use_action": { "type": "learn_spell", "spells": [ "supercoffee" ] } + }, + { + "id": "blindfold_artifact", + "type": "ARMOR", + "copy-from": "blindfold", + "name": { "str": "red devil blindfold" }, + "description": "A red fabric blindfold with a cartoonish devil over the eyes. You feel some anger when you put it on. Did that devil just wink at you?", + "use_action": { "type": "learn_spell", "spells": [ "spell_rage" ] } + }, + { + "id": "artifact_heart", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "jabberwock_heart", + "name": { "str": "mother of pearl heart" }, + "description": "A human heart grown in mother of pearl. It beats loudly when you raise it to your ear.", + "weight": "310 g", + "volume": "345 ml", + "longest_side": "15 cm", + "price": 1000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "o", + "color": "red", + "use_action": { "type": "learn_spell", "spells": [ "spell_stamina_wonder" ] } + }, + { + "id": "artifact_eye_right", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "petrified_eye", + "name": { "str": "right eye" }, + "description": "A tiny human eye. You can clearly see the green iris and red capillaries. While holding it in the dark you feel it watching you.", + "weight": "9 g", + "volume": "12 ml", + "price": 1000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "o", + "color": "green", + "use_action": { "type": "learn_spell", "spells": [ "spell_night_vision" ] } + }, + { + "id": "artifact_cerebellum", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "human_brain", + "name": { "str": "cerebellum" }, + "description": "A small, smooth part of the human brain. Looks slippery. Feels like rubber.", + "weight": "131 g", + "volume": "126 ml", + "price": 1000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "o", + "color": "red", + "use_action": { "type": "learn_spell", "spells": [ "spell_dodge" ] } + }, + { + "id": "artifact_skull", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "skull_human", + "name": { "str": "skull" }, + "description": "A tiny human skull. His empty orbits are watching you.", + "weight": "1133 g", + "volume": "1386 ml", + "price": 1000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "@", + "color": "red", + "use_action": { "type": "learn_spell", "spells": [ "spell_endurance" ] } + }, + { + "id": "ring_artifact", + "type": "ARMOR", + "name": { "str": "ring of Gyges", "str_pl": "rings of Gyges" }, + "description": "A small ring. There is nothing special about it, except the word \"Republic\" embossed on it.", + "weight": "9 g", + "volume": "1 ml", + "price": 2000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "[", + "looks_like": "ring_purity", + "color": "brown", + "sided": true, + "armor": [ + { + "encumbrance": 0, + "coverage": 0, + "covers": [ "hand_l", "hand_r" ], + "specifically_covers": [ "hand_fingers_l", "hand_fingers_r" ] + } + ], + "flags": [ "NO_WEAR_EFFECT", "SKINTIGHT" ], + "use_action": { "type": "learn_spell", "spells": [ "spell_invisibility" ] } + }, + { + "id": "artifact_eye_left", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "petrified_eye", + "name": { "str": "left eye" }, + "description": "A tiny human eye. You can clearly see it has a blue iris and red capillaries. You feel it can see you no matter how you hide.", + "weight": "9 g", + "volume": "12 ml", + "price": 1000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "o", + "color": "white", + "use_action": { "type": "learn_spell", "spells": [ "spell_clairvoyance" ] } + }, + { + "id": "eater_book_artifact", + "type": "BOOK", + "name": { "str": "Enemy of the World", "str_pl": "copies of Enemy of the World" }, + "description": "A small Korean novel, that describes the journey of an incredibly strong protagonist attempting to save the world.", + "weight": "460 g", + "volume": "500 ml", + "symbol": "[", + "color": "brown", + "material": [ "forged_dreamstuff" ], + "looks_like": "book_newage_generic", + "use_action": { "type": "learn_spell", "spells": [ "spell_melee_damage" ] }, + "melee_damage": { "bash": 1 } + }, + { + "id": "artifact_horn", + "type": "GENERIC", + "category": "artifacts", + "name": { "str": "horn" }, + "looks_like": "bone", + "description": "A large, straight horn of some unknown creature. It could easily injure a careless person.", + "weight": "239 g", + "volume": "315 ml", + "longest_side": "33 cm", + "price": 1000, + "price_postapoc": 10, + "to_hit": { "grip": "bad", "length": "hand", "surface": "point", "balance": "neutral" }, + "techniques": [ "RAPID" ], + "flags": [ ], + "weapon_category": [ "KNIVES" ], + "material": [ "forged_dreamstuff" ], + "symbol": "l", + "color": "red", + "use_action": { "type": "learn_spell", "spells": [ "spell_spear" ] }, + "melee_damage": { "stab": 12 } + }, + { + "id": "artifact_muscle", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "arm", + "name": { "str_sp": "muscles" }, + "description": "A long fleshy tendon with joints on both sides. They contract from time to time.", + "weight": "9 g", + "volume": "12 ml", + "price": 1000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "0", + "color": "red", + "use_action": { "type": "learn_spell", "spells": [ "spell_speed_wonder" ] } + }, + { + "id": "artifact_weakening", + "type": "GENERIC", + "category": "artifacts", + "name": { "str": "pile of pain" }, + "description": "There is nothing here. It's uncomfortable to hold it.", + "weight": "1 g", + "volume": "66 ml", + "price": 1000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "0", + "color": "red", + "use_action": { "type": "learn_spell", "spells": [ "spell_weak" ] } + }, + { + "id": "artifact_unbreakable", + "type": "GENERIC", + "category": "artifacts", + "name": { "str": "pair of spheres", "str_pl": "pairs of spheres" }, + "looks_like": "marble", + "description": "Two perfect spheres, where the first does not move at all, and second constantly rotates around. You feel the connection to both of them.", + "//": "unstoppable and immovable", + "weight": "240 g", + "volume": "1150 ml", + "price": 1000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "0", + "color": "dark_gray", + "use_action": { "type": "learn_spell", "spells": [ "spell_unbreakable" ] } + }, + { + "id": "artifact_point_blank", + "type": "GENERIC", + "category": "artifacts", + "looks_like": "ch_mitten_gaunt", + "name": { "str": "fist" }, + "description": "A solid, full size cast of a human fist, made out of some gray metal. Looks menacing.", + "weight": "560 g", + "volume": "280 ml", + "price": 1000, + "price_postapoc": 10, + "material": [ "forged_dreamstuff" ], + "symbol": "0", + "color": "dark_gray", + "use_action": { "type": "learn_spell", "spells": [ "point_blank" ] } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_inventor.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_inventor.json index 725be9658..a07473686 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_inventor.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/spell_learning_items/spell_learning_items_inventor.json @@ -1,59 +1,10 @@ [ - { - "id": "ray_diagrams", - "type": "GENERIC", - "category": "artifacts", - "name": { "str": "ray diagrams", "str_pl": "copies of ray diagrams" }, - "description": "These are diagrams covered in mathematical formulae and drawings of rays. You think there are some discussions about how to manipulate rays, rays of what though?", - "weight": "600 g", - "volume": "450ml", - "price": 10000, - "price_postapoc": 300, - "material": [ "forged_dreamstuff" ], - "symbol": "=", - "color": "yellow", - "looks_like": "tailor_portfolio", - "use_action": { "type": "learn_spell", "spells": [ "summon_battery_gun" ] } - }, - { - "id": "ray_weapon_diagrams", - "type": "GENERIC", - "category": "artifacts", - "name": { "str": "ray weapon schematics", "str_pl": "copies of ray weapon schematics" }, - "description": "These are designs you created in a manic episode. They build upon the ray diagrams you had found, and in your own handwriting is also written 'DEATH RAY'. Well, that's promising I guess.", - "weight": "600 g", - "volume": "450ml", - "price": 10000, - "price_postapoc": 300, - "material": [ "forged_dreamstuff" ], - "symbol": "=", - "color": "light_cyan", - "looks_like": "tailor_portfolio", - "use_action": { "type": "learn_spell", "spells": [ "summon_ray_gun" ] } - }, - { - "id": "wolf_mask", - "type": "GENERIC", - "category": "artifacts", - "name": { "str": "wolf's mask" }, - "description": "Huge, respirator-like mask, which covers the whole head, except the right eye. The tubes are not connected to anything, so you can't breath with the mask on your face.", - "weight": "405 g", - "volume": "1479 ml", - "price": 4000, - "price_postapoc": 50, - "to_hit": -3, - "material": [ "forged_dreamstuff" ], - "symbol": "[", - "looks_like": "mask_gas", - "color": "dark_gray", - "use_action": { "type": "learn_spell", "spells": [ "summon_mace_magic" ] } - }, { "id": "firmament_driver_book", "type": "GENERIC", "category": "artifacts", "name": { "str": "String Theory For Dummies", "str_pl": "copies of String Theory For Dummies" }, - "description": "A small hardcover book, that describes a version of string theory that seems quite preposterous.", + "description": "A small hardcover book describing a version of string theory that seems quite preposterous.", "weight": "77 g", "volume": "334 ml", "price": 1000, @@ -64,62 +15,16 @@ "use_action": { "type": "learn_spell", "spells": [ "firmament_driver" ] } }, { - "id": "syringe_artifact", - "type": "GENERIC", - "category": "artifacts", - "name": { "str": "syringe with vermilion liquid", "str_pl": "syringes with vermilion liquid" }, - "description": "Small syringe filled with dark red liquid. The piston seems to be glued, and you can't move it.", - "weight": "5 g", - "volume": "10 ml", - "price": 10000, - "price_postapoc": 300, - "material": [ "forged_dreamstuff" ], - "symbol": ".", - "color": "red", - "use_action": { "type": "learn_spell", "spells": [ "summon_bio_launcher" ] } - }, - { - "id": "money_strap_magic", - "type": "GENERIC", - "category": "artifacts", - "name": { "str": "odd hundred-dollar strap" }, - "description": "A hundred-dollar bills held together by a mustard currency strap. Each bill contain a sequence of symbols you can't understand, but can feel pounding inside your skull.", - "looks_like": "money_strap_one", - "weight": "100 g", - "volume": "113 ml", - "material": [ "forged_dreamstuff" ], - "color": "green", - "symbol": "$", - "use_action": { "type": "learn_spell", "spells": [ "summon_rip_ticket" ] } - }, - { - "id": "foil_hat", - "type": "GENERIC", - "category": "artifacts", - "name": { "str": "tin foil hat" }, - "description": "Tiny hat, made from thin tin foil layer and a strainer. You can't wear it, because it's too small for your head.", - "weight": "6 g", - "volume": "89 ml", - "price": 600, - "price_postapoc": 10, - "material": [ "forged_dreamstuff" ], - "symbol": "[", - "looks_like": "scarf", - "color": "white", - "use_action": { "type": "learn_spell", "spells": [ "summon_helmet_inventor" ] } - }, - { - "id": "book_inventor", + "id": "artifact_cable_whip", "type": "GENERIC", "category": "artifacts", - "name": { "str": "video game disc" }, - "description": "A small box with a video game disc. The cover shows a man, surrounded by monsters, who's shooting the monsters with a gun in each hand. There is a compact disc inside, but you can't pick it up.", - "//": "No, its 'Crimsonland'", - "weight": "60 g", - "volume": "250 ml", + "name": { "str": "taped jumper cable" }, + "description": "A 3-ft (or about 1 m) jumper cable, wrapped with blue insulating tape. Both sides has lack of connectors.", + "volume": "500 ml", + "weight": "75 g", "material": [ "forged_dreamstuff" ], - "symbol": "?", - "looks_like": "textbook_anarch", - "use_action": { "type": "learn_spell", "spells": [ "summon_ion_gun" ] } + "symbol": "I", + "looks_like": "jumper_cable", + "use_action": { "type": "learn_spell", "spells": [ "cable_whip" ] } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/tools.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/tools.json new file mode 100644 index 000000000..db5995fb6 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/tools.json @@ -0,0 +1,184 @@ +[ + { + "id": "tailors_kit", + "type": "TOOL", + "name": { "str": "tailor's kit" }, + "description": "This is a high quality kit consisting of a variety of needles, some wooden spools for thread, some small scissors, and an awl. Use a tailor's kit to customize your clothing and armor. This uses your tailoring skill.", + "weight": "100 g", + "volume": "500 ml", + "price": 1000, + "price_postapoc": 1000, + "to_hit": -2, + "material": [ "wood", "steel" ], + "symbol": ";", + "color": "red", + "ammo": [ "thread" ], + "sub": "sewing_kit", + "charges_per_use": 1, + "qualities": [ [ "SEW", 4 ], [ "SEW_CURVED", 1 ], [ "KNIT", 1 ], [ "LEATHER_AWL", 2 ], [ "CUT", 2 ], [ "FABRIC_CUT", 2 ] ], + "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "thread": 400 } } ], + "use_action": [ + { + "type": "repair_item", + "item_action_type": "repair_fabric", + "materials": [ + "cotton", + "leather", + "lycra", + "nylon", + "wool", + "fur", + "faux_fur", + "nomex", + "kevlar", + "kevlar_layered", + "neoprene", + "gutskin", + "canvas", + "fae_fur" + ], + "skill": "tailor", + "tool_quality": 1, + "cost_scaling": 0.1, + "move_cost": 800 + } + ], + "flags": [ "ALLOWS_REMOTE_USE" ] + }, + { + "id": "dreamforged_hacksaw", + "type": "TOOL", + "copy-from": "hacksaw", + "name": { "str": "dreamforged hacksaw" }, + "description": "A sturdy saw, useful for cutting through metal objects. Forged from dreamdross, which makes it much lighter.", + "proportional": { "weight": 0.25, "melee_damage": { "bash": 0.25 } }, + "price": 0, + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "symbol": ";", + "color": "light_gray" + }, + { + "id": "dreamforged_hammer", + "type": "TOOL", + "copy-from": "hammer", + "name": { "str": "dreamforged hammer" }, + "description": "Classic carpenter hammer with claw. Forged from dreamdross, which makes it much lighter.", + "proportional": { "weight": 0.75, "melee_damage": { "bash": 0.25 } }, + "//": "0.75 for both metal and wooden parts", + "price": 0, + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "symbol": ";", + "color": "light_gray" + }, + { + "id": "dreamforged_halligan", + "type": "TOOL", + "copy-from": "halligan", + "name": { "str": "dreamforged Halligan bar" }, + "description": "Small tool for breaking into closed locations, forged from dreamdross, which makes it really light.", + "proportional": { "weight": 0.25, "melee_damage": { "bash": 0.25 } }, + "price": 0, + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "symbol": ";", + "color": "light_gray" + }, + { + "id": "dreamforged_pliers_locking", + "type": "TOOL", + "copy-from": "pliers_locking", + "name": { "str_sp": "dreamforged locking pliers" }, + "description": "Strong pilers with adjustable mechanism. Forged entirely from dreamdross, which makes it much lighter.", + "proportional": { "weight": 0.25, "melee_damage": { "bash": 0.25 } }, + "price": 0, + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "symbol": ";", + "color": "light_gray" + }, + { + "id": "dreamforged_pickaxe", + "type": "TOOL", + "copy-from": "pickaxe", + "name": { "str": "dreamforged pickaxe" }, + "description": "Classic pickaxe, used for digging. Forged from dreamdross, which makes it really light, albeit a bit weaker.", + "proportional": { "weight": 0.3, "melee_damage": { "bash": 0.25 } }, + "price": 0, + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "use_action": [ "PICKAXE" ], + "symbol": ";", + "color": "light_gray" + }, + { + "id": "dreamforged_picklocks", + "type": "TOOL", + "copy-from": "picklocks", + "name": { "str": "dreamforged locksmith kit" }, + "description": "A set of light and sturdy dreamforged lockpicks and wrenches.", + "proportional": { "weight": 0.25 }, + "ascii_picture": "picklocks", + "material": [ "forged_dreamstuff" ], + "symbol": ";", + "color": "light_gray", + "qualities": [ [ "LOCKPICK", 10 ] ] + }, + { + "id": "dreamforged_scalpel", + "type": "TOOL", + "copy-from": "scalpel", + "name": { "str": "dreamforged scalpel" }, + "description": "A very sharp medical knife for surgeon operations. Almost weightless.", + "proportional": { "weight": 0.25 }, + "price": 0, + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "symbol": ";", + "color": "light_gray" + }, + { + "id": "dreamforged_e_tool", + "type": "TOOL", + "copy-from": "e_tool", + "name": { "str": "dreamforged entrenching tool" }, + "description": "Collapsible spade to dig small pits, forged from dreamdross, to make it even lighter than before.", + "proportional": { "weight": 0.25 }, + "price": 0, + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "symbol": ";", + "color": "light_gray" + }, + { + "id": "dreamforged_ax", + "type": "TOOL", + "copy-from": "ax", + "name": { "str": "dreamforged axe" }, + "description": "Large, two hand axe to chop some wood. Light, but still useful.", + "proportional": { "weight": 0.4, "melee_damage": { "bash": 0.25, "cut": 0.5 } }, + "price": 0, + "price_postapoc": 0, + "material": [ "forged_dreamstuff" ], + "symbol": ";", + "color": "light_gray" + }, + { + "id": "sacrifice_table", + "type": "TOOL", + "category": "tools", + "name": { "str": "sacrifice table" }, + "description": "A magickal space where offerings are sacrificed and transformed.", + "weight": "1000 g", + "volume": "5000ml", + "price": 2000, + "price_postapoc": 750, + "to_hit": -5, + "material": [ "stone" ], + "looks_like": "glass_tube_small", + "symbol": "N", + "color": "light_blue", + "qualities": [ [ "SACRIFICE", 1 ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/items/vehicle_parts.json b/data/Mainline_mods/Mods/Xedra_Evolved/items/vehicle_parts.json new file mode 100644 index 000000000..d3986cb21 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/items/vehicle_parts.json @@ -0,0 +1,14 @@ +[ + { + "type": "GENERIC", + "id": "unloaded_wave_rider_engine", + "name": "elemental wave rider engine", + "symbol": "v", + "description": "An elementally manifested combustion engine. Despite operating entirely off of mana rather than normal fuel, it otherwise functions exactly as a conventional internal combustion engine.", + "volume": "2 L", + "weight": "10 kg", + "color": "yellow", + "material": [ "steel" ], + "price": 800000 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/jmath.json b/data/Mainline_mods/Mods/Xedra_Evolved/jmath.json new file mode 100644 index 000000000..a7cfb4a5b --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/jmath.json @@ -0,0 +1,65 @@ +[ + { + "type": "jmath_function", + "id": "dreamer_level", + "num_args": 1, + "return": "(u_val('intelligence') + u_val('perception')) * (_0)" + }, + { + "type": "jmath_function", + "id": "eater_level", + "num_args": 1, + "return": "(u_val('strength') + u_val('dexterity')) * (_0)" + }, + { + "type": "jmath_function", + "id": "spell_time", + "num_args": 1, + "//": "used to transform the variable time (the smallest measure is 1 second) to the spell time (the smallest measure is 1 move, 1 second = 100 moves)", + "return": "_0 * 100" + }, + { + "type": "jmath_function", + "id": "spell_exp", + "num_args": 1, + "//": "accept a spell level, return the amount of XP spell required at this level. Not used anywhere because of #66728 (comment)", + "return": "2.71828182^(0.146661*(_0+62.5))-6200" + }, + { + "type": "jmath_function", + "id": "spell_exp_diff", + "num_args": 1, + "//": "accept the spell level, return a difference in experience between spell's current level and the next level", + "return": "spell_exp(_0 + 1) - spell_exp(_0)" + }, + { + "type": "jmath_function", + "id": "int_to_level", + "num_args": 1, + "return": "(u_val('intelligence') * 1.5) * (_0)" + }, + { + "type": "jmath_function", + "id": "dex_to_level", + "num_args": 1, + "return": "(u_val('dexterity') * 1.5) * (_0)" + }, + { + "type": "jmath_function", + "id": "per_to_level", + "num_args": 1, + "return": "(u_val('perception') * 1.5) * (_0)" + }, + { + "type": "jmath_function", + "id": "str_to_level", + "num_args": 1, + "return": "(u_val('strength') * 1.5) * (_0)" + }, + { + "type": "jmath_function", + "id": "scaling_factor", + "num_args": 1, + "return": "( ( _0 + 10) / 20 )" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/bonum_collis.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/bonum_collis.json new file mode 100644 index 000000000..7b504f532 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/bonum_collis.json @@ -0,0 +1,104 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": "boann_sidhe_island", + "object": { + "fill_ter": "t_floor", + "rows": [ + ".......///////////......", + "......../////////.......", + "......9..///////..9.....", + "..9......./////.....9...", + "..........////..........", + "....9......//....9..9...", + "...........//...........", + "..........|++|......9...", + "...9.....|| ||.........", + "........|| g||........", + ".......|| g||....9..", + "....||||X g||......", + "..9.0 C 0.....9", + "....||||X 0.9....", + "....9.|| g||......", + ".......|| g||.....9.", + "9...%...|| g||........", + ".........|| ||.....9...", + "...9......|00|..........", + ".......9.........9....9.", + "...........9............", + "......9...........%.....", + "..........9...9.....9...", + ".9......................" + ], + "terrain": { + " ": "t_floor", + ".": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt", "t_shrub" ], + "%": [ [ "t_grass", 5 ], "t_dirt" ], + "/": "t_rock_floor", + "|": "t_rock_green", + "<": "t_stairs_up", + ">": "t_stairs_down", + "0": "t_window_bars_noglass", + "+": "t_door_red_c", + "9": [ + [ "t_tree_pomegranate", 5 ], + [ "t_tree_fig", 5 ], + [ "t_tree", 5 ], + [ "t_tree_elm", 3 ], + "t_tree_dead", + "t_tree_apple", + [ "t_tree_hawthorn", 5 ], + "t_tree_birch", + [ "t_tree_willow", 3 ] + ] + }, + "furniture": { + "%": [ [ "f_boulder_medium", 2 ], [ "f_boulder_small", 1 ], [ "f_boulder_large", 3 ] ], + "h": "f_chair", + "X": "xe_f_balefire", + "t": "f_table", + "7": "f_bench", + "C": "xe_f_throne", + "g": "f_statue" + }, + "place_npcs": [ { "class": "boann", "x": 12, "y": 13 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "boann_sidhe_z1", + "object": { + "fill_ter": "t_open_air", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " .... ", + " ...... ", + " ........ ", + " .......... ", + " .............. ", + " .............. ", + " .............. ", + " ............ ", + " .......... ", + " ........ ", + " ...... ", + " .... ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_flat_roof" } + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/cave.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/cave.json index 3d3ff4eef..1922ad296 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/cave.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/cave.json @@ -68,5 +68,50 @@ "method": "json", "nested_mapgen_id": "goblin_spider_cocoon", "object": { "mapgensize": [ 1, 1 ], "place_item": [ { "item": "corpse", "x": 0, "y": 0 } ] } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "cave_rat" ], + "object": { + "fill_ter": "t_rock_floor", + "rotation": [ 0, 3 ], + "rows": [ + "........................", + ".........%%%%%%%........", + "........%%%%%%%%%.......", + ".......%%%.....%%%......", + "......%%%%.lll.%%%%.....", + ".....%%%%%.l l.%%%%%....", + "....%%%%%%.l l.%%%%%%...", + "...%%%||||.. ..||||%%%..", + "..%%%||||||. .||||||%%%.", + ".%%%%||||rr rr||||%%%.", + ".%%%%||||rr rr||||%%%.", + ".%%%%|||| ||||%%%.", + ".%%%%|||| K ||||%%%.", + ".%%%%|||| ||||%%%.", + ".%%%%||||rr rr||||%%%.", + "..%%%||||rr rr||||%%%.", + "...%%%||||| |||||%%%..", + "....%%%|||| ||||%%%...", + ".....%%%%%% %%%%%%....", + "......%%%%%%<%%%%%%.....", + ".......%%%%%%%%%%%......", + "........%%%%%%%%%.......", + ".........%%%%%%%........", + "........................" + ], + "terrain": { + " ": "t_rock_floor", + ".": "t_rock", + "|": [ [ "t_rock", 20 ], [ "t_rock_floor", 80 ] ], + "%": [ "t_rock", "t_rock_floor" ], + "<": "t_slope_up" + }, + "furniture": { }, + "monster": { "K": { "monster": "mon_rat_king" }, "r": { "monster": "mon_sewer_rat" } }, + "items": { "l": { "item": "gobag_contents", "chance": 75 } } + } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/genius_locum.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/genius_locum.json new file mode 100644 index 000000000..836cd8891 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/genius_locum.json @@ -0,0 +1,527 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "ierde_genius_loci_NW", "ierde_genius_loci_NE" ], [ "ierde_genius_loci_SW", "ierde_genius_loci_SE" ] ], + "object": { + "fill_ter": "t_region_groundcover_urban", + "rows": [ + " ", + " ", + " ", + " 2 2 ", + " ||||||||||||||||||||| |||||||||||||||||||||| ", + " | | | | | | | ", + " | ||| | ||| ||| | ||||||| | ||| | ||| ||| | ", + " | | | | | | | | | | | | ", + " | |||||||| ||| ||| | ||||||||| | ||| | | ||| ", + " | | | | | | | | | | | | ", + " ||| | | ||||||||| ||||||| | ||||||||| ||| | ", + " | | | | | | | | | | | ", + " | | | |||||| ||||| | ||||| | | | | ||||||||| ", + " | | | | | | | | | | | ", + " |||||||| | ||| ||||| | ||| ||||| | ||| | | | ", + " | | | | | | | | | ", + " | |||||||| ||||| | ||||| ||||| ||||| ||||| | ", + " | | | | | | | | ", + " |||||||||| | ||||||||||||||| | | ||||||| ||| ", + " | | | | | | | | | | ", + " | | |||| | ||| | ######### | ||||| ||| | | | ", + " | | | | | #4.....4# | | | | | | | ", + " | |--------- | | #...X...# | ||||||| | ||| |2 ", + " | | | | | | #.......# | | | ", + " | |||----- | | #.4...4.# ||| ||| |||||||| ", + " | | | | | #.......# | | | | ", + " | | |-----|||||| #bb...bb# | ||| ||| ||||| |2 ", + " | | | | #### #### | | | | ", + " | |||||| ||| | | 31 13 ||| ||| ||||| | | ", + " | | | | |2 2| | | | | | | ", + " |||||| | | ||| |||||| |||||| ||| | | | | | | ", + " | | | | | | | | | | | | ", + "2| | | | ||| | ||| ||||--------||||||| ||| | ", + " | | | | | | ----- | | | ", + " ||| ||| | ||||| |||||----------|| ||||| ||| ", + " | | | | | | | | ", + "2| |||| | | ||||||||||||| ||||| | ||| ||||| | ", + " | | | | | | | | | | | | | ", + " ||| ||-----| ||| | | | | | | ||||| | | ||| | ", + " | | ---- | | | | | | | | ", + " | ||||------|||||||||| ||||||| |----- | | | ", + " | | | | | | --------- | | ", + " | || | | ||||| | ||| ||||| | ----------||| | ", + " | | | | | | | | | | | ", + " || | ||||||||||| | ||| | ||| || | |||| | ||| ", + " | | | | | | | | ", + " ||||||||||||||||||||| ||||||||||||||||||||| ", + " 2 2 " + ], + "terrain": { + " ": "t_region_groundcover_urban", + ".": "t_rock_floor", + "X": "t_rock_floor", + "b": "t_rock_floor", + "1": "t_rock_floor", + "-": [ [ "t_region_groundcover_urban", 5 ], "t_region_tree_shade", 2 ], + "#": "t_rock_wall" + }, + "furniture": { + "|": "f_hedge_tall", + "b": "f_bench", + "h": "f_bench", + "X": "f_elemental_altar", + "1": "f_brazier", + "2": "f_topiary_animal", + "3": "f_topiary_abstract", + "4": "f_topiary_dragon" + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "undine_genius_loci_NW", "undine_genius_loci_NE" ], [ "undine_genius_loci_SW", "undine_genius_loci_SE" ] ], + "object": { + "fill_ter": "t_region_groundcover_urban", + "rows": [ + " ", + " ", + " ", + " 2 2 ", + " ||||||||||||||||||||| |||||||||||||||||||||| ", + " | | | | | | | ", + " | ||| | ||| ||| | ||||||| | ||| | ||| ||| | ", + " | | | | | | | | | | | | ", + " | |||||||| ||| ||| | ||||||||| | ||| | | ||| ", + " | | | | | | | | | | | | ", + " ||| | | ||||||||| ||||||| | ||||||||| ||| | ", + " | | | | | | | | | | | ", + " | | | |||||| ||||| | ||||| | | | | ||||||||| ", + " | | | | | | | | | | | ", + " |||||||| | ||| ||||| | ||| ||||| | ||| | | | ", + " | | | | | | | | | ", + " | |||||||| ||||| | ||||| ||||| ||||| ||||| | ", + " | | | | | | | | ", + " |||||||||| | ||||||||||||||| | | ||||||| ||| ", + " | | | | | | | | | | ", + " | | |||| | ||| | ######### | ||||| ||| | | | ", + " | | | | | #4.....4# | | | | | | | ", + " | |--------- | | #...X...# | ||||||| | ||| |2 ", + " | | | | | | #.......# | | | ", + " | |||----- | | #.4...4.# ||| ||| |||||||| ", + " | | | | | #.......# | | | | ", + " | | |-----|||||| #bb...bb# | ||| ||| ||||| |2 ", + " | | | | #### #### | | | | ", + " | |||||| ||| | | 31 13 ||| ||| ||||| | | ", + " | | | | |2 2| | | | | | | ", + " |||||| | | ||| |||||| |||||| ||| | | | | | | ", + " | | | | | | | | | | | | ", + "2| | | | ||| | ||| ||||--------||||||| ||| | ", + " | | | | | | ----- | | | ", + " ||| ||| | ||||| |||||----------|| ||||| ||| ", + " | | | | | | | | ", + "2| |||| | | ||||||||||||| ||||| | ||| ||||| | ", + " | | | | | | | | | | | | | ", + " ||| ||-----| ||| | | | | | | ||||| | | ||| | ", + " | | ---- | | | | | | | | ", + " | ||||------|||||||||| ||||||| |----- | | | ", + " | | | | | | --------- | | ", + " | || | | ||||| | ||| ||||| | ----------||| | ", + " | | | | | | | | | | | ", + " || | ||||||||||| | ||| | ||| || | |||| | ||| ", + " | | | | | | | | ", + " ||||||||||||||||||||| ||||||||||||||||||||| ", + " 2 2 " + ], + "terrain": { + " ": "t_region_groundcover_urban", + ".": "t_rock_floor", + "X": "t_rock_floor", + "b": "t_rock_floor", + "1": "t_rock_floor", + "-": [ [ "t_region_groundcover_urban", 5 ], "t_region_tree_shade", 2 ], + "#": "t_rock_wall" + }, + "furniture": { + "|": "f_hedge_tall", + "b": "f_bench", + "h": "f_bench", + "X": "f_elemental_altar", + "1": "f_brazier", + "2": "f_topiary_animal", + "3": "f_topiary_abstract", + "4": "f_topiary_dragon" + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "arvore_genius_loci_NW", "arvore_genius_loci_NE" ], [ "arvore_genius_loci_SW", "arvore_genius_loci_SE" ] ], + "object": { + "fill_ter": "t_region_groundcover_urban", + "rows": [ + " ", + " ", + " ", + " 2 2 ", + " ||||||||||||||||||||| |||||||||||||||||||||| ", + " | | | | | | | ", + " | ||| | ||| ||| | ||||||| | ||| | ||| ||| | ", + " | | | | | | | | | | | | ", + " | |||||||| ||| ||| | ||||||||| | ||| | | ||| ", + " | | | | | | | | | | | | ", + " ||| | | ||||||||| ||||||| | ||||||||| ||| | ", + " | | | | | | | | | | | ", + " | | | |||||| ||||| | ||||| | | | | ||||||||| ", + " | | | | | | | | | | | ", + " |||||||| | ||| ||||| | ||| ||||| | ||| | | | ", + " | | | | | | | | | ", + " | |||||||| ||||| | ||||| ||||| ||||| ||||| | ", + " | | | | | | | | ", + " |||||||||| | ||||||||||||||| | | ||||||| ||| ", + " | | | | | | | | | | ", + " | | |||| | ||| | ######### | ||||| ||| | | | ", + " | | | | | #4.....4# | | | | | | | ", + " | |--------- | | #...X...# | ||||||| | ||| |2 ", + " | | | | | | #.......# | | | ", + " | |||----- | | #.4...4.# ||| ||| |||||||| ", + " | | | | | #.......# | | | | ", + " | | |-----|||||| #bb...bb# | ||| ||| ||||| |2 ", + " | | | | #### #### | | | | ", + " | |||||| ||| | | 31 13 ||| ||| ||||| | | ", + " | | | | |2 2| | | | | | | ", + " |||||| | | ||| |||||| |||||| ||| | | | | | | ", + " | | | | | | | | | | | | ", + "2| | | | ||| | ||| ||||--------||||||| ||| | ", + " | | | | | | ----- | | | ", + " ||| ||| | ||||| |||||----------|| ||||| ||| ", + " | | | | | | | | ", + "2| |||| | | ||||||||||||| ||||| | ||| ||||| | ", + " | | | | | | | | | | | | | ", + " ||| ||-----| ||| | | | | | | ||||| | | ||| | ", + " | | ---- | | | | | | | | ", + " | ||||------|||||||||| ||||||| |----- | | | ", + " | | | | | | --------- | | ", + " | || | | ||||| | ||| ||||| | ----------||| | ", + " | | | | | | | | | | | ", + " || | ||||||||||| | ||| | ||| || | |||| | ||| ", + " | | | | | | | | ", + " ||||||||||||||||||||| ||||||||||||||||||||| ", + " 2 2 " + ], + "terrain": { + " ": "t_region_groundcover_urban", + ".": "t_rock_floor", + "X": "t_rock_floor", + "b": "t_rock_floor", + "1": "t_rock_floor", + "-": [ [ "t_region_groundcover_urban", 5 ], "t_region_tree_shade", 2 ], + "#": "t_rock_wall" + }, + "furniture": { + "|": "f_hedge_tall", + "b": "f_bench", + "h": "f_bench", + "X": "f_elemental_altar", + "1": "f_brazier", + "2": "f_topiary_animal", + "3": "f_topiary_abstract", + "4": "f_topiary_dragon" + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "salamander_genius_loci_NW", "salamander_genius_loci_NE" ], + [ "salamander_genius_loci_SW", "salamander_genius_loci_SE" ] + ], + "object": { + "fill_ter": "t_region_groundcover_urban", + "rows": [ + " ", + " ", + " ", + " 2 2 ", + " ||||||||||||||||||||| |||||||||||||||||||||| ", + " | | | | | | | ", + " | ||| | ||| ||| | ||||||| | ||| | ||| ||| | ", + " | | | | | | | | | | | | ", + " | |||||||| ||| ||| | ||||||||| | ||| | | ||| ", + " | | | | | | | | | | | | ", + " ||| | | ||||||||| ||||||| | ||||||||| ||| | ", + " | | | | | | | | | | | ", + " | | | |||||| ||||| | ||||| | | | | ||||||||| ", + " | | | | | | | | | | | ", + " |||||||| | ||| ||||| | ||| ||||| | ||| | | | ", + " | | | | | | | | | ", + " | |||||||| ||||| | ||||| ||||| ||||| ||||| | ", + " | | | | | | | | ", + " |||||||||| | ||||||||||||||| | | ||||||| ||| ", + " | | | | | | | | | | ", + " | | |||| | ||| | ######### | ||||| ||| | | | ", + " | | | | | #4.....4# | | | | | | | ", + " | |--------- | | #...X...# | ||||||| | ||| |2 ", + " | | | | | | #.......# | | | ", + " | |||----- | | #.4...4.# ||| ||| |||||||| ", + " | | | | | #.......# | | | | ", + " | | |-----|||||| #bb...bb# | ||| ||| ||||| |2 ", + " | | | | #### #### | | | | ", + " | |||||| ||| | | 31 13 ||| ||| ||||| | | ", + " | | | | |2 2| | | | | | | ", + " |||||| | | ||| |||||| |||||| ||| | | | | | | ", + " | | | | | | | | | | | | ", + "2| | | | ||| | ||| ||||--------||||||| ||| | ", + " | | | | | | ----- | | | ", + " ||| ||| | ||||| |||||----------|| ||||| ||| ", + " | | | | | | | | ", + "2| |||| | | ||||||||||||| ||||| | ||| ||||| | ", + " | | | | | | | | | | | | | ", + " ||| ||-----| ||| | | | | | | ||||| | | ||| | ", + " | | ---- | | | | | | | | ", + " | ||||------|||||||||| ||||||| |----- | | | ", + " | | | | | | --------- | | ", + " | || | | ||||| | ||| ||||| | ----------||| | ", + " | | | | | | | | | | | ", + " || | ||||||||||| | ||| | ||| || | |||| | ||| ", + " | | | | | | | | ", + " ||||||||||||||||||||| ||||||||||||||||||||| ", + " 2 2 " + ], + "terrain": { + " ": "t_region_groundcover_urban", + ".": "t_rock_floor", + "X": "t_rock_floor", + "b": "t_rock_floor", + "1": "t_rock_floor", + "-": [ [ "t_region_groundcover_urban", 5 ], "t_region_tree_shade", 2 ], + "#": "t_rock_wall" + }, + "furniture": { + "|": "f_hedge_tall", + "b": "f_bench", + "h": "f_bench", + "X": "f_elemental_altar", + "1": "f_brazier", + "2": "f_topiary_animal", + "3": "f_topiary_abstract", + "4": "f_topiary_dragon" + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "sylph_genius_loci_NW", "sylph_genius_loci_NE" ], [ "sylph_genius_loci_SW", "sylph_genius_loci_SE" ] ], + "object": { + "fill_ter": "t_region_groundcover_urban", + "rows": [ + " ", + " ", + " ", + " 2 2 ", + " ||||||||||||||||||||| |||||||||||||||||||||| ", + " | | | | | | | ", + " | ||| | ||| ||| | ||||||| | ||| | ||| ||| | ", + " | | | | | | | | | | | | ", + " | |||||||| ||| ||| | ||||||||| | ||| | | ||| ", + " | | | | | | | | | | | | ", + " ||| | | ||||||||| ||||||| | ||||||||| ||| | ", + " | | | | | | | | | | | ", + " | | | |||||| ||||| | ||||| | | | | ||||||||| ", + " | | | | | | | | | | | ", + " |||||||| | ||| ||||| | ||| ||||| | ||| | | | ", + " | | | | | | | | | ", + " | |||||||| ||||| | ||||| ||||| ||||| ||||| | ", + " | | | | | | | | ", + " |||||||||| | ||||||||||||||| | | ||||||| ||| ", + " | | | | | | | | | | ", + " | | |||| | ||| | ######### | ||||| ||| | | | ", + " | | | | | #4.....4# | | | | | | | ", + " | |--------- | | #...X...# | ||||||| | ||| |2 ", + " | | | | | | #.......# | | | ", + " | |||----- | | #.4...4.# ||| ||| |||||||| ", + " | | | | | #.......# | | | | ", + " | | |-----|||||| #bb...bb# | ||| ||| ||||| |2 ", + " | | | | #### #### | | | | ", + " | |||||| ||| | | 31 13 ||| ||| ||||| | | ", + " | | | | |2 2| | | | | | | ", + " |||||| | | ||| |||||| |||||| ||| | | | | | | ", + " | | | | | | | | | | | | ", + "2| | | | ||| | ||| ||||--------||||||| ||| | ", + " | | | | | | ----- | | | ", + " ||| ||| | ||||| |||||----------|| ||||| ||| ", + " | | | | | | | | ", + "2| |||| | | ||||||||||||| ||||| | ||| ||||| | ", + " | | | | | | | | | | | | | ", + " ||| ||-----| ||| | | | | | | ||||| | | ||| | ", + " | | ---- | | | | | | | | ", + " | ||||------|||||||||| ||||||| |----- | | | ", + " | | | | | | --------- | | ", + " | || | | ||||| | ||| ||||| | ----------||| | ", + " | | | | | | | | | | | ", + " || | ||||||||||| | ||| | ||| || | |||| | ||| ", + " | | | | | | | | ", + " ||||||||||||||||||||| ||||||||||||||||||||| ", + " 2 2 " + ], + "terrain": { + " ": "t_region_groundcover_urban", + ".": "t_rock_floor", + "X": "t_rock_floor", + "b": "t_rock_floor", + "1": "t_rock_floor", + "-": [ [ "t_region_groundcover_urban", 5 ], "t_region_tree_shade", 2 ], + "#": "t_rock_wall" + }, + "furniture": { + "|": "f_hedge_tall", + "b": "f_bench", + "h": "f_bench", + "X": "f_elemental_altar", + "1": "f_brazier", + "2": "f_topiary_animal", + "3": "f_topiary_abstract", + "4": "f_topiary_dragon" + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "homullus_genius_loci_NW", "homullus_genius_loci_NE" ], [ "homullus_genius_loci_SW", "homullus_genius_loci_SE" ] ], + "object": { + "fill_ter": "t_region_groundcover_urban", + "rows": [ + " ", + " ", + " ", + " 2 2 ", + " ||||||||||||||||||||| |||||||||||||||||||||| ", + " | | | | | | | ", + " | ||| | ||| ||| | ||||||| | ||| | ||| ||| | ", + " | | | | | | | | | | | | ", + " | |||||||| ||| ||| | ||||||||| | ||| | | ||| ", + " | | | | | | | | | | | | ", + " ||| | | ||||||||| ||||||| | ||||||||| ||| | ", + " | | | | | | | | | | | ", + " | | | |||||| ||||| | ||||| | | | | ||||||||| ", + " | | | | | | | | | | | ", + " |||||||| | ||| ||||| | ||| ||||| | ||| | | | ", + " | | | | | | | | | ", + " | |||||||| ||||| | ||||| ||||| ||||| ||||| | ", + " | | | | | | | | ", + " |||||||||| | ||||||||||||||| | | ||||||| ||| ", + " | | | | | | | | | | ", + " | | |||| | ||| | ######### | ||||| ||| | | | ", + " | | | | | #4.....4# | | | | | | | ", + " | |--------- | | #...X...# | ||||||| | ||| |2 ", + " | | | | | | #.......# | | | ", + " | |||----- | | #.4...4.# ||| ||| |||||||| ", + " | | | | | #.......# | | | | ", + " | | |-----|||||| #bb...bb# | ||| ||| ||||| |2 ", + " | | | | #### #### | | | | ", + " | |||||| ||| | | 31 13 ||| ||| ||||| | | ", + " | | | | |2 2| | | | | | | ", + " |||||| | | ||| |||||| |||||| ||| | | | | | | ", + " | | | | | | | | | | | | ", + "2| | | | ||| | ||| ||||--------||||||| ||| | ", + " | | | | | | ----- | | | ", + " ||| ||| | ||||| |||||----------|| ||||| ||| ", + " | | | | | | | | ", + "2| |||| | | ||||||||||||| ||||| | ||| ||||| | ", + " | | | | | | | | | | | | | ", + " ||| ||-----| ||| | | | | | | ||||| | | ||| | ", + " | | ---- | | | | | | | | ", + " | ||||------|||||||||| ||||||| |----- | | | ", + " | | | | | | --------- | | ", + " | || | | ||||| | ||| ||||| | ----------||| | ", + " | | | | | | | | | | | ", + " || | ||||||||||| | ||| | ||| || | |||| | ||| ", + " | | | | | | | | ", + " ||||||||||||||||||||| ||||||||||||||||||||| ", + " 2 2 " + ], + "terrain": { + " ": "t_region_groundcover_urban", + ".": "t_rock_floor", + "X": "t_rock_floor", + "b": "t_rock_floor", + "1": "t_rock_floor", + "-": [ [ "t_region_groundcover_urban", 5 ], "t_region_tree_shade", 2 ], + "#": "t_rock_wall" + }, + "furniture": { + "|": "f_hedge_tall", + "b": "f_bench", + "h": "f_bench", + "X": "f_elemental_altar", + "1": "f_brazier", + "2": "f_topiary_animal", + "3": "f_topiary_abstract", + "4": "f_topiary_dragon" + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "genius_loci_NW_roof", "genius_loci_NE_roof" ], [ "genius_loci_SW_roof", "genius_loci_SE_roof" ] ], + "object": { + "fill_ter": "t_shingle_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ......... ", + " ......... ", + " ...ooo... ", + " ...ooo... ", + " ...ooo... ", + " ......... ", + " ......... ", + " ......... ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_shingle_flat_roof" } + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/map_extras.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/map_extras.json index 92c0a04dc..2818a13f6 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/map_extras.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/map_extras.json @@ -78,7 +78,7 @@ "id": "mx_spider_shimmering", "type": "map_extra", "name": { "str": "Spiders" }, - "description": "This area is covered with webs. Probably spiders are nearby", + "description": "This area is covered with webs. There probably are spiders nearby.", "generator": { "generator_method": "update_mapgen", "generator_id": "mx_spider_shimmering" }, "min_max_zlevel": [ -2, 0 ], "sym": "S", @@ -89,7 +89,7 @@ "id": "mx_goblin_spider", "type": "map_extra", "name": { "str": "Spiders" }, - "description": "This area is covered with webs. Probably spiders are nearby", + "description": "This area is covered with webs. There probably are spiders nearby.", "generator": { "generator_method": "update_mapgen", "generator_id": "mx_goblin_spider" }, "min_max_zlevel": [ -2, 0 ], "sym": "S", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/multitile_city_buildings.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/multitile_city_buildings.json index 1d7b6df6d..e47225a47 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/multitile_city_buildings.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/multitile_city_buildings.json @@ -8,5 +8,36 @@ { "point": [ 0, 0, 1 ], "overmap": "safe_house_roof_north" }, { "point": [ 0, 0, -1 ], "overmap": "safe_house_basement_north" } ] + }, + { + "type": "city_building", + "id": "vampire_cathedral", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 6 ], "overmap": "cathedralv_7_NW_north" }, + { "point": [ 1, 0, 6 ], "overmap": "cathedralv_7_NE_north" }, + { "point": [ 0, 0, 5 ], "overmap": "cathedralv_6_NW_north" }, + { "point": [ 1, 0, 5 ], "overmap": "cathedralv_6_NE_north" }, + { "point": [ 0, 0, 4 ], "overmap": "cathedralv_5_NW_north" }, + { "point": [ 1, 0, 4 ], "overmap": "cathedralv_5_NE_north" }, + { "point": [ 0, 0, 3 ], "overmap": "cathedralv_4_NW_north" }, + { "point": [ 1, 0, 3 ], "overmap": "cathedralv_4_NE_north" }, + { "point": [ 0, 0, 2 ], "overmap": "cathedralv_3_NW_north" }, + { "point": [ 1, 0, 2 ], "overmap": "cathedralv_3_NE_north" }, + { "point": [ 0, 1, 2 ], "overmap": "cathedralv_3_SW_north" }, + { "point": [ 1, 1, 2 ], "overmap": "cathedralv_3_SE_north" }, + { "point": [ 0, 0, 1 ], "overmap": "cathedralv_2_NW_north" }, + { "point": [ 1, 0, 1 ], "overmap": "cathedralv_2_NE_north" }, + { "point": [ 0, 1, 1 ], "overmap": "cathedralv_2_SW_north" }, + { "point": [ 1, 1, 1 ], "overmap": "cathedralv_2_SE_north" }, + { "point": [ 0, 0, 0 ], "overmap": "cathedralv_1_NW_north" }, + { "point": [ 1, 0, 0 ], "overmap": "cathedralv_1_NE_north" }, + { "point": [ 0, 1, 0 ], "overmap": "cathedralv_1_SW_north" }, + { "point": [ 1, 1, 0 ], "overmap": "cathedralv_1_SE_north" }, + { "point": [ 0, 0, -1 ], "overmap": "cathedralv_b_NW_north" }, + { "point": [ 1, 0, -1 ], "overmap": "cathedralv_b_NE_north" }, + { "point": [ 0, 1, -1 ], "overmap": "cathedralv_b_SW_north" }, + { "point": [ 1, 1, -1 ], "overmap": "cathedralv_b_SE_north" } + ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/musuems.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/musuems.json new file mode 100644 index 000000000..4f6145c44 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/musuems.json @@ -0,0 +1,147 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "museum" ], + "weight": 100, + "object": { + "fill_ter": "t_marble_floor", + "rows": [ + ".R*f*R*ff*RssR*ff*R*f*R.", + ".||||||||||LL||||||||||.", + ".|d5 |.", + ".||R 555 |.", + ".|d5 DD DD 5#5 |.", + ".||R DD DD 5#5 |.", + ".|d5 555 P|.", + ".||R P|.", + ".|d5 555 P|.", + ".||R DD DD 5#5 |.", + ".|d5 DD DD 5#5 |.", + ".||R 555 Y|.", + ".|j5 Y|.", + ".|j5 UtU 555 Y|.", + ".|||555|y 5#5 |.", + ".|GGGGG5 UtU 5#5 P|.", + ".|Gc L 555 P|.", + ".|G UyU5 DDD |.", + ".||||||||||||L||||||L||.", + ".| d a | P| y|.", + ".|Y a| aaaa D|&S|.", + ".|P * + tttt ||||.", + ".|y |y aaaa L l|4", + ".||||||||||||||||||||||." + ], + "terrain": { + "f": "t_region_groundcover_urban", + "*": "t_region_shrub_decorative", + " ": "t_marble_floor", + "+": "t_door_c", + "R": "t_column", + "s": "t_concrete", + ".": "t_region_groundcover_urban", + "5": "t_wall_glass_alarm", + "L": "t_door_locked_alarm", + "4": "t_gutter_downspout", + "|": "t_brick_wall" + }, + "nested": { "d": { "chunks": [ "1x1_museum_display_mannequin" ] }, "#": { "chunks": [ "1x1_museum_displaycase" ] } }, + "toilets": { "&": { } }, + "furniture": { + "f": "f_region_flower_decorative", + "a": "f_stool", + "y": [ "f_indoor_plant_y", "f_indoor_plant" ], + "U": "f_armchair", + "#": "f_counter", + "D": "f_displaycase", + "Y": "f_displaycase", + "G": "f_desk", + "c": "f_chair", + "t": "f_table", + "j": "f_table", + "S": "f_sink", + "l": "f_locker", + "P": "f_glass_cabinet", + "*": [ "f_golden_monolith", "f_broken_golden_monolith", "f_broken_golden_monolith" ] + }, + "items": { + "G": { "item": "museum_security", "chance": 80 }, + "l": { "item": "cleaning", "chance": 30 }, + "j": { "item": "museum_armor_pet", "chance": 80 }, + "S": { "item": "softdrugs", "chance": 30, "repeat": [ 1, 2 ] }, + "P": { "item": "museum_primitive", "chance": 90, "repeat": [ 2, 4 ] }, + "Y": { "item": "museum_melee", "chance": 80 } + }, + "place_signs": [ { "signage": "Museum of Curiosities", "x": 9, "y": 0 } ], + "place_items": [ + { "item": "museum_primitive", "x": [ 6, 7 ], "y": [ 4, 5 ], "chance": 85 }, + { "item": "museum_primitive", "x": [ 6, 7 ], "y": [ 9, 10 ], "chance": 85 }, + { "item": "museum_melee", "x": [ 11, 12 ], "y": [ 4, 5 ], "chance": 70 }, + { "item": "museum_melee", "x": [ 11, 12 ], "y": [ 9, 10 ], "chance": 70 }, + { "item": "museum_guns", "x": 17, "y": [ 4, 5 ], "chance": 75 }, + { "item": "museum_guns", "x": 17, "y": [ 9, 10 ], "chance": 75 }, + { "item": "museum_misc", "x": 17, "y": [ 14, 15 ], "chance": 95 }, + { "item": "museum_misc", "x": [ 11, 12 ], "y": [ 9, 10 ], "chance": 95 }, + { "item": "museum_guns", "x": [ 9, 11 ], "y": 17, "chance": 75 }, + { "item": "museum_armor", "x": [ 4, 7 ], "y": [ 20, 21 ], "chance": 70 }, + { "item": "museum_melee", "x": [ 4, 7 ], "y": [ 20, 21 ], "chance": 70 }, + { "item": "museum_guns", "x": [ 4, 7 ], "y": [ 20, 21 ], "chance": 70 }, + { "item": "museum_misc", "x": [ 4, 7 ], "y": [ 20, 21 ], "chance": 80 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "museum_roof", + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " R R R R R R ", + " ---------------------- ", + " -....................- ", + " -........U........M..- ", + " -....................- ", + " -....ooo..oo..ooo....- ", + " -....ooo..oo..ooo....- ", + " -....ooo..oo..ooo....- ", + " -.Z..................- ", + " -....................- ", + " -....ooo..oo..ooo....- ", + " -....ooo..oo..ooo....- ", + " -....ooo..oo..ooo....- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................- ", + " -....................5 ", + " ---------------------- " + ], + "palettes": [ "roof_palette" ], + "terrain": { "R": "t_column" }, + "nested": { + "U": { "chunks": [ "roof_2x2_infrastructure" ] }, + "M": { "chunks": [ "roof_2x2_infrastructure_1" ] }, + "Z": { "chunks": [ "roof_2x2_infrastructure_2" ] } + }, + "place_nested": [ + { + "chunks": [ + [ "null", 20 ], + [ "roof_2x2_utilities_b", 15 ], + [ "roof_2x2_utilities_c", 5 ], + [ "roof_2x2_utilities_d", 40 ], + [ "roof_2x2_utilities", 50 ] + ], + "x": [ 4, 17 ], + "y": [ 14, 19 ] + } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/nested/field_office_nests.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/nested/field_office_nests.json index c49c71092..7fc8efcc0 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/nested/field_office_nests.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/nested/field_office_nests.json @@ -353,6 +353,34 @@ "palettes": [ "field_office_palette" ] } }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "xed__contraband_containment", + "object": { + "mapgensize": [ 16, 16 ], + "rotation": [ 0, 0 ], + "rows": [ + "*V..............", + "*V..............", + "*V..............", + "*|...FFF..FFF...", + "*V...-|-..-|-...", + "*Vcx.d|cx.d|cx..", + "*Vch.d|ch.d|c...", + "*|d.hc|d.hc|d.h.", + "*Vd.xc|d.xc|d...", + "*V....|....|....", + "*Vd.h.|c.h.|..hd", + "*|dccx|cxdd|xccd", + "*|-HHH-HHHH-HHH-", + "****************", + "****************", + "****************" + ], + "palettes": [ "field_office_palette" ] + } + }, { "type": "mapgen", "method": "json", @@ -372,7 +400,7 @@ "bb...bb|......V*", "tt...tt|-=----|*", "tt...tt|......|*", - "bb.a.bb|FQFQFQ|*", + "bb.a.bb|QQQQQQ|*", "-HHHHH-|------|*", "****************", "****************", @@ -1165,26 +1193,58 @@ "rows": [ "|-gggg-|", "|,,,,,,|", - "g,,,,,,L", + "g,,,,,,g", "g,,,,,,g", "|,,,,,,|", + "|-gLLg-|", + "........", + ".cxc6cc." + ], + "palettes": [ "lab_palette" ], + "computers": { + "6": { + "name": "Border Patrol Containment Room Controls", + "security": 4, + "options": [ + { "name": "EMERGENCY CONTAINMENT UNLOCK", "action": "unlock", "security": 4 }, + { "name": "EMERGENCY CLEANSE", "action": "terminate", "security": 7 } + ], + "failures": [ { "action": "damage" }, { "action": "shutdown" } ] + } + }, + "place_monster": [ { "monster": [ "mon_march_lord" ], "x": 3, "y": 4 } ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "xed_8x8_containment_empty", + "object": { + "mapgensize": [ 8, 8 ], + "rotation": [ 0, 0 ], + "rows": [ "|-gggg-|", + "|,,,,,,|", + "g,,,,,,g", + "g,,,,,,g", + "|,,,,,,|", + "|-gLLg-|", "........", ".cxc6cc." ], "palettes": [ "lab_palette" ], "computers": { "6": { - "name": "Containment Control", + "name": "Border Patrol Containment Room Controls", "security": 4, "options": [ { "name": "EMERGENCY CONTAINMENT UNLOCK", "action": "unlock", "security": 4 }, - { "name": "EMERGENCY CLEANSE", "action": "disconnect", "security": 7 } + { "name": "EMERGENCY CLEANSE", "action": "terminate", "security": 7 } ], "failures": [ { "action": "damage" }, { "action": "shutdown" } ] } }, - "place_monster": [ { "monster": [ "mon_march_lord" ], "x": 2, "y": 7 } ], "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] } }, @@ -1198,7 +1258,7 @@ "rows": [ "|-gggg-|", "|,,,,,,|", - "g,,,,,,L", + "g,,,,,,g", "g,,,,,,g", "|,,,,,,|", "|-g^^g-|", @@ -1208,16 +1268,48 @@ "palettes": [ "lab_palette" ], "computers": { "6": { - "name": "Containment Control", + "name": "Border Patrol Containment Room Controls", + "security": 4, + "options": [ + { "name": "EMERGENCY CONTAINMENT UNLOCK", "action": "unlock", "security": 4 }, + { "name": "EMERGENCY CLEANSE", "action": "terminate", "security": 7 } + ], + "failures": [ { "action": "damage" }, { "action": "shutdown" } ] + } + }, + "place_monster": [ { "monster": [ "mon_march_lord" ], "x": 3, "y": 4 } ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "xed_8x8_containment_empty", + "object": { + "mapgensize": [ 8, 8 ], + "rotation": [ 0, 0 ], + "rows": [ + "|-gggg-|", + "|,,,,,,|", + "g,,,,,,L", + "g,,,,,,g", + "|,,,,,,|", + "|-gggg-|", + "........", + ".cxc6cc." + ], + "palettes": [ "lab_palette" ], + "computers": { + "6": { + "name": "Border Patrol Containment Room Controls", "security": 4, "options": [ { "name": "EMERGENCY CONTAINMENT UNLOCK", "action": "unlock", "security": 4 }, - { "name": "EMERGENCY CLEANSE", "action": "disconnect", "security": 7 } + { "name": "EMERGENCY CLEANSE", "action": "terminate", "security": 7 } ], "failures": [ { "action": "damage" }, { "action": "shutdown" } ] } }, - "place_monster": [ { "monster": [ "mon_march_lord" ], "x": 2, "y": 7 } ], "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] } }, diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/nested/museum_display_nests.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/nested/museum_display_nests.json new file mode 100644 index 000000000..502cb56ba --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/nested/museum_display_nests.json @@ -0,0 +1,33 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "1x1_museum_display_mannequin", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "0" ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "furniture": { "0": "f_mannequin" }, + "items": { + "0": [ + { "item": "pants", "chance": 100 }, + { "item": "alt_shirts", "chance": 100 }, + { "item": "museum_plaques_visitors", "chance": 100 }, + { "item": "otherworld_gear", "chance": 50 } + ] + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "1x1_museum_displaycase", + "object": { + "mapgensize": [ 1, 1 ], + "rows": [ "0" ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "furniture": { "0": "f_displaycase" }, + "items": { "0": [ { "item": "display_case_items", "chance": 100 }, { "item": "museum_plaques_items", "chance": 100 } ] } + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/nested/vampires.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/nested/vampires.json new file mode 100644 index 000000000..09c9508d2 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/nested/vampires.json @@ -0,0 +1,111 @@ +[ + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "nested_vampire_pack", + "object": { + "place_monster": [ + { "monster": "mon_vampire_strigoi", "x": 12, "y": 12, "spawn_data": { "patrol": [ { "x": 12, "y": 12 } ] } }, + { "monster": "mon_vampire_moroi", "x": 4, "y": 4, "repeat": [ 6, 10 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "5x5_vamp_nest_W", + "object": { + "mapgensize": [ 5, 5 ], + "rows": [ + " & ", + " i ", + "& 0 ", + " i i ", + " " + ], + "palettes": [ "standard_domestic_palette" ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "furniture": { "0": "f_brazier", "i": "f_coffin_o", "&": "f_coffin_c" }, + "place_loot": [ + { "item": "blood_rice_pudding", "x": [ 2, 4 ], "y": [ 1, 3 ], "chance": 60, "repeat": [ 1, 2 ] }, + { "item": "charcoal", "x": 2, "y": 1, "chance": 100, "repeat": [ 3, 10 ] }, + { "item": "bucket", "x": 1, "y": 1, "chance": 100 }, + { "item": "water_clean", "x": 3, "y": 1, "chance": 80, "repeat": [ 1, 4 ] } + ], + "place_monster": [ + { "monster": "mon_vampire_strigoi", "x": [ 0, 4 ], "y": [ 0, 4 ], "chance": 8 }, + { "monster": "mon_vampire_moroi", "x": [ 0, 4 ], "y": [ 0, 4 ], "chance": 16 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "5x5_corpse_pile_W", + "object": { + "mapgensize": [ 5, 5 ], + "rows": [ + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "standard_domestic_palette" ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "place_item": [ { "item": "corpse_generic_human", "x": [ 0, 4 ], "y": [ 0, 4 ], "chance": 65 } ], + "place_fields": [ { "field": "fd_blood", "x": [ 0, 4 ], "y": [ 0, 4 ], "intensity": [ 1, 3 ], "age": 10 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "5x5_messy_nest_W", + "object": { + "mapgensize": [ 5, 5 ], + "rows": [ + " & ", + " i ", + "& 0 ", + " i i ", + " " + ], + "palettes": [ "standard_domestic_palette" ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "furniture": { "0": "f_brazier", "i": "f_coffin_o", "&": "f_coffin_c" }, + "place_loot": [ + { "item": "blood_rice_pudding", "x": [ 2, 4 ], "y": [ 1, 3 ], "chance": 60, "repeat": [ 1, 2 ] }, + { "item": "charcoal", "x": 2, "y": 1, "chance": 100, "repeat": [ 3, 10 ] }, + { "item": "bucket", "x": 1, "y": 1, "chance": 100 }, + { "item": "water_clean", "x": 3, "y": 1, "chance": 80, "repeat": [ 1, 4 ] } + ], + "place_item": [ { "item": "corpse_generic_human", "x": [ 0, 4 ], "y": [ 0, 4 ], "chance": 65 } ], + "place_fields": [ { "field": "fd_blood", "x": [ 0, 4 ], "y": [ 0, 4 ], "intensity": [ 1, 3 ], "age": 10 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "roof_6x6_bat_house_1", + "object": { + "mapgensize": [ 6, 6 ], + "rotation": [ 0, 3 ], + "rows": [ + "%#++#%", + "%1 1%", + "#1 1#", + "#1 1#", + "%1 1%", + "%#++#%" + ], + "terrain": { + "#": "t_reinforced_glass_shutter_open", + "+": "t_reinforced_door_glass_c", + "%": "t_reinforced_glass_shutter", + "$": "t_wall_glass" + }, + "furniture": { "1": "f_bat_roost" }, + "sealed_item": { "1": { "item": { "item": "seed_rose" }, "furniture": "f_planter_mature" } } + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/overmap_special.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/overmap_special.json index 3e5962ab2..5b3f1501c 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/overmap_special.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/overmap_special.json @@ -1,4 +1,66 @@ [ + { + "type": "overmap_special", + "id": "Boann's Island", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 2, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 3, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 4, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 5, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 6, 0, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 1, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 1, 0 ], "overmap": "lake_surface" }, + { "point": [ 2, 1, 0 ], "overmap": "lake_shore" }, + { "point": [ 3, 1, 0 ], "overmap": "lake_shore" }, + { "point": [ 4, 1, 0 ], "overmap": "lake_shore" }, + { "point": [ 5, 1, 0 ], "overmap": "lake_shore" }, + { "point": [ 6, 1, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 2, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 2, 0 ], "overmap": "lake_shore" }, + { "point": [ 2, 2, 0 ], "overmap": "lake_shore" }, + { "point": [ 2, 2, 1 ], "overmap": "lake_shore" }, + { "point": [ 3, 2, 0 ], "overmap": "forest_thick" }, + { "point": [ 4, 2, 0 ], "overmap": "forest_thick" }, + { "point": [ 5, 2, 0 ], "overmap": "lake_shore" }, + { "point": [ 6, 2, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 3, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 3, 0 ], "overmap": "lake_shore" }, + { "point": [ 2, 3, 0 ], "overmap": "forest" }, + { "point": [ 3, 3, 0 ], "overmap": "boann_sidhe_island_north" }, + { "point": [ 3, 3, 1 ], "overmap": "boann_sidhe_z1_north" }, + { "point": [ 4, 3, 0 ], "overmap": "forest" }, + { "point": [ 5, 3, 0 ], "overmap": "lake_shore" }, + { "point": [ 6, 3, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 4, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 4, 0 ], "overmap": "lake_shore" }, + { "point": [ 2, 4, 0 ], "overmap": "forest_thick" }, + { "point": [ 3, 4, 0 ], "overmap": "forest_thick" }, + { "point": [ 4, 4, 0 ], "overmap": "lake_shore" }, + { "point": [ 5, 4, 0 ], "overmap": "lake_shore" }, + { "point": [ 6, 4, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 5, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 5, 0 ], "overmap": "lake_shore" }, + { "point": [ 2, 5, 0 ], "overmap": "lake_shore" }, + { "point": [ 3, 5, 0 ], "overmap": "lake_shore" }, + { "point": [ 4, 5, 0 ], "overmap": "lake_shore" }, + { "point": [ 5, 5, 0 ], "overmap": "lake_surface" }, + { "point": [ 6, 5, 0 ], "overmap": "lake_surface" }, + { "point": [ 0, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 1, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 2, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 3, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 4, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 5, 6, 0 ], "overmap": "lake_surface" }, + { "point": [ 6, 6, 0 ], "overmap": "lake_surface" } + ], + "locations": [ "lake_surface" ], + "city_distance": [ 3, -1 ], + "city_sizes": [ 4, 12 ], + "occurrences": [ 0, 1 ], + "flags": [ "CLASSIC", "LAKE", "MAN_MADE" ] + }, { "type": "overmap_special", "id": "field_office", @@ -33,5 +95,192 @@ "city_distance": [ 5, -1 ], "city_sizes": [ 10, -1 ], "occurrences": [ 0, 2 ] + }, + { + "type": "overmap_special", + "id": "field_office_ferals_jotunn", + "overmaps": [ + { "point": [ 1, 1, 0 ], "overmap": "field_office_ex_5_south" }, + { "point": [ 0, 1, 0 ], "overmap": "field_office_ex_6_south" }, + { "point": [ 1, 0, 0 ], "overmap": "field_office_ex_7_south" }, + { "point": [ 0, 0, 0 ], "overmap": "field_office_ex_8_south" }, + { "point": [ 1, 1, -1 ], "overmap": "field_office_ex_1_south" }, + { "point": [ 0, 1, -1 ], "overmap": "field_office_ex_2_south" }, + { "point": [ 1, 0, -1 ], "overmap": "field_office_ex_3_south" }, + { "point": [ 0, 0, -1 ], "overmap": "field_office_ex_4_south" }, + { "point": [ 1, 1, 1 ], "overmap": "field_office_ex_9_south" }, + { "point": [ 0, 1, 1 ], "overmap": "field_office_ex_10_south" }, + { "point": [ 1, 0, 1 ], "overmap": "field_office_ex_11_south" }, + { "point": [ 0, 0, 1 ], "overmap": "field_office_ex_12_south" }, + { "point": [ 1, 1, 2 ], "overmap": "field_office_ex_9_south" }, + { "point": [ 0, 1, 2 ], "overmap": "field_office_ex_10_south" }, + { "point": [ 1, 0, 2 ], "overmap": "field_office_ex_11_south" }, + { "point": [ 0, 0, 2 ], "overmap": "field_office_ex_12_south" }, + { "point": [ 1, 1, 3 ], "overmap": "field_office_ex_13_south" }, + { "point": [ 0, 1, 3 ], "overmap": "field_office_ex_14_south" }, + { "point": [ 1, 0, 3 ], "overmap": "field_office_ex_15_south" }, + { "point": [ 0, 0, 3 ], "overmap": "field_office_ex_16_south" }, + { "point": [ 1, 1, 4 ], "overmap": "field_office_17_south" }, + { "point": [ 0, 1, 4 ], "overmap": "field_office_18_south" }, + { "point": [ 1, 0, 4 ], "overmap": "field_office_19_south" }, + { "point": [ 0, 0, 4 ], "overmap": "field_office_20_south" } + ], + "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road" } ], + "locations": [ "land" ], + "city_distance": [ 5, -1 ], + "city_sizes": [ 10, -1 ], + "occurrences": [ 15, 100 ], + "flags": [ "UNIQUE", "MAN_MADE" ] + }, + { + "type": "city_building", + "id": "vampire_cathedral", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 0, 6 ], "overmap": "cathedralv_7_NW_north" }, + { "point": [ 1, 0, 6 ], "overmap": "cathedralv_7_NE_north" }, + { "point": [ 0, 0, 5 ], "overmap": "cathedralv_6_NW_north" }, + { "point": [ 1, 0, 5 ], "overmap": "cathedralv_6_NE_north" }, + { "point": [ 0, 0, 4 ], "overmap": "cathedralv_5_NW_north" }, + { "point": [ 1, 0, 4 ], "overmap": "cathedralv_5_NE_north" }, + { "point": [ 0, 0, 3 ], "overmap": "cathedralv_4_NW_north" }, + { "point": [ 1, 0, 3 ], "overmap": "cathedralv_4_NE_north" }, + { "point": [ 0, 0, 2 ], "overmap": "cathedralv_3_NW_north" }, + { "point": [ 1, 0, 2 ], "overmap": "cathedralv_3_NE_north" }, + { "point": [ 0, 1, 2 ], "overmap": "cathedralv_3_SW_north" }, + { "point": [ 1, 1, 2 ], "overmap": "cathedralv_3_SE_north" }, + { "point": [ 0, 0, 1 ], "overmap": "cathedralv_2_NW_north" }, + { "point": [ 1, 0, 1 ], "overmap": "cathedralv_2_NE_north" }, + { "point": [ 0, 1, 1 ], "overmap": "cathedralv_2_SW_north" }, + { "point": [ 1, 1, 1 ], "overmap": "cathedralv_2_SE_north" }, + { "point": [ 0, 0, 0 ], "overmap": "cathedralv_1_NW_north" }, + { "point": [ 1, 0, 0 ], "overmap": "cathedralv_1_NE_north" }, + { "point": [ 0, 1, 0 ], "overmap": "cathedralv_1_SW_north" }, + { "point": [ 1, 1, 0 ], "overmap": "cathedralv_1_SE_north" }, + { "point": [ 0, 0, -1 ], "overmap": "cathedralv_b_NW_north" }, + { "point": [ 1, 0, -1 ], "overmap": "cathedralv_b_NE_north" }, + { "point": [ 0, 1, -1 ], "overmap": "cathedralv_b_SW_north" }, + { "point": [ 1, 1, -1 ], "overmap": "cathedralv_b_SE_north" } + ] + }, + { + "type": "overmap_special", + "id": "ierde altar", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "ierde_genius_loci_NW_north" }, + { "point": [ 1, 0, 0 ], "overmap": "ierde_genius_loci_NE_north" }, + { "point": [ 0, 1, 0 ], "overmap": "ierde_genius_loci_SW_north" }, + { "point": [ 1, 1, 0 ], "overmap": "ierde_genius_loci_SE_north" }, + { "point": [ 0, 0, 1 ], "overmap": "genius_loci_NW_roof_north" }, + { "point": [ 1, 0, 1 ], "overmap": "genius_loci_NE_roof_north" }, + { "point": [ 0, 1, 1 ], "overmap": "genius_loci_SW_roof_north" }, + { "point": [ 1, 1, 1 ], "overmap": "genius_loci_SE_roof_north" } + ], + "locations": [ "land" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 5, 100 ], + "flags": [ "UNIQUE", "WILDERNESS" ], + "spawns": { "group": "GROUP_GENIUS_IERDE", "population": [ 10, 30 ], "radius": [ 1, 3 ] } + }, + { + "type": "overmap_special", + "id": "arvore altar", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "arvore_genius_loci_NW_north" }, + { "point": [ 1, 0, 0 ], "overmap": "arvore_genius_loci_NE_north" }, + { "point": [ 0, 1, 0 ], "overmap": "arvore_genius_loci_SW_north" }, + { "point": [ 1, 1, 0 ], "overmap": "arvore_genius_loci_SE_north" }, + { "point": [ 0, 0, 1 ], "overmap": "genius_loci_NW_roof_north" }, + { "point": [ 1, 0, 1 ], "overmap": "genius_loci_NE_roof_north" }, + { "point": [ 0, 1, 1 ], "overmap": "genius_loci_SW_roof_north" }, + { "point": [ 1, 1, 1 ], "overmap": "genius_loci_SE_roof_north" } + ], + "locations": [ "forest" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 5, 100 ], + "flags": [ "UNIQUE", "WILDERNESS" ], + "spawns": { "group": "GROUP_GENIUS_ARVORE", "population": [ 10, 30 ], "radius": [ 1, 3 ] } + }, + { + "type": "overmap_special", + "id": "undine altar", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "undine_genius_loci_NW_north" }, + { "point": [ 1, 0, 0 ], "overmap": "undine_genius_loci_NE_north" }, + { "point": [ 0, 1, 0 ], "overmap": "undine_genius_loci_SW_north" }, + { "point": [ 1, 1, 0 ], "overmap": "undine_genius_loci_SE_north" }, + { "point": [ 0, 0, 1 ], "overmap": "genius_loci_NW_roof_north" }, + { "point": [ 1, 0, 1 ], "overmap": "genius_loci_NE_roof_north" }, + { "point": [ 0, 1, 1 ], "overmap": "genius_loci_SW_roof_north" }, + { "point": [ 1, 1, 1 ], "overmap": "genius_loci_SE_roof_north" } + ], + "locations": [ "swamp" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 5, 100 ], + "flags": [ "UNIQUE", "WILDERNESS" ], + "spawns": { "group": "GROUP_GENIUS_UNDINE", "population": [ 10, 30 ], "radius": [ 1, 3 ] } + }, + { + "type": "overmap_special", + "id": "salamander altar", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "salamander_genius_loci_NW_north" }, + { "point": [ 1, 0, 0 ], "overmap": "salamander_genius_loci_NE_north" }, + { "point": [ 0, 1, 0 ], "overmap": "salamander_genius_loci_SW_north" }, + { "point": [ 1, 1, 0 ], "overmap": "salamander_genius_loci_SE_north" }, + { "point": [ 0, 0, 1 ], "overmap": "genius_loci_NW_roof_north" }, + { "point": [ 1, 0, 1 ], "overmap": "genius_loci_NE_roof_north" }, + { "point": [ 0, 1, 1 ], "overmap": "genius_loci_SW_roof_north" }, + { "point": [ 1, 1, 1 ], "overmap": "genius_loci_SE_roof_north" } + ], + "locations": [ "land" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 5, 100 ], + "flags": [ "UNIQUE", "WILDERNESS" ], + "spawns": { "group": "GROUP_GENIUS_SALAMANDER", "population": [ 10, 30 ], "radius": [ 1, 3 ] } + }, + { + "type": "overmap_special", + "id": "sylph altar", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "sylph_genius_loci_NW_north" }, + { "point": [ 1, 0, 0 ], "overmap": "sylph_genius_loci_NE_north" }, + { "point": [ 0, 1, 0 ], "overmap": "sylph_genius_loci_SW_north" }, + { "point": [ 1, 1, 0 ], "overmap": "sylph_genius_loci_SE_north" }, + { "point": [ 0, 0, 1 ], "overmap": "genius_loci_NW_roof_north" }, + { "point": [ 1, 0, 1 ], "overmap": "genius_loci_NE_roof_north" }, + { "point": [ 0, 1, 1 ], "overmap": "genius_loci_SW_roof_north" }, + { "point": [ 1, 1, 1 ], "overmap": "genius_loci_SE_roof_north" } + ], + "locations": [ "land" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 5, 100 ], + "flags": [ "UNIQUE", "WILDERNESS" ], + "spawns": { "group": "GROUP_GENIUS_SYLPH", "population": [ 10, 30 ], "radius": [ 1, 3 ] } + }, + { + "type": "overmap_special", + "id": "homullus altar", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "homullus_genius_loci_NW_north" }, + { "point": [ 1, 0, 0 ], "overmap": "homullus_genius_loci_NE_north" }, + { "point": [ 0, 1, 0 ], "overmap": "homullus_genius_loci_SW_north" }, + { "point": [ 1, 1, 0 ], "overmap": "homullus_genius_loci_SE_north" }, + { "point": [ 0, 0, 1 ], "overmap": "genius_loci_NW_roof_north" }, + { "point": [ 1, 0, 1 ], "overmap": "genius_loci_NE_roof_north" }, + { "point": [ 0, 1, 1 ], "overmap": "genius_loci_SW_roof_north" }, + { "point": [ 1, 1, 1 ], "overmap": "genius_loci_SE_roof_north" } + ], + "locations": [ "land" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 5, 100 ], + "flags": [ "UNIQUE", "WILDERNESS" ], + "spawns": { "group": "GROUP_GENIUS_HOMULLUS", "population": [ 10, 30 ], "radius": [ 1, 3 ] } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/overmap_terrain.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/overmap_terrain.json index 86dccc389..9d05969e8 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/overmap_terrain.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/overmap_terrain.json @@ -1,7 +1,7 @@ [ { "type": "overmap_terrain", - "name": "government office", + "name": "border patrol office", "id": [ "field_office_1", "field_office_2", @@ -19,6 +19,22 @@ "field_office_14", "field_office_15", "field_office_16", + "field_office_ex_1", + "field_office_ex_2", + "field_office_ex_3", + "field_office_ex_4", + "field_office_ex_5", + "field_office_ex_6", + "field_office_ex_7", + "field_office_ex_8", + "field_office_ex_9", + "field_office_ex_10", + "field_office_ex_11", + "field_office_ex_12", + "field_office_ex_13", + "field_office_ex_14", + "field_office_ex_15", + "field_office_ex_16", "field_office_17", "field_office_18", "field_office_19", @@ -26,6 +42,24 @@ ], "copy-from": "generic_large_office_tower" }, + { + "type": "overmap_terrain", + "id": "boann_sidhe_island", + "name": "forest?", + "sym": "F", + "color": "c_light_green", + "looks_like": "forest", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": "boann_sidhe_z1", + "name": "open air", + "sym": ".", + "color": "blue", + "looks_like": "open_air", + "see_cost": 5 + }, { "type": "overmap_terrain", "id": [ "safe_house" ], @@ -40,5 +74,90 @@ "type": "overmap_terrain", "id": [ "safe_house_basement" ], "copy-from": "generic_city_house_basement" + }, + { + "type": "overmap_terrain", + "id": [ + "cathedralv_1_NW", + "cathedralv_1_NE", + "cathedralv_1_SW", + "cathedralv_1_SE", + "cathedralv_2_NW", + "cathedralv_2_NE", + "cathedralv_2_SW", + "cathedralv_2_SE", + "cathedralv_3_NW", + "cathedralv_3_NE", + "cathedralv_3_SW", + "cathedralv_3_SE" + ], + "name": "cathedral", + "sym": "C", + "color": "i_light_red", + "see_cost": 5, + "mondensity": 2, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": [ + "cathedralv_4_NW", + "cathedralv_4_NE", + "cathedralv_5_NW", + "cathedralv_5_NE", + "cathedralv_6_NW", + "cathedralv_6_NE", + "cathedralv_7_NW", + "cathedralv_7_NE" + ], + "copy-from": "cathedral_1_NW", + "name": "cathedral tower", + "delete": { "flags": [ "SIDEWALK" ] } + }, + { + "type": "overmap_terrain", + "id": [ "cathedralv_b_NW", "cathedralv_b_NE", "cathedralv_b_SW", "cathedralv_b_SE" ], + "copy-from": "cathedral_1_NW", + "name": "cathedral basement", + "delete": { "flags": [ "SIDEWALK" ] } + }, + { + "type": "overmap_terrain", + "id": [ + "ierde_genius_loci_NW", + "ierde_genius_loci_NE", + "ierde_genius_loci_SW", + "ierde_genius_loci_SE", + "undine_genius_loci_NW", + "undine_genius_loci_NE", + "undine_genius_loci_SW", + "undine_genius_loci_SE", + "sylph_genius_loci_NW", + "sylph_genius_loci_NE", + "sylph_genius_loci_SW", + "sylph_genius_loci_SE", + "arvore_genius_loci_NW", + "arvore_genius_loci_NE", + "arvore_genius_loci_SW", + "arvore_genius_loci_SE", + "salamander_genius_loci_NW", + "salamander_genius_loci_NE", + "salamander_genius_loci_SW", + "salamander_genius_loci_SE", + "homullus_genius_loci_NW", + "homullus_genius_loci_NE", + "homullus_genius_loci_SW", + "homullus_genius_loci_SE", + "genius_loci_NW_roof", + "genius_loci_NE_roof", + "genius_loci_SW_roof", + "genius_loci_SE_roof" + ], + "name": "elemental altar", + "sym": "O", + "color": "light_green", + "looks_like": "standing_stones", + "see_cost": 5, + "mondensity": 2 } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/safehouse.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/safehouse.json index ba538f576..24a4d9527 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/safehouse.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/safehouse.json @@ -70,24 +70,24 @@ "rows": [ " ", " ", - " 22222222222222222223 ", - " |..................3 ", - " |..................3 ", - " |..................3 ", - " |.....:............323 ", - " |....................3 ", - " |.............N......3 ", - " |....................3 ", - " |......X.............3 ", - " |................5---3 ", - " |................3 ", - " |................3 ", - " |................3 ", - " |.........=.&....323 ", - " |..................3 ", - " |-|................3 ", - " |--5..........3--3 ", - " |----------3 ", + " -------------------- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -.....:............--- ", + " -....................- ", + " -.............N......- ", + " -....................- ", + " -......X.............- ", + " -................5---- ", + " -................- ", + " -................- ", + " -................- ", + " -.........=.&....--- ", + " -..................- ", + " ---................- ", + " ---5..........---- ", + " ------------ ", " ", " ", " ", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/start_locations.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/start_locations.json new file mode 100644 index 000000000..2ba251847 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/start_locations.json @@ -0,0 +1,38 @@ +[ + { + "type": "start_location", + "id": "sloc_ierde", + "name": "Ierde", + "terrain": [ "ierde_genius_loci_NW", "ierde_genius_loci_NE", "ierde_genius_loci_SW", "ierde_genius_loci_SE" ] + }, + { + "type": "start_location", + "id": "sloc_undine", + "name": "Undine", + "terrain": [ "undine_genius_loci_NW", "undine_genius_loci_NE", "undine_genius_loci_SW", "undine_genius_loci_SE" ] + }, + { + "type": "start_location", + "id": "sloc_arvore", + "name": "Arvore", + "terrain": [ "arvore_genius_loci_NW", "arvore_genius_loci_NE", "arvore_genius_loci_SW", "arvore_genius_loci_SE" ] + }, + { + "type": "start_location", + "id": "sloc_salamander", + "name": "Salamander", + "terrain": [ "salamander_genius_loci_NW", "salamander_genius_loci_NE", "salamander_genius_loci_SW", "salamander_genius_loci_SE" ] + }, + { + "type": "start_location", + "id": "sloc_sylph", + "name": "Sylph", + "terrain": [ "sylph_genius_loci_NW", "sylph_genius_loci_NE", "sylph_genius_loci_SW", "sylph_genius_loci_SE" ] + }, + { + "type": "start_location", + "id": "sloc_homullus", + "name": "Homullus", + "terrain": [ "homullus_genius_loci_NW", "homullus_genius_loci_NE", "homullus_genius_loci_SW", "homullus_genius_loci_SE" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/vampire_cathedral.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/vampire_cathedral.json new file mode 100644 index 000000000..ba1a82110 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/vampire_cathedral.json @@ -0,0 +1,440 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "cathedralv_b_NW", "cathedralv_b_NE" ], [ "cathedralv_b_SW", "cathedralv_b_SE" ] ], + "weight": 250, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " |||||| |||||| ", + " |b...| |hh.l| ", + " |b.<.| ||| |h<.l| ", + " |b.<.|||G||| ||||||||||||||||||||.<.h| ", + " |Y...L.^.^.| |.hh.hddhqqq.......L..hh| ", + " ||||||.....| |qqqq.qqq....ddqqqq|||||| ", + " |.hdh.| |dh.h.....q.hddh.hh| ", + " |.....| |h....qqhdqhhqqqqqd| ", + " |||.....| ||L||||||||||||||||||| ", + " |w.w.w.w| |W,,W|T,+,,,| |,,,+,T| ", + " |w.w.w.w| |W,,W||||,,S| |S,,|||| ", + " |wHw.w.w| |W,,W|T,+,,S| |S,,+,T| ", + " |w.w.w.w| |W,,W||||,,S| |S,,|||| ", + " |w.w.w.w| |W,,W|T,+,,,| |,,,+,T| ", + " |w.w.wHw| ||L|||||||+|||||+||||| ", + " |w.w.w.w| |1,44|...............| ", + " |w.w.w.w| |2,,,C.qtttq...qtttq.| ", + " |w.wHw.w| |3,,,C.qtttq...qtttq.| ", + " |w.w.w.w| |,,,,C.qtttq...qtttq.| ", + " |w.w.w.w| |eevv|...............| ", + " |w.w.w.w| ||||||......YIY......| ", + " |.......| |...............| ", + "|||||||||..hhh.^|| ||^qtttq...qtttq.|||||||||", + "|.||###||###||ssss||###||###||h>.|||o||||o||||++||||o||||o|||.>**i #o........._.........._.........o# i**>s", + "siiii #o.bbbbbbb._.bbbbbbbb._.bbbbbbb.o# iiiis", + "s #|........._.........._.........|# s", + "sssssss|||bbbbbbI._.bbbbbbbb._.Ibbbbbb|||sssssss", + "s ||L|Y........._.........._.........Y|L|| s", + "s |.....bbbbbbb._.bbbbbbbb._.bbbbbbb.....| s", + "s ||.h.h........._.........._..........xxx|| s", + "s #o.h.h.hhhhhhh._.........._.hhhhhhh..+.ho# s", + "s #o.h.h.........____________..........xxyo# s", + "s #o.h.h.......I..............I........+.bo# s", + "s ||.h.h........rrrr......rrrr.........xxx|| s", + "s |.......ccc..r............r..ccc.......| s", + "s ||||^...cGc..r....CCCC....r..cGc...^|||| s", + "s |||||ooo|||.B........B.|||ooo||||| s", + "s |###| |.......h....| |###| s", + "s |hhh.........| s", + "s |oo|GCCCCG|oo| iiiii s", + "s |##|oooooo|##| i***i s", + "s |######| iii>i s", + "ssssssssssssssssssssssssssssssssssssssssssssssss" + ], + "palettes": [ "cathedral" ], + "item": { "C": { "item": "candlestick", "chance": 50 } }, + "terrain": { "_": "t_carpet_concrete_red", " ": "t_region_groundcover_urban", "*": "t_open_air" }, + "furniture": { " ": [ [ "f_region_flower_decorative", 1 ], [ "f_null", 25 ] ] }, + "place_nested": [ + { "chunks": [ "garden_3x3_3" ], "x": 2, "y": 2 }, + { "chunks": [ "garden_3x3_3" ], "x": 16, "y": 2 }, + { "chunks": [ "garden_3x3_3" ], "x": 29, "y": 2 }, + { "chunks": [ "garden_3x3_3" ], "x": 43, "y": 2 }, + { "chunks": [ "garden_3x3_3" ], "x": 2, "y": 15 }, + { "chunks": [ "garden_3x3_3" ], "x": 2, "y": 21 }, + { "chunks": [ "garden_3x3_3" ], "x": 43, "y": 15 }, + { "chunks": [ "garden_3x3_3" ], "x": 43, "y": 21 }, + { "chunks": [ "garden_3x3_3" ], "x": 2, "y": 43 }, + { "chunks": [ "garden_3x3_3" ], "x": 6, "y": 43 }, + { "chunks": [ "garden_3x3_3" ], "x": 39, "y": 43 }, + { "chunks": [ "garden_3x3_3" ], "x": 43, "y": 43 } + ], + "place_monsters": [ + { "monster": "GROUP_RENFIELDS", "x": [ 0, 23 ], "y": [ 0, 23 ], "density": 0.1 }, + { "monster": "GROUP_RENFIELDS", "x": [ 24, 47 ], "y": [ 0, 23 ], "density": 0.1 }, + { "monster": "GROUP_RENFIELDS", "x": [ 0, 23 ], "y": [ 24, 47 ], "density": 0.1 }, + { "monster": "GROUP_RENFIELDS", "x": [ 24, 47 ], "y": [ 24, 47 ], "density": 0.1 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "cathedralv_2_NW", "cathedralv_2_NE" ], [ "cathedralv_2_SW", "cathedralv_2_SE" ] ], + "weight": 250, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " | | | | ", + " ||oo|| ||oo|| ", + " ||qhhh| |qqqq|| ", + " oq>.o ", + " oq><.|||o||||o||||oo||||o||||o|||.<>ho ", + " ||q...L.bbb||bbb|..OO..|bbb||bbb.L...h|| ", + " ||||||.............H............|||||| ", + " |Y.....hhh........hhh.....Y| ", + " |..G.6..................G..| ", + " íii||ooo||iii||....||iii||ooo||iií ", + " i_______|****iiiiii****|_______i ", + " i_______o**************o_______i ", + " i_______o**************o_______i ", + " i_______o**************o_______i ", + " i_______|**************|_______i ", + " íi__|___||**************||___|__ií ", + " i_______|**************|_______i ", + " i_______o**************o_______i ", + " i_______o**************o_______i ", + " i_______o**************o_______i ", + " i_______|**************|_______i ", + " íi__|___||**************||___|__ií ", + " i_______|**************|_______i ", + " i_______o**************o_______i ", + " i_______o**************o_______i ", + " i_______o**************o_______i ", + " i_______|**************|_______i ", + " íi_||ooo||**************||ooo||_ií ", + " iiii__|**************************|__iiii ", + " i_____|**************************|_____i ", + " ii___i||**************************||i___ii ", + " i_____o**************************o_____i ", + " i_____o**************************o_____i ", + " i_____o*****I**************I*****o_____i ", + " ii___i||**************************||i___ii ", + " i_____|**************************|_____i ", + " iiii__|**************************|__iiii ", + " iii||ooo|||************|||ooo||iii ", + " | | |************| | | ", + " |************| ", + " |oo|******|oo| ", + " | |oooooo| | ", + " | | ", + " " + ], + "palettes": [ "cathedral" ], + "terrain": { "_": "t_rock_floor_no_roof", " ": "t_open_air", "*": "t_open_air_rooved" }, + "place_monsters": [ + { "monster": "GROUP_RENFIELDS", "x": [ 6, 23 ], "y": [ 6, 12 ], "density": 0.1 }, + { "monster": "GROUP_RENFIELDS", "x": [ 24, 41 ], "y": [ 6, 12 ], "density": 0.1 } + ], + "computers": { + "6": { + "name": "Cathedral Bells 1.2", + "options": [ + { "name": "Gathering Toll", "action": "toll" }, + { "name": "Wedding Toll", "action": "toll" }, + { "name": "Funeral Toll", "action": "toll" } + ] + } + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "cathedralv_3_NW", "cathedralv_3_NE" ], [ "cathedralv_3_SW", "cathedralv_3_SE" ] ], + "weight": 250, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " | | | | ", + " ||oo|| ||oo|| ", + " ||....| |hh..|| ", + " o.<>.|| ií ii ii íi ||.><.o ", + " o.<>.|iiiiiiiiiiiiiiiiiiiiiiiiii|.><.|i i|.<>.o ", + " o.><.| |.<>.o ", + " ||....| |....|| ", + " |||||| |||||| ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " i i i i ", + " ||oo|| ||oo|| ", + " i|....| |....|i ", + " o.<>.| |.><.o ", + " o.<>.| |.><.o ", + " i|....| |....|i ", + " |||||| |||||| ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "cathedral" ], + "terrain": { " ": "t_open_air" }, + "place_monsters": [ + { "monster": "GROUP_ALL_BATS", "x": [ 0, 23 ], "y": [ 0, 23 ], "density": 0.1 }, + { "monster": "GROUP_ALL_BATS", "x": [ 24, 47 ], "y": [ 0, 23 ], "density": 0.1 }, + { "monster": "GROUP_ALL_BATS", "x": [ 0, 17 ], "y": [ 24, 47 ], "density": 0.1 }, + { "monster": "GROUP_ALL_BATS", "x": [ 24, 47 ], "y": [ 24, 47 ], "density": 0.2 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "cathedralv_6_NW", "cathedralv_6_NE" ], [ "cathedralv_7_NW", "cathedralv_7_NE" ] ], + "weight": 250, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + " ", + " ", + " ", + " ", + " iiii iiii ", + " ||..|| ||..|| ", + " i|....|i i|....|i ", + " i..>...i i...>..i ", + " i..>...i i...>..i ", + " i|....|i i|....|i ", + " ||..|| ||..|| ", + " iiii iiii ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " iiiiii iiiiii ", + " i____i i____i ", + " i____i i____i ", + " i____i i____i ", + " i____i i____i ", + " iiiiii iiiiii ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "cathedral" ], + "place_nested": [ + { + "chunks": [ [ "null", 180 ], [ "radio_tower_2x2_map", 30 ], [ "radio_tower_2x2_holdout", 20 ], [ "radio_tower_2x2_sniper", 10 ] ], + "x": [ 7, 8 ], + "y": [ 6, 8 ] + }, + { + "chunks": [ [ "null", 180 ], [ "radio_tower_2x2_map", 30 ], [ "radio_tower_2x2_holdout", 20 ], [ "radio_tower_2x2_sniper", 10 ] ], + "x": [ 37, 38 ], + "y": [ 6, 8 ] + } + ], + "terrain": { " ": "t_open_air", "_": "t_rock_floor_no_roof" }, + "place_monsters": [ + { "monster": "GROUP_ALL_BATS", "x": [ 0, 23 ], "y": [ 0, 23 ], "density": 0.1 }, + { "monster": "GROUP_ALL_BATS", "x": [ 24, 47 ], "y": [ 0, 23 ], "density": 0.1 }, + { "monster": "GROUP_ALL_BATS", "x": [ 0, 17 ], "y": [ 24, 47 ], "density": 0.1 }, + { "monster": "GROUP_ALL_BATS", "x": [ 24, 47 ], "y": [ 24, 47 ], "density": 0.2 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/vampire_locations.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/vampire_locations.json new file mode 100644 index 000000000..e79d0cc5f --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/vampire_locations.json @@ -0,0 +1,194 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "lodge_ground1", "lodge_ground2" ] ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rows": [ + ".%##W###W###W###W###+##W#################%......", + ".*#c B#c B#B c#B c# #h s#a >#*......", + ".*Wd B#d B#B d#B d# #h T#^ a ZZZ OC W*......", + ".*##=###=###=###=## ##=##a a ZZZ OC #*......", + ".*# a ZZZ OC #*......", + ".*W W*......", + ".*# YY YY AAAAAAAA ata ^ >#*......", + ".%########+######################## ###*......", + "ooooooooooGGGGGGG~~~~~~~~~~~~~~~~~# #%**......", + "ooooooooooooooooG~~~~~%############ #*........", + "ooooooooooooooooG~~~~~*w #*........", + "ooooooooooooooooG~~~~~*#Y c c c w*........", + "ooooooooooooooooGGGGGGG+ ttttt bw*........", + "ooooooooooooooooGGGGGGG+ ttttt bw*........", + "oooooooooooooooo~~~~~G*#Y c c c w*........", + "oooooooooooooooo~~~~~G*w w*........", + "oooooooooooooooo~~~~~G*##### ########*........", + "oooooooooooooooo~~~~~G***#<# #********........", + "oooooooooooooooo%~~~~GGGG+ # #%****...........", + "......*###-###-###-######### #####*...........", + ".....0*#UU URU URU URU #12C 5 é#*...........", + ".....0*#R z C uW*...........", + ".....0*#UU URU URU URU #3CC& 4CVuF#*...........", + "......%###-###-###-##########+######%..........." + ], + "palettes": [ "lodge_palette" ], + "place_monsters": [ { "monster": "GROUP_VAMPIRES_MIXED", "x": [ 0, 23 ], "y": [ 0, 23 ], "density": 0.3 } ], + "place_nested": [ + { + "chunks": [ [ "lodge_pantry_15x15", 80 ], [ "lodge_cannibal_15x15", 20 ], [ "lodge_hunting_15x15", 50 ] ], + "x": 8, + "y": 9 + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "lodge_2ndfloor1", "lodge_2ndfloor2" ] ], + "weight": 100, + "object": { + "fill_ter": "t_open_air", + "rows": [ + " %##W###W###W###W###w##W#################% ", + " #hh_________DD____/__________________<# ", + " Whh__///_________/_/____OOOOO_ZZZ_____W ", + " #____/_/________/___/___O_____ZZZ_///D# ", + " #__O_///O________/___/________ZZZ_/_/D# ", + " W__OOOOOO_________/_/____hhh______///_W ", + " #_________éFF______/_____hhh_________<# ", + " %########w#######wwww#############www### ", + " |...% ", + " 52222222222|...3 ", + " |..............3 ", + " |..............3 ", + " |..............3 ", + " |..............3 ", + " |..............3 ", + " |..............3 ", + " |3|.....3------3 ", + " |.....3 ", + " |.....3 ", + " |22222222522222222|.....52223 ", + " |...........................3 ", + " |...........................3 ", + " |........................=..3 ", + " 5---------------------------5 " + ], + "palettes": [ "lodge_2ndfloor_palette" ], + "place_items": [ + { "item": "roof_trash", "x": [ 35, 37 ], "y": [ 8, 9 ], "chance": 50, "repeat": [ 1, 3 ] }, + { "item": "roof_trash", "x": [ 24, 37 ], "y": [ 10, 15 ], "chance": 50, "repeat": [ 1, 3 ] }, + { "item": "roof_trash", "x": [ 26, 30 ], "y": [ 16, 19 ], "chance": 50, "repeat": [ 1, 3 ] }, + { "item": "roof_trash", "x": [ 8, 23 ], "y": [ 20, 22 ], "chance": 50, "repeat": [ 1, 3 ] }, + { "item": "roof_trash", "x": [ 24, 34 ], "y": [ 20, 22 ], "chance": 50, "repeat": [ 1, 3 ] } + ], + "place_monsters": [ { "monster": "GROUP_VAMPIRES_MIXED", "x": [ 0, 23 ], "y": [ 0, 23 ], "density": 0.5 } ], + "place_nested": [ + { + "chunks": [ + [ "null", 150 ], + [ "roof_2x2_golf", 25 ], + [ "roof_3x3_wine", 25 ], + [ "roof_4x4_party", 25 ], + [ "roof_4x4_survivor", 25 ] + ], + "x": [ 24, 34 ], + "y": [ 10, 12 ] + } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "lodge_roof1", "lodge_roof2" ] ], + "weight": 100, + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " 5-------------------------------------5 ", + " -.....................................- ", + " -.............................~~~.....- ", + " -.............................~~~.....- ", + " -V............................~~~.....- ", + " -.....................................- ", + " -.....................................- ", + " 5-----------------------------------5-- ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "furniture": { "V": "f_wind_vane" }, + "place_items": [ + { "item": "roof_trash", "x": [ 3, 23 ], "y": [ 1, 6 ], "chance": 20, "repeat": [ 1, 3 ] }, + { "item": "roof_trash", "x": [ 24, 39 ], "y": [ 1, 6 ], "chance": 20, "repeat": [ 1, 3 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "lodge_basement_residential1", "lodge_basement_residential2" ] ], + "weight": 100, + "object": { + "fill_ter": "t_soil", + "rows": [ + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ", + " %_//________//____//______//____//_____% ", + " %___//______//______//____//______//___% ", + " %___//________//____//______//____//___% ", + " %_____//______//______//____//______//_% ", + " %_____//________//____//______//____//_% ", + " %_______//______//______//____//______/% ", + " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%_%%% ", + " %_% ", + " %%%%%%%%%%%%_% ", + " %__________BB% ", + " %____________% ", + " %____________% ", + " %____________% ", + " %____________% ", + " %____________% ", + " %%%______%%%%% ", + " %<%______% ", + " %_+______% ", + " %%%%%%%%%% ", + " ", + " ", + " ", + " " + ], + "palettes": [ "basement_lodge" ], + "place_monsters": [ { "monster": "GROUP_STRIGOI", "x": 7, "y": 4 } ], + "place_nested": [ + { "chunks": [ [ "lodge_game_6x6", 80 ], [ "lodge_dungeon_6x6", 20 ], [ "lodge_drug_6x6", 50 ] ], "x": 2, "y": 1 }, + { + "chunks": [ [ "5x5_corpse_pile_W", 30 ], [ "5x5_messy_nest_W", 10 ], [ "5x5_vamp_nest_W", 60 ] ], + "x": 24, + "y": 1 + }, + { + "chunks": [ [ "room_6x6_woodworker", 5 ], [ "room_6x6_bike", 15 ], [ "room_6x6_office_E", 5 ] ], + "x": 26, + "y": 10 + } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/xedra_field_office.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/xedra_field_office.json index f191f667d..3ab8f2c06 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/xedra_field_office.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen/xedra_field_office.json @@ -107,19 +107,19 @@ "ss%|:::::...|--|-|-|HHHGGHHH|-|-|--|...:::::|%ss", "ss%|:::::...|SS|T|T|........|T|T|SS|...:::::|%ss", "ss%|----|...+ii|+|+|........|+|+|ii+...|----|%ss", - "ss%|rrrr|...|iiiiii|........|iiiiii|...|rrrr|%ss", - "ss%|''''+...|---|--||......||--|---|...+''''|%ss", - "ss%|rrrr|...|>R<|EEE|......|xEE|>R<|...|rrrr|%ss", + "ss%|gggg|6..|iiiiii|........|iiiiii|...|rrrr|%ss", + "ss%|''''L...|---|--||......||--|---|...+''''|%ss", + "ss%|gggg|...|>R<|EEE|......|xEE|>R<|...|rrrr|%ss", "ss%|----|...|'R'|EEED......DEEE|'R'|...|----|%ss", "ss%|:::::...|'''|EEED......DEEE|'''|...:::::|%ss", "ss%|:::::...|'''|EEx|......|EEE|'''|...:::::|%ss", "ss%|:::::...|-+-|---|^....^|---|-+-|...:::::|%ss", "ss%Vc.h.+..........................+...:::::V%ss", "ss%Vcddx|^.........................+...:::::V%ss", - "ssI|-ww-|-|-+--ccc--|-+----|...|---|...:::::|%ss", - "ss%|''O''O|..cc.h..F|d.cc.F|...='''+...:::::V%ss", - "sss=''''''+...h....F|dh...F|...|rrr|^..::::^V%ss", - "ss%|rrrOO'|.xdd....F|xxx|--|...|---|--------|%ss", + "ssI|----|-|-+--ccc--|-+----|...|---|...:::::|%ss", + "ss%|QQQQQQ|..cc.h..F|d.cc.F|...='''+...:::::V%ss", + "sss|''''''L...h....F|dh...F|HGH|rrr|^..::::^V%ss", + "ss%|QQQQQQ|7xdd....F|xxx|--|...|---|--------|%ss", "ssI|------|---------|---|..a...::::::::.....VIss", "ss%|~################~~~|......::::::::.....Vsss", "ss%|~#±±±±±±##±±±±±±#~~~|......::::::::.....Gsss", @@ -147,6 +147,20 @@ "repeat": [ 1, 4 ] } ], + "computers": { + "7": { + "name": "Border Patrol OS v0.A17 - Armory Access", + "security": 2, + "options": [ { "name": "Unlock Armory", "action": "unlock" } ], + "failures": [ { "action": "shutdown" }, { "action": "alarm" }, { "action": "manhacks" } ] + }, + "6": { + "name": "Border Patrol OS v0.A17 - Evidence Locker Access", + "security": 3, + "options": [ { "name": "Unlock Evidence Locker", "action": "unlock" } ], + "failures": [ { "action": "shutdown" }, { "action": "alarm" }, { "action": "manhacks" } ] + } + }, "place_nested": [ { "chunks": [ [ "xed_4x4_cr1_l", 20 ], [ "xed_4x4_cr2_l", 20 ], [ "xed_4x4_cr3_l", 20 ] ], @@ -338,6 +352,7 @@ { "chunks": [ [ "xed_office_slide_dl", 20 ], + [ "xed__contraband_containment", 40 ], [ "xed_glass_dl", 20 ], [ "xed_private_dl", 20 ], [ "xed_crowded_dl", 20 ], @@ -392,14 +407,14 @@ }, { "chunks": [ - [ "office_glass_al", 20 ], - [ "office_private_al", 20 ], - [ "office_al", 20 ], - [ "office_slide_al", 20 ], - [ "office_crowded_al", 20 ] + [ "14x14_office_glass_nw", 1 ], + [ "14x14_office_cubicle_nw", 1 ], + [ "14x14_office_generic_nw", 1 ], + [ "14x14_office_slide_nw", 1 ], + [ "14x14_office_crowded_nw", 1 ] ], - "x": [ 2, 2 ], - "y": [ 1, 1 ] + "x": [ 4, 4 ], + "y": [ 5, 5 ] }, { "chunks": [ @@ -428,9 +443,9 @@ "y": [ 14, 14 ] }, { - "chunks": [ [ "xed_8x8_containment", 20 ], [ "xed_8x8_containment_broken", 20 ] ], - "x": [ 16, 16 ], - "y": [ 4, 4 ] + "chunks": [ [ "xed_8x8_containment", 20 ], [ "xed_8x8_containment_broken", 20 ], [ "xed_8x8_containment_empty", 40 ] ], + "x": [ 14, 14 ], + "y": [ 5, 5 ] }, { "chunks": [ [ "xed_8x8_boss_ar", 20 ], [ "xed_8x8_sofas_ar", 20 ], [ "xed_8x8_office_ar", 20 ], [ "xed_8x8_files_ar", 20 ] ], @@ -560,6 +575,636 @@ ] } }, + { + "type": "mapgen", + "om_terrain": [ [ "field_office_17", "field_office_18" ], [ "field_office_19", "field_office_20" ] ], + "method": "json", + "weight": 250, + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////zzzzzzzzz//////zzzzzzzzz////////////", + "////////////zzz6z6zzz//////zzz7z7zzz////////////", + "////////////zzzzzzzzz//////zzzzzzzzz////////////", + "////////////zzzzzzzzz//////zzzzzzzzz////////////", + "////////////zzz6z6zzz//////zzz7z7zzz////////////", + "////////////zzzzzzzzz//////zzzzzzzzz////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////" + ], + "palettes": [ "field_office_palette" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "field_office_ex_1", "field_office_ex_2" ], [ "field_office_ex_3", "field_office_ex_4" ] ], + "//": "Feral Xedra remnants and Exodii are fighting here", + "method": "json", + "weight": 250, + "object": { + "fill_ter": "t_floor", + "rows": [ + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~##########################################~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#________________________________________#~~~", + "~~~#________________________________________#~~~", + "~~~#________________________________________#~~~", + "~~~#________________________________________#~~~", + "~~~#________________________________________#~~~", + "~~~#________________________________________#~~~", + "~~~#___,,___,____,____,'',____,____,________#~~~", + "~~~#__,,,,__,____,____,'',____,____,________#~~~", + "~~~#___,,___,____,____,'',____,____,________#~~~", + "~~~#___,,___,____,____,'',____,____,________#~~~", + "~~~#________,____,____,'',____,____,________#~~~", + "~~~#________,____,____,'',____,____,________#~~~", + "~~~#_________#########HGGH########__________#~~~", + "~~~#_________#R<|EEE|......|xEE|>R<|...|rrrr|%ss", + "ss%|----|...|'R'|EEED......DEEE|'R'|...|----|%ss", + "ss%|:::::...|'''|EEED......DEEE|'''|...:::::|%ss", + "ss%|:::::...|'''|EEx|......|EEE|'''|...:::::|%ss", + "ss%|:::::...|-+-|---|^....^|---|-+-|...:::::|%ss", + "ss%Vc.h.+..........................+...:::::V%ss", + "ss%Vcddx|^.........................+...:::::V%ss", + "ssI|----|-|-+--ccc--|-+----|...|---|...:::::|%ss", + "ss%|QQQQQQ|..cc.h..F|d.cc.F|...='''+...:::::V%ss", + "sss|''''''L...h....F|dh...F|HGH|rrr|^..::::^V%ss", + "ss%|QQQQQQ|7xdd....F|xxx|--|...|---|--------|%ss", + "ssI|------|---------|---|..a...::::::::.....VIss", + "ss%|~################~~~|......::::::::.....Vsss", + "ss%|~#±±±±±±##±±±±±±#~~~|......::::::::.....Gsss", + "ss%|~#ŦŦŦŦŦŦ##ŦŦŦŦŦŦ#~~~|......::::::::.....Gsss", + "ss%|~#______##______#~~~|Ycbbbc.......cbbbcYVsss", + "ss%|~#__,,__##__,,__#~~~|...................Gsss", + "ss%|~#_,,,,_##__,,__#~~~|...................Gsss", + "ss%|~#__,,__##_,,,,_#~~~|...................Vsss", + "ss%|~#__,,__##__,,__#~~~|...................VIss", + "ss%|~#______##______#~~~|Ycbbbc.......cbbbcY|%ss", + "ss%||#__,,__##__,,__#-----HHHHHGGHHGGHHHHH--|%ss", + "ss%I _,,,,_ss__,,__ I%%%%%I ssssssss I%%%%%Iss", + "ss __,,__ss_,,,,_ ssssssss ss", + "ssssss__,,__ss__,,__ssssssssssssssssssssssssssss", + "ssssss______ss______ssssssssssssssssssssssssssss" + ], + "palettes": [ "field_office_palette" ], + "place_monsters": [ + { "monster": "GROUP_FERAL_AGENTS", "x": [ 10, 23 ], "y": [ 10, 23 ], "chance": 2, "repeat": [ 1, 4 ] }, + { "monster": "GROUP_Exodii_Jotunn", "x": [ 26, 38 ], "y": [ 26, 38 ], "chance": 2, "repeat": [ 1, 4 ] } + ], + "computers": { + "7": { + "name": "Border Patrol OS v0.A17 - Armory Access", + "security": 2, + "options": [ { "name": "Unlock Armory", "action": "unlock" } ], + "failures": [ { "action": "shutdown" }, { "action": "alarm" }, { "action": "manhacks" } ] + }, + "6": { + "name": "Border Patrol OS v0.A17 - Evidence Locker Access", + "security": 3, + "options": [ { "name": "Unlock Evidence Locker", "action": "unlock" } ], + "failures": [ { "action": "shutdown" }, { "action": "alarm" }, { "action": "manhacks" } ] + } + }, + "place_nested": [ + { + "chunks": [ [ "xed_4x4_cr1_l", 20 ], [ "xed_4x4_cr2_l", 20 ], [ "xed_4x4_cr3_l", 20 ] ], + "x": [ 31, 31 ], + "y": [ 33, 33 ] + }, + { + "chunks": [ [ "xed_4x4_cr1_r", 20 ], [ "xed_4x4_cr2_r", 20 ], [ "xed_4x4_cr3_r", 20 ] ], + "x": [ 35, 35 ], + "y": [ 33, 33 ] + }, + { + "chunks": [ [ "xed_4x4_cr1_l", 20 ], [ "xed_4x4_cr2_l", 20 ], [ "xed_4x4_cr3_l", 20 ] ], + "x": [ 20, 20 ], + "y": [ 12, 12 ] + }, + { + "chunks": [ [ "xed_4x4_cr1_r", 20 ], [ "xed_4x4_cr2_r", 20 ], [ "xed_4x4_cr3_r", 20 ] ], + "x": [ 24, 24 ], + "y": [ 12, 12 ] + }, + { + "chunks": [ + [ "xed_5x5_register_ol", 20 ], + [ "xed_5x5_office_ur", 20 ], + [ "xed_5x5_benches_ur", 10 ], + [ "xed_5x5_sofa_ur", 10 ], + [ "xed_5x5_office1_ol", 10 ], + [ "xed_5x5_office2_ol", 10 ], + [ "xed_5x5_sofas_ol", 20 ] + ], + "x": [ 39, 39 ], + "y": [ 27, 27 ] + }, + { + "chunks": [ + [ "xed_5x5_toilet_il", 20 ], + [ "xed_5x5_storage1_il", 10 ], + [ "xed_5x5_storage2_il", 10 ], + [ "xed_5x5_storage3_il", 10 ], + [ "xed_5x5_cleaning1_il", 20 ], + [ "xed_5x5_cleaning2_il", 20 ] + ], + "x": [ 4, 4 ], + "y": [ 24, 24 ] + }, + { + "chunks": [ + [ "xed_5x5_toilet_ir", 20 ], + [ "xed_5x5_storage1_ir", 10 ], + [ "xed_5x5_storage2_ir", 10 ], + [ "xed_5x5_storage3_ir", 10 ], + [ "xed_5x5_cleaning1_ir", 20 ], + [ "xed_5x5_cleaning2_ir", 20 ] + ], + "x": [ 39, 39 ], + "y": [ 24, 24 ] + }, + { + "chunks": [ + [ "xed_office_glass_al", 20 ], + [ "xed_office_private_al", 20 ], + [ "xed_office_al", 20 ], + [ "xed_office_slide_al", 20 ], + [ "xed_office_crowded_al", 20 ] + ], + "x": [ 2, 2 ], + "y": [ 1, 1 ] + }, + { + "chunks": [ + [ "xed_5x5_register_ol", 20 ], + [ "xed_5x5_office1_ol", 10 ], + [ "xed_5x5_office2_ol", 10 ], + [ "xed_5x5_sofas_ol", 20 ] + ], + "x": [ 4, 4 ], + "y": [ 14, 14 ] + }, + { + "chunks": [ + [ "xed_office_glass_ar", 20 ], + [ "xed_office_private_ar", 20 ], + [ "xed_office_ar", 20 ], + [ "xed_office_slide_ar", 20 ], + [ "xed_office_crowded_ar", 20 ] + ], + "x": [ 30, 30 ], + "y": [ 1, 1 ] + }, + { + "chunks": [ [ "xed_5x5_register_or", 20 ], [ "xed_5x5_office_or", 20 ], [ "xed_5x5_sofas_or", 20 ] ], + "x": [ 39, 39 ], + "y": [ 14, 14 ] + }, + { + "chunks": [ [ "xed_8x8_boss_al", 20 ], [ "xed_8x8_meeting_al", 20 ], [ "xed_8x8_office_al", 20 ], [ "xed_8x8_eating_al", 20 ] ], + "x": [ 16, 16 ], + "y": [ 4, 4 ] + }, + { + "chunks": [ [ "xed_8x8_boss_ar", 20 ], [ "xed_8x8_sofas_ar", 20 ], [ "xed_8x8_office_ar", 20 ], [ "xed_8x8_files_ar", 20 ] ], + "x": [ 24, 24 ], + "y": [ 4, 4 ] + } + ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "field_office_ex_9", "field_office_ex_10" ], [ "field_office_ex_11", "field_office_ex_12" ] ], + "method": "json", + "weight": 250, + "object": { + "fill_ter": "t_floor", + "rows": [ + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "///|-HHH-HHH-HHH--|HHH-|--HHH|--HHH-HHH-HHH-|///", + "///|::::::::::::::::::::::::::::::::::::::::|///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///|::::::::::::::::::::::::::::::::::::::::|///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::|----|-----|::::::::::::::V///", + "///V::::::::::::::|.::::::::.|::::::::::::::V///", + "///|::::::::::::::|.::::::::.|::::::::::::::|///", + "///V::::::::::::::..::::::::..::::::::::::::V///", + "///V::::::::::::::..::::::::..::::::::::::::V///", + "///V::::::::::::::............::::::::::::::V///", + "///|:::::...|--|-|-|HHHGGHHH|-|-|--|...:::::|///", + "///|:::::...|SS|T|T|........|T|T|SS|...:::::|///", + "///|----|...+ii|+|+|........|+|+|ii+...|----|///", + "///|rrrr|...|iiiiii|........|iiiiii|...|rrrr|///", + "///|''''+...|---|--||......||--|---|...+''''|///", + "///|rrrr|...||EEE|......|xEE||...|rrrr|///", + "///|----|...|'R'|EEED......DEEE|'R'|...|----|///", + "///|:::::...|'''|EEED......DEEE|'''|...:::::|///", + "///|:::::...+'''|EEx|......|EEE|'''+...:::::|///", + "///|:::::...|---|-|-|......|-|-|---|...:::::|///", + "///V:::::...::::::|..........|:::::|...:::::V///", + "///V:::::...::::::|..........|:::::|...:::::V///", + "///V:::::...::::::|^........^|:::::|...:::::V///", + "///|:::::...::::::|-HHHGGHHH-|:::::|...:::::|///", + "///V::::::::::::::............::::::::::::::V///", + "///V::::::::::::::............::::::::::::::V///", + "///V::::::::::::::.a..........::::::::::::::V///", + "///|::::::::::::::|-HHHGGHHH-|::::::::::::::|///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///|::::::::::::::::::::::::::::::::::::::::|///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///|::::::::::::::::::::::::::::::::::::::::|///", + "///|-HHH-HHHH-HHH-|-HHHHHHHH-|-HHH-HHHH-HHH-|///", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////" + ], + "place_nested": [ + { + "chunks": [ [ "xed_4x4_cr1_l", 20 ], [ "xed_4x4_cr2_l", 20 ], [ "xed_4x4_cr3_l", 20 ] ], + "x": [ 20, 20 ], + "y": [ 12, 12 ] + }, + { + "chunks": [ [ "xed_4x4_cr1_r", 20 ], [ "xed_4x4_cr2_r", 20 ], [ "xed_4x4_cr3_r", 20 ] ], + "x": [ 24, 24 ], + "y": [ 12, 12 ] + }, + { + "chunks": [ + [ "xed_5x5_toilet_il", 20 ], + [ "xed_5x5_storage1_il", 10 ], + [ "xed_5x5_storage2_il", 10 ], + [ "xed_5x5_storage3_il", 10 ], + [ "xed_5x5_cleaning1_il", 20 ], + [ "xed_5x5_cleaning2_il", 20 ] + ], + "x": [ 4, 4 ], + "y": [ 24, 24 ] + }, + { + "chunks": [ + [ "xed_office_slide_dl", 20 ], + [ "xed__contraband_containment", 40 ], + [ "xed_glass_dl", 20 ], + [ "xed_private_dl", 20 ], + [ "xed_crowded_dl", 20 ], + [ "xed_generic_dl", 20 ] + ], + "x": [ 2, 2 ], + "y": [ 31, 31 ] + }, + { + "chunks": [ [ "xed_small1_ul", 20 ], [ "xed_small_office_ul", 20 ], [ "xed_small_sofa_ul", 20 ], [ "xed_small2_ul", 20 ] ], + "x": [ 4, 4 ], + "y": [ 27, 27 ] + }, + { + "chunks": [ [ "xed_small1_ul", 20 ], [ "xed_small_office_ul", 20 ], [ "xed_small_sofa_ul", 20 ], [ "xed_small2_ul", 20 ] ], + "x": [ 30, 30 ], + "y": [ 27, 27 ] + }, + { + "chunks": [ [ "xed_6x6_office_ur", 20 ], [ "xed_6x6_glass_ur", 20 ], [ "xed_6x6_computer_ur", 5 ], [ "xed_6x6_files_ur", 5 ] ], + "x": [ 12, 12 ], + "y": [ 27, 27 ] + }, + { + "chunks": [ + [ "xed_office_slide_dr", 20 ], + [ "xed_office_glass_dr", 20 ], + [ "xed_armory_cafe_dr", 20 ], + [ "xed_office_dr", 20 ], + [ "xed_office_private_dr", 20 ], + [ "xed_office_crowded_dr", 20 ] + ], + "x": [ 30, 30 ], + "y": [ 31, 31 ] + }, + { + "chunks": [ + [ "xed_5x5_toilet_ir", 20 ], + [ "xed_5x5_storage1_ir", 10 ], + [ "xed_5x5_storage2_ir", 10 ], + [ "xed_5x5_storage3_ir", 10 ], + [ "xed_5x5_cleaning1_ir", 20 ], + [ "xed_5x5_cleaning2_ir", 20 ] + ], + "x": [ 39, 39 ], + "y": [ 24, 24 ] + }, + { + "chunks": [ [ "xed_5x5_register_ur", 20 ], [ "xed_5x5_office_ur", 20 ], [ "xed_5x5_benches_ur", 10 ], [ "xed_5x5_sofa_ur", 10 ] ], + "x": [ 39, 39 ], + "y": [ 27, 27 ] + }, + { + "chunks": [ + [ "14x14_office_glass_nw", 1 ], + [ "14x14_office_cubicle_nw", 1 ], + [ "14x14_office_generic_nw", 1 ], + [ "14x14_office_slide_nw", 1 ], + [ "14x14_office_crowded_nw", 1 ] + ], + "x": [ 4, 4 ], + "y": [ 5, 5 ] + }, + { + "chunks": [ + [ "xed_5x5_register_ol", 20 ], + [ "xed_5x5_office1_ol", 10 ], + [ "xed_5x5_office2_ol", 10 ], + [ "xed_5x5_sofas_ol", 20 ] + ], + "x": [ 4, 4 ], + "y": [ 14, 14 ] + }, + { + "chunks": [ + [ "xed_office_glass_ar", 20 ], + [ "xed_office_private_ar", 20 ], + [ "xed_office_ar", 20 ], + [ "xed_office_slide_ar", 20 ], + [ "xed_office_crowded_ar", 20 ] + ], + "x": [ 30, 30 ], + "y": [ 1, 1 ] + }, + { + "chunks": [ [ "xed_5x5_register_or", 20 ], [ "xed_5x5_office_or", 20 ], [ "xed_5x5_sofas_or", 20 ] ], + "x": [ 39, 39 ], + "y": [ 14, 14 ] + }, + { + "chunks": [ [ "xed_8x8_containment", 20 ], [ "xed_8x8_containment_empty", 20 ] ], + "x": [ 16, 16 ], + "y": [ 4, 4 ] + }, + { + "chunks": [ [ "xed_8x8_boss_ar", 20 ], [ "xed_8x8_sofas_ar", 20 ], [ "xed_8x8_office_ar", 20 ], [ "xed_8x8_files_ar", 20 ] ], + "x": [ 24, 24 ], + "y": [ 4, 4 ] + }, + { + "chunks": [ [ "xed_8x8_mr1_l", 20 ], [ "xed_8x8_mr2_l", 20 ], [ "xed_8x8_mr3_l", 20 ] ], + "x": [ 16, 16 ], + "y": [ 35, 35 ] + }, + { + "chunks": [ [ "xed_8x8_mr1_r", 20 ], [ "xed_8x8_mr2_r", 20 ], [ "xed_8x8_mr3_r", 20 ], [ "xed_8x8_mr4_r", 20 ] ], + "x": [ 24, 24 ], + "y": [ 35, 35 ] + } + ], + "place_monsters": [ + { "monster": "GROUP_FERAL_AGENTS", "x": [ 4, 23 ], "y": [ 5, 23 ], "density": 0.4 }, + { "monster": "GROUP_FERAL_AGENTS", "x": [ 24, 43 ], "y": [ 29, 47 ], "density": 0.4 }, + { "monster": "GROUP_FERAL_AGENTS", "x": [ 4, 23 ], "y": [ 0, 18 ], "density": 0.4 }, + { "monster": "GROUP_FERAL_AGENTS", "x": [ 24, 43 ], "y": [ 24, 42 ], "density": 0.4 }, + { "monster": "GROUP_Exodii_Jotunn", "x": [ 4, 23 ], "y": [ 5, 23 ], "density": 0.2 }, + { "monster": "GROUP_Exodii_Jotunn", "x": [ 24, 43 ], "y": [ 29, 47 ], "density": 0.2 }, + { "monster": "GROUP_Exodii_Jotunn", "x": [ 4, 23 ], "y": [ 0, 18 ], "density": 0.2 }, + { "monster": "GROUP_Exodii_Jotunn", "x": [ 24, 43 ], "y": [ 24, 42 ], "density": 0.2 } + ], + "palettes": [ "field_office_palette" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "field_office_ex_13", "field_office_ex_14" ], [ "field_office_ex_15", "field_office_ex_16" ] ], + "method": "json", + "weight": 250, + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "///511111111111111111111111111111111111111115///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzz|---|---|zzzzzz|---|---|zzzzzzzz4///", + "///2zzzzzzzz|'R>|XXX|zzzzzz|XXX|'R>|zzzzzzzz4///", + "///2zzzzzzzz|'R'|XXX|zzzzzz|XXX|'R'|zzzzzzzz4///", + "///2zzzzzzzz|'''|N''wzzzzzzw''N|'''|zzzzzzzz4///", + "///2zzzzzzzz|'''|N'x|zzzzzz|x'N|'''|zzzzzzzz4///", + "///2zzzzzzzz|-=-|-=-|zzzzzz|-=-|-=-|zzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///533333333333333333333333333333333333333335///", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////" + ], + "palettes": [ "field_office_palette" ], + "place_nested": [ + { "chunks": [ [ "roof_16x16_help", 3000 ], [ "null", 10 ] ], "x": [ 4, 8 ], "y": [ 30, 38 ] }, + { + "chunks": [ + [ "null", 20 ], + [ "roof_4x4_utility_1", 20 ], + [ "roof_4x4_utility", 20 ], + [ "roof_2x2_utilities", 20 ], + [ "roof_2x2_utilities_c", 20 ], + [ "roof_2x2_utilities_b", 20 ] + ], + "x": [ 13, 19 ], + "y": [ 6, 15 ] + }, + { + "chunks": [ + [ "null", 20 ], + [ "roof_4x4_utility_1", 20 ], + [ "roof_4x4_utility", 20 ], + [ "roof_2x2_utilities", 20 ], + [ "roof_2x2_utilities_c", 20 ], + [ "roof_2x2_utilities_b", 20 ] + ], + "x": [ 24, 40 ], + "y": [ 30, 38 ] + }, + { + "chunks": [ + [ "null", 20 ], + [ "roof_4x4_utility_1", 20 ], + [ "roof_4x4_utility", 20 ], + [ "roof_2x2_utilities", 20 ], + [ "roof_2x2_utilities_c", 20 ], + [ "roof_2x2_utilities_b", 20 ] + ], + "x": [ 24, 40 ], + "y": [ 6, 15 ] + } + ], + "place_monsters": [ + { "monster": "GROUP_FERAL_AGENTS", "x": [ 5, 23 ], "y": [ 6, 23 ], "density": 0.3 }, + { "monster": "GROUP_FERAL_AGENTS", "x": [ 5, 23 ], "y": [ 6, 18 ], "density": 0.3 } + ] + } + }, { "type": "mapgen", "om_terrain": [ [ "field_office_17", "field_office_18" ], [ "field_office_19", "field_office_20" ] ], diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen_palettes/field_office_palette.json b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen_palettes/field_office_palette.json index e4f22d782..3037079b7 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mapgen_palettes/field_office_palette.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mapgen_palettes/field_office_palette.json @@ -25,6 +25,7 @@ " ": "t_region_groundcover_urban", ",": "t_pavement_y", "_": "t_pavement", + "L": "t_door_metal_locked", "%": [ [ "t_region_shrub_decorative", 16 ], [ "t_region_groundcover_forest", 5 ] ], "I": "t_region_tree_shade", "+": "t_door_c", @@ -67,12 +68,13 @@ "e": "f_fridge", "^": [ "f_indoor_plant", "f_indoor_plant_y" ], "r": "f_rack", + "g": "f_rack", "S": "f_sink", "T": "f_toilet", "O": [ [ "f_cardboard_box", 6 ], "f_crate_c" ], "a": "f_trashcan", "F": "f_filing_cabinet", - "Q": "f_gun_safe_el", + "Q": "f_locker", "x": "f_console_broken", "X": "f_generator_broken", "N": "f_machinery_heavy", @@ -93,10 +95,11 @@ ], "o": { "item": "oven", "chance": 70 }, "r": [ { "item": "office_supplies", "chance": 65, "repeat": [ 1, 10 ] } ], + "g": [ { "item": "xe_border_patrol_evidence", "chance": 65 } ], "y": { "item": "cleaning", "chance": 60, "repeat": [ 1, 2 ] }, "Y": { "item": "jackets", "chance": 90, "repeat": [ 3, 8 ] }, "a": { "item": "trash", "chance": 70, "repeat": [ 2, 5 ] }, - "Q": { "item": "guns_smg_rare", "chance": 70, "repeat": [ 1, 3 ] }, + "Q": { "item": "nested_fn_p90", "chance": 70, "repeat": [ 1, 3 ] }, "t": { "item": "dining", "chance": 40, "repeat": [ 1, 2 ] }, "F": { "item": "file_room", "chance": 70, "repeat": [ 1, 10 ] }, ".": { "item": "office_mess", "chance": 1 } diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/material.json b/data/Mainline_mods/Mods/Xedra_Evolved/material.json index 531a1fac5..237473325 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/material.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/material.json @@ -3,17 +3,12 @@ "type": "material", "id": "fae_fur", "name": "Glimmer Fur", + "//": "Shimmering fur common to creatures from Under the hill.", "density": 12, "specific_heat_liquid": 0.02, "specific_heat_solid": 0.02, "latent_heat": 333, "soft": true, - "bash_resist": 2, - "cut_resist": 2, - "bullet_resist": 6, - "acid_resist": 3, - "fire_resist": 1, - "elec_resist": 2, "chip_resist": 8, "breathability": "POOR", "repaired_with": "fur", @@ -25,7 +20,9 @@ { "fuel": 1, "smoke": 3, "burn": 1, "volume_per_turn": "1250 ml" }, { "fuel": 1, "smoke": 5, "burn": 2 }, { "fuel": 1, "smoke": 10, "burn": 4 } - ] + ], + "resist": { "bash": 2, "cut": 2, "acid": 3, "heat": 1, "bullet": 6, "electric": 2 }, + "repair_difficulty": 4 }, { "type": "material", @@ -37,7 +34,7 @@ { "fuel": -50, "smoke": 2, "burn": 1 }, { "fuel": -10, "smoke": 2, "burn": 2 } ], - "fuel_data": { "energy": "10000 kJ" }, + "fuel_data": { "energy": "1 kJ" }, "vitamins": [ [ "calcium", 0.1 ], [ "iron", 1.3 ], [ "underhill_essence", 5 ] ] }, { @@ -50,12 +47,6 @@ "latent_heat": 260, "edible": true, "rotting": true, - "bash_resist": 1, - "cut_resist": 1, - "bullet_resist": 1, - "acid_resist": 1, - "fire_resist": 1, - "elec_resist": 1, "chip_resist": 2, "dmg_adj": [ "bruised", "mutilated", "badly mutilated", "thoroughly mutilated" ], "bash_dmg_verb": "bruised", @@ -65,70 +56,68 @@ { "fuel": 1, "smoke": 1, "burn": 1, "volume_per_turn": "2500 ml" }, { "fuel": 2, "smoke": 3, "burn": 2, "volume_per_turn": "10000 ml" }, { "fuel": 3, "smoke": 10, "burn": 3 } - ] + ], + "resist": { "bash": 1, "cut": 1, "acid": 1, "heat": 1, "bullet": 1, "electric": 1 } + }, + { + "type": "material", + "id": "mana", + "name": "Mana", + "copy-from": "pseudo_fuel", + "fuel_data": { "energy": "500000 kJ", "perpetual": true } }, { "type": "material", "id": "moon_tears", "name": "Moon Tears", + "//": "Common matrial used by Fae artisans instead of iron.", "density": 13, - "bash_resist": 13, "specific_heat_liquid": 0.82, "specific_heat_solid": 0.45, "latent_heat": 273, - "cut_resist": 20, - "bullet_resist": 16, - "acid_resist": 10, - "fire_resist": 10, - "elec_resist": 10, "chip_resist": 40, "repaired_with": "moon_tear_ingot", "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], "bash_dmg_verb": "dented", - "cut_dmg_verb": "scratched" + "cut_dmg_verb": "scratched", + "resist": { "bash": 13, "cut": 20, "acid": 10, "heat": 10, "bullet": 16, "electric": 10 }, + "repair_difficulty": 4 }, { "type": "material", "id": "moon_tears_fine_chain", "name": "Moon Tears Fine Chain", "density": 13, - "bash_resist": 13, "specific_heat_liquid": 0.82, "specific_heat_solid": 0.45, "latent_heat": 273, - "cut_resist": 20, - "bullet_resist": 16, - "acid_resist": 10, - "fire_resist": 10, - "elec_resist": 10, "chip_resist": 40, "repaired_with": "moon_tear_chain_link", "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], "bash_dmg_verb": "dented", "cut_dmg_verb": "scratched", - "breathability": "GOOD" + "breathability": "GOOD", + "resist": { "bash": 13, "cut": 20, "acid": 10, "heat": 10, "bullet": 16, "electric": 10 }, + "repair_difficulty": 5 }, { "type": "material", "id": "dreamstuff", "name": "Dreamdross", - "//": "Brass is the base metal with one fourth the density and added breathability", + "//": "Brass is the base metal of dreamdross with one fourth the density and added breathability", "density": 2.2, "specific_heat_liquid": 0.49, "specific_heat_solid": 0.39, "latent_heat": 205, - "bash_resist": 3, - "cut_resist": 4, - "bullet_resist": 2, - "acid_resist": 16, - "fire_resist": 2, "conductive": true, - "chip_resist": 15, + "chip_resist": 18, "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], "salvaged_into": "scrap_dreamdross", "bash_dmg_verb": "dented", "cut_dmg_verb": "scratched", - "breathability": "GOOD" + "breathability": "GOOD", + "resist": { "bash": 3, "cut": 4, "acid": 16, "heat": 2, "bullet": 2 }, + "repair_difficulty": 5 }, { "type": "material", @@ -139,18 +128,56 @@ "specific_heat_liquid": 0.49, "specific_heat_solid": 0.39, "latent_heat": 205, - "bash_resist": 8, - "cut_resist": 9, - "bullet_resist": 6, - "acid_resist": 16, - "fire_resist": 4, "conductive": true, - "chip_resist": 15, + "chip_resist": 22, "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], "repaired_with": "forged_dreamstuff_ingot", "salvaged_into": "dreamdross_lump", "bash_dmg_verb": "dented", "cut_dmg_verb": "scratched", - "breathability": "GOOD" + "breathability": "GOOD", + "resist": { "bash": 8, "cut": 9, "acid": 16, "heat": 4, "bullet": 6 }, + "repair_difficulty": 6 + }, + { + "type": "material", + "id": "flesh_roots", + "//": "rootlike structures, with semi woodlike consistency", + "density": 3.5, + "name": "Flesh Roots", + "breathability": "SECOND_SKIN", + "specific_heat_liquid": 0.82, + "specific_heat_solid": 0.45, + "latent_heat": 273, + "chip_resist": 20, + "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], + "bash_dmg_verb": "dented", + "cut_dmg_verb": "scratched", + "resist": { "bash": 5, "cut": 5, "acid": -1, "heat": -6, "bullet": 3 } + }, + { + "type": "material", + "id": "vampire_blood", + "name": "Vampire Blood", + "copy-from": "blood", + "burn_data": [ + { "fuel": -100, "smoke": 1, "burn": 1 }, + { "fuel": -50, "smoke": 2, "burn": 1 }, + { "fuel": -10, "smoke": 2, "burn": 2 } + ], + "fuel_data": { "energy": "100 kJ" } + }, + { + "type": "material", + "id": "elemental_water", + "name": "elemental water", + "//": "Trying to give it the resistances of frozen water in plastic jugs.", + "density": 2, + "soft": true, + "chip_resist": 15, + "dmg_adj": [ "scratched", "cut", "shredded", "tattered" ], + "bash_dmg_verb": "shaken", + "cut_dmg_verb": "rippled", + "resist": { "bash": 6, "cut": 3, "acid": 20, "heat": 2, "bullet": 3 } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/BombasticPerks/perks/perk_data/Alchemy1.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/BombasticPerks/perks/perk_data/Alchemy1.json new file mode 100644 index 000000000..7db3dc57f --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/BombasticPerks/perks/perk_data/Alchemy1.json @@ -0,0 +1,102 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_COMPLETED_ROLL_REMAINDER_ALCHEMY", + "effect": { "u_message": "You have learned all the secrets of this level." } + }, + { + "type": "effect_on_condition", + "id": "EOC_SUCCESFUL_ROLL_REMAINDER_ALCHEMY", + "effect": { "u_message": "You learn a new secret of alchemy." } + }, + { + "type": "effect_on_condition", + "id": "EOC_ALCHEMY1", + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY1" }, { "not": { "u_has_effect": "mental_exhaustion" } } ] }, + "effect": [ + { + "u_roll_remainder": [ "extra_str_aspirin", "blackout_rage_drink", "sixdust", "small_blessing_brigit" ], + "type": "recipe", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER_ALCHEMY" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_ALCHEMY" ] + }, + { "u_add_effect": "mental_exhaustion", "intensity": 1, "duration": "24 hours" } + ], + "false_effect": [ { "u_message": "Your thoughts are too scattered to unearth more secrets of the universe." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ALCHEMY2", + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY2" }, { "not": { "u_has_effect": "mental_exhaustion" } } ] }, + "effect": [ + { + "u_roll_remainder": [ "prophets_lsd", "truckers_stamina_pills", "spiritshow_dust", "charm_of_marzanna" ], + "type": "recipe", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER_ALCHEMY" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_ALCHEMY" ] + }, + { "u_add_effect": "mental_exhaustion", "intensity": 1, "duration": "48 hours" } + ], + "false_effect": [ { "u_message": "Your thoughts are too scattered to unearth more secrets of the universe." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ALCHEMY3", + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY3" }, { "not": { "u_has_effect": "mental_exhaustion" } } ] }, + "effect": [ + { + "u_roll_remainder": [ + "feline_periapta", + "lupine_periapta", + "cephalopod_periapta", + "plant_periapta", + "scorpion_periapta", + "butterfly_periapta", + "spider_periapta", + "cold_iron_ingot" + ], + "type": "recipe", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER_ALCHEMY" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_ALCHEMY" ] + }, + { "u_add_effect": "mental_exhaustion", "intensity": 1, "duration": "96 hours" } + ], + "false_effect": [ { "u_message": "Your thoughts are too scattered to unearth more secrets of the universe." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_COLD_IRON", + "condition": { + "and": [ + { "u_has_trait": "perk_ALCHEMY3" }, + { "u_has_trait": "perk_ALCHEMY3_COLD_IRON" }, + { "not": { "u_has_effect": "mental_exhaustion" } } + ] + }, + "effect": [ + { + "u_roll_remainder": [ "cold_iron_knife", "cold_iron_sword", "cold_iron_warhammer", "cold_iron_battleaxe", "blood_of_saints" ], + "type": "recipe", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER_ALCHEMY" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_ALCHEMY" ] + }, + { "u_add_effect": "mental_exhaustion", "intensity": 1, "duration": "96 hours" } + ], + "false_effect": [ { "u_message": "Your thoughts are too scattered to unearth more secrets of the universe." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ALCHEMY4", + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY4" }, { "not": { "u_has_effect": "mental_exhaustion" } } ] }, + "effect": [ + { + "u_roll_remainder": [ "life_extension_potion", "potion_strength", "potion_dex", "hares_leap_potion" ], + "type": "recipe", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER_ALCHEMY" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_ALCHEMY" ] + }, + { "u_add_effect": "mental_exhaustion", "intensity": 1, "duration": "192 hours" } + ], + "false_effect": [ { "u_message": "Your thoughts are too scattered to unearth more secrets of the universe." } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/BombasticPerks/perks/perk_menu.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/BombasticPerks/perks/perk_menu.json new file mode 100644 index 000000000..91a22a5a9 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/BombasticPerks/perks/perk_menu.json @@ -0,0 +1,239 @@ +[ + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "not": { "u_has_trait": "perk_ALCHEMY1" } }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY1" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY1", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY1" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY1" }, { "not": { "u_has_trait": "perk_ALCHEMY2" } } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY2" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY2", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY2" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY2" }, { "not": { "u_has_trait": "perk_ALCHEMY3" } } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY3" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY3", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY3" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { + "and": [ + { "u_has_trait": "perk_ALCHEMY3" }, + { "u_know_recipe": "cold_iron_ingot" }, + { "not": { "u_has_trait": "perk_ALCHEMY3_COLD_IRON" } } + ] + }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY3_COLD_IRON" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY3_COLD_IRON", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY3_COLD_IRON" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY3" }, { "not": { "u_has_trait": "perk_ALCHEMY4" } } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY4" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY4", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY4" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY4" }, { "not": { "u_has_trait": "perk_ALCHEMY5" } } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY5" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY4", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY5" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "not": { "u_has_trait": "perk_LOW_INT_MANA" } }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_LOW_INT_MANA" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_LOW_INT_MANA", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_LOW_INT_MANA" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/BombasticPerks/perks/perks.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/BombasticPerks/perks/perks.json new file mode 100644 index 000000000..e1eb29cff --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/BombasticPerks/perks/perks.json @@ -0,0 +1,97 @@ +[ + { + "type": "mutation", + "id": "perk_ALCHEMY1", + "name": { "str": "Basic Alchemical Knowledge" }, + "points": 0, + "description": "You spent years before the Cataclysm researching esoteric sciences and occult mysteries but only now in the heat of survival, have you experienced the epiphany that will allow you to create alchemical substances.", + "category": [ "perk" ], + "starting_trait": false, + "valid": false, + "purifiable": false, + "active": true, + "activated_eocs": [ "EOC_ALCHEMY1" ] + }, + { + "type": "mutation", + "id": "perk_ALCHEMY2", + "name": { "str": "Initiate Alchemy" }, + "points": 0, + "description": "The days and weeks since the Cataclysm have been a blur of ideas and thoughts that you can only wish you had been able to think of before everything ended.", + "category": [ "perk" ], + "starting_trait": false, + "valid": false, + "purifiable": false, + "active": true, + "activated_eocs": [ "EOC_ALCHEMY2" ] + }, + { + "type": "mutation", + "id": "perk_ALCHEMY3", + "name": { "str": "Adept Alchemical Knowledge" }, + "points": 0, + "description": "The things you've learned would have changed your life in the old days, you could have dropped out of the rat race and become a hidden master of the occult.", + "category": [ "perk" ], + "starting_trait": false, + "valid": false, + "purifiable": false, + "active": true, + "activated_eocs": [ "EOC_ALCHEMY3" ] + }, + { + "type": "mutation", + "id": "perk_ALCHEMY3_COLD_IRON", + "name": { "str": "Cold Iron Knowledge" }, + "points": 0, + "description": "You've mastered the technique of cold forging iron from ingots into various items and weapons that are particularly effective against creatures from faerie myths.", + "category": [ "perk" ], + "starting_trait": false, + "valid": false, + "purifiable": false, + "active": true, + "activated_eocs": [ "EOC_ALCHEMY3_COLD_IRON" ] + }, + { + "type": "mutation", + "id": "perk_ALCHEMY4", + "name": { "str": "Magister Alchemical Knowledge" }, + "points": 0, + "description": "At this stage in your occult education, normally you would start a small cabal of your own with apprentices that would engage in research and material gathering. You would likely have several rich patrons financing you in return for alchemical medicines and goods to give them health and longevity.", + "category": [ "perk" ], + "starting_trait": false, + "valid": false, + "purifiable": false, + "active": true, + "activated_eocs": [ "EOC_ALCHEMY4" ] + }, + { + "type": "mutation", + "id": "perk_ALCHEMY5", + "name": { "str": "Illuminated Alchemy" }, + "points": 0, + "description": "Truly you have become one of the hidden occult masters of the world. It's a pity that so few people are around for you to enjoy the benefits of your knowledge. At least it's helping you to survive and maybe even thrive in this post-Cataclysm world.", + "category": [ "perk" ], + "starting_trait": false, + "valid": false, + "purifiable": false, + "active": true, + "activated_eocs": [ "EOC_ALCHEMY5" ] + }, + { + "type": "mutation", + "id": "perk_LOW_INT_MANA", + "name": { "str": "Mana for Morons" }, + "points": 0, + "description": "Maybe you aren't a genius, but something inside of you grants previously hidden reserves of mana.", + "category": [ "perk" ], + "starting_trait": false, + "valid": false, + "purifiable": false, + "enchantments": [ + { + "condition": "ALWAYS", + "values": [ { "value": "MAX_MANA", "add": { "math": [ "( 16 - clamp(u_val('intelligence'), 8, 16) ) * 62.5" ] } } ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/main_menu.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/main_menu.json new file mode 100644 index 000000000..f84b3bde2 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/main_menu.json @@ -0,0 +1,27 @@ +[ + { + "type": "talk_topic", + "id": "TALK_DEFENSE_MODE_PRESET_GAME_MENU", + "responses": [ + { + "text": "Assault On Precinct 13: (Hold out against the Exodii with five of your coworkers in your office building.)", + "effect": [ + { "math": [ "regular_zombies_allowed", "=", "0" ] }, + { "math": [ "special_zombies_allowed", "=", "0" ] }, + { "math": [ "spiders_allowed", "=", "0" ] }, + { "math": [ "triffids_allowed", "=", "0" ] }, + { "math": [ "robots_allowed", "=", "0" ] }, + { "math": [ "subspace_allowed", "=", "0" ] }, + { "math": [ "exodii_allowed", "=", "1" ] }, + { + "u_location_variable": { "global_val": "your_spawnpoint" }, + "target_params": { "om_terrain": "dm_field_office_8", "search_range": 500, "z": 0 } + }, + { "u_teleport": { "global_val": "your_spawnpoint" } }, + { "mapgen_update": "precinct_13_spawns" } + ], + "topic": "TALK_DONE" + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/monster_corpses.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/monster_corpses.json new file mode 100644 index 000000000..9d7493824 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/monster_corpses.json @@ -0,0 +1,20 @@ +[ + { + "type": "GENERIC", + "id": "broken_dm_exodii_worker", + "name": { "str": "broken Exodii worker" }, + "copy-from": "broken_exodii_worker" + }, + { + "type": "GENERIC", + "id": "broken_dm_exodii_quad", + "name": { "str": "broken Exodii quadruped" }, + "copy-from": "broken_exodii_quad" + }, + { + "type": "GENERIC", + "id": "broken_dm_exodii_quad_jotunn", + "name": { "str": "broken Exodii Jotunn" }, + "copy-from": "broken_exodii_quad_jotunn" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/monstergroups.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/monstergroups.json new file mode 100644 index 000000000..b24d6a6d6 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/monstergroups.json @@ -0,0 +1,37 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_DEFENSE_MODE_EXODII", + "//": "A small Exodii hunter/killer unit or party, respecialized for Defense Mode.", + "monsters": [ + { "monster": "mon_dm_exodii_quad_jotunn", "weight": 20 }, + { "monster": "mon_dm_exodii_quad", "weight": 100 }, + { "monster": "mon_dm_exodii_worker", "weight": 50, "cost_multiplier": 20, "pack_size": [ 1, 3 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_DEFENSE_MODE_XEDRA", + "monsters": [ + { "monster": "mon_dm_changeling", "weight": 100, "cost_multiplier": 1 }, + { "monster": "mon_dm_fetch_child", "weight": 400, "cost_multiplier": 0 }, + { "monster": "mon_dm_fae_wolf", "weight": 250, "cost_multiplier": 5 }, + { "monster": "mon_dm_goblin_spider", "weight": 100, "cost_multiplier": 1 }, + { "monster": "mon_dm_changeling_bannerman", "weight": 100, "cost_multiplier": 1 }, + { "monster": "mon_dm_fetch_daffodil_warrior", "weight": 400, "cost_multiplier": 0 }, + { "monster": "mon_dm_pooka_aspirant", "weight": 10, "cost_multiplier": 4 }, + { "monster": "mon_dm_redcap_aspirant", "weight": 10, "cost_multiplier": 4 }, + { "monster": "mon_dm_vampire_moroi", "weight": 25 }, + { "monster": "mon_dm_vampire_strigoi", "weight": 15 }, + { "monster": "mon_dm_water_sprite", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_dm_spitting_lizard", "weight": 400, "cost_multiplier": 0 }, + { "monster": "mon_dm_smoke_mephit", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_dm_skyglass_butterflies", "weight": 80, "cost_multiplier": 0 }, + { "monster": "mon_dm_dragonfly_fae", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_dm_vineling", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_dm_ratatosk_children", "weight": 400, "cost_multiplier": 0 }, + { "monster": "mon_dm_zoomorphic_figure_small", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_dm_venus_doll", "weight": 400, "cost_multiplier": 0 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/monsters.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/monsters.json new file mode 100644 index 000000000..b09bc6fe9 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/monsters.json @@ -0,0 +1,248 @@ +[ + { + "id": "mon_dm_exodii_worker", + "copy-from": "mon_exodii_worker", + "type": "MONSTER", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_exodii_quad", + "copy-from": "mon_exodii_quad", + "type": "MONSTER", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_exodii_quad_jotunn", + "copy-from": "mon_exodii_quad_jotunn", + "type": "MONSTER", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_changeling", + "copy-from": "mon_changeling", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_fetch_child", + "copy-from": "mon_fetch_child", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_fae_wolf", + "copy-from": "mon_fae_wolf", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_goblin_spider", + "copy-from": "mon_goblin_spider", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_changeling_bannerman", + "copy-from": "mon_changeling_bannerman", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_fetch_daffodil_warrior", + "copy-from": "mon_fetch_daffodil_warrior", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_pooka_aspirant", + "copy-from": "mon_pooka_aspirant", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_redcap_aspirant", + "copy-from": "mon_redcap_aspirant", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_vampire_moroi", + "copy-from": "mon_vampire_moroi", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_vampire_strigoi", + "copy-from": "mon_vampire_strigoi", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_water_sprite", + "copy-from": "mon_water_sprite", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_spitting_lizard", + "copy-from": "mon_spitting_lizard", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_smoke_mephit", + "copy-from": "mon_smoke_mephit", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_skyglass_butterflies", + "copy-from": "mon_skyglass_butterflies", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_dragonfly_fae", + "copy-from": "mon_dragonfly_fae", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_vineling", + "copy-from": "mon_vineling", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_ratatosk_children", + "copy-from": "mon_ratatosk_children", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_zoomorphic_figure_small", + "copy-from": "mon_zoomorphic_figure_small", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + }, + { + "id": "mon_dm_venus_doll", + "copy-from": "mon_venus_doll", + "type": "MONSTER", + "species": [ "DM_XEDRA_EVOLVED" ], + "default_faction": "zombie", + "aggro_character": true, + "vision_day": 99, + "vision_night": 99, + "aggression": 100, + "morale": 100 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/npcs.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/npcs.json new file mode 100644 index 000000000..feca03e1d --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/npcs.json @@ -0,0 +1,72 @@ +[ + { + "type": "npc", + "id": "follower_xedra_zebra_officer", + "//": "Scenario specific NPC, should not spawn outside of trigger events.", + "class": "NC_ZEBRA_INVESTIGATOR", + "attitude": 3, + "mission": 0, + "chat": "TALK_FRIEND", + "faction": "your_followers" + }, + { + "type": "npc_class", + "id": "NC_ZEBRA_INVESTIGATOR", + "name": "Zebra Investigator", + "job_description": "I've seen things I don't want to remember, strange far worlds and stuff.", + "skills": [ + { "skill": "speech", "bonus": { "rng": [ 3, 3 ] } }, + { "skill": "gun", "bonus": { "rng": [ 3, 3 ] } }, + { "skill": "pistol", "bonus": { "rng": [ 3, 3 ] } } + ], + "bonus_int": { "rng": [ 0, 2 ] }, + "bonus_per": { "rng": [ 0, 2 ] }, + "bonus_str": { "rng": [ 0, 2 ] }, + "bonus_dex": { "rng": [ 0, 2 ] }, + "worn_override": "zebra_worn_override", + "carry_override": "zebra_carry_override", + "weapon_override": "zebra_weapon_override", + "traits": [ + { "group": "Appearance_demographics" }, + { "group": "BG_survival_story_UNIVERSAL" }, + { "group": "NPC_starting_traits" } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "zebra_worn_override", + "entries": [ + { "item": "pants" }, + { "item": "dress_shirt" }, + { "item": "tie_skinny" }, + { "item": "blazer" }, + { "item": "trenchcoat" }, + { "item": "badge_zebra" }, + { "item": "gloves_leather" }, + { "item": "wristwatch" }, + { "item": "socks" }, + { "item": "dress_shoes" }, + { "item": "cig" }, + { "item": "shoulder_holster" } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "zebra_carry_override", + "entries": [ + { "group": "charged_smart_phone" }, + { "group": "charged_two_way_radio" }, + { "group": "charged_ref_lighter" }, + { "group": "suppressed_fn57" }, + { "group": "diazepam_scrip" } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "zebra_weapon_override", + "entries": [ { "item": "fn57_sup", "ammo-item": "57mm_ss", "charges": 20 } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/overmap_specials.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/overmap_specials.json new file mode 100644 index 000000000..cbda01da2 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/overmap_specials.json @@ -0,0 +1,668 @@ +[ + { + "type": "overmap_special", + "id": "defense_mode_field_office", + "overmaps": [ + { "point": [ 1, 1, 0 ], "overmap": "dm_field_office_5_south" }, + { "point": [ 0, 1, 0 ], "overmap": "dm_field_office_6_south" }, + { "point": [ 1, 0, 0 ], "overmap": "dm_field_office_7_south" }, + { "point": [ 0, 0, 0 ], "overmap": "dm_field_office_8_south" }, + { "point": [ 1, 1, -1 ], "overmap": "dm_field_office_1_south" }, + { "point": [ 0, 1, -1 ], "overmap": "dm_field_office_2_south" }, + { "point": [ 1, 0, -1 ], "overmap": "dm_field_office_3_south" }, + { "point": [ 0, 0, -1 ], "overmap": "dm_field_office_4_south" }, + { "point": [ 1, 1, 1 ], "overmap": "dm_field_office_9_south" }, + { "point": [ 0, 1, 1 ], "overmap": "dm_field_office_10_south" }, + { "point": [ 1, 0, 1 ], "overmap": "dm_field_office_11_south" }, + { "point": [ 0, 0, 1 ], "overmap": "dm_field_office_12_south" }, + { "point": [ 1, 1, 2 ], "overmap": "dm_field_office_9_south" }, + { "point": [ 0, 1, 2 ], "overmap": "dm_field_office_10_south" }, + { "point": [ 1, 0, 2 ], "overmap": "dm_field_office_11_south" }, + { "point": [ 0, 0, 2 ], "overmap": "dm_field_office_12_south" }, + { "point": [ 1, 1, 3 ], "overmap": "dm_field_office_13_south" }, + { "point": [ 0, 1, 3 ], "overmap": "dm_field_office_14_south" }, + { "point": [ 1, 0, 3 ], "overmap": "dm_field_office_15_south" }, + { "point": [ 0, 0, 3 ], "overmap": "dm_field_office_16_south" }, + { "point": [ 1, 1, 4 ], "overmap": "dm_field_office_17_south" }, + { "point": [ 0, 1, 4 ], "overmap": "dm_field_office_18_south" }, + { "point": [ 1, 0, 4 ], "overmap": "dm_field_office_19_south" }, + { "point": [ 0, 0, 4 ], "overmap": "dm_field_office_20_south" } + ], + "locations": [ "land" ], + "city_distance": [ 40, -1 ], + "occurrences": [ 100, 100 ], + "flags": [ "DEFENSE_MODE", "GLOBALLY_UNIQUE" ] + }, + { + "type": "mapgen", + "om_terrain": [ [ "dm_field_office_1", "dm_field_office_2" ], [ "dm_field_office_3", "dm_field_office_4" ] ], + "method": "json", + "weight": 250, + "object": { + "fill_ter": "t_floor", + "rows": [ + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~##########################################~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#,___________,_____,'',_____,___________,#~~~", + "~~~#________________________________________#~~~", + "~~~#________________________________________#~~~", + "~~~#________________________________________#~~~", + "~~~#________________________________________#~~~", + "~~~#________________________________________#~~~", + "~~~#________________________________________#~~~", + "~~~#___,,___,____,____,'',____,____,________#~~~", + "~~~#__,,,,__,____,____,'',____,____,________#~~~", + "~~~#___,,___,____,____,'',____,____,________#~~~", + "~~~#___,,___,____,____,'',____,____,________#~~~", + "~~~#________,____,____,'',____,____,________#~~~", + "~~~#________,____,____,'',____,____,________#~~~", + "~~~#_________#########HGGH########__________#~~~", + "~~~#_________#R<|EEE|......|xEE|>R<|...|rrrr|%ss", + "ss%|----|...|'R'|EEED......DEEE|'R'|...|----|%ss", + "ss%|:::::...|'''|EEED......DEEE|'''|...:::::|%ss", + "ss%|:::::...|'''|EEx|......|EEE|'''|...:::::|%ss", + "ss%|:::::...|-+-|---|^....^|---|-+-|...:::::|%ss", + "ss%Vc.h.+..........................+...:::::V%ss", + "ss%Vcddx|^.........................+...:::::V%ss", + "ssI|----|-|-+--ccc--|-+----|...|---|...:::::|%ss", + "ss%|QQQQQQ|..cc.h..F|d.cc.F|...='''+...:::::V%ss", + "sss|''''''L...h....F|dh...F|HGH|rrr|^..::::^V%ss", + "ss%|QQQQQQ|7xdd....F|xxx|--|...|---|--------|%ss", + "ssI|------|---------|---|..a...::::::::.....VIss", + "ss%|~################~~~|......::::::::.....Vsss", + "ss%|~#±±±±±±##±±±±±±#~~~|......::::::::.....Gsss", + "ss%|~#ŦŦŦŦŦŦ##ŦŦŦŦŦŦ#~~~|......::::::::.....Gsss", + "ss%|~#______##______#~~~|Ycbbbc.......cbbbcYVsss", + "ss%|~#__,,__##__,,__#~~~|...................Gsss", + "ss%|~#_,,,,_##__,,__#~~~|...................Gsss", + "ss%|~#__,,__##_,,,,_#~~~|...................Vsss", + "ss%|~#__,,__##__,,__#~~~|...................VIss", + "ss%|~#______##______#~~~|Ycbbbc.......cbbbcY|%ss", + "ss%||#__,,__##__,,__#-----HHHHHGGHHGGHHHHH--|%ss", + "ss%I _,,,,_ss__,,__ I%%%%%I ssssssss I%%%%%Iss", + "ss __,,__ss_,,,,_ ssssssss ss", + "ssssss__,,__ss__,,__ssssssssssssssssssssssssssss", + "ssssss______ss______ssssssssssssssssssssssssssss" + ], + "palettes": [ "field_office_palette" ], + "computers": { + "7": { + "name": "Border Patrol OS v0.A17 - Armory Access", + "security": 2, + "options": [ { "name": "Unlock Armory", "action": "unlock" } ], + "failures": [ { "action": "shutdown" }, { "action": "alarm" }, { "action": "manhacks" } ] + }, + "6": { + "name": "Border Patrol OS v0.A17 - Evidence Locker Access", + "security": 3, + "options": [ { "name": "Unlock Evidence Locker", "action": "unlock" } ], + "failures": [ { "action": "shutdown" }, { "action": "alarm" }, { "action": "manhacks" } ] + } + }, + "place_nested": [ + { + "chunks": [ [ "xed_4x4_cr1_l", 20 ], [ "xed_4x4_cr2_l", 20 ], [ "xed_4x4_cr3_l", 20 ] ], + "x": [ 31, 31 ], + "y": [ 33, 33 ] + }, + { + "chunks": [ [ "xed_4x4_cr1_r", 20 ], [ "xed_4x4_cr2_r", 20 ], [ "xed_4x4_cr3_r", 20 ] ], + "x": [ 35, 35 ], + "y": [ 33, 33 ] + }, + { + "chunks": [ [ "xed_4x4_cr1_l", 20 ], [ "xed_4x4_cr2_l", 20 ], [ "xed_4x4_cr3_l", 20 ] ], + "x": [ 20, 20 ], + "y": [ 12, 12 ] + }, + { + "chunks": [ [ "xed_4x4_cr1_r", 20 ], [ "xed_4x4_cr2_r", 20 ], [ "xed_4x4_cr3_r", 20 ] ], + "x": [ 24, 24 ], + "y": [ 12, 12 ] + }, + { + "chunks": [ + [ "xed_5x5_register_ol", 20 ], + [ "xed_5x5_office_ur", 20 ], + [ "xed_5x5_benches_ur", 10 ], + [ "xed_5x5_sofa_ur", 10 ], + [ "xed_5x5_office1_ol", 10 ], + [ "xed_5x5_office2_ol", 10 ], + [ "xed_5x5_sofas_ol", 20 ] + ], + "x": [ 39, 39 ], + "y": [ 27, 27 ] + }, + { + "chunks": [ + [ "xed_5x5_toilet_il", 20 ], + [ "xed_5x5_storage1_il", 10 ], + [ "xed_5x5_storage2_il", 10 ], + [ "xed_5x5_storage3_il", 10 ], + [ "xed_5x5_cleaning1_il", 20 ], + [ "xed_5x5_cleaning2_il", 20 ] + ], + "x": [ 4, 4 ], + "y": [ 24, 24 ] + }, + { + "chunks": [ + [ "xed_5x5_toilet_ir", 20 ], + [ "xed_5x5_storage1_ir", 10 ], + [ "xed_5x5_storage2_ir", 10 ], + [ "xed_5x5_storage3_ir", 10 ], + [ "xed_5x5_cleaning1_ir", 20 ], + [ "xed_5x5_cleaning2_ir", 20 ] + ], + "x": [ 39, 39 ], + "y": [ 24, 24 ] + }, + { + "chunks": [ + [ "xed_office_glass_al", 20 ], + [ "xed_office_private_al", 20 ], + [ "xed_office_al", 20 ], + [ "xed_office_slide_al", 20 ], + [ "xed_office_crowded_al", 20 ] + ], + "x": [ 2, 2 ], + "y": [ 1, 1 ] + }, + { + "chunks": [ + [ "xed_5x5_register_ol", 20 ], + [ "xed_5x5_office1_ol", 10 ], + [ "xed_5x5_office2_ol", 10 ], + [ "xed_5x5_sofas_ol", 20 ] + ], + "x": [ 4, 4 ], + "y": [ 14, 14 ] + }, + { + "chunks": [ + [ "xed_office_glass_ar", 20 ], + [ "xed_office_private_ar", 20 ], + [ "xed_office_ar", 20 ], + [ "xed_office_slide_ar", 20 ], + [ "xed_office_crowded_ar", 20 ] + ], + "x": [ 30, 30 ], + "y": [ 1, 1 ] + }, + { + "chunks": [ [ "xed_5x5_register_or", 20 ], [ "xed_5x5_office_or", 20 ], [ "xed_5x5_sofas_or", 20 ] ], + "x": [ 39, 39 ], + "y": [ 14, 14 ] + }, + { + "chunks": [ [ "xed_8x8_boss_al", 20 ], [ "xed_8x8_meeting_al", 20 ], [ "xed_8x8_office_al", 20 ], [ "xed_8x8_eating_al", 20 ] ], + "x": [ 16, 16 ], + "y": [ 4, 4 ] + }, + { + "chunks": [ [ "xed_8x8_boss_ar", 20 ], [ "xed_8x8_sofas_ar", 20 ], [ "xed_8x8_office_ar", 20 ], [ "xed_8x8_files_ar", 20 ] ], + "x": [ 24, 24 ], + "y": [ 4, 4 ] + } + ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "dm_field_office_9", "dm_field_office_10" ], [ "dm_field_office_11", "dm_field_office_12" ] ], + "method": "json", + "weight": 250, + "object": { + "fill_ter": "t_floor", + "rows": [ + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "///|-HHH-HHH-HHH--|HHH-|--HHH|--HHH-HHH-HHH-|///", + "///|::::::::::::::::::::::::::::::::::::::::|///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///|::::::::::::::::::::::::::::::::::::::::|///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::|----|-----|::::::::::::::V///", + "///V::::::::::::::|.::::::::.|::::::::::::::V///", + "///|::::::::::::::|.::::::::.|::::::::::::::|///", + "///V::::::::::::::..::::::::..::::::::::::::V///", + "///V::::::::::::::..::::::::..::::::::::::::V///", + "///V::::::::::::::............::::::::::::::V///", + "///|:::::...|--|-|-|HHHGGHHH|-|-|--|...:::::|///", + "///|:::::...|SS|T|T|........|T|T|SS|...:::::|///", + "///|----|...+ii|+|+|........|+|+|ii+...|----|///", + "///|rrrr|...|iiiiii|........|iiiiii|...|rrrr|///", + "///|''''+...|---|--||......||--|---|...+''''|///", + "///|rrrr|...||EEE|......|xEE||...|rrrr|///", + "///|----|...|'R'|EEED......DEEE|'R'|...|----|///", + "///|:::::...|'''|EEED......DEEE|'''|...:::::|///", + "///|:::::...+'''|EEx|......|EEE|'''+...:::::|///", + "///|:::::...|---|-|-|......|-|-|---|...:::::|///", + "///V:::::...::::::|..........|:::::|...:::::V///", + "///V:::::...::::::|..........|:::::|...:::::V///", + "///V:::::...::::::|^........^|:::::|...:::::V///", + "///|:::::...::::::|-HHHGGHHH-|:::::|...:::::|///", + "///V::::::::::::::............::::::::::::::V///", + "///V::::::::::::::............::::::::::::::V///", + "///V::::::::::::::.a..........::::::::::::::V///", + "///|::::::::::::::|-HHHGGHHH-|::::::::::::::|///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///|::::::::::::::::::::::::::::::::::::::::|///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///V::::::::::::::::::::::::::::::::::::::::V///", + "///|::::::::::::::::::::::::::::::::::::::::|///", + "///|-HHH-HHHH-HHH-|-HHHHHHHH-|-HHH-HHHH-HHH-|///", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////" + ], + "place_nested": [ + { + "chunks": [ [ "xed_4x4_cr1_l", 20 ], [ "xed_4x4_cr2_l", 20 ], [ "xed_4x4_cr3_l", 20 ] ], + "x": [ 20, 20 ], + "y": [ 12, 12 ] + }, + { + "chunks": [ [ "xed_4x4_cr1_r", 20 ], [ "xed_4x4_cr2_r", 20 ], [ "xed_4x4_cr3_r", 20 ] ], + "x": [ 24, 24 ], + "y": [ 12, 12 ] + }, + { + "chunks": [ + [ "xed_5x5_toilet_il", 20 ], + [ "xed_5x5_storage1_il", 10 ], + [ "xed_5x5_storage2_il", 10 ], + [ "xed_5x5_storage3_il", 10 ], + [ "xed_5x5_cleaning1_il", 20 ], + [ "xed_5x5_cleaning2_il", 20 ] + ], + "x": [ 4, 4 ], + "y": [ 24, 24 ] + }, + { + "chunks": [ + [ "xed_office_slide_dl", 20 ], + [ "xed_glass_dl", 20 ], + [ "xed_private_dl", 20 ], + [ "xed_crowded_dl", 20 ], + [ "xed_generic_dl", 20 ] + ], + "x": [ 2, 2 ], + "y": [ 31, 31 ] + }, + { + "chunks": [ [ "xed_small1_ul", 20 ], [ "xed_small_office_ul", 20 ], [ "xed_small_sofa_ul", 20 ], [ "xed_small2_ul", 20 ] ], + "x": [ 4, 4 ], + "y": [ 27, 27 ] + }, + { + "chunks": [ [ "xed_small1_ul", 20 ], [ "xed_small_office_ul", 20 ], [ "xed_small_sofa_ul", 20 ], [ "xed_small2_ul", 20 ] ], + "x": [ 30, 30 ], + "y": [ 27, 27 ] + }, + { + "chunks": [ [ "xed_6x6_office_ur", 20 ], [ "xed_6x6_glass_ur", 20 ], [ "xed_6x6_computer_ur", 5 ], [ "xed_6x6_files_ur", 5 ] ], + "x": [ 12, 12 ], + "y": [ 27, 27 ] + }, + { + "chunks": [ + [ "xed_office_slide_dr", 20 ], + [ "xed_office_glass_dr", 20 ], + [ "xed_armory_cafe_dr", 20 ], + [ "xed_office_dr", 20 ], + [ "xed_office_private_dr", 20 ], + [ "xed_office_crowded_dr", 20 ] + ], + "x": [ 30, 30 ], + "y": [ 31, 31 ] + }, + { + "chunks": [ + [ "xed_5x5_toilet_ir", 20 ], + [ "xed_5x5_storage1_ir", 10 ], + [ "xed_5x5_storage2_ir", 10 ], + [ "xed_5x5_storage3_ir", 10 ], + [ "xed_5x5_cleaning1_ir", 20 ], + [ "xed_5x5_cleaning2_ir", 20 ] + ], + "x": [ 39, 39 ], + "y": [ 24, 24 ] + }, + { + "chunks": [ [ "xed_5x5_register_ur", 20 ], [ "xed_5x5_office_ur", 20 ], [ "xed_5x5_benches_ur", 10 ], [ "xed_5x5_sofa_ur", 10 ] ], + "x": [ 39, 39 ], + "y": [ 27, 27 ] + }, + { + "chunks": [ + [ "14x14_office_glass_nw", 1 ], + [ "14x14_office_cubicle_nw", 1 ], + [ "14x14_office_generic_nw", 1 ], + [ "14x14_office_slide_nw", 1 ], + [ "14x14_office_crowded_nw", 1 ] + ], + "x": [ 4, 4 ], + "y": [ 5, 5 ] + }, + { + "chunks": [ + [ "xed_5x5_register_ol", 20 ], + [ "xed_5x5_office1_ol", 10 ], + [ "xed_5x5_office2_ol", 10 ], + [ "xed_5x5_sofas_ol", 20 ] + ], + "x": [ 4, 4 ], + "y": [ 14, 14 ] + }, + { + "chunks": [ + [ "xed_office_glass_ar", 20 ], + [ "xed_office_private_ar", 20 ], + [ "xed_office_ar", 20 ], + [ "xed_office_slide_ar", 20 ], + [ "xed_office_crowded_ar", 20 ] + ], + "x": [ 30, 30 ], + "y": [ 1, 1 ] + }, + { + "chunks": [ [ "xed_5x5_register_or", 20 ], [ "xed_5x5_office_or", 20 ], [ "xed_5x5_sofas_or", 20 ] ], + "x": [ 39, 39 ], + "y": [ 14, 14 ] + }, + { "chunks": [ [ "xed_8x8_containment_empty", 40 ] ], "x": [ 14, 14 ], "y": [ 5, 5 ] }, + { + "chunks": [ [ "xed_8x8_boss_ar", 20 ], [ "xed_8x8_sofas_ar", 20 ], [ "xed_8x8_office_ar", 20 ], [ "xed_8x8_files_ar", 20 ] ], + "x": [ 24, 24 ], + "y": [ 4, 4 ] + }, + { + "chunks": [ [ "xed_8x8_mr1_l", 20 ], [ "xed_8x8_mr2_l", 20 ], [ "xed_8x8_mr3_l", 20 ] ], + "x": [ 16, 16 ], + "y": [ 35, 35 ] + }, + { + "chunks": [ [ "xed_8x8_mr1_r", 20 ], [ "xed_8x8_mr2_r", 20 ], [ "xed_8x8_mr3_r", 20 ], [ "xed_8x8_mr4_r", 20 ] ], + "x": [ 24, 24 ], + "y": [ 35, 35 ] + } + ], + "palettes": [ "field_office_palette" ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "dm_field_office_13", "dm_field_office_14" ], [ "dm_field_office_15", "dm_field_office_16" ] ], + "method": "json", + "weight": 250, + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "///511111111111111111111111111111111111111115///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzz|---|---|zzzzzz|---|---|zzzzzzzz4///", + "///2zzzzzzzz|'R>|XXX|zzzzzz|XXX|'R>|zzzzzzzz4///", + "///2zzzzzzzz|'R'|XXX|zzzzzz|XXX|'R'|zzzzzzzz4///", + "///2zzzzzzzz|'''|N''wzzzzzzw''N|'''|zzzzzzzz4///", + "///2zzzzzzzz|'''|N'x|zzzzzz|x'N|'''|zzzzzzzz4///", + "///2zzzzzzzz|-=-|-=-|zzzzzz|-=-|-=-|zzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///2zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4///", + "///533333333333333333333333333333333333333335///", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////" + ], + "palettes": [ "field_office_palette" ], + "place_nested": [ + { "chunks": [ [ "roof_16x16_help", 3000 ], [ "null", 10 ] ], "x": [ 4, 8 ], "y": [ 30, 38 ] }, + { + "chunks": [ + [ "null", 20 ], + [ "roof_4x4_utility_1", 20 ], + [ "roof_4x4_utility", 20 ], + [ "roof_2x2_utilities", 20 ], + [ "roof_2x2_utilities_c", 20 ], + [ "roof_2x2_utilities_b", 20 ] + ], + "x": [ 13, 19 ], + "y": [ 6, 15 ] + }, + { + "chunks": [ + [ "null", 20 ], + [ "roof_4x4_utility_1", 20 ], + [ "roof_4x4_utility", 20 ], + [ "roof_2x2_utilities", 20 ], + [ "roof_2x2_utilities_c", 20 ], + [ "roof_2x2_utilities_b", 20 ] + ], + "x": [ 24, 40 ], + "y": [ 30, 38 ] + }, + { + "chunks": [ + [ "null", 20 ], + [ "roof_4x4_utility_1", 20 ], + [ "roof_4x4_utility", 20 ], + [ "roof_2x2_utilities", 20 ], + [ "roof_2x2_utilities_c", 20 ], + [ "roof_2x2_utilities_b", 20 ] + ], + "x": [ 24, 40 ], + "y": [ 6, 15 ] + } + ] + } + }, + { + "type": "mapgen", + "om_terrain": [ [ "dm_field_office_17", "dm_field_office_18" ], [ "dm_field_office_19", "dm_field_office_20" ] ], + "method": "json", + "weight": 250, + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////zzzzzzzzz//////zzzzzzzzz////////////", + "////////////zzz6z6zzz//////zzz7z7zzz////////////", + "////////////zzzzzzzzz//////zzzzzzzzz////////////", + "////////////zzzzzzzzz//////zzzzzzzzz////////////", + "////////////zzz6z6zzz//////zzz7z7zzz////////////", + "////////////zzzzzzzzz//////zzzzzzzzz////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////", + "////////////////////////////////////////////////" + ], + "palettes": [ "field_office_palette" ] + } + }, + { + "type": "overmap_terrain", + "name": "border patrol office", + "id": [ + "dm_field_office_1", + "dm_field_office_2", + "dm_field_office_3", + "dm_field_office_4", + "dm_field_office_5", + "dm_field_office_6", + "dm_field_office_7", + "dm_field_office_8", + "dm_field_office_9", + "dm_field_office_10", + "dm_field_office_11", + "dm_field_office_12", + "dm_field_office_13", + "dm_field_office_14", + "dm_field_office_15", + "dm_field_office_16", + "dm_field_office_17", + "dm_field_office_18", + "dm_field_office_19", + "dm_field_office_20" + ], + "copy-from": "generic_large_office_tower" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/scenarios.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/scenarios.json new file mode 100644 index 000000000..f6cc0be52 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/scenarios.json @@ -0,0 +1,14 @@ +[ + { + "copy-from": "defense_mode_fortified", + "type": "scenario", + "extend": { "allowed_locs": [ "sloc_defense_mode_border_office" ] }, + "id": "defense_mode_fortified" + }, + { + "type": "start_location", + "id": "sloc_defense_mode_border_office", + "name": "Border Patrol Office", + "terrain": [ "dm_field_office_8" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/species.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/species.json new file mode 100644 index 000000000..c95a4a54a --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/species.json @@ -0,0 +1,13 @@ +[ + { + "type": "SPECIES", + "id": "DM_VAMPIRE", + "description": "a variety of creatures that subsist off the blood of living humans", + "flags": [ "NO_NECRO", "VAMP_VIRUS", "ALL_SEEING", "NEMESIS" ] + }, + { + "type": "SPECIES", + "id": "DM_XEDRA_EVOLVED", + "flags": [ "ALL_SEEING", "NEMESIS", "BASHES" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/updates.json b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/updates.json new file mode 100644 index 000000000..083e32d5c --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mod_interactions/Defense_Mode/updates.json @@ -0,0 +1,16 @@ +[ + { + "type": "mapgen", + "update_mapgen_id": "precinct_13_spawns", + "method": "json", + "object": { + "place_npcs": [ + { "class": "follower_xedra_zebra_officer", "x": 0, "y": 0 }, + { "class": "follower_xedra_zebra_officer", "x": 1, "y": 0 }, + { "class": "follower_xedra_zebra_officer", "x": 2, "y": 0 }, + { "class": "follower_xedra_zebra_officer", "x": 1, "y": 0 }, + { "class": "follower_xedra_zebra_officer", "x": 1, "y": 0 } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/modinfo.json b/data/Mainline_mods/Mods/Xedra_Evolved/modinfo.json index de8b31ffb..cee86c7c4 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/modinfo.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/modinfo.json @@ -5,7 +5,7 @@ "name": "Xedra Evolved", "authors": [ "Maleclypse" ], "maintainers": [ "Maleclypse" ], - "description": "A content mod for Agent Mulder in the apocalypse. Imagines what if Xedra had more time before the Cataclysm occurred. Contains monsters of various types, new professions and locations, new uses for existing skills plus the new deduction skill, new magic systems, and content of every type that a multidimensional Cataclysm has to offer.", + "description": "A content mod for Agent Mulder in the apocalypse. Creates a multi decade timeline of dimensional spillage prior to the cataclysm. This spillage was characterized by thin places appearing where people could step through into another dimension but things from those dimensions could wander into our world as well. Xedra proliferated into an alphabet soup of agencies dedicated to simultaneously stopping, controlling, and utilizing these thin places with varying degrees of success. Contains monsters of various types, new professions and locations, new uses for existing skills plus the new deduction skill, new magic systems, and content of every type that a multidimensional Cataclysm has to offer. This is a heavily science fantasy mod where you are as likely to encounter supernatural monsters, as you are to encounter UFOs and Sasquatch and Chupacabra. Please examine the readme.md file for further details.", "category": "content", "dependencies": [ "dda" ] } diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monster_special_attacks/monster_special_attacks.json b/data/Mainline_mods/Mods/Xedra_Evolved/monster_special_attacks/monster_special_attacks.json index 8a38caf83..f99bb54b5 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/monster_special_attacks/monster_special_attacks.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monster_special_attacks/monster_special_attacks.json @@ -39,5 +39,39 @@ "spell_class": "NONE", "difficulty": 2, "energy_source": "NONE" + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "ice_spray", + "cooldown": 5, + "move_cost": 100, + "range": 8, + "damage_max_instance": [ { "damage_type": "cold", "amount": 6 }, { "damage_type": "cut", "amount": 6 } ], + "hit_dmg_u": "%1$s sprays icicles at your %2$s!", + "hit_dmg_npc": "%1$s sprays icicles at !", + "no_dmg_msg_u": "%1$s sprays icicles out at you without doing any damage.", + "no_dmg_msg_npc": "%1$s sprays icicles out at without doing any damage.", + "miss_msg_u": "%s sprays icicles at you, but you dodge!", + "miss_msg_npc": "%s sprays icicles at , but they dodge!" + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "ratatosks_curse", + "cooldown": 10, + "move_cost": 100, + "attack_chance": 50, + "hitsize_min": 4, + "attack_upper": false, + "damage_max_instance": [ { "damage_type": "bash", "amount": 0 } ], + "effects_require_dmg": false, + "hit_dmg_u": "%1$s curses you and you fall to the ground!", + "hit_dmg_npc": "%1$s curses and they fall to the ground!", + "no_dmg_msg_u": "%1$s tries to curse %2$s and knock you down!", + "no_dmg_msg_npc": "%1$s tries to curse and knock down!", + "miss_msg_u": "%s tries to curse your %2$s but you dodge!", + "miss_msg_npc": "%s tries to curse and knock down , but they dodge!", + "effects": [ { "id": "downed", "duration": 3 }, { "id": "stunned", "duration": 100 } ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/bloodsuckers.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/bloodsuckers.json index 1b512bab0..979bee003 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/bloodsuckers.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/bloodsuckers.json @@ -12,7 +12,7 @@ "hp": 90, "speed": 80, "material": [ "flesh" ], - "symbol": "V", + "symbol": "M", "color": "brown", "aggression": 100, "morale": 100, @@ -21,10 +21,6 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], "dodge": 3, - "armor_bash": 15, - "armor_cut": 5, - "armor_bullet": 14, - "armor_elec": 6, "regenerates_in_dark": true, "weakpoints": [ { "name": "the head", "armor_mult": { "physical": 0.5 }, "coverage": 3 }, @@ -36,16 +32,18 @@ "vision_night": 15, "harvest": "demihuman", "path_settings": { "max_dist": 5 }, + "grab_strength": 20, "special_attacks": [ { - "type": "bite", + "id": "bite_humanoid", "cooldown": 10, "damage_max_instance": [ { "damage_type": "stab", "amount": 10, "armor_multiplier": 0.2 } ] }, - [ "GRAB", 7 ] + { "id": "grab", "cooldown": 7 } ], "death_drops": "default_moroi_death_drops", - "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "REVIVES", "PUSH_MON", "VAMP_VIRUS" ] + "flags": [ "SEES", "HEARS", "SMELLS", "GRABS", "WARM", "BASHES", "REVIVES", "PUSH_MON" ], + "armor": { "bash": 15, "cut": 5, "bullet": 14, "electric": 6 } }, { "id": "mon_vampire_strigoi", @@ -69,10 +67,6 @@ "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 7 } ], "dodge": 4, - "armor_bash": 25, - "armor_cut": 8, - "armor_bullet": 24, - "armor_elec": 14, "regenerates_in_dark": true, "weakpoints": [ { "name": "the head", "armor_mult": { "physical": 0.5 }, "coverage": 3 }, @@ -84,16 +78,494 @@ "vision_night": 15, "harvest": "demihuman", "path_settings": { "max_dist": 5 }, + "grab_strength": 20, "special_attacks": [ { "type": "leap", "cooldown": 10, "max_range": 5, "min_consider_range": 2, "max_consider_range": 15 }, { - "type": "bite", + "id": "bite_humanoid", "cooldown": 10, "damage_max_instance": [ { "damage_type": "stab", "amount": 10, "armor_multiplier": 0.2 } ] }, - [ "GRAB", 7 ] + { "id": "grab", "cooldown": 7 } ], "death_drops": "default_moroi_death_drops", - "flags": [ "SEES", "HEARS", "SMELLS", "BASHES", "POISON", "NO_BREATHE", "REVIVES", "PUSH_MON", "FILTHY", "VAMP_VIRUS" ] + "flags": [ "SEES", "HEARS", "SMELLS", "BASHES", "GRABS", "POISON", "NO_BREATHE", "REVIVES", "PUSH_MON", "FILTHY" ], + "armor": { "bash": 25, "cut": 8, "bullet": 24, "electric": 14 } + }, + { + "id": "mon_renfield", + "type": "MONSTER", + "name": { "str": "renfield" }, + "description": "Wild hair and bloodshot eyes, this person constantly mumbles to themselves about food and life. Renfields care for nothing except protecting their vampire masters.", + "default_faction": "vampire", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "symbol": "@", + "color": "cyan", + "aggression": 30, + "morale": 100, + "melee_skill": 2, + "melee_dice": 1, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "bash", "amount": 3 } ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "families": [ "prof_intro_biology", "prof_physiology" ], + "dodge": 1, + "special_attacks": [ [ "PARROT", 100 ] ], + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 30, + "vision_night": 3, + "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, + "death_drops": "renfield_death_drops", + "upgrades": { "half_life": 50, "into_group": "GROUP_RENFIELD_UPGRADE" }, + "zombify_into": "mon_zombie", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "flags": [ "SEES", "HEARS", "SMELLS", "WARM", "BASHES", "GROUP_BASH", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1" ], + "armor": { "bash": 4, "cut": 4, "stab": 4, "bullet": 4 } + }, + { + "id": "mon_renfield_9mm", + "type": "MONSTER", + "name": { "str": "renfield with a pistol", "str_pl": "renfields with pistols" }, + "description": "Wild hair and bloodshot eyes, this person constantly mumbles to themselves about food and life. They carry a 9mm pistol with no respect for trigger discipline. Renfields care for nothing except protecting their vampire masters.", + "default_faction": "vampire", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "symbol": "@", + "color": "i_magenta", + "aggression": 30, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "bash", "amount": 3 } ], + "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor" ], + "families": [ "prof_intro_biology", "prof_physiology", "prof_wp_syn_armored" ], + "dodge": 1, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 50, + "vision_night": 4, + "path_settings": { "max_dist": 30, "avoid_traps": true, "avoid_sharp": true }, + "diff": 5, + "starting_ammo": { "9mm": 5 }, + "special_attacks": [ + [ "PARROT", 100 ], + { + "type": "gun", + "cooldown": 10, + "move_cost": 150, + "gun_type": "renfield_glock", + "ammo_type": "9mm", + "fake_skills": [ [ "gun", 1 ], [ "pistol", 2 ] ], + "fake_dex": 8, + "fake_per": 10, + "ranges": [ [ 2, 14, "DEFAULT" ] ], + "require_targeting_player": false, + "target_moving_vehicles": true, + "description": "The renfield fires their Glock!" + } + ], + "death_drops": "renfield_9mm_death_drops", + "zombify_into": "mon_zombie_cop", + "upgrades": { "half_life": 50, "into_group": "GROUP_RENFIELD_UPGRADE" }, + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT", "PLAYER_WEAK" ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "CLIMBS", + "PUSH_MON", + "PATH_AVOID_DANGER_1", + "DROPS_AMMO" + ], + "armor": { "bash": 4, "cut": 6, "stab": 4, "bullet": 4 } + }, + { + "id": "mon_renfield_shotgun", + "type": "MONSTER", + "name": { "str": "renfield with a remington", "str_pl": "renfields with shotguns" }, + "description": "Wild hair and bloodshot eyes, this person constantly mumbles to themselves about food and life. They carry a shotgun loosely one handed until they take aim. Renfields care for nothing except protecting their vampire masters.", + "default_faction": "zombie", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "symbol": "@", + "color": "magenta", + "aggression": 75, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "bash", "amount": 6 } ], + "dodge": 1, + "weakpoint_sets": [ "wps_humanoid_body" ], + "vision_day": 50, + "vision_night": 3, + "harvest": "human", + "starting_ammo": { "shot_00": 5 }, + "special_attacks": [ + [ "PARROT", 100 ], + { + "type": "gun", + "cooldown": 10, + "move_cost": 150, + "gun_type": "renfield_remington", + "ammo_type": "shot_00", + "fake_skills": [ [ "gun", 2 ], [ "shotgun", 2 ] ], + "fake_dex": 8, + "fake_per": 9, + "//": "(ferals don't care about max-effective range.)", + "ranges": [ [ 2, 25, "DEFAULT" ] ], + "require_targeting_player": false, + "target_moving_vehicles": true, + "description": "The renfield fires their shotgun!" + } + ], + "death_drops": "renfield_shotgun_death_drops", + "zombify_into": "mon_zombie", + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "CLIMBS", + "PUSH_MON", + "PATH_AVOID_DANGER_1", + "DROPS_AMMO" + ], + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "armor": { "bash": 4, "cut": 6, "stab": 4, "bullet": 4 } + }, + { + "id": "mon_renfield_flamethrower", + "type": "MONSTER", + "name": { "str": "renfield with a flamethrower", "str_pl": "renfields with flamethrowers" }, + "description": "Wild hair and bloodshot eyes, this person constantly mumbles to themselves about food and life. A pilot light runs at the business end of their flamethrower. Renfields care for nothing except protecting their vampire masters.", + "default_faction": "zombie", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "symbol": "@", + "color": "dark_gray_red", + "aggression": 75, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "bash", "amount": 3 } ], + "dodge": 1, + "weakpoint_sets": [ "wps_humanoid_body" ], + "vision_day": 50, + "vision_night": 3, + "harvest": "human", + "starting_ammo": { "shot_00": 5 }, + "special_attacks": [ + [ "PARROT", 100 ], + { + "type": "gun", + "cooldown": 10, + "move_cost": 150, + "gun_type": "rm451_flamethrower", + "ammo_type": "napalm", + "fake_skills": [ [ "gun", 4 ], [ "launcher", 5 ] ], + "fake_dex": 10, + "no_ammo_sound": "hiss!", + "ranges": [ [ 0, 10, "DEFAULT" ] ], + "require_targeting_player": false, + "target_moving_vehicles": true, + "description": "The renfield shoots their flamethrower!" + } + ], + "death_drops": "renfield_flamethrower_death_drops", + "zombify_into": "mon_zombie_flamer", + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "CLIMBS", + "PUSH_MON", + "PATH_AVOID_DANGER_1", + "DROPS_AMMO" + ], + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "armor": { "bash": 4, "cut": 6, "stab": 4, "bullet": 4 } + }, + { + "id": "mon_zombie_flamer", + "type": "MONSTER", + "name": { "str": "zombie burner" }, + "description": "When bullets weren't enough to stop the end of the world, the military tried fire instead. Their failure is made manifest in this gas-masked husk, its black suit torn and ripped. Its flamethrower, dangling limply at its side, is attached to a tank of napalm strapped onto its back, which trickles its contents onto the ground.", + "default_faction": "zombie", + "bodytype": "human", + "species": [ "ZOMBIE", "HUMAN" ], + "diff": 5, + "volume": "62500 ml", + "weight": "81500 g", + "hp": 100, + "speed": 70, + "material": [ "flesh" ], + "symbol": "Z", + "color": "white_red", + "aggression": 100, + "morale": 100, + "melee_skill": 5, + "melee_dice": 2, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "dodge": 1, + "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet", "wps_humanoid_gasmask" ], + "families": [ "prof_intro_biology", "prof_wp_zombie", "prof_wp_syn_armored" ], + "vision_day": 30, + "vision_night": 3, + "luminance": 8, + "harvest": "zombie", + "starting_ammo": { "pressurized_tank": 1000 }, + "death_drops": { "subtype": "collection", "groups": [ [ "mon_zombie_soldier_death_drops", 100 ], [ "mon_zombie_flamer", 100 ] ] }, + "death_function": { "effect": { "id": "death_fireball", "hit_self": true } }, + "burn_into": "mon_zombie_scorched", + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "STUMBLES", + "WARM", + "BASHES", + "GROUP_BASH", + "POISON", + "NO_BREATHE", + "REVIVES", + "PUSH_MON", + "DRIPS_NAPALM", + "FILTHY" + ], + "armor": { "bash": 12, "cut": 25, "bullet": 20, "electric": 4 } + }, + { + "id": "mon_renfield_bionic_monster", + "type": "MONSTER", + "name": { "str": "cyber-renfield" }, + "description": "A renfield enhanced with cybernetic modules. These bloodhunting monstrosities will crash through brick walls in search of their masters' foes. Someone with enough surgical skills might be able to pull some useful bionics from their corpse. Bionic claws snikt in and out until it finds a target for its hate.", + "default_faction": "vampire", + "bodytype": "human", + "species": [ "ROBOT" ], + "volume": "62500 ml", + "weight": "101500 g", + "hp": 160, + "speed": 90, + "material": [ "steel" ], + "symbol": "@", + "color": "red_cyan", + "aggression": 100, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 11, "armor_penetration": 15 } ], + "dodge": 2, + "vision_day": 50, + "bleed_rate": 50, + "path_settings": { "avoid_traps": true, "avoid_sharp": false }, + "revert_to_itype": "bot_prototype_cyborg", + "special_attacks": [ [ "PARROT", 100 ], { "id": "impale", "cooldown": 5, "min_mul": 1, "max_mul": 3 }, [ "BIO_OP_TAKEDOWN", 20 ] ], + "weakpoint_sets": [ "wps_cyborg_body" ], + "families": [ "prof_wp_cyborg" ], + "harvest": "mon_broken_cyborg", + "dissect": "dissect_renfield_bionic_monster", + "flags": [ + "SEES", + "HEARS", + "BASHES", + "GROUP_BASH", + "PUSH_MON", + "ELECTRONIC", + "WARM", + "HUMAN", + "PATH_AVOID_DANGER_1", + "PRIORITIZE_TARGETS" + ], + "armor": { "bash": 10, "cut": 16, "bullet": 25 } + }, + { + "id": "mon_renfield_abomination", + "type": "MONSTER", + "name": { "str": "abominable renfield" }, + "description": "A brobdignagian Renfield, twisted through unnatural alchemies. Their stump sized legs and feet pound the earth as they move, while their claw like hands to tear you apart.", + "symbol": "A", + "color": "brown_red", + "default_faction": "vampire", + "bodytype": "human", + "volume": "350 L", + "weight": "350 kg", + "hp": 270, + "speed": 110, + "attack_cost": 110, + "aggression": 30, + "morale": 90, + "melee_skill": 11, + "melee_dice": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 12, "armor_penetration": 25 } ], + "dodge": 5, + "bleed_rate": 30, + "vision_night": 15, + "dissect": "dissect_human_sample_large", + "special_attacks": [ + { "id": "scratch", "move_cost": 90, "cooldown": 3, "min_mul": 1.5, "max_mul": 3.5 }, + [ "PARROT", 100 ], + { "id": "cut_throat", "move_cost": 130, "cooldown": 4, "min_mul": 1.5, "max_mul": 3.5 }, + { "id": "smash", "move_cost": 100, "cooldown": 8, "min_mul": 0.8, "throw_strength": 50 }, + { "id": "longswipe", "move_cost": 120, "cooldown": 12, "min_mul": 1.5, "max_mul": 3 } + ], + "death_drops": "mon_renfield_abomination_death_drops", + "regenerates": 7, + "flags": [ + "SEES", + "HEARS", + "BASHES", + "GROUP_BASH", + "PUSH_MON", + "ELECTRONIC", + "WARM", + "HUMAN", + "PATH_AVOID_DANGER_1", + "PRIORITIZE_TARGETS" + ], + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], + "armor": { "bash": 12, "cut": 18, "bullet": 16, "electric": 3 } + }, + { + "id": "xe_mon_bat", + "type": "MONSTER", + "name": { "str": "bat" }, + "description": "One of the vesper bats, a family of winged insect-eating mammals. It roosts in caves and other hollows, and uses a form of echolocation to aerially navigate through tricky terrain at rapid speeds.", + "default_faction": "small_animal", + "bodytype": "bird", + "categories": [ "WILDLIFE" ], + "species": [ "MAMMAL" ], + "volume": "750 ml", + "weight": "1 kg", + "hp": 10, + "speed": 230, + "material": [ "flesh" ], + "symbol": "w", + "color": "brown", + "aggression": -25, + "morale": 5, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 1, + "melee_damage": [ { "damage_type": "cut", "amount": 1 } ], + "dodge": 8, + "harvest": "mammal_tiny", + "dissect": "dissect_beast_sample_single", + "biosignature": { "biosig_item": "feces_bat", "biosig_timer": 12 }, + "families": [ "prof_intro_biology" ], + "vision_day": 20, + "vision_night": 20, + "special_attacks": [ { "type": "bite", "cooldown": 15 } ], + "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], + "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "WARM", "FLIES", "ANIMAL", "PATH_AVOID_DANGER_1" ] + }, + { + "id": "mon_vampire_bat", + "type": "MONSTER", + "name": { "str": "bat" }, + "description": "The Northern European Vampire bat, was discovered 8 years previous to the Cataclysm in Lithuania. Within those years it had spread across the entire northern hemisphere. It is larger than a regular bat and furrier allowing it to remain active in the colder winters. They do drink human and animal blood as part of their sustenance. It roosts in caves and other hollows, and uses a form of echolocation to aerially navigate through tricky terrain at rapid speeds.", + "default_faction": "small_animal", + "bodytype": "bird", + "categories": [ "WILDLIFE" ], + "species": [ "MAMMAL" ], + "volume": "1500 ml", + "weight": "2 kg", + "hp": 20, + "speed": 190, + "material": [ "flesh" ], + "symbol": "w", + "color": "brown", + "aggression": 45, + "morale": 35, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "cut", "amount": 3 } ], + "dodge": 6, + "harvest": "mammal_tiny", + "dissect": "dissect_beast_sample_single", + "biosignature": { "biosig_item": "feces_bat", "biosig_timer": 12 }, + "families": [ "prof_intro_biology" ], + "vision_day": 20, + "vision_night": 20, + "special_attacks": [ { "type": "bite", "cooldown": 15 } ], + "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], + "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "WARM", "FLIES", "ANIMAL", "PATH_AVOID_DANGER_1", "HIT_AND_RUN" ] + }, + { + "id": "mon_bat_giant", + "type": "MONSTER", + "name": { "str": "giant bat" }, + "description": "One of the vesper bats, a family of winged insect-eating mammals. It roosts in caves and other hollows, and uses a form of echolocation to aerially navigate through tricky terrain at rapid speeds.", + "default_faction": "small_animal", + "bodytype": "bird", + "categories": [ "WILDLIFE" ], + "species": [ "MAMMAL" ], + "diff": 4, + "volume": "4 L", + "weight": "6 kg", + "hp": 40, + "speed": 1700, + "material": [ "flesh" ], + "symbol": "w", + "color": "brown", + "aggression": 35, + "morale": 70, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], + "dodge": 3, + "harvest": "mammal_leather", + "dissect": "dissect_beast_sample_single", + "families": [ "prof_intro_biology" ], + "biosignature": { "biosig_item": "feces_bat", "biosig_timer": 8 }, + "vision_day": 20, + "vision_night": 20, + "special_attacks": [ { "type": "bite", "cooldown": 15 } ], + "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], + "flags": [ "SEES", "SMELLS", "HEARS", "GOODHEARING", "WARM", "FLIES", "HIT_AND_RUN", "ANIMAL", "PATH_AVOID_DANGER_1" ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/changeling.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/changeling.json index 13b5c0f01..aedda099d 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/changeling.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/changeling.json @@ -21,12 +21,6 @@ "melee_dice": 1, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_bash": 6, - "armor_cut": 6, - "armor_bullet": 6, - "armor_stab": 6, - "armor_fire": 6, - "armor_elec": 2, "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet" ], "families": [ "prof_wp_demihuman" ], "dodge": 2, @@ -54,13 +48,24 @@ "zombify_into": "mon_draugr", "fungalize_into": "mon_cracked_mirror", "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], - "flags": [ "SEES", "HEARS", "WARM", "BASHES", "GROUP_BASH", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1", "DROPS_AMMO" ] + "flags": [ "SEES", "HEARS", "WARM", "BASHES", "GROUP_BASH", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1", "DROPS_AMMO" ], + "armor": { + "bash": 6, + "cut": 6, + "stab": 6, + "heat": 6, + "bullet": 6, + "electric": 2, + "xe_cold_iron_cut_damage": 0, + "xe_cold_iron_bash_damage": 0, + "xe_cold_iron_stab_damage": 0 + } }, { "id": "mon_changeling_bannerman", "type": "MONSTER", "name": { "str": "changeling bannerman", "str_pl": "changeling bannermen" }, - "description": "A tall lithe humanoid of indeterminate gender, in silvery scale mail, with archaic weapons. Their sea-green eyes promise violence.", + "description": "A tall lithe humanoid of indeterminate gender, clad in silvery scale mail and wielding archaic weapons. Their sea-green eyes promise violence.", "copy-from": "mon_changeling", "symbol": "%", "hp": 80, @@ -68,11 +73,19 @@ "melee_dice": 2, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], - "armor_bash": 8, - "armor_cut": 8, - "armor_bullet": 8, - "armor_pure": 8, - "death_drops": "changeling_bannerman_death_drops" + "death_drops": "changeling_bannerman_death_drops", + "armor": { + "stab": 6, + "heat": 6, + "electric": 2, + "bash": 8, + "cut": 8, + "bullet": 8, + "pure": 8, + "xe_cold_iron_cut_damage": 0, + "xe_cold_iron_bash_damage": 0, + "xe_cold_iron_stab_damage": 0 + } }, { "id": "mon_redcap_aspirant", @@ -89,12 +102,20 @@ "melee_dice_sides": 5, "dodge": 4, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], - "armor_bash": 12, - "armor_cut": 12, - "armor_bullet": 24, - "armor_pure": 16, "special_attacks": [ { "id": "impale" } ], - "death_drops": "changeling_redcap_aspirant_death_drops" + "death_drops": "changeling_redcap_aspirant_death_drops", + "armor": { + "stab": 6, + "heat": 6, + "electric": 2, + "bash": 12, + "cut": 12, + "bullet": 24, + "pure": 16, + "xe_cold_iron_cut_damage": 0, + "xe_cold_iron_bash_damage": 0, + "xe_cold_iron_stab_damage": 0 + } }, { "id": "mon_pooka_aspirant", @@ -111,12 +132,20 @@ "melee_dice_sides": 5, "dodge": 4, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], - "armor_bash": 12, - "armor_cut": 12, - "armor_bullet": 24, - "armor_pure": 16, "special_attacks": [ [ "BIO_OP_TAKEDOWN", 20 ] ], - "death_drops": "changeling_pooka_aspirant_death_drops" + "death_drops": "changeling_pooka_aspirant_death_drops", + "armor": { + "stab": 6, + "heat": 6, + "electric": 2, + "bash": 12, + "cut": 12, + "bullet": 24, + "pure": 16, + "xe_cold_iron_cut_damage": 0, + "xe_cold_iron_bash_damage": 0, + "xe_cold_iron_stab_damage": 0 + } }, { "id": "mon_march_lord", @@ -139,13 +168,6 @@ "melee_dice": 8, "melee_dice_sides": 3, "melee_damage": [ { "damage_type": "cut", "amount": 12 } ], - "armor_bash": 22, - "armor_cut": 36, - "armor_bullet": 36, - "armor_stab": 16, - "armor_fire": 90, - "armor_pure": 160, - "armor_elec": 2, "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet" ], "dodge": 5, "harvest": "demihuman", @@ -153,10 +175,22 @@ "vision_day": 50, "vision_night": 6, "path_settings": { "max_dist": 30, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, - "special_attacks": [ { "type": "spell", "spell_data": { "id": "hoary_blast", "min_level": 5 }, "cooldown": 10 } ], + "special_attacks": [ { "type": "spell", "spell_data": { "id": "hoary_blast_march_lord", "min_level": 5 }, "cooldown": 15 } ], "death_drops": "changeling_lord_death_drops", "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT" ], - "flags": [ "SEES", "HEARS", "WARM", "BASHES", "GROUP_BASH", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1", "DROPS_AMMO" ] + "flags": [ "SEES", "HEARS", "WARM", "BASHES", "GROUP_BASH", "HUMAN", "CAN_OPEN_DOORS", "PATH_AVOID_DANGER_1", "DROPS_AMMO" ], + "armor": { + "bash": 22, + "cut": 36, + "stab": 16, + "heat": 90, + "bullet": 36, + "electric": 2, + "pure": 160, + "xe_cold_iron_cut_damage": 0, + "xe_cold_iron_bash_damage": 0, + "xe_cold_iron_stab_damage": 0 + } }, { "id": "mon_draugr", @@ -179,23 +213,19 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], - "armor_bash": 6, - "armor_cut": 6, - "armor_bullet": 6, - "armor_stab": 9, - "armor_elec": 2, "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet" ], "vision_day": 30, "vision_night": 3, "harvest": "zombie", - "special_attacks": [ [ "GRAB", 7 ], [ "scratch", 20 ] ], + "grab_strength": 20, + "special_attacks": [ { "id": "grab", "cooldown": 7 }, { "id": "scratch_humanoid" } ], "death_drops": "changeling_death_drops", "flags": [ "SEES", "HEARS", - "SMELLS", "STUMBLES", "WARM", + "GRABS", "BASHES", "GROUP_BASH", "POISON", @@ -203,7 +233,17 @@ "REVIVES", "PUSH_MON", "FILTHY" - ] + ], + "armor": { + "bash": 6, + "cut": 6, + "stab": 9, + "bullet": 6, + "electric": 2, + "xe_cold_iron_cut_damage": 0, + "xe_cold_iron_bash_damage": 0, + "xe_cold_iron_stab_damage": 0 + } }, { "id": "mon_cracked_mirror", @@ -226,18 +266,24 @@ "melee_skill": 3, "melee_dice": 1, "melee_dice_sides": 6, - "armor_bash": 2, - "armor_cut": 9, - "armor_bullet": 12, - "armor_stab": 16, - "armor_elec": 20, "bleed_rate": 0, "vision_day": 5, "vision_night": 5, "harvest": "zombie", - "special_attacks": [ [ "FUNGUS", 200 ], { "type": "bite", "cooldown": 5 } ], + "grab_strength": 20, + "special_attacks": [ [ "FUNGUS", 200 ], { "id": "bite_humanoid", "cooldown": 5 }, { "id": "grab" } ], "death_drops": "changeling_death_drops", - "flags": [ "SEES", "SMELLS", "STUMBLES", "WARM", "BASHES", "GROUP_BASH", "POISON", "NO_BREATHE", "PUSH_MON", "FILTHY" ] + "flags": [ "SEES", "SMELLS", "STUMBLES", "WARM", "BASHES", "GROUP_BASH", "POISON", "NO_BREATHE", "PUSH_MON", "FILTHY" ], + "armor": { + "bash": 2, + "cut": 9, + "stab": 16, + "bullet": 12, + "electric": 20, + "xe_cold_iron_cut_damage": 0, + "xe_cold_iron_bash_damage": 0, + "xe_cold_iron_stab_damage": 0 + } }, { "id": "mon_fetch_child", @@ -260,8 +306,6 @@ "melee_dice": 2, "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "armor_elec": 1, - "armor_bullet": 4, "dodge": 2, "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_child_body", "wps_humanoid_head_big" ], "vision_day": 30, @@ -270,13 +314,14 @@ "special_attacks": [ { "type": "melee", "id": "sharp_objects", "attack_upper": false, "cooldown": 15 }, [ "PARROT_AT_DANGER", 800 ] ], "death_drops": { "subtype": "collection", "groups": [ [ "default_zombie_children_clothes", 100 ], [ "child_items", 65 ] ] }, "death_function": { "effect": { "id": "death_guilt", "min_level": 9 } }, - "flags": [ "SEES", "HEARS", "WARM", "BASHES" ] + "flags": [ "SEES", "HEARS", "WARM", "BASHES" ], + "armor": { "bullet": 4, "electric": 1 } }, { "id": "mon_fetch_daffodil_warrior", "type": "MONSTER", "name": { "str": "daffodil warrior" }, - "description": "Wispy and willowy these fetches are the cannon fodder of the Fae. Said to grow in vast fields under the hill and harvested right before a battle legends says they live but a day. Its features are quite plant-like and one arm ends in an ornate club.", + "description": "Wispy and willowy these fetches are the cannon fodder of the Fae. Said to grow in vast fields under the hill and harvested right before a battle legends say they live but a day. Its features are quite plant-like and one arm ends in an ornate club.", "default_faction": "changeling", "bodytype": "human", "species": [ "CHANGELING" ], @@ -292,14 +337,13 @@ "melee_skill": 4, "melee_dice": 2, "melee_dice_sides": 9, - "armor_cut": 4, - "armor_bullet": 4, "dodge": 2, "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor", "wps_humanoid_open_helmet" ], "vision_day": 30, "vision_night": 3, "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s bursts into a rain of pollen!" }, - "flags": [ "SEES", "HEARS", "WARM", "BASHES" ] + "flags": [ "SEES", "HEARS", "WARM", "BASHES" ], + "armor": { "cut": 4, "bullet": 4, "xe_cold_iron_cut_damage": 0, "xe_cold_iron_bash_damage": 0, "xe_cold_iron_stab_damage": 0 } }, { "id": "mon_fae_wolf", @@ -317,6 +361,7 @@ "material": [ "fae_flesh" ], "symbol": "d", "color": "red", + "scents_ignored": [ "sc_fae" ], "aggression": 30, "morale": 100, "melee_skill": 6, @@ -324,21 +369,20 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 3 } ], "dodge": 5, - "armor_cut": 5, - "armor_bullet": 15, "bleed_rate": 40, "vision_day": 50, "//": "need to add the harvest", "harvest": "fae_furred", "path_settings": { "max_dist": 10 }, "special_attacks": [ { "type": "bite", "cooldown": 6 } ], - "flags": [ "SEES", "SMELLS", "HEARS", "WARM", "BASHES", "HIT_AND_RUN" ] + "flags": [ "SEES", "SMELLS", "HEARS", "WARM", "BASHES", "HIT_AND_RUN" ], + "armor": { "cut": 5, "bullet": 15, "xe_cold_iron_cut_damage": 0, "xe_cold_iron_bash_damage": 0, "xe_cold_iron_stab_damage": 0 } }, { "id": "mon_goblin_spider", "type": "MONSTER", "name": { "str": "goblin spider" }, - "description": "A giant, dark gray goblin spider, the size of a pony and above the mandibles where you would expect to see the eyes instead there is a child's face. It seems to vanish into the shadows if you take your eyes off it.", + "description": "A giant, dark gray goblin spider, the size of a pony. Above the mandibles, where you would expect to see the eyes, instead there is a child's face. It seems to vanish into the shadows if you take your eyes off it.", "default_faction": "changeling", "bodytype": "spider", "species": [ "CHANGELING" ], @@ -350,6 +394,7 @@ "material": [ "fae_flesh" ], "symbol": "g", "color": "yellow", + "scents_ignored": [ "sc_fae" ], "aggression": 30, "morale": 100, "melee_skill": 4, @@ -359,21 +404,26 @@ "attack_effs": [ { "id": "venom_dmg", "duration": 400, "affect_hit_bp": true } ], "//": "5 hits to max intensity, 6 hits to max duration", "dodge": 2, - "armor_bash": 2, - "armor_cut": 6, - "armor_bullet": 8, "vision_day": 5, "vision_night": 5, "harvest": "demihuman", "weakpoint_sets": [ "wps_humanoid_head_small", "wps_arthropod_spider" ], "families": [ "prof_wp_demihuman" ], - "flags": [ "SEES", "SMELLS", "HEARS", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL", "NIGHT_INVISIBILITY" ] + "flags": [ "SEES", "SMELLS", "HEARS", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL", "NIGHT_INVISIBILITY" ], + "armor": { + "bash": 2, + "cut": 6, + "bullet": 8, + "xe_cold_iron_cut_damage": 0, + "xe_cold_iron_bash_damage": 0, + "xe_cold_iron_stab_damage": 0 + } }, { "id": "mon_xe_unicorn", "type": "MONSTER", "name": { "str": "unicorn" }, - "description": "A hooved grazing creature with a thick, shaggy, shimmering mane of hair, a sweeping tail, and powerful-looking muscles. Impossible to confuse with a regular horse even if you don't spot the spiraled horn coming from the head. Rumor has it that some of the Fair Lords have ways to tame and ride this magnificent creature.", + "description": "A hooved grazing creature with a thick, shaggy, shimmering mane of hair, a sweeping tail, and powerful-looking muscles. Impossible to confuse with a regular horse even if you don't spot the spiraled horn coming from its head. Rumor has it that some of the Fair Lords have ways to tame and ride this magnificent creature.", "default_faction": "changeling", "bodytype": "horse", "species": [ "CHANGELING" ], @@ -385,17 +435,14 @@ "material": [ "fae_flesh" ], "symbol": "U", "color": "white", + "scents_ignored": [ "sc_fae" ], + "aggression": 10, "morale": 80, + "aggro_character": false, "melee_skill": 6, "melee_dice": 3, "melee_dice_sides": 12, "melee_damage": [ { "damage_type": "stab", "amount": 5 } ], - "armor_bash": 8, - "armor_cut": 6, - "armor_bullet": 18, - "armor_elec": 9, - "armor_cold": 20, - "armor_pure": 10, "dodge": 3, "anger_triggers": [ "FRIEND_ATTACKED" ], "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], @@ -416,7 +463,18 @@ "PATH_AVOID_DANGER_1", "WARM", "HIT_AND_RUN" - ] + ], + "armor": { + "bash": 8, + "cut": 6, + "bullet": 18, + "electric": 9, + "cold": 20, + "pure": 10, + "xe_cold_iron_cut_damage": 0, + "xe_cold_iron_bash_damage": 0, + "xe_cold_iron_stab_damage": 0 + } }, { "id": "mon_xe_unicorn_foal", @@ -436,14 +494,14 @@ "material": [ "fae_flesh" ], "symbol": "U", "color": "white", + "scents_ignored": [ "sc_fae" ], "aggression": -10, + "aggro_character": false, "morale": 10, "melee_skill": 3, "melee_dice": 2, "melee_dice_sides": 6, - "armor_elec": 1, "dodge": 3, - "armor_bash": 2, "anger_triggers": [ "FRIEND_ATTACKED" ], "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], "placate_triggers": [ "PLAYER_WEAK" ], @@ -452,13 +510,14 @@ "biosignature": { "biosig_item": "feces_manure", "biosig_timer": 10 }, "special_attacks": [ [ "EAT_CROP", 100 ] ], "petfood": { "food": [ "UNICORNFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, - "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PATH_AVOID_DANGER_1", "WARM", "NO_BREED" ] + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PET_WONT_FOLLOW", "PATH_AVOID_DANGER_1", "WARM", "NO_BREED" ], + "armor": { "bash": 2, "electric": 1, "xe_cold_iron_cut_damage": 0, "xe_cold_iron_bash_damage": 0, "xe_cold_iron_stab_damage": 0 } }, { "id": "mon_xe_mavka", "type": "MONSTER", "name": { "str": "mavka" }, - "description": "A beautiful woman clad in diaphanous robes, that drift in the water along with her lengthy hair. As she steps up and across the water you never manage to see her reflection. Suddenly, the hair moves and grabs some small animal and pulls it towards the creature.", + "description": "A beautiful woman clad in diaphanous robes that drifts in the water along with her lengthy hair. As she steps up and across the water you never manage to see her reflection. Suddenly, her hair moves and grabs some small animal and pulls it towards herself.", "default_faction": "changeling", "bodytype": "human", "species": [ "CHANGELING" ], @@ -469,20 +528,83 @@ "material": [ "fae_flesh" ], "symbol": "C", "color": "white_magenta", + "scents_ignored": [ "sc_fae" ], "aggression": 100, "morale": 105, "melee_skill": 4, "melee_dice": 2, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], - "grab_strength": 5, + "grab_strength": 100, "dodge": 5, "luminance": 0, "harvest": "demihuman", "weakpoint_sets": [ "wps_humanoid_body" ], "families": [ "prof_wp_demihuman" ], - "special_attacks": [ [ "RANGED_PULL", 10 ], [ "GRAB_DRAG", 3 ] ], + "special_attacks": [ { "id": "ranged_pull", "cooldown": 10 }, { "id": "grab_drag" }, { "id": "drag_followup" } ], "path_settings": { "max_dist": 50, "allow_open_doors": true, "avoid_traps": true, "avoid_sharp": true }, - "flags": [ "SEES", "HEARS", "SMELLS", "SWIMS", "AQUATIC", "GRABS" ] + "flags": [ "SEES", "HEARS", "GRABS", "SMELLS", "SWIMS", "AQUATIC", "GRABS" ] + }, + { + "id": "mon_melian_mantis_mount", + "type": "MONSTER", + "name": { "str": "Melian mantis stallion" }, + "description": "An enormous green insect grown to about half the size of a giraffe. It moves in a weird, dance-like pattern but goes incredibly still as it positions itself to be mounted. These gargantuan mantis-like monsters are one of the mounts that Seelie aligned knights will ride into combat. It won't use its attacks while it is ridden but if its rider dismounts or is knocked off, it will stay nearby and protect them.", + "default_faction": "mantis", + "bodytype": "insect", + "species": [ "INSECT" ], + "volume": "650 L", + "weight": "650 kg", + "hp": 180, + "speed": 100, + "material": [ "iflesh" ], + "symbol": "M", + "color": "cyan_green", + "aggression": 20, + "morale": 30, + "melee_skill": 8, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 10.0, "armor_penetration": 12 } ], + "dodge": 3, + "weakpoint_sets": [ "wps_arthropod" ], + "families": [ "prof_wp_basic_bug" ], + "vision_day": 8, + "vision_night": 4, + "harvest": "arachnid", + "dissect": "dissect_insect_sample_large", + "anger_triggers": [ "FRIEND_ATTACKED" ], + "fear_triggers": [ "FIRE", "HURT" ], + "special_attacks": [ + { "id": "grab_drag" }, + { "id": "drag_followup" }, + { + "type": "leap", + "cooldown": 8, + "max_range": 5, + "allow_no_target": false, + "condition": { "not": { "u_has_effect": "maimed_leg" } } + } + ], + "flags": [ + "SEES", + "HEARS", + "CLIMBS", + "PATH_AVOID_FIRE", + "PET_WONT_FOLLOW", + "PET_MOUNTABLE", + "PATH_AVOID_FALL", + "COMBAT_MOUNT", + "INSECTICIDEPROOF" + ], + "armor": { + "bash": 10, + "cut": 16, + "bullet": 13, + "electric": 2, + "xe_cold_iron_cut_damage": 0, + "xe_cold_iron_bash_damage": 0, + "xe_cold_iron_stab_damage": 0 + } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/elementals.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/elementals.json new file mode 100644 index 000000000..f78ba82e2 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/elementals.json @@ -0,0 +1,418 @@ +[ + { + "id": "mon_stoneling", + "type": "MONSTER", + "name": { "str": "stoneling" }, + "description": "A small humanoid made of rock, it doesn't seem to be fully intelligent but more a mimicry of higher intelligence.", + "default_faction": "ierde", + "bodytype": "human", + "species": [ "IERDE" ], + "volume": "30000 ml", + "weight": "40750 g", + "hp": 45, + "speed": 70, + "material": [ "stone" ], + "symbol": "r", + "color": "brown_green", + "aggression": 10, + "morale": 100, + "aggro_character": false, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "bash", "amount": 5 } ], + "armor": { "bash": 5, "cut": 5, "heat": 8, "bullet": 3 }, + "vision_night": 3, + "weakpoint_sets": [ "wps_alien_biology" ], + "families": [ "prof_alien_biology" ], + "harvest": "stoneling", + "dissect": "dissect_ierde_single", + "special_attacks": [ [ "scratch", 20 ] ], + "flags": [ "SEES", "HEARS", "BASHES", "GROUP_BASH", "NO_BREATHE", "PUSH_MON" ] + }, + { + "id": "mon_monstrous_badger", + "type": "MONSTER", + "name": { "str": "monstrous badger" }, + "description": "A fairly large badger burrowed up through the ground near you. It is both larger than garden variety badgers and strangely seems to have more intelligence in it.", + "default_faction": "worm", + "bodytype": "snake", + "species": [ "IERDE" ], + "volume": "30500 ml", + "weight": "30 kg", + "hp": 50, + "speed": 80, + "material": [ "fae_flesh" ], + "symbol": "B", + "color": "brown_green", + "aggression": 30, + "morale": 100, + "aggro_character": false, + "melee_skill": 4, + "melee_dice": 4, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 3 } ], + "armor": { "bash": 2, "cut": 5, "cold": 12 }, + "anger_triggers": [ "FRIEND_ATTACKED" ], + "fear_triggers": [ "SOUND", "PLAYER_CLOSE" ], + "harvest": "fae_furred", + "dissect": "dissect_ierde_single", + "flags": [ "DIGS", "HEARS", "GOODHEARING", "ATTACK_LOWER" ] + }, + { + "type": "MONSTER", + "id": "mon_spitting_lizard", + "name": { "str": "spitting lizard" }, + "species": [ "UNDINE" ], + "default_faction": "undine", + "symbol": "l", + "color": "c_light_cyan", + "volume": "10 L", + "weight": "20 kg", + "bodytype": "lizard", + "material": [ "fae_flesh" ], + "aggression": 30, + "morale": 60, + "aggro_character": false, + "speed": 100, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 1, + "melee_damage": [ { "damage_type": "cut", "amount": 1 } ], + "armor": { "bash": 3, "cut": 2, "acid": 8 }, + "dodge": 3, + "weakpoint_sets": [ "wps_alien_biology" ], + "families": [ "prof_alien_biology" ], + "hp": 10, + "death_drops": { "subtype": "collection", "groups": [ [ "produce", 100 ], [ "vertebrate_parts", 10 ] ] }, + "description": "A small dog-sized furry lizard colored in ocean blues. It hisses and then spits gouts of water at whatever attracts its ire.", + "special_attacks": [ + { + "type": "gun", + "move_cost": 100, + "gun_type": "watercannon", + "fake_skills": [ [ "gun", 2 ], [ "launcher", 2 ] ], + "fake_dex": 8, + "ranges": [ [ 0, 5, "BURST" ] ] + } + ], + "flags": [ "SEES", "SMELLS", "HEARS", "RANGED_ATTACKER", "PATH_AVOID_DANGER_1", "CLIMBS" ], + "harvest": "fae_furred", + "dissect": "dissect_undine_single", + "vision_day": 20, + "vision_night": 5, + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FRIEND_DIED" ] + }, + { + "id": "mon_water_sprite", + "type": "MONSTER", + "name": "water sprite", + "description": "A mischievous creature made entirely of water, with a vaguely humanoid shape. Its movements are graceful and fluid, and its voice is a musical tinkling.", + "default_faction": "undine", + "symbol": "s", + "color": "light_blue", + "species": [ "UNDINE" ], + "material": [ "water" ], + "diff": 5, + "aggression": 15, + "morale": 60, + "speed": 90, + "aggro_character": false, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "cut", "amount": 1 } ], + "armor": { "bash": 4, "cut": 4, "acid": 8, "bullet": 3 }, + "vision_day": 14, + "vision_night": 4, + "weakpoint_sets": [ "wps_alien_biology" ], + "families": [ "prof_alien_biology" ], + "hp": 20, + "flags": [ "SEES", "SMELLS", "HEARS", "HIT_AND_RUN", "RANGED_ATTACKER", "PATH_AVOID_DANGER_1", "HARDTOSHOOT" ], + "harvest": "water_elemental", + "dissect": "dissect_undine_single", + "special_attacks": [ { "id": "ice_spray" } ], + "death_drops": [ { "item": "water", "charges": 25, "prob": 100 } ] + }, + { + "id": "mon_ratatosk_children", + "type": "MONSTER", + "name": { "str": "Ratatosk's child" }, + "description": "A large granivorous rodent with a long bushy tail, often seen darting amid the branches of trees. A skittish varmint with an expression of unwavering austerity, it is the mortal enemy of cat and dog alike.", + "default_faction": "arvore", + "bodytype": "pig", + "species": [ "ARVORE" ], + "volume": "1624 ml", + "weight": "1624 g", + "hp": 26, + "speed": 140, + "material": [ "fae_flesh" ], + "symbol": "r", + "color": "light_gray", + "aggro_character": false, + "aggression": 15, + "morale": 80, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], + "armor": { "bash": 5, "cut": 5, "cold": 8, "bullet": 3 }, + "dodge": 5, + "harvest": "rat_with_skull_arvore", + "weakpoint_sets": [ "wps_alien_biology" ], + "families": [ "prof_alien_biology" ], + "dissect": "dissect_arvore_single", + "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ], + "anger_triggers": [ "SOUND", "PLAYER_CLOSE" ], + "flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "HIT_AND_RUN", "WARM" ] + }, + { + "id": "mon_vineling", + "type": "MONSTER", + "name": { "str": "vineling" }, + "description": "A small animated mass of roots and vines, creeping along the ground with alarming speed. The tangle is thick enough that the center from which they grow is concealed.", + "default_faction": "arvore", + "species": [ "ARVORE" ], + "volume": "52500 ml", + "weight": "80 kg", + "hp": 50, + "speed": 80, + "material": [ "veggy" ], + "symbol": "V", + "color": "light_green", + "aggro_character": false, + "aggression": 60, + "morale": 40, + "melee_skill": 8, + "melee_dice": 2, + "melee_dice_sides": 6, + "grab_strength": 50, + "special_attacks": [ { "id": "grab", "cooldown": 7 }, { "id": "grab_2", "cooldown": 12 } ], + "armor": { "bash": 5, "cut": 5, "cold": 8, "bullet": 3 }, + "dodge": 5, + "bleed_rate": 10, + "harvest": "triffid_small", + "dissect": "dissect_arvore_single", + "flags": [ "HEARS", "GOODHEARING", "NOHEAD", "HARDTOSHOOT", "GRABS", "SWIMS", "PLASTIC", "WATER_CAMOUFLAGE" ] + }, + { + "type": "MONSTER", + "id": "mon_salamander_tiny", + "name": { "str": "tiny elemental salamander" }, + "species": [ "SALAMANDER" ], + "default_faction": "salamander", + "symbol": "l", + "color": "c_light_red", + "volume": "10 L", + "weight": "20 kg", + "bodytype": "lizard", + "material": [ "fae_flesh" ], + "aggression": 30, + "morale": 60, + "aggro_character": false, + "speed": 100, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 1, + "melee_damage": [ { "damage_type": "heat", "amount": 1 } ], + "armor": { "bash": 3, "cut": 2, "heat": 8 }, + "dodge": 3, + "weakpoint_sets": [ "wps_alien_biology" ], + "families": [ "prof_alien_biology" ], + "hp": 10, + "death_drops": { "subtype": "collection", "groups": [ [ "produce", 100 ], [ "vertebrate_parts", 10 ] ] }, + "description": "A small dog-sized furry lizard colored in fiery reds. It hisses and then spits napalm-like fluid at whatever attracts its ire.", + "special_attacks": [ { "type": "spell", "spell_data": { "id": "mon_salamander_glob", "min_level": 1 }, "cooldown": 20 } ], + "flags": [ "SEES", "SMELLS", "HEARS", "HIT_AND_RUN", "RANGED_ATTACKER", "PATH_AVOID_DANGER_1", "CLIMBS" ], + "harvest": "fae_furred", + "dissect": "dissect_salamander_single", + "vision_day": 20, + "vision_night": 5, + "fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FRIEND_DIED" ] + }, + { + "id": "mon_smoke_mephit", + "type": "MONSTER", + "name": "smoke mephit", + "description": "A mischievous creature surrounded by smoke and particulates, with a vaguely humanoid shape. Its movements are sharp and jittery, and its voice is the sound of fire crackling.", + "default_faction": "salamander", + "symbol": "w", + "color": "light_red_red", + "species": [ "SALAMANDER" ], + "material": [ "fae_flesh" ], + "diff": 5, + "aggression": 15, + "morale": 60, + "speed": 90, + "aggro_character": false, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "heat", "amount": 5 } ], + "armor": { "bash": 4, "cut": 4, "heat": 8, "bullet": 3 }, + "vision_day": 14, + "vision_night": 4, + "weakpoint_sets": [ "wps_alien_biology" ], + "families": [ "prof_alien_biology" ], + "hp": 20, + "flags": [ "SEES", "SMELLS", "HEARS", "HIT_AND_RUN", "PATH_AVOID_DANGER_1", "HARDTOSHOOT" ], + "harvest": "fae_furred", + "dissect": "dissect_salamander_single", + "emit_fields": [ { "emit_id": "emit_smoke_plume", "delay": "1 s" } ] + }, + { + "id": "mon_venus_doll", + "type": "MONSTER", + "name": { "str": "venus figurine" }, + "description": "Resembling most of all the ancient art form of the Venus figurines, this rounded female body sinously moves side to side as it steps. It's eyes flash yellow and green as they scan the area surrounding them.", + "default_faction": "homullus", + "bodytype": "human", + "species": [ "HOMULLUS" ], + "diff": 2, + "volume": "62500 ml", + "weight": "81500 g", + "hp": 60, + "speed": 80, + "material": [ "flesh" ], + "symbol": "@", + "color": "white", + "aggro_character": false, + "morale": 100, + "melee_skill": 6, + "melee_dice": 1, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "bash", "amount": 0 } ], + "dodge": 1, + "harvest": "demihuman", + "dissect": "dissect_homullus_single", + "families": [ "prof_wp_demihuman" ], + "weakpoint_sets": [ "wps_humanoid_body" ], + "special_attacks": [ { "id": "slam" } ], + "flags": [ "HEARS", "WARM", "ANIMAL", "PATH_AVOID_DANGER_1", "NO_BREATHE" ] + }, + { + "id": "mon_zoomorphic_figure_small", + "type": "MONSTER", + "name": { "str": "zoomorphic figurine" }, + "description": "A human shaped figure with the head of an animal. Their skin shifts between skin and fur across the body, and their fingers end in long talons.", + "default_faction": "homullus", + "bodytype": "human", + "species": [ "HOMULLUS" ], + "volume": "32500 ml", + "weight": "41500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "symbol": "M", + "color": "brown", + "aggression": 8, + "morale": 50, + "aggro_character": false, + "melee_skill": 6, + "melee_dice": 3, + "melee_dice_sides": 4, + "melee_damage": [ { "damage_type": "cut", "amount": 3 } ], + "dodge": 6, + "bleed_rate": 75, + "vision_day": 25, + "vision_night": 5, + "harvest": "fae_furred", + "dissect": "dissect_homullus_single", + "special_attacks": [ + { + "type": "bite", + "cooldown": 10, + "damage_max_instance": [ { "damage_type": "stab", "amount": 4, "armor_multiplier": 0.7 } ] + }, + { "id": "scratch", "max_mul": 1.5 } + ], + "path_settings": { "max_dist": 50, "avoid_traps": true, "avoid_sharp": true }, + "anger_triggers": [ "PLAYER_WEAK", "PLAYER_CLOSE", "HOSTILE_SEEN", "SOUND" ], + "fear_triggers": [ "HURT", "FIRE" ], + "flags": [ "SEES", "HEARS", "SMELLS", "CAN_OPEN_DOORS", "WARM", "BASHES" ], + "armor": { "bash": 5, "cut": 5, "bullet": 4, "electric": 1 } + }, + { + "id": "mon_dragonfly_fae", + "type": "MONSTER", + "name": { "str": "Nimue's dragonfly", "str_pl": "Nimue's dragonflies" }, + "description": "A ferocious, iridescent multi-hued dragonfly, still lightning-fast despite growing to the size of a football. Its head is little more than a palm-sized pair of rainbow compound eyes, and its legs - already specialized for grasping prey - end in curved talons.", + "default_faction": "sylph", + "bodytype": "flying insect", + "species": [ "SYLPH" ], + "volume": "20 L", + "weight": "20750 g", + "hp": 25, + "speed": 150, + "attack_cost": 150, + "material": [ "iflesh" ], + "symbol": "y", + "color": "light_green", + "aggro_character": false, + "aggression": 20, + "morale": 10, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 6, + "melee_damage": [ { "damage_type": "cut", "amount": 4, "armor_penetration": 3 } ], + "grab_strength": 10, + "special_attacks": [ + { + "id": "grab", + "cooldown": 100, + "condition": { "and": [ { "not": { "u_has_effect": "maimed_leg" } }, { "not": { "u_has_effect": "maimed_wings" } } ] } + }, + { + "type": "bite", + "cooldown": 6, + "accuracy": 5, + "move_cost": 300, + "damage_max_instance": [ { "damage_type": "cut", "amount": 6, "armor_penetration": 20 } ], + "min_mul": 1, + "max_mul": 2, + "condition": { "not": { "u_has_effect": "maimed_mandible" } } + } + ], + "dodge": 2, + "weakpoint_sets": [ "wps_arthropod", "wps_arthropod_flying" ], + "families": [ "prof_wp_basic_bug" ], + "vision_day": 45, + "vision_night": 5, + "harvest": "fae_flying", + "dissect": "dissect_sylph_single", + "anger_triggers": [ "PLAYER_WEAK", "STALK" ], + "fear_triggers": [ "HURT", "FIRE" ], + "flags": [ "SWARMS", "HEARS", "SEES", "FLIES", "GRABS", "PATH_AVOID_FIRE" ] + }, + { + "id": "mon_skyglass_butterflies", + "type": "MONSTER", + "name": { "str": "skyglass butterfly", "str_pl": "skyglass butterflies" }, + "description": "A large, brightly colored butterfly with crystalline wings, fluttering incongruously through the air. This one seems to be patterned with orange runes, and its wings look razor-sharp.", + "default_faction": "sylph", + "species": [ "SYLPH" ], + "volume": "12 ml", + "weight": "13 g", + "bodytype": "insect", + "hp": 15, + "speed": 170, + "symbol": "'", + "color": "white", + "aggro_character": false, + "aggression": 30, + "morale": 100, + "melee_skill": 5, + "melee_dice": 1, + "melee_dice_sides": 1, + "melee_damage": [ { "damage_type": "cut", "amount": 5 } ], + "dodge": 4, + "luminance": 0, + "vision_day": 14, + "vision_night": 14, + "special_attacks": [ { "type": "leap", "cooldown": 3, "max_range": 2, "allow_no_target": true }, { "id": "cut_throat" } ], + "material": [ "iflesh" ], + "harvest": "fae_flying", + "dissect": "dissect_sylph_single", + "flags": [ "SEES", "HEARS", "NOHEAD", "HARDTOSHOOT", "FLIES", "NO_BREATHE", "NOGIB", "HIT_AND_RUN", "SWARMS" ], + "armor": { "bash": 0, "cut": 0, "bullet": 0 } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/exodii.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/exodii.json new file mode 100644 index 000000000..0203b8475 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/exodii.json @@ -0,0 +1,62 @@ +[ + { + "id": "mon_exodii_quad_jotunn", + "type": "MONSTER", + "name": { "str": "Exodii Jotunn" }, + "description": "A truly massive heavy combat cyborg with six independent legs, two arms that look like a cross between shovels and shields that can be rooted into the ground to provide stabilized cover, two close combat arms that can swing over top of the shields, and a weapon pod mounted on a swiveling turret.", + "default_faction": "exodii", + "volume": "713 L", + "weight": "843 kg", + "species": [ "CYBORG" ], + "bodytype": "horse", + "material": [ "steel" ], + "speed": 110, + "attack_cost": 80, + "symbol": "J", + "aggression": -10, + "morale": 70, + "aggro_character": false, + "hp": 290, + "color": "dark_gray", + "weakpoint_sets": [ "wps_combat_cyborg" ], + "families": [ "prof_wp_cyborg" ], + "melee_skill": 10, + "melee_dice": 4, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "cut", "amount": 12 }, { "damage_type": "bash", "amount": 12 } ], + "vision_day": 50, + "vision_night": 10, + "path_settings": { "max_dist": 30, "avoid_traps": true, "avoid_sharp": true }, + "starting_ammo": { "123ln": 3000 }, + "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT" ], + "special_attacks": [ + { + "type": "spell", + "spell_data": { "id": "exodii_weapon_pod", "min_level": 1 }, + "cooldown": 200, + "monster_message": "The Exodii Jotunn fires its weapon pod!" + }, + { + "type": "gun", + "cooldown": 1, + "move_cost": 150, + "gun_type": "pamd68", + "ammo_type": "123ln", + "fake_skills": [ [ "gun", 5 ], [ "rifle", 8 ] ], + "fake_dex": 12, + "ranges": [ [ 4, 41, "DEFAULT" ] ], + "require_targeting_npc": true, + "require_targeting_monster": true, + "target_moving_vehicles": true, + "laser_lock": false, + "targeting_cost": 400, + "targeting_timeout_extend": -10, + "no_ammo_sound": "a chk!" + } + ], + "death_drops": { "subtype": "collection", "groups": [ [ "robots", 80 ] ] }, + "death_function": { "corpse_type": "BROKEN" }, + "flags": [ "SEES", "HEARS", "GOODHEARING", "NOHEAD", "NO_BREATHE", "PATH_AVOID_DANGER_1", "PRIORITIZE_TARGETS" ], + "armor": { "bash": 65, "cut": 62, "acid": 12, "heat": 8, "bullet": 72 } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/ferals.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/ferals.json new file mode 100644 index 000000000..d9a4e15a3 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/ferals.json @@ -0,0 +1,66 @@ +[ + { + "id": "mon_feral_zebra_agent", + "type": "MONSTER", + "name": { "str": "deranged zebra agent" }, + "description": "This formerly buttoned up professional government agent has become deranged and dangerous. They move among the undead, handgun at the ready and saucer pupils scanning for threats in a mockery of their former lives.", + "default_faction": "science", + "looks_like": "chud", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 80, + "speed": 100, + "material": [ "flesh" ], + "symbol": "@", + "color": "i_magenta", + "aggression": 30, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 3, + "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor" ], + "families": [ "prof_intro_biology", "prof_physiology", "prof_wp_syn_armored" ], + "dodge": 1, + "harvest": "human", + "dissect": "dissect_human_sample_single", + "vision_day": 50, + "vision_night": 4, + "path_settings": { "max_dist": 30, "avoid_traps": true, "avoid_sharp": true }, + "diff": 5, + "starting_ammo": { "57mm": 5 }, + "special_attacks": [ + { + "type": "gun", + "cooldown": 10, + "move_cost": 150, + "gun_type": "feral_57", + "ammo_type": "57mm", + "fake_skills": [ [ "gun", 1 ], [ "pistol", 2 ] ], + "fake_dex": 8, + "fake_per": 10, + "ranges": [ [ 2, 14, "DEFAULT" ] ], + "require_targeting_player": false, + "description": "The deranged agent fires their Five-seveN!" + } + ], + "death_drops": "feral_agent_death_drops", + "zombify_into": "mon_zombie_labsecurity", + "anger_triggers": [ "FRIEND_DIED", "FRIEND_ATTACKED", "HURT", "PLAYER_WEAK" ], + "flags": [ + "SEES", + "HEARS", + "WARM", + "BASHES", + "GROUP_BASH", + "HUMAN", + "CAN_OPEN_DOORS", + "CLIMBS", + "PUSH_MON", + "PATH_AVOID_DANGER_1", + "DROPS_AMMO" + ], + "armor": { "bash": 4, "cut": 6, "stab": 4, "bullet": 4 } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/inventor.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/inventor.json new file mode 100644 index 000000000..2f29bc4a7 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/inventor.json @@ -0,0 +1,126 @@ +[ + { + "id": "mon_sniperbot", + "type": "MONSTER", + "name": { "str": "sniper bot" }, + "description": "A doglike robot with a rifle barrel mounted on its back. The quadrupedal platform appears to grant a high level of stability in order to strike targets at long range.", + "default_faction": "player", + "species": [ "ROBOT" ], + "diff": 0, + "volume": "150 L", + "weight": "40750 g", + "hp": 80, + "speed": 100, + "material": [ "aluminum" ], + "symbol": "R", + "color": "dark_gray", + "aggression": 100, + "morale": 100, + "armor": { "bash": 14, "cut": 14, "bullet": 11 }, + "vision_day": 50, + "tracking_distance": 16, + "revert_to_itype": "bot_sniperbot", + "starting_ammo": { "308": 150 }, + "special_attacks": [ + { + "type": "gun", + "cooldown": 1, + "move_cost": 450, + "gun_type": "inventor_sniper", + "ammo_type": "308", + "fake_skills": [ [ "gun", 8 ], [ "rifle", 8 ] ], + "fake_dex": 12, + "ranges": [ [ 0, 60, "DEFAULT" ] ], + "require_targeting_npc": true, + "require_targeting_monster": true, + "laser_lock": false, + "targeting_cost": 300, + "targeting_timeout_extend": -10, + "targeting_sound": "\"Steady, steady.\"", + "targeting_volume": 4, + "no_ammo_sound": "chk-chk pop!" + } + ], + "death_drops": { }, + "death_function": { "corpse_type": "BROKEN" }, + "flags": [ + "SEES", + "HEARS", + "ELECTRONIC", + "COLDPROOF", + "NO_BREATHE", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "PATH_AVOID_FALL", + "PRIORITIZE_TARGETS", + "LOUDMOVES", + "DROPS_AMMO", + "STUN_IMMUNE" + ] + }, + { + "id": "mon_shotgunbot", + "type": "MONSTER", + "name": { "str": "shotgun bot" }, + "description": "Heavy, but quick drone of a two legs, that hold a massive shotgun system above himself. Effectively a machinegun with legs.", + "copy-from": "mon_sniperbot", + "species": [ "ROBOT" ], + "tracking_distance": 4, + "revert_to_itype": "bot_shotgunbot", + "starting_ammo": { "shot_00": 240 }, + "special_attacks": [ + { + "type": "gun", + "cooldown": 1, + "move_cost": 50, + "gun_type": "inventor_shotgun", + "ammo_type": "shot_00", + "fake_skills": [ [ "gun", 8 ], [ "shotgun", 8 ] ], + "require_targeting_npc": false, + "require_targeting_monster": false, + "fake_dex": 12, + "ranges": [ [ 0, 10, "DEFAULT" ] ], + "no_ammo_sound": "chk-chk!" + } + ] + }, + { + "id": "mon_meleebot", + "type": "MONSTER", + "name": { "str": "cutthroater" }, + "description": "Tiny arachnid-like bot with three manipulator with telescopic razor-sharp blades.", + "default_faction": "player", + "species": [ "ROBOT" ], + "volume": "30 L", + "weight": "40750 g", + "hp": 90, + "speed": 160, + "material": [ "steel" ], + "symbol": "a", + "color": "light_blue", + "aggression": 100, + "morale": 100, + "melee_skill": 8, + "melee_dice": 3, + "melee_dice_sides": 7, + "melee_damage": [ { "damage_type": "cut", "amount": 22 } ], + "dodge": 6, + "armor": { "bash": 14, "cut": 14, "bullet": 11, "electric": 5 }, + "vision_day": 50, + "revert_to_itype": "bot_meleebot", + "path_settings": { "max_dist": 9 }, + "death_function": { "corpse_type": "BROKEN" }, + "flags": [ + "SEES", + "HEARS", + "GOODHEARING", + "ELECTRONIC", + "COLDPROOF", + "NO_BREATHE", + "PATH_AVOID_DANGER_2", + "PATH_AVOID_FIRE", + "PATH_AVOID_FALL", + "STUN_IMMUNE" + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monfaction.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monfaction.json index e401d3a87..38ca94dca 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monfaction.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monfaction.json @@ -15,6 +15,54 @@ "by_mood": [ "nether", "nightmares" ], "hate": [ "changeling" ] }, + { + "type": "MONSTER_FACTION", + "name": "arvore", + "base_faction": "changeling", + "neutral": [ "small_animal", "fish" ], + "by_mood": [ "nether", "nightmares", "ierde", "undine", "sylph", "salamander" ], + "hate": [ "zombie", "homullus" ] + }, + { + "type": "MONSTER_FACTION", + "name": "ierde", + "base_faction": "changeling", + "neutral": [ "small_animal", "fish" ], + "by_mood": [ "nether", "nightmares", "ierde", "arvore", "undine", "salamander" ], + "hate": [ "zombie", "sylph" ] + }, + { + "type": "MONSTER_FACTION", + "name": "undine", + "base_faction": "changeling", + "neutral": [ "small_animal", "fish" ], + "by_mood": [ "nether", "nightmares", "homullus", "arvore", "sylph", "ierde" ], + "hate": [ "zombie", "salamander" ] + }, + { + "type": "MONSTER_FACTION", + "name": "salamander", + "base_faction": "changeling", + "neutral": [ "small_animal", "fish" ], + "by_mood": [ "nether", "nightmares", "ierde", "arvore", "sylph", "homullus" ], + "hate": [ "zombie", "undine" ] + }, + { + "type": "MONSTER_FACTION", + "name": "homullus", + "base_faction": "changeling", + "neutral": [ "small_animal", "fish" ], + "by_mood": [ "nether", "nightmares", "ierde", "arvore", "sylph", "salamander" ], + "hate": [ "zombie", "arvore" ] + }, + { + "type": "MONSTER_FACTION", + "name": "sylph", + "base_faction": "changeling", + "neutral": [ "small_animal", "fish" ], + "by_mood": [ "nether", "nightmares", "homullus", "arvore", "undine", "salamander" ], + "hate": [ "zombie", "ierde" ] + }, { "type": "MONSTER_FACTION", "name": "fish", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster.json index 6f267427f..dbb83183f 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster.json @@ -24,13 +24,207 @@ "attack_effs": [ { "id": "blood_spiders", "duration": 40000, "affect_hit_bp": true } ], "//": "5 hits to max intensity, 6 hits to max duration", "dodge": 2, - "armor_bash": 2, - "armor_cut": 6, - "armor_bullet": 5, "vision_day": 5, "vision_night": 5, "harvest": "arachnid", "fungalize_into": "mon_spider_fungus", - "flags": [ "SEES", "SMELLS", "HEARS", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ] + "flags": [ "SEES", "SMELLS", "HEARS", "WEBWALK", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL" ], + "armor": { "bash": 2, "cut": 6, "bullet": 5 } + }, + { + "id": "mon_shifter", + "type": "MONSTER", + "name": { "str": "shifter" }, + "description": "Tall body on four legs, surrounded with a \"glitched\" aura - it constantly changes its own position.", + "default_faction": "player", + "bodytype": "dog", + "species": [ "NETHER" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 95, + "speed": 126, + "symbol": "S", + "color": "white", + "aggression": 100, + "morale": 100, + "melee_skill": 6, + "melee_dice": 2, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 16 } ], + "dodge": 4, + "vision_day": 30, + "vision_night": 10, + "special_attacks": [ + { + "id": "spell_1", + "type": "spell", + "allow_no_target": true, + "spell_data": { "id": "shifting", "hit_self": true }, + "cooldown": 2 + }, + { + "id": "spell_2", + "type": "spell", + "allow_no_target": true, + "spell_data": { "id": "duplicate_shifter", "hit_self": true }, + "cooldown": 15 + } + ], + "death_function": { "message": "The %s disappears.", "corpse_type": "NO_CORPSE" }, + "flags": [ "SEES", "HEARS", "SMELLS", "NO_BREATHE" ], + "armor": { "bash": 1, "electric": 1 } + }, + { + "id": "mon_duplicator", + "type": "MONSTER", + "name": { "str": "duplicator" }, + "description": "A humanoid on two legs, this creature spies on everything around with its eight eyes, arranged in a circle. From time to time it splits in two, where the one on the left is in a defensive position, and the other attacks the enemy with its long fists.", + "default_faction": "player", + "bodytype": "human", + "categories": [ "NETHER" ], + "species": [ "NETHER" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 140, + "speed": 110, + "symbol": "D", + "color": "light_gray", + "aggression": 100, + "morale": 100, + "tracking_distance": 15, + "melee_skill": 0, + "melee_dice": 0, + "melee_dice_sides": 0, + "dodge": 1, + "vision_night": 15, + "special_attacks": [ + { + "type": "spell", + "spell_data": { "id": "duplicator_spawn_pawn", "hit_self": true }, + "cooldown": 6, + "allow_no_target": true, + "monster_message": "The body of the duplicator splits in half!" + } + ], + "death_function": { "message": "The %s disappears.", "corpse_type": "NO_CORPSE" }, + "flags": [ "SEES", "HEARS", "SMELLS", "NO_BREATHE", "KEEP_DISTANCE", "PACIFIST" ], + "armor": { "bash": 2, "cut": 1, "bullet": 1, "electric": 2 } + }, + { + "id": "mon_duplicator_pawn", + "type": "MONSTER", + "name": { "str": "duplicator" }, + "description": "A humanoid on two legs, this creature spies on everything around with its eight eyes, arranged in a circle. From time to time it splits in two, where the one on the left is in a defensive position, and the other attacks the enemy with its long fists.", + "default_faction": "player", + "looks_like": "mon_duplicator", + "bodytype": "human", + "categories": [ "NETHER" ], + "species": [ "NETHER" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 140, + "speed": 110, + "symbol": "D", + "color": "light_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 5, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "cut", "amount": 3 } ], + "special_attacks": [ [ "DISAPPEAR", 35 ] ], + "dodge": 1, + "vision_night": 18, + "death_function": { "message": "The %s disappears.", "corpse_type": "NO_CORPSE" }, + "flags": [ "SEES", "HEARS", "SMELLS", "NO_BREATHE" ], + "armor": { "bash": 2, "cut": 1, "bullet": 1, "electric": 2 } + }, + { + "id": "mon_ophanim", + "type": "MONSTER", + "name": { "str": "ophanim" }, + "description": "Their entire bodies\nincluding their backs, their hands and their wings\nwere completely full of eyes\nas were their four wheels.", + "default_faction": "player", + "bodytype": "blob", + "species": [ "NETHER" ], + "volume": "875000 ml", + "weight": "200 kg", + "hp": 50, + "speed": 100, + "attack_cost": 20, + "symbol": "H", + "color": "dark_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 2, + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "cut", "amount": 8 } ], + "special_attacks": [ { "type": "leap", "cooldown": 2, "max_range": 5, "allow_no_target": true } ], + "death_function": { + "effect": { "id": "ophanim_death", "hit_self": true }, + "corpse_type": "NO_CORPSE", + "message": "The %s shatter into pieces in silent explosion." + }, + "regenerates": 25, + "regen_morale": true, + "flags": [ "SEES", "SMELLS", "SWIMS", "PLASTIC", "FLIES", "ACIDPROOF", "NOHEAD", "NOGIB" ], + "armor": { "bash": 2, "cut": 2, "bullet": 2, "electric": 4 } + }, + { + "id": "mon_sapient_light", + "type": "MONSTER", + "name": { "str": "light" }, + "description": "Flying piece of light in a shape of… a cube? It constantly changes its form, and each of its attacks tears the piece of space from the reality, causing a ridiculously loud explosion. Even if it's friendly, some of its action are impossible to explain.", + "default_faction": "player", + "species": [ "NETHER" ], + "volume": "31415 ml", + "weight": "31415 g", + "hp": 95, + "speed": 126, + "symbol": "S", + "color": "white", + "aggression": 100, + "morale": 100, + "melee_skill": 0, + "melee_dice": 0, + "melee_dice_sides": 0, + "dodge": 4, + "vision_day": 60, + "vision_night": 60, + "luminance": 60, + "tracking_distance": 3, + "path_settings": { "max_dist": 60, "allow_open_doors": true, "avoid_traps": true, "allow_climb_stairs": true }, + "special_attacks": [ { "type": "spell", "spell_data": { "id": "sapient_light_damage" }, "cooldown": 5 } ], + "death_function": { "message": "The %s disappears.", "corpse_type": "NO_CORPSE" }, + "flags": [ "SEES", "HEARS", "SMELLS", "NO_BREATHE", "ALL_SEEING", "KEEP_DISTANCE" ], + "armor": { "bash": 1, "electric": 1 } + }, + { + "id": "mon_rat_king", + "type": "MONSTER", + "name": { "str": "rat king" }, + "description": "A towering swarm of mutated rats, their tails knotted together in a filthy mass. A fetid stench flows from its filthy presence.", + "default_faction": "rat", + "species": [ "MAMMAL" ], + "diff": 10, + "volume": "81500 ml", + "weight": "81500 g", + "hp": 220, + "speed": 40, + "material": [ "flesh" ], + "symbol": "&", + "color": "dark_gray", + "aggression": 10, + "morale": 100, + "melee_skill": 4, + "melee_dice": 1, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "cut", "amount": 1 } ], + "harvest": "mammal_tiny", + "dissect": "dissect_rat_sample_large", + "families": [ "prof_intro_biology" ], + "special_attacks": [ [ "RATKING", 3 ] ], + "death_function": { "effect": { "id": "death_ratking" }, "message": "Rats suddenly swarm into view." } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster_evolutions.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster_evolutions.json new file mode 100644 index 000000000..dac059be4 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster_evolutions.json @@ -0,0 +1,14 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_RENFIELD_UPGRADE", + "monsters": [ + { "monster": "mon_renfield", "weight": 910 }, + { "monster": "mon_renfield_9mm", "weight": 450 }, + { "monster": "mon_renfield_shotgun", "weight": 250 }, + { "monster": "mon_renfield_flamethrower", "weight": 45 }, + { "monster": "mon_renfield_bionic_monster", "weight": 25 }, + { "monster": "mon_renfield_abomination", "weight": 25 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster_spells.json index 75669cb6b..8d2cf0bff 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster_spells.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monster_spells.json @@ -1,30 +1,43 @@ [ { - "id": "hoary_blast", + "id": "hoary_blast_march_lord", "type": "SPELL", "name": "Hoary Blast", "description": "You project a glowing white crystal of ice and it explodes on impact into a blossom of shattering cold.", "effect": "attack", - "effect_str": "cold", - "shape": "blast", - "affected_body_parts": [ "torso" ], + "shape": "line", "valid_targets": [ "self", "ally", "hostile", "ground" ], - "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ], + "flags": [ "LOUD" ], "max_level": 20, - "min_damage": 24, - "max_damage": 68, - "damage_increment": 2.2, + "min_damage": 12, + "max_damage": 36, + "damage_increment": 2, "min_aoe": 3, - "max_aoe": 5, - "aoe_increment": 0.1, - "min_range": 6, - "max_range": 20, - "range_increment": 1.0, - "spell_class": "KELVINIST", - "base_casting_time": 200, - "base_energy_cost": 350, - "energy_source": "MANA", - "difficulty": 4, + "max_aoe": 3, + "min_range": 7, + "max_range": 7, + "field_id": "fd_cold_air4", + "field_chance": 100, + "min_field_intensity": 3, + "max_field_intensity": 3, "damage_type": "cold" + }, + { + "type": "SPELL", + "id": "mon_salamander_glob", + "name": "Salamander Glob", + "description": "This is a monster only spell.", + "flags": [ "IGNITE_FLAMMABLE" ], + "valid_targets": [ "hostile", "ground", "ally", "self" ], + "min_damage": 5, + "max_damage": 5, + "min_range": 6, + "max_range": 6, + "min_aoe": 2, + "max_aoe": 2, + "base_casting_time": 120, + "effect": "attack", + "shape": "blast", + "damage_type": "heat" } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monsterattacks.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monsterattacks.json index c89872aee..c7bf7b04c 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monsterattacks.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monsterattacks.json @@ -25,7 +25,6 @@ "weight": "540 g", "volume": "210 ml", "longest_side": "75 mm", - "bashing": 2, "to_hit": 1, "loudness": 2, "range": 6, @@ -40,7 +39,8 @@ "max_item_length": "2000 m", "ammo_restriction": { "throwing_knives": 3 } } - ] + ], + "melee_damage": { "bash": 2 } }, { "type": "monster_attack", @@ -59,5 +59,205 @@ "no_dmg_msg_npc": "%1$s tries to impale , but fails to penetrate their armor!", "dodgeable": true, "blockable": true + }, + { + "id": "renfield_glock", + "copy-from": "pistol_base", + "looks_like": "glock_19", + "type": "GUN", + "name": { "str_sp": "Glock 19" }, + "description": "A poorly maintained and inaccurate version of the Glock 19 for renfields.", + "ascii_picture": "glock_19", + "weight": "600 g", + "volume": "386 ml", + "longest_side": "211 mm", + "price": 65000, + "price_postapoc": 2500, + "to_hit": -2, + "ranged_damage": { "damage_type": "bullet", "amount": -4 }, + "material": [ "steel", "aluminum" ], + "symbol": "(", + "color": "dark_gray", + "ammo": [ "9mm" ], + "range": 1, + "dispersion": 4800, + "durability": 7, + "min_cycle_recoil": 450, + "weapon_category": [ "AUTOMATIC_PISTOLS" ], + "pocket_data": [ + { + "magazine_well": "250 ml", + "pocket_type": "MAGAZINE_WELL", + "item_restriction": [ "glockmag", "glockbigmag", "glock17_17", "glock17_22", "glock_drum_50rd", "glock_drum_100rd" ] + } + ], + "melee_damage": { "bash": 8 } + }, + { + "id": "renfield_remington", + "type": "GUN", + "symbol": "R", + "color": "dark_gray", + "name": { "str": "renfield remington" }, + "description": "A fake shotgun for renfields (because monster aiming is too lethal).", + "material": [ "steel", "aluminum", "plastic" ], + "skill": "shotgun", + "flags": [ "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE", "NO_UNLOAD", "RELOAD_AND_SHOOT" ], + "ammo": [ "shot" ], + "clip_size": 5, + "weight": "3400 g", + "volume": "2487 ml", + "longest_side": "1234 mm", + "dispersion": 3250, + "range": 65, + "durability": 9, + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "shot": 5 } } ], + "melee_damage": { "bash": 3 } + }, + { + "id": "feral_57", + "copy-from": "pistol_base", + "looks_like": "fn57", + "type": "GUN", + "name": { "str_sp": "FN Five-seveN" }, + "description": "A poorly maintained and inaccurate version of the Five-seveN for feral agents.", + "ascii_picture": "FN_five_seven", + "weight": "600 g", + "volume": "551 ml", + "longest_side": "164 mm", + "price": 65000, + "price_postapoc": 2500, + "to_hit": -2, + "ranged_damage": { "damage_type": "bullet", "amount": -5 }, + "material": [ "steel", "aluminum" ], + "symbol": "(", + "color": "light_gray", + "ammo": [ "57" ], + "range": 1, + "dispersion": 4800, + "durability": 7, + "min_cycle_recoil": 120, + "weapon_category": [ "AUTOMATIC_PISTOLS" ], + "pocket_data": [ { "magazine_well": "250 ml", "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "fn57mag" ] } ], + "melee_damage": { "bash": 6 } + }, + { + "id": "shifting", + "type": "SPELL", + "name": "Duplicator Shifting", + "description": "Constantly teleports you around.", + "message": "", + "effect": "short_range_teleport", + "shape": "blast", + "valid_targets": [ "self", "ground", "none" ], + "flags": [ "SILENT", "RANDOM_TARGET" ], + "min_aoe": 4, + "max_aoe": 4 + }, + { + "id": "duplicate_shifter", + "type": "SPELL", + "name": "Summon Shifter (Monster Version)", + "description": "Summon a shifter. Monster version, the creature exists for 1-2 seconds. Mostly decorative effect to show 'glitchiness'.", + "message": "", + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 1, + "effect": "summon", + "effect_str": "mon_shifter", + "shape": "blast", + "min_aoe": 1, + "max_aoe": 1, + "flags": [ "NO_EXPLOSION_SFX", "RANDOM_DURATION" ], + "min_duration": 100, + "max_duration": 200 + }, + { + "id": "sapient_light_damage", + "type": "SPELL", + "name": "Sapient Damage", + "description": "Deal some damage. You can't see it except in debug mode.", + "message": "", + "effect": "attack", + "shape": "cone", + "valid_targets": [ "hostile", "ground", "item" ], + "flags": [ "SILENT", "IGNORE_WALLS", "RANDOM_AOE", "RANDOM_DAMAGE" ], + "min_damage": 60, + "max_damage": 150, + "min_range": 9, + "max_range": 9, + "min_aoe": 25, + "max_aoe": 50, + "damage_type": "pure", + "sound_description": "a loud whisper", + "extra_effects": [ { "id": "sapient_light_bash" }, { "id": "sapient_light_damage_player" } ] + }, + { + "id": "sapient_light_bash", + "type": "SPELL", + "name": "Sapient Bash", + "description": "Bash some terrain. You can't see it except in debug mode.", + "message": "", + "effect": "bash", + "shape": "cone", + "valid_targets": [ "hostile", "ground", "item" ], + "flags": [ "LOUD", "IGNORE_WALLS", "NO_EXPLOSION_SFX", "RANDOM_AOE", "RANDOM_DAMAGE" ], + "min_damage": 180, + "max_damage": 600, + "min_range": 9, + "max_range": 9, + "min_aoe": 25, + "max_aoe": 50 + }, + { + "id": "sapient_light_damage_player", + "type": "SPELL", + "name": "Sapient Player Damage", + "description": "Deal 34% of player's hp damage to player. You can't see it except in debug mode.", + "message": "", + "effect": "attack", + "shape": "cone", + "valid_targets": [ "ally" ], + "flags": [ "SILENT", "IGNORE_WALLS", "PERCENTAGE_DAMAGE", "NO_EXPLOSION_SFX" ], + "min_damage": 34, + "max_damage": 34, + "min_range": 9, + "max_range": 9, + "min_aoe": 50, + "max_aoe": 50, + "damage_type": "pure", + "extra_effects": [ { "id": "sapient_light_bash" } ] + }, + { + "type": "SPELL", + "id": "duplicator_spawn_pawn", + "name": "Summon Duplicator Pawn", + "description": "Summon 1 short life pawn.", + "message": "", + "flags": [ "PERMANENT", "NO_EXPLOSION_SFX" ], + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 1, + "min_aoe": 3, + "max_aoe": 3, + "shape": "blast", + "effect": "summon", + "effect_str": "mon_duplicator_pawn" + }, + { + "id": "ophanim_death", + "type": "SPELL", + "name": { "str": "Ophanim Death" }, + "description": "AoE cut damage, when ophanim dies.", + "message": "", + "valid_targets": [ "self", "hostile", "ground" ], + "effect": "attack", + "shape": "blast", + "min_damage": 45, + "max_damage": 99, + "damage_type": "cut", + "flags": [ "SILENT", "RANDOM_DAMAGE", "RANDOM_AOE" ], + "min_aoe": 7, + "max_aoe": 10 } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monstergroup.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monstergroup.json index fb8b356a0..b9335e234 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monstergroup.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/monstergroup.json @@ -52,54 +52,159 @@ { "name": "GROUP_PARK_SCENIC", "type": "monstergroup", + "monsters": [ { "monster": "mon_vampire_moroi", "weight": 10 }, { "monster": "mon_vampire_strigoi", "weight": 1 } ] + }, + { + "name": "GROUP_PARK_PLAYGROUND", + "type": "monstergroup", + "monsters": [ { "monster": "mon_vampire_moroi", "weight": 10 }, { "monster": "mon_vampire_strigoi", "weight": 1 } ] + }, + { + "name": "GROUP_HOUSE", + "type": "monstergroup", + "monsters": [ { "monster": "mon_vampire_moroi", "weight": 5 }, { "monster": "mon_vampire_strigoi", "weight": 1 } ] + }, + { + "name": "GROUP_MANSION", + "type": "monstergroup", + "monsters": [ { "monster": "mon_vampire_moroi", "weight": 1 } ] + }, + { + "name": "GROUP_HOSPITAL", + "type": "monstergroup", + "monsters": [ { "monster": "mon_vampire_moroi", "weight": 5 }, { "monster": "mon_vampire_strigoi", "weight": 1 } ] + }, + { + "name": "FERAL_HUMANS", + "type": "monstergroup", + "monsters": [ { "monster": "mon_vampire_moroi", "weight": 5 }, { "monster": "mon_vampire_strigoi", "weight": 1 } ] + }, + { + "name": "GROUP_RETIREMENT_COMMUNITY", + "type": "monstergroup", + "monsters": [ { "monster": "mon_vampire_moroi", "weight": 5 }, { "monster": "mon_vampire_strigoi", "weight": 1 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_MOROI", + "monsters": [ { "monster": "mon_vampire_moroi", "weight": 35 }, { "monster": "mon_renfield", "weight": 50, "pack_size": [ 1, 2 ] } ] + }, + { + "type": "monstergroup", + "name": "GROUP_STRIGOI", "monsters": [ - { "monster": "mon_vampire_moroi", "weight": 10, "conditions": [ "DAWN", "DUSK", "NIGHT" ] }, - { "monster": "mon_vampire_strigoi", "weight": 1, "conditions": [ "DAWN", "DUSK", "NIGHT" ] } + { "monster": "mon_zombie", "weight": 50, "pack_size": [ 1, 2 ] }, + { "monster": "mon_vampire_strigoi", "weight": 25 }, + { "monster": "mon_vampire_strigoi", "weight": 1, "pack_size": [ 2, 4 ] } ] }, { - "name": "GROUP_PARK_PLAYGROUND", "type": "monstergroup", + "name": "GROUP_VAMPIRES_MIXED", "monsters": [ - { "monster": "mon_vampire_moroi", "weight": 10, "conditions": [ "DAWN", "DUSK", "NIGHT" ] }, - { "monster": "mon_vampire_strigoi", "weight": 1, "conditions": [ "DAWN", "DUSK", "NIGHT" ] } + { "monster": "mon_zombie", "weight": 50, "pack_size": [ 1, 2 ] }, + { "monster": "mon_renfield", "weight": 50, "pack_size": [ 1, 2 ] }, + { "monster": "mon_vampire_moroi", "weight": 25 }, + { "monster": "mon_vampire_strigoi", "weight": 15 } ] }, { - "name": "GROUP_HOUSE", "type": "monstergroup", + "name": "GROUP_RENFIELDS", "monsters": [ - { "monster": "mon_vampire_moroi", "weight": 5, "conditions": [ "DAWN", "DUSK", "NIGHT" ] }, - { "monster": "mon_vampire_strigoi", "weight": 1, "conditions": [ "DAWN", "DUSK", "NIGHT" ] } + { "monster": "mon_zombie", "weight": 50, "pack_size": [ 1, 2 ] }, + { "monster": "mon_renfield", "weight": 50, "pack_size": [ 1, 2 ] } ] }, { - "name": "GROUP_MANSION", "type": "monstergroup", - "monsters": [ { "monster": "mon_vampire_moroi", "weight": 1 } ] + "name": "GROUP_SWARM_BATS", + "is_animal": true, + "monsters": [ { "monster": "xe_mon_bat", "weight": 10, "pack_size": [ 1, 2 ] } ] + }, + { + "type": "monstergroup", + "name": "GROUP_GIANT_BATS", + "is_animal": true, + "monsters": [ { "monster": "mon_bat_giant", "weight": 10 } ] + }, + { + "type": "monstergroup", + "name": "GROUP_VAMPIRE_BATS", + "is_animal": true, + "monsters": [ { "monster": "mon_vampire_bat", "weight": 10, "pack_size": [ 1, 2 ] } ] }, { - "name": "GROUP_HOSPITAL", "type": "monstergroup", + "name": "GROUP_ALL_BATS", + "is_animal": true, "monsters": [ - { "monster": "mon_vampire_moroi", "weight": 5, "conditions": [ "DAWN", "DUSK", "NIGHT" ] }, - { "monster": "mon_vampire_strigoi", "weight": 1, "conditions": [ "DAWN", "DUSK", "NIGHT" ] } + { "monster": "xe_mon_bat", "weight": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_vampire_bat", "weight": 10, "pack_size": [ 1, 2 ] }, + { "monster": "mon_bat_giant", "weight": 10 } ] }, { - "name": "FERAL_HUMANS", "type": "monstergroup", + "name": "GROUP_Exodii_Jotunn", + "//": "A small Exodii hunter/killer unit or party. Hunting for Xedra Survivors or Balthazar pawns.", "monsters": [ - { "monster": "mon_vampire_moroi", "weight": 5, "conditions": [ "DAWN", "DUSK", "NIGHT" ] }, - { "monster": "mon_vampire_strigoi", "weight": 1, "conditions": [ "DAWN", "DUSK", "NIGHT" ] } + { "monster": "mon_exodii_quad", "weight": 100 }, + { "monster": "mon_exodii_quad", "weight": 50, "cost_multiplier": 20, "pack_size": [ 1, 3 ] }, + { "monster": "mon_exodii_quad_jotunn", "weight": 800, "cost_multiplier": 30, "pack_size": [ 1, 2 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_FERAL_AGENTS", + "monsters": [ { "monster": "mon_feral_zebra_agent", "weight": 100, "pack_size": [ 1, 2 ] } ] + }, + { + "type": "monstergroup", + "name": "GROUP_GENIUS_IERDE", + "monsters": [ + { "monster": "mon_monstrous_badger", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_stoneling", "weight": 400, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_GENIUS_UNDINE", + "monsters": [ + { "monster": "mon_water_sprite", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_spitting_lizard", "weight": 400, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_GENIUS_SALAMANDER", + "monsters": [ + { "monster": "mon_smoke_mephit", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_salamander_tiny", "weight": 400, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_GENIUS_SYLPH", + "monsters": [ + { "monster": "mon_skyglass_butterflies", "weight": 80, "cost_multiplier": 0 }, + { "monster": "mon_dragonfly_fae", "weight": 40, "cost_multiplier": 0 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_GENIUS_ARVORE", + "monsters": [ + { "monster": "mon_vineling", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_ratatosk_children", "weight": 400, "cost_multiplier": 0 } ] }, { - "name": "GROUP_RETIREMENT_COMMUNITY", "type": "monstergroup", + "name": "GROUP_GENIUS_HOMULLUS", "monsters": [ - { "monster": "mon_vampire_moroi", "weight": 5, "conditions": [ "DAWN", "DUSK", "NIGHT" ] }, - { "monster": "mon_vampire_strigoi", "weight": 1, "conditions": [ "DAWN", "DUSK", "NIGHT" ] } + { "monster": "mon_zoomorphic_figure_small", "weight": 40, "cost_multiplier": 0 }, + { "monster": "mon_venus_doll", "weight": 400, "cost_multiplier": 0 } ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/nightmares_and_chimeras.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/nightmares_and_chimeras.json index de6684960..c831ee9ce 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/nightmares_and_chimeras.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/nightmares_and_chimeras.json @@ -3,7 +3,7 @@ "id": "mon_xe_flying_shark", "type": "MONSTER", "name": { "str": "flying shark" }, - "description": "It would be funny watching a shark swim through the air, between trees and other objects like kelp under the water. If it didn't mean the shark was here, now and capable of flying after you. Clearly something is off, here.", + "description": "It would be funny watching a shark swim through the air, between trees and other objects like kelp under the water. If it didn't mean the shark was still completely real and capable of flying after you. Something is very wrong about things here.", "default_faction": "nightmares", "looks_like": "mon_zhark", "bodytype": "fish", @@ -22,13 +22,11 @@ "melee_dice_sides": 4, "melee_damage": [ { "damage_type": "cut", "amount": 4 } ], "dodge": 3, - "armor_bash": 6, - "armor_cut": 2, - "armor_bullet": 2, "vision_day": 30, "vision_night": 5, "death_function": { "message": "The %s disintegrates!", "corpse_type": "NO_CORPSE" }, - "flags": [ "SEES", "HEARS", "FLIES", "NO_BREATHE" ] + "flags": [ "SEES", "HEARS", "FLIES", "NO_BREATHE" ], + "armor": { "bash": 6, "cut": 2, "bullet": 2 } }, { "id": "mon_endless_snake", @@ -85,5 +83,37 @@ "harvest": "exempt", "death_function": { "message": "The %s disintegrates!", "corpse_type": "NO_CORPSE" }, "flags": [ "SEES", "SMELLS", "FLIES", "HARDTOSHOOT", "HIT_AND_RUN", "PATH_AVOID_FIRE", "LOUDMOVES" ] + }, + { + "id": "mon_twin", + "type": "MONSTER", + "name": "twin", + "description": "Ethereal copy of you.", + "looks_like": "player", + "default_faction": "factionless", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 1, + "speed": 150, + "symbol": "@", + "color": "cyan", + "aggression": -99, + "morale": 2, + "luminance": 2, + "dodge": 10, + "harvest": "exempt", + "fear_triggers": [ "PLAYER_CLOSE" ], + "special_attacks": [ [ "DISAPPEAR", 1000 ] ], + "death_function": { "message": "", "corpse_type": "NO_CORPSE" }, + "flags": [ "FLIES", "NO_BREATHE", "NOT_HALLUCINATION", "HARDTOSHOOT" ] + }, + { + "id": "mon_you", + "copy-from": "mon_hologram", + "looks_like": "player", + "type": "MONSTER", + "name": { "str": "you" }, + "description": "It is you. It looks like you, it is equipped like you, it is even has a weapon like you." } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/species.json b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/species.json index 5a2c74fc8..9123635b6 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/monsters/species.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/monsters/species.json @@ -5,10 +5,47 @@ "description": "a creature from under the hill", "fear_triggers": [ "HURT" ] }, + { + "type": "SPECIES", + "id": "IERDE", + "description": "an earth elemental spirit", + "fear_triggers": [ "HURT" ] + }, + { + "type": "SPECIES", + "id": "UNDINE", + "description": "a water elemental spirit", + "fear_triggers": [ "HURT" ] + }, + { + "type": "SPECIES", + "id": "ARVORE", + "description": "a plant elemental spirit", + "fear_triggers": [ "HURT" ] + }, + { + "type": "SPECIES", + "id": "SALAMANDER", + "description": "a fire elemental spirit", + "fear_triggers": [ "HURT" ] + }, + { + "type": "SPECIES", + "id": "HOMULLUS", + "description": "an elemental spirit of humanity", + "fear_triggers": [ "HURT" ] + }, + { + "type": "SPECIES", + "id": "SYLPH", + "description": "an air elemental spirit", + "fear_triggers": [ "HURT" ] + }, { "type": "SPECIES", "id": "VAMPIRE", "description": "a variety of creatures that subsist off the blood of living humans", + "flags": [ "NO_NECRO", "VAMP_VIRUS" ], "fear_triggers": [ "FIRE" ] }, { diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/morale_types.json b/data/Mainline_mods/Mods/Xedra_Evolved/morale_types.json new file mode 100644 index 000000000..d589c2956 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/morale_types.json @@ -0,0 +1,12 @@ +[ + { + "id": "morale_ate_dross", + "type": "morale_type", + "text": "Ate dreamdross" + }, + { + "id": "morale_craving_lotus_blossom", + "type": "morale_type", + "text": "A hum at the edge of your thoughts." + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/classes.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/classes.json index 69dc3742a..365c2bfb5 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/classes.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/classes.json @@ -4,27 +4,35 @@ "id": "DREAMER", "name": "Dreamer", "points": 0, - "description": "Dreamers are people able to tap into the power of dreams and nearby dimensions and create fantastical effects as a result. They can even pull some of this dream material into our world to build other things with it.", + "description": "Dreamers are people who are able to tap into the power of dreams and nearby dimensions and create fantastical effects as a result. They can even pull some of this dream material into our world to build other things with it. Sometimes they hear outside voices that offer help and presents, and with enough power, dreamers can pull them right from beyond. Their power scales with their natural perception and intellect.", "starting_trait": false, "purifiable": false, "valid": false, - "mana_modifier": 500, + "enchantments": [ "BONUS_DREAMER" ], "cancels": [ "EATER" ], - "spells_learned": [ [ "create_dream_dross", 1 ] ] + "moncams": [ + [ "mon_shifter", 100 ], + [ "mon_duplicator", 100 ], + [ "mon_duplicator_pawn", 100 ], + [ "mon_ophanim", 100 ], + [ "mon_sapient_light", 100 ] + ], + "vitamin_rates": [ [ "dreamer_vit", -1080 ] ], + "//": "1 vit each 18 minutes, 80 per day, 12,5 days to full", + "spells_learned": [ [ "create_dream_dross", 0 ], [ "dreamer_artifact", 0 ] ] }, { "type": "mutation", "id": "EATER", "name": "Eater of Dreams", "points": 0, - "description": "These people are aware of this cross-dimensional contamination and while they can't pull anything over and make new things, they can eat anything they find in our world that doesn't belong and gain abilities and powers from that consumption.", + "description": "These people are aware of this cross-dimensional contamination and while they can't pull anything over and make new things, they can eat anything they find in our world that doesn't belong and gain abilities and powers from that consumption. They have larger than normal mana pools but regen that mana much slower as a result, they can cast a spell to convert dreamdross scraps directly into mana. Their power scales with their natural strength and dexterity.", "starting_trait": false, "purifiable": false, "valid": false, - "mana_modifier": 2500, - "mana_regen_multiplier": 0.2, + "enchantments": [ "BONUS_EATER" ], "cancels": [ "DREAMER" ], - "spells_learned": [ [ "eat_dreamdross", 1 ] ] + "spells_learned": [ [ "eat_dreamdross", 0 ] ] }, { "type": "mutation", @@ -35,22 +43,20 @@ "starting_trait": false, "purifiable": false, "valid": false, - "mana_modifier": 500, - "cancels": [ "INVENTOR" ], - "spells_learned": [ [ "forge_dreamdross", 1 ] ] + "enchantments": [ "BONUS_DREAMSMITH" ], + "cancels": [ "INVENTOR" ] }, { "type": "mutation", "id": "INVENTOR", "name": "Mad Genius", "points": 0, - "description": "The Mad Genius uses their connection to other dimensions in order to manipulate or even replace the physics of this realm with that of another. They turn toys and nonsense inventions into machines of incredible sophistication and power, temporarily. Roughly once a week they will accrue enough creative sparks to create a random minor artifact.", + "description": "The Mad Genius uses their connection to other dimensions in order to manipulate or even replace the physics of this realm with that of another. They turn toys and nonsense inventions into machines of incredible sophistication and power, temporarily.", "starting_trait": false, "purifiable": false, "valid": false, - "mana_modifier": 500, + "enchantments": [ "BONUS_INVENTOR" ], "cancels": [ "DREAMSMITH" ], - "vitamin_rates": [ [ "creative_spark", -604800 ] ], - "spells_learned": [ [ "spark_of_inspiration", 1 ] ] + "vitamin_rates": [ [ "creative_spark", -64800 ] ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/cybernetic_traits.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/cybernetic_traits.json index cc8b09ef1..b3662d73a 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/cybernetic_traits.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/cybernetic_traits.json @@ -2,6 +2,7 @@ { "type": "mutation", "id": "XEDRA_CYBORG", + "//": "When Hub01 is able to develop their own bionic installations they might receive this trait.", "name": { "str": "XEDRA Neurobionic Interface" }, "points": 0, "description": "The compact bionic command and control interface interwoven with your nervous system had a previous life inside of a cybernetic tribesperson. Best case scenario, none of them are on this Earth.", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_category.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_category.json new file mode 100644 index 000000000..ad0d9e3dd --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_category.json @@ -0,0 +1,72 @@ +[ + { + "type": "mutation_category", + "id": "IERDE", + "name": "Ierde", + "threshold_mut": "THRESH_IERDE", + "mutagen_message": "Soil and stone.", + "vitamin": "mutagen_earthkin", + "memorial_message": "Returned to the earth." + }, + { + "type": "mutation_category", + "id": "SYLPH", + "name": "Sylph", + "threshold_mut": "THRESH_SYLPH", + "mutagen_message": "Wind and weather.", + "vitamin": "mutagen_airkin", + "memorial_message": "Dissipated into the atmosphere." + }, + { + "type": "mutation_category", + "id": "UNDINE", + "name": "Undine", + "threshold_mut": "THRESH_UNDINE", + "mutagen_message": "Rain and wave.", + "vitamin": "mutagen_waterkin", + "memorial_message": "Dissolved into the sea." + }, + { + "type": "mutation_category", + "id": "ARVORE", + "name": "Arvore", + "threshold_mut": "THRESH_ARVORE", + "mutagen_message": "Growth in adversity.", + "vitamin": "mutagen_plantkin", + "memorial_message": "Fell with a great sound." + }, + { + "type": "mutation_category", + "id": "SALAMANDER", + "name": "Salamander", + "threshold_mut": "THRESH_SALAMANDER", + "mutagen_message": "Touched by fire.", + "vitamin": "mutagen_flamekin", + "memorial_message": "Snuffed out." + }, + { + "type": "mutation_category", + "id": "HOMULLUS", + "name": "Homullus", + "threshold_mut": "THRESH_HOMULLUS", + "mutagen_message": "Wish upon a star.", + "vitamin": "mutagen_dollkin", + "memorial_message": "Real enough for you?" + }, + { + "type": "mutation_type", + "id": "MANA_ADD" + }, + { + "type": "mutation_type", + "id": "MANA_MULT" + }, + { + "type": "mutation_type", + "id": "MANA_REGEN" + }, + { + "type": "mutation_type", + "id": "MANA_SIPHON" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_eocs.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_eocs.json index dabcd301a..0584ff6d2 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_eocs.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_eocs.json @@ -6,7 +6,7 @@ "recurrence": [ "5 h", "120 h" ], "condition": { "and": [ - { "compare_int": [ "moon", "==", { "const": 3 } ] }, + { "compare_num": [ "moon", "==", { "const": 3 } ] }, { "or": [ { "u_has_trait": "EGGSAC_SURVIVABLE" }, { "u_has_trait": "EGGSAC_FATAL" } ] } ] }, @@ -74,6 +74,9 @@ { "arithmetic": [ { "rand": 100 }, "+", { "const": 750 } ] } ] }, + { + "arithmetic": [ { "u_val": "vitamin", "name": "mutagen" }, "+=", { "arithmetic": [ { "rand": 100 }, "+", { "const": 750 } ] } ] + }, { "run_eocs": { "id": "manifest_destiny_goblin_complete", @@ -88,15 +91,18 @@ "id": "manifested_destiny_goblin", "recurrence": [ "3 days", "5 days" ], "condition": { "u_has_trait": "MANIFESTED_DESTINY_GOBLIN" }, - "deactivate_condition": { "not": { "u_has_trait": "MANIFESTED_DESTINY_GOBLIN" } }, + "deactivate_condition": { "u_has_trait": "MANIFESTED_DESTINY_GOBLIN" }, "effect": [ { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_troglobite" }, "+=", - { "arithmetic": [ { "rand": 1000 }, "+", { "const": 1750 } ] } + { "arithmetic": [ { "rand": 100 }, "+", { "const": 1750 } ] } ] }, + { + "arithmetic": [ { "u_val": "vitamin", "name": "mutagen" }, "+=", { "arithmetic": [ { "rand": 100 }, "+", { "const": 1750 } ] } ] + }, { "run_eocs": { "id": "destiny_goblin_removal", @@ -110,12 +116,15 @@ "type": "effect_on_condition", "id": "manifest_destiny_spider", "recurrence": [ "3 days", "5 days" ], - "condition": { "u_has_trait": "MANIFESTED_DESTINY_SPIDER" }, - "deactivate_condition": { "not": { "u_has_trait": "MANIFESTED_DESTINY_SPIDER" } }, + "condition": { "u_has_trait": "MANIFEST_DESTINY_SPIDER" }, + "deactivate_condition": { "u_has_trait": "MANIFESTED_DESTINY_SPIDER" }, "effect": [ { "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_spider" }, "+=", { "arithmetic": [ { "rand": 100 }, "+", { "const": 750 } ] } ] }, + { + "arithmetic": [ { "u_val": "vitamin", "name": "mutagen" }, "+=", { "arithmetic": [ { "rand": 100 }, "+", { "const": 750 } ] } ] + }, { "run_eocs": { "id": "manifest_destiny_spider_complete", @@ -136,9 +145,12 @@ "arithmetic": [ { "u_val": "vitamin", "name": "mutagen_spider" }, "+=", - { "arithmetic": [ { "rand": 1000 }, "+", { "const": 1750 } ] } + { "arithmetic": [ { "rand": 100 }, "+", { "const": 1750 } ] } ] }, + { + "arithmetic": [ { "u_val": "vitamin", "name": "mutagen" }, "+=", { "arithmetic": [ { "rand": 100 }, "+", { "const": 1750 } ] } ] + }, { "run_eocs": { "id": "destiny_goblin_spider", @@ -157,7 +169,7 @@ "arithmetic": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "+=", - { "arithmetic": [ { "rand": 100 }, "+", { "const": 500 } ] } + { "arithmetic": [ { "rand": 100 }, "+", { "const": 400 } ] } ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_ordering.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_ordering.json new file mode 100644 index 000000000..8f863c7e4 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_ordering.json @@ -0,0 +1,33 @@ +[ + { + "type": "overlay_order", + "//": "VAMPIRE2 is when your fangs pop in. ", + "overlay_ordering": [ + { "id": [ "SYLPH_EYES", "UNDINE_EYES" ], "order": 250 }, + { + "id": [ + "IERDE_SKIN_1", + "IERDE_SKIN_2", + "IERDE_SKIN_3", + "ARVORE_SKIN_1", + "ARVORE_SKIN_2", + "ARVORE_SKIN_3", + "HOMULLUS_SKIN_1", + "HOMULLUS_SKIN_2", + "HOMULLUS_SKIN_3", + "UNDINE_SKIN_1", + "UNDINE_SKIN_2", + "UNDINE_SKIN_3", + "SALAMANDER_SKIN_1", + "SALAMANDER_SKIN_2", + "SALAMANDER_SKIN_3", + "SYLPH_SKIN_1", + "SYLPH_SKIN_2", + "SYLPH_SKIN_3" + ], + "order": 1500 + }, + { "id": [ "VAMPIRE2" ], "order": 7500 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_thresh.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_thresh.json new file mode 100644 index 000000000..6c7333763 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutation_thresh.json @@ -0,0 +1,68 @@ +[ + { + "type": "mutation", + "id": "THRESH_IERDE", + "name": { "str": "Ierde" }, + "points": 1, + "description": "You have ascended into your fae nature.", + "flags": [ "FAEBLOOD" ], + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "type": "mutation", + "id": "THRESH_ARVORE", + "name": { "str": "Arvore" }, + "points": 1, + "description": "You have ascended into your fae nature.", + "flags": [ "FAEBLOOD" ], + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "type": "mutation", + "id": "THRESH_UNDINE", + "name": { "str": "Undine" }, + "points": 1, + "description": "You have ascended into your fae nature.", + "flags": [ "FAEBLOOD" ], + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "type": "mutation", + "id": "THRESH_SALAMANDER", + "name": { "str": "Salamander" }, + "points": 1, + "description": "You have ascended into your fae nature.", + "flags": [ "FAEBLOOD" ], + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "type": "mutation", + "id": "THRESH_SYLPH", + "name": { "str": "Sylph" }, + "points": 1, + "description": "You have ascended into your fae nature.", + "flags": [ "FAEBLOOD" ], + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "type": "mutation", + "id": "THRESH_HOMULLUS", + "name": { "str": "Homullus" }, + "points": 1, + "description": "You have ascended into your fae nature.", + "flags": [ "FAEBLOOD" ], + "valid": false, + "purifiable": false, + "threshold": true + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutations.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutations.json index 718d3b636..f642a948d 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutations.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/mutations.json @@ -5,6 +5,9 @@ "name": { "str": "Spider egg host" }, "points": 0, "player_display": false, + "starting_trait": false, + "purifiable": false, + "valid": false, "description": "You don't feel very well. On an existential level." }, { @@ -13,6 +16,9 @@ "name": { "str": "Spider egg host" }, "points": 0, "player_display": false, + "starting_trait": false, + "purifiable": false, + "valid": false, "description": "You don't feel very well. On an existential level." }, { @@ -21,6 +27,9 @@ "name": { "str": "Transforming into Goblin" }, "points": 0, "player_display": false, + "starting_trait": false, + "purifiable": false, + "valid": false, "description": "You don't feel very well. On an existential level." }, { @@ -28,7 +37,9 @@ "id": "MANIFESTED_DESTINY_GOBLIN", "name": { "str": "Transformed into Goblin" }, "points": 0, - "player_display": false, + "starting_trait": false, + "purifiable": false, + "valid": false, "description": "You feel like you've left behind your old life and form." }, { @@ -36,6 +47,9 @@ "id": "MANIFEST_DESTINY_SPIDER", "name": { "str": "Transforming into Spider" }, "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, "player_display": false, "description": "You don't feel very well. On an existential level." }, @@ -44,24 +58,61 @@ "id": "MANIFESTED_DESTINY_SPIDER", "name": { "str": "Transformed into Spider" }, "points": 0, - "player_display": false, + "starting_trait": false, + "purifiable": false, + "valid": false, "description": "You feel like you've left behind your old life and form." }, + { + "type": "mutation", + "id": "DRUNKEN", + "name": { "str": "Drunken Master" }, + "points": 1, + "description": "The ancient arts of drunken brawling come naturally to you! While under the influence of alcohol, your melee skill will rise considerably, especially unarmed combat.", + "starting_trait": true, + "valid": false, + "cancels": [ "LIGHTWEIGHT" ] + }, + { + "type": "mutation", + "id": "KI_STRIKE", + "name": { "str": "Ki Strike" }, + "points": 2, + "description": "Who needs weapons? You deal more melee damage while fighting barehanded and without gloves. This damage improves as your unarmed skill increases.", + "starting_trait": true, + "valid": false + }, + { + "type": "mutation", + "id": "EXTEND_LIFE", + "name": { "str": "Extended Life" }, + "points": 0, + "description": "You swallow the potion and feel younger already. Though the taste lingers long past when you'd hope it would pass.", + "valid": false + }, { "type": "mutation", "id": "NIGHTMARE_CHIMERAS", "name": { "str": "Haunted by your dreams made flesh" }, "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, "player_display": false, - "description": "Your dreams can change reality." + "description": "Your dreams can change reality.", + "vitamin_rates": [ [ "dream", -8640000 ] ] }, { "type": "mutation", "id": "FRIENDLY_CHIMERAS", "name": { "str": "Accompanied by your dreams made flesh" }, "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, "player_display": false, - "description": "Your dreams can change reality." + "description": "Your dreams can change reality.", + "vitamin_rates": [ [ "dream", -8640000 ] ] }, { "type": "mutation", @@ -80,20 +131,49 @@ "type": "mutation", "id": "EYEGLEAM", "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, "name": { "str": "Gleaming eyes" }, "description": "Your eyes gleam lightly red as the light catches in them and with a few drops of the stolen blood in your veins you are able to see in the dark.", "active": true, "activated_eocs": [ "EOC_EYEGLEAM_activated" ] }, + { + "type": "mutation", + "id": "BLOODBANK", + "name": { "str": "Blood Lungs" }, + "starting_trait": false, + "purifiable": false, + "valid": false, + "points": 0, + "description": "Your fingers have developed bloodsucking properties, you can now suck up blood through them. You're not sure where the blood goes but with a thought you can use these deposits.", + "integrated_armor": [ "integrated_bloodbank" ] + }, { "type": "mutation", "id": "STAMINAFORBLOOD", "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, "name": { "str": "Recover Stamina" }, "description": "Your exhaust some of the blood in your veins to boost and recover some of your spent stamina.", "active": true, "activated_eocs": [ "EOC_STAMINAFORBLOOD_activated" ] }, + { + "type": "mutation", + "id": "COMMUNE_NIGHT", + "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, + "name": { "str": "Learn from the Children of the Night" }, + "description": "You call out to the creatures that inhabit the night. Wolves, bats, rats and more. They tell you about what terrain surrounds you.", + "active": true, + "activated_eocs": [ "EOC_COMMUNE_NIGHT_MAP" ] + }, { "type": "mutation", "id": "VAMPIRE2", @@ -105,7 +185,7 @@ "types": [ "TEETH" ], "valid": false, "vitamin_rates": [ [ "human_blood_vitamin", 180 ] ], - "flags": [ "CANNIBAL" ], + "flags": [ "CANNIBAL", "ALBINO" ], "attacks": [ { "attack_text_u": "You sink your fangs into %s", @@ -121,8 +201,11 @@ "type": "mutation", "id": "COAGULANTWEAVE", "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, "name": { "str": "Coagulant Weave" }, - "description": "Your body prepares to prevent the lose of any blood to combat damage.", + "description": "Your body prepares to prevent the loss of any blood to combat damage.", "active": true, "activated_eocs": [ "EOC_COAGULANTWEAVE_activated" ] }, @@ -130,6 +213,9 @@ "type": "mutation", "id": "BLOODHEAL", "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, "name": { "str": "Blood spurred healing" }, "description": "Your flesh heals visibly while blood disintegrates hidden inside your veins.", "active": true, @@ -140,13 +226,13 @@ "id": "VAMPIRE3", "name": { "str": "Mortal hungers are replaced with immortal hungers." }, "points": 0, - "description": "You have developed a thirst for the blood of your fellow humans.", + "description": "You replace some of your regular caloric intake with blood and begin to see some of the more esoteric abilities inherent to vampirism.", "starting_trait": false, "purifiable": false, "valid": false, "vitamins_absorb_multi": [ [ "all", [ [ "human_blood_vitamin", 1.25 ] ] ] ], "vitamin_rates": [ [ "human_blood_vitamin", 180 ] ], - "flags": [ "CANNIBAL" ], + "flags": [ "CANNIBAL", "ALBINO", "DAYFEAR" ], "metabolism_modifier": 0.8, "stamina_regen_modifier": 0.1 }, @@ -154,6 +240,9 @@ "type": "mutation", "id": "HYPNOTIC_GAZE", "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, "name": { "str": "Hypnotic gaze" }, "description": "You lock eyes with your prey and stun them with the force of your will.", "active": true, @@ -163,6 +252,9 @@ "type": "mutation", "id": "BLOODHASTE", "points": 0, + "starting_trait": false, + "purifiable": false, + "valid": false, "name": { "str": "Blood driven speed" }, "description": "Your body exceeds normal human reaction limits as blood turns to ash in your veins.", "active": true, @@ -177,7 +269,7 @@ "starting_trait": false, "purifiable": false, "valid": false, - "flags": [ "CANNIBAL" ], + "flags": [ "CANNIBAL", "SUNBURN", "DAYFEAR" ], "metabolism_modifier": 5, "stamina_regen_modifier": 0.1 }, @@ -190,8 +282,40 @@ "starting_trait": false, "purifiable": false, "valid": false, - "flags": [ "CANNIBAL" ], + "flags": [ "CANNIBAL", "SUNBURN", "DAYFEAR" ], "metabolism_modifier": 5, "stamina_regen_modifier": 0.1 + }, + { + "type": "mutation", + "id": "BLOOD_OF_SAINTS", + "name": { "str": "Saint's blood" }, + "points": 0, + "description": "Through a complicated ritual utilizing a saint's relic, you have transubstantiated your own blood with the holy blood of the saints. It'll prevent you from becoming infected with vampirism while you live, effects postmortem unknown.", + "starting_trait": false, + "valid": false, + "purifiable": false, + "types": [ "BLOOD" ] + }, + { + "type": "mutation", + "id": "FUTURESIGHT", + "name": { "str": "Future Sight" }, + "points": 0, + "description": "You aren't where you seem to be.", + "starting_trait": false, + "valid": false, + "flags": [ "UNCANNY_DODGE" ] + }, + { + "type": "mutation", + "id": "EATER_SIXTH_SENSE", + "name": { "str": "Eater's Sixth Sense" }, + "points": 0, + "description": "You are no longer limited to the five senses common to most humans in your hunt for the unnatural.", + "starting_trait": false, + "valid": false, + "purifiable": false, + "enchantments": [ "EATER_SIXTH_SENSE" ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/arvore_eocs.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/arvore_eocs.json new file mode 100644 index 000000000..a101dedd5 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/arvore_eocs.json @@ -0,0 +1,445 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_ARVORE_BRIARS_SELECTOR", + "effect": [ + { + "run_eoc_selector": [ "EOC_ARVORE_BRIARS_SELECTOR_ARC", "EOC_ARVORE_BRIARS_SELECTOR_LINE", "EOC_NULL" ], + "names": [ "Thorny Arc", "Wall of Brambles", "Do nothing" ], + "keys": [ "1", "2", "3" ], + "descriptions": [ "Summon a spray of brambles to entrap an enemy.", "Summon a wall of thorns to fortify a location.", "Do nothing." ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ARVORE_BRIARS_SELECTOR_ARC", + "effect": [ { "u_cast_spell": { "id": "arvore_summon_briars_arc" }, "targeted": true } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ARVORE_BRIARS_SELECTOR_LINE", + "effect": [ { "u_cast_spell": { "id": "arvore_summon_briars_line" }, "targeted": true } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_COMMUNE_WITH_NATURE", + "condition": { + "and": [ + "u_is_outside", + { "not": { "u_near_om_location": "road_curved", "range": 1 } }, + { "not": { "u_near_om_location": "road_four_way", "range": 1 } }, + { "not": { "u_near_om_location": "road_tee", "range": 1 } }, + { "not": { "u_near_om_location": "road_straight", "range": 1 } }, + { "not": { "u_near_om_location": "road_end", "range": 1 } }, + { "not": { "u_near_om_location": "road_sw", "range": 1 } }, + { "not": { "u_near_om_location": "road_ne", "range": 1 } }, + { "not": { "u_near_om_location": "road_ew", "range": 1 } }, + { "not": { "u_near_om_location": "road_ns", "range": 1 } }, + { "not": { "u_near_om_location": "road_nesw", "range": 1 } }, + { "not": { "u_near_om_location": "road", "range": 1 } } + ] + }, + "effect": [ + { + "u_add_effect": "natures_commune", + "duration": { "math": [ "( 300 + (u_val('spell_level', 'spell: arvore_commune_with_nature') * 165)) " ] } + }, + { + "u_add_morale": "morale_forest_unity", + "bonus": 10, + "max_bonus": 15, + "duration": { "math": [ "( 300 + (u_val('spell_level', 'spell: arvore_commune_with_nature') * 165) )" ] }, + "decay_start": { "math": [ "(( 300 + (u_val('spell_level', 'spell: arvore_commune_with_nature') * 165) ) / 2)" ] } + } + ], + "false_effect": [ { "u_message": "You must be surrounded by nature to commune with nature.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_APPLY_PARACLESIAN_DODGE_BONUS", + "effect": { + "switch": { "math": [ "u_val('spell_level', 'spell: paraclesian_spell_dodge_bonus')" ] }, + "cases": [ + { + "case": 0, + "effect": [ + { + "u_add_effect": "effect_paraclesian_dodge_bonus_1", + "duration": { + "math": [ + "( (u_val('spell_level', 'spell: paraclesian_spell_dodge_bonus') * 3000) + 30000) * (scaling_factor(u_val('perception') ) )" + ] + } + } + ] + }, + { + "case": 15, + "effect": [ + { + "u_add_effect": "effect_paraclesian_dodge_bonus_2", + "duration": { + "math": [ + "( (u_val('spell_level', 'spell: paraclesian_spell_dodge_bonus') * 3000) + 30000) * (scaling_factor(u_val('perception') ) )" + ] + } + } + ] + }, + { + "case": 25, + "effect": [ + { + "u_add_effect": "effect_paraclesian_dodge_bonus_3", + "duration": { + "math": [ + "( (u_val('spell_level', 'spell: paraclesian_spell_dodge_bonus') * 3000) + 30000) * (scaling_factor(u_val('perception') ) )" + ] + } + } + ] + } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_ARVORE_TOXIC_FLESH_ON", + "effect": [ { "u_add_trait": "TOXICFLESH" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ARVORE_TOXIC_FLESH_OFF", + "effect": [ { "u_lose_trait": "TOXICFLESH" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ARVORE_WALK_WILDS_TELEPORT_CHECK", + "condition": { + "or": [ + { "u_at_om_location": "forest_thick" }, + { "u_at_om_location": "forest" }, + { "u_at_om_location": "forest_water" }, + { "u_at_om_location": "arvore_genius_loci_NW" }, + { "u_at_om_location": "arvore_genius_loci_NE" }, + { "u_at_om_location": "arvore_genius_loci_SW" }, + { "u_at_om_location": "arvore_genius_loci_SE" } + ] + }, + "effect": [ { "u_cast_spell": { "id": "arvore_traverse_the_wilds_real" }, "targeted": true } ], + "false_effect": { "u_message": "You need to be in a forest or swamp to traverse the wilds.", "type": "bad" } + }, + { + "type": "effect_on_condition", + "id": "EOC_ARVORE_GOBLIN_FRUIT", + "condition": { + "and": [ + "u_is_outside", + { "not": { "u_near_om_location": "road_curved", "range": 1 } }, + { "not": { "u_near_om_location": "road_four_way", "range": 1 } }, + { "not": { "u_near_om_location": "road_tee", "range": 1 } }, + { "not": { "u_near_om_location": "road_straight", "range": 1 } }, + { "not": { "u_near_om_location": "road_end", "range": 1 } }, + { "not": { "u_near_om_location": "road_sw", "range": 1 } }, + { "not": { "u_near_om_location": "road_ne", "range": 1 } }, + { "not": { "u_near_om_location": "road_ew", "range": 1 } }, + { "not": { "u_near_om_location": "road_ns", "range": 1 } }, + { "not": { "u_near_om_location": "road_nesw", "range": 1 } }, + { "not": { "u_near_om_location": "road", "range": 1 } } + ] + }, + "effect": [ { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } ], + "false_effect": [ { "u_message": "You must be surrounded by the wild to call forth a goblin fruit.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GROWING_WOOD_WALLS_SELECTOR", + "effect": [ + { + "run_eoc_selector": [ + "EOC_GROWING_WOOD_WALLS", + "EOC_GROWING_WOOD_FLOORS", + "EOC_GROWING_WOOD_DOORS", + "EOC_GROWING_WOOD_BRANCHES", + "EOC_NULL" + ], + "names": [ "Grow Wooden Wall", "Grow Wooden Floor", "Grow Wooden Door", "Grow Leafy Branch", "Do nothing" ], + "keys": [ "1", "2", "3", "4", "5" ], + "descriptions": [ + "Grow a wall of solid wood from the earth, grow or remove bark from a wall, or turn one of your wooden floors into a bark wall.", + "Grow a floor of bark from the earth, roof over a bark floor, or turn one of your wooden walls into a bark floor.", + "Grow a bramble door from a wooden wall or return the wall to solid wood.", + "Grow a leafy branch. It won't provide shelter but it helps it feel like home.", + "Do nothing." + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GROWING_WOOD_WALLS", + "effect": [ { "u_cast_spell": { "id": "arvore_growing_wood_walls_wall" }, "targeted": true } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GROWING_WOOD_FLOORS", + "effect": [ { "u_cast_spell": { "id": "arvore_growing_wood_walls_floor" }, "targeted": true } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GROWING_WOOD_BRANCHES", + "effect": [ { "u_cast_spell": { "id": "arvore_growing_wood_walls_branch" }, "targeted": true } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GROWING_WOOD_DOORS", + "effect": [ { "u_cast_spell": { "id": "arvore_growing_wood_walls_door" }, "targeted": true } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_NULL", + "effect": [ ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PERENNIAL_REBIRTH_INITIAL_CHECK", + "condition": { "not": { "u_has_effect": "arvore_perennial_rebirth_cooldown" } }, + "effect": { + "run_eocs": [ + { + "id": "EOC_PERENNIAL_REBIRTH_INITIAL_CHECK_2", + "condition": { + "or": [ + { "u_at_om_location": "forest_thick" }, + { "u_at_om_location": "arvore_genius_loci_NW" }, + { "u_at_om_location": "arvore_genius_loci_NE" }, + { "u_at_om_location": "arvore_genius_loci_SW" }, + { "u_at_om_location": "arvore_genius_loci_SE" } + ] + }, + "effect": { "run_eocs": "EOC_PERENNIAL_REBIRTH_INITIAL" }, + "false_effect": { + "u_message": "You need to be in the heart of the forest or at an attuned elemental altar to successfully bind your soul.", + "type": "bad" + } + } + ] + }, + "false_effect": [ + { + "u_message": "Your soul is still attaching itself to your new body. You need to give it time before attempting to bind it to the forest again.", + "type": "bad" + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PERENNIAL_REBIRTH_INITIAL", + "effect": [ + { "u_location_variable": { "u_val": "arvore_perennial_rebirth_teleport" }, "min_radius": 0, "max_radius": 0 }, + { "u_add_trait": "ARVORE_PERENNIAL_REBIRTH_CASTED" }, + { "u_message": "You bind your soul to the abundance of nature around you.", "type": "good" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PERENNIAL_REBIRTH", + "eoc_type": "PREVENT_DEATH", + "condition": { "u_has_trait": "ARVORE_PERENNIAL_REBIRTH_CASTED" }, + "effect": [ + { + "u_message": "As your body dies, your fae spirit flies free and, drawn to the pull of the heart of the forest, rebirths itself from the bounty of nature.", + "popup": true + }, + { "run_eocs": [ "EOC_PERENNIAL_REBIRTH_START" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PERENNIAL_REBIRTH_START", + "effect": [ + { "u_add_effect": "incorporeal", "duration": 1 }, + { "u_add_effect": "downed", "duration": 1 }, + { "run_eocs": [ "EOC_PERENNIAL_REBIRTH_HEAL" ] }, + { "u_spawn_item": "corpse_painful" }, + { "queue_eocs": "EOC_PERENNIAL_REBIRTH_FINALIZE", "time_in_future": "1 seconds" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PERENNIAL_REBIRTH_HEAL", + "effect": [ + { "u_set_hp": 999, "only_increase": true }, + { "u_set_hp": 45, "only_increase": false, "target_part": "torso" }, + { "u_set_hp": 45, "only_increase": false, "target_part": "head" }, + { "u_set_hp": 45, "only_increase": false, "target_part": "arm_l" }, + { "u_set_hp": 45, "only_increase": false, "target_part": "arm_r" }, + { "u_set_hp": 45, "only_increase": false, "target_part": "leg_r" }, + { "u_set_hp": 45, "only_increase": false, "target_part": "leg_l" }, + { "math": [ "u_val('stored_kcal')", "=", "70000" ] }, + { "math": [ "u_val('thirst')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: redcells')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: bad_food')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: blood')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: instability')", "=", "0" ] }, + { "math": [ "u_pain()", "=", "0" ] }, + { "math": [ "u_val('rad')", "=", "0" ] }, + { "u_lose_effect": "corroding" }, + { "u_lose_effect": "onfire" }, + { "u_lose_effect": "dazed" }, + { "u_lose_effect": "stunned" }, + { "u_lose_effect": "venom_blind" }, + { "u_lose_effect": "formication" }, + { "u_lose_effect": "blisters" }, + { "u_lose_effect": "frostbite" }, + { "u_lose_effect": "frostbite_recovery" }, + { "u_lose_effect": "wet" }, + { "u_lose_effect": "slimed" }, + { "u_lose_effect": "migo_atmosphere" }, + { "u_lose_effect": "fetid_goop" }, + { "u_lose_effect": "sap" }, + { "u_lose_effect": "nausea" }, + { "u_lose_effect": "bleed" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_PERENNIAL_REBIRTH_FINALIZE", + "//": "duration below of arvore_perennial_rebirth_cooldown is 28 days", + "condition": { "u_has_trait": "ARVORE_PERENNIAL_REBIRTH_CASTED" }, + "effect": [ + { "u_teleport": { "u_val": "arvore_perennial_rebirth_teleport" } }, + { "u_lose_trait": "ARVORE_PERENNIAL_REBIRTH_CASTED" }, + { "u_add_effect": "arvore_perennial_rebirth_cooldown", "duration": 2419200 }, + { "math": [ "u_pain()", "=", "0" ] }, + { "math": [ "u_val('stored_kcal')", "=", "65000" ] }, + { "math": [ "u_val('thirst')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: bad_food')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: blood')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: human_blood_vitamin')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: calcium')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: instability')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: iron')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: redcells')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: vitC')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_plantkin')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_earthkin')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_waterkin')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_flamekin')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_dollkin')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_airkin')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_alpha')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_batrachian')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_beast')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_bird')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_cattle')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_cephalopod')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_chelator')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_chimera')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_crustacean')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_elfa')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_feline')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_fish')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_gastropod')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_human')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_insect')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_lizard')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_lupine')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_medical')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_mouse')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_plant')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_rabbit')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_raptor')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_rat')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_slime')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_spider')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_troglobite')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagen_ursine')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutagenic_slurry')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: mutant_toxin')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: redcells')", "=", "0" ] }, + { "math": [ "u_val('vitamin', 'name: vitC')", "=", "0" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SUN_FOODS_ON_KCAL", + "//": "Numbers here based on 8 hours of time in the sun. 480 minutes * 7 kcals per minute = 3360 kcals, up to 5760 kcals per 8 hours if you're low.", + "condition": { "math": [ "u_val('stored_kcal')", ">=", "118000" ] }, + "effect": [ ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_SUN_FOODS_ON_KCAL_2", + "condition": { + "and": [ { "math": [ "u_val('stored_kcal')", "<=", "179999" ] }, { "math": [ "u_val('stored_kcal')", ">=", "75000" ] } ] + }, + "effect": [ { "math": [ "u_val('stored_kcal')", "+=", "7" ] } ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_SUN_FOODS_ON_KCAL_3", + "condition": { "math": [ "u_val('stored_kcal')", "<=", "74999" ] }, + "effect": [ { "math": [ "u_val('stored_kcal')", "+=", "12" ] } ] + } + ] + } + } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_ARVORE_TREE_FORM_ON", + "condition": { + "and": [ + "u_is_outside", + { + "or": [ + { "u_is_on_terrain_with_flag": "SHRUB" }, + { "u_is_on_terrain": "t_tree_young" }, + { "u_is_on_terrain": "t_bamboo_tall" }, + { "u_is_on_terrain": "t_dirt" }, + { "u_is_on_terrain": "t_dirtmound" }, + { "u_is_on_terrain": "t_clay" }, + { "u_is_on_terrain": "t_sand" }, + { "u_is_on_terrain": "t_sandmound" }, + { "u_is_on_terrain": "t_grave" }, + { "u_is_on_terrain": "t_forestfloor" }, + { "u_is_on_terrain": "t_grass" }, + { "u_is_on_terrain": "t_grass_long" }, + { "u_is_on_terrain": "t_grass_tall" }, + { "u_is_on_terrain": "t_grass_dead" }, + { "u_is_on_terrain": "t_mud" }, + { "u_is_on_terrain": "t_dirtfloor_no_roof" }, + { "u_is_on_terrain": "t_moss" } + ] + } + ] + }, + "effect": [ + { "u_add_trait": "CHLOROMORPH" }, + { "u_add_trait": "LEAVES3" }, + { "u_add_trait": "ARVORE_TREE_FORM_TRAITS" }, + { "u_add_effect": "effect_arvore_tree_immobility", "duration": 86400, "intensity": 100 } + ], + "false_effect": [ { "u_message": "You must be outside on diggable ground to become one with the forest.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ARVORE_TREE_FORM_OFF", + "effect": [ + { "u_lose_trait": "CHLOROMORPH" }, + { "u_lose_trait": "LEAVES3" }, + { "u_lose_trait": "ARVORE_TREE_FORM_TRAITS" }, + { "u_lose_effect": "effect_arvore_tree_immobility" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ARVORE_TREE_FORM_IMMOBILE", + "effect": [ { "u_add_effect": "effect_arvore_tree_immobility", "duration": 86400, "intensity": 100 } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/arvore_mutation_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/arvore_mutation_spells.json new file mode 100644 index 000000000..34435b9df --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/arvore_mutation_spells.json @@ -0,0 +1,557 @@ +[ + { + "type": "enchantment", + "id": "arvore_resist_chill", + "condition": "ALWAYS", + "//": "No cold armor here--trees are very vulnerable to ice breaking their limbs", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 40 } ] + }, + { + "type": "enchantment", + "id": "arvore_forest_detect_enemies", + "condition": "ALWAYS", + "values": [ { "value": "MOTION_VISION_RANGE", "add": { "math": [ "( u_val('perception') + u_val('intelligence'))" ] } } ] + }, + { + "type": "enchantment", + "id": "arvore_ignore_chill", + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 150 } ] + }, + { + "type": "enchantment", + "id": "ench_arvore_thorns_mut", + "condition": "ALWAYS", + "hit_me_effect": [ { "id": "spell_arvore_thorns_mut_counter", "hit_self": false, "once_in": 3 } ] + }, + { + "type": "enchantment", + "id": "ench_arvore_sun_foods_on", + "condition": "ALWAYS", + "intermittent_activation": { "effects": [ { "frequency": "1 minutes", "spell_effects": [ { "id": "arvore_sun_foods_on_spell" } ] } ] }, + "values": [ { "value": "HUNGER", "multiply": -0.95 } ] + }, + { + "type": "enchantment", + "id": "ench_arvore_tree_form", + "condition": "ALWAYS", + "values": [ + { "value": "SLEEPY", "add": 150 }, + { "value": "MOTION_VISION_RANGE", "add": { "math": [ "( u_val('perception') + u_val('intelligence'))" ] } }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 150 } + ] + }, + { + "id": "spell_arvore_thorns_mut_counter", + "type": "SPELL", + "name": { "str": "Arvore Thorns Damage" }, + "description": "Sometimes, when an enemy punches your thorns, they hurt themselves.", + "valid_targets": [ "ally", "hostile" ], + "effect": "attack", + "shape": "blast", + "min_damage": 1, + "max_damage": 8, + "min_range": 1, + "damage_type": "stab", + "flags": [ "RANDOM_DAMAGE" ] + }, + { + "id": "arvore_commune_with_nature", + "type": "SPELL", + "name": "Commune with Nature", + "description": "You concentrate on nature around you and commune with it, improving your health and calming the nearby wildlife. This spell may only be cast outdoors in natural surroundings.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_COMMUNE_WITH_NATURE", + "shape": "blast", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "max_level": { "math": [ "per_to_level(1)" ] }, + "difficulty": 4, + "base_casting_time": 12000, + "energy_source": "MANA", + "base_energy_cost": 500, + "final_energy_cost": 250, + "energy_increment": -12, + "min_duration": 30000, + "max_duration": 1080000, + "duration_increment": 16500 + }, + { + "id": "arvore_cultivate_goblin_fruit", + "type": "SPELL", + "name": "Cultivate Goblin Fruit", + "description": "You may spin a bit of fae magic into a plant, bringing forth a goblin fruit. Goblin fruit have a variety of effects, never predictable but always at least somewhat beneficial. This spell may only be cast outdoors in natural surroundings.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_ARVORE_GOBLIN_FRUIT", + "shape": "blast", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "per_to_level(1)" ] }, + "difficulty": 8, + "base_casting_time": 180000, + "final_casting_time": 100, + "casting_time_increment": -6000, + "energy_source": "MANA", + "base_energy_cost": 450 + }, + { + "id": "arvore_verdant_infusion", + "type": "SPELL", + "name": "Verdant Infusion", + "description": "You draw on your own connection to nature and infuse some of its power into one of your allies, healing them for a small amount and increasing their overall health.", + "valid_targets": [ "ally" ], + "skill": "deduction", + "effect": "attack", + "effect_str": "arvore_verdant_infusion", + "shape": "blast", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_PROJECTILE", "RANDOM_DAMAGE", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "per_to_level(1)" ] }, + "difficulty": 5, + "min_damage": -1, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: arvore_verdant_infusion') * -1) * (scaling_factor(u_val('perception') ) ) ) " ] + }, + "min_range": 1, + "max_range": 20, + "range_increment": 0.4, + "base_casting_time": 6000, + "energy_source": "MANA", + "base_energy_cost": 750, + "final_energy_cost": 500, + "energy_increment": -10, + "min_duration": 30000, + "max_duration": 1080000, + "duration_increment": 16500 + }, + { + "id": "arvore_roots_crack_the_foundation", + "type": "SPELL", + "name": "Roots Crack the Foundation", + "description": "Roots can grow through even concrete given time. With this spell, you can compress that time into a single instant to shatter walls or rip doors off their hinges.", + "valid_targets": [ "ground" ], + "skill": "deduction", + "effect": "bash", + "shape": "cone", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "IGNORE_WALLS", "RANDOM_DAMAGE", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "per_to_level(1)" ] }, + "difficulty": 7, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: arvore_verdant_infusion') * 1.5) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: arvore_verdant_infusion') * 5.5) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "min_range": 2, + "max_range": 8, + "min_aoe": 30, + "max_aoe": 50, + "aoe_increment": 0.7, + "range_increment": 0.4, + "energy_source": "MANA", + "base_energy_cost": 450, + "base_casting_time": 150 + }, + { + "id": "arvore_summon_wood_spirit", + "type": "SPELL", + "name": "Call the Children of the Boughs", + "description": "A lesser wood spirit is summoned to support you.", + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "SPAWN_GROUP" ], + "valid_targets": [ "ground" ], + "skill": "deduction", + "max_level": 35, + "difficulty": 3, + "effect": "summon", + "effect_str": "GROUP_GENIUS_ARVORE", + "shape": "blast", + "min_damage": 1, + "max_damage": 8, + "min_range": 1, + "max_range": 15, + "range_increment": 1, + "damage_increment": 0.5, + "energy_source": "MANA", + "base_energy_cost": 200, + "base_casting_time": 3000, + "min_duration": 36000, + "max_duration": 1080000, + "duration_increment": 36000 + }, + { + "id": "arvore_summon_briars", + "type": "SPELL", + "name": "Briarwall", + "description": "Call up thick briars and thorns, either in a line to form a wall or an arc to trap an enemy. They will grow to full size in moments.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_ARVORE_BRIARS_SELECTOR", + "shape": "blast", + "flags": [ "SOMATIC", "VERBAL" ], + "energy_source": "MANA", + "difficulty": 5, + "base_casting_time": 150, + "base_energy_cost": 550, + "max_level": 15 + }, + { + "id": "arvore_summon_briars_arc", + "type": "SPELL", + "name": "Summon Briars Arc", + "description": "Call up briars and thorns, either in a line to form a wall or an arc to trap an enemy. They will grow to full size in moments.", + "valid_targets": [ "ground", "hostile" ], + "effect": "ter_transform", + "effect_str": "ter_arvore_summoned_brambles", + "shape": "cone", + "flags": [ "SILENT", "NO_PROJECTILE" ], + "max_level": 15, + "min_range": { "math": [ "( (u_val('spell_level', 'spell: arvore_summon_briars') * 0.6) + 1)" ] }, + "max_range": { "math": [ "( (u_val('spell_level', 'spell: arvore_summon_briars') * 0.6) + 1)" ] }, + "min_aoe": { "math": [ "( (u_val('spell_level', 'spell: arvore_summon_briars') * 1.9) + 30)" ] }, + "max_aoe": { "math": [ "( (u_val('spell_level', 'spell: arvore_summon_briars') * 1.9) + 30)" ] } + }, + { + "id": "arvore_summon_briars_line", + "type": "SPELL", + "name": "Summon Briars Line", + "description": "Call up briars and thorns, either in a line to form a wall or an arc to trap an enemy. They will grow to full size in moments.", + "valid_targets": [ "ground", "hostile" ], + "effect": "ter_transform", + "effect_str": "ter_arvore_summoned_brambles", + "shape": "line", + "flags": [ "SILENT", "NO_PROJECTILE" ], + "max_level": 15, + "min_range": { "math": [ "( (u_val('spell_level', 'spell: arvore_summon_briars') * 1) + 1)" ] }, + "max_range": { "math": [ "( (u_val('spell_level', 'spell: arvore_summon_briars') * 1) + 1)" ] } + }, + { + "id": "arvore_anti_plant_spell", + "type": "SPELL", + "name": "Tending the Garden", + "description": "Invasive weeds must be rooted out, lest they choke the life from the garden. This spell inflicts a rapid withering on plants and fungus within its area of effect.", + "flags": [ "SOMATIC", "VERBAL", "RANDOM_DAMAGE", "RANDOM_DURATION" ], + "valid_targets": [ "hostile" ], + "targeted_monster_species": [ "PLANT", "FUNGUS", "LEECH_PLANT", "ARVORE" ], + "max_level": { "math": [ "per_to_level(1)" ] }, + "skill": "deduction", + "difficulty": 4, + "effect": "attack", + "extra_effects": [ { "id": "arvore_anti_plant_spell_fungicide" } ], + "damage_type": "biological", + "shape": "blast", + "min_damage": { + "math": [ "(10 + (u_val('spell_level', 'spell: arvore_anti_plant_spell') * 2.5) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "max_damage": { + "math": [ "(15 + (u_val('spell_level', 'spell: arvore_anti_plant_spell') * 5.5) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "min_dot": 1, + "max_dot": 3, + "dot_increment": 0.1, + "min_duration": { + "math": [ "(200 + (u_val('spell_level', 'spell: arvore_anti_plant_spell') * 150) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "max_duration": { + "math": [ "(1000 + (u_val('spell_level', 'spell: arvore_anti_plant_spell') * 350) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "min_range": { + "math": [ "(2 + (u_val('spell_level', 'spell: arvore_anti_plant_spell') * 1.5) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "max_range": 70, + "min_aoe": { + "math": [ "(0 + (u_val('spell_level', 'spell: arvore_anti_plant_spell') * 0.25) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "max_aoe": 8, + "energy_source": "MANA", + "base_energy_cost": 400, + "final_energy_cost": 150, + "energy_increment": -10, + "base_casting_time": 200, + "final_casting_time": 100, + "casting_time_increment": -5 + }, + { + "id": "arvore_anti_plant_spell_fungicide", + "type": "SPELL", + "name": "Tending the Garden Fungicide", + "description": "This is the fungicidal effect of the Tending the Garden spell. It's a bug if you have it directly.", + "flags": [ "SOMATIC", "VERBAL", "RANDOM_AOE", "NO_EXPLOSION_SFX" ], + "valid_targets": [ "hostile" ], + "targeted_monster_species": [ "PLANT", "FUNGUS", "LEECH_PLANT", "ARVORE" ], + "max_level": { "math": [ "per_to_level(1)" ] }, + "skill": "deduction", + "difficulty": 4, + "effect": "ter_transform", + "effect_str": "ter_arvore_fungicide", + "shape": "blast", + "min_range": { + "math": [ "(2 + (u_val('spell_level', 'spell: arvore_anti_plant_spell') * 1.5) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "max_range": 70, + "min_aoe": { + "math": [ "(1 + (u_val('spell_level', 'spell: arvore_anti_plant_spell') * 0.5) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "max_aoe": { + "math": [ "(1 + (u_val('spell_level', 'spell: arvore_anti_plant_spell') * 1) * (scaling_factor(u_val('perception') ) ) )" ] + } + }, + { + "id": "arvore_nurture_the_green", + "type": "SPELL", + "name": "Nurturing the Green", + "description": "You can greatly speed plant growth. Grass can grow from seed in moments, crops can be brought to ripeness, and even young trees will reach their full bloom.", + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "valid_targets": [ "ground" ], + "skill": "deduction", + "max_level": 20, + "shape": "blast", + "difficulty": 4, + "effect": "ter_transform", + "effect_str": "ter_arvore_plant_growth", + "min_range": 1, + "energy_source": "MANA", + "base_energy_cost": 1000, + "final_energy_cost": 500, + "energy_increment": -40, + "base_casting_time": 6000, + "final_casting_time": 1500, + "casting_time_increment": -225, + "//": "Energy cost and lack of AoE so that Arvore can't just have infinite food through crop growth. They need to go stand in the sun for that." + }, + { + "id": "arvore_growing_wood_walls", + "type": "SPELL", + "name": "The Forest Offers Shelter", + "description": "In natural surroundings, you can create structures out of living wood--walls, floors, doors, and roofs all together.", + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "valid_targets": [ "self" ], + "skill": "deduction", + "max_level": 20, + "shape": "blast", + "difficulty": 6, + "effect": "effect_on_condition", + "effect_str": "EOC_GROWING_WOOD_WALLS_SELECTOR", + "base_casting_time": 30000, + "final_casting_time": 12000, + "casting_time_increment": -900, + "energy_source": "MANA", + "base_energy_cost": 600, + "final_energy_cost": 350, + "energy_increment": -15 + }, + { + "id": "arvore_growing_wood_walls_wall", + "type": "SPELL", + "name": "The Forest Offers Shelter (Wall)", + "description": "The walls part of the Forest Offers Shelter spell. It's a bug if you have it directly.", + "flags": [ "SILENT" ], + "valid_targets": [ "ground" ], + "skill": "deduction", + "max_level": 20, + "difficulty": 6, + "effect": "ter_transform", + "effect_str": "ter_arvore_wood_wall", + "shape": "blast", + "min_range": 1, + "max_range": 4, + "range_increment": 0.25 + }, + { + "id": "arvore_growing_wood_walls_floor", + "type": "SPELL", + "name": "The Forest Offers Shelter (Floor)", + "description": "The floor part of the Forest Offers Shelter spell. It's a bug if you have it directly.", + "flags": [ "SILENT" ], + "valid_targets": [ "ground" ], + "skill": "deduction", + "max_level": 20, + "difficulty": 6, + "effect": "ter_transform", + "effect_str": "ter_arvore_wood_floor", + "shape": "blast", + "min_range": 1, + "max_range": 4, + "range_increment": 0.25 + }, + { + "id": "arvore_growing_wood_walls_branch", + "type": "SPELL", + "name": "The Forest Offers Shelter (Branches)", + "description": "The branches part of the Forest Offers Shelter spell. It's a bug if you have it directly.", + "flags": [ "SILENT" ], + "valid_targets": [ "ground" ], + "skill": "deduction", + "max_level": 20, + "difficulty": 6, + "effect": "ter_transform", + "effect_str": "ter_arvore_wood_branches", + "shape": "blast", + "min_range": 1, + "max_range": 4, + "range_increment": 0.25 + }, + { + "id": "arvore_growing_wood_walls_door", + "type": "SPELL", + "name": "The Forest Offers Shelter (Door)", + "description": "The doors part of the Forest Offers Shelter spell. It's a bug if you have it directly.", + "flags": [ "SILENT" ], + "valid_targets": [ "ground" ], + "skill": "deduction", + "max_level": 20, + "difficulty": 6, + "effect": "ter_transform", + "effect_str": "ter_arvore_wood_door", + "shape": "blast", + "min_range": 1, + "max_range": 4, + "range_increment": 0.25 + }, + { + "id": "arvore_roots_spell", + "type": "SPELL", + "name": "Hungry Thirsty Roots", + "//~": "The name is a reference to the poem \"Goblin Market\" by Christina Rossetti.", + "//": "Experience with the druid spell Vegetative Grasp shows that at high levels it's a horde-killer with a single cast, so this is a greatly toned-down version with less predictability.", + "description": "Your command over plants allows you to call forth roots from the earth to clutch and grasp at your enemies.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "NO_PROJECTILE", "NO_HANDS", "NO_LEGS", "RANDOM_DURATION" ], + "max_level": { "math": [ "per_to_level(1)" ] }, + "skill": "deduction", + "difficulty": 3, + "effect": "attack", + "effect_str": "effect_hungry_roots", + "shape": "blast", + "damage_type": "bash", + "min_aoe": 0, + "max_aoe": 3, + "aoe_increment": 0.25, + "min_range": 2, + "max_range": 70, + "range_increment": 0.65, + "min_dot": 0, + "max_dot": 5, + "dot_increment": 0.1, + "min_duration": { + "math": [ "( ( (u_val('spell_level', 'spell: arvore_roots_spell') * 50) + 300) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "max_duration": { + "math": [ "( ( (u_val('spell_level', 'spell: arvore_roots_spell') * 100) + 1000) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "energy_source": "MANA", + "base_casting_time": 150, + "final_casting_time": 50, + "casting_time_increment": -4, + "base_energy_cost": 225 + }, + { + "id": "arvore_perennial_rebirth_spell", + "type": "SPELL", + "name": "Perennial Rebirth", + "description": "Bind your soul to the heart of the forest, rebirthing yourself if you should die. You may only perform this in thick forests or at an arvore altar, you may be reborn no more than once in a lunar month.", + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "NO_FAIL" ], + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_PERENNIAL_REBIRTH_INITIAL_CHECK", + "shape": "blast", + "max_level": 1, + "difficulty": 10, + "base_casting_time": 2160000, + "energy_source": "MANA", + "base_energy_cost": 2000 + }, + { + "id": "arvore_sun_foods_on_spell", + "type": "SPELL", + "name": "Solar Repast Spell", + "description": "The spell that provides the effects when your Solar Repast is active. It's a bug if you have it directly.", + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "EOC_SUN_FOODS_ON_KCAL", + "shape": "blast" + }, + { + "id": "arvore_cause_decay", + "type": "SPELL", + "name": "Fallen Trees Decay to Soil", + "description": "Even the mightiest tree returns to soil in the end. The Arvore may channel this natural process into an area around themselves, infecting everyone within with the energies of rot.\n\nThis spell is indiscriminate and should not be used near allies.", + "flags": [ "SOMATIC", "NO_PROJECTILE", "RANDOM_DURATION", "CONCENTRATE", "VERBAL" ], + "valid_targets": [ "hostile", "ground", "ally" ], + "skill": "deduction", + "effect": "attack", + "shape": "blast", + "max_level": { "math": [ "per_to_level(1)" ] }, + "difficulty": 9, + "damage_type": "biological", + "min_aoe": { + "math": [ "( ( (u_val('spell_level', 'spell: arvore_cause_decay') * 0.8) + 3) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "max_aoe": { + "math": [ "( ( (u_val('spell_level', 'spell: arvore_cause_decay') * 0.8) + 3) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "min_dot": 1, + "max_dot": 5, + "dot_increment": 0.2, + "min_duration": { + "math": [ "( ( (u_val('spell_level', 'spell: arvore_cause_decay') * 100) + 500) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "max_duration": { + "math": [ "( ( (u_val('spell_level', 'spell: arvore_cause_decay') * 300) + 3000) * (scaling_factor(u_val('perception') ) ) )" ] + }, + "energy_source": "MANA", + "base_energy_cost": 1000, + "final_energy_cost": 500, + "energy_increment": -20, + "base_casting_time": 150, + "final_casting_time": 75, + "casting_time_increment": -2 + }, + { + "id": "arvore_traverse_the_wilds", + "type": "SPELL", + "name": "Traverse the Wilds", + "description": "Roots grow together and so forests are connected. The Arvore may use this connection to quickly transport themselves while standing in a forest or a swamp.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "SILENT" ], + "effect": "effect_on_condition", + "effect_str": "EOC_ARVORE_WALK_WILDS_TELEPORT_CHECK", + "shape": "blast", + "difficulty": 4, + "max_level": { "math": [ "per_to_level(1)" ] }, + "energy_source": "MANA", + "base_energy_cost": 250, + "energy_increment": -5, + "final_energy_cost": 80, + "base_casting_time": 100, + "casting_time_increment": -1, + "final_casting_time": 80 + }, + { + "id": "arvore_traverse_the_wilds_real", + "type": "SPELL", + "name": "Traverse the Wilds Real", + "description": "This is the actual spell that teleports you when you use Walk the Wilds. It's a bug if you have it directly", + "valid_targets": [ "ground", "ally", "hostile" ], + "flags": [ "SILENT", "TARGET_TELEPORT", "NO_PROJECTILE" ], + "effect": "short_range_teleport", + "shape": "blast", + "max_level": { "math": [ "per_to_level(1)" ] }, + "min_aoe": 4, + "max_aoe": 1, + "aoe_increment": -0.25, + "min_range": { + "math": [ + "( ( (u_val('spell_level', 'spell: arvore_traverse_the_wilds') * 100) + 500) * (scaling_factor(u_val('perception') ) ) )" + ] + }, + "max_range": { + "math": [ + "( ( (u_val('spell_level', 'spell: arvore_traverse_the_wilds') * 300) + 3000) * (scaling_factor(u_val('perception') ) ) )" + ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/arvore_mutations.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/arvore_mutations.json new file mode 100644 index 000000000..479404e03 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/arvore_mutations.json @@ -0,0 +1,1229 @@ +[ + { + "type": "mutation", + "id": "ARVORE_SKIN_1", + "name": { "str": "Viridian Skin" }, + "points": 0, + "visibility": 2, + "ugliness": 0, + "description": "Your skin has turned the color of spring growth. Your skin is now a viridian green. This has no gameplay effects.", + "types": [ "SKIN" ], + "leads_to": [ "ARVORE_SKIN_2" ], + "category": [ "ARVORE" ] + }, + { + "type": "mutation", + "id": "ARVORE_SKIN_2", + "name": { "str": "Vegetal Cuticle" }, + "points": 2, + "visibility": 2, + "ugliness": 1, + "description": "Your skin has turned into a type of plant matter, which in addition to any armoring slows your loss of fluids.", + "types": [ "SKIN" ], + "category": [ "ARVORE" ], + "prereqs": [ "ARVORE_SKIN_1" ], + "changes_to": [ "ARVORE_SKIN_3" ], + "thirst_modifier": -0.3, + "integrated_armor": [ "integrated_vegital_cuticle" ], + "flags": [ "TOUGH_FEET" ] + }, + { + "type": "mutation", + "id": "ARVORE_SKIN_3", + "name": { "str": "Bark Skin" }, + "points": 3, + "visibility": 8, + "ugliness": 4, + "mixed_effect": true, + "description": "The skin on your body has grown into a barklike state. This provides significantly more armor but reduces flexibility.", + "types": [ "SKIN" ], + "prereqs": [ "ARVORE_SKIN_2" ], + "threshreq": [ "THRESH_ARVORE" ], + "category": [ "ARVORE" ], + "wet_protection": [ + { "part": "head", "ignored": 5 }, + { "part": "leg_l", "ignored": 16 }, + { "part": "leg_r", "ignored": 16 }, + { "part": "foot_l", "ignored": 5 }, + { "part": "foot_r", "ignored": 5 }, + { "part": "arm_l", "ignored": 14 }, + { "part": "arm_r", "ignored": 14 }, + { "part": "hand_l", "ignored": 4 }, + { "part": "hand_r", "ignored": 4 }, + { "part": "torso", "ignored": 30 } + ], + "integrated_armor": [ "integrated_bark_skin" ], + "flags": [ "TOUGH_FEET" ] + }, + { + "type": "mutation", + "id": "GREENSTRIDE", + "name": { "str": "Greenstride" }, + "purifiable": false, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "The trees recognize you as one of their own and allow you to pass easily beneath their boughs. The grass moves under your feet to speed your passage, and shrubs bend out of the way. When walking on grass, trees, or other natural foliage, your movement speed is increased.", + "category": [ "ARVORE" ], + "leads_to": [ "ARVORE_DEX_BONUS" ], + "enchantments": [ + { + "condition": { + "or": [ + { "u_is_on_terrain": "t_tree_young" }, + { "u_is_on_terrain": "t_mega_fern" }, + { "u_is_on_terrain": "t_fungus_colony" }, + { "u_is_on_terrain_with_flag": "SHRUB" }, + { "u_is_on_terrain": "t_bamboo_long" }, + { "u_is_on_terrain": "t_bamboo_tall" }, + { "u_is_on_terrain": "t_grass_tall" }, + { "u_is_on_terrain": "t_grass_long" }, + { "u_is_on_terrain": "t_bamboo" }, + { "u_is_on_terrain": "t_bamboo_harvested" }, + { "u_is_on_terrain": "t_underbrush_harvested_winter" }, + { "u_is_on_terrain": "t_grass" }, + { "u_is_on_terrain": "t_grass_white" }, + { "u_is_on_terrain": "t_moss" }, + { "u_is_on_terrain": "t_forestfloor" } + ] + }, + "values": [ { "value": "MOVE_COST", "multiply": -0.1 } ] + } + ] + }, + { + "type": "mutation", + "id": "ARVORE_NURTURING_THE_GREEN", + "name": { "str": "Nurturing the Green" }, + "points": 2, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Arvore may greatly speed plant growth. With enough practice, you will even be able to bring forth mighty trees from the dry earth.", + "category": [ "ARVORE" ], + "spells_learned": [ [ "arvore_nurture_the_green", 1 ] ], + "//": "This only causes growth in existing plants. Growing new plants from nothing should be advanced mutations/spells." + }, + { + "type": "mutation", + "id": "ARVORE_SUMMON_WOOD_WALL", + "name": { "str": "Forest Shelter" }, + "points": 4, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Arvore may create structures of living wood on natural terrain.", + "category": [ "ARVORE" ], + "prereqs": [ "ARVORE_NURTURING_THE_GREEN" ], + "spells_learned": [ [ "arvore_growing_wood_walls", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_COMMUNE_WITH_NATURE", + "name": { "str": "Commune with Nature" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Arvore gains the ability to draw on the peace and strength of nature while standing in a wild area.", + "category": [ "ARVORE" ], + "spells_learned": [ [ "arvore_commune_with_nature", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_SUMMON_BRIARS", + "name": { "str": "Briarwall" }, + "points": 5, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Arvore gains the ability to summon thick tangles of briars to form walls or entrap their enemies.", + "category": [ "ARVORE" ], + "spells_learned": [ [ "arvore_summon_briars", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_FOREST_TELEPORT", + "name": { "str": "Traverse the Wilds" }, + "points": 6, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Arvore gains the ability to transport themselves from tree to nearby tree while within a forest.", + "prereqs": [ "GREENSTRIDE" ], + "prereqs2": [ "ARVORE_FOREST_STEALTH" ], + "category": [ "ARVORE" ], + "spells_learned": [ [ "arvore_traverse_the_wilds", 1 ] ], + "//": "Ideally this would require the destination as well as the departure point to be in a forest (in which case, maybe it could be expanded to fields), but no way to do that for now." + }, + { + "type": "mutation", + "id": "ARVORE_CAUSE_DECAY", + "name": { "str": "Fallen Trees Decay to Soil" }, + "points": 8, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Arvore gains the ability to induce decay and dissolution in the surrounding area.", + "prereqs": [ "ARVORE_VERDANT_INFUSION" ], + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "spells_learned": [ [ "arvore_cause_decay", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_SUMMON_WOOD_SPIRIT", + "name": { "str": "Summon Wood Spirit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Arvore gains the ability to summon a wood spirit.", + "category": [ "ARVORE" ], + "spells_learned": [ [ "arvore_summon_wood_spirit", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_TERRAIN_BASH_SPELL", + "name": { "str": "Roots Crack the Foundation" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "ARVORE_ROOTS_SPELL" ], + "leads_to": [ "ARVORE_ANTI_PLANT_SPELL" ], + "description": "Upon gaining this ability, the Arvore gains the ability to summon semitangible roots that will shatter walls and furniture.", + "category": [ "ARVORE" ], + "spells_learned": [ [ "arvore_roots_crack_the_foundation", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_PERENNIAL_REBIRTH", + "name": { "str": "Perennial Rebirth" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "ARVORE_SUN_NUTRIENTS_AND_MANA", "ARVORE_SUN_NUTRIENTS_AND_MANA_ON" ], + "description": "Upon gaining this ability the Arvore gains the ability to bind their soul to the heart of the forest, rebirthing themselves when on the verge of death.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "spells_learned": [ [ "arvore_perennial_rebirth_spell", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_PERENNIAL_REBIRTH_CASTED", + "name": { "str": "Perennial Rebirth (bound)" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "You have bound your soul to the forest, and death will merely be a momentary inconvenience.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ] + }, + { + "type": "mutation", + "id": "ARVORE_VERDANT_INFUSION", + "name": { "str": "Verdant Infusion" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "ARVORE_COMMUNE_WITH_NATURE" ], + "prereqs2": [ + "ARVORE_SUN_NUTRIENTS", + "ARVORE_SUN_NUTRIENTS_ON", + "ARVORE_SUN_NUTRIENTS_AND_MANA", + "ARVORE_SUN_NUTRIENTS_AND_MANA_ON" + ], + "description": "Upon gaining this ability the Arvore gains the ability to infuse their companions with the vitality of the forest.", + "category": [ "ARVORE" ], + "spells_learned": [ [ "arvore_verdant_infusion", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_ROOTS_SPELL", + "name": { "str": "Command the Roots" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "leads_to": [ "ARVORE_TERRAIN_BASH_SPELL" ], + "description": "Upon gaining this ability the Arvore gains the ability to call up grasping roots from the ground.", + "category": [ "ARVORE" ], + "spells_learned": [ [ "arvore_roots_spell", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_ANTI_PLANT_SPELL", + "name": { "str": "Tending the Garden" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "ARVORE_TERRAIN_BASH_SPELL" ], + "description": "Upon gaining this ability the Arvore gains the ability to damage plant and fungal entities, including others of their own kind.", + "category": [ "ARVORE" ], + "spells_learned": [ [ "arvore_anti_plant_spell", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_CULTIVATE_GOBLIN_FRUIT", + "name": { "str": "Cultivate Goblin Fruit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "ARVORE_COMMUNE_WITH_NATURE" ], + "description": "Upon gaining this ability the Arvore gains the ability to grow a goblin fruit when in natural areas away from civilization.", + "category": [ "ARVORE" ], + "spells_learned": [ [ "arvore_cultivate_goblin_fruit", 1 ] ] + }, + { + "type": "mutation", + "id": "ARVORE_FOREST_MAPPING", + "name": { "str": "Commune with the Ancient Oaks" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "ARVORE_FOREST_DETECT" ], + "description": "The Arvore are closely tied with the forests and may commune with the trees to learn the layout of the land. Activate this ability to enter the communion.", + "category": [ "ARVORE" ], + "active": true, + "cost": 0 + }, + { + "type": "mutation", + "id": "ARVORE_TOXIC_FLESH", + "name": { "str": "Essence of Hemlock" }, + "points": 8, + "description": "With a brief effort of will, the Arvore may infuse their blood with a poison that harms any who bite them.", + "prereqs": [ "ARVORE_BLOOD" ], + "category": [ "ARVORE" ], + "active": true, + "activated_is_setup": true, + "time": 120, + "thirst": true, + "cost": 1, + "activated_eocs": [ "EOC_ARVORE_TOXIC_FLESH_ON" ], + "deactivated_eocs": [ "EOC_ARVORE_TOXIC_FLESH_OFF" ], + "//": "Ideally this would be powered by mana, but thirst will work for now" + }, + { + "type": "mutation", + "id": "ARVORE_SUN_NUTRIENTS", + "name": { "str": "Solar Rejuvenation" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Like a tree, you are fueled by the sun. When standing in the sunlight, you will absorb its energy as nutrients and heal slightly faster.", + "category": [ "ARVORE" ], + "changes_to": [ "ARVORE_SUN_NUTRIENTS_AND_MANA" ], + "triggers": [ [ { "condition": { "and": [ "is_day", "u_is_outside" ] }, "msg_on": { "text": "", "rating": "good" } } ] ], + "transform": { "target": "ARVORE_SUN_NUTRIENTS_ON", "msg_transform": "", "active": false, "moves": 0 }, + "//": "No messages so you aren't constantly spammed while you're walking in and out of buildings. Being a fae spirit, the arvore doesn't need uncovered arms or head or anything--simply being in the sun is enough." + }, + { + "type": "mutation", + "id": "ARVORE_SUN_NUTRIENTS_ON", + "name": { "str": "Solar Rejuvenation (active)" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "valid": false, + "description": "You feel the warm sun radiating down on you and revitalizing you. You are absorbing the sun's energy as nutrients and will heal slightly faster.", + "category": [ "ARVORE" ], + "changes_to": [ "ARVORE_SUN_NUTRIENTS_AND_MANA" ], + "vitamin_rates": [ [ "calcium", -1200, "vitC", -1200, "iron", -1200 ] ], + "healing_awake": 0.25, + "healing_multiplier": 1.5, + "mending_modifier": 3.0, + "//": "Halfway between fast healer and very fast healer, but only outside in the sun", + "triggers": [ + [ + { + "condition": { "or": [ { "not": "is_day" }, { "not": "u_is_outside" } ] }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_SUN_NUTRIENTS", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "ARVORE_SUN_NUTRIENTS_AND_MANA", + "name": { "str": "Solar Revitalization" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Like a tree, you are fueled by the sun. When standing in the sunlight, you will absorb its energy as nutrients, heal slightly faster, and your mana regenerates much quicker.", + "category": [ "ARVORE" ], + "prereqs": [ "ARVORE_SUN_NUTRIENTS" ], + "changes_to": [ "ARVORE_SUN_MANA_BONUS" ], + "triggers": [ [ { "condition": { "and": [ "is_day", "u_is_outside" ] }, "msg_on": { "text": "", "rating": "good" } } ] ], + "transform": { "target": "ARVORE_SUN_NUTRIENTS_AND_MANA_ON", "msg_transform": "", "active": false, "moves": 0 }, + "//": "No messages so you aren't constantly spammed while you're walking in and out of buildings. Being a fae spirit, the arvore doesn't need uncovered arms or head or anything--simply being in the sun is enough." + }, + { + "type": "mutation", + "id": "ARVORE_SUN_NUTRIENTS_AND_MANA_ON", + "name": { "str": "Solar Revitalization (active)" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "valid": false, + "description": "You feel the warm sun radiating down on you and revitalizing you. You are absorbing the sun's energy as nutrients, will heal slightly faster, and your mana is regenerating quicker.", + "category": [ "ARVORE" ], + "prereqs": [ "ARVORE_SUN_NUTRIENTS" ], + "changes_to": [ "ARVORE_SUN_MANA_BONUS" ], + "vitamin_rates": [ [ "calcium", -1200, "vitC", -1200, "iron", -1200 ] ], + "healing_awake": 0.25, + "healing_multiplier": 1.5, + "mending_modifier": 3.0, + "mana_regen_multiplier": 1.5, + "//": "Halfway between fast healer and very fast healer, but only outside in the sun", + "triggers": [ + [ + { + "condition": { "or": [ { "not": "is_day" }, { "not": "u_is_outside" } ] }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_SUN_NUTRIENTS_AND_MANA", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "ARVORE_SUN_FOODS", + "name": { "str": "Solar Repast" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ + "ARVORE_SUN_NUTRIENTS_AND_MANA", + "ARVORE_SUN_NUTRIENTS_AND_MANA_ON", + "ARVORE_SUN_POWER_MANA_STATS", + "ARVORE_SUN_MANA_BONUS_ON", + "ARVORE_SUN_POWER_MANA_STATS", + "ARVORE_SUN_POWER_MANA_STATS_ON" + ], + "description": "Like a tree, you draw nourishment from the sun and the soil. When standing in the sunlight and on natural terrain, you absorb its energy as food. You still need to drink water and you will still get hungry.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "triggers": [ + [ + { + "condition": { + "and": [ + "is_day", + "u_is_outside", + { + "or": [ + { "u_is_on_terrain_with_flag": "SHRUB" }, + { "u_is_on_terrain": "t_tree_young" }, + { "u_is_on_terrain": "t_bamboo_tall" }, + { "u_is_on_terrain": "t_dirt" }, + { "u_is_on_terrain": "t_dirtmound" }, + { "u_is_on_terrain": "t_clay" }, + { "u_is_on_terrain": "t_sand" }, + { "u_is_on_terrain": "t_sandmound" }, + { "u_is_on_terrain": "t_grave" }, + { "u_is_on_terrain": "t_forestfloor" }, + { "u_is_on_terrain": "t_grass" }, + { "u_is_on_terrain": "t_grass_long" }, + { "u_is_on_terrain": "t_grass_tall" }, + { "u_is_on_terrain": "t_grass_dead" }, + { "u_is_on_terrain": "t_mud" }, + { "u_is_on_terrain": "t_dirtfloor_no_roof" }, + { "u_is_on_terrain": "t_moss" } + ] + } + ] + }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_SUN_FOODS_ON", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "ARVORE_SUN_FOODS_ON", + "name": { "str": "Solar Repast (active)" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "valid": false, + "description": "You feel the warm sun radiating down on you and revitalizing you. You are absorbing the sun's energy as food and will need to eat much less.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "enchantments": [ "ench_arvore_sun_foods_on" ], + "triggers": [ + [ + { + "condition": { + "and": [ + { "or": [ { "not": "is_day" }, { "not": "u_is_outside" } ] }, + { + "and": [ + { "not": { "u_is_on_terrain_with_flag": "SHRUB" } }, + { "not": { "u_is_on_terrain": "t_tree_young" } }, + { "not": { "u_is_on_terrain": "t_bamboo_tall" } }, + { "not": { "u_is_on_terrain": "t_dirt" } }, + { "not": { "u_is_on_terrain": "t_dirtmound" } }, + { "not": { "u_is_on_terrain": "t_clay" } }, + { "not": { "u_is_on_terrain": "t_sand" } }, + { "not": { "u_is_on_terrain": "t_sandmound" } }, + { "not": { "u_is_on_terrain": "t_grave" } }, + { "not": { "u_is_on_terrain": "t_forestfloor" } }, + { "not": { "u_is_on_terrain": "t_grass" } }, + { "not": { "u_is_on_terrain": "t_grass_long" } }, + { "not": { "u_is_on_terrain": "t_grass_tall" } }, + { "not": { "u_is_on_terrain": "t_grass_dead" } }, + { "not": { "u_is_on_terrain": "t_dirtfloor_no_roof" } }, + { "not": { "u_is_on_terrain": "t_mud" } }, + { "not": { "u_is_on_terrain": "t_dirtfloor_no_roof" } }, + { "not": { "u_is_on_terrain": "t_moss" } } + ] + } + ] + }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_SUN_FOODS", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "ARVORE_PAIN_RESISTANCE", + "name": { "str": "The Fallen Branch Suffers Not" }, + "points": 5, + "visibility": 1, + "types": [ "PAIN" ], + "description": "Filled with the energy of life, pain does not affect you as strongly.", + "prereqs": [ "ARVORE_SKIN_1" ], + "prereqs2": [ "ARVORE_NURTURING_THE_GREEN" ], + "category": [ "ARVORE" ], + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "PAIN", "multiply": -0.25 } ] } ] + }, + { + "type": "mutation", + "id": "ARVORE_WOOD_CLAWS", + "name": { "str": "Jagged Wooden Claws" }, + "points": 2, + "active": true, + "description": "At will, you can transform your hands into jagged wooden claws. They are potent weapons but make anything other than combat more difficult.", + "types": [ "CLAWS" ], + "prereqs": [ "ARVORE_SKIN_2" ], + "category": [ "ARVORE" ], + "transform": { + "target": "ARVORE_WOOD_CLAWS_active", + "msg_transform": "Your fingers itch as jagged wood rapidly covers them.", + "active": false, + "moves": 10 + }, + "cost": 0 + }, + { + "type": "mutation", + "id": "ARVORE_WOOD_CLAWS_active", + "name": { "str": "Jagged Wooden Claws (active)" }, + "points": 2, + "visibility": 3, + "ugliness": 2, + "description": "Your hands are transformed into jagged wooden claws. You can use them to attack, but performing mundane tasks will be harder.", + "types": [ "CLAWS" ], + "prereqs": [ "ARVORE_SKIN_2" ], + "category": [ "ARVORE" ], + "transform": { + "target": "ARVORE_WOOD_CLAWS", + "msg_transform": "The wood covering your hands receeds, leaving no trace behind.", + "active": false, + "moves": 10 + }, + "cost": 0, + "copy-from": "ARVORE_WOOD_CLAWS", + "valid": false, + "active": true, + "integrated_armor": [ "integrated_arvore_claws" ], + "crafting_speed_multiplier": 0.75 + }, + { + "type": "mutation", + "id": "ARVORE_RESIST_CHILL", + "name": { "str": "Resist Winter's Chill" }, + "points": 2, + "visibility": 0, + "ugliness": 0, + "changes_to": [ "ARVORE_IGNORE_WINTER_CHILL" ], + "description": "Plants lose their leaves in winter, but that does not kill them, they simply sleep until the spring comes. The cold bothers you less now.", + "category": [ "ARVORE" ], + "enchantments": [ "arvore_resist_chill" ] + }, + { + "type": "mutation", + "id": "ARVORE_IGNORE_WINTER_CHILL", + "name": { "str": "Ignore Winter's Chill" }, + "points": 6, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "ARVORE_RESIST_CHILL" ], + "description": "Pine trees keep their leaves even in the coldest winter. The cold bothers you now not at all.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "enchantments": [ "arvore_ignore_chill" ] + }, + { + "type": "mutation", + "id": "ARVORE_DEX_BONUS", + "name": { "str": "Supple As a Reed" }, + "points": 2, + "visibility": 3, + "ugliness": 1, + "prereqs": [ "GREENSTRIDE" ], + "prereqs2": [ "WIND_BLOWS_WILLOW_BENDS" ], + "description": "Like green wood, you can bend your limbs easily. You gain a +4 bonus to Dexterity.", + "category": [ "ARVORE" ], + "passive_mods": { "dex_mod": 4 } + }, + { + "type": "mutation", + "id": "ARVORE_STR_BONUS_1", + "name": { "str": "Might of the Seedling" }, + "points": 1, + "visibility": 0, + "ugliness": 0, + "changes_to": [ "ARVORE_STR_BONUS_2" ], + "description": "Like the seedling poking through the soil, you have great strength hidden within you. +1 Strength.", + "category": [ "ARVORE" ], + "passive_mods": { "str_mod": 1 } + }, + { + "type": "mutation", + "id": "ARVORE_STR_BONUS_2", + "name": { "str": "Might of the Sapling" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "ARVORE_STR_BONUS_1" ], + "prereqs2": [ "ARVORE_SKIN_1" ], + "changes_to": [ "ARVORE_STR_BONUS_3" ], + "description": "Like the young tree reaching for the sun, your limbs are filled with power. +3 Strength.", + "category": [ "ARVORE" ], + "passive_mods": { "str_mod": 3 } + }, + { + "type": "mutation", + "id": "ARVORE_STR_BONUS_3", + "name": { "str": "Might of the Ancient Tree" }, + "points": 5, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "ARVORE_STR_BONUS_2" ], + "prereqs2": [ "ARVORE_SKIN_2" ], + "description": "Like forest giants that have stood for a hundred years, you are unshakeable. +5 Strength.", + "category": [ "ARVORE" ], + "passive_mods": { "str_mod": 5 } + }, + { + "type": "mutation", + "id": "ARVORE_PER_BONUS", + "name": { "str": "Insight of the Grove" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "When one tree in a grove is attacked by insects, soon all trees will produce the deterrent. +3 Perception.", + "prereqs": [ "ARVORE_COMMUNE_WITH_NATURE" ], + "prereqs2": [ "ARVORE_FOREST_DETECT" ], + "category": [ "ARVORE" ], + "passive_mods": { "per_mod": 3 } + }, + { + "type": "mutation", + "id": "ARVORE_FOREST_STEALTH", + "name": { "str": "Shadow of the Trees" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "The forest recognizes your kinship and will hide you beneath its boughs.", + "category": [ "ARVORE" ], + "//": "Ideally there'd be some way to detect what sort of terrain was nearby and you'd need a critical mass of foliage, but the below will work for now.", + "triggers": [ + [ + { + "condition": { + "and": [ + "u_is_outside", + { + "or": [ + { "u_is_on_terrain_with_flag": "SHRUB" }, + { "u_is_on_terrain": "t_tree_young" }, + { "u_is_on_terrain": "t_bamboo_tall" }, + { "u_is_on_terrain": "t_grass_long" }, + { "u_at_om_location": "forest" }, + { "u_at_om_location": "forest_thick" } + ] + } + ] + }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_FOREST_STEALTH_ON", "msg_transform": "", "active": false, "moves": 0 }, + "//2": "No messages so you aren't constantly spammed while you're walking around the overmap." + }, + { + "type": "mutation", + "id": "ARVORE_FOREST_STEALTH_ON", + "name": { "str": "Shadow of the Trees (active)" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "valid": false, + "description": "The forest is hiding you from your enemies.", + "category": [ "ARVORE" ], + "stealth_modifier": 60, + "triggers": [ + [ + { + "condition": { + "or": [ + { "not": "u_is_outside" }, + { + "and": [ + { "not": { "u_is_on_terrain_with_flag": "SHRUB" } }, + { "not": { "u_is_on_terrain": "t_tree_young" } }, + { "not": { "u_is_on_terrain": "t_bamboo_tall" } }, + { "not": { "u_is_on_terrain": "t_grass_long" } }, + { "not": { "u_at_om_location": "forest" } }, + { "not": { "u_at_om_location": "forest_thick" } } + ] + } + ] + }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_FOREST_STEALTH", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "ARVORE_EYES", + "name": { "str": "Arvore Eyes" }, + "points": 1, + "visibility": 2, + "ugliness": 0, + "description": "Upon gaining this ability the Arvore's eyes begin reflecting the seasons: a bright yellow-green in spring; verdant green in summer; red, yellow, or orange in autumn, and dark brown in winter. Glare no longer impacts them.", + "category": [ "ARVORE" ], + "integrated_armor": [ "integrated_arvore_eyes" ] + }, + { + "type": "mutation", + "id": "ARVORE_EARS", + "name": { "str": "Arvore Ears" }, + "points": 1, + "visibility": 2, + "ugliness": 0, + "description": "The Arvore's ears are longer and pointed, more \"leaf-shaped.\" While they cannot hear any better, like the trees in the deep forest, they are unphased by loud sounds.", + "category": [ "ARVORE" ], + "flags": [ "IMMUNE_HEARING_DAMAGE" ] + }, + { + "type": "mutation", + "id": "ARVORE_BLOOD", + "name": { "str": "Vegetal Blood" }, + "//": "Visibility here because the Arvore's skin flushes a different color when the blood isn't red.", + "points": 1, + "visibility": 1, + "ugliness": 0, + "description": "The Arvore's blood is now composed of sap and vegetable matter. This does not benefit or harm them in any ways, but humans will be discomfited by it.", + "category": [ "ARVORE" ], + "flags": [ "PLANTBLOOD" ] + }, + { + "type": "mutation", + "id": "ARVORE_BLOOD_2", + "name": { "str": "Sap Seals the Wound" }, + "points": 7, + "visibility": 2, + "ugliness": 1, + "description": "The Arvore's blood is a sticky sap that quickly hardens on contact with air. They are immune to losing any significant amount of blood and will not bleed.", + "prereqs": [ "ARVORE_BLOOD" ], + "changes_to": "ARVORE_BLOOD_3", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "//": "Ideally this would greatly slow the rate of blood loss, not eliminate it.", + "flags": [ "BLEED_IMMUNE" ] + }, + { + "type": "mutation", + "id": "ARVORE_BLOOD_3", + "name": { "str": "Sap Defends the Trunk" }, + "points": 10, + "visibility": 2, + "ugliness": 1, + "description": "The Arvore's blood is a sticky sap that quickly hardens on contact with air and has potent defensive properties. They will not bleed and are immune to parasites and infection.", + "prereqs": [ "ARVORE_BLOOD_2" ], + "changes_to": "ARVORE_BLOOD_4", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "flags": [ "BLEED_IMMUNE", "PARAIMMUNE", "INFECTION_IMMUNE" ] + }, + { + "type": "mutation", + "id": "ARVORE_BLOOD_4", + "name": { "str": "Sap Maintains the Heartwood" }, + "points": 13, + "visibility": 2, + "ugliness": 1, + "description": "The Arvore's blood is a sticky sap that quickly hardens on contact with air and aggressively fights back against invading organisms. They will not bleed, are immune to parasites and infection, and cannot be transformed by the Mycus.", + "prereqs": [ "ARVORE_BLOOD_3" ], + "prereqs2": [ "ARVORE_ANTI_PLANT_SPELL" ], + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "flags": [ "BLEED_IMMUNE", "PARAIMMUNE", "INFECTION_IMMUNE", "MYCUS_IMMUNE" ] + }, + { + "type": "mutation", + "id": "ARVORE_FOREST_DETECT", + "name": { "str": "The Forests' Warning" }, + "points": 2, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "ARVORE_EYES" ], + "leads_to": [ "ARVORE_FOREST_MAPPING" ], + "description": "In the whispers of the leaves and the movement of the grasses, the forest warns you of approaching dangers. When outside and near thick foliage, you can detect your enemies.", + "category": [ "ARVORE" ], + "triggers": [ + [ + { + "condition": { + "and": [ + "u_is_outside", + { + "or": [ + { "u_is_on_terrain_with_flag": "SHRUB" }, + { "u_is_on_terrain": "t_tree_young" }, + { "u_is_on_terrain": "t_bamboo_tall" }, + { "u_at_om_location": "forest" }, + { "u_at_om_location": "forest_thick" }, + { "u_at_om_location": "forest_water" } + ] + } + ] + }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_FOREST_DETECT_ON", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "ARVORE_FOREST_DETECT_ON", + "name": { "str": "The Forests' Warning (active)" }, + "points": 2, + "visibility": 0, + "ugliness": 0, + "valid": false, + "prereqs": [ "ARVORE_EYES" ], + "leads_to": [ "ARVORE_FOREST_MAPPING" ], + "description": "In the whispers of the leaves and the movement of the grasses, the forest warns you of approaching dangers. The foliage is whispering to you of hidden dangers nearby.", + "category": [ "ARVORE" ], + "enchantments": [ "arvore_forest_detect_enemies" ], + "triggers": [ + [ + { + "condition": { + "or": [ + { "not": "u_is_outside" }, + { + "and": [ + { "not": { "u_is_on_terrain_with_flag": "SHRUB" } }, + { "not": { "u_is_on_terrain": "t_tree_young" } }, + { "not": { "u_is_on_terrain": "t_bamboo_tall" } }, + { "not": { "u_at_om_location": "forest" } }, + { "not": { "u_at_om_location": "forest_thick" } }, + { "not": { "u_at_om_location": "forest_water" } } + ] + } + ] + }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_FOREST_DETECT", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "ARVORE_VERDANT_HAIR", + "name": { "str": "Verdant Hair" }, + "points": 2, + "visibility": 6, + "ugliness": -3, + "description": "Your hair now has flowers and small vines and leaves growing in it. It's pleasant to look at but has no further game effect.", + "category": [ "ARVORE" ] + }, + { + "type": "mutation", + "id": "ARVORE_FLORAL_SCENT", + "name": { "str": "Floral Scent" }, + "points": 4, + "visibility": 0, + "ugliness": -2, + "types": [ "SCENT" ], + "prereqs": [ "ARVORE_VERDANT_HAIR" ], + "changes_to": [ "ARVORE_MIND_CONTROL_POLLEN" ], + "cancels": [ "SMELLY", "SMELLY2" ], + "description": "The flowers in your hair produce a pleasant smell, obvious without being overpowering. You no longer smell anything like a human and other beings will react to you appropriately.", + "category": [ "ARVORE" ], + "scent_type": "sc_flower" + }, + { + "type": "mutation", + "id": "ARVORE_THORN_SKIN", + "name": { "str": "Hidden Thorns" }, + "points": 7, + "visibility": 0, + "ugliness": 0, + "description": "Every rose has its thorn and so do you. With a moment's concentration, you can exude thorns through your skin that have a chance of damaging attackers while increasing the damage of your unarmed attacks. However, you cannot wear rigid armor over your thorns.", + "category": [ "ARVORE" ], + "active": true, + "transform": { + "target": "ARVORE_THORN_SKIN_ON", + "msg_transform": "Woody thorns push through your skin!", + "active": true, + "moves": 50 + } + }, + { + "type": "mutation", + "id": "ARVORE_THORN_SKIN_ON", + "name": { "str": "Unveiled Thorns (active)" }, + "points": 7, + "visibility": 8, + "ugliness": 4, + "description": "You are exuding thorns through your skin that have a chance of damaging attackers while increasing the damage of your unarmed attacks. However, you cannot wear rigid armor over your thorns.", + "category": [ "ARVORE" ], + "active": true, + "valid": false, + "restricts_gear": [ "head", "torso", "arm_l", "arm_r", "leg_r", "leg_l" ], + "remove_rigid": [ "head", "torso", "arm_l", "arm_r", "leg_r", "leg_l" ], + "allow_soft_gear": true, + "integrated_armor": [ "integrated_arvore_thorns" ], + "enchantments": [ "ench_arvore_thorns_mut" ], + "encumbrance_covered": [ [ "hand_l", 10 ], [ "hand_r", 10 ] ], + "transform": { + "target": "ARVORE_THORN_SKIN", + "msg_transform": "Your thorns retract, leaving smooth unbroken skin behind.", + "active": false, + "moves": 50 + } + }, + { + "type": "mutation", + "id": "ARVORE_MIND_CONTROL_POLLEN", + "name": { "str": "Enchanting Aroma" }, + "points": 4, + "visibility": 0, + "ugliness": -2, + "types": [ "SCENT" ], + "prereqs": [ "ARVORE_FLORAL_SCENT" ], + "cancels": [ "SMELLY", "SMELLY2" ], + "description": "The flowers in your hair produce an intoxicating smell. You no longer smell anything like a human and other beings will react to you appropriately. At will, you can enhance this scent to an overpowering level, beguiling humans and making them more suggestible at the cost of greatly increasing the range at which others can smell you.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "scent_type": "sc_flower", + "active": true, + "transform": { + "target": "ARVORE_MIND_CONTROL_POLLEN_ON", + "msg_transform": "A cloying scent fills the air.", + "active": true, + "moves": 0 + } + }, + { + "type": "mutation", + "id": "ARVORE_MIND_CONTROL_POLLEN_ON", + "name": { "str": "Enchanting Aroma (active)" }, + "points": 4, + "visibility": 0, + "ugliness": -10, + "description": "The flowers in your hair produce an intoxicating smell. You no longer smell anything like a human and other beings will react to you appropriately. You are enhancing this scent to an overpowering level, beguiling humans and making them more suggestible at the cost of greatly increasing the range at which others can smell you.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "scent_type": "sc_flower", + "scent_intensity": 1200, + "social_modifiers": { "persuade": 25, "lie": 10 }, + "valid": false, + "active": true, + "transform": { + "target": "ARVORE_MIND_CONTROL_POLLEN", + "msg_transform": "The scent filling the air fades away.", + "active": false, + "moves": 0 + } + }, + { + "type": "mutation", + "id": "ARVORE_HEAL_LIMB_REGEN", + "name": { "str": "Leaves Return When Winter Ends" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "When in wild areas, you can draw on the revitalizing power of the land to heal yourself. When in natural areas, your limbs will heal much faster.", + "prereqs": [ "ARVORE_SKIN_2" ], + "prereqs2": [ "ARVORE_VERDANT_INFUSION" ], + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "flags": [ "MEND_ALL" ], + "triggers": [ + [ + { + "condition": { + "and": [ + { + "or": [ + "u_is_outside", + { "u_is_on_terrain": "t_barkfloor" }, + { "u_is_on_terrain": "t_bramble_door_c" }, + { "u_is_on_terrain": "t_bramble_door_o" }, + { "u_is_on_terrain": "t_root_floor" } + ] + }, + { + "or": [ + { "u_is_on_terrain_with_flag": "SHRUB" }, + { "u_is_on_terrain": "t_tree_young" }, + { "u_is_on_terrain": "t_bamboo_tall" }, + { "u_is_on_terrain": "t_dirt" }, + { "u_is_on_terrain": "t_dirtmound" }, + { "u_is_on_terrain": "t_clay" }, + { "u_is_on_terrain": "t_sand" }, + { "u_is_on_terrain": "t_sandmound" }, + { "u_is_on_terrain": "t_grave" }, + { "u_is_on_terrain": "t_forestfloor" }, + { "u_is_on_terrain": "t_grass" }, + { "u_is_on_terrain": "t_grass_long" }, + { "u_is_on_terrain": "t_grass_tall" }, + { "u_is_on_terrain": "t_grass_dead" }, + { "u_is_on_terrain": "t_dirtfloor_no_roof" }, + { "u_is_on_terrain": "t_mud" }, + { "u_is_on_terrain": "t_dirtfloor_no_roof" }, + { "u_is_on_terrain": "t_moss" } + ] + } + ] + }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_HEAL_LIMB_REGEN_ON", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "ARVORE_HEAL_LIMB_REGEN_ON", + "name": { "str": "Leaves Return When Winter Ends (active)" }, + "//": "Once limb loss is possible, this mutation should allow the Arvore to regrow lost limbs.", + "points": 3, + "visibility": 0, + "ugliness": 0, + "valid": false, + "description": "When in wild areas, you can draw on the revitalizing power of the land to heal yourself. In this natural areas, your limbs are regenerating.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "flags": [ "MEND_ALL" ], + "mending_modifier": 20.0, + "triggers": [ + [ + { + "condition": { + "or": [ + { + "and": [ + { "not": "u_is_outside" }, + { "not": { "u_is_on_terrain": "t_barkfloor" } }, + { "not": { "u_is_on_terrain": "t_bramble_door_c" } }, + { "not": { "u_is_on_terrain": "t_bramble_door_o" } }, + { "not": { "u_is_on_terrain": "t_root_floor" } } + ] + }, + { + "and": [ + { "not": { "u_is_on_terrain_with_flag": "SHRUB" } }, + { "not": { "u_is_on_terrain": "t_tree_young" } }, + { "not": { "u_is_on_terrain": "t_bamboo_tall" } }, + { "not": { "u_is_on_terrain": "t_dirt" } }, + { "not": { "u_is_on_terrain": "t_dirtmound" } }, + { "not": { "u_is_on_terrain": "t_clay" } }, + { "not": { "u_is_on_terrain": "t_sand" } }, + { "not": { "u_is_on_terrain": "t_sandmound" } }, + { "not": { "u_is_on_terrain": "t_grave" } }, + { "not": { "u_is_on_terrain": "t_forestfloor" } }, + { "not": { "u_is_on_terrain": "t_grass" } }, + { "not": { "u_is_on_terrain": "t_grass_long" } }, + { "not": { "u_is_on_terrain": "t_grass_tall" } }, + { "not": { "u_is_on_terrain": "t_grass_dead" } }, + { "not": { "u_is_on_terrain": "t_dirtfloor_no_roof" } }, + { "not": { "u_is_on_terrain": "t_mud" } }, + { "not": { "u_is_on_terrain": "t_dirtfloor_no_roof" } }, + { "not": { "u_is_on_terrain": "t_moss" } } + ] + } + ] + }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_HEAL_LIMB_REGEN", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "ARVORE_TREE_FORM", + "name": { "str": "One with the Forest" }, + "points": 8, + "description": "You may transform into a tree, extending roots and spreading leaves out to the sun. You will heal faster, gain more benefit from sleep, and almost all monsters will ignore you, but you will only be dimly aware of the outside world and will be nearly unable to move.", + "prereqs": [ "ARVORE_HEAL_LIMB_REGEN" ], + "prereqs2": [ "ARVORE_SUN_FOODS", "ARVORE_SUN_FOODS_ON" ], + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "active": true, + "activated_is_setup": true, + "activated_eocs": [ "EOC_ARVORE_TREE_FORM_ON" ], + "processed_eocs": [ "EOC_ARVORE_TREE_FORM_IMMOBILE" ], + "time": 120, + "deactivated_eocs": [ "EOC_ARVORE_TREE_FORM_OFF" ] + }, + { + "type": "mutation", + "id": "ARVORE_TREE_FORM_TRAITS", + "name": { "str": "Ancient Tree" }, + "points": 10, + "description": "You are a tree. You will heal much more quickly and resting is more beneficial. You are unable to see, hear, or move, but have a dim awareness of nearby movement.", + "restricts_gear": [ "head", "torso", "arm_l", "arm_r", "leg_r", "leg_l" ], + "remove_rigid": [ "head", "torso", "arm_l", "arm_r", "leg_r", "leg_l" ], + "allow_soft_gear": true, + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "metabolism_modifier": -0.5, + "thirst_modifier": -0.95, + "fatigue_regen_modifier": 0.5, + "healing_awake": 0.8, + "healing_multiplier": 2.5, + "mending_modifier": 16, + "//": "Healing values copied from the Regeneration mutation", + "attackcost_modifier": 900, + "flags": [ "DEAF", "BLIND", "SEESLEEP", "NO_SCENT", "NO_SPELLCASTING" ], + "ignored_by": [ + "MAMMAL", + "AMPHIBIAN", + "MUTANT", + "CYBORG", + "REPTILE", + "FISH", + "KRAKEN", + "MIGO", + "SLIME", + "LEECH_PLANT", + "INSECT", + "CENTIPEDE", + "INSECT_FLYING", + "SPIDER", + "BIRD", + "MOLLUSK", + "WORM", + "ZOMBIE", + "NETHER", + "PLANT", + "FERAL", + "ROBOT", + "HORROR", + "ABERRATION", + "HUMAN" + ], + "//2": "NETHER_EMANATION missing from the above list is deliberate--they hone in on mental activity and the transformed Arvore still thinks.", + "enchantments": [ "ench_arvore_tree_form" ] + }, + { + "type": "mutation", + "id": "ARVORE_SUN_MANA_BONUS", + "name": { "str": "Solar Empowerment" }, + "points": 10, + "visibility": 0, + "ugliness": 0, + "description": "Like a tree, you are fueled by the sun. When standing in the sunlight, you will absorb its energy as nutrients, heal slightly faster, your mana regenerates much quicker, and you gain a bonus to your maximum mana.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "prereqs": [ "ARVORE_SUN_NUTRIENTS_AND_MANA", "ARVORE_SUN_NUTRIENTS_AND_MANA_ON" ], + "changes_to": [ "ARVORE_SUN_POWER_MANA_STATS" ], + "triggers": [ [ { "condition": { "and": [ "is_day", "u_is_outside" ] }, "msg_on": { "text": "", "rating": "good" } } ] ], + "transform": { "target": "ARVORE_SUN_MANA_BONUS_ON", "msg_transform": "", "active": false, "moves": 0 }, + "//": "No messages so you aren't constantly spammed while you're walking in and out of buildings. Being a fae spirit, the arvore doesn't need uncovered arms or head or anything--simply being in the sun is enough." + }, + { + "type": "mutation", + "id": "ARVORE_SUN_MANA_BONUS_ON", + "name": { "str": "Solar Empowerment (active)" }, + "points": 10, + "visibility": 0, + "ugliness": 0, + "valid": false, + "description": "You feel the warm sun radiating down on you and revitalizing you. You are absorbing the sun's energy as nutrients, will heal slightly faster, your mana is regenerating quicker, and your maximum mana is increased.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "changes_to": [ "ARVORE_SUN_POWER_MANA_STATS" ], + "vitamin_rates": [ [ "calcium", -1200, "vitC", -1200, "iron", -1200 ] ], + "healing_awake": 0.25, + "healing_multiplier": 1.5, + "mending_modifier": 3.0, + "//": "Halfway between fast healer and very fast healer, but only outside in the sun", + "mana_regen_multiplier": 1.5, + "mana_multiplier": 1.5, + "triggers": [ + [ + { + "condition": { "or": [ { "not": "is_day" }, { "not": "u_is_outside" } ] }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_SUN_MANA_BONUS", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "ARVORE_SUN_POWER_MANA_STATS", + "name": { "str": "Solar Ascendancy" }, + "points": 10, + "visibility": 0, + "ugliness": 0, + "description": "Like a tree, you are fueled by the sun. When standing in the sunlight, you will absorb its energy as nutrients, heal slightly faster, your mana regenerates much quicker, you gain a bonus to your maximum mana, and you gain a +2 bonus to all stats.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "prereqs": [ "ARVORE_SUN_MANA_BONUS", "ARVORE_SUN_MANA_BONUS_ON" ], + "triggers": [ [ { "condition": { "and": [ "is_day", "u_is_outside" ] }, "msg_on": { "text": "", "rating": "good" } } ] ], + "transform": { "target": "ARVORE_SUN_POWER_MANA_STATS_ON", "msg_transform": "", "active": false, "moves": 0 }, + "//": "No messages so you aren't constantly spammed while you're walking in and out of buildings. Being a fae spirit, the arvore doesn't need uncovered arms or head or anything--simply being in the sun is enough." + }, + { + "type": "mutation", + "id": "ARVORE_SUN_POWER_MANA_STATS_ON", + "name": { "str": "Solar Ascendancy (active)" }, + "points": 10, + "visibility": 0, + "ugliness": 0, + "valid": false, + "description": "You feel the warm sun radiating down on you and revitalizing you. You are absorbing the sun's energy as nutrients, will heal slightly faster, your mana is regenerating quicker, your maximum mana is increased, and you have +2 to all stats.", + "category": [ "ARVORE" ], + "threshreq": [ "THRESH_ARVORE" ], + "vitamin_rates": [ [ "calcium", -1200, "vitC", -1200, "iron", -1200 ] ], + "healing_awake": 0.25, + "healing_multiplier": 1.5, + "mending_modifier": 3.0, + "//": "Halfway between fast healer and very fast healer, but only outside in the sun", + "mana_regen_multiplier": 1.5, + "mana_multiplier": 1.5, + "passive_mods": { "str_mod": 2, "dex_mod": 2, "int_mod": 2, "per_mod": 2 }, + "triggers": [ + [ + { + "condition": { "or": [ { "not": "is_day" }, { "not": "u_is_outside" } ] }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "ARVORE_SUN_POWER_MANA_STATS", "msg_transform": "", "active": false, "moves": 0 } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/ierde_eocs.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/ierde_eocs.json new file mode 100644 index 000000000..6b611bc58 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/ierde_eocs.json @@ -0,0 +1,39 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_IERDE_GOBLIN_FRUIT", + "condition": { + "or": [ + { "u_is_on_terrain_with_flag": "SHRUB" }, + { "u_is_on_terrain": "t_tree_young" }, + { "u_is_on_terrain": "t_bamboo_tall" }, + { "u_is_on_terrain": "t_dirt" }, + { "u_is_on_terrain": "t_dirtmound" }, + { "u_is_on_terrain": "t_clay" }, + { "u_is_on_terrain": "t_sand" }, + { "u_is_on_terrain": "t_sandmound" }, + { "u_is_on_terrain": "t_grave" }, + { "u_is_on_terrain": "t_forestfloor" }, + { "u_is_on_terrain": "t_grass" }, + { "u_is_on_terrain": "t_grass_long" }, + { "u_is_on_terrain": "t_grass_tall" }, + { "u_is_on_terrain": "t_grass_dead" }, + { "u_is_on_terrain": "t_dirtfloor_no_roof" }, + { "u_is_on_terrain": "t_mud" }, + { "u_is_on_terrain": "t_dirt_underground" }, + { "u_is_on_terrain": "t_moss" }, + { "u_is_on_terrain": "t_rock_floor_no_roof" }, + { "u_is_on_terrain": "t_rock_floor" }, + { "u_is_on_terrain": "t_rock_smooth" }, + { "u_is_on_terrain": "t_rock_wall_half" }, + { "u_is_on_terrain": "t_mud_underground" }, + { "u_is_on_terrain": "t_moss_underground" }, + { "u_is_on_terrain": "t_clay_underground" }, + { "u_is_on_terrain": "t_sand_underground" }, + { "u_is_on_terrain": "t_dirt_underground" } + ] + }, + "effect": [ { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } ], + "false_effect": [ { "u_message": "You must be on living earth or stone to call forth a goblin fruit.", "type": "bad" } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/ierde_mutation_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/ierde_mutation_spells.json new file mode 100644 index 000000000..817a04a47 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/ierde_mutation_spells.json @@ -0,0 +1,21 @@ +[ + { + "id": "ierde_cultivate_goblin_fruit", + "type": "SPELL", + "name": "Cultivate Goblin Fruit", + "description": "You may spin a bit of fae magic into the earth, bringing forth a goblin fruit. Goblin fruit have a variety of effects, never predictable but always at least somewhat beneficial. This spell may only be cast outdoors in natural surroundings.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_IERDE_GOBLIN_FRUIT", + "shape": "blast", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "str_to_level(1)" ] }, + "difficulty": 8, + "base_casting_time": 180000, + "final_casting_time": 100, + "casting_time_increment": -6000, + "energy_source": "MANA", + "base_energy_cost": 450 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/ierde_mutations.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/ierde_mutations.json new file mode 100644 index 000000000..43aec8b4d --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/ierde_mutations.json @@ -0,0 +1,78 @@ +[ + { + "type": "mutation", + "id": "IERDE_SKIN_1", + "name": { "str": "Clay of the earth" }, + "points": 0, + "visibility": 2, + "ugliness": 0, + "description": "Your skin has turned the color of manganese stained soil. Your skin is now a purplish black. This has no gameplay effects.", + "types": [ "skin_tone" ], + "leads_to": [ "IERDE_SKIN_2" ], + "category": [ "IERDE" ] + }, + { + "type": "mutation", + "id": "IERDE_SKIN_2", + "name": { "str": "pebbled skin" }, + "points": 2, + "visibility": 4, + "ugliness": 3, + "description": "Your skin has toughened and formed pebble-like growths in some places, acting as natural armor. Somewhat reduces wet effects.", + "types": [ "SKIN" ], + "category": [ "IERDE" ], + "prereqs": [ "IERDE_SKIN_1" ], + "changes_to": [ "IERDE_SKIN_3" ], + "wet_protection": [ + { "part": "head", "ignored": 2 }, + { "part": "leg_l", "ignored": 5 }, + { "part": "leg_r", "ignored": 5 }, + { "part": "foot_l", "ignored": 2 }, + { "part": "foot_r", "ignored": 2 }, + { "part": "arm_l", "ignored": 4 }, + { "part": "arm_r", "ignored": 4 }, + { "part": "hand_l", "ignored": 1 }, + { "part": "hand_r", "ignored": 1 }, + { "part": "torso", "ignored": 6 } + ], + "integrated_armor": [ "integrated_pebbled" ] + }, + { + "type": "mutation", + "id": "IERDE_SKIN_3", + "name": { "str": "stone skin" }, + "points": 3, + "visibility": 10, + "ugliness": 4, + "mixed_effect": true, + "description": "Your skin has developed into strong granite-like covering that retains some flexibility and has grown to cover most of your body, acting as natural armor. While difficult to penetrate, it also limits your flexibility. Greatly reduces wet effects.", + "types": [ "skin_tone" ], + "prereqs": [ "IERDE_SKIN_2" ], + "threshreq": [ "THRESH_IERDE" ], + "category": [ "IERDE" ], + "wet_protection": [ + { "part": "head", "ignored": 5 }, + { "part": "leg_l", "ignored": 16 }, + { "part": "leg_r", "ignored": 16 }, + { "part": "foot_l", "ignored": 5 }, + { "part": "foot_r", "ignored": 5 }, + { "part": "arm_l", "ignored": 14 }, + { "part": "arm_r", "ignored": 14 }, + { "part": "hand_l", "ignored": 4 }, + { "part": "hand_r", "ignored": 4 }, + { "part": "torso", "ignored": 30 } + ], + "integrated_armor": [ "integrated_granite_skin" ] + }, + { + "type": "mutation", + "id": "IERDE_CULTIVATE_GOBLIN_FRUIT", + "name": { "str": "Cultivate Goblin Fruit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Ierde gains the ability to grow a goblin fruit from a earth or stone.", + "category": [ "IERDE" ], + "spells_learned": [ [ "ierde_cultivate_goblin_fruit", 1 ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/paraclesian_mutation_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/paraclesian_mutation_spells.json new file mode 100644 index 000000000..333627d05 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/paraclesian_mutation_spells.json @@ -0,0 +1,96 @@ +[ + { + "id": "cloud_of_steam", + "type": "SPELL", + "name": "Cloud of Steam", + "description": "You bring forth a cloud of boiling water.", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "self", "ally", "hostile", "ground" ], + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS" ], + "max_level": 35, + "min_damage": 4, + "max_damage": 68, + "damage_increment": 2.2, + "min_aoe": 3, + "max_aoe": 11, + "aoe_increment": 0.2, + "min_range": 6, + "max_range": 20, + "range_increment": 1.0, + "base_casting_time": 200, + "final_casting_time": 120, + "casting_time_increment": 4, + "base_energy_cost": 350, + "final_energy_cost": 100, + "energy_increment": 8, + "energy_source": "MANA", + "difficulty": 4, + "damage_type": "heat" + }, + { + "id": "create_light", + "type": "SPELL", + "name": "Light", + "description": "Creates a magical light.", + "valid_targets": [ "self" ], + "flags": [ "NO_LEGS", "CONCENTRATE" ], + "min_range": 0, + "max_range": 0, + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "magic_light", + "shape": "blast", + "energy_source": "MANA", + "difficulty": 2, + "max_level": 20, + "base_casting_time": 200, + "base_energy_cost": 150, + "min_duration": 100000, + "max_duration": 1000000, + "duration_increment": 45000 + }, + { + "id": "cultivate_goblin_fruit_real", + "type": "SPELL", + "name": "Cultivate Goblin Fruit Real", + "description": "The actual spell that calls forth a goblin fruit. It's a bug if you have it.", + "flags": [ "SPAWN_GROUP" ], + "valid_targets": [ "self" ], + "effect": "spawn_item", + "effect_str": "spell_spawned_goblin_fruit", + "shape": "blast", + "min_damage": 1, + "max_damage": 1 + }, + { + "id": "paraclesian_spell_dodge_bonus", + "type": "SPELL", + "name": "The Wind Blows, the Willow Bends", + "description": "Like the flitting wind or the flexible willow, the spell allows you to avoid attacks much more easily.", + "flags": [ "SOMATIC", "VERBAL", "NO_EXPLOSION_SFX" ], + "valid_targets": [ "self" ], + "skill": "deduction", + "max_level": 15, + "effect": "effect_on_condition", + "effect_str": "EOC_APPLY_PARACLESIAN_DODGE_BONUS", + "shape": "blast", + "difficulty": 5, + "min_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: paraclesian_spell_dodge_bonus') * 3000) + 30000) * (scaling_factor(u_val('perception') ) ) )" + ] + }, + "max_duration": { + "math": [ + "( ( (u_val('spell_level', 'spell: paraclesian_spell_dodge_bonus') * 3000) + 30000) * (scaling_factor(u_val('perception') ) ) )" + ] + }, + "energy_source": "MANA", + "base_energy_cost": 600, + "final_energy_cost": 400, + "energy_increment": -12, + "base_casting_time": 150 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/paraclesian_mutations.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/paraclesian_mutations.json new file mode 100644 index 000000000..09e4d4b61 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/paraclesian_mutations.json @@ -0,0 +1,334 @@ +[ + { + "type": "mutation", + "id": "IERDE", + "//": "Mutations for this spirit should take it in the direction of, retains water, temperature resistant, slower, tougher, damage resistant, and any spells it receives should alter the earth around it.", + "name": { "str": "Born of the Earth" }, + "mixed_effect": true, + "starting_trait": false, + "valid": false, + "purifiable": false, + "profession": true, + "points": 2, + "ignored_by": [ "IERDE" ], + "cancels": [ + "THIRST", + "THIRST2", + "THIRST3", + "ANTIJUNK", + "LACTOSE", + "ANTIFRUIT", + "MEATARIAN", + "ANTIWHEAT", + "PROJUNK", + "CHAOTIC", + "CHAOTIC_BAD", + "UNSTABLE", + "HERBIVORE", + "ROBUST", + "CARNIVORE", + "FASTHEALER", + "FASTHEALER2", + "REGEN", + "REGEN_LIZ", + "SLOWHEALER", + "SLOWHEALER2", + "SLOWHEALER3", + "NOHEAL" + ], + "can_heal_with": [ "cthonic_poultice" ], + "description": "A spirit of earth and stone.", + "anger_relations": [ [ "IERDE", -20 ], [ "SYLPH", 20 ] ], + "allowed_category": [ "IERDE" ], + "no_cbm_on_bp": [ "torso", "head", "eyes", "mouth", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + }, + { + "type": "mutation", + "id": "ARVORE", + "name": { "str": "Root and Branch" }, + "//": "This spirit should have mutations that involve plants, cold resistant, think what treebeard would be like, and spells that control plants.", + "mixed_effect": true, + "valid": false, + "starting_trait": false, + "purifiable": false, + "profession": true, + "points": 2, + "ignored_by": [ "ARVORE" ], + "cancels": [ + "THIRST", + "THIRST2", + "THIRST3", + "ANTIJUNK", + "LACTOSE", + "ANTIFRUIT", + "MEATARIAN", + "ANTIWHEAT", + "PROJUNK", + "CHAOTIC", + "CHAOTIC_BAD", + "UNSTABLE", + "HERBIVORE", + "ROBUST", + "CARNIVORE", + "FASTHEALER", + "FASTHEALER2", + "REGEN", + "REGEN_LIZ", + "SLOWHEALER", + "SLOWHEALER2", + "SLOWHEALER3", + "NOHEAL" + ], + "can_heal_with": [ "verdant_poultice" ], + "description": "A spirit of leaf and bark.", + "anger_relations": [ [ "ARVORE", -20 ], [ "HOMULLUS", 20 ] ], + "allowed_category": [ "ARVORE" ], + "no_cbm_on_bp": [ "torso", "head", "eyes", "mouth", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ], + "flags": [ "TREE_COMMUNION_PLUS" ] + }, + { + "type": "mutation", + "id": "SALAMANDER", + "//": "This spirit should become immune to heat and fire, take double cold damage, slow in the cold, produce heat, regen quickly in warm temperatures, take damage from water and casts fire/heat spells.", + "name": { "str": "Touched by Fire" }, + "mixed_effect": true, + "valid": false, + "starting_trait": false, + "purifiable": false, + "profession": true, + "points": 2, + "ignored_by": [ "SALAMANDER" ], + "cancels": [ + "THIRST", + "THIRST2", + "THIRST3", + "ANTIJUNK", + "LACTOSE", + "ANTIFRUIT", + "MEATARIAN", + "ANTIWHEAT", + "PROJUNK", + "CHAOTIC", + "CHAOTIC_BAD", + "UNSTABLE", + "HERBIVORE", + "ROBUST", + "CARNIVORE", + "FASTHEALER", + "FASTHEALER2", + "REGEN", + "REGEN_LIZ", + "SLOWHEALER", + "SLOWHEALER2", + "SLOWHEALER3", + "NOHEAL" + ], + "can_heal_with": [ "charred_sacrifice" ], + "description": "A spirit of fire.", + "anger_relations": [ [ "SALAMANDER", -20 ], [ "UNDINE", 20 ] ], + "allowed_category": [ "SALAMANDER" ], + "no_cbm_on_bp": [ "torso", "head", "eyes", "mouth", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + }, + { + "type": "mutation", + "id": "UNDINE", + "//": "Spirits of water should slowly gain extreme resistance to cutting, lesser resistance to bash, weak against cold and electricity, see if I can make extra regen in water or regen from wet, extra perspiration and thirst, spells should be water based.", + "name": { "str": "Rain and Wave" }, + "mixed_effect": true, + "valid": false, + "starting_trait": false, + "purifiable": false, + "profession": true, + "points": 2, + "weakness_to_water": -2, + "ignored_by": [ "UNDINE" ], + "scent_type": "sc_fae", + "thirst_modifier": -1.0, + "cancels": [ + "THIRST", + "THIRST2", + "THIRST3", + "ANTIJUNK", + "LACTOSE", + "ANTIFRUIT", + "MEATARIAN", + "ANTIWHEAT", + "PROJUNK", + "CHAOTIC", + "CHAOTIC_BAD", + "UNSTABLE", + "HERBIVORE", + "ROBUST", + "CARNIVORE", + "FASTHEALER", + "FASTHEALER2", + "REGEN", + "REGEN_LIZ", + "SLOWHEALER", + "SLOWHEALER2", + "SLOWHEALER3", + "NOHEAL" + ], + "can_heal_with": [ "cerulean_poultice" ], + "description": "You are born of the deep waters.", + "anger_relations": [ [ "UNDINE", -20 ], [ "SALAMANDER", 20 ] ], + "allowed_category": [ "UNDINE" ], + "no_cbm_on_bp": [ "torso", "head", "eyes", "mouth", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + }, + { + "type": "mutation", + "id": "HOMULLUS", + "//": "Spirits of the image of man should be the most humanlike, can have CBMs, have bonuses to interactions with humans, should eventually be able to hide from ferals and vampires/human predators, should slowly become weirdly neohuman, spells should manipulate living humanesque creatures.", + "name": { "str": "Child of Dolls" }, + "mixed_effect": true, + "valid": false, + "starting_trait": false, + "purifiable": false, + "profession": true, + "points": 2, + "ignored_by": [ "HOMULLUS" ], + "cancels": [ + "THIRST", + "THIRST2", + "THIRST3", + "ANTIJUNK", + "LACTOSE", + "ANTIFRUIT", + "MEATARIAN", + "ANTIWHEAT", + "PROJUNK", + "CHAOTIC", + "CHAOTIC_BAD", + "UNSTABLE", + "HERBIVORE", + "ROBUST", + "CARNIVORE", + "FASTHEALER", + "FASTHEALER2", + "REGEN", + "REGEN_LIZ", + "SLOWHEALER", + "SLOWHEALER2", + "SLOWHEALER3", + "NOHEAL" + ], + "can_heal_with": [ "doll_repair_paste" ], + "description": "A spirit of the image of humans given life.", + "anger_relations": [ [ "HOMULLUS", -20 ], [ "ARVORE", 20 ] ], + "allowed_category": [ "HOMULLUS" ] + }, + { + "type": "mutation", + "id": "SYLPH", + "//": "Mutations for this spirit should take it in the direction of, freedom of movement, faster, weaker, dodges, and any spells it receives should alter the air around it.", + "name": { "str": "Born of the Air" }, + "mixed_effect": true, + "valid": false, + "starting_trait": false, + "purifiable": false, + "profession": true, + "points": 2, + "ignored_by": [ "SYLPH" ], + "cancels": [ + "THIRST", + "THIRST2", + "THIRST3", + "ANTIJUNK", + "LACTOSE", + "ANTIFRUIT", + "MEATARIAN", + "ANTIWHEAT", + "PROJUNK", + "CHAOTIC", + "CHAOTIC_BAD", + "UNSTABLE", + "HERBIVORE", + "ROBUST", + "CARNIVORE", + "FASTHEALER", + "FASTHEALER2", + "REGEN", + "REGEN_LIZ", + "SLOWHEALER", + "SLOWHEALER2", + "SLOWHEALER3", + "NOHEAL" + ], + "can_heal_with": [ "ethereal_draught" ], + "description": "A spirit of air and wind.", + "anger_relations": [ [ "SYLPH", -20 ], [ "IERDE", 20 ] ], + "allowed_category": [ "SYLPH" ], + "no_cbm_on_bp": [ "torso", "head", "eyes", "mouth", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ] + }, + { + "type": "mutation", + "id": "CLOUD_OF_STEAM", + "name": { "str": "Cloud of Steam" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Sylph gains the ability to create a cloud of damaging steam.", + "category": [ "SYLPH", "UNDINE" ], + "spells_learned": [ [ "cloud_of_steam", 1 ] ] + }, + { + "type": "mutation", + "id": "CREATE_LIGHT", + "name": { "str": "Create Light" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Sylph gains the ability to create light.", + "category": [ "SYLPH", "SALAMANDER" ], + "spells_learned": [ [ "create_light", 1 ] ] + }, + { + "type": "mutation", + "id": "ELEMENTAL_MANA1", + "name": "Born of the Elements", + "points": 1, + "description": "Your connection to this world is deep and rewards you with additional mana.", + "changes_to": [ "ELEMENTAL_MANA2" ], + "types": [ "MANA_ADD" ], + "category": [ "UNDINE", "SALAMANDER", "ARVORE", "IERDE", "HOMULLUS", "SYLPH" ], + "flags": [ "NON_THRESH" ], + "mana_modifier": 500 + }, + { + "type": "mutation", + "id": "ELEMENTAL_MANA2", + "name": "Change with the Seasons", + "points": 3, + "description": "You are able to store more mana in your body than usual.", + "changes_to": [ "ELEMENTAL_MANA3" ], + "types": [ "MANA_ADD" ], + "category": [ "UNDINE", "SALAMANDER", "ARVORE", "IERDE", "HOMULLUS", "SYLPH" ], + "prereqs": [ "ELEMENTAL_MANA1" ], + "flags": [ "NON_THRESH" ], + "mana_modifier": 1000 + }, + { + "type": "mutation", + "id": "ELEMENTAL_MANA3", + "name": "Walking Ley Line", + "points": 8, + "description": "You are able to store a lot more mana in your body than usual.", + "types": [ "MANA_ADD" ], + "category": [ "UNDINE", "SALAMANDER", "ARVORE", "IERDE", "HOMULLUS", "SYLPH" ], + "prereqs": [ "ELEMENTAL_MANA2" ], + "flags": [ "NON_THRESH" ], + "mana_modifier": 2000 + }, + { + "type": "mutation", + "id": "WIND_BLOWS_WILLOW_BENDS", + "name": { "str": "The Wind Blows, the Willow Bends" }, + "points": 4, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability, you gain the ability to enhance your dodge capabilities.", + "category": [ "ARVORE", "SYLPH" ], + "leads_to": [ "ARVORE_DEX_BONUS" ], + "spells_learned": [ [ "paraclesian_spell_dodge_bonus", 1 ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/salamander_eocs.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/salamander_eocs.json new file mode 100644 index 000000000..b455af384 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/salamander_eocs.json @@ -0,0 +1,95 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_SALAMANDER_REMOVE_STUN", + "effect": [ { "u_add_effect": "effect_salamander_remove_stun", "duration": 5 } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SALAMANDER_GOBLIN_FRUIT", + "//": "I don't believe EoCs can detect if there is a fire nearby--once they can, that should be added in rather than detecting heat fields.", + "condition": { + "or": [ + { "u_has_item": "torch_lit" }, + { "u_has_item": "candle_lit" }, + { "u_has_item": "oil_lamp_on" }, + { "u_has_item": "oil_lamp_clay_on" }, + { "u_has_item": "cigar_lit" }, + { "u_has_item": "cig_lit" }, + { "u_is_in_field": "fd_hot_air1" }, + { "u_is_in_field": "fd_hot_air2" }, + { "u_is_in_field": "fd_hot_air3" }, + { "u_is_in_field": "fd_hot_air4" }, + { "u_is_in_field": "fd_fire" } + ] + }, + "effect": [ { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } ], + "false_effect": [ { "u_message": "You must have a source of flames or heat to call forth a goblin fruit.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SALAMANDER_FIRE_FLY", + "condition": { "u_is_in_field": "fd_fire" }, + "effect": [ + { + "u_add_effect": "effect_salamander_levitation", + "duration": { "math": [ "( 12 + (u_val('spell_level', 'spell: salamander_fire_fly') * rng(2,4) )) " ] } + }, + { + "u_add_effect": "effect_salamander_featherfall", + "duration": { "math": [ "( 15 + (u_val('spell_level', 'spell: salamander_fire_fly') * 4 )) " ] } + }, + { "u_cast_spell": { "id": "salamander_fire_fly_real" }, "targeted": true } + ], + "false_effect": [ { "u_message": "You must be standing in flames to cast Burning Ascension.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SALAMANDER_REBORN_IN_FLAMES", + "eoc_type": "PREVENT_DEATH", + "condition": { + "and": [ + { "u_has_trait": "SALAMANDER_PREVENT_DEATH" }, + { "u_is_in_field": "fd_fire" }, + { "not": { "u_has_effect": "effect_salamander_prevented_death" } } + ] + }, + "effect": [ + { + "u_message": "As your body takes its final wound, your fae spirit drinks in the heat of the flames and your flesh is renewed.", + "popup": true + }, + { "run_eocs": [ "EOC_PERENNIAL_REBIRTH_HEAL" ] }, + { "u_add_effect": "effect_salamander_prevented_death", "duration": 1209600 }, + { "math": [ "u_val('stored_kcal')", "+=", "40000" ] } + ], + "false_effect": { + "run_eocs": [ + { + "id": "EOC_SALAMANDER_REBORN_IN_FLAMES_COOLDOWN", + "condition": { + "and": [ + { "u_has_trait": "SALAMANDER_PREVENT_DEATH" }, + { "u_is_in_field": "fd_fire" }, + { "u_has_effect": "effect_salamander_prevented_death" }, + { "x_in_y_chance": { "x": 1, "y": 7 } } + ] + }, + "effect": [ + { + "u_message": "As your body takes its final wound, your fae spirit drinks in the heat of the flames and your flesh is renewed.", + "popup": true + }, + { "run_eocs": [ "EOC_PERENNIAL_REBIRTH_HEAL" ] }, + { "math": [ "u_val('stored_kcal')", "+=", "40000" ] } + ] + } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_SALAMANDER_NO_SLEEP", + "effect": [ { "math": [ "u_val('fatigue')", "=", "0" ] }, { "math": [ "u_val('sleep_deprivation')", "=", "0" ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/salamander_mutation_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/salamander_mutation_spells.json new file mode 100644 index 000000000..12ee0ead0 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/salamander_mutation_spells.json @@ -0,0 +1,350 @@ +[ + { + "type": "enchantment", + "id": "ench_salamander_wings_flame", + "condition": "ALWAYS", + "values": [ { "value": "LUMINATION", "add": 150 } ] + }, + { + "type": "enchantment", + "id": "ench_salamander_reduced_move", + "condition": "ALWAYS", + "values": [ { "value": "MOVE_COST", "multiply": -0.1 }, { "value": "ATTACK_SPEED", "multiply": -0.1 } ] + }, + { + "id": "salamander_aoe_explosion", + "type": "SPELL", + "name": "Salamander AoE Explosion", + "description": "This is the aoe used by some other Salamander spells. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "hostile", "ground", "ally" ], + "flags": [ "LOUD", "NO_PROJECTILE", "IGNITE_FLAMMABLE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "damage_type": "heat", + "max_level": 20, + "min_damage": 10, + "max_damage": 40, + "min_aoe": 1, + "max_aoe": 10, + "aoe_increment": 1, + "field_id": "fd_fire", + "min_field_intensity": 1, + "max_field_intensity": 2, + "field_chance": 2, + "sound_type": "combat", + "sound_description": "a crackle!" + }, + { + "id": "salamander_make_fire", + "type": "SPELL", + "name": "Enkindle", + "description": "Born from fire, it is easy for a Salamander to bring forth that fire and set something alight.", + "valid_targets": [ "hostile", "ground", "ally" ], + "skill": "deduction", + "flags": [ "CONCENTRATE", "IGNITE_FLAMMABLE", "VERBAL", "NO_HANDS", "NO_LEGS" ], + "max_level": { "math": [ "str_to_level(1)" ] }, + "effect": "attack", + "shape": "blast", + "damage_type": "heat", + "difficulty": 1, + "min_range": { + "math": [ "(1 + (u_val('spell_level', 'spell: salamander_make_fire') * 0.15) * (scaling_factor(u_val('strength') ) ) )" ] + }, + "max_range": 5, + "energy_source": "MANA", + "base_energy_cost": 200, + "final_energy_cost": 75, + "energy_increment": -8, + "base_casting_time": 125, + "final_casting_time": 75, + "casting_time_increment": -4, + "field_id": "fd_fire", + "min_field_intensity": 1, + "max_field_intensity": 2, + "field_chance": 1, + "sound_type": "combat", + "sound_description": "a crackle!" + }, + { + "id": "salamander_flame_punch_spell", + "type": "SPELL", + "name": "Blazing Blow", + "description": "Wreathe your fist in flames and punch a single target, causing fire damage and knocking them backward.", + "valid_targets": [ "hostile", "ground", "ally" ], + "flags": [ "LOUD", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "skill": "deduction", + "effect": "attack", + "extra_effects": [ { "id": "salamander_flame_punch_spell_push", "hit_self": false } ], + "shape": "blast", + "damage_type": "heat", + "difficulty": 3, + "max_level": { "math": [ "str_to_level(1)" ] }, + "min_damage": { + "math": [ "(6 + (u_val('spell_level', 'spell: salamander_flame_punch_spell') * 2) * (scaling_factor(u_val('strength') ) ) )" ] + }, + "max_damage": { + "math": [ + "(15 + (u_val('spell_level', 'spell: salamander_flame_punch_spell') * 4.5) * (scaling_factor(u_val('strength') ) ) )" + ] + }, + "min_range": 1, + "max_range": 1, + "energy_source": "MANA", + "base_energy_cost": 150, + "final_energy_cost": 50, + "energy_increment": -6, + "base_casting_time": 75, + "final_casting_time": 25, + "casting_time_increment": -3, + "sound_type": "combat", + "sound_description": "a crackle!" + }, + { + "id": "salamander_flame_punch_spell_push", + "type": "SPELL", + "name": "Blazing Blow Push", + "description": "This is the push effect of the Blazing Blow spell. It's a bug if you have it directly.", + "message": "", + "valid_targets": [ "ally", "hostile", "item", "ground" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "effect": "directed_push", + "shape": "blast", + "max_level": { "math": [ "str_to_level(1)" ] }, + "min_damage": 2, + "max_damage": 6, + "damage_increment": 0.15, + "min_range": 1, + "max_range": 1 + }, + { + "id": "salamander_cure_conditions", + "type": "SPELL", + "name": "Burning Away Your Impurities", + "description": "As fire burns dead wood, you can burn away poison or sickness in your target. However, just as fire is dangerous to touch, it damages the target as well.", + "valid_targets": [ "self", "ally" ], + "skill": "deduction", + "effect": "attack", + "effect_str": "effect_salamander_cure_conditions", + "affected_body_parts": [ "head", "torso", "arm_l", "arm_r", "leg_l", "leg_r" ], + "shape": "blast", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "str_to_level(1)" ] }, + "difficulty": 6, + "min_range": 1, + "min_duration": 500, + "max_duration": 1500, + "energy_source": "MANA", + "base_energy_cost": 800, + "final_energy_cost": 550, + "energy_increment": -6, + "base_casting_time": 3000 + }, + { + "id": "salamander_increase_speed_spell", + "type": "SPELL", + "name": "Fanning the Spark", + "description": "You can infuse yourself or an ally with the blazing speed of fire.", + "valid_targets": [ "self", "ally" ], + "skill": "deduction", + "effect": "attack", + "effect_str": "effect_salamander_increase_speed", + "shape": "blast", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "RANDOM_DURATION", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "str_to_level(1)" ] }, + "difficulty": 6, + "min_range": 1, + "min_duration": { + "math": [ + "(10000 + (u_val('spell_level', 'spell: salamander_increase_speed_spell') * 5000) * (scaling_factor(u_val('strength') ) ) )" + ] + }, + "max_duration": { + "math": [ + "(30000 + (u_val('spell_level', 'spell: salamander_increase_speed_spell') * 8000) * (scaling_factor(u_val('strength') ) ) )" + ] + }, + "energy_source": "MANA", + "base_energy_cost": 550, + "base_casting_time": 250, + "final_casting_time": 150, + "casting_time_increment": -4 + }, + { + "id": "salamander_emit_heat", + "type": "SPELL", + "name": "Stoking the Inner Furnace", + "description": "Like a bonfire, you can throw off large quantities of heat.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "attack", + "effect_str": "effect_salamander_emit_heat", + "shape": "blast", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "str_to_level(1)" ] }, + "difficulty": 6, + "min_duration": { + "math": [ "(15000 + (u_val('spell_level', 'spell: salamander_emit_heat') * 3000) * (scaling_factor(u_val('strength') ) ) )" ] + }, + "max_duration": { + "math": [ "(45000 + (u_val('spell_level', 'spell: salamander_emit_heat') * 9000) * (scaling_factor(u_val('strength') ) ) )" ] + }, + "energy_source": "MANA", + "base_energy_cost": 700, + "base_casting_time": 500 + }, + { + "id": "salamander_summon_fire_spirit", + "type": "SPELL", + "name": "Calling the Children of the Inferno", + "description": "A lesser fire spirit is summoned to support you.", + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "SPAWN_GROUP" ], + "valid_targets": [ "ground" ], + "skill": "deduction", + "max_level": 35, + "difficulty": 3, + "effect": "summon", + "effect_str": "GROUP_GENIUS_SALAMANDER", + "shape": "blast", + "min_damage": 1, + "max_damage": 8, + "damage_increment": 0.5, + "min_range": 1, + "max_range": 15, + "range_increment": 1, + "energy_source": "MANA", + "base_energy_cost": 200, + "base_casting_time": 3000, + "min_duration": 36000, + "max_duration": 1080000, + "duration_increment": 36000 + }, + { + "id": "salamander_fire_breath", + "type": "SPELL", + "name": "Breath of the Firedragon", + "description": "Like the legendary dragon, you can spray fire in a cone in front of you.", + "valid_targets": [ "hostile", "ground" ], + "skill": "deduction", + "flags": [ "CONCENTRATE", "LOUD", "NO_PROJECTILE", "IGNITE_FLAMMABLE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "cone", + "damage_type": "heat", + "difficulty": 5, + "max_level": { "math": [ "str_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: salamander_fire_breath') * 2) + 15) * (scaling_factor(u_val('strength') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: salamander_fire_breath') * 3) + 30) * (scaling_factor(u_val('strength') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: salamander_fire_breath') * 0.2) + 2) * (scaling_factor(u_val('strength') ) )" ] + }, + "max_range": 8, + "range_increment": 0.2, + "min_aoe": { + "math": [ "( (u_val('spell_level', 'spell: salamander_fire_breath') * 3) + 27) * (scaling_factor(u_val('strength') ) )" ] + }, + "max_aoe": 180, + "field_id": "fd_fire", + "min_field_intensity": 1, + "max_field_intensity": 2, + "field_chance": 3, + "energy_source": "MANA", + "base_energy_cost": 350, + "final_energy_cost": 250, + "energy_increment": -5, + "base_casting_time": 100, + "final_casting_time": 75, + "casting_time_increment": -2, + "sound_type": "combat", + "sound_description": "a crackle!" + }, + { + "id": "salamander_dash_boom_spell", + "type": "SPELL", + "name": { "str": "Fiery Charge" }, + "description": "Hurl yourself forward in a burst of speed, causing an explosion at your arrive point.", + "valid_targets": [ "hostile", "ground" ], + "skill": "deduction", + "flags": [ "VERBAL", "NO_HANDS", "LOUD" ], + "difficulty": 4, + "max_level": { "math": [ "str_to_level(1)" ] }, + "effect": "dash", + "extra_effects": [ { "id": "salamander_aoe_explosion", "hit_self": true, "max_level": 4 } ], + "shape": "cone", + "min_damage": 0, + "max_damage": 0, + "min_range": { + "math": [ "(3 + (u_val('spell_level', 'spell: salamander_dash_boom_spell') * 0.75) * (scaling_factor(u_val('strength') ) ) )" ] + }, + "max_range": { + "math": [ "(3 + (u_val('spell_level', 'spell: salamander_dash_boom_spell') * 0.75) * (scaling_factor(u_val('strength') ) ) )" ] + }, + "energy_source": "MANA", + "base_energy_cost": 350, + "final_energy_cost": 200, + "energy_increment": -6, + "base_casting_time": 200, + "final_casting_time": 50, + "casting_time_increment": -6 + }, + { + "id": "salamander_cultivate_goblin_fruit", + "type": "SPELL", + "name": "Cultivate Goblin Fruit", + "description": "You may spin a bit of fae magic into the flames, bringing forth a goblin fruit. Goblin fruit have a variety of effects, never predictable but always at least somewhat beneficial. This spell may only be cast outdoors in natural surroundings.", + "valid_targets": [ "self" ], + "skill": "deduction", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "effect": "effect_on_condition", + "effect_str": "EOC_SALAMANDER_GOBLIN_FRUIT", + "shape": "blast", + "max_level": { "math": [ "str_to_level(1)" ] }, + "difficulty": 8, + "energy_source": "MANA", + "base_energy_cost": 450, + "base_casting_time": 180000, + "final_casting_time": 100, + "casting_time_increment": -6000 + }, + { + "id": "salamander_fire_fly", + "type": "SPELL", + "name": "Burning Ascension", + "description": "Like the rising heat of fire, you can ascend into the air and walk with the smoke for a short time before falling safely back to the earth.", + "valid_targets": [ "self" ], + "skill": "deduction", + "flags": [ "SOMATIC", "SILENT", "NO_LEGS", "VERBAL", "TARGET_TELEPORT" ], + "effect": "effect_on_condition", + "effect_str": "EOC_SALAMANDER_FIRE_FLY", + "shape": "blast", + "max_level": { "math": [ "str_to_level(1)" ] }, + "difficulty": 6, + "energy_source": "MANA", + "base_energy_cost": 250, + "base_casting_time": 150, + "final_casting_time": 50, + "casting_time_increment": -5 + }, + { + "id": "salamander_fire_fly_real", + "type": "SPELL", + "name": "Burning Ascension Real", + "description": "The actual spell that causes the burning ascension. It's a bug if you have it.", + "valid_targets": [ "ground" ], + "skill": "deduction", + "flags": [ "SOMATIC", "SILENT", "NO_LEGS", "VERBAL", "TARGET_TELEPORT", "EXTRA_EFFECTS_FIRST" ], + "effect": "short_range_teleport", + "extra_effects": [ { "id": "salamander_aoe_explosion", "hit_self": true, "max_level": 5 } ], + "shape": "blast", + "max_level": { "math": [ "str_to_level(1)" ] }, + "min_range": { + "math": [ "(2 + (u_val('spell_level', 'spell: salamander_fire_fly') * 0.35) * (scaling_factor(u_val('strength') ) ) )" ] + }, + "max_range": { + "math": [ "(2 + (u_val('spell_level', 'spell: salamander_fire_fly') * 0.35) * (scaling_factor(u_val('strength') ) ) )" ] + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/salamander_mutations.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/salamander_mutations.json new file mode 100644 index 000000000..05acf2486 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/salamander_mutations.json @@ -0,0 +1,539 @@ +[ + { + "type": "mutation", + "id": "SALAMANDER_SKIN_1", + "name": { "str": "Salamander Skin" }, + "points": 0, + "visibility": 2, + "ugliness": 0, + "description": "Your skin has turned the color of an autumnal bonfire. Your skin is now an orange red with dark freckles. This has no gameplay effects.", + "types": [ "skin_tone" ], + "leads_to": [ "SALAMANDER_SKIN_2" ], + "category": [ "SALAMANDER" ] + }, + { + "type": "mutation", + "id": "SALAMANDER_SKIN_2", + "name": { "str": "Burning Coals Skin" }, + "points": 2, + "visibility": 4, + "ugliness": 3, + "description": "Your skin has has magickal flames flaring out of it on occasion. You can operate in warmer climates than normal humans but begin to take damage from getting wet.", + "types": [ "SKIN" ], + "category": [ "SALAMANDER" ], + "prereqs": [ "SALAMANDER_SKIN_1" ], + "changes_to": [ "SALAMANDER_SKIN_3" ], + "weakness_to_water": 1, + "integrated_armor": [ "integrated_coal_skin" ], + "flags": [ "TOUGH_FEET" ] + }, + { + "type": "mutation", + "id": "SALAMANDER_SKIN_3", + "name": { "str": "Flame Skin" }, + "points": 3, + "visibility": 10, + "ugliness": 4, + "mixed_effect": true, + "description": "Your skin exudes magickal flames constantly, you can operate in almost any heat now without danger but rain may be a lethal threat.", + "types": [ "SKIN" ], + "flags": [ "HEAT_IMMUNE", "TOUGH_FEET" ], + "prereqs": [ "SALAMANDER_SKIN_2" ], + "threshreq": [ "THRESH_SALAMANDER" ], + "category": [ "SALAMANDER" ], + "weakness_to_water": 4, + "integrated_armor": [ "integrated_flameskin" ] + }, + { + "type": "mutation", + "id": "SALAMANDER_MAKE_FIRE", + "name": { "str": "Enkindle" }, + "points": 2, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Salamander gains the ability to set something nearby on fire.", + "category": [ "SALAMANDER" ], + "spells_learned": [ [ "salamander_make_fire", 1 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_DASH_BOOM", + "name": { "str": "Fiery Charge" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Salamander gains the ability to rush forward and cause an explosion at the place they land.", + "prereqs": [ "SALAMANDER_MAKE_FIRE" ], + "category": [ "SALAMANDER" ], + "spells_learned": [ [ "salamander_dash_boom_spell", 1 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_FLAME_PUNCH", + "name": { "str": "Blazing Blow" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Salamander gains the ability to punch a target with a fiery fist, causing damage and hurling them back.", + "prereqs": [ "SALAMANDER_MAKE_FIRE" ], + "category": [ "SALAMANDER" ], + "spells_learned": [ [ "salamander_flame_punch_spell", 1 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_SUMMON_FIRE_SPIRIT", + "name": { "str": "Summon Fire Spirit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Salamander gains the ability to summon a fire spirit.", + "category": [ "SALAMANDER" ], + "spells_learned": [ [ "salamander_summon_fire_spirit", 1 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_FLAME_BREATH", + "name": { "str": "Breath of the Firedragon" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Salamander gains the ability to breathe a cone of flames.", + "prereqs": [ "SALAMANDER_FLAME_PUNCH" ], + "category": [ "SALAMANDER" ], + "spells_learned": [ [ "salamander_fire_breath", 1 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_INCREASE_SPEED", + "name": { "str": "Fanning the Spark" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Salamander gains the ability to increase their own or an ally's speed.", + "prereqs": [ "SALAMANDER_ECTOTHERM" ], + "prereqs2": [ "SALAMANDER_HEAT_HEAL", "SALAMANDER_HEAT_HEAL_ON" ], + "category": [ "SALAMANDER" ], + "spells_learned": [ [ "salamander_increase_speed_spell", 1 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_EMIT_HEAT", + "name": { "str": "Stoking the Inner Fire" }, + "points": 6, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Salamander gains the ability to emit large quantities of heat.", + "prereqs": [ "SALAMANDER_MAKE_FIRE" ], + "prereqs2": [ "SALAMANDER_SLEEP_LESS2", "SALAMANDER_SLEEP_LESS3" ], + "category": [ "SALAMANDER" ], + "spells_learned": [ [ "salamander_emit_heat", 1 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_CURE_CONDITIONS", + "name": { "str": "Burning Away Your Impurities" }, + "points": 6, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Salamander gains the ability to cure deleterious conditions at the cost of damage.", + "prereqs": [ "SALAMANDER_HEAT_HEAL", "SALAMANDER_HEAT_HEAL_ON" ], + "category": [ "SALAMANDER" ], + "spells_learned": [ [ "salamander_cure_conditions", 1 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_CULTIVATE_GOBLIN_FRUIT", + "name": { "str": "Cultivate Goblin Fruit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Salamander gains the ability to pluck a goblin fruit from the flames.", + "category": [ "SALAMANDER" ], + "spells_learned": [ [ "salamander_cultivate_goblin_fruit", 1 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_EYES", + "name": { "str": "Salamander Eyes" }, + "points": 1, + "visibility": 2, + "ugliness": 0, + "description": "Upon gaining this ability the Salamander's eyes begin reflecting their mood, with warm yellows and deep reds when happy and blazing oranges, blues, and whites when angry. Glare no longer impacts them and they can always see exactly what temperature it is.", + "leads_to": [ "SALAMANDER_HEAT_EYES" ], + "category": [ "SALAMANDER" ], + "integrated_armor": [ "integrated_salamander_eyes" ], + "flags": [ "THERMOMETER" ] + }, + { + "type": "mutation", + "id": "SALAMANDER_HEAT_EYES", + "name": { "str": "Heat Sight" }, + "points": 3, + "description": "With their new eyes, the Salamander can see heat and pick out others in darkness.", + "prereqs": [ "SALAMANDER_EYES" ], + "changes_to": [ "SALAMANDER_HEAT_EYES2" ], + "category": [ "SALAMANDER" ], + "flags": [ "INFRARED" ] + }, + { + "type": "mutation", + "id": "SALAMANDER_HEAT_EYES2", + "name": { "str": "Reading the Heartfires" }, + "points": 5, + "description": "The Salamander's ability to see heat has sharpened greatly, and they can pick out subtle change in a person's skin caused by blood flow. This makes persuasion and lying easier.", + "prereqs": [ "SALAMANDER_EYES" ], + "category": [ "SALAMANDER" ], + "social_modifiers": { "persuade": 10, "lie": 10 }, + "flags": [ "INFRARED" ] + }, + { + "type": "mutation", + "id": "SALAMANDER_EARS", + "name": { "str": "Salamander Ears" }, + "points": 1, + "visibility": 2, + "ugliness": 0, + "description": "The Salamander's ears narrow to a point, like tongues of leaping flame. While distinctive, this has no gameplay effects.", + "category": [ "SALAMANDER" ] + }, + { + "type": "mutation", + "id": "SALAMANDER_ECTOTHERM", + "name": { "str": "Heat Quickens the Blood" }, + "points": 4, + "visibility": 0, + "ugliness": 0, + "types": [ "ECTOTHERMIC" ], + "description": "The Salamander gains strength from heat and becomes faster in hot weather. However, cold weather produces a corresponding slowing effect.", + "prereqs": [ "SALAMANDER_NO_WATER" ], + "changes_to": [ "SALAMANDER_HEAT_HEAL" ], + "category": [ "SALAMANDER" ], + "temperature_speed_modifier": 1 + }, + { + "type": "mutation", + "id": "SALAMANDER_HEAT_HEAL", + "name": { "str": "Heat Fuels the Flames" }, + "points": 8, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "SALAMANDER_ECTOTHERM" ], + "description": "The Salamander gains strength from heat and becomes faster and heals much quicker in hot weather. However, cold weather produces a corresponding slowing effect.", + "category": [ "SALAMANDER" ], + "//": "Temperature below is weather only, not local ambient air temperature, hence the field detection. If local temperature is added, change to that.", + "triggers": [ + [ + { + "condition": { + "or": [ + { "math": [ "weather('temperature')", ">=", "from_fahrenheit( 80 )" ] }, + { + "or": [ + { "u_is_in_field": "fd_hot_air1" }, + { "u_is_in_field": "fd_hot_air2" }, + { "u_is_in_field": "fd_hot_air3" }, + { "u_is_in_field": "fd_hot_air4" }, + { "u_is_in_field": "fd_fire" }, + { "u_is_in_field": "fd_salamander_heat" }, + { "u_is_in_field": "fd_migo_atmosphere" } + ] + } + ] + }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "SALAMANDER_HEAT_HEAL_ON", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "SALAMANDER_HEAT_HEAL_ON", + "name": { "str": "Heat Fuels the Flames (active)" }, + "points": 8, + "visibility": 0, + "ugliness": 0, + "valid": false, + "description": "The Salamander gains strength from heat and becomes faster and heals much quicker in hot weather. The heat is speeding your healing.", + "category": [ "SALAMANDER" ], + "healing_awake": 0.44, + "healing_multiplier": 1.5, + "mending_modifier": 4, + "//": "Numbers taken from Very Fast Healer", + "temperature_speed_modifier": 1, + "triggers": [ + [ + { + "condition": { + "and": [ + { "math": [ "weather('temperature')", "<", "from_fahrenheit( 79 )" ] }, + { + "and": [ + { "not": { "u_is_in_field": "fd_hot_air1" } }, + { "not": { "u_is_in_field": "fd_hot_air2" } }, + { "not": { "u_is_in_field": "fd_hot_air3" } }, + { "not": { "u_is_in_field": "fd_hot_air4" } }, + { "not": { "u_is_in_field": "fd_fire" } }, + { "not": { "u_is_in_field": "fd_salamander_heat" } }, + { "not": { "u_is_in_field": "fd_migo_atmosphere" } } + ] + } + ] + }, + "msg_on": { "text": "", "rating": "good" } + } + ] + ], + "transform": { "target": "SALAMANDER_HEAT_HEAL", "msg_transform": "", "active": false, "moves": 0 } + }, + { + "type": "mutation", + "id": "SALAMANDER_MONCAMS", + "name": { "str": "Within the Firelight" }, + "points": 2, + "description": "As a distant fire reveals that which is nearby, the Salamander can see what surrounds their kin. The Salamander may see through the eyes of any creatures they summon.", + "prereqs": [ "SALAMANDER_SUMMON_FIRE_SPIRIT" ], + "prereqs2": [ "SALAMANDER_HEAT_EYES", "SALAMANDER_HEAT_EYES2" ], + "category": [ "SALAMANDER" ], + "moncams": [ [ "mon_salamander_tiny", 50 ], [ "mon_smoke_mephit", 50 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_SLEEP_LESS", + "name": { "str": "The Campfire Stands Watch" }, + "points": 2, + "description": "The Salamander needs less sleep than a human. However, they will also need to eat slightly more.", + "changes_to": [ "SALAMANDER_SLEEP_LESS2" ], + "types": [ "SLEEP" ], + "category": [ "SALAMANDER" ], + "fatigue_modifier": -0.25, + "fatigue_regen_modifier": 0.25, + "metabolism_modifier": 0.33, + "stamina_regen_modifier": 0.1 + }, + { + "type": "mutation", + "id": "SALAMANDER_SLEEP_LESS2", + "name": { "str": "The Bonfire Blazes Until the Revelers Have Gone" }, + "points": 5, + "description": "The Salamander needs much less sleep than a human. However, they will also need to eat significantly more.", + "prereqs": [ "SALAMANDER_SLEEP_LESS" ], + "changes_to": [ "SALAMANDER_SLEEP_LESS3" ], + "types": [ "SLEEP" ], + "category": [ "SALAMANDER" ], + "fatigue_modifier": -0.5, + "fatigue_regen_modifier": 0.5, + "metabolism_modifier": 0.66, + "stamina_regen_modifier": 0.2 + }, + { + "type": "mutation", + "id": "SALAMANDER_SLEEP_LESS3", + "name": { "str": "The Watchfire Burns Throughout the Night" }, + "points": 10, + "description": "Like a blazing signal fire, a Salamander never stops shining. They never need to sleep if they do not want to, and when they do, they need much less sleep than normal. However, they require twice as much food as a human.", + "prereqs": [ "SALAMANDER_SLEEP_LESS2" ], + "types": [ "SLEEP" ], + "active": true, + "activated_is_setup": true, + "category": [ "SALAMANDER" ], + "threshreq": [ "THRESH_SALAMANDER" ], + "fatigue_modifier": -0.5, + "fatigue_regen_modifier": 0.5, + "metabolism_modifier": 1, + "stamina_regen_modifier": 0.3, + "activated_eocs": [ "EOC_SALAMANDER_NO_SLEEP" ], + "processed_eocs": [ "EOC_SALAMANDER_NO_SLEEP" ], + "time": "6 h" + }, + { + "type": "mutation", + "id": "SALAMANDER_NO_WATER", + "name": { "str": "The Inner Fire Cannot Be Quenched" }, + "points": 6, + "description": "Accursed water. Its touch dampens your flames, and you will no longer have anything to do with it. You do not need to drink.", + "types": [ "THIRST" ], + "prereqs": [ "SALAMANDER_SKIN_2", "SALAMANDER_SKIN_3" ], + "category": [ "SALAMANDER" ], + "flags": [ "NO_THIRST" ], + "purifiable": false + }, + { + "type": "mutation", + "id": "SALAMANDER_STR_BONUS_1", + "name": { "str": "Strength of the Crackling Fire" }, + "points": 1, + "visibility": 0, + "ugliness": 0, + "changes_to": [ "SALAMANDER_STR_BONUS_2" ], + "description": "Like a fire fueled with fresh wood, you have increased strength. +1 Strength.", + "category": [ "SALAMANDER" ], + "passive_mods": { "str_mod": 1 } + }, + { + "type": "mutation", + "id": "SALAMANDER_STR_BONUS_2", + "name": { "str": "Strength of the Blazing Bonfire" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "SALAMANDER_STR_BONUS_1" ], + "prereqs2": [ "SALAMANDER_MAKE_FIRE" ], + "description": "Like the bonfire that will burn through the night, you have greatly increased strength. +3 Strength.", + "category": [ "SALAMANDER" ], + "passive_mods": { "str_mod": 3 } + }, + { + "type": "mutation", + "id": "SALAMANDER_DEX_BONUS_1", + "name": { "str": "Fiery Speed" }, + "points": 2, + "visibility": 0, + "ugliness": 0, + "changes_to": [ "SALAMANDER_DEX_BONUS_2" ], + "description": "Like a fire sparks kindling in flame, you have increased speed. +2 Dexterity.", + "category": [ "SALAMANDER" ], + "passive_mods": { "dex_mod": 2 } + }, + { + "type": "mutation", + "id": "SALAMANDER_DEX_BONUS_2", + "name": { "str": "Blazing Speed" }, + "points": 5, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "SALAMANDER_DEX_BONUS_1" ], + "prereqs2": [ "SALAMANDER_ECTOTHERM" ], + "description": "Like a forest fire moving faster than a running horse, you have greatly increased speed. +5 Dexterity.", + "category": [ "SALAMANDER" ], + "passive_mods": { "dex_mod": 5 } + }, + { + "type": "mutation", + "id": "SALAMANDER_REDUCED_MOVE_COST", + "name": { "str": "Outracing the Prairie Fire" }, + "points": 7, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "SALAMANDER_DEX_BONUS_2" ], + "description": "The Salamander can move even faster than a racing prairie fire. -10% move and attack speed.", + "category": [ "SALAMANDER" ], + "enchantments": [ "ench_salamander_reduced_move" ] + }, + { + "type": "mutation", + "id": "SALAMANDER_INT_BONUS", + "name": { "str": "Sparking Thoughts" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "SALAMANDER_MAKE_FIRE" ], + "description": "Your thoughts are as fast as a forest fire. +2 Intelligence.", + "category": [ "SALAMANDER" ], + "passive_mods": { "int_mod": 2 } + }, + { + "type": "mutation", + "id": "SALAMANDER_REMOVE_STUN", + "name": { "str": "Effortlessly-Rising Smoke" }, + "points": 5, + "description": "Like smoke rising to the sky, the Salamander cannot be kept down. This trait may be activated to immediately clear the Stunned, Dazed, or Downed effects", + "prereqs": [ "SALAMANDER_REDUCED_MOVE_COST" ], + "types": [ "SLEEP" ], + "active": true, + "category": [ "SALAMANDER" ], + "activated_eocs": [ "EOC_SALAMANDER_REMOVE_STUN" ], + "cost": 1, + "kcal": true + }, + { + "type": "mutation", + "id": "SALAMANDER_FIRE_IMMUNE", + "name": { "str": "Inured to Flame" }, + "points": 9, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "SALAMANDER_SKIN_3" ], + "description": "A creature born and bred of fire, the Salamander is utterly immune to heat and flame of any kind. However, they will take additional damage from cold.", + "category": [ "SALAMANDER" ], + "threshreq": [ "THRESH_SALAMANDER" ], + "enchantments": [ + { + "condition": "ALWAYS", + "values": [ + { "value": "CLIMATE_CONTROL_CHILL", "add": 1000 }, + { "value": "ARMOR_HEAT", "add": -1000 }, + { "value": "ARMOR_COLD", "multiply": 0.5 } + ] + } + ], + "flags": [ "HEAT_IMMUNE" ] + }, + { + "type": "mutation", + "id": "SALAMANDER_FLY_IN_FIRE_SPELL", + "name": { "str": "Burning Ascension" }, + "points": 6, + "description": "Upon gaining this ability the Salamander gains the ability to hurl themselves skyward while standing in a fire.", + "prereqs": "SALAMANDER_FIRE_IMMUNE", + "category": [ "SALAMANDER" ], + "threshreq": [ "THRESH_SALAMANDER" ], + "spells_learned": [ [ "salamander_fire_fly", 1 ] ] + }, + { + "type": "mutation", + "id": "SALAMANDER_SUMMON_WINGS", + "name": { "str": "On Wings of Flame" }, + "points": 7, + "visibility": 0, + "ugliness": 0, + "description": "With an act of will, you can extend wings of flame from your back. These aetherial wings are not hindered by clothing or armor, but also do not have enough substance to allow you to fly. However, they can break a fall or be used in combat.", + "prereqs": "SALAMANDER_FIRE_IMMUNE", + "category": [ "SALAMANDER" ], + "threshreq": [ "THRESH_SALAMANDER" ], + "active": true, + "transform": { + "target": "SALAMANDER_SUMMON_WINGS_ON", + "msg_transform": "Flaming wings extend from your back!", + "active": true, + "moves": 50 + } + }, + { + "type": "mutation", + "id": "SALAMANDER_SUMMON_WINGS_ON", + "name": { "str": "On Wings of Flame (active)" }, + "points": 7, + "visibility": 10, + "ugliness": 0, + "description": "You are extending wings of aetherial flame from your back. You can attack enemies with them and will not take damage from falls.", + "category": [ "SALAMANDER" ], + "active": true, + "valid": false, + "enchantments": [ "ench_salamander_wings_flame" ], + "flags": [ "WINGS_2" ], + "//": "Damage taken from Spiked Tail", + "attacks": { + "attack_text_u": "You buffet %s with your fiery wings!", + "attack_text_npc": "%1$s buffets %2$s with their fiery wings!", + "chance": 20, + "base_damage": { "damage_type": "heat", "amount": 20 } + }, + "transform": { + "target": "SALAMANDER_SUMMON_WINGS", + "msg_transform": "The wings on your back gutter and die.", + "active": false, + "moves": 50 + } + }, + { + "type": "mutation", + "id": "SALAMANDER_PREVENT_DEATH", + "name": { "str": "In Flames, Reborn Like the Phoenix" }, + "points": 12, + "description": "Like the bird of legend, you can recreate yourself from the heat and smoke of a fire. If your body takes fatal damage while standing in a fire, your fae spirit will use those flames to renew yourself. This can generally occur no more often than once every 14 days, though there is a small chance it can occur more often.", + "prereqs": "SALAMANDER_FIRE_IMMUNE", + "category": [ "SALAMANDER" ], + "threshreq": [ "THRESH_SALAMANDER" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/sylph_eocs.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/sylph_eocs.json new file mode 100644 index 000000000..05f65c85c --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/sylph_eocs.json @@ -0,0 +1,9 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_SYLPH_GOBLIN_FRUIT", + "condition": { "and": [ "u_is_outside", { "math": [ "weather('windpower')", ">=", "12" ] } ] }, + "effect": [ { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } ], + "false_effect": [ { "u_message": "You must have a strong enough wind to call forth a goblin fruit.", "type": "bad" } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/sylph_mutation_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/sylph_mutation_spells.json new file mode 100644 index 000000000..77a382238 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/sylph_mutation_spells.json @@ -0,0 +1,313 @@ +[ + { + "id": "zap_electrical_emission", + "type": "SPELL", + "name": "Zap", + "description": "Electricity emits from your extremities.", + "message": "tsszappp!", + "skill": "deduction", + "effect": "attack", + "shape": "cone", + "valid_targets": [ "ally", "hostile", "ground" ], + "flags": [ "LOUD", "NO_PROJECTILE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: zap_electrical_emission') * 1) + 3) * (scaling_factor(u_val('dexterity') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: zap_electrical_emission') * 4) + 7) * (scaling_factor(u_val('dexterity') ) )" ] + }, + "min_range": 2, + "max_range": 6, + "range_increment": 0.25, + "base_casting_time": 100, + "final_casting_time": 35, + "casting_time_increment": -4, + "base_energy_cost": 150, + "final_energy_cost": 50, + "energy_increment": 5, + "energy_source": "MANA", + "difficulty": 1, + "sound_description": "a crackle", + "damage_type": "electric", + "learn_spells": { "sylph_call_lightning": 5, "sylph_crash_of_lightning": 9 } + }, + { + "id": "sylph_call_lightning", + "type": "SPELL", + "name": "Lightning Bolt", + "description": "The goto ability for many Sylphs, this does just what you expect: you shoot lightning from your fingertips. However, this lightning is more directed than most lightning, and travels in a line through most non-solid targets.", + "effect": "attack", + "shape": "line", + "valid_targets": [ "ally", "hostile", "ground" ], + "flags": [ "LOUD", "SOMATIC", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: sylph_call_lightning') * 3) + 6) * (scaling_factor(u_val('dexterity') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: sylph_call_lightning') * 4) + 26) * (scaling_factor(u_val('dexterity') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: sylph_call_lightning') * 1.5) + 2) * (scaling_factor(u_val('dexterity') ) )" ] + }, + "max_range": 70, + "difficulty": 6, + "min_aoe": 1, + "max_aoe": 1, + "base_casting_time": 200, + "final_casting_time": 100, + "casting_time_increment": -5, + "base_energy_cost": 240, + "final_energy_cost": 60, + "energy_increment": -8, + "field_id": "fd_electricity", + "min_field_intensity": 1, + "max_field_intensity": 1, + "field_chance": 1, + "damage_type": "electric", + "sound_description": "a crackle", + "energy_source": "MANA" + }, + { + "id": "sylph_crash_of_lightning", + "type": "SPELL", + "name": "Crash of lightning", + "description": "The crash of lightning strikes your foes with a blast of electricity and a physical force that knocks them prone.", + "effect": "attack", + "shape": "line", + "valid_targets": [ "ally", "hostile", "ground" ], + "extra_effects": [ { "id": "crash", "hit_self": false, "max_level": 3 } ], + "flags": [ "LOUD", "SOMATIC", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_damage": { + "math": [ "( (u_val('spell_level', 'spell: sylph_crash_of_lightning') * 3) + 6) * (scaling_factor(u_val('dexterity') ) )" ] + }, + "max_damage": { + "math": [ "( (u_val('spell_level', 'spell: sylph_crash_of_lightning') * 4) + 26) * (scaling_factor(u_val('dexterity') ) )" ] + }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: sylph_crash_of_lightning') * 1.5) + 2) * (scaling_factor(u_val('dexterity') ) )" ] + }, + "max_range": 70, + "difficulty": 6, + "min_aoe": 1, + "max_aoe": 1, + "base_casting_time": 200, + "final_casting_time": 100, + "casting_time_increment": -5, + "base_energy_cost": 240, + "final_energy_cost": 80, + "energy_increment": 8, + "field_id": "fd_electricity", + "min_field_intensity": 1, + "max_field_intensity": 1, + "field_chance": 1, + "damage_type": "electric", + "sound_description": "a crackle", + "energy_source": "MANA" + }, + { + "type": "SPELL", + "id": "crash", + "name": "crash", + "description": "A thunder clap at a distance.", + "valid_targets": [ "hostile", "ground", "self", "ally" ], + "effect": "attack", + "effect_str": "downed", + "shape": "line", + "flags": [ "LOUD" ], + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: sylph_crash_of_lightning') * 1.5) + 2) * (scaling_factor(u_val('dexterity') ) )" ] + }, + "max_range": 70 + }, + { + "type": "SPELL", + "id": "clap_of_thunder", + "name": "Clap of Thunder", + "description": "A thunder clap at a distance.", + "valid_targets": [ "hostile", "ground", "self", "ally" ], + "effect": "flashbang", + "shape": "blast", + "flags": [ "LOUD" ], + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_range": 12, + "max_range": 24, + "range_increment": 0.4, + "base_casting_time": 200, + "final_casting_time": 80, + "casting_time_increment": -5, + "base_energy_cost": 90, + "final_energy_cost": 20, + "energy_increment": 8 + }, + { + "id": "electrical_field", + "type": "SPELL", + "name": "Electrical Field", + "description": "Summons a field of electricity.", + "message": "tsszappp!", + "valid_targets": [ "hostile", "ground" ], + "skill": "deduction", + "flags": [ "LOUD", "NO_PROJECTILE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "damage_type": "electric", + "difficulty": 2, + "min_aoe": 1, + "max_aoe": 7, + "aoe_increment": 0.5, + "field_id": "fd_electricity", + "min_field_intensity": 0, + "max_field_intensity": 4, + "field_intensity_increment": 1, + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_range": { + "math": [ "( (u_val('spell_level', 'spell: electrical_field') * 1.5) + 2) * (scaling_factor(u_val('dexterity') ) )" ] + }, + "max_range": 70, + "energy_source": "MANA", + "base_energy_cost": 500, + "final_energy_cost": 250, + "energy_increment": -25, + "base_casting_time": 100, + "final_casting_time": 35, + "casting_time_increment": -4, + "sound_type": "combat", + "sound_description": "zzzpptttt!", + "learn_spells": { "lightning_field": 5 } + }, + { + "id": "lightning_field", + "type": "SPELL", + "name": "Lightning Field", + "description": "Summons a field of lightning.", + "message": "tsszappp!", + "valid_targets": [ "hostile", "ground" ], + "skill": "deduction", + "flags": [ "LOUD", "NO_PROJECTILE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "damage_type": "electric", + "difficulty": 2, + "min_aoe": 1, + "max_aoe": 7, + "aoe_increment": 0.5, + "field_id": "fd_electricity", + "min_field_intensity": 6, + "max_field_intensity": 10, + "field_intensity_increment": 1, + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_range": { "math": [ "( (u_val('spell_level', 'spell: lightning_field') * 1.5) + 2) * (scaling_factor(u_val('dexterity') ) )" ] }, + "max_range": 70, + "energy_source": "MANA", + "base_energy_cost": 800, + "final_energy_cost": 450, + "energy_increment": -25, + "base_casting_time": 100, + "final_casting_time": 35, + "casting_time_increment": -4, + "sound_type": "combat", + "sound_description": "cracklezzbit!" + }, + { + "id": "sylph_cultivate_goblin_fruit", + "type": "SPELL", + "name": "Cultivate Goblin Fruit", + "description": "You may spin a bit of fae magic into the winds, bringing forth a goblin fruit. Goblin fruit have a variety of effects, never predictable but always at least somewhat beneficial. This spell may only be cast outdoors in natural surroundings.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_SYLPH_GOBLIN_FRUIT", + "shape": "blast", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "dex_to_level(1)" ] }, + "difficulty": 8, + "base_casting_time": 180000, + "final_casting_time": 100, + "casting_time_increment": -6000, + "energy_source": "MANA", + "base_energy_cost": 450 + }, + { + "id": "summon_air_sprite", + "type": "SPELL", + "name": "Summon Air Sprite", + "description": "A lesser air elemental is summoned to support you.", + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 8, + "damage_increment": 0.5, + "min_range": 1, + "max_range": 15, + "range_increment": 1, + "max_level": 35, + "difficulty": 3, + "effect": "summon", + "effect_str": "GROUP_GENIUS_SYLPH", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 200, + "base_casting_time": 3000, + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "SPAWN_GROUP", "SPAWN_GROUP" ], + "min_duration": 36000, + "max_duration": 1080000, + "duration_increment": 36000 + }, + { + "id": "ominous_wind", + "type": "SPELL", + "name": "Ominous Wind", + "description": "A whistling wind gusts past your shoulder in the direction you've pointed. It creates a fearful effect in your foes.", + "valid_targets": [ "hostile", "ground" ], + "effect": "attack", + "effect_str": "morale", + "shape": "cone", + "affected_body_parts": [ "torso" ], + "max_level": 20, + "min_damage": -20, + "max_damage": -60, + "damage_increment": 2, + "min_aoe": 2, + "max_aoe": 10, + "aoe_increment": 2, + "min_range": 1, + "max_range": 1, + "min_duration": 1000, + "max_duration": 5000, + "duration_increment": 1000, + "base_casting_time": 200, + "base_energy_cost": 200, + "energy_source": "MANA", + "difficulty": 0, + "flags": [ "LOUD", "NO_HANDS", "NO_LEGS" ] + }, + { + "id": "pushing_wind", + "type": "SPELL", + "name": "Pushing Wind", + "description": "Shove something away with a burst of elemental air.", + "message": "You hurl your target away.", + "valid_targets": [ "ally", "hostile", "item", "ground" ], + "skill": "deduction", + "flags": [ "CONCENTRATE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "effect": "directed_push", + "shape": "cone", + "difficulty": 2, + "max_level": { "math": [ "int_to_level(1)" ] }, + "damage_type": "bashing", + "min_damage": { "math": [ "( (u_val('spell_level', 'spell: pushing_wind') * 0.25) + 2) * (scaling_factor(u_val('dexterity') ) )" ] }, + "max_damage": { "math": [ "( (u_val('spell_level', 'spell: pushing_wind') * 0.25) + 6) * (scaling_factor(u_val('dexterity') ) )" ] }, + "min_range": { "math": [ "( (u_val('spell_level', 'spell: pushing_wind') * 1.2) + 1) * (scaling_factor(u_val('dexterity') ) )" ] }, + "max_range": 40, + "energy_source": "MANA", + "base_energy_cost": 100, + "final_energy_cost": 25, + "energy_increment": -5, + "base_casting_time": 50, + "final_casting_time": 10, + "casting_time_increment": -4 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/sylph_mutations.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/sylph_mutations.json new file mode 100644 index 000000000..026e1a2fc --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/sylph_mutations.json @@ -0,0 +1,298 @@ +[ + { + "type": "mutation", + "id": "HOMULLUS_SKIN_1", + "name": { "str": "mannequin skin" }, + "points": 0, + "visibility": 2, + "ugliness": 0, + "description": "Your skin has turned the color of antique dolls. Your skin is now a pearlescent white. This has no gameplay effects.", + "types": [ "skin_tone" ], + "leads_to": [ "HOMULLUS_SKIN_2" ], + "category": [ "HOMULLUS" ] + }, + { + "type": "mutation", + "id": "HOMULLUS_SKIN_2", + "name": { "str": "porcelain skin" }, + "points": 2, + "visibility": 10, + "ugliness": -3, + "description": "Your skin has smoothed and all blemishes fade quickly away. Somewhat reduces wet effects and is tougher but heals a little slower.", + "types": [ "SKIN" ], + "category": [ "HOMULLUS" ], + "prereqs": [ "HOMULLUS_SKIN_1" ], + "changes_to": [ "HOMULLUS_SKIN_3" ], + "healing_multiplier": 0.9, + "wet_protection": [ + { "part": "head", "ignored": 2 }, + { "part": "leg_l", "ignored": 5 }, + { "part": "leg_r", "ignored": 5 }, + { "part": "foot_l", "ignored": 2 }, + { "part": "foot_r", "ignored": 2 }, + { "part": "arm_l", "ignored": 4 }, + { "part": "arm_r", "ignored": 4 }, + { "part": "hand_l", "ignored": 1 }, + { "part": "hand_r", "ignored": 1 }, + { "part": "torso", "ignored": 10 } + ], + "integrated_armor": [ "integrated_porcelain_skin" ] + }, + { + "type": "mutation", + "id": "HOMULLUS_SKIN_3", + "name": { "str": "latex skin" }, + "points": 3, + "visibility": 10, + "ugliness": -6, + "mixed_effect": true, + "description": "Your skin has become latex like. It provides some additional protection and attractiveness but heals at a much slower rate.", + "types": [ "SKIN" ], + "prereqs": [ "HOMULLUS_SKIN_2" ], + "threshreq": [ "THRESH_HOMULLUS" ], + "category": [ "HOMULLUS" ], + "healing_multiplier": 0.7, + "wet_protection": [ + { "part": "head", "ignored": 5 }, + { "part": "leg_l", "ignored": 16 }, + { "part": "leg_r", "ignored": 16 }, + { "part": "foot_l", "ignored": 5 }, + { "part": "foot_r", "ignored": 5 }, + { "part": "arm_l", "ignored": 14 }, + { "part": "arm_r", "ignored": 14 }, + { "part": "hand_l", "ignored": 4 }, + { "part": "hand_r", "ignored": 4 }, + { "part": "torso", "ignored": 30 } + ], + "integrated_armor": [ "integrated_latex_skin" ] + }, + { + "type": "mutation", + "id": "SYLPH_SKIN_1", + "name": { "str": "sylph skin" }, + "points": 0, + "visibility": 2, + "ugliness": 0, + "description": "Your skin has turned the rolling grey of the clouds. Your skin is now an ever-shifting color of clouds shifting from stormy to rainy to barely there. This has no gameplay effects.", + "types": [ "skin_tone" ], + "leads_to": [ "SYLPH_SKIN_2" ], + "category": [ "SYLPH" ] + }, + { + "type": "mutation", + "id": "SYLPH_SKIN_2", + "name": { "str": "cloud skin" }, + "points": 2, + "visibility": 5, + "ugliness": 3, + "description": "Your skin is clearly separate from the air around you but has become its own weather system. If someone reaches out and touches you, they will clearly feel you but you look like someone might reach right through you.", + "types": [ "SKIN" ], + "category": [ "SYLPH" ], + "prereqs": [ "SYLPH_SKIN_1" ], + "changes_to": [ "SYLPH_SKIN_3" ], + "wet_protection": [ + { "part": "head", "ignored": 2 }, + { "part": "leg_l", "ignored": 5 }, + { "part": "leg_r", "ignored": 5 }, + { "part": "foot_l", "ignored": 2 }, + { "part": "foot_r", "ignored": 2 }, + { "part": "arm_l", "ignored": 4 }, + { "part": "arm_r", "ignored": 4 }, + { "part": "hand_l", "ignored": 1 }, + { "part": "hand_r", "ignored": 1 }, + { "part": "torso", "ignored": 10 } + ], + "integrated_armor": [ "integrated_cloud_skin" ] + }, + { + "type": "mutation", + "id": "SYLPH_SKIN_3", + "name": { "str": "storm skin" }, + "points": 3, + "visibility": 10, + "ugliness": 4, + "mixed_effect": true, + "description": "Your skin is a roiling storm. Your flexibility is greatly increased, your ability to ignore temperatures hot and cold have greatly increased but your ability to carry objects has been reduced.", + "types": [ "SKIN" ], + "prereqs": [ "SYLPH_SKIN_2" ], + "threshreq": [ "THRESH_SYLPH" ], + "category": [ "SYLPH" ], + "wet_protection": [ + { "part": "head", "ignored": 5 }, + { "part": "leg_l", "ignored": 16 }, + { "part": "leg_r", "ignored": 16 }, + { "part": "foot_l", "ignored": 5 }, + { "part": "foot_r", "ignored": 5 }, + { "part": "arm_l", "ignored": 14 }, + { "part": "arm_r", "ignored": 14 }, + { "part": "hand_l", "ignored": 4 }, + { "part": "hand_r", "ignored": 4 }, + { "part": "torso", "ignored": 30 } + ], + "integrated_armor": [ "integrated_storm_skin" ] + }, + { + "type": "mutation", + "id": "BREATHE_WO_AIR", + "name": { "str": "Breathe Without Air" }, + "points": 1, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Sylph gains the ability to temporarily breathe without oxygen. This will prevent damage from a lack of oxygen for a short window.", + "category": [ "SYLPH" ], + "spells_learned": [ [ "breathe_wo_air", 1 ] ], + "//": "Needs an activated ability that affects the hidden oxygen stat." + }, + { + "type": "mutation", + "id": "SYLPH_EYES", + "name": { "str": "Sylph Eyes" }, + "points": 1, + "visibility": 2, + "ugliness": 0, + "description": "Upon gaining this ability the Sylph's eyes begin reflecting their mood with lightning and storms when angry and clear skies when happy. Glare no longer impacts them.", + "category": [ "SYLPH" ], + "integrated_armor": [ "integrated_sylph_eyes" ] + }, + { + "type": "mutation", + "id": "CLAP_OF_THUNDER", + "name": { "str": "Clap of Thunder" }, + "points": 1, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Sylph gains the ability to create a loud clap of thunder noise at a distance.", + "category": [ "SYLPH" ], + "spells_learned": [ [ "clap_of_thunder", 1 ] ] + }, + { + "type": "mutation", + "id": "OMINOUS_WIND", + "name": { "str": "Ominous Wind" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Sylph gains the ability to summon and ominous wind that damages sapient creatures morale.", + "category": [ "SYLPH" ], + "spells_learned": [ [ "ominous_wind", 1 ] ] + }, + { + "type": "mutation", + "id": "SLOWFALL", + "name": { "str": "Slow Fall" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Sylph ceases to fall at speeds that would damage themselves, no matter how high the fall is.", + "category": [ "SYLPH" ], + "flags": [ "FEATHER_FALL" ] + }, + { + "type": "mutation", + "id": "SLYPH_RESIST_COLD", + "name": { "str": "Resist Cold" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "The Sylph gains a resistance to cold and cold based damage.", + "changes_to": "SLYPH_RESIST_COLD2", + "enchantments": [ + { + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 15 }, { "value": "ARMOR_COLD", "add": -10 } ] + } + ], + "category": [ "SYLPH" ] + }, + { + "type": "mutation", + "id": "SLYPH_RESIST_COLD2", + "name": { "str": "Born of a Gale" }, + "points": 6, + "visibility": 0, + "ugliness": 0, + "description": "The Sylph gains a resistance to cold and cold based damage.", + "changes_to": "SLYPH_RESIST_COLD3", + "enchantments": [ + { + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 45 }, { "value": "ARMOR_COLD", "multiply": -0.75 } ] + } + ], + "category": [ "SYLPH" ] + }, + { + "type": "mutation", + "id": "SLYPH_RESIST_COLD3", + "name": { "str": "Dancing On Winter Winds" }, + "points": 9, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "SLYPH_RESIST_COLD2" ], + "description": "The sylph is nearly immune to mundane cold and heavily resistant to cold-based damage.", + "category": [ "SYLPH" ], + "threshreq": [ "THRESH_SYLPH" ], + "enchantments": [ + { + "condition": "ALWAYS", + "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 150 }, { "value": "ARMOR_COLD", "multiply": -0.75 } ] + } + ] + }, + { + "type": "mutation", + "id": "SYLPH_CULTIVATE_GOBLIN_FRUIT", + "name": { "str": "Cultivate Goblin Fruit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "PUSHING_WIND" ], + "description": "Upon gaining this ability the Sylph gains the ability to grow a goblin fruit when outdoors and the wind is blowing strongly.", + "category": [ "SYLPH" ], + "spells_learned": [ [ "sylph_cultivate_goblin_fruit", 1 ] ] + }, + { + "type": "mutation", + "id": "PUSHING_WIND", + "name": { "str": "Pushing Wind" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "The Sylph learns how to use the wind to push their opponents.", + "category": [ "SYLPH" ], + "spells_learned": [ [ "pushing_wind", 1 ] ] + }, + { + "type": "mutation", + "id": "ELECTRICAL_EMISSIONS", + "name": { "str": "Electrical Emissions" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Sylphs often develop electrical emissions that can culminate in lightning bolts.", + "category": [ "SYLPH" ], + "spells_learned": [ [ "zap_electrical_emission", 1 ] ] + }, + { + "type": "mutation", + "id": "ELECTRICAL_FIELD", + "name": { "str": "Electrical Field" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Sylph gains the ability to summon electrical fields.", + "category": [ "SYLPH" ], + "spells_learned": [ [ "electrical_field", 1 ] ] + }, + { + "type": "mutation", + "id": "air_sprite", + "name": { "str": "Summon Air Sprite" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Sylph gains the ability to summon an air sprite.", + "category": [ "SYLPH" ], + "spells_learned": [ [ "summon_air_sprite", 1 ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/undine_eocs.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/undine_eocs.json new file mode 100644 index 000000000..c947da18e --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/undine_eocs.json @@ -0,0 +1,99 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_COMPLETED_ROLL_REMAINDER_ELEMENTAL_RECIPE", + "effect": { "u_message": "These are all the ways you can alter these elements now." } + }, + { + "type": "effect_on_condition", + "id": "EOC_SUCCESFUL_ROLL_REMAINDER_ELEMENTAL_RECIPE", + "effect": { "u_message": "You learn how to alter an element." } + }, + { + "type": "effect_on_condition", + "id": "EOC_SALTWATER_TO_FRESHWATER", + "condition": { "u_has_trait": "SALTWATER_TO_FRESHWATER" }, + "effect": [ + { + "u_roll_remainder": [ "salt_water_from_water", "water_from_salt_water" ], + "type": "recipe", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER_ELEMENTAL_RECIPE" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_ELEMENTAL_RECIPE" ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_FOUL_WATER", + "condition": { "u_has_trait": "FOUL_WATER" }, + "effect": [ + { + "u_roll_remainder": [ "water_from_water_clean", "water_clean_from_water" ], + "type": "recipe", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER_ELEMENTAL_RECIPE" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_ELEMENTAL_RECIPE" ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIQUID_TO_WATER", + "condition": { "u_has_trait": "LIQUID_TO_WATER" }, + "effect": [ + { + "u_roll_remainder": [ "water_from_liquid" ], + "type": "recipe", + "true_eocs": [ "EOC_SUCCESFUL_ROLL_REMAINDER_ELEMENTAL_RECIPE" ], + "false_eocs": [ "EOC_COMPLETED_ROLL_REMAINDER_ELEMENTAL_RECIPE" ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_UNDINE_GOBLIN_FRUIT", + "condition": { + "or": [ + { "u_is_on_terrain": "t_water_dp" }, + { "u_is_on_terrain": "t_water_sh" }, + { "u_is_on_terrain": "t_swater_dp" }, + { "u_is_on_terrain": "t_swater_dp_underground" }, + { "u_is_on_terrain": "t_water_dp_underground" }, + { "u_is_on_terrain": "t_water_pool" }, + { "u_is_on_terrain": "t_water_pool_outdoors" }, + { "u_is_on_terrain": "t_swater_dp_underground" }, + { "u_is_on_terrain": "t_water_hot" }, + { "u_is_on_terrain": "t_water_murky" }, + { "u_is_on_terrain": "t_water_sh_underground" }, + { "u_is_on_terrain": "t_swater_dp_underground" }, + { "u_is_on_terrain": "t_swater_sh_underground" }, + { "u_is_on_terrain": "t_swater_sh" }, + { "u_is_on_terrain": "t_water_pool_shallow" }, + { "u_is_on_terrain": "t_water_pool_shallow_outdoors" }, + { "u_is_on_terrain": "t_water_moving_dp" }, + { "u_is_on_terrain": "t_water_moving_dp_underground" }, + { "u_is_on_terrain": "t_water_sh_murky_underground" }, + { "u_at_om_location": "generic_river_bank" }, + { "u_at_om_location": "generic_river" }, + { "u_at_om_location": "river_center" }, + { "u_at_om_location": "river" }, + { "u_at_om_location": "river_c_not_ne" }, + { "u_at_om_location": "river_c_not_nw" }, + { "u_at_om_location": "river_c_not_se" }, + { "u_at_om_location": "river_c_not_sw" }, + { "u_at_om_location": "river_ne" }, + { "u_at_om_location": "river_se" }, + { "u_at_om_location": "river_sw" }, + { "u_at_om_location": "river_nw" }, + { "u_at_om_location": "lake_shore" }, + { "u_at_om_location": "lake_surface" } + ] + }, + "effect": [ { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } ], + "false_effect": [ + { + "u_message": "You must be standing in water or near a large body of water to call forth a goblin fruit.", + "type": "bad" + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/undine_mutation_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/undine_mutation_spells.json new file mode 100644 index 000000000..5e488d04a --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/undine_mutation_spells.json @@ -0,0 +1,335 @@ +[ + { + "type": "enchantment", + "id": "undine_resist_acid", + "condition": "ALWAYS", + "values": [ { "value": "ARMOR_ACID", "multiply": -0.25 } ] + }, + { + "type": "enchantment", + "id": "undine_resist_fire", + "condition": "ALWAYS", + "values": [ { "value": "ARMOR_HEAT", "multiply": -0.5 } ] + }, + { + "id": "create_fog", + "type": "SPELL", + "name": "Create Fog", + "description": "Summons a field of fog.", + "message": "whoosh!", + "valid_targets": [ "hostile", "ground", "self", "ally" ], + "skill": "deduction", + "flags": [ "LOUD", "NO_PROJECTILE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "min_aoe": 2, + "max_aoe": 9, + "aoe_increment": 0.5, + "damage_type": "cold", + "difficulty": 2, + "field_id": "fd_fog", + "min_field_intensity": 2, + "max_field_intensity": 8, + "field_intensity_increment": 1, + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_range": { "math": [ "( (u_val('spell_level', 'spell: create_fog') * 1.5) + 2) * (scaling_factor(u_val('dexterity') ) )" ] }, + "max_range": 70, + "energy_source": "MANA", + "base_energy_cost": 100, + "final_energy_cost": 40, + "energy_increment": -6, + "base_casting_time": 100, + "final_casting_time": 35, + "casting_time_increment": -4, + "sound_type": "combat", + "sound_description": "sussurus!", + "learn_spells": { "fog_bank": 5 } + }, + { + "id": "fog_bank", + "type": "SPELL", + "name": "Fog Bank", + "description": "Summons a bank of fog.", + "message": "whoosh!", + "valid_targets": [ "hostile", "ground", "self", "ally" ], + "skill": "deduction", + "flags": [ "LOUD", "NO_PROJECTILE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "min_aoe": 3, + "max_aoe": 13, + "aoe_increment": 0.5, + "damage_type": "cold", + "difficulty": 2, + "field_id": "fd_fog", + "min_field_intensity": 6, + "max_field_intensity": 10, + "field_intensity_increment": 1, + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_range": { "math": [ "( (u_val('spell_level', 'spell: fog_bank') * 1.5) + 2) * (scaling_factor(u_val('dexterity') ) )" ] }, + "max_range": 70, + "energy_source": "MANA", + "base_energy_cost": 300, + "final_energy_cost": 125, + "energy_increment": -25, + "base_casting_time": 100, + "final_casting_time": 35, + "casting_time_increment": -4, + "sound_type": "combat", + "sound_description": "whoosh!" + }, + { + "id": "grant_buoyancy", + "type": "SPELL", + "name": "Grant buoyancy", + "description": "You become more buoyant.", + "valid_targets": [ "self" ], + "min_duration": 6000, + "max_duration": 360000, + "duration_increment": 17700, + "max_level": 20, + "energy_source": "MANA", + "base_energy_cost": 400, + "energy_increment": -5.0, + "final_energy_cost": 300, + "base_casting_time": 250, + "difficulty": 5, + "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], + "shape": "blast", + "effect": "attack", + "effect_str": "buoyant" + }, + { + "id": "acidic_mist", + "type": "SPELL", + "name": "Acidic Mist", + "description": "Summons an acidic mist.", + "message": "whoosh!", + "valid_targets": [ "hostile", "ground", "self", "ally" ], + "skill": "deduction", + "flags": [ "LOUD", "NO_PROJECTILE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "min_aoe": 1, + "max_aoe": 7, + "aoe_increment": 0.5, + "damage_type": "acid", + "difficulty": 2, + "field_id": "fd_acidic_mist", + "min_field_intensity": 1, + "max_field_intensity": 3, + "field_intensity_increment": 0.3, + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_range": { "math": [ "( (u_val('spell_level', 'spell: acidic_mist') * 1.5) + 2) * (scaling_factor(u_val('dexterity') ) )" ] }, + "max_range": 70, + "energy_source": "MANA", + "base_energy_cost": 140, + "final_energy_cost": 80, + "energy_increment": -6, + "base_casting_time": 100, + "final_casting_time": 35, + "casting_time_increment": -4, + "sound_type": "combat", + "sound_description": "sussurus!", + "learn_spells": { "deadly_mist": 9 } + }, + { + "id": "deadly_mist", + "type": "SPELL", + "name": "Deadly Mist", + "description": "Summons a deadly mist.", + "message": "whoosh!", + "valid_targets": [ "hostile", "ground", "self", "ally" ], + "skill": "deduction", + "flags": [ "LOUD", "NO_PROJECTILE", "RANDOM_DAMAGE", "NO_HANDS", "NO_LEGS" ], + "effect": "attack", + "shape": "blast", + "min_aoe": 3, + "max_aoe": 13, + "aoe_increment": 0.5, + "damage_type": "acid", + "difficulty": 2, + "field_id": "fd_acidic_mist", + "min_field_intensity": 3, + "max_field_intensity": 5, + "field_intensity_increment": 0.2, + "max_level": { "math": [ "dex_to_level(1)" ] }, + "min_range": { "math": [ "( (u_val('spell_level', 'spell: deadly_mist') * 1.5) + 2) * (scaling_factor(u_val('dexterity') ) )" ] }, + "max_range": 70, + "energy_source": "MANA", + "base_energy_cost": 500, + "final_energy_cost": 300, + "energy_increment": -25, + "base_casting_time": 100, + "final_casting_time": 35, + "casting_time_increment": -4, + "sound_type": "combat", + "sound_description": "whoosh!" + }, + { + "id": "water_pocket", + "type": "SPELL", + "name": "Water Pocket", + "description": "This spell summons a pocket made of churning water that contains an air bubble inside and prevents any items in it from being damaged by water.", + "valid_targets": [ "none" ], + "skill": "deduction", + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "water_pocket", + "shape": "blast", + "base_casting_time": 250, + "base_energy_cost": 300, + "min_duration": 360000, + "max_duration": 9000000, + "duration_increment": 360000, + "difficulty": 4, + "max_level": 20, + "flags": [ "NO_HANDS", "NO_LEGS", "SOMATIC" ], + "energy_source": "MANA" + }, + { + "id": "undine_cultivate_goblin_fruit", + "type": "SPELL", + "name": "Cultivate Goblin Fruit", + "description": "You may spin a bit of fae magic into the waters, bringing forth a goblin fruit. Goblin fruit have a variety of effects, never predictable but always at least somewhat beneficial. This spell may only be cast outdoors in natural surroundings.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_UNDINE_GOBLIN_FRUIT", + "shape": "blast", + "flags": [ "CONCENTRATE", "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "dex_to_level(1)" ] }, + "difficulty": 8, + "base_casting_time": 180000, + "final_casting_time": 100, + "casting_time_increment": -6000, + "energy_source": "MANA", + "base_energy_cost": 450 + }, + { + "id": "wave_rider", + "type": "SPELL", + "name": "Summon Wave Rider", + "description": "You summon a water based vehicle to propel you across the waves.", + "valid_targets": [ "ground" ], + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE" ], + "effect": "summon_vehicle", + "energy_source": "MANA", + "effect_str": "wave_rider_kayak", + "shape": "blast", + "difficulty": 5, + "max_level": 20, + "base_casting_time": 1000, + "base_energy_cost": 1000, + "min_range": 1, + "max_range": 10, + "range_increment": 1, + "//": "40 minutes + 10 minutes / level; 4 hours at max level", + "min_duration": 240000, + "max_duration": 1440000, + "duration_increment": 60000 + }, + { + "id": "summon_fish", + "type": "SPELL", + "name": "Summon Fish", + "description": "A fish arrives from somewhere. It may not be that useful on land.", + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 8, + "damage_increment": 0.5, + "min_range": 1, + "max_range": 15, + "range_increment": 1, + "max_level": 35, + "difficulty": 3, + "effect": "summon", + "effect_str": "GROUP_FISH", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 50, + "base_casting_time": 3000, + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "SPAWN_GROUP", "HOSTILE_50" ], + "min_duration": 36000, + "max_duration": 1080000, + "duration_increment": 36000, + "learn_spells": { "charm_fish": 9 } + }, + { + "id": "charm_fish", + "type": "SPELL", + "name": "Charm Fish", + "description": "A friendly fish arrives from somewhere. It may not be that useful on land.", + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 8, + "min_range": 1, + "max_range": 15, + "range_increment": 1, + "damage_increment": 0.5, + "max_level": 35, + "difficulty": 3, + "effect": "summon", + "effect_str": "GROUP_FISH", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 80, + "base_casting_time": 3000, + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "SPAWN_GROUP" ], + "min_duration": 36000, + "max_duration": 1080000, + "duration_increment": 36000, + "learn_spells": { "summon_kraken": 9 } + }, + { + "id": "summon_kraken", + "type": "SPELL", + "name": "Summon Kraken", + "description": "A friendly kraken arrives from somewhere. It may not be that useful on land.", + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 8, + "damage_increment": 0.5, + "min_range": 1, + "max_range": 15, + "range_increment": 1, + "max_level": 35, + "difficulty": 3, + "effect": "summon", + "effect_str": "GROUP_KRAKEN_SURFACE", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 400, + "base_casting_time": 3000, + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "SPAWN_GROUP" ], + "min_duration": 36000, + "max_duration": 1080000, + "duration_increment": 36000 + }, + { + "id": "summon_water_sprite", + "type": "SPELL", + "name": "Summon Water Sprite", + "description": "A lesser water elemental is summoned to support you.", + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 8, + "damage_increment": 0.5, + "min_range": 1, + "max_range": 15, + "range_increment": 1, + "max_level": 35, + "difficulty": 3, + "effect": "summon", + "effect_str": "GROUP_GENIUS_UNDINE", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 200, + "base_casting_time": 3000, + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "SPAWN_GROUP", "SPAWN_GROUP" ], + "min_duration": 36000, + "max_duration": 1080000, + "duration_increment": 36000 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/undine_mutations.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/undine_mutations.json new file mode 100644 index 000000000..cf98586dc --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/paraclesians/undine_mutations.json @@ -0,0 +1,250 @@ +[ + { + "type": "mutation", + "id": "UNDINE_SKIN_1", + "name": { "str": "Undine Skin" }, + "points": 0, + "visibility": 2, + "ugliness": 0, + "description": "Your skin has turned the color of the Mediterranean Sea. Your skin is now a brilliant turquoise color. This has no gameplay effects.", + "types": [ "skin_tone" ], + "leads_to": [ "UNDINE_SKIN_2" ], + "category": [ "UNDINE" ] + }, + { + "type": "mutation", + "id": "UNDINE_SKIN_2", + "name": { "str": "Liquid Skin" }, + "points": 2, + "visibility": 10, + "ugliness": 3, + "description": "Your skin has become vaguely gelatinous. Provides some extra bash defense and immunity to wet effects.", + "types": [ "SKIN" ], + "category": [ "UNDINE" ], + "prereqs": [ "UNDINE_SKIN_1" ], + "changes_to": [ "UNDINE_SKIN_3" ], + "wet_protection": [ + { "part": "head", "good": 7 }, + { "part": "leg_l", "good": 21 }, + { "part": "leg_r", "good": 21 }, + { "part": "foot_l", "good": 6 }, + { "part": "foot_r", "good": 6 }, + { "part": "arm_l", "good": 19 }, + { "part": "arm_r", "good": 19 }, + { "part": "hand_l", "good": 5 }, + { "part": "hand_r", "good": 5 }, + { "part": "torso", "good": 40 } + ], + "integrated_armor": [ "integrated_gelatinous_skin" ] + }, + { + "type": "mutation", + "id": "UNDINE_SKIN_3", + "name": { "str": "Wave Skin" }, + "points": 3, + "visibility": 10, + "ugliness": 4, + "mixed_effect": true, + "description": "Your skin is completely replaced by magickal water. You have become immune to acid effects.", + "types": [ "SKIN" ], + "flags": [ "ACID_IMMUNE" ], + "prereqs": [ "UNDINE_SKIN_2" ], + "threshreq": [ "THRESH_UNDINE" ], + "category": [ "UNDINE" ], + "wet_protection": [ + { "part": "head", "good": 7 }, + { "part": "leg_l", "good": 21 }, + { "part": "leg_r", "good": 21 }, + { "part": "foot_l", "good": 6 }, + { "part": "foot_r", "good": 6 }, + { "part": "arm_l", "good": 19 }, + { "part": "arm_r", "good": 19 }, + { "part": "hand_l", "good": 5 }, + { "part": "hand_r", "good": 5 }, + { "part": "torso", "good": 40 } + ], + "integrated_armor": [ "integrated_wave_skin" ] + }, + { + "type": "mutation", + "id": "CREATE_FOG", + "name": { "str": "Create Fog" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Undine gains the ability to create a cloud of fog.", + "category": [ "UNDINE" ], + "spells_learned": [ [ "create_fog", 1 ] ] + }, + { + "type": "mutation", + "id": "GRANT_BUOYANCY", + "name": { "str": "Grant Buoyancy" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Undine gains the ability to grant one person the ability to float and swim.", + "category": [ "UNDINE" ], + "spells_learned": [ [ "grant_buoyancy", 1 ] ] + }, + { + "type": "mutation", + "id": "ACIDIC_MIST", + "name": { "str": "Acidic Mist" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Undine gains the ability to create an acidic mist that damages any creatures inside it.", + "category": [ "UNDINE" ], + "spells_learned": [ [ "acidic_mist", 1 ] ] + }, + { + "type": "mutation", + "id": "UNDINE_CULTIVATE_GOBLIN_FRUIT", + "name": { "str": "Cultivate Goblin Fruit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "prereqs": [ "SALTWATER_TO_FRESHWATER" ], + "description": "Upon gaining this ability the Undine gains the ability to grow a goblin fruit from a natural water source.", + "category": [ "UNDINE" ], + "spells_learned": [ [ "undine_cultivate_goblin_fruit", 1 ] ] + }, + { + "type": "mutation", + "id": "SALTWATER_TO_FRESHWATER", + "name": { "str": "Saltwater to Freshwater" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Undine can activate this trait to learn how to convert salt water into freshwater and vice versa.", + "category": [ "UNDINE" ], + "active": true, + "activated_eocs": [ "EOC_SALTWATER_TO_FRESHWATER" ] + }, + { + "type": "mutation", + "id": "BREATH_UNDERWATER", + "name": { "str": "Breathe Underwater" }, + "points": 2, + "visibility": 0, + "ugliness": 0, + "description": "You've gained the ability to breathe underwater.", + "category": [ "UNDINE" ], + "flags": [ "GILLS" ] + }, + { + "type": "mutation", + "id": "FOUL_WATER", + "name": { "str": "Foul Water" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Undine can activate this trait to gain the ability to foul water, making it murky and possibly infested. Conversely, the Undine can also cleanse water that is not already clean.", + "category": [ "UNDINE" ], + "active": true, + "activated_eocs": [ "EOC_FOUL_WATER" ] + }, + { + "type": "mutation", + "id": "LIQUID_TO_WATER", + "name": { "str": "Various liquids to Freshwater" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Undine can activate this trait to gain the ability to convert various liquids into freshwater.", + "category": [ "UNDINE" ], + "active": true, + "activated_eocs": [ "EOC_LIQUID_TO_WATER" ] + }, + { + "type": "mutation", + "id": "RESIST_FIRE", + "name": { "str": "Resist Fire" }, + "points": 2, + "visibility": 0, + "ugliness": 0, + "description": "You've gained a resistance to fire.", + "category": [ "UNDINE" ], + "enchantments": [ "undine_resist_fire" ] + }, + { + "type": "mutation", + "id": "RESIST_ACID", + "name": { "str": "Resist Acid" }, + "points": 2, + "visibility": 0, + "ugliness": 0, + "description": "You've gained a resistance to acid.", + "category": [ "UNDINE" ], + "enchantments": [ "undine_resist_acid" ] + }, + { + "type": "mutation", + "id": "WAVE_RIDER", + "name": { "str": "Wave Rider" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "description": "The waves themselves answer your call and create a special vehicle for you to travel across the surface of water.", + "category": [ "UNDINE" ], + "spells_learned": [ [ "wave_rider", 1 ] ] + }, + { + "type": "mutation", + "id": "WATER_SEALED", + "name": { "str": "Water Sealed" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "description": "Allows the Undine to create a special pocket that protects things inside of it from water damage.", + "category": [ "UNDINE" ], + "spells_learned": [ [ "water_pocket", 1 ] ] + }, + { + "type": "mutation", + "id": "SUMMON_RAIN", + "name": { "str": "Summon Rain" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "valid": false, + "description": "Allows the Undine to change the weather to rain. (Currently not working)", + "category": [ "UNDINE" ], + "//": "Make spell. Requires C++" + }, + { + "type": "mutation", + "id": "SUMMON_FISH", + "name": { "str": "Summon Fish" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "description": "Allows the Undine to summon fish and eventually charm them. Practice this enough and you will be able to befriend sea monsters.", + "category": [ "UNDINE" ], + "spells_learned": [ [ "summon_fish", 1 ] ] + }, + { + "type": "mutation", + "id": "UNDINE_EYES", + "name": { "str": "Undine Eyes" }, + "points": 1, + "visibility": 2, + "ugliness": 0, + "description": "Upon gaining this ability the Undine's eyes begin reflecting their mood with colors of the deep waters, pitch black when angry or sad and green-blue when pleased. Glare no longer impacts them.", + "category": [ "SYLPH" ], + "integrated_armor": [ "integrated_undine_eyes" ] + }, + { + "type": "mutation", + "id": "SUMMON_WATER_ELEMENTAL", + "name": { "str": "Summon Water Elemental" }, + "points": 0, + "visibility": 0, + "ugliness": 0, + "description": "Allows the Undine to summon a minor water elemental to support you in the world for a short time.", + "category": [ "UNDINE" ], + "spells_learned": [ [ "summon_water_sprite", 1 ] ], + "//": "Eventually add further spells in this area with more powerful elementals." + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/spells.json index 5ee2d29ec..687109100 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/spells.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/spells.json @@ -81,5 +81,18 @@ "components": "spell_components_human_blood", "flags": [ "SILENT", "NO_LEGS", "NO_FAIL" ], "difficulty": 0 + }, + { + "id": "vampire_map_real", + "type": "SPELL", + "name": "Commune with children of the night Real Spell", + "description": "This is the spell that actually fires when you cast Commune with Children of the Night. It's a bug if you have it.", + "valid_targets": [ "none" ], + "message": "The secrets of the living earth are revealed to you.", + "flags": [ "NO_HANDS", "SILENT" ], + "effect": "map", + "shape": "blast", + "max_level": 1, + "min_aoe": { "math": [ "( 7 + (u_val('spell_level', 'spell: vampire_reveal_world_map') * 2.2) )" ] } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/temporary.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/temporary.json new file mode 100644 index 000000000..1e5c44510 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/temporary.json @@ -0,0 +1,27 @@ +[ + { + "type": "mutation", + "id": "GOBLIN_FRUIT_GIANT_GROWTH", + "name": { "str": "Giant-sized" }, + "//": "Mostly copied from Huge with some Tough mixed in. Strength bonus includes improvements from STR_UP mutation that's normally required for LARGE", + "points": 2, + "visibility": 10, + "ugliness": 8, + "mixed_effect": true, + "description": "Eating that goblin fruit has made you grow to enormous size!", + "flags": [ "HUGE" ], + "passive_mods": { "str_mod": 6 }, + "restricts_gear": [ "torso", "leg_l", "leg_r", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r" ], + "stomach_size_multiplier": 2.0, + "weight_capacity_modifier": 1.1, + "cardio_multiplier": 1.25, + "social_modifiers": { "intimidate": 15 }, + "enchantments": [ "ench_giant_growth_size_bonuses" ] + }, + { + "type": "enchantment", + "id": "ench_giant_growth_size_bonuses", + "condition": "ALWAYS", + "values": [ { "value": "MAX_HP", "multiply": 0.4 } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/vampire_trait_eocs.json b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/vampire_trait_eocs.json index 10943c16f..6252df3a5 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/mutations/vampire_trait_eocs.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/mutations/vampire_trait_eocs.json @@ -2,7 +2,7 @@ { "type": "effect_on_condition", "id": "EOC_EYEGLEAM_activated", - "condition": { "compare_int": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": -500 } ] }, + "condition": { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": -500 } ] }, "effect": [ { "u_assign_activity": "ACT_GENERIC_EOC", "duration": "1 seconds" }, { "arithmetic": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "-=", { "const": 100 } ] }, @@ -26,7 +26,7 @@ { "type": "effect_on_condition", "id": "EOC_STAMINAFORBLOOD_activated", - "condition": { "compare_int": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": -500 } ] }, + "condition": { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": -500 } ] }, "effect": [ { "u_assign_activity": "ACT_GENERIC_EOC", "duration": "1 seconds" }, { "arithmetic": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "-=", { "const": 100 } ] }, @@ -47,10 +47,21 @@ } ] }, + { + "type": "effect_on_condition", + "id": "EOC_COMMUNE_NIGHT_MAP", + "condition": { "and": [ { "math": [ "u_val('pos_z')", ">=", "0" ] }, { "not": "is_day" }, "u_is_outside" ] }, + "effect": [ + { "u_cast_spell": { "id": "vampire_map_real" } }, + { "arithmetic": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "-=", { "const": 100 } ] }, + { "u_message": "The children of the night tell you what features of the map are nearby." } + ], + "false_effect": [ { "u_message": "Without the ability to howl into the wilds of the night, there is no response." } ] + }, { "type": "effect_on_condition", "id": "EOC_COAGULANTWEAVE_activated", - "condition": { "compare_int": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": 500 } ] }, + "condition": { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": 500 } ] }, "effect": [ { "u_assign_activity": "ACT_GENERIC_EOC", "duration": "1 seconds" }, { "arithmetic": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "-=", { "const": 500 } ] }, @@ -74,7 +85,7 @@ { "type": "effect_on_condition", "id": "EOC_BLOODHEAL_activated", - "condition": { "compare_int": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": -9500 } ] }, + "condition": { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": -9500 } ] }, "effect": [ { "u_assign_activity": "ACT_GENERIC_EOC", "duration": "1 seconds" }, { "arithmetic": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "-=", { "const": 750 } ] }, @@ -95,7 +106,7 @@ { "type": "effect_on_condition", "id": "EOC_HYPNOTIC_GAZE_activated", - "condition": { "compare_int": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": -500 } ] }, + "condition": { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": -500 } ] }, "effect": [ { "u_assign_activity": "ACT_GENERIC_EOC", "duration": "1 seconds" }, { "arithmetic": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "-=", { "const": 150 } ] }, @@ -116,7 +127,7 @@ { "type": "effect_on_condition", "id": "EOC_BLOODHASTE_activated", - "condition": { "compare_int": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": -1500 } ] }, + "condition": { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">=", { "const": -1500 } ] }, "effect": [ { "u_assign_activity": "ACT_GENERIC_EOC", "duration": "1 seconds" }, { "arithmetic": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "-=", { "const": 750 } ] }, diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/npc/boann.json b/data/Mainline_mods/Mods/Xedra_Evolved/npc/boann.json new file mode 100644 index 000000000..76fe656f6 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/npc/boann.json @@ -0,0 +1,118 @@ +[ + { + "type": "npc", + "id": "boann", + "name_unique": "Lady Boann", + "class": "xe_fae_noblewoman_boann", + "attitude": 0, + "mission": 7, + "chat": "TALK_BOANN_1", + "mission_offered": "MISSION_BRING_BOANN_JABBERWOCK_HEART", + "gender": "female" + }, + { + "type": "npc_class", + "id": "xe_fae_noblewoman_boann", + "name": "fae noblewoman", + "job_description": "I'm in charge of the faeries of my court.", + "common": false, + "traits": [ [ "hair_blond_long", 100 ], [ "SKIN_DARK", 100 ] ], + "bonus_dex": { "rng": [ 4, 10 ] }, + "bonus_int": { "rng": [ 2, 5 ] }, + "skills": [ + { "skill": "ALL", "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -4 } ] } ] } }, + { "skill": "melee", "bonus": { "rng": [ 1, 5 ] } }, + { "skill": "firstaid", "bonus": { "rng": [ 1, 4 ] } }, + { "skill": "cooking", "bonus": { "rng": [ 6, 8 ] } } + ] + }, + { + "type": "talk_topic", + "id": "TALK_BOANN_1", + "dynamic_line": "I came here with my court when the Hedge between our worlds thinned and the border marches expanded. They came for conquest and I came here for coexistence.", + "responses": [ + { "text": "So you're a good faerie?", "topic": "TALK_BOANN_2" }, + { "text": "How can I join your court?", "topic": "TALK_BOANN_JOIN" }, + { "text": "I'd better get going.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_BOANN_2", + "dynamic_line": "Some of my kind might find that word pejorative, but it's what you've called us for so very long. It had been quite a while since we were last able to come in numbers to this world, until the last few years.", + "responses": [ + { "text": "Why were you able to return?", "topic": "TALK_BOANN_3" }, + { "text": "How can I join your court?", "topic": "TALK_BOANN_JOIN" }, + { "text": "Well those of us who aren't faeries have other places to be now.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_BOANN_3", + "dynamic_line": "The same thing that is causing the portal storms made travel between our worlds easier again. We have to engage in fairly strenous decontamination procedures on our way back but we've had those in place for aeons.", + "responses": [ + { "text": "Decontamination? You can leave here and not worry about the risen dead?", "topic": "TALK_BOANN_4" }, + { "text": "How can I join your court? I want to leave here when you do!", "topic": "TALK_BOANN_JOIN" }, + { "text": "I'm going to head on now.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_BOANN_4", + "dynamic_line": "If we die here, we will rise just like you, we are within the belly of the beast, so to speak here. But yes when we go elsewhere we don't bring this with us, that would be rude.", + "responses": [ + { "text": "Please take me away with you.", "topic": "TALK_BOANN_JOIN" }, + { "text": "I haven't decided if I believe you or not but I'll see you around.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_BOANN_JOIN", + "dynamic_line": "Well you can't just join by asking, you need to accomplish a series of progressively more difficult quests, bringing me trophies and relics proving your worth to join our ranks.", + "responses": [ + { "text": "Do you have a quest for me now?", "topic": "TALK_MISSION_LIST" }, + { "text": "I'm going to head on now.", "topic": "TALK_DONE" } + ] + }, + { + "id": "MISSION_BRING_BOANN_JABBERWOCK_HEART", + "type": "mission_definition", + "name": { "str": "Bring me the heart of a Jabberwock" }, + "goal": "MGOAL_FIND_ITEM", + "difficulty": 8, + "value": 0, + "item": "jabberwock_heart", + "start": { + "assign_mission_target": { + "om_terrain": "forest_thick", + "om_terrain_replace": "forest", + "reveal_radius": 1, + "random": true, + "search_range": 90, + "min_distance": 5, + "z": 0 + }, + "update_mapgen": { "place_monster": [ { "monster": "mon_jabberwock", "x": 11, "y": 11, "target": true } ] } + }, + "end": { + "opinion": { "trust": 2, "value": 2 }, + "effect": [ + { "u_buy_monster": "mon_melian_mantis_mount", "count": 1, "name": "Bladepetal" }, + { "u_spawn_item": "horse_tack", "count": 1 } + ] + }, + "has_generic_rewards": false, + "origins": [ "ORIGIN_SECONDARY" ], + "dialogue": { + "describe": "Kill a great beast in my honor and I'll reward you as a new member of my court.", + "offer": "Prove to me that you have the heart of a knight. Bring me the putrid heart of a Jabberwock.", + "accepted": "I had no doubts in you.", + "rejected": "You may change your mind at a later date.", + "advice": "You will need incredible melee skills to handle this or an impressive gun.", + "inquire": "Have you brought me the favor I requested?", + "success": "I'm pleased to grant you Melian mount of your own.", + "success_lie": "I don't think so…", + "failure": "Quitting already?" + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/npc/draco_dune.json b/data/Mainline_mods/Mods/Xedra_Evolved/npc/draco_dune.json new file mode 100644 index 000000000..052603d58 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/npc/draco_dune.json @@ -0,0 +1,54 @@ +[ + { + "id": "TALK_REFUGEE_Draco_1a", + "type": "talk_topic", + "insert_before_standard_exits": true, + "responses": [ { "text": "Have you seen anything that could help me?", "topic": "TALK_REFUGEE_Draco_changeling_breadcrumb" } ] + }, + { + "id": "TALK_REFUGEE_Draco_changeling_breadcrumb", + "type": "talk_topic", + "dynamic_line": "The last fifteen years or so before the Cataclysm were weirder than the years before that don't you remember? Well anyway before the end of things, I used to travel across New England as a wandering musician earning my keep as I could. There were good times and there were hard times; and once when things were at their hardest I was starving and cold and playing my guitar on the shore of the lake. A swan boat glides up to the shore quiet as a mouse, a tall elegantly dressed man stepped out of the boat and asked me to come play for them at the 'bonum collis'. Being more hungry than I was scared, I went with him.", + "responses": [ { "text": "What happened next?", "topic": "TALK_REFUGEE_Draco_changeling_breadcrumb1" } ] + }, + { + "id": "TALK_REFUGEE_Draco_changeling_breadcrumb1", + "type": "talk_topic", + "dynamic_line": "So I get the boat and it moves smooth as silk across the lake, no sound or vibration but the waves against the hull. I never see anyone or anything guiding the boat or making it move. Anyway we arrived at an island in the lake and as we approached I can hear laughter and music. Once we landed, they had me sign a contract which I'd figured would just be an NDA not to talk about the rich peoples party island. Turns out I signed a contract to play music every night for three months for the price of room and board.", + "responses": [ + { "text": "You've got to be kidding.", "topic": "TALK_REFUGEE_Draco_changeling_breadcrumb2" }, + { "text": "I can't believe this story. Goodbye.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_REFUGEE_Draco_changeling_breadcrumb2", + "type": "talk_topic", + "dynamic_line": "Long story short, I played for them every night like the contract said, it was a good bit better than starving to death. I saw and heard some of the craziest things while I was there and other humans came and made deals and went. They told me that this particular 'sith' had strict rules about how to treat people and that I was quite lucky to be here. It didn't feel like they considered themselves 'people'. Anyway when my contract was up they said they'd quite enjoyed my time with them and gave me some gifts to help me get along once I'd left their island. When society broke down I thought about heading there to see if they were still there. I chickened out when I realized how far it was compared to my evacuation point. Course, here I am among the unwanted masses, maybe you'll find them there if you decide to go look.", + "responses": [ { "text": "Maybe I'll check it out.", "topic": "TALK_DONE", "effect": { "add_mission": "MISSION_DRACO_FAE" } } ] + }, + { + "id": "MISSION_DRACO_FAE", + "type": "mission_definition", + "name": { "str": "Go check out this island" }, + "description": "This is where the island I agreed to a strange deal is. I wonder if they're still there.", + "goal": "MGOAL_CONDITION", + "difficulty": 3, + "start": { + "assign_mission_target": { "om_terrain": "boann_sidhe_island", "om_special": "Boann's Island", "reveal_radius": 6, "search_range": 360 } + }, + "goal_condition": { "u_has_var": "u_met_boann_sidhe", "type": "general", "context": "meeting", "value": "yes" }, + "value": 5000, + "origins": [ "ORIGIN_SECONDARY" ], + "dialogue": { + "describe": "…", + "offer": "…", + "accepted": "…", + "rejected": "…", + "advice": "…", + "inquire": "Have you checked on them?", + "success": "Good, that's one less thing to worry about.", + "success_lie": "I'm glad to hear they are fine. Why haven't they been by then?", + "failure": "At least you came back with your life…" + } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/npc/mr_lapin.json b/data/Mainline_mods/Mods/Xedra_Evolved/npc/mr_lapin.json index bba4b58cf..fe186ff65 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/npc/mr_lapin.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/npc/mr_lapin.json @@ -2,12 +2,15 @@ { "id": "TALK_WARRENER", "type": "talk_topic", + "insert_before_standard_exits": true, "responses": [ { "text": "What can you tell me about Xedra?", "topic": "TALK_WARRENER_XEDRA" } ] }, { "id": "TALK_WARRENER_XEDRA", "type": "talk_topic", "dynamic_line": "Are you talking about the Zebra agencies? I probably don't know any more than you do. When things started getting weird about a decade ago, all these new departments starting springing up out of Homeland Security. Their badges were just barcodes that if you scanned with your phone would put you in contact with your local law enforcement, who'd vouch for them.", - "responses": [ { "text": "Maybe dinosaurs and rabbits aren't so different.", "topic": "TALK_WARRENER" } ] + "responses": [ + { "text": "I just keep finding references to them, I wondered if anyone else was as well.", "topic": "TALK_WARRENER" } + ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/npc/npc_classes.json b/data/Mainline_mods/Mods/Xedra_Evolved/npc/npc_classes.json index 213382194..099e6181f 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/npc/npc_classes.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/npc/npc_classes.json @@ -15,6 +15,7 @@ "id": "NC_NPC_XE_SPIDER_VICTIM", "name": "Spider Victim", "job_description": "I've been captured by these spider things. Please rescue me!", + "common": false, "skills": [ { "skill": "speech", "bonus": { "rng": [ -3, 3 ] } }, { "skill": "chemistry", "bonus": { "rng": [ -3, 3 ] } }, @@ -54,6 +55,7 @@ "id": "NC_NPC_XE_CAPTURED_DREAMER", "name": "Captured Dreamer", "job_description": "I dreamt of another world and something came and snatched me away from my home.", + "common": false, "skills": [ { "skill": "speech", "bonus": { "rng": [ -3, 3 ] } }, { "skill": "chemistry", "bonus": { "rng": [ -3, 3 ] } }, diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/npc/rubik.json b/data/Mainline_mods/Mods/Xedra_Evolved/npc/rubik.json new file mode 100644 index 000000000..a71747c68 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/npc/rubik.json @@ -0,0 +1,53 @@ +[ + { + "id": "TALK_EXODII_MERCHANT_Talk", + "type": "talk_topic", + "insert_before_standard_exits": true, + "responses": [ + { "text": "What can you tell me about Xedra?", "topic": "TALK_EXODII_MERCHANT_XEDRA" }, + { "text": "What can you tell me about these faeries?", "topic": "TALK_EXODII_MERCHANT_FAE" }, + { + "text": "[DEDUCTION 2] So does that mean the stories I heard about vampires are true as well?", + "condition": { "math": [ "u_skill('deduction')", ">=", "2" ] }, + "topic": "TALK_EXODII_MERCHANT_VAMPIRE" + } + ] + }, + { + "id": "TALK_EXODII_MERCHANT_XEDRA", + "type": "talk_topic", + "dynamic_line": "Ye scuffers 'ere dolly walk through the mirror and butcher hook us and ours. Nevermind the enemy, do these pork loins as if'n the enemy'd nevermind them. Oy, they got their rust shirt and more comin'.", + "//": "The police here travel to different dimensions and hunt Exodii and others. They act like they don't need to worry about the dead rising. They got their just desserts in the Cataclysm and we'll kill anymore we find.", + "responses": [ { "text": "Oh well yeah, damn the man then I guess.", "topic": "TALK_EXODII_MERCHANT_Talk" } ] + }, + { + "id": "TALK_EXODII_MERCHANT_VAMPIRE", + "type": "talk_topic", + "dynamic_line": "Claret drinking brown bread, an' a crew of Renny's, on this mudball. Us un's can't tell if they're part of the enemy or parasites exposed when the enemy rises. Not on every mudball but definitely moar than enough to be a right pain.", + "//": "Blood drinking dead and a group of Renfield's attending to the vampires. They aren't on every world and the exodii don't know why that is.", + "responses": [ + { "text": "Well that's certainly disturbing.", "topic": "TALK_EXODII_MERCHANT_Talk" }, + { + "text": "[DEDUCTION 4 or INT 14 ] Would you have any specialized weapons to use against them?", + "//": "Change to some variable that ties to having encountered vampires previously.", + "condition": { "or": [ { "math": [ "u_skill('deduction')", ">=", "4" ] }, { "u_has_intelligence": 14 } ] }, + "effect": { "u_add_var": "rubik_vampire_weapons", "value": "banger_and_smash" }, + "topic": "TALK_EXODII_MERCHANT_VAMPIRE_GEAR" + } + ] + }, + { + "id": "TALK_EXODII_MERCHANT_FAE", + "type": "talk_topic", + "dynamic_line": "The Good Folk of Aberystwyth? Us 'ave no truck with them, the milk is spoilt, the flesh is hoofshod, the henge holds no peel. Ye'd ken best not their seductions. A trifle better than the enemy.", + "//": "The faeries announced themselves in Rubik's world near what we know as Wales. Exodii mostly avoid them referencing several myths about bad luck and that for because they've traded their flesh for metal the fae aren't really interested in them anyway. Not quite as bad as the undead but more tricksome.", + "responses": [ { "text": "I'll keep your warnings in mind.", "topic": "TALK_EXODII_MERCHANT_Talk" } ] + }, + { + "id": "TALK_EXODII_MERCHANT_VAMPIRE_GEAR", + "type": "talk_topic", + "dynamic_line": "If this green and brown, has the claret drinkers us un'll be truckin with ole Great Grey and bringin out the good and plenty. Only one way to throw a smash and banger for the tick dead.", + "//": "Vampires have infested your world? We're gonna talk to the supercomputer and bring out some of our anti-vampire designs and will get back to you soon.", + "responses": [ { "text": "I'll keep your warnings in mind.", "topic": "TALK_EXODII_MERCHANT_Talk" } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/npc/talk_rescue.json b/data/Mainline_mods/Mods/Xedra_Evolved/npc/talk_rescue.json index 0d9d53830..638873d47 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/npc/talk_rescue.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/npc/talk_rescue.json @@ -15,7 +15,73 @@ ], "responses": [ { "text": "Let's get out of here before more spiders show up.", "topic": "TALK_DONE", "effect": "follow" }, - { "text": "I don't need another mouth to feed. Get out of my sight.", "topic": "TALK_DONE", "effect": "flee" } + { "text": "I don't need another mouth to feed. Get out of my sight.", "topic": "TALK_DONE", "effect": "flee" }, + { + "text": "[Investigation 2] Are you feeling ok after all of this? I can see some of your wounds.", + "condition": { + "and": [ + { "or": [ { "npc_has_trait": "EGGSAC_SURVIVABLE" }, { "npc_has_trait": "EGGSAC_FATAL" } ] }, + { "math": [ "u_skill('deduction')", ">=", "2" ] } + ] + }, + "effect": { "u_add_var": "u_knows_goblinspider_eggs", "type": "knowledge", "context": "reproduction", "value": "yes" }, + "topic": "TALK_RESCUED_INFESTED" + } ] + }, + { + "id": "TALK_RESCUED_INFESTED", + "type": "talk_topic", + "dynamic_line": "They bit me and when I woke up I had wounds that feel like they have something under them. You don't think they could have put something in me, do you?", + "responses": [ + { + "text": "I'm going to bring you a bottle of antiparasitics. Let's do ten to make sure.", + "condition": { + "not": { + "or": [ + { "u_has_mission": "BRING_INFESTED_ANTIPARASITICS" }, + { "u_has_var": "antiparasitic", "type": "mission", "context": "completed", "value": "yes" } + ] + } + }, + "effect": { "assign_mission": "BRING_INFESTED_ANTIPARASITICS" }, + "topic": "TALK_RESCUED_1" + }, + { + "text": "I've brought the antiparasitic for you. Do you want it?", + "condition": { + "and": [ { "u_has_items": { "item": "antiparasitic", "count": 10 } }, { "u_has_mission": "BRING_INFESTED_ANTIPARASITICS" } ] + }, + "effect": [ + { "u_sell_item": "antiparasitic", "count": 10 }, + { "npc_lose_trait": "EGGSAC_SURVIVABLE" }, + { "npc_lose_trait": "EGGSAC_FATAL" }, + { "finish_mission": "BRING_INFESTED_ANTIPARASITICS", "success": true } + ], + "topic": "TALK_RESCUED_1" + } + ] + }, + { + "id": "BRING_INFESTED_ANTIPARASITICS", + "type": "mission_definition", + "name": { "str": "Bring 10 antiparasitic pills to %s" }, + "goal": "MGOAL_CONDITION", + "goal_condition": { "npc_has_var": "-", "type": "-", "context": "-", "value": "-" }, + "difficulty": 2, + "value": 240, + "origins": [ "ORIGIN_SECONDARY" ], + "dialogue": { + "describe": "If you think those things put something inside of me we need to get me medicine asap!", + "offer": "Please bring me some antiparasitic drugs, I don't want anything hatching out of ME!", + "accepted": "Thank you!", + "rejected": "Hopefully nothing is wrong with me", + "advice": "You've managed to terrify me.", + "inquire": "Every itch leaves me with a panic attack now", + "success": "Thank you so very much I hope this works!", + "success_lie": "You're telling me you brought it but you aren't giving them to me.", + "failure": "Please try harder and get me some medicine, I don't know how long I've got!" + }, + "end": { "effect": [ { "u_add_var": "antiparasitic", "type": "mission", "context": "completed", "value": "yes" } ] } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/npc/trait_groups.json b/data/Mainline_mods/Mods/Xedra_Evolved/npc/trait_groups.json index 39b895f5f..0bd27a857 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/npc/trait_groups.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/npc/trait_groups.json @@ -43,7 +43,7 @@ { "trait": "GOODMEMORY", "prob": 50 }, { "trait": "SPIRITUAL", "prob": 50 }, { "trait": "LOVES_BOOKS", "prob": 50 }, - { "distribution": [ { "trait": "BADCARDIO" }, { "trait": "CARDIO" } ] }, + { "distribution": [ { "trait": "BADCARDIO" }, { "trait": "GOODCARDIO" } ] }, { "trait": "SLOWHEALER", "prob": 50 }, { "trait": "NIGHTMARE_CHIMERAS", "prob": 100 } ] @@ -60,7 +60,7 @@ { "trait": "GOODMEMORY", "prob": 50 }, { "trait": "SPIRITUAL", "prob": 50 }, { "trait": "LOVES_BOOKS" }, - { "distribution": [ { "trait": "BADCARDIO" }, { "trait": "CARDIO" } ] }, + { "distribution": [ { "trait": "BADCARDIO" }, { "trait": "GOODCARDIO" } ] }, { "trait": "FRIENDLY_CHIMERAS", "prob": 100 } ] } diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/obsoletion_and_migration/migration.json b/data/Mainline_mods/Mods/Xedra_Evolved/obsoletion_and_migration/migration.json new file mode 100644 index 000000000..da7f987db --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/obsoletion_and_migration/migration.json @@ -0,0 +1,32 @@ +[ + { + "id": "ray_diagrams", + "type": "MIGRATION", + "replace": "firmament_driver_book" + }, + { + "id": "ray_weapon_diagrams", + "type": "MIGRATION", + "replace": "firmament_driver_book" + }, + { + "id": "syringe_artifact", + "type": "MIGRATION", + "replace": "firmament_driver_book" + }, + { + "id": "money_strap_magic", + "type": "MIGRATION", + "replace": "artifact_cable_whip" + }, + { + "id": "foil_hat", + "type": "MIGRATION", + "replace": "artifact_cable_whip" + }, + { + "id": "book_inventor", + "type": "MIGRATION", + "replace": "artifact_cable_whip" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/obsoletion_and_migration/spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/obsoletion_and_migration/spells.json new file mode 100644 index 000000000..f9ef8f886 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/obsoletion_and_migration/spells.json @@ -0,0 +1,341 @@ +[ + { + "id": "summon_battery_gun", + "type": "SPELL", + "name": "Make The Battery Miracle", + "description": "Make a gun that uses energy from almost any type of battery to shoot hot lasers.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "//": "OBSOLETED", + "shape": "blast", + "base_casting_time": 1, + "final_casting_time": 1, + "casting_time_increment": -1, + "base_energy_cost": 1, + "final_energy_cost": 1, + "energy_increment": -10, + "min_duration": 9072000, + "max_duration": 181440000, + "duration_increment": 9072000, + "difficulty": 5, + "max_level": 20, + "skill": "deduction", + "flags": [ "SOMATIC", "CONCENTRATE" ], + "spell_class": "INVENTOR", + "energy_source": "MANA" + }, + { + "id": "summon_ray_gun", + "type": "SPELL", + "name": "Build a ray gun", + "description": "Make a gun that uses energy from batteries to shoot superhot rays of energy.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "//": "OBSOLETED", + "shape": "blast", + "base_casting_time": 1, + "final_casting_time": 1, + "casting_time_increment": -1, + "base_energy_cost": 1, + "final_energy_cost": 1, + "energy_increment": -10, + "min_duration": 9072000, + "max_duration": 181440000, + "duration_increment": 9072000, + "difficulty": 6, + "max_level": 20, + "skill": "deduction", + "flags": [ "SOMATIC", "CONCENTRATE" ], + "learn_spells": { "summon_death_ray": 20 }, + "spell_class": "INVENTOR", + "energy_source": "MANA" + }, + { + "id": "summon_death_ray", + "type": "SPELL", + "name": "Build a death ray", + "description": "Make a gun using aether drawn from the void between all things, that shoots beams able to melt anything in its path.", + "valid_targets": [ "self" ], + "//": "OBSOLETED", + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "shape": "blast", + "base_casting_time": 1, + "base_energy_cost": 1, + "difficulty": 7, + "skill": "deduction", + "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT" ], + "spell_class": "INVENTOR", + "energy_source": "MANA" + }, + { + "id": "summon_mace_magic", + "type": "SPELL", + "name": "Make The Wolf Sledge", + "description": "You know how to make a really dreadful hammer. It's a two-handed basher, but it can also work as a boomerang.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "//": "OBSOLETED", + "shape": "blast", + "base_casting_time": 1, + "final_casting_time": 1, + "casting_time_increment": -1, + "base_energy_cost": 1, + "final_energy_cost": 1, + "energy_increment": -10, + "min_duration": 9072000, + "max_duration": 181440000, + "duration_increment": 9072000, + "difficulty": 6, + "max_level": 20, + "skill": "deduction", + "flags": [ "SOMATIC", "CONCENTRATE" ], + "spell_class": "INVENTOR", + "energy_source": "MANA" + }, + { + "id": "summon_bio_launcher", + "type": "SPELL", + "name": "Make The Bio Detonator", + "description": "You know how to make a tool to explode the biosignature of nearly all living creatures. It's really powerful, but can't separate enemies from allies, or enemies from the user, so it's better to not use it in point-blank range.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "//": "OBSOLETED", + "shape": "blast", + "base_casting_time": 1, + "final_casting_time": 1, + "casting_time_increment": -1, + "base_energy_cost": 1, + "final_energy_cost": 1, + "energy_increment": -40, + "difficulty": 8, + "max_level": 20, + "skill": "deduction", + "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT_ALL_LEVELS" ], + "spell_class": "INVENTOR", + "energy_source": "MANA" + }, + { + "id": "summon_bio_warhead", + "type": "SPELL", + "name": "Make The Bio Warhead", + "description": "You know how to make a warhead for your humming mortar to fire.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "//": "OBSOLETED", + "shape": "blast", + "base_casting_time": 1, + "final_casting_time": 1, + "casting_time_increment": -1, + "base_energy_cost": 1, + "final_energy_cost": 1, + "energy_increment": -40, + "difficulty": 8, + "max_level": 20, + "skill": "deduction", + "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT_ALL_LEVELS" ], + "spell_class": "INVENTOR", + "energy_source": "MANA" + }, + { + "id": "summon_rip_ticket", + "type": "SPELL", + "name": "Make The Vancian Bill", + "description": "Somehow if you write some symbols on paper and cover it with mana, you can make a tool that allows you to tear a small part of reality. You found paper dollar bills perfectly fit the required shape. You find it hilarious that reality accepts US currency.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "//": "OBSOLETED", + "shape": "blast", + "base_casting_time": 1, + "final_casting_time": 1, + "casting_time_increment": -1, + "base_energy_cost": 1, + "final_energy_cost": 1, + "energy_increment": -10, + "difficulty": 4, + "max_level": 20, + "skill": "deduction", + "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT_ALL_LEVELS" ], + "spell_class": "INVENTOR", + "energy_source": "MANA" + }, + { + "id": "summon_helmet_inventor", + "type": "SPELL", + "name": "Helmet of Creative Juices", + "description": "You know how to make a helmet that will increase your creative abilities. Even with this improvement you don't really know how it works, it just came to you in a flash of brilliance.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "//": "OBSOLETED", + "shape": "blast", + "base_casting_time": 1, + "final_casting_time": 1, + "casting_time_increment": -1, + "base_energy_cost": 1, + "final_energy_cost": 1, + "energy_increment": -35, + "difficulty": 6, + "max_level": 20, + "skill": "deduction", + "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT_ALL_LEVELS" ], + "spell_class": "INVENTOR", + "energy_source": "MANA" + }, + { + "id": "summon_ion_gun", + "type": "SPELL", + "name": "Make The Ion Rifle", + "description": "Craft a small weapon that does… things, that allow you to… kill… things… whatever, you have no idea how it works.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "//": "OBSOLETED", + "shape": "blast", + "base_casting_time": 1, + "final_casting_time": 1, + "casting_time_increment": -1, + "base_energy_cost": 1, + "final_energy_cost": 1, + "energy_increment": -40, + "min_duration": 302400, + "max_duration": 604800, + "duration_increment": 3024000, + "difficulty": 8, + "max_level": 20, + "skill": "deduction", + "flags": [ "SOMATIC", "CONCENTRATE" ], + "spell_class": "INVENTOR", + "energy_source": "MANA" + }, + { + "id": "spark_of_inspiration", + "type": "SPELL", + "name": "Minor Spark of Inspiration", + "description": "Enters a manic creation episode in the appropriate workshop space and creates… something.", + "valid_targets": [ "self" ], + "skill": "deduction", + "flags": [ "NO_LEGS", "CONCENTRATE", "NO_FAIL" ], + "//2": "OBSOLETED", + "difficulty": 3, + "min_damage": 1, + "max_damage": 0, + "duration_increment": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 1, + "final_energy_cost": 1, + "base_casting_time": 1, + "final_casting_time": 1, + "spell_class": "INVENTOR" + }, + { + "id": "research_dreamdross", + "type": "SPELL", + "name": "Inquire Dreamdross", + "description": "You spend some time, trying to understand what the dreamdross is capable of, and how you can utilize it's power.", + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "shape": "blast", + "base_casting_time": 1, + "base_energy_cost": 1, + "skill": "deduction", + "spell_class": "DREAMSMITH", + "energy_source": "STAMINA", + "flags": [ "NO_LEGS", "CONCENTRATE" ] + }, + { + "id": "forge_dreamdross", + "type": "SPELL", + "name": "Forge Dreamdross", + "description": "This ritual pulls a small amount of dreamdross into our world and makes it permanent. These scraps of dreaming can then be used to make permanent objects.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_MIGRATE_SPELL", + "shape": "blast", + "base_casting_time": 1, + "final_casting_time": 1, + "casting_time_increment": -1, + "base_energy_cost": 1, + "final_energy_cost": 1, + "energy_increment": -1, + "skill": "deduction", + "max_level": 10, + "spell_class": "DREAMSMITH", + "energy_source": "STAMINA", + "flags": [ "PERMANENT_ALL_LEVELS", "NO_LEGS", "CONCENTRATE" ] + }, + { + "id": "arvore_forest_mapping_spell", + "type": "SPELL", + "name": "Commune with the Ancient Oaks", + "description": "This spell allows you to speak to the trees and discern the layout of the forest.", + "valid_targets": [ "self" ], + "flags": [ "CONCENTRATE", "VERBAL", "SOMATIC", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_GAIN_COMMUNE_OAKS", + "shape": "blast", + "energy_source": "MANA", + "difficulty": 6, + "max_level": 15, + "base_casting_time": 6000, + "final_casting_time": 1000, + "casting_time_increment": -350, + "base_energy_cost": 800, + "final_energy_cost": 500, + "energy_increment": -40, + "min_duration": 6000, + "max_duration": 6000 + }, + { + "type": "effect_on_condition", + "id": "EOC_GAIN_COMMUNE_OAKS", + "condition": { "not": { "u_has_trait": "TREE_COMMUNION" } }, + "effect": [ + { "u_message": "The trees whisper their secrets to you. [Check mutations to activate]", "type": "good" }, + { "u_add_trait": "TREE_COMMUNION" }, + { "queue_eocs": "EOC_LOSE_COMMUNE_OAKS", "time_in_future": [ "60 seconds", "60 seconds" ] } + ], + "false_effect": [ + { + "u_message": "You are already in tune with the rhythms of the forest. Further magic cannot deepen your bond.", + "type": "good" + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LOSE_COMMUNE_OAKS", + "effect": [ { "u_lose_trait": "TREE_COMMUNION" } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/obsoletion_and_migration/tool_to_obsolete_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/obsoletion_and_migration/tool_to_obsolete_spells.json new file mode 100644 index 000000000..604d15e62 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/obsoletion_and_migration/tool_to_obsolete_spells.json @@ -0,0 +1,20 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_MIGRATE_SPELL", + "effect": [ + { "math": [ "u_val('spell_level', 'spell: summon_battery_gun')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: summon_ray_gun')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: summon_death_ray')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: summon_mace_magic')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: summon_bio_launcher')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: summon_bio_warhead')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: summon_rip_ticket')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: summon_helmet_inventor')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: summon_ion_gun')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: spark_of_inspiration')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: research_dreamdross')", "=", "-1" ] }, + { "math": [ "u_val('spell_level', 'spell: forge_dreamdross')", "=", "-1" ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/perks/perk_data/Alchemy1.json b/data/Mainline_mods/Mods/Xedra_Evolved/perks/perk_data/Alchemy1.json new file mode 100644 index 000000000..2e89b31ee --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/perks/perk_data/Alchemy1.json @@ -0,0 +1,87 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_ALCHEMY1", + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY1" }, { "not": { "u_has_effect": "mental_exhaustion" } } ] }, + "effect": [ + { + "u_roll_remainder": [ "extra_str_aspirin", "blackout_rage_drink", "sixdust", "small_blessing_brigit" ], + "type": "recipe" + }, + { "u_add_effect": "mental_exhaustion", "intensity": 1, "duration": "24 hours" }, + { "u_message": "You learn a new secret of alchemy." } + ], + "false_effect": [ { "u_message": "Your thoughts are too scattered to unearth more secrets of the universe." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ALCHEMY2", + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY2" }, { "not": { "u_has_effect": "mental_exhaustion" } } ] }, + "effect": [ + { + "u_roll_remainder": [ "prophets_lsd", "truckers_stamina_pills", "spiritshow_dust", "charm_of_marzanna" ], + "type": "recipe" + }, + { "u_add_effect": "mental_exhaustion", "intensity": 1, "duration": "48 hours" }, + { "u_message": "You learn a new secret of alchemy." } + ], + "false_effect": [ { "u_message": "Your thoughts are too scattered to unearth more secrets of the universe." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ALCHEMY3", + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY3" }, { "not": { "u_has_effect": "mental_exhaustion" } } ] }, + "effect": [ + { + "u_roll_remainder": [ + "feline_periapta", + "lupine_periapta", + "cephalopod_periapta", + "plant_periapta", + "scorpion_periapta", + "butterfly_periapta", + "spider_periapta", + "cold_iron_ingot" + ], + "type": "recipe" + }, + { "u_add_effect": "mental_exhaustion", "intensity": 1, "duration": "96 hours" }, + { "u_message": "You learn a new secret of alchemy." } + ], + "false_effect": [ { "u_message": "Your thoughts are too scattered to unearth more secrets of the universe." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_COLD_IRON", + "condition": { + "and": [ + { "u_has_trait": "perk_ALCHEMY3" }, + { "u_has_trait": "perk_ALCHEMY3_COLD_IRON" }, + { "not": { "u_has_effect": "mental_exhaustion" } } + ] + }, + "effect": [ + { + "u_roll_remainder": [ "cold_iron_knife", "cold_iron_sword", "cold_iron_warhammer", "cold_iron_battleaxe", "blood_of_saints" ], + "type": "recipe" + }, + { "u_add_effect": "mental_exhaustion", "intensity": 1, "duration": "96 hours" }, + { "u_message": "You learn a new secret of alchemy." } + ], + "false_effect": [ { "u_message": "Your thoughts are too scattered to unearth more secrets of the universe." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_ALCHEMY4", + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY4" }, { "not": { "u_has_effect": "mental_exhaustion" } } ] }, + "effect": [ + { + "u_roll_remainder": [ "life_extension_potion", "potion_strength", "potion_dex", "hares_leap_potion" ], + "type": "recipe" + }, + { "u_add_effect": "mental_exhaustion", "intensity": 1, "duration": "192 hours" }, + { "u_message": "You learn a new secret of alchemy." } + ], + "false_effect": [ { "u_message": "Your thoughts are too scattered to unearth more secrets of the universe." } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/perks/perk_menu.json b/data/Mainline_mods/Mods/Xedra_Evolved/perks/perk_menu.json new file mode 100644 index 000000000..91a22a5a9 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/perks/perk_menu.json @@ -0,0 +1,239 @@ +[ + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "not": { "u_has_trait": "perk_ALCHEMY1" } }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY1" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY1", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY1" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY1" }, { "not": { "u_has_trait": "perk_ALCHEMY2" } } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY2" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY2", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY2" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY2" }, { "not": { "u_has_trait": "perk_ALCHEMY3" } } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY3" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY3", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY3" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { + "and": [ + { "u_has_trait": "perk_ALCHEMY3" }, + { "u_know_recipe": "cold_iron_ingot" }, + { "not": { "u_has_trait": "perk_ALCHEMY3_COLD_IRON" } } + ] + }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY3_COLD_IRON" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY3_COLD_IRON", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY3_COLD_IRON" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY3" }, { "not": { "u_has_trait": "perk_ALCHEMY4" } } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY4" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY4", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY4" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "and": [ { "u_has_trait": "perk_ALCHEMY4" }, { "not": { "u_has_trait": "perk_ALCHEMY5" } } ] }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_ALCHEMY5" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_ALCHEMY4", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_ALCHEMY5" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_MAIN", + "responses": [ + { + "condition": { "not": { "u_has_trait": "perk_LOW_INT_MANA" } }, + "text": "Gain []", + "topic": "TALK_PERK_MENU_LOW_INT_MANA" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_PERK_MENU_LOW_INT_MANA", + "dynamic_line": ": \"\"", + "responses": [ + { + "text": "Select Perk.", + "topic": "TALK_PERK_MENU_MAIN", + "condition": { "compare_num": [ { "u_val": "var", "var_name": "num_perks" }, ">", { "const": 0 } ] }, + "failure_explanation": "Requirements Not Met", + "failure_topic": "TALK_PERK_MENU_FAIL", + "effect": [ + { "u_add_trait": "perk_LOW_INT_MANA" }, + { + "arithmetic": [ { "u_val": "var", "var_name": "num_perks" }, "=", { "u_val": "var", "var_name": "num_perks" }, "-", { "const": 1 } ] + } + ] + }, + { "text": "Go Back.", "topic": "TALK_PERK_MENU_MAIN" }, + { "text": "Quit.", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/perks/perks.json b/data/Mainline_mods/Mods/Xedra_Evolved/perks/perks.json new file mode 100644 index 000000000..b2d45d37f --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/perks/perks.json @@ -0,0 +1,76 @@ +[ + { + "type": "mutation", + "id": "perk_ALCHEMY1", + "name": { "str": "Basic Alchemical Knowledge" }, + "points": 0, + "description": "You spent years before the Cataclysm researching esoteric sciences and occult mysteries but only now in the heat of survival, have you experienced the epiphany that will allow you to create alchemical substances.", + "category": [ "perk" ], + "active": true, + "activated_eocs": [ "EOC_ALCHEMY1" ] + }, + { + "type": "mutation", + "id": "perk_ALCHEMY2", + "name": { "str": "Initiate Alchemy" }, + "points": 0, + "description": "The days and weeks since the Cataclysm have been a blur of ideas and thoughts that you can only wish you had been able to think of before everything ended.", + "category": [ "perk" ], + "active": true, + "activated_eocs": [ "EOC_ALCHEMY2" ] + }, + { + "type": "mutation", + "id": "perk_ALCHEMY3", + "name": { "str": "Adept Alchemical Knowledge" }, + "points": 0, + "description": "The things you've learned would have changed your life in the old days, you could have dropped out of the rat race and become a hidden master of the occult.", + "category": [ "perk" ], + "active": true, + "activated_eocs": [ "EOC_ALCHEMY3" ] + }, + { + "type": "mutation", + "id": "perk_ALCHEMY3_COLD_IRON", + "name": { "str": "Cold Iron Knowledge" }, + "points": 0, + "description": "You've mastered the technique of cold forging iron from ingots into various items and weapons that are particularly effective against creatures from faerie myths.", + "category": [ "perk" ], + "active": true, + "activated_eocs": [ "EOC_ALCHEMY3_COLD_IRON" ] + }, + { + "type": "mutation", + "id": "perk_ALCHEMY4", + "name": { "str": "Magister Alchemical Knowledge" }, + "points": 0, + "description": "At this stage in your occult education, normally you would start a small cabal of your own with apprentices that would engage in research and material gathering. You would likely have several rich patrons financing you in return for alchemical medicines and goods to give them health and longevity.", + "category": [ "perk" ], + "active": true, + "activated_eocs": [ "EOC_ALCHEMY4" ] + }, + { + "type": "mutation", + "id": "perk_ALCHEMY5", + "name": { "str": "Illuminated Alchemy" }, + "points": 0, + "description": "Truly you have become one of the hidden occult masters of the world. It's a pity that so few people are around for you to enjoy the benefits of your knowledge. At least it's helping you to survive and maybe even thrive in this post-Cataclysm world.", + "category": [ "perk" ], + "active": true, + "activated_eocs": [ "EOC_ALCHEMY5" ] + }, + { + "type": "mutation", + "id": "perk_LOW_INT_MANA", + "name": { "str": "Mana for Morons" }, + "points": 0, + "description": "Maybe you aren't a genius, but something inside of you grants previously hidden reserves of mana.", + "category": [ "perk" ], + "enchantments": [ + { + "condition": "ALWAYS", + "values": [ { "value": "MAX_MANA", "add": { "math": [ "( 16 - clamp(u_val('intelligence'), 8, 16) ) * 62.5" ] } } ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/player/cbm_eoc.json b/data/Mainline_mods/Mods/Xedra_Evolved/player/cbm_eoc.json new file mode 100644 index 000000000..ff036b819 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/player/cbm_eoc.json @@ -0,0 +1,32 @@ +[ + { + "type": "effect_on_condition", + "id": "EOC_SUMMON_BAT_SWARM", + "effect": [ + { + "u_cast_spell": { + "id": "spell_summon_bat_swarm", + "min_level": 1, + "max_level": 6, + "message": "There is a loud clicking sound as you commune with any nearby bats." + }, + "targeted": true + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SUMMON_XL_BAT", + "effect": [ + { + "u_cast_spell": { + "id": "spell_summon_bat_giant", + "min_level": 1, + "max_level": 6, + "message": "A click fires out of the back of your throat like a gunshot. What could this possibly be speaking to?" + }, + "targeted": true + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/player/cbm_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/player/cbm_spells.json new file mode 100644 index 000000000..45c2f32e4 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/player/cbm_spells.json @@ -0,0 +1,54 @@ +[ + { + "id": "spell_summon_bat_swarm", + "type": "SPELL", + "name": { "str": "Swarm of Bats" }, + "description": "Are you the Bat Man?", + "valid_targets": [ "ground" ], + "flags": [ "LOUD", "SOMATIC", "SPAWN_GROUP" ], + "min_damage": 1, + "max_damage": 12, + "damage_increment": 1.0, + "min_range": 3, + "range_increment": 0.8, + "max_range": 7, + "min_aoe": 3, + "max_aoe": 3, + "spell_class": "NONE", + "max_level": 25, + "min_duration": 6000, + "max_duration": 60000, + "duration_increment": 1000, + "difficulty": 1, + "base_energy_cost": 265, + "shape": "blast", + "effect": "summon", + "effect_str": "GROUP_SWARM_BATS" + }, + { + "id": "spell_summon_bat_giant", + "type": "SPELL", + "name": { "str": "Giant Bat" }, + "description": "Are you the Bat Man?", + "valid_targets": [ "ground" ], + "flags": [ "LOUD", "SOMATIC", "SPAWN_GROUP" ], + "min_damage": 1, + "max_damage": 3, + "damage_increment": 0.1, + "min_range": 3, + "range_increment": 0.8, + "max_range": 7, + "min_aoe": 3, + "max_aoe": 3, + "spell_class": "NONE", + "max_level": 25, + "min_duration": 6000, + "max_duration": 60000, + "duration_increment": 1000, + "difficulty": 1, + "base_energy_cost": 565, + "shape": "blast", + "effect": "summon", + "effect_str": "GROUP_GIANT_BATS" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/player/professions.json b/data/Mainline_mods/Mods/Xedra_Evolved/player/professions.json index 4c9d3a8fd..b2810ce08 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/player/professions.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/player/professions.json @@ -12,7 +12,7 @@ "type": "item_group", "subtype": "collection", "id": "diazepam_scrip", - "entries": [ { "item": "diazepam", "charges": 20, "container-item": "bottle_plastic_pill_prescription" } ] + "entries": [ { "item": "diazepam", "count": 20, "container-item": "null", "entry-wrapper": "bottle_plastic_pill_prescription" } ] }, { "type": "item_group", @@ -25,8 +25,8 @@ "subtype": "collection", "id": "xedra_mags_troll", "entries": [ - { "item": "5x50_50_mag", "ammo-item": "5x50dart", "charges": 50 }, - { "item": "5x50_50_mag", "ammo-item": "5x50dart", "charges": 50 } + { "item": "8x40_25_mag", "ammo-item": "8mm_hvp", "charges": 25 }, + { "item": "8x40_25_mag", "ammo-item": "8mm_hvp", "charges": 25 } ] }, { @@ -36,10 +36,10 @@ "description": "Before the Cataclysm, you used to work for the Paranormal Investigation Department of the FBI. You got used to jokes at your expense, as well as being constantly underfunded and disregarded by your superiors. You were returning from yet another case with nothing but a bag of suspicious candies to show, when all hell broke loose. Oh well, at least now you can be certain that everyone still alive will believe you that the truth is out there.", "points": 3, "skills": [ - { "level": 2, "name": "gun" }, - { "level": 2, "name": "pistol" }, - { "level": 1, "name": "speech" }, - { "level": 1, "name": "deduction" } + { "level": 5, "name": "gun" }, + { "level": 5, "name": "pistol" }, + { "level": 4, "name": "speech" }, + { "level": 5, "name": "deduction" } ], "proficiencies": [ "prof_spotting" ], "items": { @@ -62,7 +62,7 @@ { "group": "charged_ref_lighter" }, { "group": "army_mags_usp9" }, { "item": "usp_9mm", "ammo-item": "9mm", "charges": 15, "container-item": "shoulder_holster" }, - { "item": "wyld_candy", "charges": 10, "container-item": "wrapper_wyld" } + { "item": "wyld_candy", "count": 10, "container-item": "null", "entry-wrapper": "wrapper_wyld" } ] }, "male": [ "briefs" ], @@ -75,7 +75,7 @@ "name": "Xedra Response Team Member", "description": "Before Xedra recruited you, you probably worked for the ATF or a PMC like Kroll. It was your job to investigate any cross-pollination incidents where alternate physics regions crossed over the Nether and reached our world. Part exterminator part investigator, you made sure that any new resources and contaminants were accounted for, including any intelligent life trying to sneak into our world. Local law enforcement and civilians called you 'Zebras' since your identification and badges only had a barcode instead of any name/rank/number. This job has shown you things you don't want to remember but luckily the Zebra docs seem to have an endless supply of pills.", "points": 6, - "skills": [ { "level": 3, "name": "gun" }, { "level": 3, "name": "pistol" }, { "level": 1, "name": "speech" } ], + "skills": [ { "level": 7, "name": "gun" }, { "level": 7, "name": "pistol" }, { "level": 5, "name": "speech" } ], "addictions": [ { "intensity": 10, "type": "diazepam" } ], "proficiencies": [ "prof_spotting" ], "items": { @@ -113,15 +113,15 @@ "description": "You came here from another country trying to gain access to secrets the United States had ripped from other worlds. They probably had sent people to your homeland to do the same. You were out performing recon when the Cataclysm struck and caught a ride with a stranger trying to find safety. Sadly you lost your companion and vehicle, getting lost in the process and with now only a vague idea on how to get back to the safehouse, where you hope your hidden gear remains untouched.", "points": 4, "skills": [ - { "level": 2, "name": "dodge" }, - { "level": 2, "name": "gun" }, - { "level": 1, "name": "pistol" }, - { "level": 2, "name": "speech" }, - { "level": 2, "name": "unarmed" } + { "level": 4, "name": "dodge" }, + { "level": 6, "name": "gun" }, + { "level": 6, "name": "pistol" }, + { "level": 5, "name": "speech" }, + { "level": 4, "name": "unarmed" } ], "items": { "both": { - "items": [ "sneakers", "hoodie", "knit_scarf", "diving_watch", "backpack", "pants_cargo" ], + "items": [ "sneakers", "hoodie", "knit_scarf", "diving_watch", "backpack", "wristwatch", "pants_cargo" ], "entries": [ { "group": "charged_smart_phone" }, { "item": "tshirt", "variant": "generic_tshirt" }, @@ -144,11 +144,11 @@ "addictions": [ { "intensity": 20, "type": "nicotine" } ], "proficiencies": [ "prof_wp_cyborg" ], "skills": [ - { "level": 3, "name": "gun" }, - { "level": 2, "name": "launcher" }, - { "level": 3, "name": "bashing" }, - { "level": 2, "name": "dodge" }, - { "level": 2, "name": "melee" } + { "level": 8, "name": "gun" }, + { "level": 7, "name": "launcher" }, + { "level": 6, "name": "bashing" }, + { "level": 4, "name": "dodge" }, + { "level": 4, "name": "melee" } ], "items": { "both": { @@ -156,18 +156,19 @@ "items": [ "under_armor", "under_armor_shorts", - "xedra_jumpsuit", "tac_helmet", "glasses_bal", "gloves_tactical", "boots_combat", "holster", + "wristwatch", "tacvest", "socks", "badge_zebra", "molle_pack" ], "entries": [ + { "item": "xedra_jumpsuit", "variant": "xedra_jumpsuit_offworld" }, { "group": "military_ballistic_vest_light" }, { "group": "torso_grenade_bandolier_jotunn" }, { "item": "mgl", "ammo-item": "40x46mm_m433", "charges": 3, "contents-item": "shoulder_strap" } @@ -187,11 +188,11 @@ "points": 7, "proficiencies": [ "prof_wp_skeleton" ], "skills": [ - { "level": 1, "name": "cutting" }, - { "level": 2, "name": "dodge" }, - { "level": 2, "name": "melee" }, - { "level": 3, "name": "unarmed" }, - { "level": 2, "name": "survival" } + { "level": 6, "name": "cutting" }, + { "level": 6, "name": "dodge" }, + { "level": 6, "name": "melee" }, + { "level": 5, "name": "unarmed" }, + { "level": 4, "name": "survival" } ], "items": { "both": { @@ -199,25 +200,26 @@ "items": [ "under_armor", "under_armor_shorts", - "xedra_jumpsuit", "tac_helmet", "glasses_bal", "gloves_tactical", "boots_combat", "holster", + "wristwatch", "legrig", "tacvest", "socks", "badge_zebra" ], "entries": [ + { "item": "xedra_jumpsuit", "variant": "xedra_jumpsuit_offworld" }, { "item": "water_clean", "ammo-item": "water_clean", "container-item": "canteen" }, { "item": "signal_flare", "ammo-item": "signal_flare", "count": 5 }, { "group": "military_ballistic_vest_light" }, { - "item": "needlegun", - "ammo-item": "5x50dart", - "charges": 35, + "item": "rm2000_smg", + "ammo-item": "8mm_hvp", + "charges": 25, "contents-item": [ "shoulder_strap", "holo_sight" ] }, { "item": "legpouch_large", "contents-group": "xedra_mags_troll" } @@ -237,13 +239,13 @@ "points": 6, "CBMs": [ "bio_tattoo_led", "bio_cable", "bio_face_mask", "bio_power_storage" ], "skills": [ - { "level": 2, "name": "gun" }, - { "level": 2, "name": "stabbing" }, - { "level": 1, "name": "traps" }, - { "level": 1, "name": "dodge" }, - { "level": 2, "name": "melee" }, - { "level": 2, "name": "deduction" }, - { "level": 2, "name": "survival" } + { "level": 4, "name": "gun" }, + { "level": 3, "name": "stabbing" }, + { "level": 4, "name": "traps" }, + { "level": 4, "name": "dodge" }, + { "level": 3, "name": "melee" }, + { "level": 6, "name": "deduction" }, + { "level": 6, "name": "survival" } ], "items": { "both": { @@ -251,26 +253,334 @@ "items": [ "under_armor", "under_armor_shorts", - "xedra_jumpsuit", "tac_helmet", "glasses_bal", "gloves_tactical", "boots_combat", "holster", + "wristwatch", "legrig", "tacvest", "socks", "badge_zebra" ], "entries": [ + { "item": "xedra_jumpsuit", "variant": "xedra_jumpsuit_offworld" }, { "item": "water_clean", "ammo-item": "water_clean", "container-item": "canteen" }, { "group": "military_ballistic_vest_light" }, - { "item": "needlepistol", "ammo-item": "5x50dart", "charges": 35, "contents-item": [ "holo_sight" ] }, - { "item": "legpouch_large", "contents-group": "xedra_mags_troll" } + { "item": "fn57_sup", "ammo-item": "57mm_ss", "charges": 20, "container-item": "shoulder_holster" }, + { "item": "legpouch_large", "contents-group": "suppressed_fn57" } + ] + }, + "male": [ "boxer_shorts" ], + "female": [ "sports_bra", "boxer_shorts" ] + } + }, + { + "type": "profession", + "id": "xe_eater", + "name": "Mobile Task Force: Upsilon 4 \"Devourers\"", + "description": "Being part of Upsilon 4, you were always at the front of your unit, protecting other operatives from danger ahead using your eater's abilities. This one was no different, but something went really wrong.", + "points": 7, + "skills": [ + { "level": 4, "name": "gun" }, + { "level": 4, "name": "shotgun" }, + { "level": 6, "name": "dodge" }, + { "level": 6, "name": "melee" }, + { "level": 7, "name": "deduction" } + ], + "spells": [ + { "id": "spring_heeled_leap", "level": 7 }, + { "id": "spell_dodge", "level": 7 }, + { "id": "spell_endurance", "level": 7 } + ], + "traits": [ "EATER" ], + "items": { + "both": { + "ammo": 100, + "items": [ + "pants_army", + "undershirt", + "combat_shirt", + "tac_fullhelmet", + "armguard_hard", + "legguard_hard", + "mask_ski", + "wristwatch", + "gloves_liner", + "gloves_tactical", + "socks", + "boots_combat", + "wristwatch", + "molle_pack", + "hammer_sledge" + ], + "entries": [ + { "item": "xedra_jumpsuit", "variant": "xedra_jumpsuit_eater" }, + { "group": "charged_two_way_radio" }, + { "group": "us_ballistic_vest_pristine" }, + { "item": "water_clean", "container-item": "canteen" }, + { "item": "mossberg_500", "ammo-item": "shot_00", "charges": 6, "contents-item": [ "shoulder_strap" ] }, + { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, + { "item": "grenadebandolier", "contents-item": [ "flashbang", "flashbang" ] }, + { "item": "bandolier_shotgun", "contents-group": "bandolier_swat_cqc1" }, + { "item": "knife_combat", "container-item": "sheath" }, + { "item": "m17", "ammo-item": "9mm", "charges": 17, "container-item": "holster" } + ] + }, + "male": [ "boxer_shorts" ], + "female": [ "sports_bra", "boxer_shorts" ] + } + }, + { + "type": "profession", + "id": "xe_dreamer", + "name": "Mobile Task Force: Theta 1 \"Middle-Management\"", + "description": "Theta 1, also known as \"kindergarten\" between other task forces, is used when missions are expected to be too dangerous to send people or when reconnaissance can't obtain any important information about the target, which is why otherworldly creatures, summoned by dreamers, are sent. It's not the best course of action, but the unit's nearly zero fatality rate makes it worth using.", + "points": 7, + "skills": [ + { "level": 4, "name": "gun" }, + { "level": 3, "name": "dodge" }, + { "level": 4, "name": "melee" }, + { "level": 8, "name": "deduction" } + ], + "spells": [ + { "id": "banish_nether_monsters", "level": 7 }, + { "id": "spell_dreamer_clairvoyance_eff", "level": 7 }, + { "id": "summon_shifter", "level": 7 }, + { "id": "summon_winch", "level": 7 } + ], + "traits": [ "DREAMER" ], + "items": { + "both": { + "ammo": 100, + "items": [ + "under_armor", + "under_armor_shorts", + "tac_helmet", + "glasses_bal", + "wristwatch", + "gloves_tactical", + "boots_combat", + "holster", + "legrig", + "tacvest", + "socks" + ], + "entries": [ + { "item": "xedra_jumpsuit", "variant": "xedra_jumpsuit_dreamer" }, + { "item": "water_clean", "ammo-item": "water_clean", "container-item": "canteen" }, + { "group": "military_ballistic_vest_light" }, + { "item": "fn57_sup", "ammo-item": "57mm_ss", "charges": 20, "container-item": "shoulder_holster" }, + { "item": "legpouch_large", "contents-group": "suppressed_fn57" } + ] + }, + "male": [ "boxer_shorts" ], + "female": [ "sports_bra", "boxer_shorts" ] + } + }, + { + "type": "profession", + "id": "xe_inventor", + "name": "Mobile Task Force: Nu 3 \"Techno Savvy\"", + "description": "Despite the \"Task Force\" in their name, Nu 3 is rarely called into the actual mission; their main task is reconnaissance and developing tools to support another task force, even if these tools last only a few weeks. But when they do accept a task, it's almost guaranteed to be successful. It should've been your first day here, but something went really wrong.", + "points": 7, + "skills": [ + { "level": 1, "name": "gun" }, + { "level": 1, "name": "melee" }, + { "level": 4, "name": "fabrication" }, + { "level": 6, "name": "mechanics" }, + { "level": 5, "name": "electronics" }, + { "level": 8, "name": "deduction" } + ], + "spells": [ { "id": "firmament_driver", "level": 7 }, { "id": "cable_whip", "level": 7 } ], + "traits": [ "INVENTOR" ], + "proficiencies": [ "prof_metalworking", "prof_welding_basic", "prof_elec_soldering" ], + "items": { + "both": { + "ammo": 100, + "items": [ + "under_armor", + "under_armor_shorts", + "tac_helmet", + "glasses_bal", + "gloves_tactical", + "wristwatch", + "boots_combat", + "holster", + "legrig", + "tacvest", + "socks" + ], + "entries": [ + { "item": "xedra_jumpsuit", "variant": "xedra_jumpsuit_inventor" }, + { "item": "water_clean", "ammo-item": "water_clean", "container-item": "canteen" }, + { "group": "military_ballistic_vest_light" }, + { "item": "fn57_sup", "ammo-item": "57mm_ss", "charges": 20, "container-item": "shoulder_holster" }, + { "item": "legpouch_large", "contents-group": "suppressed_fn57" } + ] + }, + "male": [ "boxer_shorts" ], + "female": [ "sports_bra", "boxer_shorts" ] + } + }, + { + "type": "profession", + "id": "xe_dreamsmith", + "name": "Mobile Task Force: Tau 8 \"Anvil\"", + "description": "Sharing the same problem with Nu 3, dreamsmiths from Tau 8 are not called on the operation very often, and their main work looks really medieval. Despite this, they are really popular among other branches, as their tools and armor have everything a modern soldier can dream of.", + "//": "TODO: add some recipes they could know, if possible", + "points": 7, + "skills": [ { "level": 8, "name": "fabrication" }, { "level": 3, "name": "deduction" } ], + "spells": [ { "id": "spell_oneiric_hammer", "level": 0 } ], + "traits": [ "DREAMSMITH" ], + "proficiencies": [ "prof_metalworking", "prof_dreamsmithing" ], + "items": { + "both": { + "ammo": 100, + "items": [ + "under_armor", + "under_armor_shorts", + "tac_helmet", + "glasses_bal", + "gloves_tactical", + "wristwatch", + "boots_combat", + "holster", + "legrig", + "tacvest", + "socks" + ], + "entries": [ + { "item": "xedra_jumpsuit", "variant": "xedra_jumpsuit_dreamsmith" }, + { "item": "water_clean", "ammo-item": "water_clean", "container-item": "canteen" }, + { "group": "military_ballistic_vest_light" }, + { "item": "fn57_sup", "ammo-item": "57mm_ss", "charges": 20, "container-item": "shoulder_holster" }, + { "item": "legpouch_large", "contents-group": "suppressed_fn57" } ] }, "male": [ "boxer_shorts" ], "female": [ "sports_bra", "boxer_shorts" ] } + }, + { + "type": "profession", + "id": "paraclesian_ierde", + "name": { "male": "Ierde", "female": "Ierda" }, + "description": "With the dimensional spillage that preceded the Cataclysm you are the spirit of a place that slowly gained sentience, a genius loci. As the world reshapes itself you have decided to wander from your birthplace and determine where you will end up.", + "points": 5, + "traits": [ "IERDE" ], + "pets": [ { "name": "mon_stoneling", "amount": 1 } ], + "items": { + "both": { + "items": [ "footrags", "loincloth", "cloak_wool", "ragpouch", "gloves_wraps", "tunic_rag" ], + "entries": [ + { "item": "knife_baselard", "container-item": "sheath" }, + { "item": "earthkin_tablet", "custom-flags": [ "auto_wield" ] } + ] + }, + "female": [ "chestwrap" ] + }, + "flags": [ "SCEN_ONLY" ] + }, + { + "type": "profession", + "id": "paraclesian_arvore", + "name": { "male": "Arvi", "female": "Arvori" }, + "description": "With the dimensional spillage that preceded the Cataclysm you are the spirit of a place that slowly gained sentience, a genius loci. As the world reshapes itself you have decided to wander from your birthplace and determine where you will end up.", + "points": 5, + "traits": [ "ARVORE" ], + "pets": [ { "name": "mon_vineling", "amount": 1 } ], + "items": { + "both": { + "items": [ "footrags", "loincloth", "cloak_wool", "ragpouch", "gloves_wraps", "tunic_rag" ], + "entries": [ + { "item": "knife_baselard", "container-item": "sheath" }, + { "item": "plantkin_parchment", "custom-flags": [ "auto_wield" ] } + ] + }, + "female": [ "chestwrap" ] + }, + "flags": [ "SCEN_ONLY" ] + }, + { + "type": "profession", + "id": "paraclesian_undine", + "name": { "male": "Onduine", "female": "Ondua" }, + "description": "With the dimensional spillage that preceded the Cataclysm you are the spirit of a place that slowly gained sentience, a genius loci. As the world reshapes itself you have decided to wander from your birthplace and determine where you will end up.", + "points": 5, + "traits": [ "UNDINE" ], + "pets": [ { "name": "mon_spitting_lizard", "amount": 1 } ], + "items": { + "both": { + "items": [ "footrags", "loincloth", "cloak_wool", "ragpouch", "gloves_wraps", "tunic_rag" ], + "entries": [ + { "item": "knife_baselard", "container-item": "sheath" }, + { "item": "waterkin_tablet", "custom-flags": [ "auto_wield" ] } + ] + }, + "female": [ "chestwrap" ] + }, + "flags": [ "SCEN_ONLY" ] + }, + { + "type": "profession", + "id": "paraclesian_salamander", + "name": { "male": "Kéményseprő", "female": "Bejárónő" }, + "description": "With the dimensional spillage that preceded the Cataclysm you are the spirit of a place that slowly gained sentience, a genius loci. As the world reshapes itself you have decided to wander from your birthplace and determine where you will end up.", + "points": 5, + "traits": [ "SALAMANDER" ], + "pets": [ { "name": "mon_salamander_tiny", "amount": 1 } ], + "items": { + "both": { + "items": [ "footrags", "loincloth", "cloak_wool", "ragpouch", "gloves_wraps", "tunic_rag" ], + "entries": [ + { "item": "knife_baselard", "container-item": "sheath" }, + { "item": "flametouched_parchment", "custom-flags": [ "auto_wield" ] } + ] + }, + "female": [ "chestwrap" ] + }, + "flags": [ "SCEN_ONLY" ] + }, + { + "type": "profession", + "id": "paraclesian_homullus", + "name": { "male": "Dúln", "female": "Dúkka" }, + "description": "With the dimensional spillage that preceded the Cataclysm you are the spirit of a place that slowly gained sentience, a genius loci. As the world reshapes itself you have decided to wander from your birthplace and determine where you will end up.", + "points": 5, + "traits": [ "HOMULLUS" ], + "pets": [ { "name": "mon_zoomorphic_figure_small", "amount": 1 } ], + "items": { + "both": { + "items": [ "footrags", "loincloth", "cloak_wool", "ragpouch", "gloves_wraps", "tunic_rag" ], + "entries": [ + { "item": "knife_baselard", "container-item": "sheath" }, + { "item": "dollkin_tablet", "custom-flags": [ "auto_wield" ] } + ] + }, + "female": [ "chestwrap" ] + }, + "flags": [ "SCEN_ONLY" ] + }, + { + "type": "profession", + "id": "paraclesian_sylph", + "name": { "male": "Silvestris", "female": "Silvestra" }, + "description": "With the dimensional spillage that preceded the Cataclysm you are the spirit of a place that slowly gained sentience, a genius loci. As the world reshapes itself you have decided to wander from your birthplace and determine where you will end up.", + "points": 5, + "traits": [ "SYLPH" ], + "pets": [ { "name": "mon_dragonfly_fae", "amount": 1 } ], + "items": { + "both": { + "items": [ "footrags", "loincloth", "cloak_wool", "ragpouch", "gloves_wraps", "tunic_rag" ], + "entries": [ + { "item": "knife_baselard", "container-item": "sheath" }, + { "item": "sylph_parchment", "custom-flags": [ "auto_wield" ] } + ] + }, + "female": [ "chestwrap" ] + }, + "flags": [ "SCEN_ONLY" ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/player/proficiencies.json b/data/Mainline_mods/Mods/Xedra_Evolved/player/proficiencies.json new file mode 100644 index 000000000..f23c93f36 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/player/proficiencies.json @@ -0,0 +1,67 @@ +[ + { + "type": "proficiency", + "id": "prof_aelfen_tailoring", + "category": "prof_tailoring", + "name": { "str": "Aelfen Tailoring Techniques" }, + "description": "Working with materials from other dimensions is never easy. But this definitely improves your ability to work on fabrics and furs from the lands under the hill.", + "//": "I don't know if I'll make any advanced proficiencies for changeling recipes but I'd like to at least have some base level ones.", + "can_learn": true, + "default_time_multiplier": 1.5, + "default_skill_penalty": 1.15, + "time_to_learn": "6 h" + }, + { + "type": "proficiency_category", + "id": "prof_dreamsmithing", + "name": "Dreamsmithing", + "description": "Proficiencies for using your magic abilities to cast items with thaumaturgical abilities." + }, + { + "type": "proficiency", + "id": "prof_dreamsmithing", + "category": "prof_dreamsmithing", + "name": { "str": "Basics of Dreamsmithing" }, + "description": "You know how you use your mind to transform dreamdross into basic shapes.", + "can_learn": true, + "default_time_multiplier": 1.5, + "default_skill_penalty": 0, + "time_to_learn": "2 h" + }, + { + "type": "proficiency", + "id": "prof_dreamsmithing_weapon", + "category": "prof_dreamsmithing", + "name": { "str": "Dreamsmithing of Weapons" }, + "description": "Your knowledge has grown, and you know how to shape dreamdross into a weapon of terrible power.", + "required_proficiencies": [ "prof_dreamsmithing" ], + "can_learn": true, + "default_time_multiplier": 1.5, + "default_skill_penalty": 0, + "time_to_learn": "4 h" + }, + { + "type": "proficiency", + "id": "prof_dreamsmithing_armor", + "category": "prof_dreamsmithing", + "name": { "str": "Dreamsmithing of Armor" }, + "description": "Your knowledge has grown, and you know how to shape dreamdross into an indestructible armor.", + "required_proficiencies": [ "prof_dreamsmithing" ], + "can_learn": true, + "default_time_multiplier": 1.5, + "default_skill_penalty": 0, + "time_to_learn": "4 h" + }, + { + "type": "proficiency", + "id": "prof_dreamsmithing_peak", + "category": "prof_dreamsmithing", + "name": { "str": "Dreamsmithing" }, + "description": "Your mind and feeling are the one. Your items are impossible. Your dreamdross could be everything.", + "required_proficiencies": [ "prof_dreamsmithing" ], + "can_learn": true, + "default_time_multiplier": 1.5, + "default_skill_penalty": 0, + "time_to_learn": "8 h" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/player/renfield_cbms.json b/data/Mainline_mods/Mods/Xedra_Evolved/player/renfield_cbms.json new file mode 100644 index 000000000..8912a2891 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/player/renfield_cbms.json @@ -0,0 +1,78 @@ +[ + { + "id": "bio_flesh_roots", + "type": "bionic", + "name": { "str": "Fleshy Root Structures" }, + "description": "A fairly disturbing bionic module created by vampires for their servants. Installed by planting the seed next to the heart inside of the chest, then sealed back up, the remainder of the surgery the seed spreads its root structures across the body and limbs. The roots large enough to help obstruct damage to the body don't extend into the feet and hands but they do wrap around the skull in places. They take up very little space for a body plus limbs CBM running mostly along the top layers of the skin. Rumored to grow denser and thicker as they age over decades and centuries.", + "occupied_bodyparts": [ [ "torso", 4 ], [ "head", 1 ], [ "arm_l", 1 ], [ "arm_r", 1 ], [ "leg_l", 2 ], [ "leg_r", 2 ] ], + "flags": [ "BIONIC_NPC_USABLE", "BIONIC_SHOCKPROOF" ], + "passive_pseudo_items": [ "armor_bio_flesh_roots" ] + }, + { + "id": "bio_fuel_cell_vamp_blood", + "type": "bionic", + "name": { "str": "Vampire Blood Power Generator" }, + "description": "Embedded into your back and connected to your bionic power supply is a device to convert the blood of vampires to produce a facsimile of bionic power. It can store up to 100 mL of blood. For unknown reasons if installed into an active vampire it will not function when filled with its bearers blood. No one who talks about it knows why.", + "occupied_bodyparts": [ [ "torso", 8 ] ], + "fuel_options": [ "vampire_blood" ], + "fuel_efficiency": 0.6, + "exothermic_power_gen": false, + "time": "6 s", + "flags": [ "BIONIC_TOGGLED", "BIONIC_POWER_SOURCE" ], + "passive_pseudo_items": [ "integrated_vamp_blood_bank" ] + }, + { + "id": "integrated_vamp_blood_bank", + "type": "GENERIC", + "category": "container", + "name": { "str": "internal vampire blood bank" }, + "description": "Internal tank for vampire blood power generator bionic.", + "volume": "251 ml", + "weight": "1 g", + "price": 0, + "material": [ "plastic" ], + "symbol": "(", + "color": "magenta", + "flags": [ "INTEGRATED", "UNBREAKABLE", "PERSONAL", "NO_REPAIR", "ALLOWS_NATURAL_ATTACKS", "BIONIC_FUEL_SOURCE" ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "watertight": true, + "rigid": true, + "max_contains_volume": "250 ml", + "max_item_volume": "250 ml", + "max_contains_weight": "1 kg", + "material_restriction": [ "vampire_blood" ] + } + ] + }, + { + "id": "xe_bio_chiropteran_signal", + "type": "bionic", + "name": { "str": "Chiropteran Vocal Cords" }, + "description": "Your vocal cords have been enhanced, able to resonate like a bat to draw in a swarm to protect you.", + "occupied_bodyparts": [ [ "mouth", 1 ] ], + "flags": [ "USES_BIONIC_POWER" ], + "activated_eocs": [ "EOC_SUMMON_BAT_SWARM" ], + "act_cost": "100 J" + }, + { + "id": "xe_bio_xl_chiropteran_signal", + "type": "bionic", + "name": { "str": "Desmodontinae Gargantua Vocalizer" }, + "description": "Your vocal cords have been reinforced and enlarged. You can make a strange noise with it, but you don't know what it's supposed to communicate.", + "occupied_bodyparts": [ [ "mouth", 2 ] ], + "flags": [ "USES_BIONIC_POWER" ], + "activated_eocs": [ "EOC_SUMMON_XL_BAT" ], + "act_cost": "50 J" + }, + { + "id": "xe_bio_spore_enhancer", + "type": "bionic", + "name": { "str": "Crypt Spore Enhancement System" }, + "description": "There are fungi that grow in the corpse dirt that vampires rest in. In unexposed humans these fungal spores can cause crippling coughing fits and even death. But when treated with a solution made of vampire blood or harvested straight from the still-warm lungs of a previous recipient they can be migrated into a living host body where they will speed up reactions and increase strength slightly.", + "occupied_bodyparts": [ [ "torso", 2 ], [ "arm_l", 2 ], [ "arm_r", 2 ], [ "leg_l", 3 ], [ "leg_r", 3 ] ], + "stat_bonus": [ [ "STR", 1 ], [ "DEX", 1 ] ], + "flags": [ "BIONIC_NPC_USABLE" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/procgen/dreamer_procgen.json b/data/Mainline_mods/Mods/Xedra_Evolved/procgen/dreamer_procgen.json new file mode 100644 index 000000000..287f8649f --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/procgen/dreamer_procgen.json @@ -0,0 +1,55 @@ +[ + { + "type": "relic_procgen_data", + "id": "dreamer_artifacts", + "charge_types": [ + { + "weight": 100, + "charges": { "range": [ 7, 7 ], "power": 0 }, + "charges_per_use": { "range": [ 1, 1 ], "power": 0 }, + "max_charges": { "range": [ 3, 7 ], "power": 25 }, + "recharge_type": "periodic", + "time": [ "18 h", "30 h" ] + } + ], + "active_procgen_values": [ + { "weight": 10, "spell_id": "XAEA_quake", "base_power": 250 }, + { "weight": 99, "spell_id": "XAEA_teleport_rand", "base_power": 250 }, + { "weight": 10, "spell_id": "XAEA_kill_spell", "base_power": 250 }, + { "weight": 20, "spell_id": "XAEA_heal", "base_power": 250 }, + { "weight": 50, "spell_id": "XAEA_pain", "base_power": 250 }, + { "weight": 50, "spell_id": "XAEA_stamina", "base_power": 250 }, + { "weight": 50, "spell_id": "XAEA_mana", "base_power": 250 }, + { "weight": 99, "spell_id": "XAEA_map", "base_power": 250 }, + { "weight": 50, "spell_id": "XAEA_str", "base_power": 250 }, + { "weight": 50, "spell_id": "XAEA_int", "base_power": 250 }, + { "weight": 75, "spell_id": "XAEA_electric_sight", "base_power": 250 }, + { "weight": 50, "spell_id": "XAEA_incorporeal", "base_power": 250 }, + { "weight": 40, "spell_id": "XAEA_line", "base_power": 250 }, + { "weight": 40, "spell_id": "XAEA_hologram_summon", "base_power": 250 }, + { "weight": 40, "spell_id": "XAEA_electric_emit", "base_power": 250 }, + { "weight": 30, "spell_id": "XAEA_mod_moves", "base_power": 250 }, + { "weight": 20, "spell_id": "XAEA_motion_vision", "base_power": 250 } + ], + "type_weights": [ { "weight": 100, "value": "active_enchantment" } ], + "items": [ + { "weight": 100, "item": "xe_art_clock" }, + { "weight": 100, "item": "xe_art_rod" }, + { "weight": 100, "item": "xe_art_monitor" }, + { "weight": 100, "item": "xe_art_mess" }, + { "weight": 100, "item": "xe_art_sculpture" }, + { "weight": 100, "item": "xe_art_disc" }, + { "weight": 100, "item": "xe_art_instrument" }, + { "weight": 100, "item": "xe_art_napkin" }, + { "weight": 100, "item": "xe_art_urchin" }, + { "weight": 100, "item": "xe_art_jelly" }, + { "weight": 100, "item": "xe_art_spiral" }, + { "weight": 100, "item": "xe_art_pin" }, + { "weight": 100, "item": "xe_art_tube" }, + { "weight": 100, "item": "xe_art_pyramid" }, + { "weight": 100, "item": "xe_art_crystal" }, + { "weight": 100, "item": "xe_art_knot" }, + { "weight": 100, "item": "xe_art_crescent" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/procgen/dreamsmith_procgen.json b/data/Mainline_mods/Mods/Xedra_Evolved/procgen/dreamsmith_procgen.json new file mode 100644 index 000000000..63cb00de9 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/procgen/dreamsmith_procgen.json @@ -0,0 +1,504 @@ +[ + { + "type": "relic_procgen_data", + "id": "dreamsmith_lottery_atk", + "passive_add_procgen_values": [ + { + "weight": 100, + "min_value": 1, + "max_value": 20, + "type": "ATTACK_SPEED", + "increment": 1, + "power_per_increment": 150, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 1, + "type": "BONUS_DODGE", + "increment": 1, + "power_per_increment": 3000, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 5, + "type": "DEXTERITY", + "increment": 1, + "power_per_increment": 600, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 5, + "type": "INTELLIGENCE", + "increment": 1, + "power_per_increment": 600, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 5, + "type": "PERCEPTION", + "increment": 1, + "power_per_increment": 600, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 5, + "type": "STRENGTH", + "increment": 1, + "power_per_increment": 600, + "ench_has": "WIELD" + }, + { "weight": 100, "min_value": 1, "max_value": 15, "type": "SPEED", "increment": 1, "power_per_increment": 600 }, + { + "weight": 100, + "min_value": 1, + "max_value": 500, + "type": "MAX_MANA", + "increment": 1, + "power_per_increment": 6, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 3000, + "type": "MAX_STAMINA", + "increment": 1, + "power_per_increment": 1, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "ITEM_DAMAGE_ACID", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "ITEM_DAMAGE_BASH", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "ITEM_DAMAGE_BIO", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "ITEM_DAMAGE_BULLET", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "ITEM_DAMAGE_COLD", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "ITEM_DAMAGE_CUT", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "ITEM_DAMAGE_ELEC", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "ITEM_DAMAGE_HEAT", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "ITEM_DAMAGE_PURE", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "ITEM_DAMAGE_STAB", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WIELD" + } + ], + "passive_mult_procgen_values": [ + { + "weight": 100, + "min_value": 0, + "max_value": 0.2, + "type": "ATTACK_SPEED", + "increment": 0.1, + "power_per_increment": 2000, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 0, + "max_value": 0.2, + "type": "DEXTERITY", + "increment": 0.1, + "power_per_increment": 2000, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 0, + "max_value": 0.2, + "type": "INTELLIGENCE", + "increment": 0.1, + "power_per_increment": 2000, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 0, + "max_value": 0.2, + "type": "PERCEPTION", + "increment": 0.1, + "power_per_increment": 2000, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 0, + "max_value": 0.2, + "type": "STRENGTH", + "increment": 0.1, + "power_per_increment": 2000, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 0, + "max_value": 0.2, + "type": "SPEED", + "increment": 0.1, + "power_per_increment": 2000, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 0, + "max_value": 0.2, + "type": "MAX_MANA", + "increment": 0.1, + "power_per_increment": 2000, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 0, + "max_value": 0.2, + "type": "MAX_STAMINA", + "increment": 0.1, + "power_per_increment": 2000, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 0, + "max_value": 0.2, + "type": "REGEN_STAMINA", + "increment": 0.1, + "power_per_increment": 2000, + "ench_has": "WIELD" + }, + { + "weight": 100, + "min_value": 0, + "max_value": 0.2, + "type": "MELEE_DAMAGE", + "increment": 0.1, + "power_per_increment": 2000, + "ench_has": "WIELD" + } + ], + "type_weights": [ { "weight": 100, "value": "passive_enchantment_add" }, { "weight": 50, "value": "passive_enchantment_mult" } ], + "items": [ + { "weight": 100, "item": "dreamforged_q_staff" }, + { "weight": 100, "item": "dreamforged_longsword" }, + { "weight": 100, "item": "dreamforged_warhammer" }, + { "weight": 100, "item": "dreamforged_spear" }, + { "weight": 100, "item": "dreamforged_halberd" }, + { "weight": 100, "item": "dreamforged_glaive" }, + { "weight": 100, "item": "dreamforged_naginata" }, + { "weight": 100, "item": "dreamforged_mace" }, + { "weight": 100, "item": "dreamforged_morningstar" }, + { "weight": 100, "item": "dreamforged_estoc" }, + { "weight": 100, "item": "dreamforged_arming_sword" }, + { "weight": 100, "item": "dreamforged_broadsword" }, + { "weight": 100, "item": "dreamforged_battleaxe" }, + { "weight": 100, "item": "dreamforged_katana" }, + { "weight": 100, "item": "dreamforged_knife_combat" }, + { "weight": 100, "item": "dreamforged_kris" }, + { "weight": 100, "item": "dreamforged_kukri" }, + { "weight": 100, "item": "dreamforged_nodachi" }, + { "weight": 100, "item": "dreamforged_rapier" }, + { "weight": 100, "item": "dreamforged_tanto" }, + { "weight": 100, "item": "dreamforged_wakizashi" }, + { "weight": 100, "item": "dreamforged_zweihander" }, + { "weight": 100, "item": "dreamforged_khopesh" }, + { "weight": 100, "item": "dreamforged_lucerne" }, + { "weight": 100, "item": "dreamforged_knuckle" } + ] + }, + { + "type": "relic_procgen_data", + "id": "dreamsmith_lottery_def", + "passive_add_procgen_values": [ + { "weight": 100, "min_value": -1, "max_value": -20, "type": "ARMOR_ACID", "increment": -1, "power_per_increment": 75 }, + { + "weight": 100, + "min_value": -1, + "max_value": -20, + "type": "ARMOR_BASH", + "increment": -1, + "power_per_increment": 150, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": -1, + "max_value": -20, + "type": "ARMOR_BIO", + "increment": -1, + "power_per_increment": 75, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": -1, + "max_value": -20, + "type": "ARMOR_BULLET", + "increment": -1, + "power_per_increment": 150, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": -1, + "max_value": -20, + "type": "ARMOR_COLD", + "increment": -1, + "power_per_increment": 75, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": -1, + "max_value": -20, + "type": "ARMOR_CUT", + "increment": -1, + "power_per_increment": 150, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": -1, + "max_value": -20, + "type": "ARMOR_ELEC", + "increment": -1, + "power_per_increment": 75, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": -1, + "max_value": -20, + "type": "ARMOR_HEAT", + "increment": -1, + "power_per_increment": 75, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": -1, + "max_value": -20, + "type": "ARMOR_STAB", + "increment": -1, + "power_per_increment": 75, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 1, + "type": "BONUS_DODGE", + "increment": 1, + "power_per_increment": 1500, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 30, + "type": "CLIMATE_CONTROL_HEAT", + "increment": 1, + "power_per_increment": 50, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 30, + "type": "CLIMATE_CONTROL_CHILL", + "increment": 1, + "power_per_increment": 50, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 2, + "type": "DEXTERITY", + "increment": 1, + "power_per_increment": 1500, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 2, + "type": "INTELLIGENCE", + "increment": 1, + "power_per_increment": 1500, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 2, + "type": "PERCEPTION", + "increment": 1, + "power_per_increment": 1500, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 2, + "type": "STRENGTH", + "increment": 1, + "power_per_increment": 1500, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": -1, + "max_value": -50, + "type": "FOOTSTEP_NOISE", + "increment": -1, + "power_per_increment": 30, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 50, + "type": "SIGHT_RANGE_ELECTRIC", + "increment": 25, + "power_per_increment": 750, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 500, + "type": "MAX_MANA", + "increment": 100, + "power_per_increment": 600, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 3000, + "type": "MAX_STAMINA", + "increment": 500, + "power_per_increment": 500, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 10, + "type": "REGEN_HP", + "increment": 1, + "power_per_increment": 300, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 100, + "type": "REGEN_MANA", + "increment": 10, + "power_per_increment": 300, + "ench_has": "WORN" + }, + { + "weight": 100, + "min_value": 1, + "max_value": 20, + "type": "REGEN_STAMINA", + "increment": 1, + "power_per_increment": 150, + "ench_has": "WORN" + } + ], + "type_weights": [ { "weight": 100, "value": "passive_enchantment_add" } ], + "items": [ + { "weight": 100, "item": "dreamforged_fullhelmet" }, + { "weight": 100, "item": "dreamforged_helmet" }, + { "weight": 100, "item": "dreamforged_plate_armor" }, + { "weight": 100, "item": "dreamforged_armguard_plate" }, + { "weight": 100, "item": "dreamforged_boots" } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/proficiencies.json b/data/Mainline_mods/Mods/Xedra_Evolved/proficiencies.json new file mode 100644 index 000000000..55af3f03b --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/proficiencies.json @@ -0,0 +1,14 @@ +[ + { + "type": "proficiency", + "id": "prof_alien_biology", + "category": "prof_weakpoint", + "name": { "str": "Principles of Alien Biology" }, + "description": "Very basic familiarity with various types of alien creatures.", + "can_learn": true, + "time_to_learn": "6 h", + "required_proficiencies": [ "prof_intro_biology" ], + "default_weakpoint_bonus": 2, + "default_weakpoint_penalty": 0 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/alchemy.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/alchemy.json new file mode 100644 index 000000000..dca25f708 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/alchemy.json @@ -0,0 +1,363 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "extra_str_aspirin", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "chemistry", + "skills_required": [ "firstaid", 1 ], + "difficulty": 2, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_intro_chem_synth" }, + { "proficiency": "prof_pharmaceutical" } + ], + "qualities": [ { "id": "CHEM", "level": 2 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], + "components": [ [ [ "chem_ethanol", 1 ] ], [ [ "aspirin", 1 ] ], [ [ "faewild", 1 ] ] ], + "charges": 20 + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "small_blessing_brigit", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "chemistry", + "skills_required": [ "cooking", 1 ], + "flags": [ "SECRET" ], + "difficulty": 2, + "time": "160 m", + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_intro_chem_synth" }, + { "proficiency": "prof_pharmaceutical" } + ], + "qualities": [ { "id": "CHEM", "level": 2 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], + "components": [ [ [ "water_clean", 1 ] ], [ [ "corpse_ash", 1 ] ], [ [ "poppy_bud", 1 ] ], [ [ "royal_jelly", 1 ] ] ], + "charges": 3 + }, + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "blackout_rage_drink", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "deduction", + "difficulty": 3, + "time": "1 m", + "batch_time_factors": [ 50, 4 ], + "flags": [ "SECRET" ], + "components": [ [ [ "energy_drink", 3 ] ], [ [ "vodka", 3 ], [ "tequila", 3 ] ], [ [ "lotus_blossom", 1 ] ] ], + "charges": 6 + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "sixdust", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "deduction", + "difficulty": 6, + "time": "1 h", + "result_mult": 20, + "batch_time_factors": [ 80, 1 ], + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_organic_chemistry" }, + { "proficiency": "prof_intro_chem_synth" } + ], + "qualities": [ { "id": "CHEM", "level": 2 } ], + "tools": [ + [ [ "surface_heat", 50, "LIST" ] ], + [ [ "electrolysis_kit", 200 ] ], + [ [ "chem_sulphuric_acid", -1 ] ], + [ [ "chem_muriatic_acid", -1 ] ], + [ [ "chem_antimony_trichloride", -1 ] ], + [ [ "chem_ferric_chloride", -1 ] ], + [ [ "silver_small", -1 ] ], + [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] + ], + "components": [ + [ [ "chem_ethanol", 46 ] ], + [ [ "salt_water", 4 ] ], + [ [ "chem_benzene", 90 ] ], + [ [ "disinfectant", 20 ], [ "oxy_powder", 100 ] ], + [ [ "bleach", 5 ] ], + [ [ "wyld_candy", 2 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "prophets_lsd", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "deduction", + "difficulty": 6, + "time": "1 h", + "batch_time_factors": [ 80, 1 ], + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_organic_chemistry" }, + { "proficiency": "prof_intro_chem_synth" } + ], + "qualities": [ { "id": "CHEM", "level": 2 } ], + "tools": [ + [ [ "surface_heat", 50, "LIST" ] ], + [ [ "electrolysis_kit", 200 ] ], + [ [ "chem_sulphuric_acid", -1 ] ], + [ [ "chem_muriatic_acid", -1 ] ], + [ [ "chem_antimony_trichloride", -1 ] ], + [ [ "chem_ferric_chloride", -1 ] ], + [ [ "silver_small", -1 ] ], + [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] + ], + "components": [ + [ [ "chem_ethanol", 46 ] ], + [ [ "lsd", 4 ] ], + [ [ "fae_meat", 1 ] ], + [ [ "chem_benzene", 90 ] ], + [ [ "oxy_powder", 100 ] ], + [ [ "scrap_dreamdross", 5 ] ], + [ [ "lotus_blossom", 2 ] ] + ], + "charges": 100 + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "truckers_stamina_pills", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "chemistry", + "skills_required": [ "firstaid", 1 ], + "difficulty": 2, + "time": "24 m", + "flags": [ "SECRET" ], + "charges": 10, + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_intro_chem_synth" }, + { "proficiency": "prof_pharmaceutical" } + ], + "qualities": [ { "id": "CHEM", "level": 2 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], + "components": [ [ [ "chem_ethanol", 1 ] ], [ [ "scrap_dreamdross", 3 ] ], [ [ "truckstop_viagra", 10 ] ], [ [ "faewild", 10 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "feline_periapta", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "skills_required": [ "deduction", 1 ], + "difficulty": 3, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ { "proficiency": "prof_fine_metalsmithing", "required": false, "time_multiplier": 3 } ], + "tools": [ [ [ "metal_file", -1 ] ] ], + "components": [ [ [ "gold_necklace", 1 ] ], [ [ "scrap_dreamdross", 3 ] ], [ [ "feline_sample", 1 ] ], [ [ "diamond", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "lupine_periapta", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "skills_required": [ "deduction", 1 ], + "difficulty": 3, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ { "proficiency": "prof_fine_metalsmithing", "required": false, "time_multiplier": 3 } ], + "tools": [ [ [ "metal_file", -1 ] ] ], + "components": [ [ [ "gold_necklace", 1 ] ], [ [ "scrap_dreamdross", 3 ] ], [ [ "lupine_sample", 1 ] ], [ [ "diamond", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "cephalopod_periapta", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "skills_required": [ "deduction", 1 ], + "difficulty": 3, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ { "proficiency": "prof_fine_metalsmithing", "required": false, "time_multiplier": 3 } ], + "tools": [ [ [ "metal_file", -1 ] ] ], + "components": [ [ [ "gold_necklace", 1 ] ], [ [ "scrap_dreamdross", 3 ] ], [ [ "cephalopod_sample", 1 ] ], [ [ "diamond", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "butterfly_periapta", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "skills_required": [ "deduction", 1 ], + "difficulty": 3, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ { "proficiency": "prof_fine_metalsmithing", "required": false, "time_multiplier": 3 } ], + "tools": [ [ [ "metal_file", -1 ] ] ], + "components": [ [ [ "gold_necklace", 1 ] ], [ [ "scrap_dreamdross", 3 ] ], [ [ "insect_sample", 1 ] ], [ [ "diamond", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "scorpion_periapta", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "skills_required": [ "deduction", 1 ], + "difficulty": 3, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ { "proficiency": "prof_fine_metalsmithing", "required": false, "time_multiplier": 3 } ], + "tools": [ [ [ "metal_file", -1 ] ] ], + "components": [ [ [ "gold_necklace", 1 ] ], [ [ "scrap_dreamdross", 3 ] ], [ [ "insect_sample", 1 ] ], [ [ "diamond", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "spider_periapta", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "skills_required": [ "deduction", 1 ], + "difficulty": 3, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ { "proficiency": "prof_fine_metalsmithing", "required": false, "time_multiplier": 3 } ], + "tools": [ [ [ "metal_file", -1 ] ] ], + "components": [ [ [ "gold_necklace", 1 ] ], [ [ "scrap_dreamdross", 3 ] ], [ [ "spider_sample", 1 ] ], [ [ "diamond", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "plant_periapta", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "skills_required": [ "deduction", 1 ], + "difficulty": 3, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ { "proficiency": "prof_fine_metalsmithing", "required": false, "time_multiplier": 3 } ], + "tools": [ [ [ "metal_file", -1 ] ] ], + "components": [ [ [ "gold_necklace", 1 ] ], [ [ "scrap_dreamdross", 3 ] ], [ [ "plant_sample", 1 ] ], [ [ "diamond", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "life_extension_potion", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "chemistry", + "skills_required": [ "firstaid", 4 ], + "difficulty": 5, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_intro_chem_synth" }, + { "proficiency": "prof_pharmaceutical" } + ], + "qualities": [ { "id": "CHEM", "level": 2 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], + "components": [ [ [ "chem_sulphur", 1 ] ], [ [ "chem_manganese_dioxide", 1 ] ], [ [ "xe_elder_ginseng", 1 ] ], [ [ "water", 2 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "potion_dex", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "chemistry", + "skills_required": [ "firstaid", 4 ], + "difficulty": 5, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_intro_chem_synth" }, + { "proficiency": "prof_pharmaceutical" } + ], + "qualities": [ { "id": "CHEM", "level": 2 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], + "components": [ + [ [ "chem_sulphur", 1 ] ], + [ [ "chem_manganese_dioxide", 1 ] ], + [ [ "feline_sample", 1 ], [ "lupine_sample", 1 ], [ "batrachian_sample", 1 ] ], + [ [ "water", 2 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "potion_strength", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "chemistry", + "skills_required": [ "firstaid", 4 ], + "difficulty": 5, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_intro_chem_synth" }, + { "proficiency": "prof_pharmaceutical" } + ], + "qualities": [ { "id": "CHEM", "level": 2 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], + "components": [ + [ [ "chem_sulphur", 1 ] ], + [ [ "chem_manganese_dioxide", 1 ] ], + [ [ "cattle_sample", 1 ], [ "ursine_sample", 1 ], [ "beast_sample", 1 ] ], + [ [ "water", 2 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "hares_leap_potion", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "chemistry", + "skills_required": [ "firstaid", 4 ], + "difficulty": 5, + "time": "24 m", + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_intro_chem_synth" }, + { "proficiency": "prof_pharmaceutical" } + ], + "qualities": [ { "id": "CHEM", "level": 2 } ], + "tools": [ [ [ "surface_heat", 25, "LIST" ] ] ], + "components": [ + [ [ "chem_sulphur", 1 ] ], + [ [ "chem_manganese_dioxide", 1 ] ], + [ [ "batrachian_sample", 1 ], [ "rabbit_sample", 1 ] ], + [ [ "water", 2 ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/blacksmithing.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/blacksmithing.json new file mode 100644 index 000000000..f0f7506e7 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/blacksmithing.json @@ -0,0 +1,69 @@ +[ + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "moon_tear_chain_link", + "id_suffix": "fabrication", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "difficulty": 2, + "time": "5 m", + "book_learn": [ [ "textbook_armwest", 1 ], [ "textbook_fabrication", 1 ], [ "recipe_melee", 1 ] ], + "qualities": [ { "id": "WRENCH", "level": 1 } ], + "tools": [ [ [ "boltcutters", -1 ], [ "toolset", -1 ] ], [ [ "cu_pipe", -1 ] ] ], + "components": [ [ [ "moon_tear_wire", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "moon_tears_fasteners", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "difficulty": 1, + "time": "3 h", + "autolearn": true, + "using": [ [ "blacksmithing_standard", 1 ] ], + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } ], + "components": [ [ [ "moon_tear_ingot", 1 ] ], [ [ "scrap_dreamdross", 1 ] ] ], + "tools": [ [ [ "hotcut", -1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "moon_tear_wire", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "difficulty": 3, + "time": "3 h", + "result_mult": 6, + "autolearn": true, + "using": [ [ "blacksmithing_standard", 2 ] ], + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } ], + "components": [ [ [ "moon_tear_ingot", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "moon_tear_wire", + "id_suffix": "wire_draw_machine", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "difficulty": 3, + "time": "1 h 30 m", + "result_mult": 6, + "autolearn": true, + "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 } ], + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } ], + "tools": [ + [ [ "tongs", -1 ] ], + [ [ "hotcut", -1 ] ], + [ [ "forge", 40 ], [ "oxy_torch", 40 ] ], + [ [ "wire_draw_machine", 100 ] ] + ], + "components": [ [ [ "moon_tear_ingot", 1 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/category.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/category.json new file mode 100644 index 000000000..23421c674 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/category.json @@ -0,0 +1,16 @@ +[ + { + "type": "recipe_category", + "id": "CC_XEDRA", + "recipe_subcategories": [ + "CSC_XEDRA_RESEARCH", + "CSC_XEDRA_WEAPONS", + "CSC_XEDRA_ARMOR", + "CSC_XEDRA_TOOLS", + "CSC_XEDRA_ROBOTS", + "CSC_XEDRA_MISC", + "CSC_XEDRA_ALCHEMY", + "CSC_XEDRA_ELEMENTAL" + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/chemistry.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/chemistry.json new file mode 100644 index 000000000..754e6cdcc --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/chemistry.json @@ -0,0 +1,28 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "tanning_glimmer_pelt", + "id_suffix": "modern", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "chemistry", + "skills_required": [ "survival", 3 ], + "difficulty": 4, + "time": "20 m", + "batch_time_factors": [ 50, 5 ], + "book_learn": [ [ "textbook_survival", 6 ], [ "textbook_chemistry", 4 ], [ "modern_tanner", 4 ] ], + "qualities": [ + { "id": "CHEM", "level": 1 }, + { "id": "COOK", "level": 3 }, + { "id": "BOIL", "level": 2 }, + { "id": "CONTAIN", "level": 1 } + ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ] ], + "components": [ + [ [ "water_clean", 2 ], [ "water", 2 ] ], + [ [ "lye_powder", 10 ], [ "aspirin", 10 ] ], + [ [ "cured_glimmer_pelt", 6 ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/cold_iron.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/cold_iron.json new file mode 100644 index 000000000..b00ed36eb --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/cold_iron.json @@ -0,0 +1,147 @@ +[ + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "cold_iron_ingot", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "difficulty": 3, + "time": "8 h", + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_toolsmithing" } + ], + "using": [ [ "blacksmithing_standard", 8 ], [ "lc_steel_standard", 2 ] ], + "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ [ [ "wax", 1 ] ], [ [ "lamp_oil", 5 ] ], [ [ "scrap_dreamdross", 1 ], [ "holy_symbol", 2 ] ] ] + }, + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "cold_iron_warhammer", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "difficulty": 7, + "time": "8 h", + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_toolsmithing" }, + { "proficiency": "prof_carving", "skill_penalty": 0 } + ], + "using": [ [ "blacksmithing_standard", 8 ] ], + "qualities": [ { "id": "GRIND", "level": 2 } ], + "tools": [ [ [ "drift", -1 ] ] ], + "components": [ [ [ "cold_iron_ingot", 4 ] ], [ [ "2x4", 1 ], [ "stick", 2 ] ] ] + }, + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "cold_iron_arming_sword", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "difficulty": 7, + "time": "7 h", + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_bladesmith" } + ], + "using": [ [ "blacksmithing_standard", 12 ], [ "tailoring_leather_patchwork_simple", 1 ] ], + "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "GRIND", "level": 2 } ], + "tools": [ [ [ "tongs", -1 ] ], [ [ "hotcut", -1 ] ] ], + "components": [ [ [ "cold_iron_ingot", 2 ] ] ] + }, + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "cold_iron_battleaxe", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "difficulty": 8, + "time": "8 h", + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_metalworking", "time_multiplier": 1.2, "learning_time_multiplier": 0.2, "skill_penalty": 0 }, + { + "proficiency": "prof_blacksmithing", + "time_multiplier": 1.2, + "learning_time_multiplier": 0.2, + "skill_penalty": 0 + }, + { + "proficiency": "prof_bladesmith", + "time_multiplier": 1.2, + "learning_time_multiplier": 0.2, + "skill_penalty": 0 + }, + { "proficiency": "prof_carving", "time_multiplier": 1.2, "learning_time_multiplier": 0.2, "skill_penalty": 0 } + ], + "using": [ [ "blacksmithing_standard", 12 ] ], + "qualities": [ { "id": "GRIND", "level": 2 } ], + "tools": [ [ [ "hotcut", -1 ], [ "drift", -1 ] ] ], + "components": [ [ [ "2x4", 2 ], [ "stick", 4 ] ], [ [ "fur", 2 ], [ "leather", 2 ] ], [ [ "cold_iron_ingot", 4 ] ] ] + }, + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "cold_iron_knife", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ALCHEMY", + "skill_used": "fabrication", + "difficulty": 4, + "time": "6 h 30 m", + "flags": [ "SECRET" ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_blacksmithing" }, + { "proficiency": "prof_bladesmith" } + ], + "using": [ [ "forging_standard", 2 ] ], + "qualities": [ { "id": "GRIND", "level": 2 } ], + "tools": [ [ [ "tongs", -1 ], [ "metalworking_tongs", -1 ] ], [ [ "casting_mold", -1 ] ] ], + "components": [ + [ [ "cordage_short", 2, "LIST" ] ], + [ [ "cold_iron_ingot", 1 ] ], + [ [ "leather", 1 ], [ "fur", 1 ] ], + [ [ "adhesive", 2, "LIST" ] ] + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "blood_of_saints", + "category": "CC_CHEM", + "subcategory": "CSC_CHEM_MUTAGEN", + "skill_used": "chemistry", + "skills_required": [ "deduction", 3 ], + "difficulty": 6, + "time": "45 m", + "batch_time_factors": [ 80, 20 ], + "flags": [ "SECRET" ], + "using": [ [ "mutagen_production_standard", 25 ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_biochemistry" }, + { "proficiency": "prof_intro_chem_synth" }, + { "proficiency": "prof_chem_synth" } + ], + "components": [ + [ [ "small_relic", 2 ] ], + [ [ "bleach", 2 ], [ "oxy_powder", 200 ] ], + [ [ "ammonia_liquid", 1 ], [ "lye_powder", 100 ] ], + [ [ "mercury", 1 ] ], + [ [ "silver_small", 3 ] ], + [ [ "gold_small", 1 ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/disassemble.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/disassemble.json new file mode 100644 index 000000000..9968f804e --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/disassemble.json @@ -0,0 +1,68 @@ +[ + { + "result": "broken_sniperbot", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "fabrication", + "difficulty": 2, + "time": "18 h", + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ], + "components": [ + [ [ "inventor_sniper", 1 ] ], + [ [ "scrap_aluminum", 150 ] ], + [ [ "cable", 50 ] ], + [ [ "lens", 1 ] ], + [ [ "motor_micro", 3 ] ], + [ [ "power_supply", 5 ] ], + [ [ "processor", 11 ] ], + [ [ "RAM", 4 ] ], + [ [ "scrap", 11 ] ], + [ [ "nuts_bolts", 13 ] ], + [ [ "inventor_heavy_cell", 1 ] ] + ] + }, + { + "result": "broken_shotgunbot", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "fabrication", + "difficulty": 2, + "time": "18 h", + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ], + "components": [ + [ [ "inventor_shotgun", 1 ] ], + [ [ "scrap_aluminum", 150 ] ], + [ [ "cable", 50 ] ], + [ [ "lens", 1 ] ], + [ [ "motor_micro", 3 ] ], + [ [ "power_supply", 5 ] ], + [ [ "processor", 11 ] ], + [ [ "RAM", 4 ] ], + [ [ "scrap", 11 ] ], + [ [ "nuts_bolts", 13 ] ], + [ [ "inventor_heavy_cell", 1 ] ] + ] + }, + { + "result": "broken_meleebot", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "fabrication", + "difficulty": 2, + "time": "18 h", + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 }, { "id": "HAMMER", "level": 1 } ], + "components": [ + [ [ "blade", 1 ] ], + [ [ "scrap_aluminum", 150 ] ], + [ [ "cable", 50 ] ], + [ [ "lens", 1 ] ], + [ [ "motor_micro", 3 ] ], + [ [ "power_supply", 5 ] ], + [ [ "processor", 11 ] ], + [ [ "RAM", 4 ] ], + [ [ "scrap", 11 ] ], + [ [ "nuts_bolts", 13 ] ], + [ [ "inventor_heavy_cell", 1 ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/dreamforged_armor.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/dreamforged_armor.json new file mode 100644 index 000000000..ad3017f1e --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/dreamforged_armor.json @@ -0,0 +1,176 @@ +[ + { + "type": "recipe", + "activity_level": "ACTIVE_EXERCISE", + "result": "dreamforged_ballistic_plate", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "proficiencies": [ { "proficiency": "prof_dreamsmithing" }, { "proficiency": "prof_dreamsmithing_armor" } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "time": "6 h", + "skill_used": "deduction", + "difficulty": 4, + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "result": "dreamforged_ballistic_plate_small", + "activity_level": "ACTIVE_EXERCISE", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "proficiencies": [ { "proficiency": "prof_dreamsmithing" }, { "proficiency": "prof_dreamsmithing_armor" } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "time": "5 h", + "skill_used": "deduction", + "difficulty": 4, + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "name": "dreamforged full helmet", + "id": "dreamforged_fullhelmet_ench", + "activity_level": "ACTIVE_EXERCISE", + "description": "Shape the armor you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_fullhelmet_ench", + "effect": [ { "u_spawn_item": "dreamforged_fullhelmet_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "proficiencies": [ { "proficiency": "prof_dreamsmithing" }, { "proficiency": "prof_dreamsmithing_armor" } ], + "components": [ [ [ "forged_dreamstuff_ingot", 2 ] ] ], + "time": "16 h", + "skill_used": "deduction", + "difficulty": 5, + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "name": "dreamforged helmet", + "id": "dreamforged_helmet_ench", + "copy-from": "dreamforged_fullhelmet_ench", + "description": "Shape the armor you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { "id": "dreamforged_helmet_ench", "effect": [ { "u_spawn_item": "dreamforged_helmet_ench", "use_item_group": true } ] } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "time": "8 h", + "difficulty": 4, + "flags": [ "SECRET" ] + }, + { + "type": "recipe", + "name": "dreamforged plate armor", + "id": "dreamforged_plate_armor_ench", + "copy-from": "dreamforged_fullhelmet_ench", + "description": "Shape the armor you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_plate_armor_ench", + "effect": [ { "u_spawn_item": "dreamforged_plate_armor_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 8 ] ] ], + "time": "22 h", + "flags": [ "SECRET" ], + "difficulty": 7 + }, + { + "type": "recipe", + "name": "dreamforged plate armor", + "id": "dreamforged_armguard_plate_ench", + "copy-from": "dreamforged_fullhelmet_ench", + "description": "Shape the armor you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_armguard_plate_ench", + "effect": [ { "u_spawn_item": "dreamforged_armguard_plate_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 3 ] ] ], + "time": "11 h", + "flags": [ "SECRET" ], + "difficulty": 5 + }, + { + "type": "recipe", + "name": "dreamforged boots", + "id": "dreamforged_boots_ench", + "copy-from": "dreamforged_fullhelmet_ench", + "description": "Shape the armor you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { "id": "dreamforged_boots_ench", "effect": [ { "u_spawn_item": "dreamforged_boots_ench", "use_item_group": true } ] } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 3 ] ] ], + "time": "12 h", + "flags": [ "SECRET" ], + "difficulty": 5 + }, + { + "type": "recipe", + "activity_level": "ACTIVE_EXERCISE", + "result": "dreamforged_helmet_berserker", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_dreamsmithing" }, + { "proficiency": "prof_dreamsmithing_armor" }, + { "proficiency": "prof_dreamsmithing_peak" } + ], + "components": [ [ [ "forged_dreamstuff_ingot", 2 ] ] ], + "time": "1 d 1 h", + "skill_used": "deduction", + "difficulty": 7, + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "copy-from": "dreamforged_helmet_berserker", + "result": "dreamforged_armguard_plate_berserk", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 3 ] ] ], + "time": "1 d 5 h", + "flags": [ "SECRET" ], + "difficulty": 8 + }, + { + "type": "recipe", + "copy-from": "dreamforged_helmet_berserker", + "result": "dreamforged_boots_berserk", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 3 ] ] ], + "time": "1 d 3 h", + "flags": [ "SECRET" ], + "difficulty": 7 + }, + { + "type": "recipe", + "copy-from": "dreamforged_helmet_berserker", + "result": "dreamforged_fullhelmet_arcane", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 3 ] ] ], + "time": "1 d 9 h", + "flags": [ "SECRET" ], + "difficulty": 7 + }, + { + "type": "recipe", + "copy-from": "dreamforged_helmet_berserker", + "result": "dreamforged_armguard_plate_gunslinger", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 3 ] ] ], + "time": "2 d 6 h", + "flags": [ "SECRET" ], + "difficulty": 6 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/dreamforged_tool.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/dreamforged_tool.json new file mode 100644 index 000000000..18c1fcb04 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/dreamforged_tool.json @@ -0,0 +1,71 @@ +[ + { + "type": "recipe", + "result": "dreamforged_hacksaw", + "activity_level": "ACTIVE_EXERCISE", + "proficiencies": [ { "proficiency": "prof_dreamsmithing" } ], + "components": [ [ [ "dreamdross_lump", 5 ] ] ], + "time": "3 h", + "skill_used": "deduction", + "difficulty": 3, + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_TOOLS" + }, + { + "type": "recipe", + "result": "dreamforged_hammer", + "copy-from": "dreamforged_hacksaw", + "components": [ [ [ "dreamdross_lump", 7 ] ] ], + "time": "2 h" + }, + { + "type": "recipe", + "result": "dreamforged_halligan", + "copy-from": "dreamforged_hacksaw", + "components": [ [ [ "dreamdross_lump", 11 ] ] ], + "time": "4 h" + }, + { + "type": "recipe", + "result": "dreamforged_pliers_locking", + "copy-from": "dreamforged_hacksaw", + "components": [ [ [ "dreamdross_lump", 5 ] ] ], + "time": "5 h" + }, + { + "type": "recipe", + "result": "dreamforged_pickaxe", + "copy-from": "dreamforged_hacksaw", + "components": [ [ [ "forged_dreamstuff_ingot", 6 ] ] ], + "time": "4 h" + }, + { + "type": "recipe", + "result": "dreamforged_picklocks", + "copy-from": "dreamforged_hacksaw", + "components": [ [ [ "dreamdross_lump", 2 ] ] ], + "time": "7 h" + }, + { + "type": "recipe", + "result": "dreamforged_scalpel", + "copy-from": "dreamforged_hacksaw", + "components": [ [ [ "scrap_dreamdross", 6 ] ] ], + "time": "5 h" + }, + { + "type": "recipe", + "result": "dreamforged_e_tool", + "copy-from": "dreamforged_hacksaw", + "components": [ [ [ "forged_dreamstuff_ingot", 2 ] ] ], + "time": "4 h" + }, + { + "type": "recipe", + "result": "dreamforged_ax", + "copy-from": "dreamforged_hacksaw", + "components": [ [ [ "forged_dreamstuff_ingot", 4 ] ] ], + "time": "4 h" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/dreamforged_weapon.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/dreamforged_weapon.json new file mode 100644 index 000000000..e07b06b3f --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/dreamforged_weapon.json @@ -0,0 +1,563 @@ +[ + { + "type": "recipe", + "result": "dreamdross_bo", + "activity_level": "ACTIVE_EXERCISE", + "proficiencies": [ { "proficiency": "prof_dreamsmithing" } ], + "components": [ + [ [ "dreamdross_lump", 2 ], [ "scrap_dreamdross", 20 ] ], + [ [ "stick_long", 1 ], [ "plank_long", 1 ], [ "long_pole", 1 ] ] + ], + "time": "4 h", + "skill_used": "deduction", + "difficulty": 1, + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "result": "dreamdross_knife", + "copy-from": "dreamdross_bo", + "components": [ + [ [ "dreamdross_lump", 2 ], [ "scrap_dreamdross", 20 ] ], + [ [ "knife_butcher", 1 ], [ "knife_chef", 1 ], [ "knife_carving", 1 ] ] + ], + "time": "2 h", + "flags": [ "SECRET" ], + "difficulty": 1 + }, + { + "type": "recipe", + "result": "dreamdross_club", + "copy-from": "dreamdross_bo", + "components": [ [ [ "dreamdross_lump", 2 ], [ "scrap_dreamdross", 20 ] ], [ [ "hammer", 1 ], [ "pipe", 1 ], [ "rebar", 1 ] ] ], + "time": "3 h", + "flags": [ "SECRET" ], + "difficulty": 2 + }, + { + "type": "recipe", + "name": "dreamforged long sword", + "id": "dreamforged_longsword_ench", + "activity_level": "ACTIVE_EXERCISE", + "proficiencies": [ { "proficiency": "prof_dreamsmithing" }, { "proficiency": "prof_dreamsmithing_weapon" } ], + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_longsword_ench", + "effect": [ { "u_spawn_item": "dreamforged_longsword_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "time": "10 h", + "flags": [ "SECRET" ], + "skill_used": "deduction", + "difficulty": 6, + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "name": "dreamforged quarterstaff", + "id": "dreamforged_q_staff_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_q_staff_ench", + "effect": [ { "u_spawn_item": "dreamforged_q_staff_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 5 ] ] ], + "difficulty": 4, + "flags": [ "SECRET" ], + "time": "7 h" + }, + { + "type": "recipe", + "name": "dreamforged warhammer", + "id": "dreamforged_warhammer_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_warhammer_ench", + "effect": [ { "u_spawn_item": "dreamforged_warhammer_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 3 ] ] ], + "difficulty": 6, + "flags": [ "SECRET" ], + "time": "11 h" + }, + { + "type": "recipe", + "name": "dreamforged spear", + "id": "dreamforged_spear_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { "id": "dreamforged_spear_ench", "effect": [ { "u_spawn_item": "dreamforged_spear_ench", "use_item_group": true } ] } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 5 ] ] ], + "difficulty": 6, + "flags": [ "SECRET" ], + "time": "9 h" + }, + { + "type": "recipe", + "name": "dreamforged halberd", + "id": "dreamforged_halberd_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_halberd_ench", + "effect": [ { "u_spawn_item": "dreamforged_halberd_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 5 ] ] ], + "difficulty": 7, + "flags": [ "SECRET" ], + "time": "12 h" + }, + { + "type": "recipe", + "name": "dreamforged glaive", + "id": "dreamforged_glaive_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { "id": "dreamforged_glaive_ench", "effect": [ { "u_spawn_item": "dreamforged_glaive_ench", "use_item_group": true } ] } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 5 ] ] ], + "difficulty": 7, + "flags": [ "SECRET" ], + "time": "11 h" + }, + { + "type": "recipe", + "name": "dreamforged naginata", + "id": "dreamforged_naginata_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_naginata_ench", + "effect": [ { "u_spawn_item": "dreamforged_naginata_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 5 ] ] ], + "difficulty": 6, + "flags": [ "SECRET" ], + "time": "13 h" + }, + { + "type": "recipe", + "name": "dreamforged mace", + "id": "dreamforged_mace_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ { "id": "dreamforged_mace_ench", "effect": [ { "u_spawn_item": "dreamforged_mace_ench", "use_item_group": true } ] } ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 3 ] ] ], + "difficulty": 4, + "flags": [ "SECRET" ], + "time": "6 h" + }, + { + "type": "recipe", + "name": "dreamforged morningstar", + "id": "dreamforged_morningstar_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_morningstar_ench", + "effect": [ { "u_spawn_item": "dreamforged_morningstar_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 3 ] ] ], + "difficulty": 5, + "flags": [ "SECRET" ], + "time": "8 h" + }, + { + "type": "recipe", + "name": "dreamforged estoc", + "id": "dreamforged_estoc_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { "id": "dreamforged_estoc_ench", "effect": [ { "u_spawn_item": "dreamforged_estoc_ench", "use_item_group": true } ] } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "difficulty": 4, + "flags": [ "SECRET" ], + "time": "7 h" + }, + { + "type": "recipe", + "name": "dreamforged arming sword", + "id": "dreamforged_arming_sword_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_arming_sword_ench", + "effect": [ { "u_spawn_item": "dreamforged_arming_sword_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "difficulty": 5, + "flags": [ "SECRET" ], + "time": "9 h" + }, + { + "type": "recipe", + "name": "dreamforged broadsword", + "id": "dreamforged_broadsword_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_broadsword_ench", + "effect": [ { "u_spawn_item": "dreamforged_broadsword_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "difficulty": 5, + "flags": [ "SECRET" ], + "time": "9 h" + }, + { + "type": "recipe", + "name": "dreamforged battle axe", + "id": "dreamforged_battleaxe_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_battleaxe_ench", + "effect": [ { "u_spawn_item": "dreamforged_battleaxe_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 3 ] ] ], + "difficulty": 5, + "flags": [ "SECRET" ], + "time": "9 h" + }, + { + "type": "recipe", + "name": "dreamforged katana", + "id": "dreamforged_katana_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { "id": "dreamforged_katana_ench", "effect": [ { "u_spawn_item": "dreamforged_katana_ench", "use_item_group": true } ] } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "difficulty": 6, + "flags": [ "SECRET" ], + "time": "12 h" + }, + { + "type": "recipe", + "name": "dreamforged combat knife", + "id": "dreamforged_knife_combat_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_knife_combat_ench", + "effect": [ { "u_spawn_item": "dreamforged_knife_combat_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "difficulty": 6, + "flags": [ "SECRET" ], + "time": "9 h" + }, + { + "type": "recipe", + "name": "dreamforged kris", + "id": "dreamforged_kris_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ { "id": "dreamforged_kris_ench", "effect": [ { "u_spawn_item": "dreamforged_kris_ench", "use_item_group": true } ] } ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "difficulty": 5, + "flags": [ "SECRET" ], + "time": "10 h" + }, + { + "type": "recipe", + "name": "dreamforged kukri", + "id": "dreamforged_kukri_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { "id": "dreamforged_kukri_ench", "effect": [ { "u_spawn_item": "dreamforged_kukri_ench", "use_item_group": true } ] } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "difficulty": 4, + "flags": [ "SECRET" ], + "time": "7 h" + }, + { + "type": "recipe", + "name": "dreamforged nodachi", + "id": "dreamforged_nodachi_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_nodachi_ench", + "effect": [ { "u_spawn_item": "dreamforged_nodachi_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 2 ] ] ], + "difficulty": 5, + "flags": [ "SECRET" ], + "time": "7 h" + }, + { + "type": "recipe", + "name": "dreamforged rapier", + "id": "dreamforged_rapier_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { "id": "dreamforged_rapier_ench", "effect": [ { "u_spawn_item": "dreamforged_rapier_ench", "use_item_group": true } ] } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 2 ] ] ], + "difficulty": 5, + "flags": [ "SECRET" ], + "time": "7 h" + }, + { + "type": "recipe", + "name": "dreamforged tanto", + "id": "dreamforged_tanto_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { "id": "dreamforged_tanto_ench", "effect": [ { "u_spawn_item": "dreamforged_tanto_ench", "use_item_group": true } ] } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "difficulty": 5, + "flags": [ "SECRET" ], + "time": "6 h" + }, + { + "type": "recipe", + "name": "dreamforged wakizashi", + "id": "dreamforged_wakizashi_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_wakizashi_ench", + "effect": [ { "u_spawn_item": "dreamforged_wakizashi_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "difficulty": 5, + "flags": [ "SECRET" ], + "time": "5 h" + }, + { + "type": "recipe", + "name": "dreamforged zweihänder", + "id": "dreamforged_zweihander_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_zweihander_ench", + "effect": [ { "u_spawn_item": "dreamforged_zweihander_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 2 ] ] ], + "difficulty": 6, + "flags": [ "SECRET" ], + "time": "16 h" + }, + { + "type": "recipe", + "name": "dreamforged khopesh", + "id": "dreamforged_khopesh_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_khopesh_ench", + "effect": [ { "u_spawn_item": "dreamforged_khopesh_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ], + "difficulty": 6, + "flags": [ "SECRET" ], + "time": "13 h" + }, + { + "type": "recipe", + "name": "dreamforged lucerne hammer", + "id": "dreamforged_lucerne_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_lucerne_ench", + "effect": [ { "u_spawn_item": "dreamforged_lucerne_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 5 ] ] ], + "difficulty": 7, + "flags": [ "SECRET" ], + "time": "20 h" + }, + { + "type": "recipe", + "name": "dreamforged knuckles", + "id": "dreamforged_knuckle_ench", + "copy-from": "dreamforged_longsword_ench", + "description": "Shape the weapon you imagine, using your powers and some dreamdross ingots. The result is unclear, and the effects are uncontrollable.", + "result_eocs": [ + { + "id": "dreamforged_knuckle_ench", + "effect": [ { "u_spawn_item": "dreamforged_knuckle_ench", "use_item_group": true } ] + } + ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 2 ] ] ], + "difficulty": 5, + "flags": [ "SECRET" ], + "time": "7 h" + }, + { + "type": "recipe", + "result": "dreamforged_longbow", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 2 ] ] ], + "proficiencies": [ { "proficiency": "prof_dreamsmithing" }, { "proficiency": "prof_dreamsmithing_weapon" } ], + "flags": [ "SECRET" ], + "skill_used": "deduction", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS", + "difficulty": 5, + "time": "6 h" + }, + { + "type": "recipe", + "result": "arrow_dreamforged", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "scrap_dreamdross", 2 ] ] ], + "proficiencies": [ { "proficiency": "prof_dreamsmithing" }, { "proficiency": "prof_dreamsmithing_weapon" } ], + "flags": [ "SECRET" ], + "skill_used": "deduction", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS", + "difficulty": 5, + "time": "3 m" + }, + { + "type": "recipe", + "result": "dreamforged_crossbow", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 2 ] ] ], + "proficiencies": [ { "proficiency": "prof_dreamsmithing" }, { "proficiency": "prof_dreamsmithing_weapon" } ], + "flags": [ "SECRET" ], + "skill_used": "deduction", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS", + "difficulty": 5, + "time": "6 h" + }, + { + "type": "recipe", + "result": "bolt_dreamforged", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "scrap_dreamdross", 2 ] ] ], + "proficiencies": [ { "proficiency": "prof_dreamsmithing" }, { "proficiency": "prof_dreamsmithing_weapon" } ], + "flags": [ "SECRET" ], + "skill_used": "deduction", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS", + "difficulty": 5, + "time": "3 m" + }, + { + "type": "recipe", + "activity_level": "ACTIVE_EXERCISE", + "result": "dreamforged_knuckle_berserk", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_dreamsmithing" }, + { "proficiency": "prof_dreamsmithing_weapon" }, + { "proficiency": "prof_dreamsmithing_peak" } + ], + "components": [ [ [ "forged_dreamstuff_ingot", 4 ] ] ], + "time": "1 d 2 h", + "skill_used": "deduction", + "difficulty": 5, + "flags": [ "SECRET" ], + "//": "TODO: proficiency for conditional powered items", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "copy-from": "dreamforged_knuckle_berserk", + "result": "dreamforged_glaive_healing", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 6 ] ] ], + "difficulty": 9, + "flags": [ "SECRET" ], + "time": "1 d 12 h" + }, + { + "type": "recipe", + "copy-from": "dreamforged_knuckle_berserk", + "result": "dreamforged_tsurugi_speed", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 2 ] ] ], + "difficulty": 9, + "flags": [ "SECRET" ], + "time": "1 d 1 h" + }, + { + "type": "recipe", + "copy-from": "dreamforged_knuckle_berserk", + "result": "dreamforged_q_staff_exp", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "forged_dreamstuff_ingot", 6 ] ] ], + "difficulty": 8, + "flags": [ "SECRET" ], + "time": "1 d 3 h" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/elemental_mutagens.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/elemental_mutagens.json new file mode 100644 index 000000000..b7ad90b2d --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/elemental_mutagens.json @@ -0,0 +1,211 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mutagen_earthkin", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "chemistry", + "difficulty": 1, + "time": "45 m", + "batch_time_factors": [ 80, 20 ], + "book_learn": [ [ "earthkin_tablet", 0 ] ], + "qualities": [ [ { "id": "SACRIFICE", "level": 1 } ] ], + "components": [ + [ [ "water", 3 ] ], + [ + [ "arvore_sample", 1 ], + [ "undine_sample", 1 ], + [ "homullus_sample", 1 ], + [ "sylph_sample", 1 ], + [ "salamander_sample", 1 ] + ], + [ + [ "arvore_sample", 1 ], + [ "undine_sample", 1 ], + [ "homullus_sample", 1 ], + [ "sylph_sample", 1 ], + [ "salamander_sample", 1 ] + ] + ], + "flags": [ "SECRET" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mutagen_plantkin", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "chemistry", + "difficulty": 1, + "time": "45 m", + "batch_time_factors": [ 80, 20 ], + "book_learn": [ [ "plantkin_parchment", 0 ] ], + "qualities": [ [ { "id": "SACRIFICE", "level": 1 } ] ], + "components": [ + [ [ "water", 3 ] ], + [ + [ "ierde_sample", 1 ], + [ "undine_sample", 1 ], + [ "homullus_sample", 1 ], + [ "sylph_sample", 1 ], + [ "salamander_sample", 1 ] + ], + [ + [ "ierde_sample", 1 ], + [ "undine_sample", 1 ], + [ "homullus_sample", 1 ], + [ "sylph_sample", 1 ], + [ "salamander_sample", 1 ] + ] + ], + "flags": [ "SECRET" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mutagen_flamekin", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "chemistry", + "difficulty": 1, + "time": "45 m", + "batch_time_factors": [ 80, 20 ], + "book_learn": [ [ "flametouched_parchment", 0 ] ], + "qualities": [ [ { "id": "SACRIFICE", "level": 1 } ] ], + "components": [ + [ [ "water", 3 ] ], + [ + [ "ierde_sample", 1 ], + [ "undine_sample", 1 ], + [ "homullus_sample", 1 ], + [ "sylph_sample", 1 ], + [ "arvore_sample", 1 ] + ], + [ + [ "ierde_sample", 1 ], + [ "undine_sample", 1 ], + [ "homullus_sample", 1 ], + [ "sylph_sample", 1 ], + [ "arvore_sample", 1 ] + ] + ], + "flags": [ "SECRET" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mutagen_waterkin", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "chemistry", + "difficulty": 1, + "time": "45 m", + "batch_time_factors": [ 80, 20 ], + "book_learn": [ [ "waterkin_tablet", 0 ] ], + "qualities": [ [ { "id": "SACRIFICE", "level": 1 } ] ], + "components": [ + [ [ "water", 3 ] ], + [ + [ "arvore_sample", 1 ], + [ "ierde_sample", 1 ], + [ "homullus_sample", 1 ], + [ "sylph_sample", 1 ], + [ "salamander_sample", 1 ] + ], + [ + [ "arvore_sample", 1 ], + [ "ierde_sample", 1 ], + [ "homullus_sample", 1 ], + [ "sylph_sample", 1 ], + [ "salamander_sample", 1 ] + ] + ], + "flags": [ "SECRET" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mutagen_dollkin", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "chemistry", + "difficulty": 1, + "time": "45 m", + "batch_time_factors": [ 80, 20 ], + "book_learn": [ [ "dollkin_tablet", 0 ] ], + "qualities": [ [ { "id": "SACRIFICE", "level": 1 } ] ], + "components": [ + [ [ "water", 3 ] ], + [ + [ "ierde_sample", 1 ], + [ "undine_sample", 1 ], + [ "arvore_sample", 1 ], + [ "sylph_sample", 1 ], + [ "salamander_sample", 1 ] + ], + [ + [ "ierde_sample", 1 ], + [ "undine_sample", 1 ], + [ "arvore_sample", 1 ], + [ "sylph_sample", 1 ], + [ "salamander_sample", 1 ] + ] + ], + "flags": [ "SECRET" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mutagen_airkin", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "chemistry", + "difficulty": 1, + "time": "45 m", + "batch_time_factors": [ 80, 20 ], + "book_learn": [ [ "sylph_parchment", 0 ] ], + "qualities": [ [ { "id": "SACRIFICE", "level": 1 } ] ], + "components": [ + [ [ "water", 3 ] ], + [ + [ "ierde_sample", 1 ], + [ "undine_sample", 1 ], + [ "homullus_sample", 1 ], + [ "salamander_sample", 1 ], + [ "arvore_sample", 1 ] + ], + [ + [ "ierde_sample", 1 ], + [ "undine_sample", 1 ], + [ "homullus_sample", 1 ], + [ "salamander_sample", 1 ], + [ "arvore_sample", 1 ] + ] + ], + "flags": [ "SECRET" ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "elemental_mana_draught", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "chemistry", + "difficulty": 1, + "time": "15 m", + "batch_time_factors": [ 80, 20 ], + "book_learn": [ + [ "sylph_parchment", 0 ], + [ "dollkin_tablet", 0 ], + [ "plantkin_parchment", 0 ], + [ "waterkin_tablet", 0 ], + [ "flametouched_parchment", 0 ], + [ "earthkin_tablet", 0 ] + ], + "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "mortar_pestle", -1 ] ] ], + "components": [ [ [ "water", 1 ] ], [ [ "material_soil", 1 ] ], [ [ "scrap_dreamdross", 6 ] ] ], + "qualities": [ [ { "id": "SACRIFICE", "level": 1 } ] ], + "flags": [ "SECRET" ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/armor.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/armor.json new file mode 100644 index 000000000..6aea7d4eb --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/armor.json @@ -0,0 +1,262 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "helmet_inventor", + "using": [ [ "soldering_standard", 20 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_metalworking", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_elec_circuits", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ + [ + [ "headgear", 1 ], + [ "helmet_army", 1 ], + [ "tac_fullhelmet", 1 ], + [ "tac_helmet", 1 ], + [ "firehelmet", 1 ], + [ "helmet_ball", 1 ], + [ "helmet_football", 1 ] + ], + [ [ "magnetron", 1 ] ], + [ [ "copper_wire", 5 ] ], + [ [ "power_supply", 1 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 4, + "skills_required": [ "electronics", 4 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_backpack", + "using": [ [ "welding_standard", 60 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_metalworking", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "tools": [ [ [ "vac_pump", 300 ] ] ], + "components": [ [ [ "molle_medium_rucksack", 1 ], [ "molle_large_rucksack", 1 ] ], [ [ "scrap_aluminum", 30 ] ] ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "fabrication", 5 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_leg_weight", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 60 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_metalworking", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ + [ [ "pipe", 12 ] ], + [ [ "tool_belt", 1 ], [ "police_belt", 1 ], [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "seatbelt", 1 ] ], + [ [ "magnetron", 2 ] ], + [ [ "power_supply", 4 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 4 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_jump_boots", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 40 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_metalworking", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ + [ [ "boots_combat", 1 ], [ "boots_hiking", 1 ] ], + [ [ "cable", 10 ] ], + [ [ "spring_plate", 2 ] ], + [ [ "e_scrap", 2 ] ], + [ [ "power_supply", 4 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 4, + "skills_required": [ "electronics", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "aura_force", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 20 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_metalworking", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ + [ [ "scrap_aluminum", 35 ] ], + [ [ "tool_belt", 1 ], [ "police_belt", 1 ], [ "leather_belt", 1 ], [ "webbing_belt", 1 ], [ "seatbelt", 1 ] ], + [ [ "fuse", 4 ] ], + [ [ "cable", 150 ] ], + [ [ "e_scrap", 1 ] ], + [ [ "antenna", 3 ] ], + [ [ "power_supply", 1 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "electronics", 7 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "vision_halo", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 20 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_metalworking", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_elec_circuits", "time_multiplier": 2, "skill_penalty": -100 }, + { "proficiency": "prof_elec_semiconductors", "time_multiplier": 2, "skill_penalty": -100 }, + { "proficiency": "prof_elec_integrated_circuits", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ + [ [ "scrap_aluminum", 30 ] ], + [ [ "cable", 10 ] ], + [ [ "e_scrap", 2 ] ], + [ [ "power_supply", 1 ] ], + [ [ "ai_module", 1 ] ], + [ [ "RAM", 1 ] ], + [ [ "processor", 1 ] ], + [ [ "camera_pro", 3 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 8, + "skills_required": [ "electronics", 7 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_fists", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 220 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_metalworking", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ [ [ "pipe", 7 ] ], [ [ "scrap_aluminum", 100 ] ], [ [ "scrap", 20 ] ], [ [ "sheet_metal_small", 10 ] ] ], + "time": "22 h", + "skill_used": "deduction", + "difficulty": 4, + "skills_required": [ "fabrication", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_electric_fist", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 30 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_metalworking", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ [ [ "cable", 10 ] ], [ [ "scrap_aluminum", 50 ] ], [ [ "e_scrap", 2 ] ], [ [ "power_supply", 4 ] ] ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 4, + "skills_required": [ "electronics", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "wolf_mask", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 30 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_metalworking", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ [ [ "cable", 10 ] ], [ [ "scrap_aluminum", 10 ] ], [ [ "e_scrap", 5 ] ], [ [ "power_supply", 4 ] ] ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 4, + "skills_required": [ "electronics", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "magnetic_holster", + "using": [ [ "welding_standard", 10 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_metalworking", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 }, + { "proficiency": "prof_plasticworking", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ + [ [ "cable", 10 ] ], + [ [ "scrap_aluminum", 20 ] ], + [ [ "e_scrap", 2 ] ], + [ [ "power_supply", 4 ] ], + [ [ "magnetron", 1 ] ], + [ [ "magnet", 10 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 4, + "skills_required": [ "electronics", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ARMOR" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/bots.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/bots.json new file mode 100644 index 000000000..442f72dda --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/bots.json @@ -0,0 +1,164 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "bot_sniperbot", + "using": [ [ "soldering_standard", 40 ], [ "welding_standard", 200 ] ], + "qualities": [ + { "id": "SAW_M", "level": 2 }, + { "id": "SAW_M_FINE", "level": 1 }, + { "id": "GRIND", "level": 1 }, + { "id": "WRENCH", "level": 1 } + ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_elec_circuits", + "time_multiplier": 2, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "inventor_sniper", 1 ] ], + [ [ "scrap_aluminum", 400 ] ], + [ [ "cable", 200 ] ], + [ [ "e_scrap", 3 ] ], + [ [ "lens", 5 ] ], + [ [ "motor_micro", 8 ] ], + [ [ "power_supply", 12 ] ], + [ [ "processor", 26 ] ], + [ [ "RAM", 12 ] ], + [ [ "scrap", 5 ] ], + [ [ "nuts_bolts", 25 ] ], + [ [ "inventor_heavy_cell", 2 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 9, + "skills_required": [ [ "fabrication", 7 ], [ "electronics", 3 ] ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ROBOTS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "bot_shotgunbot", + "using": [ [ "soldering_standard", 40 ], [ "welding_standard", 200 ] ], + "qualities": [ + { "id": "SAW_M", "level": 2 }, + { "id": "SAW_M_FINE", "level": 1 }, + { "id": "GRIND", "level": 1 }, + { "id": "WRENCH", "level": 1 } + ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_elec_circuits", + "time_multiplier": 2, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "inventor_shotgun", 1 ] ], + [ [ "scrap_aluminum", 400 ] ], + [ [ "cable", 200 ] ], + [ [ "e_scrap", 3 ] ], + [ [ "lens", 5 ] ], + [ [ "motor_micro", 8 ] ], + [ [ "power_supply", 12 ] ], + [ [ "processor", 26 ] ], + [ [ "RAM", 12 ] ], + [ [ "scrap", 5 ] ], + [ [ "nuts_bolts", 25 ] ], + [ [ "inventor_heavy_cell", 2 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 9, + "skills_required": [ [ "fabrication", 7 ], [ "electronics", 3 ] ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ROBOTS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "bot_meleebot", + "using": [ [ "soldering_standard", 40 ], [ "welding_standard", 200 ] ], + "qualities": [ + { "id": "SAW_M", "level": 2 }, + { "id": "SAW_M_FINE", "level": 1 }, + { "id": "GRIND", "level": 1 }, + { "id": "WRENCH", "level": 1 } + ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_elec_circuits", + "time_multiplier": 2, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "blade", 3 ] ], + [ [ "scrap_aluminum", 400 ] ], + [ [ "cable", 200 ] ], + [ [ "e_scrap", 3 ] ], + [ [ "lens", 5 ] ], + [ [ "motor_micro", 8 ] ], + [ [ "power_supply", 12 ] ], + [ [ "processor", 26 ] ], + [ [ "RAM", 12 ] ], + [ [ "scrap", 5 ] ], + [ [ "nuts_bolts", 25 ] ], + [ [ "inventor_heavy_cell", 2 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 9, + "skills_required": [ [ "fabrication", 7 ], [ "electronics", 3 ] ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ROBOTS" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/gun.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/gun.json new file mode 100644 index 000000000..5bba2977e --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/gun.json @@ -0,0 +1,841 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "battery_gun", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 20 ] ], + "qualities": [ { "id": "SAW_M", "level": 1 } ], + "//": "natural abilities of inventor makes him never fail his class crafts, but some profs are still required", + "components": [ + [ [ "pipe", 2 ] ], + [ [ "pipe_fittings", 1 ] ], + [ [ "cable", 20 ] ], + [ [ "element", 1 ] ], + [ [ "scrap", 5 ] ], + [ [ "duct_tape", 25 ] ] + ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 2, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "fabrication", 2 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "ray_gun", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 30 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 2, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 2, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "pipe", 5 ] ], + [ [ "pipe_fittings", 3 ] ], + [ [ "cable", 50 ] ], + [ [ "element", 3 ] ], + [ [ "lens_small", 1 ] ], + [ [ "scrap", 5 ] ], + [ [ "nuts_bolts", 5 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "fabrication", 4 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "ray_rifle", + "using": [ [ "soldering_standard", 25 ], [ "welding_standard", 40 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 2, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 2, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "pipe", 8 ] ], + [ [ "pipe_fittings", 5 ] ], + [ [ "cable", 150 ] ], + [ [ "element", 6 ] ], + [ [ "lens", 2 ] ], + [ [ "scrap", 15 ] ], + [ [ "nuts_bolts", 20 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "fabrication", 4 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "death_ray", + "using": [ [ "soldering_standard", 40 ], [ "welding_standard", 60 ] ], + "qualities": [ + { "id": "SAW_M", "level": 2 }, + { "id": "SAW_M_FINE", "level": 1 }, + { "id": "GRIND", "level": 1 }, + { "id": "WRENCH", "level": 1 } + ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_elec_circuits", + "time_multiplier": 2, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "pipe", 7 ] ], + [ [ "pipe_fittings", 6 ] ], + [ [ "cable", 100 ] ], + [ [ "element", 3 ] ], + [ [ "lens", 1 ] ], + [ [ "scrap", 5 ] ], + [ [ "nuts_bolts", 7 ] ], + [ [ "circuit", 2 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 9, + "skills_required": [ [ "fabrication", 7 ], [ "electronics", 3 ] ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "bio_launcher", + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 140 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "components": [ + [ [ "30gal_drum", 1 ], [ "55gal_drum", 1 ] ], + [ [ "pipe", 1 ] ], + [ [ "e_scrap", 3 ] ], + [ [ "scrap", 10 ] ], + [ [ "circuit", 1 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 4, + "skills_required": [ "electronics", 5 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "bio_warhead", + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 30 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "components": [ + [ [ "chem_compositionb", 300 ] ], + [ [ "cable", 20 ] ], + [ [ "blood", 1 ], [ "animal_blood", 1 ], [ "mutant_blood", 1 ], [ "blood_tainted", 1 ] ], + [ [ "fuse", 1 ] ], + [ [ "scrap", 2 ] ] + ], + "time": "1 h", + "skill_used": "deduction", + "difficulty": 4, + "skills_required": [ "firstaid", 6 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "rip_ticket", + "tools": [ + [ + [ "pen", 25 ], + [ "black_pen", 25 ], + [ "blue_pen", 25 ], + [ "red_pen", 25 ], + [ "green_pen", 25 ], + [ "pencil", 25 ], + [ "permanent_marker", 25 ], + [ "survival_marker", 25 ] + ] + ], + "components": [ + [ + [ "money_one", 1 ], + [ "money_two", 1 ], + [ "money_five", 1 ], + [ "money_ten", 1 ], + [ "money_twenty", 1 ], + [ "money_fifty", 1 ], + [ "money_hundred", 1 ] + ] + ], + "time": "6 h", + "skill_used": "deduction", + "difficulty": 5, + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "ion_gun", + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_elec_circuits", + "time_multiplier": 2, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "magnetron", 1 ] ], + [ [ "pipe", 5 ] ], + [ [ "antenna", 3 ] ], + [ [ "cable", 25 ] ], + [ [ "circuit", 1 ] ], + [ [ "scrap", 5 ] ], + [ [ "duct_tape", 15 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "electronics", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_sniper", + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ + [ "ar10", 1 ], + [ "fn_fal", 1 ], + [ "hk417_13", 1 ], + [ "m14ebr", 1 ], + [ "M24", 1 ], + [ "ak308", 1 ], + [ "savage_111f", 1 ], + [ "scar_h", 1 ] + ], + [ + [ "ar10", 1 ], + [ "fn_fal", 1 ], + [ "hk417_13", 1 ], + [ "m14ebr", 1 ], + [ "M24", 1 ], + [ "ak308", 1 ], + [ "savage_111f", 1 ], + [ "scar_h", 1 ] + ], + [ [ "pipe", 15 ] ], + [ [ "scrap", 20 ] ], + [ [ "nuts_bolts", 15 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "fabrication", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_shotgun", + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_welding_basic", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ + [ "mossberg_500", 1 ], + [ "mossberg_590", 1 ], + [ "mossberg_930", 1 ], + [ "remington_870", 1 ], + [ "remington_870_express", 1 ], + [ "ksg", 1 ], + [ "ksg-25", 1 ], + [ "saiga_12", 1 ], + [ "tavor_12", 1 ], + [ "winchester_1897", 1 ] + ], + [ [ "pipe", 35 ] ], + [ [ "scrap", 28 ] ], + [ [ "nuts_bolts", 60 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "fabrication", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "accelerator_gun", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 50 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_electromagnetics", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_plasticworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "pipe", 25 ] ], + [ [ "scrap", 20 ] ], + [ [ "nuts_bolts", 15 ] ], + [ [ "processor", 1 ] ], + [ [ "circuit", 3 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 1 ] ], + [ [ "e_scrap", 35 ] ], + [ [ "plastic_chunk", 10 ] ], + [ [ "cable", 200 ] ] + ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "electronics", 5 ], [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_glauncher", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 80 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_electromagnetics", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "inventor_welder", 1 ] ], + [ [ "pipe", 5 ] ], + [ [ "scrap", 5 ] ], + [ [ "nuts_bolts", 5 ] ], + [ [ "processor", 1 ] ], + [ [ "circuit", 3 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 2 ] ], + [ [ "e_scrap", 10 ] ], + [ [ "cable", 200 ] ] + ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "electronics", 5 ], [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_glauncher_fire", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "soldering_standard", 20 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_electromagnetics", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "pipe", 1 ] ], + [ [ "scrap", 5 ] ], + [ [ "processor", 1 ] ], + [ [ "circuit", 2 ] ], + [ [ "power_supply", 3 ] ], + [ [ "amplifier", 2 ] ], + [ [ "e_scrap", 5 ] ], + [ [ "cable", 50 ] ] + ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "electronics", 5 ], [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_glauncher_elec", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "soldering_standard", 20 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_electromagnetics", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "pipe", 1 ] ], + [ [ "scrap", 5 ] ], + [ [ "processor", 1 ] ], + [ [ "circuit", 2 ] ], + [ [ "power_supply", 1 ] ], + [ [ "amplifier", 1 ] ], + [ [ "e_scrap", 5 ] ], + [ [ "cable", 250 ] ] + ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "electronics", 5 ], [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_glauncher_direct", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "soldering_standard", 20 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_electromagnetics", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "pipe", 1 ] ], + [ [ "scrap", 5 ] ], + [ [ "processor", 1 ] ], + [ [ "circuit", 2 ] ], + [ [ "power_supply", 5 ] ], + [ [ "amplifier", 5 ] ], + [ [ "e_scrap", 5 ] ], + [ [ "cable", 50 ] ] + ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "electronics", 5 ], [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_grenade_noise_expl", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 20 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_electromagnetics", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_plasticworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "heavy_disposable_cell", 1 ], [ "inventor_heavy_cell", 1 ] ], + [ [ "plastic_chunk", 25 ] ], + [ [ "scrap", 20 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 1 ] ], + [ [ "e_scrap", 5 ] ], + [ [ "cable", 100 ] ] + ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "electronics", 5 ], [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_grenade_noise_emp", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 20 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_electromagnetics", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_plasticworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "heavy_disposable_cell", 1 ], [ "inventor_heavy_cell", 1 ] ], + [ [ "plastic_chunk", 25 ] ], + [ [ "scrap", 20 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 1 ] ], + [ [ "e_scrap", 5 ] ], + [ [ "cable", 500 ] ] + ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "electronics", 5 ], [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_grenade_noise_fire", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 20 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_electromagnetics", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_plasticworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "heavy_disposable_cell", 1 ], [ "inventor_heavy_cell", 1 ] ], + [ [ "plastic_chunk", 25 ] ], + [ [ "scrap", 20 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 5 ] ], + [ [ "e_scrap", 5 ] ], + [ [ "cable", 100 ] ] + ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "electronics", 5 ], [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "sonic_gun", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 30 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "pipe", 5 ] ], + [ [ "scrap", 26 ] ], + [ [ "nuts_bolts", 5 ] ], + [ [ "processor", 1 ] ], + [ [ "circuit", 3 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 2 ] ], + [ [ "e_scrap", 10 ] ], + [ [ "cable", 200 ] ] + ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "electronics", 5 ], [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "heater_gun", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "using": [ [ "soldering_standard", 20 ], [ "welding_standard", 40 ] ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ + [ [ "heater_tool", 1 ] ], + [ [ "pipe", 20 ] ], + [ [ "scrap", 26 ] ], + [ [ "nuts_bolts", 5 ] ], + [ [ "processor", 1 ] ], + [ [ "circuit", 3 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 2 ] ], + [ [ "e_scrap", 10 ] ], + [ [ "cable", 200 ] ] + ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "electronics", 5 ], [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "inventor_pistol", + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "proficiencies": [ + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ [ [ "pipe", 9 ] ], [ [ "scrap", 36 ] ], [ [ "nuts_bolts", 10 ] ], [ [ "duct_tape", 40 ] ] ], + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ [ "fabrication", 5 ] ], + "time": "18 h", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/gunmods.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/gunmods.json new file mode 100644 index 000000000..24278733c --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/gunmods.json @@ -0,0 +1,262 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "trinket_damage", + "using": [ [ "soldering_standard", 20 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ [ [ "pipe", 1 ] ], [ [ "scrap", 1 ] ], [ [ "amplifier", 1 ] ], [ [ "cable", 100 ] ], [ [ "circuit", 1 ] ] ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "fabrication", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "trinket_range", + "using": [ [ "soldering_standard", 20 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ [ [ "pipe", 1 ] ], [ [ "scrap", 1 ] ], [ [ "amplifier", 1 ] ], [ [ "cable", 100 ] ], [ [ "circuit", 1 ] ] ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "fabrication", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "trinket_sound", + "using": [ [ "soldering_standard", 20 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ [ [ "pipe", 1 ] ], [ [ "scrap", 1 ] ], [ [ "amplifier", 1 ] ], [ [ "cable", 100 ] ], [ [ "circuit", 1 ] ] ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "fabrication", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mod_inv_pistol_booster", + "using": [ [ "soldering_standard", 20 ] ], + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_elec_soldering", "time_multiplier": 3, "skill_penalty": -100, "learning_time_multiplier": 0.3 }, + { + "proficiency": "prof_metalworking", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + }, + { + "proficiency": "prof_gunsmithing_improv", + "time_multiplier": 3, + "skill_penalty": -100, + "learning_time_multiplier": 0.3 + } + ], + "components": [ [ [ "pipe", 3 ] ], [ [ "scrap", 5 ] ], [ [ "duct_tape", 20 ] ], [ [ "plastic_chunk", 5 ] ] ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "fabrication", 3 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC" + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "inventor_lasmod_close_range", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "scrap", 2 ] ], + [ [ "cable", 80 ] ], + [ [ "plastic_chunk", 5 ] ], + [ [ "circuit", 3 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 1 ] ], + [ [ "e_scrap", 15 ] ], + [ [ "duct_tape", 20 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "inventor_lasmod_long_range", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "scrap", 2 ] ], + [ [ "cable", 80 ] ], + [ [ "plastic_chunk", 5 ] ], + [ [ "circuit", 3 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 1 ] ], + [ [ "e_scrap", 15 ] ], + [ [ "duct_tape", 20 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "inventor_lasmod_capasitor", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "scrap", 2 ] ], + [ [ "cable", 80 ] ], + [ [ "plastic_chunk", 5 ] ], + [ [ "circuit", 3 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 1 ] ], + [ [ "e_scrap", 15 ] ], + [ [ "duct_tape", 20 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "inventor_lasmod_mega_capasitor", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "scrap", 2 ] ], + [ [ "cable", 80 ] ], + [ [ "plastic_chunk", 5 ] ], + [ [ "circuit", 3 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 1 ] ], + [ [ "e_scrap", 15 ] ], + [ [ "duct_tape", 20 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "inventor_lasmod_energy_safe", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "scrap", 2 ] ], + [ [ "cable", 80 ] ], + [ [ "plastic_chunk", 5 ] ], + [ [ "circuit", 3 ] ], + [ [ "power_supply", 4 ] ], + [ [ "amplifier", 1 ] ], + [ [ "e_scrap", 15 ] ], + [ [ "duct_tape", 20 ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/melee.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/melee.json new file mode 100644 index 000000000..843cf19d8 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/melee.json @@ -0,0 +1,45 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mace_magic", + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "using": [ [ "welding_standard", 60 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking", "time_multiplier": 2, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ [ [ "magnetron", 1 ] ], [ [ "pipe", 3 ] ], [ [ "scrap", 25 ] ], [ [ "duct_tape", 25 ] ] ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "electronics", 4 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "combatsaw_spear_off", + "qualities": [ { "id": "SAW_M", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 }, { "id": "GRIND", "level": 1 } ], + "using": [ [ "welding_standard", 160 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking", "time_multiplier": 2, "skill_penalty": -100 }, + { "proficiency": "prof_welding_basic", "time_multiplier": 2, "skill_penalty": -100 } + ], + "components": [ + [ [ "chainsaw_off", 1 ], [ "elec_chainsaw_off", 1 ] ], + [ [ "pipe", 9 ] ], + [ [ "scrap", 25 ] ], + [ [ "duct_tape", 25 ] ] + ], + "time": "18 h", + "skill_used": "deduction", + "difficulty": 7, + "skills_required": [ "electronics", 4 ], + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_WEAPONS" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/misc.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/misc.json new file mode 100644 index 000000000..53660803f --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/misc.json @@ -0,0 +1,194 @@ +[ + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "inventor_light_minus_cell", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ { "proficiency": "prof_plasticworking", "time_multiplier": 2, "skill_penalty": -100 } ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "light_minus_disposable_cell", 1 ] ], + [ [ "power_supply", 1 ] ], + [ [ "scrap", 3 ] ], + [ [ "cable", 20 ] ], + [ [ "plastic_chunk", 10 ] ], + [ [ "amplifier", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "inventor_light_cell", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ { "proficiency": "prof_plasticworking", "time_multiplier": 2, "skill_penalty": -100 } ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "light_disposable_cell", 1 ] ], + [ [ "power_supply", 1 ] ], + [ [ "scrap", 3 ] ], + [ [ "cable", 40 ] ], + [ [ "plastic_chunk", 10 ] ], + [ [ "amplifier", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "inventor_medium_cell", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ { "proficiency": "prof_plasticworking", "time_multiplier": 2, "skill_penalty": -100 } ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "medium_disposable_cell", 1 ] ], + [ [ "power_supply", 1 ] ], + [ [ "scrap", 3 ] ], + [ [ "cable", 60 ] ], + [ [ "plastic_chunk", 10 ] ], + [ [ "amplifier", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "inventor_heavy_cell", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ { "proficiency": "prof_plasticworking", "time_multiplier": 2, "skill_penalty": -100 } ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "heavy_disposable_cell", 1 ] ], + [ [ "power_supply", 1 ] ], + [ [ "scrap", 3 ] ], + [ [ "cable", 80 ] ], + [ [ "plastic_chunk", 10 ] ], + [ [ "amplifier", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "inventor_welder", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_TOOLS", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "power_supply", 6 ] ], + [ [ "scrap", 2 ] ], + [ [ "cable", 80 ] ], + [ [ "plastic_chunk", 5 ] ], + [ [ "magnetron", 2 ] ], + [ [ "lens_small", 1 ] ], + [ [ "amplifier", 1 ] ], + [ [ "duct_tape", 60 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "heater_tool", + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_TOOLS", + "skill_used": "deduction", + "difficulty": 5, + "skills_required": [ "electronics", 3 ], + "time": "3 h", + "reversible": true, + "proficiencies": [ + { "proficiency": "prof_welding_basic", "time_multiplier": 3, "skill_penalty": -100 }, + { "proficiency": "prof_welding", "time_multiplier": 2, "skill_penalty": -100 } + ], + "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "SAW_M", "level": 1 } ], + "components": [ + [ [ "power_supply", 3 ] ], + [ [ "scrap_aluminum", 15 ] ], + [ [ "cable", 80 ] ], + [ [ "magnetron", 1 ] ], + [ [ "amplifier", 2 ] ] + ] + }, + { + "result": "software_AI", + "container": "usb_drive", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "tools": [ [ [ "laptop", 30 ] ], [ [ "software_math", -1 ] ], [ [ "software_electronics_reference", -1 ] ] ], + "time": "24 h", + "skill_used": "deduction", + "difficulty": 4, + "skills_required": [ "computer", 6 ], + "components": [ [ [ "usb_drive", 1 ] ] ], + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_TOOLS" + }, + { + "result": "software_math", + "id_suffix": "inventor", + "container": "usb_drive", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "tools": [ [ [ "laptop", 30 ] ] ], + "time": "14 h", + "skill_used": "deduction", + "difficulty": 2, + "skills_required": [ "computer", 3 ], + "components": [ [ [ "usb_drive", 1 ] ] ], + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_TOOLS" + }, + { + "result": "software_electronics_reference", + "id_suffix": "inventor", + "container": "usb_drive", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "tools": [ [ [ "laptop", 30 ] ], [ [ "software_math", -1 ] ] ], + "time": "20 h", + "skill_used": "deduction", + "difficulty": 3, + "skills_required": [ "computer", 5 ], + "components": [ [ [ "usb_drive", 1 ] ] ], + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_TOOLS" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/researches.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/researches.json new file mode 100644 index 000000000..3ace7fc05 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/inventor/researches.json @@ -0,0 +1,133 @@ +[ + { + "id": "inventor_research_base_1", + "name": "novice research", + "//": "this names are ugly, TODO replace it", + "description": "Research the unknown parts of your powers, brainstorm the ways to use them.", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result_eocs": [ "EOC_INVENTOR_RESEARCH_BASE_1" ], + "tools": [ [ [ "laptop", 20 ] ] ], + "time": "2 h", + "skill_used": "deduction", + "difficulty": 2, + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_RESEARCH" + }, + { + "id": "inventor_research_base_2", + "name": "intermediate research", + "description": "Research the unknown parts of your powers, brainstorm the ways to use them.", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result_eocs": [ "EOC_INVENTOR_RESEARCH_BASE_2" ], + "tools": [ [ [ "laptop", 40 ] ] ], + "time": "3 h", + "skill_used": "deduction", + "difficulty": 4, + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_RESEARCH" + }, + { + "id": "inventor_research_base_3", + "name": "difficult research", + "description": "Research the unknown parts of your powers, brainstorm the ways to use them.", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result_eocs": [ "EOC_INVENTOR_RESEARCH_BASE_3" ], + "tools": [ [ [ "laptop", 60 ] ], [ [ "software_math", -1 ] ] ], + "time": "4 h", + "skill_used": "deduction", + "difficulty": 6, + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_RESEARCH" + }, + { + "id": "inventor_research_energy_1", + "name": "novice energy research", + "description": "Research an innovative ways to generate and use energy.", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result_eocs": [ "EOC_INVENTOR_RESEARCH_ENERGY_1" ], + "tools": [ [ [ "laptop", 20 ] ], [ [ "software_math", -1 ] ] ], + "time": "3 h", + "skill_used": "deduction", + "difficulty": 3, + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_RESEARCH" + }, + { + "id": "inventor_research_energy_2", + "name": "intermediate energy research", + "description": "Research an innovative ways to generate and use energy.", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result_eocs": [ "EOC_INVENTOR_RESEARCH_ENERGY_2" ], + "tools": [ [ [ "laptop", 40 ] ], [ [ "software_math", -1 ] ], [ [ "software_electronics_reference", -1 ] ] ], + "time": "4 h", + "skill_used": "deduction", + "difficulty": 5, + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_RESEARCH" + }, + { + "id": "inventor_research_energy_3", + "name": "difficult energy research", + "description": "Research an innovative ways to generate and use energy.", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result_eocs": [ "EOC_INVENTOR_RESEARCH_ENERGY_3" ], + "qualities": [ { "id": "AI_TOOL", "level": 1 } ], + "tools": [ [ [ "laptop", 60 ] ], [ [ "software_math", -1 ] ], [ [ "software_electronics_reference", -1 ] ] ], + "time": "5 h", + "skill_used": "deduction", + "difficulty": 7, + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_RESEARCH" + }, + { + "id": "inventor_research_ai_1", + "name": "intelligent agent researches", + "description": "Research a practical approaches to use different intelligent agents as a tool or weapon.", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result_eocs": [ "EOC_INVENTOR_RESEARCH_AI_1" ], + "qualities": [ { "id": "AI_TOOL", "level": 1 } ], + "tools": [ [ [ "laptop", 40 ] ], [ [ "software_math", -1 ] ], [ [ "software_electronics_reference", -1 ] ] ], + "time": "5 h", + "skill_used": "deduction", + "difficulty": 8, + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_RESEARCH" + }, + { + "id": "inventor_research_dimesnion_1", + "name": "advanced spaces research", + "description": "Research a ways to connect your own power to another dimensions.", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result_eocs": [ "EOC_INVENTOR_RESEARCH_DIMENSION_1" ], + "qualities": [ { "id": "AI_TOOL", "level": 1 } ], + "tools": [ [ [ "laptop", 40 ] ], [ [ "software_math", -1 ] ], [ [ "software_electronics_reference", -1 ] ] ], + "components": [ + [ + [ "small_printout_portal_storm_data", 20 ], + [ "medium_printout_portal_storm_data", 4 ], + [ "large_printout_portal_storm_data", 1 ] + ] + ], + "time": "5 h", + "skill_used": "deduction", + "difficulty": 9, + "flags": [ "BLIND_EASY", "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_RESEARCH" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/meds.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/meds.json new file mode 100644 index 000000000..c52abcc8f --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/meds.json @@ -0,0 +1,91 @@ +[ + { + "type": "recipe", + "activity_level": "fake", + "result": "cthonic_poultice", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "firstaid", + "difficulty": 1, + "time": "3 m", + "flags": [ "SECRET" ], + "book_learn": [ [ "earthkin_tablet", 0 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], + "components": [ [ [ "material_soil", 1 ] ], [ [ "water", 1 ], [ "scrap_dreamdross", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "fake", + "result": "verdant_poultice", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "firstaid", + "difficulty": 1, + "time": "3 m", + "flags": [ "SECRET" ], + "book_learn": [ [ "plantkin_parchment", 0 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], + "components": [ [ [ "veggy_green", 3, "LIST" ] ], [ [ "water", 1 ], [ "scrap_dreamdross", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "fake", + "result": "cerulean_poultice", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "firstaid", + "difficulty": 1, + "time": "3 m", + "flags": [ "SECRET" ], + "book_learn": [ [ "waterkin_tablet", 0 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], + "components": [ [ [ "eggs_roe", 2, "LIST" ] ], [ [ "salt_water", 1 ], [ "scrap_dreamdross", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "fake", + "result": "charred_sacrifice", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "firstaid", + "difficulty": 1, + "time": "3 m", + "flags": [ "SECRET" ], + "book_learn": [ [ "flametouched_parchment", 0 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "surface_heat", 40, "LIST" ] ] ], + "components": [ [ [ "meat_raw_steak", 2, "LIST" ] ], [ [ "seasoning_salt", 1 ], [ "scrap_dreamdross", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "fake", + "result": "doll_repair_paste", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "firstaid", + "difficulty": 1, + "time": "3 m", + "flags": [ "SECRET" ], + "book_learn": [ [ "dollkin_tablet", 0 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "tools": [ [ [ "paint_brush", -1 ] ] ], + "components": [ [ [ "paint", 2, "LIST" ] ], [ [ "superglue", 1 ], [ "scrap_dreamdross", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "fake", + "result": "ethereal_draught", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "firstaid", + "difficulty": 1, + "time": "3 m", + "flags": [ "SECRET" ], + "book_learn": [ [ "sylph_parchment", 0 ] ], + "qualities": [ { "id": "COOK", "level": 2 } ], + "components": [ [ [ "any_bread", 2, "LIST" ] ], [ [ "honey_bottled", 1 ], [ "scrap_dreamdross", 1 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/misc.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/misc.json new file mode 100644 index 000000000..dee7f6d6e --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/misc.json @@ -0,0 +1,44 @@ +[ + { + "id": "dreamsmith_research", + "name": "inquire dreamdross", + "description": "You spend some time trying to understand what the dreamdross is capable of, and how you can utilize its power. You probably need a lot of attempts to research the whole depth of this unusual metal.", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result_eocs": [ "EOC_DREAMSMITHS_SCORE_TRAIN" ], + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "scrap_dreamdross", 2 ] ] ], + "time": "75 m", + "skill_used": "deduction", + "difficulty": 2, + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_RESEARCH" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "dreamdross_lump", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "scrap_dreamdross", 10 ] ] ], + "time": "10 m", + "skill_used": "deduction", + "difficulty": 2, + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC" + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "forged_dreamstuff_ingot", + "qualities": [ { "id": "DREAM_HAMMER", "level": 1 } ], + "components": [ [ [ "scrap_dreamdross", 100 ], [ "dreamdross_lump", 10 ] ] ], + "time": "2 h", + "skill_used": "deduction", + "difficulty": 2, + "flags": [ "SECRET" ], + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_MISC" + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/paraclesians/undine_recipes.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/paraclesians/undine_recipes.json new file mode 100644 index 000000000..53947ba79 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/paraclesians/undine_recipes.json @@ -0,0 +1,64 @@ +[ + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "salt_water", + "id_suffix": "from_water", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "deduction", + "time": "1 m", + "flags": [ "BLIND_EASY", "SECRET" ], + "components": [ [ [ "water_clean", 1 ], [ "water", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "water", + "id_suffix": "from_salt_water", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "deduction", + "time": "1 m", + "flags": [ "BLIND_EASY", "SECRET" ], + "components": [ [ [ "salt_water", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "water_clean", + "id_suffix": "from_water", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "deduction", + "time": "1 m", + "flags": [ "BLIND_EASY", "SECRET" ], + "components": [ [ [ "water", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "water", + "id_suffix": "from_water_clean", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "deduction", + "time": "1 m", + "flags": [ "BLIND_EASY", "SECRET" ], + "components": [ [ [ "water_clean", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "NO_EXERCISE", + "result": "water", + "id_suffix": "from_liquid", + "category": "CC_XEDRA", + "subcategory": "CSC_XEDRA_ELEMENTAL", + "skill_used": "deduction", + "time": "1 m", + "flags": [ "BLIND_EASY", "SECRET" ], + "components": [ + [ [ "hard_liquor", 1, "LIST" ], [ "cheap_wine", 1, "LIST" ], [ "sweet_juice", 1, "LIST" ], [ "soda_pop", 1, "LIST" ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/recipes_deconstruction.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/recipes_deconstruction.json new file mode 100644 index 000000000..0a729d4ac --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/recipes_deconstruction.json @@ -0,0 +1,52 @@ +[ + { + "result": "broken_exodii_quad_jotunn", + "type": "uncraft", + "activity_level": "MODERATE_EXERCISE", + "skill_used": "electronics", + "skills_required": [ [ "mechanics", 9 ], [ "computer", 9 ] ], + "difficulty": 9, + "time": "10 h", + "using": [ [ "soldering_standard", 60 ], [ "welding_standard", 30 ] ], + "qualities": [ + { "id": "SCREW", "level": 1 }, + { "id": "SCREW_FINE", "level": 1 }, + { "id": "WRENCH", "level": 2 }, + { "id": "WRENCH_FINE", "level": 1 }, + { "id": "HAMMER", "level": 3 }, + { "id": "SAW_M", "level": 1 } + ], + "components": [ + [ [ "sensor_module", 1 ] ], + [ [ "spidery_legs_big", 2 ] ], + [ [ "exodii_chassis", 1 ] ], + [ [ "targeting_module", 1 ] ], + [ [ "self_monitoring_module", 1 ] ], + [ [ "exodii_sensor", 2 ] ], + [ [ "exodii_computer", 1 ] ], + [ [ "exodii_module", 2 ] ], + [ [ "exodii_motor", 8 ] ], + [ [ "gun_module", 3 ] ], + [ [ "flamethrower", 1 ] ], + [ [ "tazer", 1 ] ], + [ [ "modular_m4_carbine", 1 ] ], + [ [ "pamd68", 1 ] ], + [ [ "power_supply", 20 ] ], + [ [ "amplifier", 5 ] ], + [ [ "e_scrap", 50 ] ], + [ [ "clockworks", 4 ] ], + [ [ "steel_chunk", 10 ] ], + [ [ "scrap", 10 ] ], + [ [ "cyborg_matrix", 1 ] ], + [ [ "storage_battery", 2 ] ], + [ [ "plut_cell", 4 ] ], + [ [ "mil_plate", 2 ] ], + [ [ "hard_steel_armor", 10 ] ], + [ [ "sheet_metal_small", 40 ] ], + [ [ "motor_small", 1 ] ], + [ [ "cable", 10 ] ], + [ [ "omnicamera", 1 ] ], + [ [ "betavoltaic", 20 ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/requirements.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/requirements.json new file mode 100644 index 000000000..8ed075019 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/requirements.json @@ -0,0 +1,14 @@ +[ + { + "id": "tailoring_glimmer_fur", + "type": "requirement", + "//": "250g per unit. Crafting fur items, per 372 g of fur; 122 g + excessive weight of material is wasted, producing fur patches as byproducts. Time needed is usually 60 minutes per unit if hand-stitching for extra material processing time.", + "qualities": [ + { "id": "SEW", "level": 1 }, + { "id": "FABRIC_CUT", "level": 2 }, + { "id": "LEATHER_AWL", "level": 1 }, + { "id": "CUT_FINE", "level": 1 } + ], + "components": [ [ [ "tanned_glimmer_pelt", 1 ] ], [ [ "filament", 7, "LIST" ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/survival.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/survival.json new file mode 100644 index 000000000..45ab4666f --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/survival.json @@ -0,0 +1,16 @@ +[ + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "cured_glimmer_pelt", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "survival", + "skills_required": [ "chemistry", 1 ], + "difficulty": 1, + "time": "5 m", + "autolearn": true, + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "salt_water", 1 ], [ "saline", 2 ], [ "salt", 2 ] ], [ [ "fae_fur", 1 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/tailoring.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/tailoring.json new file mode 100644 index 000000000..196ae2086 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/tailoring.json @@ -0,0 +1,241 @@ +[ + { + "result": "boots_glimmer_fur", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_FEET", + "skill_used": "tailor", + "difficulty": 3, + "skills_required": [ "survival", 1 ], + "time": "12 h", + "autolearn": true, + "book_learn": [ [ "textbook_survival", 3 ] ], + "using": [ + [ "sewing_standard", 13 ], + [ "tailoring_leather_patchwork", 3 ], + [ "tailoring_glimmer_fur", 2 ], + [ "fastener_shoes", 2 ], + [ "shoe_rubber", 1 ], + [ "adhesive_rubber", 1 ] + ], + "proficiencies": [ + { "proficiency": "prof_cobbling" }, + { "proficiency": "prof_closures" }, + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_aelfen_tailoring" }, + { "proficiency": "prof_furriery" } + ] + }, + { + "result": "xs_boots_glimmer_fur", + "type": "recipe", + "copy-from": "boots_glimmer_fur", + "time": "12 h", + "using": [ + [ "sewing_standard", 9 ], + [ "tailoring_leather_patchwork", 2 ], + [ "tailoring_glimmer_fur", 3 ], + [ "fastener_shoes", 1 ], + [ "shoe_rubber", 1 ], + [ "adhesive_rubber", 1 ] + ] + }, + { + "result": "xl_boots_glimmer_fur", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "copy-from": "boots_glimmer_fur", + "using": [ + [ "sewing_standard", 16 ], + [ "tailoring_leather_patchwork", 4 ], + [ "tailoring_glimmer_fur", 4 ], + [ "fastener_shoes", 3 ], + [ "shoe_rubber", 2 ], + [ "adhesive_rubber", 2 ] + ], + "time": "13 h 30 m" + }, + { + "result": "cloak_glimmer_fur", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_SUIT", + "skill_used": "tailor", + "difficulty": 2, + "skills_required": [ "survival", 1 ], + "time": "5 h", + "reversible": true, + "autolearn": true, + "book_learn": [ [ "textbook_survival", 1 ], [ "survival_book", 1 ] ], + "using": [ [ "tailoring_glimmer_fur", 7 ] ], + "qualities": [ { "id": "LEATHER_AWL", "level": 1 } ], + "proficiencies": [ + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_furriery" }, + { "proficiency": "prof_aelfen_tailoring" } + ] + }, + { + "result": "coat_glimmer_fur", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_TORSO", + "skill_used": "tailor", + "difficulty": 4, + "skills_required": [ "survival", 1 ], + "time": "6 h", + "autolearn": true, + "reversible": true, + "book_learn": [ [ "textbook_survival", 1 ], [ "trappers_companion", 3 ], [ "survival_book", 2 ] ], + "using": [ [ "tailoring_cotton_patchwork", 6 ], [ "tailoring_glimmer_fur", 6 ], [ "fastener_large", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_closures" }, + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_aelfen_tailoring" }, + { "proficiency": "prof_furriery" } + ] + }, + { + "result": "xs_coat_glimmer_fur", + "type": "recipe", + "copy-from": "coat_glimmer_fur", + "time": "6 h", + "using": [ [ "tailoring_cotton_patchwork", 4 ], [ "tailoring_glimmer_fur", 4 ], [ "fastener_large", 1 ] ] + }, + { + "result": "xl_coat_glimmer_fur", + "type": "recipe", + "copy-from": "coat_glimmer_fur", + "time": "6 h 45 m", + "using": [ [ "tailoring_cotton_patchwork", 8 ], [ "tailoring_glimmer_fur", 8 ], [ "fastener_large", 1 ] ] + }, + { + "result": "sleeveless_trenchcoat_glimmer_fur", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "id_suffix": "from_trenchcoat_glimmer_fur", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_STORAGE", + "//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", + "skill_used": "tailor", + "time": "6 m", + "autolearn": true, + "byproducts": [ [ "fae_fur", 4 ] ], + "qualities": [ { "id": "CUT", "level": 2 } ], + "flags": [ "NO_RESIZE" ], + "components": [ [ [ "trenchcoat_glimmer_fur", 1 ] ] ] + }, + { + "result": "sleeveless_trenchcoat_glimmer_fur", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "id_suffix": "from_trenchcoat_glimmer_fur", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_STORAGE", + "//": "The general guideline for sleeveless trenchcoats is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", + "skill_used": "tailor", + "time": "6 m", + "autolearn": true, + "byproducts": [ [ "fur", 4 ] ], + "qualities": [ { "id": "CUT", "level": 2 } ], + "flags": [ "NO_RESIZE" ], + "components": [ [ [ "trenchcoat_fur", 1 ] ] ] + }, + { + "result": "trenchcoat_glimmer_fur", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_STORAGE", + "skill_used": "tailor", + "difficulty": 3, + "skills_required": [ "survival", 1 ], + "time": "8 h 20 m", + "reversible": true, + "autolearn": true, + "using": [ [ "tailoring_glimmer_fur", 12 ], [ "fastener_large", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_closures" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_aelfen_tailoring" }, + { "proficiency": "prof_furriery" } + ] + }, + { + "result": "duster_glimmer_fur", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_STORAGE", + "skill_used": "tailor", + "difficulty": 3, + "skills_required": [ "survival", 1 ], + "time": "10 h", + "autolearn": true, + "reversible": true, + "using": [ [ "sewing_standard", 60 ], [ "tailoring_glimmer_fur", 7 ], [ "fastener_large", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_closures" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_aelfen_tailoring" }, + { "proficiency": "prof_furriery" } + ] + }, + { + "result": "xs_duster_glimmer_fur", + "type": "recipe", + "copy-from": "duster_glimmer_fur", + "time": "10 h", + "using": [ [ "sewing_standard", 45 ], [ "tailoring_glimmer_fur", 5 ], [ "fastener_large", 1 ] ] + }, + { + "result": "xl_duster_glimmer_fur", + "type": "recipe", + "copy-from": "duster_glimmer_fur", + "time": "11 h 15 m", + "using": [ [ "sewing_standard", 80 ], [ "tailoring_glimmer_fur", 9 ], [ "fastener_large", 1 ] ] + }, + { + "result": "sleeveless_duster_glimmer_fur", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_STORAGE", + "//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", + "skill_used": "tailor", + "difficulty": 3, + "skills_required": [ "survival", 1 ], + "time": "8 h 30 m", + "autolearn": true, + "reversible": true, + "using": [ [ "tailoring_glimmer_fur", 8 ], [ "fastener_large", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_closures" }, + { "proficiency": "prof_closures_waterproofing" }, + { "proficiency": "prof_leatherworking_basic" }, + { "proficiency": "prof_aelfen_tailoring" }, + { "proficiency": "prof_furriery" } + ] + }, + { + "result": "sleeveless_duster_glimmer_fur", + "type": "recipe", + "activity_level": "NO_EXERCISE", + "id_suffix": "from_duster_glimmer_fur", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_STORAGE", + "//": "The general guideline for sleeveless dusters is the components, volume, weight, time to craft, and value are 15% lower (rounded down) than the original. Making it from an original takes 50% the time.", + "skill_used": "tailor", + "time": "6 m", + "autolearn": true, + "byproducts": [ [ "fae_fur", 4 ] ], + "qualities": [ { "id": "CUT", "level": 2 } ], + "flags": [ "NO_RESIZE" ], + "components": [ [ [ "duster_glimmer_fur", 1 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/vampire.json b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/vampire.json index 481e4f39c..580897617 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/recipes/vampire.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/recipes/vampire.json @@ -10,12 +10,13 @@ { "id": "SAW_M", "level": 1 } ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ] ], - "components": [ [ [ "mercury", 1 ] ], [ [ "garlic", 4 ] ], [ [ "blood", 3 ] ], [ [ "silver", 1 ] ] ], + "components": [ [ [ "mercury", 1 ] ], [ [ "garlic", 4 ] ], [ [ "blood", 3 ] ], [ [ "silver_small", 1 ] ] ], "time": "30 m", "charges": 4, "skill_used": "cooking", "batch_time_factors": [ 65, 4 ], "difficulty": 2, + "flags": [ "SECRET" ], "skills_required": [ "cooking", 2 ], "book_learn": [ [ "grimy_recipe", 1 ] ], "category": "CC_CHEM", diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/regional_overlay.json b/data/Mainline_mods/Mods/Xedra_Evolved/regional_overlay.json index 5cc9105b2..d1f209375 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/regional_overlay.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/regional_overlay.json @@ -2,15 +2,17 @@ { "type": "region_overlay", "regions": [ "all" ], + "city": { "houses": { "safe_house": 5 }, "parks": { "vampire_cathedral": 50 } }, "map_extras": { "road": { "chance": 75, "extras": { - "mx_golden_monolith": 10, + "mx_golden_monolith": 15, "mx_military": 50, "mx_science": 400, "mx_collegekids": 500, - "mx_roadblock": 1000, + "mx_roadblock": 830, + "mx_roadblock_mil": 170, "mx_bandits_block": 800, "mx_drugdeal": 300, "mx_supplydrop": 100, diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/requirements/cooking_components.json b/data/Mainline_mods/Mods/Xedra_Evolved/requirements/cooking_components.json new file mode 100644 index 000000000..eb5dd291a --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/requirements/cooking_components.json @@ -0,0 +1,14 @@ +[ + { + "id": "sweet_fruit_fresh", + "type": "requirement", + "//": "Sweet, unprocessed fruit, roughly by mass.", + "extend": { "components": [ [ [ "hawthorn_berries", 1 ], [ "fig", 1 ] ] ] } + }, + { + "id": "veggy_green", + "type": "requirement", + "//": "anything you would consider a leafy green vegetable", + "extend": { "components": [ [ [ "hawthorn_petals", 1 ] ] ] } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/requirements/spell_components.json b/data/Mainline_mods/Mods/Xedra_Evolved/requirements/spell_components.json index 79381a0e2..97c3c4001 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/requirements/spell_components.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/requirements/spell_components.json @@ -7,46 +7,12 @@ { "id": "spell_components_dreamdross2", "type": "requirement", - "components": [ [ [ "dreamdross_lump", 1 ] ] ] + "components": [ [ [ "dreamdross_lump", 1 ], [ "scrap_dreamdross", 10 ] ] ] }, { "id": "spell_components_dreamdross3", "type": "requirement", - "components": [ [ [ "forged_dreamstuff_ingot", 1 ] ] ] - }, - { - "id": "spell_components_battery_gun", - "type": "requirement", - "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_M_FINE", "level": 1 } ], - "components": [ [ [ "pipe", 2 ] ], [ [ "cable", 10 ] ], [ [ "element", 1 ] ], [ [ "scrap", 5 ] ], [ [ "duct_tape", 25 ] ] ] - }, - { - "id": "spell_components_ray_gun", - "type": "requirement", - "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 } ], - "components": [ - [ [ "pipe", 2 ] ], - [ [ "pipe_fittings", 1 ] ], - [ [ "betavoltaic", 1 ] ], - [ [ "cable", 10 ] ], - [ [ "element", 3 ] ], - [ [ "scrap", 5 ] ], - [ [ "nuts_bolts", 3 ] ] - ] - }, - { - "id": "spell_components_death_ray", - "type": "requirement", - "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 2 }, { "id": "SAW_M_FINE", "level": 1 } ], - "components": [ - [ [ "pipe", 2 ] ], - [ [ "pipe_fittings", 1 ] ], - [ [ "plut_cell", 1 ] ], - [ [ "cable", 10 ] ], - [ [ "element", 3 ] ], - [ [ "scrap", 5 ] ], - [ [ "nuts_bolts", 3 ] ] - ] + "components": [ [ [ "forged_dreamstuff_ingot", 1 ], [ "dreamdross_lump", 10 ], [ "scrap_dreamdross", 100 ] ] ] }, { "id": "spell_components_schematics", @@ -54,100 +20,20 @@ "components": [ [ [ "drawing_tool", 2, "LIST" ] ], [ [ "paper", 8 ] ] ] }, { - "id": "spell_components_mace_magic", - "type": "requirement", - "qualities": [ - { "id": "SCREW", "level": 1 }, - { "id": "WRENCH", "level": 1 }, - { "id": "SAW_W", "level": 1 }, - { "id": "GRIND", "level": 2 } - ], - "components": [ [ [ "magnetron", 1 ] ], [ [ "pipe", 3 ] ], [ [ "scrap", 25 ] ], [ [ "duct_tape", 25 ] ] ] - }, - { - "id": "spell_components_build_bio_launcher", - "type": "requirement", - "qualities": [ { "id": "GRIND", "level": 1 } ], - "components": [ [ [ "55gal_drum", 1 ] ], [ [ "brain", 1 ] ], [ [ "pipe", 1 ] ], [ [ "e_scrap", 6 ] ], [ [ "scrap", 10 ] ] ] - }, - { - "id": "spell_components_bio_launcher_warhead", - "type": "requirement", - "qualities": [ { "id": "SAW_W", "level": 1 } ], - "components": [ [ [ "RPG", 1 ] ], [ [ "c4", 1 ] ], [ [ "flu_shot", 1 ] ], [ [ "fuse", 1 ] ], [ [ "scrap", 2 ] ] ] - }, - { - "id": "spell_components_fire_bio_warhead", - "type": "requirement", - "components": [ [ [ "bio_warhead", 1 ] ] ] - }, - { - "id": "spell_components_rip_ticket", - "type": "requirement", - "tools": [ - [ - [ "pen", -5 ], - [ "black_pen", -5 ], - [ "blue_pen", -5 ], - [ "red_pen", -5 ], - [ "green_pen", -5 ], - [ "pencil", -5 ], - [ "permanent_marker", -5 ], - [ "survival_marker", -5 ] - ] - ], - "components": [ - [ - [ "money_one", 1 ], - [ "money_two", 1 ], - [ "money_five", 1 ], - [ "money_ten", 1 ], - [ "money_twenty", 1 ], - [ "money_fifty", 1 ], - [ "money_hundred", 1 ] - ] - ] - }, - { - "id": "spell_components_helmet_inventor", + "id": "spell_components_human_blood", "type": "requirement", - "qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SAW_W", "level": 1 } ], - "components": [ - [ - [ "headgear", 1 ], - [ "helmet_army", 1 ], - [ "tac_fullhelmet", 1 ], - [ "tac_helmet", 1 ], - [ "firehelmet", 1 ], - [ "helmet_ball", 1 ], - [ "helmet_football", 1 ], - [ "helmet_inventor", 1 ] - ], - [ [ "magnetron", 1 ] ], - [ [ "aluminum_foil", 4 ] ] - ] + "components": [ [ [ "demihuman_blood", 1 ], [ "mutant_human_blood", 1 ], [ "blood", 1 ] ] ] }, { - "id": "spell_components_ion_gun", + "id": "spell_components_dreamer_coin", "type": "requirement", - "qualities": [ { "id": "WRENCH", "level": 1 }, { "id": "SAW_W", "level": 1 } ], "components": [ - [ [ "magnetron", 1 ] ], - [ [ "pipe", 2 ] ], - [ [ "antenna", 3 ] ], - [ [ "cable", 20 ] ], - [ [ "scrap", 5 ] ], - [ [ "duct_tape", 15 ] ] + [ [ "coin_penny", 1 ], [ "coin_nickel", 1 ], [ "coin_quarter", 1 ], [ "coin_half_dollar", 1 ], [ "coin_dollar", 1 ] ] ] }, { - "id": "spell_components_dreamdross3", - "type": "requirement", - "components": [ [ [ "dreamdross_lump", 2 ], [ "scrap_dreamdross", 4 ] ], [ [ "xe_oneiric_hammer", 1 ] ] ] - }, - { - "id": "spell_components_human_blood", + "id": "spell_components_cable_whip", "type": "requirement", - "components": [ [ [ "demihuman_blood", 1 ], [ "mutant_human_blood", 1 ], [ "blood", 1 ] ] ] + "components": [ [ [ "cable", 15 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/requirements/toolsets.json b/data/Mainline_mods/Mods/Xedra_Evolved/requirements/toolsets.json index 13e8552f2..309ba7c5a 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/requirements/toolsets.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/requirements/toolsets.json @@ -1,8 +1,37 @@ [ { - "id": "compute_standard", + "id": "surface_heat", "type": "requirement", - "//": "Standardized computer usage for recipes", - "tools": [ [ [ "laptop", 10 ] ], [ [ "software_math", -1 ] ], [ [ "software_electronics_reference", -1 ] ] ] + "extend": { "tools": [ [ [ "heater_tool", 20 ] ] ] } + }, + { + "id": "water_boiling_heat", + "type": "requirement", + "extend": { "tools": [ [ [ "heater_tool", 20 ] ] ] } + }, + { + "id": "welding_standard", + "type": "requirement", + "extend": { "tools": [ [ [ "inventor_welder", 10 ] ] ] } + }, + { + "id": "welding_alloys", + "type": "requirement", + "extend": { "tools": [ [ [ "inventor_welder", 10 ] ] ] } + }, + { + "id": "repair_welding_standard", + "type": "requirement", + "extend": { "tools": [ [ [ "inventor_welder", 100 ] ] ] } + }, + { + "id": "repair_welding_alloys", + "type": "requirement", + "extend": { "tools": [ [ [ "inventor_welder", 100 ] ] ] } + }, + { + "id": "repair_welding_rebar", + "type": "requirement", + "extend": { "tools": [ [ [ "inventor_welder", 400 ] ] ] } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/scenario.json b/data/Mainline_mods/Mods/Xedra_Evolved/scenario.json index ebae7965e..7442afa77 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/scenario.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/scenario.json @@ -2,7 +2,7 @@ { "copy-from": "heli_crash", "type": "scenario", - "extend": { "map_special": "mx_helicopter", "professions": [ "zebra_investigator", "spy" ] }, + "extend": { "map_special": "mx_helicopter", "professions": [ "zebra_investigator", "spy", "fbi_investigator" ] }, "id": "heli_crash" }, { @@ -10,5 +10,73 @@ "type": "scenario", "extend": { "professions": [ "zebra_investigator" ] }, "id": "lab_staff" + }, + { + "type": "scenario", + "id": "paraclesian_birth", + "name": "Paraclesian Birth", + "flags": [ "LONE_START" ], + "points": 0, + "description": "Your first moments of life. An elemental fae birth on a dying world. Now you have to figure out how to survive on your own. (Select the location that matches your profession or you may have a short journey) P.S. This scenario is still in development, PRs for additional content welcomed.", + "start_name": "Paraclesian Birth", + "allowed_locs": [ "sloc_undine", "sloc_ierde", "sloc_salamander", "sloc_sylph", "sloc_arvore", "sloc_homullus" ], + "professions": [ + "paraclesian_ierde", + "paraclesian_undine", + "paraclesian_salamander", + "paraclesian_sylph", + "paraclesian_arvore", + "paraclesian_homullus" + ], + "eoc": [ "scenario_paraclesian_birth" ], + "traits": [ "ELEMENTAL_MANA1", "ELEMENTAL_MANA2" ], + "reveal_locale": false + }, + { + "type": "scenario", + "id": "once_bitten", + "name": "Once Bitten", + "points": 0, + "description": "Whether you were visiting Salem's Lot, boating on the Demeter, vacationing to Transylvania, or just another lost boy or girl, you've been bitten by a stranger at twilight the night before. As a new day breaks you might want to find someone to interview about how you are feeling. Dark shadows feel more inviting than yesterday and you don't feel like you are long for the day shift.", + "start_name": "In Town", + "allowed_locs": [ + "sloc_house", + "sloc_house_boarded", + "sloc_school", + "sloc_grocery_store", + "sloc_gun_store", + "sloc_garage", + "sloc_pawn_shop", + "sloc_bank", + "sloc_military_surplus", + "sloc_furniture_store", + "sloc_library", + "sloc_bookstore", + "sloc_zoo_giftshop", + "sloc_zoo_cages", + "sloc_golfcourse_mid_course", + "sloc_golfcourse_clubhouse", + "sloc_church", + "sloc_cemetery", + "sloc_town_hall", + "sloc_hardware", + "sloc_dojo", + "sloc_gym", + "sloc_clothes", + "sloc_restaurant", + "sloc_bar", + "sloc_electronics", + "sloc_arcade", + "sloc_animalshelter", + "sloc_laundromat", + "sloc_stripclub", + "sloc_sexshop", + "sloc_candyshop", + "sloc_bikeshop", + "sloc_petstore" + ], + "eoc": [ "scenario_once_bitten" ], + "requirement": "avchievement_gains_vampire_trait", + "flags": [ "CITY_START", "LONE_START" ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/scent_type.json b/data/Mainline_mods/Mods/Xedra_Evolved/scent_type.json new file mode 100644 index 000000000..924e70d80 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/scent_type.json @@ -0,0 +1,27 @@ +[ + { + "type": "scent_type", + "id": "sc_fae", + "receptive_species": [ + "MAMMAL", + "BIRD", + "AMPHIBIAN", + "REPTILE", + "FISH", + "MUTANT", + "NETHER", + "SLIME", + "FUNGUS", + "INSECT", + "CENTIPEDE", + "SPIDER", + "MOLLUSK", + "WORM", + "HORROR", + "ABERRATION", + "HALLUCINATION", + "UNKNOWN", + "ZOMBIE" + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/skills.json b/data/Mainline_mods/Mods/Xedra_Evolved/skills.json index 6ad6730a5..f6cf609a9 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/skills.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/skills.json @@ -8,6 +8,15 @@ "tags": [ "combat_skill" ], "time_to_attack": { "min_time": 60, "base_time": 200, "time_reduction_per_level": 14 }, "display_category": "display_interaction", + "sort_rank": 26500, "companion_skill_practice": [ { "skill": "speech", "weight": 1 }, { "skill": "devices", "weight": 1 } ] + }, + { + "type": "skill", + "id": "spellcraft", + "name": "spellcraft", + "display_category": "display_ranged", + "sort_rank": 14500, + "description": "Your skill in the arcane. Represents magic theory and all that entails. A higher skill increases how quickly you can learn spells, and decreases their spell failure chance. You learn this skill by studying books or spells." } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/addiction_snippets.json b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/addiction_snippets.json new file mode 100644 index 000000000..582d90e25 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/addiction_snippets.json @@ -0,0 +1,62 @@ +[ + { + "type": "snippet", + "category": "blood_addiction", + "text": [ + { "id": "blood_addiction_1", "text": "You need blood to survive." }, + { "id": "blood_addiction_2", "text": "A blood spattered charnel room flashes in front of your eyes." }, + { "id": "blood_addiction_3", "text": "You lick your teeth thinking about blood." } + ] + }, + { + "type": "snippet", + "category": "blood_addiction_dream", + "text": [ + { + "id": "blood_addiction_dream_1", + "text": "You dream of sneaking into a home through an open window late at night. Walking through the darkened hallways, unerringly finding your way to a bedroom. You stand at the foot of the bed staring down at the person sleeping in it. Are they a man, woman or child? You can't tell, all you know is they are filled with blood and you need it." + }, + { + "id": "blood_addiction_dream_2", + "text": "In your dream, an early evening storm begins with you outside. You feel the rain hitting you but it is thicker than water, more viscous. You smell it first, before you look at your hands and realize the rain is blood. You lean your head back and open your mouth wide to the rain falling into it." + }, + { + "id": "blood_addiction_dream_3", + "text": "You float above a house late at night watching someone enter through an open window. You blink and you are now in a bedroom seeing a disturbing scene. Someone who's face is shadowed where you can't see them is standing over a person lying on the bed. You startle when you realize that you are the person lying on the bed. You scream helplessly as the shadowed person bites into sleeping you's throat and blood sprays across the room. You wake as your struggles slow and lessen." + } + ] + }, + { + "type": "snippet", + "category": "lotus_addiction", + "text": [ + { "id": "lotus_addiction_1", "text": "You are sure you saw movement at the edge of your vision." }, + { + "id": "lotus_addiction_2", + "text": "The hair on the back of your neck rises as you hear a voice you remember from just out of sight." + }, + { + "id": "lotus_addiction_3", + "text": "Your eye twitches on it's own for several minutes. From the top corner near your temple down into the cheek." + } + ] + }, + { + "type": "snippet", + "category": "lotus_addiction_dream", + "text": [ + { + "id": "lotus_addiction_dream_1", + "text": "You dream about watching tv, it's a documentary about some bioweapon that got loose in Newfoundland. A doctor is talking about how containment failed and health campaigns failed to eradicate it. You recognize the voice, it's your voice. As the credits play you see listed ' M.D.' This seems worrying." + }, + { + "id": "lotus_addiction_dream_2", + "text": "You dream of walking down a long hallway with no definite beginning or end, portraits and mirrors alternate on the sides of the hallway. Slowly you have a sneaking suspicion that your reflections aren't quite reflecting you. Sometimes you spot out of the corner of your eyes distorted features, a mouth full of sharp teeth, different hair styles and colors, even horns. Each time you turn and look though it's just your own reflection looking back at you. You try one last time to catch your reflection and while you are staring into its eyes, you see the pupils track towards the portrait reflected behind you. You turn your eyes to focus on the portrait reflection and there you are climbing out of the portrait mouth agape, full of too many needle sharp teeth, you quickly focus back at your reflection in the mirror and see only clear glass. Before you can turn you feel a sharp pain in your shoulder." + }, + { + "id": "lotus_addiction_dream_3", + "text": "You lounge in sunny glades, eating lotus blossoms while others frolick through the breeze. You wake feeling calmer than normal and go back to less pleasant sleep." + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/changeling_speech.json b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/changeling_speech.json new file mode 100644 index 000000000..5b658b73f --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/changeling_speech.json @@ -0,0 +1,26 @@ +[ + { + "type": "speech", + "speaker": "mon_fetch_child", + "sound": "\"*giggles* Would you like to play tag?\"", + "volume": 10 + }, + { + "type": "speech", + "speaker": "mon_fetch_child", + "sound": "\"*whispers* I want to tell you a secret.\"", + "volume": 5 + }, + { + "type": "speech", + "speaker": "mon_fetch_child", + "sound": "\"My last friend went all red and stopped moving.\"", + "volume": 8 + }, + { + "type": "speech", + "speaker": "mon_fetch_child", + "sound": "\"You're it, I'm gonna catch you!\"", + "volume": 15 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/e_logs.json b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/e_logs.json new file mode 100644 index 000000000..7e1b0703b --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/e_logs.json @@ -0,0 +1,46 @@ +[ + { + "type": "snippet", + "category": "local_files_xedra", + "//": "Messages, logs and videos, that xedra agent may have on it's laptop", + "text": [ + { + "id": "local_files_xedra_1", + "text": "*A half-hour-long tape that films a static building in the middle of nowhere with a bright, clean sky in the background. The building is tall, thick, and covered in some white mush, while the windows move in a zigzag pattern. Twenty minutes later, the camera captures a heavy aircraft that starts to move in circles around the building. In a few minutes, a massive volley erupted from the plane, which made the building rip and burn apart, and its dwellers - small spike-like creatures that move by rolling - quickly ran away, screaming in piercing shrieks while their white spikes melted.*" + }, + { + "id": "local_files_xedra_2", + "text": "need_to_discuss.mp4\n*It seems to be a part of some video for a newcomer mortician.*\nHost: … Oh, and also, do you remember those small pieces of metal we found covering the skin? I recommend not throwing it away, but cleaning it up and storing it in some bag - apparently zebra departments really like to buy some of them for a whopping price.\nCameraman: Do you know why?\nHost: I don't give a shit actually, but 50 bucks per month is 50 bucks per month." + }, + { + "id": "local_files_xedra_3", + "text": "record_17.06.mp3\n[Voice 1]: I'm here.\n[Voice 2]: And?\n[Voice 1]: As the report said.\n[Voice 2]: Fuck.\n*few seconds of complete silence*\n[Voice 2]: So it's completely impossible to move it?\n[Voice 1]: Correct, completely glued.\n*another few seconds of complete silence*\n[Voice 1]: So, in summary, we have a bullet, stuck in the air and completely immovable, in the middle of fucking nowhere. I think I've seen something similar before…" + }, + { + "id": "local_files_xedra_4", + "text": "*cached messages in some chat app*\nB0yscout(Bravo 7): so, do you guys know what's going on?\nJackTrader(PD): wdym?\nB0yscout(Bravo 7): i mean the fuck is going on with the world? when i just came here, you guys tried to solve a vampire disease, then a shifter overpopulation, and yesterday my unit happened to fight A MOTHERFUCKING ANGEL! ANGEL!!!\nB0yscout(Bravo 7): am i tripping, or are we living in some junk novel, written by idiots without any sense of… eeh… you get it\nJackTrader(PD): oh\nJackTrader(PD): …\nJackTrader(PD): hmm, what do i say\nJackTrader(PD): it's actually pretty serious topic\nJackTrader(PD): i'd even say it's impossible to solve, because we can't really measure why happens this, and why happens that\nJackTrader(PD): but\nB0yscout(Bravo 7): :eyes:\nJackTrader(PD): we talked about it with @WHO and a few other folks from the paranormal department, and we think there are a few possibilities\nJackTrader(PD): the official one is that the portal shit is so massive, that the probability of us meeting something, that resembles our folklore is not that small\nJackTrader(PD): like you met a wheeled ball with feathers yesterday, but did you saw a square of light, that speaks perfect english?\nJackTrader(PD): i did\nB0yscout(Bravo 7): i'm not surprised\nB0yscout(Bravo 7): i guess the juice is in the unofficial versions?\nJackTrader(PD): the first unofficial version, that we hope is correct, is that there were portal outbreaks before, and it's just not the first time planet Earth fights the vampire invasion or shit\nB0yscout(Bravo 7): why isn't it official?\nJackTrader(PD): because people are idiots, mostly. Imagine if POTUS made a speech saying \"do you remember all this shit about satan and unicorns and loch ness? well it's actually true. except satan. maybe\"\nB0yscout(Bravo 7): and?\nJackTrader(PD): you'd be surprised how much overlap there is between people who ~~think~~ thought unicorns are real, and people who think we should kill all jews\nB0yscout(Bravo 7): okay that makes sense\nB0yscout(Bravo 7): that's the only unofficial theory you discuss?\nJackTrader(PD): we thought about another one, but it's much, much worse\nJackTrader(PD): that the stuff, that invades our world, can connect to some sort of noosphere and thing, and can read our thoughts\nJackTrader(PD): as they know everything we are afraid of\nJackTrader(PD): demons\nJackTrader(PD): vampires\nJackTrader(PD): diseases\nJackTrader(PD): nuclear war\nB0yscout(Bravo 7): …\nB0yscout(Bravo 7): …\nB0yscout(Bravo 7): is it classified?\nJackTrader(PD): …oh shit " + }, + { + "id": "local_files_xedra_5", + "//": "SAATUIOW = Supernatural Abilities And Their Usage In Operative Work", + "text": "SAATUIOW_1/6.mp4\n*The video seems to be a record of some drill in a large classroom. The first few minutes are spent preparing the projector, then a person comes to the lectern*\nGood morning everyone, my name is *illegible*, and I am the assistant of doctor *illegible*.\nToday's lesson would be pretty general, because it's a theme on which we still lack information and a lot must be discussed. We also don't have proper terms, so don't be surprised if part of it is picked from game slang and part from fantasy novels. The lesson would be more than experimental.\nOkay. You saw the name of the lesson before, it has a long, unreadable name, but overall it is described as \"magic\". Yes, magic, because we still don't know why and don't know how it works. You may hear a story about an altered objects that doesn't work, works in the wrong way, does something different, or even harms the user, but most of you don't know - No, Jamey, I know you know it, you are our consultant here, not a student.\nYes, I forgot to present: this is Jamey, he is our retired field agent and a pretty experienced eater. More on that later.\nSo yes, you don't know… *The lecturer silently watches at Jamey for a few seconds*… that some \"subjects\" - I say \"subjects\", because some of them are not humans, we saw a similar result from apes, dogs, rats, and even, uh, was it a computer program?… Anyway, some \"subjects\" can not only touch these items without self-harm, but they can also, eh, use them? It's not really \"using\", we think they'd rather \"redirect\" their paranormal properties into a more acceptable form. Yes, they \"redirect\" the power, energy, mana, you name it, into a direction that gives them supernatural abilities. They are not really limited, some individuals are able to use all of them, but most are not - the rules of these processes are unclear, so we classified them into a few branches…" + }, + { + "id": "local_files_xedra_6", + "text": "SAATUIOW_2/6.mp4\n…The first branch utilizes \"the knowledge\", people of this type \"know\" how to make tools, that seem impossible without decades of development or that violate a huge part of the physical laws we all know. They are our most valuable resource: engineers that can build a railgun using M16 parts, assemble an EMP bomb using only a PlayStation and a few tools, a phone camera that sees through the walls, a humvee engine that can use whiskey as fuel *cough cough*… yeah, the list of their abilities is pretty huge, and they can provide these tools to other users. Sadly, they do not last long outside of their hands, breaking apart in a few weeks.\n- *illegible*\nNo, there is no correlation between the user's IQ and the time it stopped working, we thought about it already.\n- *illegible*\nYes, I know about Worm, and yes, it is surprisingly accurate in this part…\n…\n…\nOverall, their abilities are really wide, but it is really hard to differentiate them from their usefulness - currently we have only a few prototypes, useful for field agents like you, and a dozen of toothbrushes, modified to clean teeth better. Two of them expect to be lethal. Currently, most of them are busy with the \"Legion\" project in an attempt to turn the table, you may check about it later…" + }, + { + "id": "local_files_xedra_7", + "text": "SAATUIOW_3/6.mp4\n…The second branch utilizes, eh, \"the ethereal\" or \"extradimensional\" thingy, we like to name them \"dealers\". Now I think it's a bad idea to split them like this, but anyway. So yeah, it is easy to detect dealers, because some interdimensional creatures, usually hostile to humans, do not attack them. We think they can kind of make a \"deal\" with sapient creatures, and yes, every creature they deal with is sapient, in one form or another, and I also don't understand how it works, that's what they told me. Eeh, yeah, they \"deal\" with these creatures from the other side, they spend their life energy to merc them. The one who was capable of talking said it was a pleasant dish, the same as our pancakes. The ability to use such things is not cheap, and many dealers disappeared in unknown circumstances, but let's not talk about it…" + }, + { + "id": "local_files_xedra_8", + "text": "SAATUIOW_4/6.mp4\n…Another one is our hard workers - our smiths. They are not as dreadful as technicians in their abilities, they can not create a nuke out of a microwave, but they can create something that even technicians can't understand. At least the best of them, most of our smiths produce common tools and armor we use in our work. You may think they are \"worse\", or \"weaker\" than other branches, or you may think they are some dumb blue collars. And that's mostly right. Mostly. But… But…\nDid you ever see an anti-tank bow? The bow that can throw arrows at a rifle distance, penetrate the armored vehicle, and kill a whole squad inside, while being completely silent? I saw one, and it was a damn great experience.\n- *illegible*\nAre you a smith?\n- *illegible*\nYou are pretty smart, then. Yes, that's their biggest advancement - their products do not fade as fast as technicians' work. The second most beneficial part of their work is the material they use. It has a complicated, unpronounceable name, but we simply call it \"dross\". There is a group of people that like to call it \"dreamdross\" and overall have some \"dream\" fetish with this arcane stuff, but hell we are serious organizations if our researchers are inspired by some \"dreams can come true\" bullshit. Anyway, dross is the main part of two branches: for smiths and for eaters. The substance-producing process is pretty tricky, because you need to find a person with a magic inclination - usually it's a person touched by altered objects, creatures, or altered event victims, but there are exceptions: our consultant Jamey has had no contact with portals before yet happened to be a talented eater… *illegible* *cough cough*… So yes, you need to find such a person and teach them how to produce it.\n- *illegible*\n- Yes, there is situations, where common people produce some amount of dross after death, why do you ask?\n- *illegible*\n- [Lector stares at the questioner for a good ten seconds.]\n…How useful… may be the strategy… where we… kill… innocent people… just to find some dross?\n…\n…\n…I think I'll be fired… If I do not say \"we will never kill an innocent to get some resources\", but okay, theorizing, it's not viable still - the amount of dross we can obtain in such a way is negligible. But again, don't even ask about it again.\nTurning back to dross, the exact characteristics of the material… are not great. It's pretty fragile, loose, and light - totally not a thing you can use to make a weapon - strong and sturdy. But of course, it's not the main property of metal. The main feature of the metal is its ability to accept and process magic. Any magic, I'd say, but it's not true, some stuff we can't do at all, and some stuff can only be done by high level smithers. It's not a big surprise, but even the senior smiths are able to make a huge variety of stuff with improved effects. The most popular option is hardening, of course. So, most items that are made fully from dross or use dross inserts are usually not that much stronger than steel stuff but lighter - sometimes so much lighter it has no weight at all - if I recall correctly, our DSAPI has a weight of like 500 grams or so? You get the idea…" + }, + { + "id": "local_files_xedra_9", + "text": "SAATUIOW_5/6.mp4\nAnd the last branch we separate is a branch of eaters. There is nothing really special about them; compared to any other branch, they do not have some really odd abilities like summoning creatures or throwing fireballs. Instead, all magic that happens with them is limited to their own bodies, and oh god, how good they are at this. They are meat tanks. Not in the sense that they transform their bodies or something like this, no. Totally not. They just can do the same stuff as tank - break asphalt while running at 60 miles per second and throw fifty kilo balls with sniper precision.\nA simple example for you: do you see our friend here? How strong do you think he is? I mean, right now, when there is an army of soldiers, SWAT, and people from the police department, if you have your weapon with you, how many of you may a single Jamey kill?\n- *illegible*\n- Two?\n - *illegible*\n- Five?\n- *illegible*\n- Dozen?\n- *illegible*\nOkay. Believe me, even without his right hand, Jamey can kill all of you. Then he can move to the office room next to us and kill all the people there, and then next, and then next, and then he can just demolish this whole building. Yes, it is reinforced, can survive the 155-millimeter shot. Yes, Jamey still has only one hand. Yes, nothing will be left behind. Am I right, Jamey?\n-*illegible*\nOh, you are not an operative, so you won't do it. Yeah, you also know it's bullshit and they won't kick you off because of one failure, do you?" + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/effect_on_condition.json b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/effect_on_condition.json new file mode 100644 index 000000000..dc208a983 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/effect_on_condition.json @@ -0,0 +1,39 @@ +[ + { + "type": "snippet", + "category": "XE_NIGHT_MESSAGES_1", + "text": [ + "The clopping of hooves pass you by with a swift breeze, yet you did not see anything except for local flora brushed by the wind.", + "As you are walking you suddenly hear a woman singing mournfully. As you look around trying to see where the sound is coming from you slowly realize that if you take more than a step and a half in any direction the song fades away. Eventually you are unable to find it again.", + "Winged shadows cross the ground, but when you look into the sky you can't seem to see any movement or shapes at all.", + "There is a bright red star with a dark heart that looks like a pupil, staring down on you from the sky above. Is that star in the sky every night? Is it coming closer to the planet?", + "A helicopter passes by overhead. All it's running lights have been blacked out and you suspect the rotors have been muffled. If it hadn't passed right over you, you'd have never known it was there.", + "Something roars in the night, similar sounding to one of the Kaiju you heard destroying a nearby town during the Cataclysm.", + "The night suddenly goes dead silent." + ] + }, + { + "type": "snippet", + "category": "XE_DAY_MESSAGES_1", + "text": [ + "You realize that all of your empty pockets have been turned inside out. How long ago this happened you can't say.", + "You hear a tinkling sound on the wind.", + "A horn plays somewhere far in the distance; deep, mournful, and low.", + "Suddenly you smell rotten wood and tobacco.", + "You hear a distant explosion. You can't tell if it came from one of the tendrils of smoke at the edge of your vision or if it's new.", + "A single shot fires in the distance then silence.", + "The birds are no longer singing here. It's quiet, scary quiet.", + "A rare plane leaves contrails high in the sky. You wonder where it could be coming from and where it could possibly be going." + ] + }, + { + "type": "snippet", + "category": "XE_SCRAGGY-BOO_MESSAGES_1", + "text": [ + "You see a Russian sheepdog off at the edge of your vision. It walks past some scenery and vanishes.", + "You hear a deep guttural howl, faintly across the way.", + "In your mind you hear a voice, as if a big dog were speaking English. 'It's dangerous here, this whole world is dangerous now'.", + "Scraggy-boo speaks in your mind. 'The real mystery is how to survive this place'." + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/migo_speech.json b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/migo_speech.json new file mode 100644 index 000000000..adfc60445 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/migo_speech.json @@ -0,0 +1,26 @@ +[ + { + "type": "speech", + "speaker": [ "mon_mi_go", "mon_mi_go_slaver", "mon_mi_go_myrmidon" ], + "sound": "\"We negotiated salvage rights to any biological matter remaining in the event of civilizational collapse.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_mi_go", "mon_mi_go_slaver", "mon_mi_go_myrmidon" ], + "sound": "\"Come with us if you want to live!\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_mi_go", "mon_mi_go_slaver", "mon_mi_go_myrmidon" ], + "sound": "\"Cease opposition. Our rights here are guaranteed by treaty M-A-J-I-K-1-2.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_mi_go", "mon_mi_go_slaver", "mon_mi_go_myrmidon" ], + "sound": "\"Your government no longer exists, we will adopt you.\"", + "volume": 20 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/museum.json b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/museum.json new file mode 100644 index 000000000..9d0bb9f9f --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/museum.json @@ -0,0 +1,47 @@ +[ + { + "type": "snippet", + "category": "museum_plaques_items", + "text": [ + { + "id": "museum_plaques_items_1", + "text": "Discovered in an estate sale in upper Chappaquaddick these baubles were labeled as the owners most precious possessions and proof of other worlds." + }, + { + "id": "museum_plaques_items_2", + "text": "Found in a Boston pawn shop, the owner claimed that late one night a strange person entered the establishment and handed over this collection of items for 'whatever is in the register'." + }, + { + "id": "museum_plaques_items_3", + "text": "Found in an archeological dig in the Memphis Delta. How did these objects arrive there?" + }, + { + "id": "museum_plaques_items_4", + "text": "A home in Norton caught and burned with all inhabitants inside, the only thing not destroyed was an old sailors chest that contained these items." + }, + { + "id": "museum_plaques_items_5", + "text": "Natives in Vermont traded these anachronistic objects to early missionaries." + }, + { "id": "museum_plaques_items_6", "text": "Found in a smugglers stash in a cave in Rhode Island." } + ] + }, + { + "type": "snippet", + "category": "museum_plaques_visitors", + "text": [ + { + "id": "museum_plaques_visitors_1", + "text": "These items were worn by an unidentified man who walked out of a swamp with amnesia after an eclipse." + }, + { + "id": "museum_plaques_visitors_2", + "text": "Missing person reappeared in the alleyway they disappeared from twelve years before, they appeared to have only aged a few of those years." + }, + { + "id": "museum_plaques_visitors_3", + "text": "A woman went missing for six hours. During the next 7 hours an elderly woman attempted to convince people there, that she was the missing woman. DNA evidence suggests she is a half sister or aunt to the much younger woman. No family records suggest this relation exists." + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/newspapers.json b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/newspapers.json new file mode 100644 index 000000000..d262dc7ba --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/newspapers.json @@ -0,0 +1,126 @@ +[ + { + "type": "snippet", + "category": "many_years_old_news", + "text": [ + { + "id": "xe_many_years_old_news_1", + "text": "UPTICK IN UFO SIGHTINGS CONCERN PUBLIC. There has been a decidedly large increase in UFO sightings among the general public amongst all ages, race and class. Government spokesperson Jamie Vargas had the following to say. \"All these UFO sightings are due to climate change impacting the Aurora Borealis,\" she told an assembled press. \"There certainly aren't any aliens making contact with the US government and there aren't any aliens flying around. You can count on that!\"" + }, + { + "id": "xe_many_years_old_news_2", + "text": "Announcement of rare elements discovery near the Canadian border. The US government has discovered what they are calling an unexpected windfall of rare elements on the border with Canada. At these sites large domes with irising roofs have been erected before anti satellite measures were enacted. The government claims that these domes were built \"In order to protect the natural environment surrounding this mineral deposits\" Some people living nearby the domes have claimed increased UFO activity after the domes began, but satellite images no longer seem able to view these regions and drones attempting to enter the restricted areas cease to work." + }, + { + "id": "xe_many_years_old_news_3", + "text": "GOVERNMENT ANNOUNCES NEW RESEARCH DIVISION. The US government has announced a new research push into esoteric and fringe sciences. \"We've decided that based on the new medicines and treatments that have been coming out of Asia from leads in Traditional Chinese Medicine and other Asian cultural histories to institute some additional research into less recent avenues. This research group is receiving it's funding as part of the budget windfall brought on by rare mineral deposits near the Canadian border.\" Many geologists are still asking for access to these mineral deposits as these formations fly in the face of previously known geology." + } + ] + }, + { + "type": "snippet", + "category": "years_old_news", + "text": [ + { + "id": "xe_years_old_news_1", + "text": "STRANGE LIGHTS IN WOODS AND SWAMPS: Locals have stated that near the deep woods and swamps strange lights and sounds have occurred. \"Late at night I see and hear things coming from the deep swamp, where it wouldn't be safe to go in the dark\", Steve 'Goatman' Mulroy said. Local police claim that the legalization of various cannabinoids is likely the root cause of these late night occurrences." + }, + { + "id": "xe_years_old_news_2", + "text": "BOTANISTS FIND SEVERAL NEW SPECIES: Botanists across the country are finding new plants in established ecosystems at a record pace. \"These plants seem to have evolved in a slightly different place than where we are finding them\", Jurgen Jurgensen remarked. \"Is this climate change related, some kind of widespread invasive species replacement, previously extinct species finding new conditions to grow in? We just don't know yet.\"" + }, + { + "id": "xe_years_old_news_3", + "text": "BORDER PATROL EXPANSION AND REFORMATION: The Border Patrol has been expanded and reformed as part of several new laws. Several new divisions with differing chains of command have been created and tens of thousands of new agents are expected to be hired over the next decade. When asked for comment on this Senator Fisk of Maine said the following \"The old Border Patrol was a hammer and was used as such. The new border patrol departments are going to be a toolbox.\"" + }, + { + "id": "xe_years_old_news_4", + "text": "STRANGE NEW BIOMES CONTINUE TO EXPAND. The strange biomes of never before seen plants continue to spread. One of the new border patrol divisions has been assigned to investigate and manage these locations that now appear all across America. \"These climate change biomes have appeared globally but we will investigate them locally,\" said a spokesperson for Border Patrol. \"Once we've determined the cause of these locations we will go about figuring out how to exploit or reverse these changes.\"" + }, + { + "id": "xe_years_old_news_5", + "text": "NEW BORDER PATROL DIVISIONS HAVE NO NAMES: In an unnerving development for civil society advocates none of the new Border Patrol Divisions have publicly identified names. Agents have barcode based identification badges that per Homeland Security \"Are significantly harder to forge than other badge designs.\" The ACLU has filed suit calling the 'Zebra Agents' unconstitutional." + }, + { + "id": "xe_years_old_news_6", + "text": "NEW STREET DRUG: There is a new drug flooding New England. DEA Agent Walter Grayfield made the following comment \"It appears to be produced locally somewhere in New England probably in a lab in Boston.\" The drug called 'faewild' causes extreme hyperfocus with a resultant loss of manual dexterity and slowed movements." + }, + { + "id": "xe_years_old_news_7", + "text": "BRIDGEWATER TRIANGLE MOST ACTIVE IN CENTURIES: The Bridgewater Triangle is more active than it has been in centuries with strange sightings and experiences multiple times a week. The local Wampanoag people have begun issuing warnings about the return of Puck-wudj-ininee to their places on this Earth from before their long ago banishment." + } + ] + }, + { + "type": "snippet", + "category": "one_year_old_news", + "text": [ + { + "id": "xe_one_year_old_news_1", + "text": "LIVING NEAR SPILLAGE ZONES. Are you willing to live near a spillage zone? Some people have encountered horrific diseases while others claim that they've met intelligent creatures from the other side. \"These zones and anything that crosses over from them should be considered extremely dangerous,\" said a spokesperson for Border Patrol. \"Why would I trust the Border Patrol. They certainly haven't stopped everything crossing over and yet the world is still ticking on one day at a time.\" said Richard Clarke from Norton, MA" + }, + { + "id": "xe_one_year_old_news_2", + "text": "MISSING HUSBAND WALKS OUT OF EXCLUSION ZONE TWENTY YEARS OLDER: Area man John Paul Godfrey has been missing for over a year since he chased an animal into the Maine Exclusion Zone. He walked out today and pictures suggest he aged by twenty years while in there. Local hospital believes he must have experienced extreme stress to have aged so quickly in such a short time." + }, + { + "id": "xe_one_year_old_news_3", + "text": "TOWN OF JEROME AZ DISSAPEARS OVER NIGHT! The population of Jerome AZ has been declared missing today. A tourist passing through the town found it completely empty of people and all buildings covered in disturbingly large cobwebs. The FBI and Border Patrol are both investigating." + }, + { + "id": "xe_one_year_old_news_4", + "text": "NEW CANDY MAKER OPENS: Activity at the old Reed and Barton Complex in Taunton, MA has been ongoing for several months. Locals wondered what exactly was going on at the abandoned complex, but now there are answers! The entire complex has been taken over by a foreign candy maker known as Wyld Candies. A spokesperson for the company stated that 'We believe there will be explosive growth opportunities here in New England in the very near future.' Local children thrilled to try out the new flavors." + } + ] + }, + { + "type": "snippet", + "category": "months_old_news", + "text": [ + { + "id": "xe_months_old_news_1", + "text": "JODDIT FACES SIGNIFICANT BACKLASH: Joddit, the 'paper of record for the internet' is undergoing significant upheaval as their volunteer workforce began organizing for less interference in their communities from the site owners. The current CEO of Joddit continues to fan the flames beyond any reasonable length by calling volunteer workforce 'entitled'." + }, + { + "id": "xe_months_old_news_2", + "text": "WAREHOUSE FULL OF BLOOD DRAINED BODIES FOUND IN BOSTON: A horrific discovery in Boston this morning with a discovery of a downtown warehouse full of dead bodies. The bodies were found in two states, completely drained of blood or decapitated with the hearts torn out. The police haven't released the total number of bodies discovered but it is believed that this must the work of a gang war. Our source said that they believe that the two different body states suggest that one type of death is for people who are in the gang versus those who are outside of the gang but work for it." + }, + { + "id": "xe_months_old_news_3", + "text": "ZEBRA HIRING SPREE: The border patrol divisions known collectively as Zebra Divisions seem to have gone on an impressive hiring spree judging by the quantity of office buildings and agency marked vehicles in New England, not part of the country historically considered a dangerous border in need of patrols. However, in this new world where seepage events are regular occurrences and rumors of strange creatures crossing over are commonplace these new teams seem important." + } + ] + }, + { + "type": "snippet", + "category": "weeks_old_news", + "text": [ + { + "id": "xe_weeks_old_news_1", + "text": "WHAT LIES AT THE RAINBOWS END: \"Stories about parties of fantastical warriors marching out from rainbow bridges are pure balderdash.\", the commissioner of Customs and Border Protection said in a press conference today. \"Also pure lies are the stories of people who's family history has been touched by the supernatural being gathered up by long dead relatives to go to so-called rainbow bridges. Surely, you can't be giving this credence?\"" + }, + { + "id": "xe_weeks_old_news_2", + "text": "DREAMS FEEL MORE REAL: Everyone seems to agree that dreams feel more real than they ever have previously. The idea that you might be able to do something downright magickal if you just figured out how to turn the right knobs in your dreams seems to be spreading." + }, + { + "id": "xe_weeks_old_news_3", + "text": "CARNIVAL ARRIVES FROM EUROPE. Mr Shade's Hurly Burly Carnival has arrived back in New England after having spent the last thirty years traveling Olde Europe as they say. The sights to be seen at this carnival were called 'Once in a generation' by this journalist's grandfather. I'll be making plans to attend and I hope you do too." + } + ] + }, + { + "type": "snippet", + "category": "newest_news", + "text": [ + { + "id": "xe_newest_news_1", + "text": "FATEFUL OBJECTS GRAND FINALE SALE: The pawnshop of princes, the auctioneer of artifacts, Clove Payne has declared that he is holding a 'Grand Finale Sale for the World' at his store Fateful Objects. He welcomes everyone to come for 'One last round of dealmaking before it all goes to pieces!'" + }, + { + "id": "xe_newest_news_2", + "text": "WAMPANOAG TRIBE DECLARES RETURN HOME FOR NEW ENGLAND NATIVE AMERICANS! The Wampanoag Tribe of Aquinnah (Land under the hill) have sent out messages across every medium that all of the peoples descended from the Wampanoag Confederation are welcome to join them in their federal land trust reservation on Martha's Vineyard. It is unknown as of press time how long they are planning to play host to the potentially thousands of people that could answer this call." + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/snippet.json b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/snippet.json index 1361790a4..e5b689e5c 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/snippet.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/snippet.json @@ -30,5 +30,31 @@ "text": "The weird creatures that seem to come out of peoples nightmares don't seem to be able to track by smell like so many of the other monsters. I wonder if that's because smell isn't a strong sense in dreams?" } ] + }, + { + "type": "snippet", + "category": "inventor_success", + "text": [ + "After some work, you came to the solution that satisfies you.", + "You spent a lot of time, and the result looks good now.", + "Huge amount of time transferred into a knowledge you will utilize well.", + "Finally, your work came to something good.", + "yes, Yes, YES!", + "That was stupid, but it did work.", + "The job is done." + ] + }, + { + "type": "snippet", + "category": "inventor_fail", + "text": [ + "You did a lot of research and calculations, but the result do not satisfy you.", + "Nope.", + "That's bad.", + "It won't work.", + "It was a good idea, but you picked a wrong approach.", + "Why did you start it? It is obviously not possible.", + "How did I…? Ugh, nevermind." + ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/vampire_speech.json b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/vampire_speech.json new file mode 100644 index 000000000..c5f999f65 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/vampire_speech.json @@ -0,0 +1,67 @@ +[ + { + "type": "speech", + "speaker": [ + "mon_renfield", + "mon_renfield_9mm", + "mon_renfield_shotgun", + "mon_renfield_flamethrower", + "mon_renfield_bionic_monster", + "mon_renfield_abomination" + ], + "sound": "\"The masters have come, and they have promised to make me immortal!\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ + "mon_renfield", + "mon_renfield_9mm", + "mon_renfield_shotgun", + "mon_renfield_flamethrower", + "mon_renfield_bionic_monster", + "mon_renfield_abomination" + ], + "sound": "\"I am here to do the masters' bidding!\"", + "volume": 32 + }, + { + "type": "speech", + "speaker": [ + "mon_renfield", + "mon_renfield_9mm", + "mon_renfield_shotgun", + "mon_renfield_flamethrower", + "mon_renfield_bionic_monster", + "mon_renfield_abomination" + ], + "sound": "\"Who's there? Is that blood for the masters?\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ + "mon_renfield", + "mon_renfield_9mm", + "mon_renfield_shotgun", + "mon_renfield_flamethrower", + "mon_renfield_bionic_monster", + "mon_renfield_abomination" + ], + "sound": "\"Can you help me? The masters are so very hungry.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ + "mon_renfield", + "mon_renfield_9mm", + "mon_renfield_shotgun", + "mon_renfield_flamethrower", + "mon_renfield_bionic_monster", + "mon_renfield_abomination" + ], + "sound": "\"Why won't you just surrender to the masters' needs!\"", + "volume": 32 + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/xedra.json b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/xedra.json index e58209ef6..7086626ac 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/snippets/xedra.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/snippets/xedra.json @@ -49,7 +49,7 @@ "id": "desk_postit_field_agent_4", "text": "Cultists? Foreign Agents? Pod people?" }, - { "name": "green postit 5", "id": "desk_postit_field_agent_5", "text": "Carcosa? Leng?." }, + { "name": "green postit 5", "id": "desk_postit_field_agent_5", "text": "Carcosa? Leng?" }, { "name": "green postit 6", "id": "desk_postit_field_agent_6", "text": "Delta Green? Majestic 12?" }, { "name": "green postit 7", @@ -86,7 +86,7 @@ { "name": "gray postit 3", "id": "agent_postit_gray_3", - "text": "Three different types of shapechangers found in the last month? Separate succesful experiments from one power or different incursions that we should expect more from each type?" + "text": "Three different types of shapechangers found in the last month? Separate successful experiments from one power or different incursions that we should expect more from each type?" }, { "name": "gray postit 4", @@ -156,5 +156,26 @@ "text": "Off books, we need more intel on the mirrorshades so we can avenge Tony, Martell, and Picarelli." } ] + }, + { + "type": "snippet", + "category": "border_patrol_files", + "text": [ + { + "name": "incursion_zero", + "id": "incursion_zero_report", + "text": "Date: 07/13/2008\nLocation: Old Cain Springs, Kentucky\nIncident: Faerie Incursion\nDescription: Our department has received reports of strange occurrences in the area, including sightings of small, barkskinned creatures that match the description of faeries from folklore. Witnesses have reported missing objects, strange noises, and unexplained lights in the vicinity.\nResponse: Our team has been dispatched to the area to investigate. We are working closely with local law enforcement and other relevant agencies to determine the nature of the incursion and to neutralize any potential threats. We advise residents to stay indoors and report any suspicious activity to the authorities.\nStatus: The situation is ongoing. We have set up a temporary command center in the area and are conducting a thorough investigation. Our team is equipped with specialized equipment to detect and track interdimensional activity. We will provide further updates as the situation develops.\nRecommendation: Based on our findings, we recommend that the area be designated as a potential hotspot for interdimensional activity. We suggest that ongoing surveillance and monitoring be put in place to ensure the safety of local residents and to prevent any further incursions. We also recommend that education programs be put in place to help residents understand the nature of these creatures and how to avoid potential conflicts." + }, + { + "name": "abduction_report", + "id": "abduction_report_1", + "text": "Date: 07/25/2008\nLocation: Old Cain Springs, Kentucky\nIncident: Abduction of Locals\nDescription: Our team has received reports of several local residents who have gone missing under mysterious circumstances. Witnesses have reported seeing small, floating lights in the area around the time of the disappearances, leading us to believe that fae-class cryptids may be involved.\nResponse: Our team has launched a full investigation into the matter, working in close coordination with local law enforcement. We have engaged significant animal based tracking resources, and are gathering intelligence from witnesses and other sources to build a comprehensive picture of the situation.\nStatus: The situation is ongoing. At this time, we have not been able to locate the missing individuals or definitively establish the involvement of fae-class cryptids. However, we are actively pursuing all leads and are dedicating significant resources to this investigation.\nRecommendation: Based on our findings to date, we recommend that the area be designated as a high-risk zone for fae cryptid activity. We urge all residents to exercise caution and report any suspicious activity to the authorities. Additionally, we recommend that public awareness campaigns be initiated to educate the public about the potential dangers of fae cryptids and how to avoid potential conflicts. Our team will continue to provide updates as the investigation progresses." + }, + { + "name": "lights_in_swamp_report", + "id": "lights_in_swamp_report", + "text": "Date: 04/29/2016\nLocation: Norton, Massachusetts wetlands\nIncident: Strange lights and sounds in bogs at night\nDescription: Sam 'Goatman' Simmons, has reported numerous strange lights and sounds emanating from the bogs on the northern edge of Norton, MA on the way to Rehobeth. He'd been drinking and walking his goat late one night and as he neared the edge of the wetlands he heard strange music and multicoloured lights. He suspected one of his neighbors who's property adjoined the bog of throwing a party but after walking around the edges he couldn't figure out how to get through the various streams and ponds to get to it. Finally at some point, he remembered stories his grandparents had told about people going missing in the bogs and decided to go home and call the police. The police passed it on to the Border Patrol who investigated for dimensional spillage. While they were unable to find any cryptids or artifacts at the bogs, they measured a weakness in reality that suggests that the stories might have basis in fact. Border Patrol left emergency contact information with the local police in the event of any future incursions." + } + ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/spells/XAEA.json b/data/Mainline_mods/Mods/Xedra_Evolved/spells/XAEA.json new file mode 100644 index 000000000..c032e244d --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/spells/XAEA.json @@ -0,0 +1,389 @@ +[ + { + "type": "ter_furn_transform", + "id": "XE_quake_transform", + "furniture": [ { "result": "f_rubble", "valid_furniture": [ "f_null" ], "message": "The earth is upheaved!" } ] + }, + { + "id": "XAEA_quake", + "type": "SPELL", + "name": "Artifact Earthquake", + "description": "Cause a localized earthquake, knocking down enemies and overturning the earth.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "LOUD", "RANDOM_DAMAGE", "NO_PROJECTILE", "IGNORE_WALLS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "attack", + "shape": "blast", + "effect_str": "downed", + "damage_type": "bash", + "min_damage": 160, + "max_damage": 224, + "min_aoe": 35, + "max_aoe": 35, + "min_duration": 500, + "max_duration": 1300, + "message": "The earth around you rumble, and in an instant everything happen to be upside down.", + "sound_description": "a deep rumbling", + "sound_id": "earth_spell", + "sound_variant": "strong", + "extra_effects": [ { "id": "XE_quake_transform" }, { "id": "XE_quake_shake" } ] + }, + { + "id": "XE_quake_shake", + "type": "SPELL", + "name": "Artifact Quake Earthquake", + "description": "Destroy furniture and terrain nearby.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "IGNORE_WALLS", "RANDOM_DAMAGE" ], + "effect": "bash", + "shape": "blast", + "min_damage": 120, + "max_damage": 350, + "min_aoe": 35, + "max_aoe": 35 + }, + { + "id": "XE_quake_transform", + "type": "SPELL", + "name": "Artifact Quake Transform", + "description": "Causes rubble to be spawned occasionally.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "IGNORE_WALLS" ], + "effect": "ter_transform", + "effect_str": "quake_transform", + "shape": "blast", + "min_damage": 150, + "max_damage": 150, + "min_aoe": 35, + "max_aoe": 35 + }, + { + "id": "XAEA_teleport_rand", + "type": "SPELL", + "name": "Artifact Teleport", + "description": "Teleport the caster to a random point nearby.", + "effect": "short_range_teleport", + "shape": "blast", + "valid_targets": [ "ground" ], + "flags": [ "IGNORE_WALLS", "NO_LEGS", "SILENT", "RANDOM_TARGET" ], + "message": "It's not like you teleport somewhere else, rather the whole world has been shifted, and you are left in the same place.", + "sound_description": "", + "min_aoe": 20, + "max_aoe": 20, + "min_range": 40, + "max_range": 40 + }, + { + "id": "XAEA_kill_spell", + "type": "SPELL", + "name": "Artifact Kill", + "description": "Deal damage equal to 1000% of monster's hp.", + "valid_targets": [ "hostile" ], + "message": "Something living nearby just exploded with fountain of gore.", + "sound_description": "", + "min_damage": 1000, + "max_damage": 1000, + "min_range": 20, + "max_range": 20, + "effect": "attack", + "shape": "blast", + "damage_type": "pure", + "flags": [ "SILENT", "PERCENTAGE_DAMAGE", "RANDOM_TARGET" ] + }, + { + "type": "SPELL", + "id": "XAEA_heal", + "name": { "str": "Artifact Heal" }, + "description": "Will heal injuries all over your body.", + "valid_targets": [ "self" ], + "effect": "attack", + "flags": [ "NO_PROJECTILE", "NO_EXPLOSION_SFX", "SILENT" ], + "shape": "blast", + "base_casting_time": 100, + "min_damage": -30, + "max_damage": -30, + "message": "Your flesh quickly rots and regenerates like in timelapse.", + "sound_description": "" + }, + { + "type": "SPELL", + "id": "XAEA_pain", + "name": { "str": "Artifact Pain" }, + "description": "Decrease some pain.", + "valid_targets": [ "self" ], + "effect": "recover_energy", + "effect_str": "PAIN", + "shape": "blast", + "flags": [ "RANDOM_DAMAGE", "NO_EXPLOSION_SFX", "SILENT" ], + "min_damage": 150, + "max_damage": 150, + "message": "All your feelings numb for a second, and all pain is gone now.", + "sound_description": "" + }, + { + "type": "SPELL", + "id": "XAEA_stamina", + "name": { "str": "Artifact Stamina" }, + "description": "Restore some stamina.", + "min_damage": 4000, + "max_damage": 6000, + "valid_targets": [ "self" ], + "flags": [ "RANDOM_DAMAGE", "NO_EXPLOSION_SFX", "SILENT" ], + "message": "The energy stream into your muscle, and you feel you can run a marathon right now.", + "sound_description": "", + "shape": "blast", + "effect": "recover_energy", + "effect_str": "STAMINA" + }, + { + "type": "SPELL", + "id": "XAEA_mana", + "name": { "str": "Artifact Mana" }, + "description": "Restore some mana.", + "min_damage": 1000, + "max_damage": 2000, + "valid_targets": [ "self" ], + "flags": [ "RANDOM_DAMAGE", "NO_EXPLOSION_SFX", "SILENT" ], + "message": "You feel your body become energized, and you are ready to change the world.", + "sound_description": "", + "shape": "blast", + "effect": "recover_energy", + "effect_str": "MANA" + }, + { + "type": "SPELL", + "id": "XAEA_map", + "effect": "map", + "shape": "blast", + "name": { "str": "Artifact Map" }, + "description": "Reveals an area around you on the overmap.", + "valid_targets": [ "self" ], + "flags": [ "NO_EXPLOSION_SFX", "RANDOM_DAMAGE", "SILENT" ], + "min_aoe": 40, + "max_aoe": 70, + "message": "You feel like you know this place.", + "sound_description": "" + }, + { + "id": "XAEA_str", + "type": "SPELL", + "name": "Artifact Strength Boost", + "description": "Grant you powerful damage boost for 2 minutes.", + "valid_targets": [ "self" ], + "flags": [ "NO_EXPLOSION_SFX", "SILENT" ], + "effect": "attack", + "shape": "blast", + "effect_str": "xe_str", + "min_duration": 12000, + "max_duration": 12000, + "sound_description": "", + "message": "" + }, + { + "id": "xe_str", + "type": "effect_type", + "name": [ "Enormous power" ], + "desc": [ "Your muscles scream with force." ], + "apply_message": "Unleash the power.", + "remove_message": "The power fade away.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "STRENGTH", "add": 15 } ] } ] + }, + { + "id": "XAEA_int", + "type": "SPELL", + "name": "Artifact Intelligence Boost", + "description": "Grant you huge int bonus for 1-2 hours.", + "valid_targets": [ "self" ], + "flags": [ "NO_EXPLOSION_SFX", "SILENT", "RANDOM_DURATION" ], + "effect": "attack", + "shape": "blast", + "effect_str": "xe_int", + "min_duration": 360000, + "max_duration": 720000, + "sound_description": "", + "message": "" + }, + { + "id": "xe_int", + "type": "effect_type", + "name": [ "The Knowledge" ], + "desc": [ "You know for sure - right now you are the smartest human on this side of the planet." ], + "apply_message": "With some effort you can outsmart reality.", + "remove_message": "You feel yourself much less smarter than before.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "INTELLIGENCE", "add": 12 } ] } ] + }, + { + "id": "XAEA_electric_sight", + "type": "SPELL", + "name": "Artifact Electric Sight", + "description": "Gives you an ability to see electric creatures for a whole week.", + "valid_targets": [ "self" ], + "flags": [ "NO_EXPLOSION_SFX", "SILENT", "RANDOM_DURATION" ], + "effect": "attack", + "shape": "blast", + "effect_str": "xe_sight_elec", + "min_duration": 60480000, + "max_duration": 60480000, + "sound_description": "", + "message": "" + }, + { + "id": "xe_sight_elec", + "type": "effect_type", + "name": [ "Sparks" ], + "desc": [ "You feel a dancing sparks in your eyes." ], + "apply_message": "Tiny electrical joints jump in your cornea.", + "remove_message": "The sparks in your eyes are finally gone.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "SIGHT_RANGE_ELECTRIC", "add": 100 } ] } ] + }, + { + "id": "XAEA_incorporeal", + "type": "SPELL", + "name": "Artifact Incorporeal", + "description": "Gives incorporeal effect for 0,5-1 hour.", + "valid_targets": [ "self" ], + "flags": [ "NO_EXPLOSION_SFX", "SILENT", "RANDOM_DURATION" ], + "effect": "attack", + "shape": "blast", + "effect_str": "incorporeal", + "min_duration": 180000, + "max_duration": 360000, + "sound_description": "", + "message": "" + }, + { + "id": "XAEA_line", + "type": "SPELL", + "name": "Artifact Line", + "description": "Create a line of pure destruction.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SILENT", "RANDOM_DAMAGE", "IGNORE_WALLS", "RANDOM_DURATION", "RANDOM_TARGET", "RANDOM_CRITTER" ], + "effect": "attack", + "shape": "line", + "damage_type": "bash", + "min_range": 40, + "max_range": 40, + "min_damage": 160, + "max_damage": 224, + "min_aoe": 7, + "max_aoe": 7, + "message": "Silently, a part of the world nearby just disappears.", + "sound_description": "", + "extra_effects": [ + { "id": "XE_line_bash" }, + { "id": "XE_line_bash" }, + { "id": "XE_line_bash" }, + { "id": "XE_line_bash" }, + { "id": "XE_line_bash" }, + { "id": "XE_line_bash" } + ] + }, + { + "id": "XE_line_bash", + "type": "SPELL", + "name": "Artifact Line Bash", + "description": "Destroy furniture and terrain nearby.", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX", "IGNORE_WALLS", "RANDOM_DAMAGE" ], + "effect": "bash", + "shape": "line", + "min_damage": 120, + "max_damage": 350, + "min_aoe": 7, + "max_aoe": 7, + "min_range": 40, + "max_range": 40 + }, + { + "id": "XAEA_hologram_summon", + "type": "SPELL", + "name": "Artifact Hologram Summon", + "description": "Summon a lot of holograms around you, for 0,5 - 1 h.", + "valid_targets": [ "ground" ], + "flags": [ "SILENT", "RANDOM_DAMAGE", "IGNORE_WALLS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "summon", + "effect_str": "mon_you", + "shape": "blast", + "damage_type": "bash", + "message": "It is you. And this is you. And that is you. You are everywhere.", + "sound_description": "", + "min_damage": 14, + "max_damage": 38, + "min_aoe": 26, + "max_aoe": 26, + "min_duration": 180000, + "max_duration": 360000 + }, + { + "id": "XAEA_electric_emit", + "type": "SPELL", + "name": "Artifact Electric Emitter", + "description": "Emit giant electric clout for 5 - 15 m.", + "valid_targets": [ "self" ], + "flags": [ "NO_EXPLOSION_SFX", "SILENT", "RANDOM_DURATION" ], + "effect": "attack", + "shape": "blast", + "effect_str": "xaea_electric_emit", + "min_duration": 30000, + "max_duration": 90000, + "sound_description": "", + "message": "" + }, + { + "id": "xaea_electric_emit", + "type": "effect_type", + "name": [ "Shocker" ], + "desc": [ "Your body emit enough energy to power some small city." ], + "apply_message": "Shocking clouds fly everywhere!", + "remove_message": "Electric clouds are gone.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "emitter": "emit_shock_cloud_big", "values": [ { "value": "ARMOR_ELEC", "add": -100 } ] } ] + }, + { + "id": "XAEA_mod_moves", + "type": "SPELL", + "name": "Artifact Add Moves", + "description": "Gives 15 - 45 seconds of free actions.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "RANDOM_DAMAGE", "IGNORE_WALLS", "RANDOM_DURATION", "NO_EXPLOSION_SFX" ], + "effect": "mod_moves", + "shape": "blast", + "damage_type": "bash", + "min_damage": 1500, + "max_damage": 4500, + "message": "The world around you silently stops.", + "sound_description": "" + }, + { + "id": "XAEA_motion_vision", + "type": "SPELL", + "name": "Artifact Super Senses", + "description": "You can feel any monster in range for a 0,5 - 2 h.", + "valid_targets": [ "self" ], + "flags": [ "NO_EXPLOSION_SFX", "SILENT", "RANDOM_DURATION" ], + "effect": "attack", + "shape": "blast", + "effect_str": "xe_motion_vision", + "min_duration": 180000, + "max_duration": 720000, + "sound_description": "", + "message": "" + }, + { + "id": "xe_motion_vision", + "type": "effect_type", + "name": [ "Extra Senses" ], + "desc": [ "Somehow you can feel any motion around with your spine." ], + "apply_message": "You feel unusual sensation in your spine.", + "remove_message": "The sensation in your spine gone.", + "rating": "good", + "show_intensity": false, + "enchantments": [ { "values": [ { "value": "MOTION_VISION_RANGE", "add": 30 } ] } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/spells/classless_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/spells/classless_spells.json index 8f5759d84..8acd5330a 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/spells/classless_spells.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/spells/classless_spells.json @@ -7,18 +7,17 @@ "message": "Your eyes glow lavender for a moment. Now your sight can pierce the darkest shadows.", "valid_targets": [ "self" ], "effect": "attack", - "effect_str": "dark_sight", + "effect_str": "night_sight", + "skill": "deduction", "shape": "blast", - "min_range": 1, - "max_range": 1, - "base_casting_time": 100, - "base_energy_cost": 500, + "base_casting_time": 2000, + "base_energy_cost": 1200, "energy_source": "MANA", "difficulty": 6, "max_level": 20, - "min_duration": 100000, - "max_duration": 1000000, - "duration_increment": 2000 + "min_duration": { "math": [ "spell_time(u_val('time: 3 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 3 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 3 m'))" ] } }, { "id": "dread_weight", @@ -27,6 +26,7 @@ "description": "Everything around you faces an existential crisis and moves slower as a result. Including things that you wouldn't expect to suffer from existential crises, like the undead. The air around the targets' extremities chills dramatically. Higher levels allow a bigger AoE, and longer effect.", "effect": "attack", "effect_str": "effect_dread_weight", + "skill": "deduction", "shape": "blast", "affected_body_parts": [ "foot_l", "foot_r", "arm_l", "arm_r" ], "valid_targets": [ "hostile" ], @@ -36,7 +36,7 @@ "damage_increment": 1.0, "min_aoe": 2, "max_aoe": 20, - "aoe_increment": 0.5, + "aoe_increment": 0.9, "min_range": 5, "max_range": 20, "range_increment": 2.0, @@ -58,7 +58,8 @@ "description": "The edges of your form seem to blur and distort, increasing the amount of attacks you might dodge in a given turn.", "valid_targets": [ "self" ], "effect": "spawn_item", - "effect_str": "obfuscating_aura", + "effect_str": "blurred_aura", + "skill": "deduction", "shape": "blast", "energy_source": "MANA", "spell_class": "NONE", @@ -69,16 +70,17 @@ "base_energy_cost": 400, "min_duration": 21000, "max_duration": 90000, - "duration_increment": 4500 + "duration_increment": 4600 }, { "id": "damage_transfer", "type": "SPELL", "name": "Damage Transfer", - "description": "Allow you to move some damage from your body to someone else. Usually people don't like it, but who cares now?", + "description": "Allows you to move some damage from your body to someone else. Usually people don't like it, but who cares now?", "//": "deal damage, give heal. nothing special.", "valid_targets": [ "hostile" ], "flags": [ "CONCENTRATE", "SOMATIC", "SILENT", "NO_PROJECTILE" ], + "skill": "deduction", "effect": "attack", "shape": "blast", "damage_type": "bash", @@ -98,7 +100,7 @@ "id": "damage_transfer_heal", "type": "SPELL", "name": "Damage Transfer Heal", - "description": "Spell that will heal you for a bit. You can see it only in debug mode.", + "description": "A spell that will heal you for a bit. You can see it only in debug mode.", "valid_targets": [ "self" ], "flags": [ "SILENT" ], "effect": "attack", @@ -112,11 +114,12 @@ "id": "fire_teleport", "type": "SPELL", "name": "Pyroportation", - "description": "Transport you from one place to another, creating a huge fire explosion in the end.", + "description": "Transports you from one place to another, creating a huge fire explosion in the end.", "effect": "short_range_teleport", "shape": "blast", "valid_targets": [ "ground" ], "flags": [ "SOMATIC", "SILENT", "NO_LEGS", "TARGET_TELEPORT" ], + "skill": "deduction", "min_range": 4, "max_range": 12, "range_increment": 0.3, @@ -136,7 +139,7 @@ "id": "fire_teleport_explosion", "type": "SPELL", "name": "Pyroportation Explosion", - "description": "Makes pretty big fire explosion around you.", + "description": "Makes a pretty big fire explosion around you.", "effect": "attack", "shape": "blast", "valid_targets": [ "hostile", "ground" ], diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/spells/dreamer_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/spells/dreamer_spells.json index c307c3d1a..d0e0ecc1d 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/spells/dreamer_spells.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/spells/dreamer_spells.json @@ -6,8 +6,6 @@ "description": "This ephemeral blade allows you to defend yourself with dreams brought out of your mind!", "valid_targets": [ "self" ], "flags": [ "VERBAL", "NO_LEGS", "CONCENTRATE" ], - "min_range": 0, - "max_range": 0, "min_damage": 1, "max_damage": 1, "effect": "spawn_item", @@ -15,12 +13,12 @@ "shape": "blast", "base_casting_time": 350, "base_energy_cost": 375, - "min_duration": 6000, - "max_duration": 60000, - "duration_increment": 4000, + "min_duration": { "math": [ "spell_time(u_val('time: 4 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 6 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 4 m'))" ] }, "skill": "deduction", "difficulty": 5, - "max_level": 20, + "max_level": { "math": [ "dreamer_level(1)" ] }, "energy_source": "MANA", "spell_class": "DREAMER" }, @@ -28,11 +26,9 @@ "id": "dream_dagger", "type": "SPELL", "name": "Dream Dagger", - "description": "This ephemeral dagger allows you to defend yourself with dreams brought out of your mind! Summoning smaller objects is faster and cheaper than summoning larger more complex items.", + "description": "This ephemeral dagger is powered with your own inner reality connections, and is deadlier the larger your mana pool.", "valid_targets": [ "self" ], "flags": [ "VERBAL", "NO_LEGS", "CONCENTRATE" ], - "min_range": 0, - "max_range": 0, "min_damage": 1, "max_damage": 1, "effect": "spawn_item", @@ -40,12 +36,12 @@ "shape": "blast", "base_casting_time": 150, "base_energy_cost": 175, - "min_duration": 6000, - "max_duration": 60000, - "duration_increment": 4000, + "min_duration": { "math": [ "spell_time(u_val('time: 4 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 6 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 4 m'))" ] }, "skill": "deduction", "difficulty": 3, - "max_level": 20, + "max_level": { "math": [ "dreamer_level(1)" ] }, "energy_source": "MANA", "spell_class": "DREAMER" }, @@ -56,8 +52,6 @@ "description": "Armor that sits lightly on your body with little in the way of encumbrance and rests on top of whatever you are wearing.", "valid_targets": [ "self" ], "flags": [ "VERBAL", "NO_LEGS", "CONCENTRATE", "SOMATIC" ], - "min_range": 0, - "max_range": 0, "min_damage": 1, "max_damage": 1, "effect": "spawn_item", @@ -67,17 +61,17 @@ "energy_source": "MANA", "skill": "deduction", "difficulty": 7, - "max_level": 20, + "max_level": { "math": [ "dreamer_level(1)" ] }, "base_casting_time": 350, "base_energy_cost": 175, - "min_duration": 6000, - "max_duration": 60000, - "duration_increment": 4000 + "min_duration": { "math": [ "spell_time(u_val('time: 4 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 6 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 4 m'))" ] } }, { "id": "create_dream_dross", "type": "SPELL", - "name": "Bring forth Dreamdross", + "name": "Bring Forth Dreamdross", "description": "This ritual pulls a small amount of dreamdross into our world and makes it permanent. These scraps of dreaming can then be used to make permanent objects.", "valid_targets": [ "self" ], "min_damage": 1, @@ -93,9 +87,532 @@ "duration_increment": 1, "skill": "deduction", "difficulty": 0, - "max_level": 60, + "max_level": { "math": [ "dreamer_level(1)" ] }, "spell_class": "DREAMER", "energy_source": "MANA", - "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ] + "flags": [ "PERMANENT_ALL_LEVELS", "NO_LEGS", "CONCENTRATE" ] + }, + { + "id": "banish_nether_monsters", + "type": "SPELL", + "name": { "str": "Banish Interdimensional Horrors" }, + "description": "Attempts to banish things clearly inimical to local physics back to their home dimension.", + "teachable": false, + "valid_targets": [ "hostile" ], + "effect": "attack", + "shape": "blast", + "targeted_monster_species": [ "NETHER" ], + "spell_class": "DREAMER", + "energy_source": "MANA", + "damage_type": "pure", + "skill": "deduction", + "difficulty": 8, + "min_damage": 30, + "max_damage": 407, + "damage_increment": 13, + "min_aoe": 1, + "max_aoe": 10, + "aoe_increment": 0.34, + "base_casting_time": 400, + "casting_time_increment": -10, + "final_casting_time": 100, + "base_energy_cost": 1000, + "energy_increment": -50, + "final_energy_cost": 100, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "flags": [ "SILENT" ] + }, + { + "id": "banish_dark_monsters", + "type": "SPELL", + "name": { "str": "Banish Darkness Made Flesh" }, + "description": "Attempts to banish monsters crafted from the darkest of nights.", + "teachable": false, + "valid_targets": [ "hostile", "ally" ], + "effect": "attack", + "shape": "blast", + "targeted_monster_ids": [ "mon_darkman", "mon_shadow", "mon_shadow_snake" ], + "spell_class": "DREAMER", + "energy_source": "MANA", + "damage_type": "pure", + "skill": "deduction", + "difficulty": 7, + "min_damage": 30, + "max_damage": 407, + "damage_increment": 13, + "min_aoe": 1, + "max_aoe": 10, + "aoe_increment": 0.34, + "base_casting_time": 400, + "casting_time_increment": -10, + "final_casting_time": 110, + "base_energy_cost": 1000, + "energy_increment": -50.0, + "final_energy_cost": 100, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "flags": [ "SILENT" ] + }, + { + "id": "spell_summon_twin", + "type": "SPELL", + "name": "Twin", + "description": "Make a fake copy of yourself to disrupt your enemies.", + "valid_targets": [ "ground" ], + "teachable": false, + "effect": "summon", + "effect_str": "mon_twin", + "shape": "blast", + "flags": [ "SILENT", "RANDOM_TARGET", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "DREAMER", + "energy_source": "MANA", + "min_range": 1, + "max_range": 1, + "min_damage": 1, + "max_damage": 9, + "damage_increment": 0.4, + "min_aoe": 1, + "max_aoe": 9, + "aoe_increment": 0.4, + "difficulty": 6, + "base_casting_time": 800, + "final_casting_time": 200, + "casting_time_increment": -20, + "base_energy_cost": 700, + "final_energy_cost": 300, + "energy_increment": -20, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 15 s'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 1 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 15 s'))" ] }, + "learn_spells": { "spell_summon_twin_flood": 15 } + }, + { + "id": "spell_summon_twin_flood", + "type": "SPELL", + "name": "Twin Flood", + "description": "Fill the reality with your own copies.", + "teachable": false, + "valid_targets": [ "ground" ], + "effect": "summon", + "effect_str": "mon_twin", + "shape": "blast", + "flags": [ "SILENT", "RANDOM_TARGET", "NO_EXPLOSION_SFX", "NO_LEGS", "CONCENTRATE" ], + "skill": "deduction", + "spell_class": "DREAMER", + "energy_source": "MANA", + "min_range": 1, + "max_range": 1, + "min_damage": 9, + "max_damage": 100, + "damage_increment": 2, + "min_aoe": 9, + "max_aoe": 34, + "aoe_increment": 1, + "difficulty": 8, + "base_casting_time": 800, + "final_casting_time": 0, + "casting_time_increment": -20, + "base_energy_cost": 1000, + "final_energy_cost": 300, + "energy_increment": -25, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 15 s'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 1 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 15 s'))" ] } + }, + { + "id": "spell_dreamer_clairvoyance", + "type": "SPELL", + "name": "Unfold", + "description": "All walls are obliterated before your eyes.", + "teachable": false, + "valid_targets": [ "hostile", "ground" ], + "flags": [ "IGNORE_WALLS", "NO_LEGS", "SILENT", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "DREAMER", + "energy_source": "MANA", + "difficulty": 8, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "effect": "attack", + "shape": "cone", + "min_range": 2, + "max_range": 45, + "range_increment": 1.5, + "min_aoe": 12, + "max_aoe": 360, + "aoe_increment": 12, + "base_casting_time": { "math": [ "spell_time(u_val('time: 30 s'))" ] }, + "final_casting_time": { "math": [ "spell_time(u_val('time: 5 s'))" ] }, + "casting_time_increment": { "math": [ "-1 * spell_time(u_val('time: 1 s'))" ] }, + "base_energy_cost": 600, + "final_energy_cost": 300, + "energy_increment": -10, + "field_id": "fd_clairvoyant", + "min_field_intensity": 1, + "max_field_intensity": 1 + }, + { + "id": "spell_dreamer_clairvoyance_eff", + "type": "SPELL", + "name": "Spatial Awareness", + "description": "Feel them. See them. Connect to them.", + "teachable": false, + "valid_targets": [ "hostile", "ally" ], + "flags": [ "IGNORE_WALLS", "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "DREAMER", + "energy_source": "MANA", + "difficulty": 9, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "effect": "attack", + "shape": "blast", + "min_aoe": 10, + "max_aoe": 60, + "aoe_increment": 2.5, + "base_casting_time": 500, + "final_casting_time": 0, + "casting_time_increment": -25, + "base_energy_cost": 600, + "final_energy_cost": 300, + "energy_increment": -10, + "field_id": "fd_clairvoyant", + "min_field_intensity": 1, + "max_field_intensity": 1 + }, + { + "id": "summon_shifter", + "type": "SPELL", + "name": "Summon Shifter", + "description": "Summon a portal creature to help in a dangerous situation.", + "teachable": false, + "valid_targets": [ "ground" ], + "skill": "deduction", + "min_damage": 1, + "max_damage": 5, + "damage_increment": 0.2, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "difficulty": 4, + "spell_class": "DREAMER", + "effect": "summon", + "effect_str": "mon_shifter", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 500, + "base_casting_time": { "math": [ "spell_time(u_val('time: 30 s'))" ] }, + "final_casting_time": 100, + "casting_time_increment": -100, + "min_aoe": 2, + "max_aoe": 2, + "flags": [ "VERBAL", "CONCENTRATE", "NO_EXPLOSION_SFX" ], + "min_duration": { "math": [ "spell_time(u_val('time: 5 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 5 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 5 m'))" ] } + }, + { + "id": "summon_sapient_light", + "type": "SPELL", + "name": "Summon Light", + "description": "Summon a disturbed sapient entity of another reality with a hatred for living creatures. It won't attack you. At least for now.", + "teachable": false, + "valid_targets": [ "ground" ], + "skill": "deduction", + "min_damage": 1, + "max_damage": 1, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "difficulty": 6, + "spell_class": "DREAMER", + "effect": "summon", + "effect_str": "mon_sapient_light", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 600, + "base_casting_time": { "math": [ "spell_time(u_val('time: 30 s'))" ] }, + "min_aoe": 2, + "max_aoe": 2, + "flags": [ "VERBAL", "CONCENTRATE", "NO_EXPLOSION_SFX" ], + "min_duration": { "math": [ "spell_time(u_val('time: 3 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 2 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 3 m'))" ] } + }, + { + "id": "make_constructed_hammer", + "type": "SPELL", + "name": "Hammering", + "description": "Using your energy you construct an oddly shaped hammer. You can use it to smash your enemies, or breach different obstacles.", + "teachable": false, + "valid_targets": [ "self" ], + "skill": "deduction", + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "constructed_hammer", + "shape": "blast", + "min_duration": { "math": [ "spell_time(u_val('time: 2 h'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 3 d'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 2 h'))" ] }, + "base_casting_time": { "math": [ "spell_time(u_val('time: 30 m'))" ] }, + "final_casting_time": { "math": [ "spell_time(u_val('time: 5 m'))" ] }, + "casting_time_increment": { "math": [ "-1 * spell_time(u_val('time: 1 m'))" ] }, + "base_energy_cost": 450, + "final_energy_cost": 200, + "energy_increment": -15, + "difficulty": 4, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "flags": [ "SOMATIC", "CONCENTRATE" ], + "spell_class": "DREAMER", + "energy_source": "MANA" + }, + { + "id": "constructed_hammer_attack", + "type": "SPELL", + "name": "Smash A Target", + "description": "Deal some damage. You can't see it except in debug mode.", + "effect": "attack", + "shape": "blast", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SILENT", "IGNORE_WALLS", "NO_EXPLOSION_SFX", "RANDOM_DAMAGE" ], + "min_damage": 360, + "max_damage": 500, + "min_range": 1, + "max_range": 1, + "message": "", + "damage_type": "bash", + "sound_description": "a smash", + "extra_effects": [ { "id": "constructed_hammer_bash" } ] + }, + { + "id": "constructed_hammer_bash", + "type": "SPELL", + "name": "Constructed Hammer Bash", + "description": "Bash some terrain. You can't see it except in debug mode.", + "effect": "bash", + "shape": "cone", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "SILENT", "IGNORE_WALLS", "NO_EXPLOSION_SFX", "RANDOM_DAMAGE" ], + "min_damage": 360, + "max_damage": 500, + "min_range": 1, + "max_range": 1 + }, + { + "id": "summon_duplicator", + "type": "SPELL", + "name": "Summon Duplicator", + "description": "Summon a portal creature to help in a dangerous situation.", + "teachable": false, + "skill": "deduction", + "valid_targets": [ "ground" ], + "min_damage": 1, + "max_damage": 1, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "difficulty": 8, + "spell_class": "DREAMER", + "effect": "summon", + "effect_str": "mon_duplicator", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 800, + "base_casting_time": 3000, + "final_casting_time": 100, + "casting_time_increment": -145, + "min_aoe": 2, + "max_aoe": 2, + "flags": [ "VERBAL", "CONCENTRATE", "NO_EXPLOSION_SFX" ], + "min_duration": { "math": [ "spell_time(u_val('time: 6 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 3 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 6 m'))" ] } + }, + { + "id": "teleport_coin", + "type": "SPELL", + "name": "Toss a Coin", + "description": "Toss a coin. On which side are you?", + "teachable": false, + "skill": "deduction", + "effect": "short_range_teleport", + "shape": "blast", + "components": "spell_components_dreamer_coin", + "valid_targets": [ "ground" ], + "flags": [ "SILENT", "TARGET_TELEPORT" ], + "min_range": 2, + "max_range": 2, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "difficulty": 10, + "spell_class": "DREAMER", + "base_casting_time": 400, + "final_casting_time": 0, + "casting_time_increment": -25, + "energy_source": "MANA", + "base_energy_cost": 700, + "final_energy_cost": 200, + "energy_increment": -15 + }, + { + "id": "summon_ophanim", + "type": "SPELL", + "name": "Summon Angel", + "description": "Summon a creature that looks pretty similar to how angels are described in the Bible - a giant flying mess of wings, eyes and rings.", + "teachable": false, + "valid_targets": [ "ground" ], + "skill": "deduction", + "min_damage": 1, + "max_damage": 1, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "difficulty": 6, + "spell_class": "DREAMER", + "effect": "summon", + "effect_str": "mon_ophanim", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 1200, + "final_energy_cost": 200, + "energy_increment": -25, + "base_casting_time": { "math": [ "spell_time(u_val('time: 30 s'))" ] }, + "final_casting_time": { "math": [ "spell_time(u_val('time: 1 s'))" ] }, + "casting_time_increment": -150, + "min_aoe": 2, + "max_aoe": 2, + "flags": [ "VERBAL", "CONCENTRATE", "NO_EXPLOSION_SFX" ], + "min_duration": { "math": [ "spell_time(u_val('time: 3 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 3 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 3 m'))" ] } + }, + { + "id": "summon_winch", + "type": "SPELL", + "name": "Construct a Winch", + "description": "Create a small token. When used, it'll pull you back to the place you created it.", + "teachable": false, + "skill": "deduction", + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "EOC_WINCH_INITIAL", + "shape": "blast", + "base_casting_time": { "math": [ "spell_time(u_val('time: 3 m'))" ] }, + "final_casting_time": { "math": [ "spell_time(u_val('time: 6 s'))" ] }, + "casting_time_increment": { "math": [ "-1 * spell_time(u_val('time: 3 m'))" ] }, + "base_energy_cost": 1200, + "final_energy_cost": 200, + "energy_increment": -25, + "energy_source": "MANA", + "flags": [ "SOMATIC", "VERBAL", "CONCENTRATE", "SILENT", "NO_EXPLOSION_SFX" ], + "spell_class": "DREAMER", + "difficulty": 7, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "extra_effects": [ { "id": "summon_winch_item" } ] + }, + { + "id": "summon_winch_item", + "type": "SPELL", + "name": "Spawn a Winch", + "description": "Spawns a winch item. You can see it only in debug mode.", + "valid_targets": [ "self" ], + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "winch_stone", + "shape": "blast", + "min_duration": { "math": [ "spell_time(u_val('time: 5 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 6 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 5 m'))" ] }, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "spell_class": "DREAMER", + "energy_source": "MANA" + }, + { + "id": "dreamer_artifact", + "type": "SPELL", + "name": "Pull From Beyond", + "description": "Using your abilities, you compress the gap between your hands with pure energy, attempting to construct… something.", + "teachable": false, + "valid_targets": [ "self" ], + "skill": "deduction", + "flags": [ "NO_LEGS", "CONCENTRATE", "NO_FAIL" ], + "difficulty": 5, + "min_damage": 1, + "max_damage": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_DREAMER_ARTIFACT_SPAWN", + "shape": "blast", + "energy_source": "MANA", + "base_energy_cost": 0, + "base_casting_time": { "math": [ "spell_time(u_val('time: 10 m'))" ] }, + "final_casting_time": { "math": [ "spell_time(u_val('time: 10 m'))" ] }, + "spell_class": "DREAMER" + }, + { + "id": "spell_karma_arms", + "type": "SPELL", + "name": "Karma Arms", + "description": "Four transparent arms grow out of your body. You have full control over them, and who knows what power they contain.", + "teachable": false, + "//": "obvious reference for 'Submachine' by Mateusz Skutnik, albeit no portals", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "spell_karma_arms_eff", + "shape": "blast", + "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "DREAMER", + "energy_source": "MANA", + "difficulty": 10, + "base_casting_time": 2000, + "base_energy_cost": 1800, + "final_energy_cost": 600, + "energy_increment": -50, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 15 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 24 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 15 m'))" ] } + }, + { + "id": "spell_stalker_eyes", + "type": "SPELL", + "name": "Stalker's Oculars", + "description": "Your own eyes are replaced with the eyeballs of an unknown creature. Compound from billions of red crosses inside void dark sclera, they can see much more clearly than any natural creature.", + "teachable": false, + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "stalker_eyes_eff", + "shape": "blast", + "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "DREAMER", + "energy_source": "MANA", + "difficulty": 7, + "base_casting_time": 1000, + "base_energy_cost": 700, + "final_energy_cost": 400, + "energy_increment": -50, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 15 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 24 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 15 m'))" ] } + }, + { + "id": "spell_devil_tail", + "type": "SPELL", + "name": "Devil's Tail", + "description": "A stretchy tail appears from the base of your spine, instinctively aiding you in battle or moving to defend you.", + "teachable": false, + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "devil_tail_eff", + "shape": "blast", + "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "DREAMER", + "energy_source": "MANA", + "difficulty": 8, + "base_casting_time": 1500, + "base_energy_cost": 1100, + "final_energy_cost": 500, + "energy_increment": -50, + "max_level": { "math": [ "dreamer_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 15 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 24 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 15 m'))" ] } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/spells/dreamsmithing.json b/data/Mainline_mods/Mods/Xedra_Evolved/spells/dreamsmithing.json index 48aabcb9a..cf97d7630 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/spells/dreamsmithing.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/spells/dreamsmithing.json @@ -3,44 +3,18 @@ "id": "spell_oneiric_hammer", "type": "SPELL", "name": "Call Oneiric Hammer", - "description": "Creates a crystal blacksmith's hammer with which to build a new reality.", + "description": "Creates a crystal blacksmith's hammer with which to build a new reality. You need all your magic force to hold it, and you unable to do any magic while using it.", "valid_targets": [ "self" ], - "flags": [ "CONCENTRATE", "LOUD", "VERBAL", "NO_LEGS" ], + "flags": [ "CONCENTRATE", "VERBAL", "NO_LEGS", "PERMANENT_ALL_LEVELS", "NO_FAIL" ], "skill": "deduction", - "difficulty": 2, "min_damage": 1, "max_damage": 1, "effect": "spawn_item", "effect_str": "xe_oneiric_hammer", "shape": "blast", - "energy_source": "MANA", - "spell_class": "DREAMSMITH", - "max_level": 20, - "base_casting_time": 150, - "base_energy_cost": 100, - "min_duration": 10000, - "max_duration": 50000, - "duration_increment": 2000 - }, - { - "id": "forge_dreamdross", - "type": "SPELL", - "name": "Forge Dreamdross", - "description": "This ritual pulls a small amount of dreamdross into our world and makes it permanent. These scraps of dreaming can then be used to make permanent objects.", - "valid_targets": [ "self" ], - "min_damage": 1, - "effect": "spawn_item", - "effect_str": "forged_dreamstuff_ingot", - "shape": "blast", - "base_casting_time": 5000, - "base_energy_cost": 500, - "components": "spell_components_forging_dreamdross", - "duration_increment": 1, - "skill": "deduction", - "difficulty": 0, - "max_level": 10, "spell_class": "DREAMSMITH", "energy_source": "MANA", - "flags": [ "PERMANENT", "NO_LEGS", "CONCENTRATE" ] + "base_energy_cost": 1000, + "base_casting_time": 500 } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/spells/eater_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/spells/eater_spells.json index 050420574..af870dcfc 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/spells/eater_spells.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/spells/eater_spells.json @@ -3,12 +3,12 @@ "id": "eat_dreamdross", "type": "SPELL", "name": "Eat dreamdross", - "description": "You consume dreamdross to regain mana.", + "description": "You consume dreamdross to regain mana. Pretty tasty.", "valid_targets": [ "self" ], "min_damage": 75, - "damage_increment": 1.0, + "damage_increment": 1, "max_damage": 110, - "max_level": 35, + "max_level": { "math": [ "eater_level(1)" ] }, "effect": "recover_energy", "effect_str": "MANA", "shape": "blast", @@ -17,20 +17,32 @@ "base_casting_time": 500, "base_energy_cost": 0, "components": "spell_components_dreamdross", - "flags": [ "SILENT", "NO_LEGS" ], - "learn_spells": { "eat_more_dreamdross": 20 }, - "difficulty": 0 + "flags": [ "SILENT", "NO_LEGS", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "extra_effects": [ { "id": "eat_dreamdross_fun_1" } ], + "learn_spells": { "eat_more_dreamdross": 5 } + }, + { + "id": "eat_dreamdross_fun_1", + "type": "SPELL", + "name": "Eat dreamdross mood effect T1", + "description": "Boost your mood from consuming a dreamdross. Tier 1 effect.", + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "EOC_EATER_DROSS_FUN_1", + "shape": "blast", + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] }, { "id": "eat_more_dreamdross", "type": "SPELL", "name": "Eat more dreamdross", - "description": "You can consume more dreamdross to regain mana in one sitting.", + "description": "You can consume more dreamdross to regain mana in one sitting. Delicious.", + "teachable": false, "valid_targets": [ "self" ], - "min_damage": 225, - "damage_increment": 3.0, - "max_damage": 300, - "max_level": 35, + "min_damage": 750, + "damage_increment": 30, + "max_damage": 1100, + "max_level": { "math": [ "eater_level(1)" ] }, "effect": "recover_energy", "effect_str": "MANA", "shape": "blast", @@ -39,48 +51,89 @@ "base_casting_time": 500, "base_energy_cost": 0, "components": "spell_components_dreamdross2", - "flags": [ "SILENT", "NO_LEGS" ], - "learn_spells": { "eat_dreamdross_ingot": 20 }, - "difficulty": 1 + "flags": [ "SILENT", "NO_LEGS", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "extra_effects": [ { "id": "eat_dreamdross_fun_2" } ], + "learn_spells": { "eat_dreamdross_ingot": 5 } + }, + { + "id": "eat_dreamdross_fun_2", + "type": "SPELL", + "name": "Eat dreamdross mood effect T2", + "description": "Boost your mood from consuming a dreamdross. Tier 2 effect.", + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "EOC_EATER_DROSS_FUN_2", + "shape": "blast", + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] }, { "id": "eat_dreamdross_ingot", "type": "SPELL", "name": "Eat dreamdross ingots", - "description": "You can consume ingots of dreamdross to regain mana in one sitting.", + "description": "You can't really process so much dreamdross at once, and additionally to restoring your mana pool, it directly improves your body, making your stronger and healthier. It is probably the most delicious thing in your life.", + "teachable": false, "valid_targets": [ "self" ], - "min_damage": 800, - "damage_increment": 15.0, - "max_damage": 1200, - "max_level": 35, - "effect": "recover_energy", - "effect_str": "MANA", + "max_level": { "math": [ "eater_level(1)" ] }, + "effect": "attack", + "effect_str": "eater_lump_pool", "shape": "blast", "skill": "deduction", "spell_class": "EATER", "base_casting_time": 500, - "base_energy_cost": 0, "components": "spell_components_dreamdross3", - "flags": [ "SILENT", "NO_LEGS" ], - "difficulty": 1 + "flags": [ "SILENT", "NO_LEGS", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "min_duration": { "math": [ "spell_time(u_val('time: 8 h'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 2 d'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 30 m'))" ] }, + "extra_effects": [ { "id": "eat_dreamdross_ingot_mana" }, { "id": "eat_dreamdross_fun_3" } ] + }, + { + "id": "eat_dreamdross_fun_3", + "type": "SPELL", + "name": "Eat dreamdross mood effect T3", + "description": "Boost your mood from consuming a dreamdross. Tier 3 effect.", + "valid_targets": [ "self" ], + "effect": "effect_on_condition", + "effect_str": "EOC_EATER_DROSS_FUN_3", + "shape": "blast", + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] + }, + { + "id": "eat_dreamdross_ingot_mana", + "type": "SPELL", + "name": "Eat dreamdross ingots mana", + "description": "Restore some mana when you consume a whole dreamdross ingot.", + "teachable": false, + "valid_targets": [ "self" ], + "min_damage": 5000, + "max_damage": 5000, + "effect": "recover_energy", + "effect_str": "MANA", + "shape": "blast", + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] }, { "id": "blood_boil", "type": "SPELL", "name": "Blood Boil", "description": "With a shouted ancient word, the target's blood temperature begins to increase dangerously.", + "teachable": false, "valid_targets": [ "hostile" ], "effect": "attack", "shape": "blast", - "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_PROJECTILE" ], + "flags": [ "VERBAL", "SOMATIC", "NO_LEGS", "NO_EXPLOSION_SFX", "NO_HANDS" ], "energy_source": "MANA", "spell_class": "EATER", "skill": "deduction", "difficulty": 6, - "base_casting_time": 100, + "base_casting_time": 125, + "casting_time_increment": -4, + "final_casting_time": 25, "base_energy_cost": 150, + "energy_increment": -2, + "final_energy_cost": 100, "damage_type": "heat", - "max_level": 25, + "max_level": { "math": [ "eater_level(1)" ] }, "min_damage": 1, "max_damage": 26, "damage_increment": 1, @@ -90,30 +143,53 @@ "min_duration": 500, "max_duration": 1000, "duration_increment": 20, - "min_dot": 2, - "max_dot": 52, - "dot_increment": 2 + "min_dot": 1, + "max_dot": 26, + "dot_increment": 1 }, { "id": "self_healing", "type": "SPELL", "name": "Trade dreams for health", "description": "Absorbs some dross and heals damage to yourself.", + "teachable": false, "valid_targets": [ "self" ], "min_damage": -5, "max_damage": -20, "damage_increment": -1.0, - "max_level": 15, + "max_level": { "math": [ "eater_level(1)" ] }, "min_range": 0, "max_range": 0, "effect": "attack", "shape": "blast", - "base_casting_time": 300, - "base_energy_cost": 600, + "base_casting_time": { "math": [ "spell_time(u_val('time: 2 m'))" ] }, "skill": "deduction", - "flags": [ "SOMATIC", "VERBAL", "NO_PROJECTILE" ], + "flags": [ "SOMATIC", "VERBAL", "NO_HANDS", "NO_EXPLOSION_SFX" ], "spell_class": "EATER", - "components": "spell_components_dreamdross", + "components": "spell_components_dreamdross2", + "difficulty": 4, + "energy_source": "MANA" + }, + { + "id": "supercoffee", + "type": "SPELL", + "name": "Recover fatigue for dreams", + "description": "Absorbs some dross and heals fatigue to yourself.", + "teachable": false, + "valid_targets": [ "self" ], + "message": "You feel refreshed.", + "effect": "recover_energy", + "effect_str": "FATIGUE", + "shape": "blast", + "base_casting_time": { "math": [ "spell_time(u_val('time: 2 m'))" ] }, + "min_damage": 50, + "damage_increment": 10, + "max_damage": 300, + "max_level": { "math": [ "eater_level(1)" ] }, + "skill": "deduction", + "flags": [ "CONCENTRATE", "SILENT", "NO_HANDS", "NO_EXPLOSION_SFX", "NO_PROJECTILE" ], + "spell_class": "EATER", + "components": "spell_components_dreamdross2", "difficulty": 4, "energy_source": "MANA" }, @@ -122,77 +198,385 @@ "id": "spring_heeled_leap", "name": "Spring-heeled Leap", "description": "Force pushes your feet off the ground and launches you several meters.", + "teachable": false, "valid_targets": [ "ground" ], - "flags": [ "SILENT", "NO_LEGS", "NO_HANDS" ], + "flags": [ "SILENT", "NO_LEGS", "NO_HANDS", "NO_EXPLOSION_SFX" ], "effect": "dash", "shape": "cone", - "min_damage": 0, - "max_damage": 0, - "damage_increment": 0, "damage_type": "bash", "min_range": 1, - "max_range": 6, - "range_increment": 1, + "max_range": 10, + "range_increment": 0.4, "skill": "deduction", "spell_class": "EATER", "difficulty": 3, - "base_casting_time": 200, - "base_energy_cost": 200, - "max_level": 6, + "base_casting_time": 300, + "base_energy_cost": 400, + "final_casting_time": 50, + "casting_time_increment": -10, + "final_energy_cost": 100, + "energy_increment": -10, + "max_level": { "math": [ "eater_level(1)" ] }, "energy_source": "MANA" }, { - "id": "banish_nether_monsters", + "id": "spell_rage", "type": "SPELL", - "name": { "str": "Banish interdimensional horrors" }, - "description": "Attempts to banish things clearly inimical to local physics back to their home dimension.", - "valid_targets": [ "hostile", "ally" ], + "name": "Blind Rage", + "description": "Perfect hatred.", + "teachable": false, + "valid_targets": [ "self" ], "effect": "attack", + "effect_str": "blind_rage", "shape": "blast", - "targeted_monster_ids": [ "mon_flaming_eye", "mon_flying_polyp", "mon_unseen_hunter", "mon_hunting_horror", "mon_giant_appendage" ], - "damage_type": "pure", + "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ], "skill": "deduction", - "difficulty": 8, - "min_damage": 30, - "max_damage": 407, - "damage_increment": 13, - "min_aoe": 1, - "max_aoe": 10, - "aoe_increment": 0.34, - "base_casting_time": 400, - "casting_time_increment": -10, - "final_casting_time": 100, + "spell_class": "EATER", + "energy_source": "MANA", + "difficulty": 5, + "base_casting_time": 300, + "final_casting_time": 50, + "casting_time_increment": -9, + "base_energy_cost": 800, + "final_energy_cost": 400, + "energy_increment": -14, + "max_level": { "math": [ "eater_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 2 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 3 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 2 m'))" ] } + }, + { + "id": "spell_stamina_wonder", + "type": "SPELL", + "name": "Circulatory", + "description": "Don't stop.", + "teachable": false, + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "spell_stamina_eff", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "min_damage": 0, + "max_damage": 0, + "min_duration": { "math": [ "spell_time(u_val('time: 2 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 3 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 3 m'))" ] }, + "base_casting_time": 500, "base_energy_cost": 1000, - "energy_increment": 50.0, - "final_energy_cost": 100, - "max_level": 30, - "flags": [ "SILENT" ] + "final_energy_cost": 500, + "energy_increment": -15, + "max_level": { "math": [ "eater_level(1)" ] }, + "energy_source": "MANA", + "spell_class": "EATER" + }, + { + "id": "spell_night_vision", + "type": "SPELL", + "name": "Dark Vision", + "description": "Enhance your eyes to see at night same as in daylight.", + "teachable": false, + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "night_sight", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "EATER", + "difficulty": 7, + "min_duration": { "math": [ "spell_time(u_val('time: 5 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 6 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 5 m'))" ] }, + "base_casting_time": 1000, + "base_energy_cost": 800, + "final_energy_cost": 400, + "energy_increment": -15, + "max_level": { "math": [ "eater_level(1)" ] }, + "energy_source": "MANA" + }, + { + "id": "spell_dodge", + "type": "SPELL", + "name": "Dodge", + "description": "Shun their attacks.", + "teachable": false, + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "effect_dodge", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "EATER", + "energy_source": "MANA", + "difficulty": 5, + "base_casting_time": 1500, + "final_casting_time": 500, + "casting_time_increment": -34, + "base_energy_cost": 800, + "final_energy_cost": 400, + "energy_increment": -20, + "max_level": { "math": [ "eater_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 5 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 6 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 5 m'))" ] } + }, + { + "id": "spell_endurance", + "type": "SPELL", + "name": "Endurance", + "description": "Take the blows. Don’t let the world kill you.", + "teachable": false, + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "effect_endurance", + "shape": "blast", + "flags": [ "NO_LEGS", "SILENT", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "energy_source": "MANA", + "spell_class": "EATER", + "difficulty": 5, + "base_casting_time": 1500, + "final_casting_time": 500, + "casting_time_increment": -34, + "base_energy_cost": 1500, + "final_energy_cost": 500, + "energy_increment": -50, + "max_level": { "math": [ "eater_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 5 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 6 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 5 m'))" ] } }, { - "id": "banish_dark_monsters", + "id": "spell_invisibility", "type": "SPELL", - "name": { "str": "Banish darkness made flesh" }, - "description": "Attempts to banish monsters crafted from the darkest of nights.", - "valid_targets": [ "hostile", "ally" ], + "name": "Hide", + "description": "Don't let them spot you.", + "valid_targets": [ "self" ], "effect": "attack", + "effect_str": "invisibility", "shape": "blast", - "targeted_monster_ids": [ "mon_darkman", "mon_shadow", "mon_shadow_snake" ], - "damage_type": "pure", + "flags": [ "NO_LEGS", "SILENT", "NO_HANDS", "NO_EXPLOSION_SFX" ], + "teachable": false, "skill": "deduction", + "spell_class": "EATER", "difficulty": 7, - "min_damage": 30, - "max_damage": 407, - "damage_increment": 13, + "min_duration": { "math": [ "spell_time(u_val('time: 40 s'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 20 m'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 20 s'))" ] }, + "base_casting_time": 1000, + "base_energy_cost": 2000, + "final_energy_cost": 500, + "energy_increment": -50, + "max_level": { "math": [ "eater_level(1)" ] }, + "energy_source": "MANA" + }, + { + "id": "spell_clairvoyance", + "type": "SPELL", + "name": "Open Mind", + "description": "Close your eyes and see.", + "teachable": false, + "valid_targets": [ "hostile", "ground" ], + "flags": [ "IGNORE_WALLS", "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "energy_source": "MANA", + "spell_class": "EATER", + "difficulty": 9, + "max_level": { "math": [ "eater_level(1)" ] }, + "effect": "attack", + "shape": "blast", "min_aoe": 1, - "max_aoe": 10, - "aoe_increment": 0.34, - "base_casting_time": 400, + "max_aoe": 36, + "aoe_increment": 1, + "base_casting_time": 6000, + "final_casting_time": 1000, + "casting_time_increment": -150, + "base_energy_cost": 900, + "final_energy_cost": 400, + "energy_increment": -20, + "field_id": "fd_clairvoyant", + "min_field_intensity": 1, + "max_field_intensity": 1 + }, + { + "id": "spell_melee_damage", + "type": "SPELL", + "name": "Physical Instrument", + "description": "Your body is a tool of destruction. Use it effectively.", + "teachable": false, + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "spell_melee_damage", + "shape": "blast", + "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "EATER", + "energy_source": "MANA", + "difficulty": 7, + "base_casting_time": 1500, + "final_casting_time": 500, + "casting_time_increment": -34, + "base_energy_cost": 1500, + "final_energy_cost": 500, + "energy_increment": -50, + "max_level": { "math": [ "eater_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 3 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 6 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 3 m'))" ] } + }, + { + "id": "spell_spear", + "type": "SPELL", + "name": "Pierce", + "description": "Throw a long ethereal spear out of your hand.", + "teachable": false, + "valid_targets": [ "hostile", "ground" ], + "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "difficulty": 4, + "max_level": { "math": [ "eater_level(1)" ] }, + "effect": "attack", + "shape": "cone", + "damage_type": "stab", + "min_damage": 10, + "max_damage": 500, + "damage_increment": 7, + "min_range": 3, + "max_range": 12, + "range_increment": 0.3, + "base_casting_time": 280, + "final_casting_time": 40, + "casting_time_increment": -7, + "base_energy_cost": 300, + "final_energy_cost": 90, + "energy_increment": -7, + "energy_source": "MANA", + "spell_class": "EATER", + "min_aoe": 3, + "max_aoe": 3 + }, + { + "id": "spell_speed_wonder", + "type": "SPELL", + "name": "Rush", + "description": "Run. Run as fast as you can. Don't stop.", + "teachable": false, + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "spell_speed_eff", + "shape": "blast", + "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "EATER", + "difficulty": 5, + "min_duration": { "math": [ "spell_time(u_val('time: 2 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 1 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 2 m'))" ] }, + "base_casting_time": 500, + "base_energy_cost": 1300, + "final_energy_cost": 500, + "energy_increment": -30, + "max_level": { "math": [ "eater_level(1)" ] }, + "energy_source": "MANA" + }, + { + "id": "spell_weak", + "type": "SPELL", + "name": "Weakening", + "description": "Make enemies around you more vulnerable.", + "teachable": false, + "valid_targets": [ "hostile" ], + "effect": "attack", + "effect_str": "effect_weakening", + "shape": "blast", + "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "IGNORE_WALLS", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "EATER", + "energy_source": "MANA", + "difficulty": 5, + "min_aoe": 3, + "max_aoe": 60, + "aoe_increment": 2, + "base_casting_time": 250, + "final_casting_time": 0, "casting_time_increment": -10, - "final_casting_time": 110, - "base_energy_cost": 1000, - "energy_increment": 50.0, + "base_energy_cost": 600, + "final_energy_cost": 250, + "energy_increment": -10, + "max_level": { "math": [ "eater_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 10 s'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 15 m'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 10 s'))" ] } + }, + { + "id": "spell_unbreakable", + "type": "SPELL", + "name": "Unbreakable", + "description": "Nothing can move you from your path.", + "teachable": false, + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "spell_unbreakable_eff", + "shape": "blast", + "flags": [ "NO_LEGS", "NO_HANDS", "SILENT", "NO_EXPLOSION_SFX" ], + "skill": "deduction", + "spell_class": "EATER", + "energy_source": "MANA", + "difficulty": 4, + "base_casting_time": 300, + "final_casting_time": 50, + "casting_time_increment": -9, + "base_energy_cost": 800, + "final_energy_cost": 400, + "energy_increment": -14, + "max_level": { "math": [ "eater_level(1)" ] }, + "min_duration": { "math": [ "spell_time(u_val('time: 2 m'))" ] }, + "max_duration": { "math": [ "spell_time(u_val('time: 2 h'))" ] }, + "duration_increment": { "math": [ "spell_time(u_val('time: 2 m'))" ] } + }, + { + "id": "point_blank", + "type": "SPELL", + "name": "Point Blank", + "description": "Straight hit with your arm. Using additional energy, you probably can break a wall with such a powerful strike.", + "teachable": false, + "valid_targets": [ "hostile", "ground" ], + "effect": "attack", + "shape": "blast", + "flags": [ "SILENT", "SOMATIC", "NO_EXPLOSION_SFX" ], + "energy_source": "MANA", + "spell_class": "EATER", + "skill": "deduction", + "difficulty": 4, + "base_casting_time": 125, + "casting_time_increment": -15, + "final_casting_time": 25, + "base_energy_cost": 350, + "energy_increment": -15, "final_energy_cost": 100, - "max_level": 30, - "flags": [ "SILENT" ] + "damage_type": "bash", + "max_level": { "math": [ "eater_level(1)" ] }, + "min_damage": 20, + "max_damage": 250, + "damage_increment": 6, + "min_range": 1, + "max_range": 1, + "extra_effects": [ { "id": "point_blank_bash" } ] + }, + { + "id": "point_blank_bash", + "type": "SPELL", + "name": "Point Blank Bash", + "description": "Additional terrain damage.", + "valid_targets": [ "ground" ], + "effect": "bash", + "shape": "blast", + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "max_level": { "math": [ "eater_level(1)" ] }, + "min_damage": 40, + "max_damage": 500, + "damage_increment": 10, + "min_range": 1, + "max_range": 1 } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/spells/integrated_armor_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/spells/integrated_armor_spells.json new file mode 100644 index 000000000..c209731b6 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/spells/integrated_armor_spells.json @@ -0,0 +1,93 @@ +[ + { + "type": "SPELL", + "id": "integrated_coal_skin_burnback", + "name": "Coal Skin Burnback", + "description": "The burnback effect from the burning coals skin.", + "effect": "attack", + "shape": "blast", + "min_damage": 3, + "max_damage": 3, + "valid_targets": [ "hostile" ], + "damage_type": "heat", + "min_range": 1, + "max_range": 1 + }, + { + "type": "enchantment", + "id": "coal_skin_enchantment", + "name": { "str": "Salamander" }, + "description": "Your Fire Elemental abilities grant you good resistance to temperature conditions and heat damage. Also your body emits streams of heat into anyone who attack you,.", + "condition": "ALWAYS", + "values": [ + { "value": "ARMOR_HEAT", "multiply": -0.2 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 15 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 10 } + ], + "hit_me_effect": [ + { + "id": "integrated_coal_skin_burnback", + "message": "Flames and heat flash out from where you've been hit.", + "npc_message": "%1$s's body jets fire and heat out from the wound." + } + ] + }, + { + "type": "SPELL", + "id": "integrated_flame_skin_burnback", + "name": "Flame Skin Burnback", + "description": "The burnback effect from the flaming skin.", + "effect": "attack", + "shape": "blast", + "min_damage": 7, + "max_damage": 13, + "valid_targets": [ "hostile" ], + "damage_type": "heat", + "min_range": 2, + "max_range": 2 + }, + { + "type": "enchantment", + "id": "flame_skin_enchantment", + "name": { "str": "Salamonstrous" }, + "description": "Your Fire Elemental abilities grant you good resistance to temperature conditions and heat damage. Also your body emits streams of heat into anyone who attack you,.", + "condition": "ALWAYS", + "values": [ + { "value": "ARMOR_HEAT", "multiply": -0.5 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 45 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 10 } + ], + "hit_me_effect": [ + { + "id": "integrated_coal_skin_burnback", + "message": "Flames and heat flash out from where you've been hit.", + "npc_message": "%1$s's body jets fire and heat out from the wound." + } + ] + }, + { + "type": "enchantment", + "id": "cloud_skin_enchantment", + "name": { "str": "cloud skin" }, + "description": "Your cloud skin grant you good resistance to temperature conditions. Also your hands emit a small amount of electricity, increasing your damage in melee.", + "condition": "ALWAYS", + "values": [ + { "value": "ITEM_DAMAGE_ELEC", "add": 4 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 10 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 30 } + ] + }, + { + "type": "enchantment", + "id": "storm_skin_enchantment", + "name": { "str": "storm skin" }, + "description": "Your storm skin grant you good resistance to temperature conditions. Also your hands emit a moderate amount of electricity, increasing your damage in melee.", + "condition": "ALWAYS", + "values": [ + { "value": "ITEM_DAMAGE_ELEC", "add": 12 }, + { "value": "DEXTERITY", "add": 2 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 20 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 50 } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/spells/inventor_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/spells/inventor_spells.json index 946dc0207..1a57d501e 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/spells/inventor_spells.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/spells/inventor_spells.json @@ -1,135 +1,13 @@ [ - { - "id": "summon_battery_gun", - "type": "SPELL", - "name": "Make The Battery Miracle", - "description": "Make a gun that uses energy from almost any type of battery to shoot hot lasers.", - "valid_targets": [ "self" ], - "components": "spell_components_battery_gun", - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "battery_gun", - "shape": "blast", - "base_casting_time": 1800000, - "final_casting_time": 240000, - "casting_time_increment": -78000, - "base_energy_cost": 350, - "final_energy_cost": 150, - "energy_increment": -10, - "min_duration": 9072000, - "max_duration": 181440000, - "duration_increment": 9072000, - "difficulty": 5, - "max_level": 20, - "flags": [ "SOMATIC", "CONCENTRATE" ], - "learn_spells": { "summon_ray_gun_schematics": 20 }, - "spell_class": "INVENTOR", - "energy_source": "MANA" - }, - { - "id": "summon_ray_gun", - "type": "SPELL", - "name": "Build a ray gun", - "description": "Make a gun that uses energy from batteries to shoot superhot rays of energy.", - "valid_targets": [ "self" ], - "components": "spell_components_ray_gun", - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "ray_gun", - "shape": "blast", - "base_casting_time": 1800000, - "final_casting_time": 240000, - "casting_time_increment": -78000, - "base_energy_cost": 550, - "final_energy_cost": 350, - "energy_increment": -10, - "min_duration": 9072000, - "max_duration": 181440000, - "duration_increment": 9072000, - "difficulty": 6, - "max_level": 20, - "flags": [ "SOMATIC", "CONCENTRATE" ], - "learn_spells": { "summon_death_ray": 20 }, - "spell_class": "INVENTOR", - "energy_source": "MANA" - }, - { - "id": "summon_ray_gun_schematics", - "type": "SPELL", - "name": "Write ray gun schematics", - "description": "Use the experience from your ray diagram studies to create a gun able to project them.", - "valid_targets": [ "self" ], - "components": "spell_components_schematics", - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "ray_weapon_diagrams", - "shape": "blast", - "base_casting_time": 1800000, - "base_energy_cost": 1850, - "difficulty": 5, - "max_level": 1, - "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT" ], - "spell_class": "INVENTOR", - "energy_source": "MANA" - }, - { - "id": "summon_death_ray", - "type": "SPELL", - "name": "Build a death ray", - "description": "Make a gun, using aether drawn from the void between all things, that shoots beams able to melt anything in its path.", - "valid_targets": [ "self" ], - "components": "spell_components_death_ray", - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "ray_gun", - "shape": "blast", - "base_casting_time": 1800000, - "base_energy_cost": 1550, - "difficulty": 7, - "max_level": 1, - "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT" ], - "spell_class": "INVENTOR", - "energy_source": "MANA" - }, - { - "id": "summon_mace_magic", - "type": "SPELL", - "name": "Make The Wolf Sledge", - "description": "You know how to make a really dreadful hammer. It's a two-handed basher, but it also can work as a boomerang.", - "valid_targets": [ "self" ], - "components": "spell_components_mace_magic", - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "mace_magic", - "shape": "blast", - "base_casting_time": 1800000, - "final_casting_time": 240000, - "casting_time_increment": -78000, - "base_energy_cost": 350, - "final_energy_cost": 150, - "energy_increment": -10, - "min_duration": 9072000, - "max_duration": 181440000, - "duration_increment": 9072000, - "difficulty": 6, - "max_level": 20, - "flags": [ "SOMATIC", "CONCENTRATE" ], - "spell_class": "INVENTOR", - "energy_source": "MANA" - }, { "type": "SPELL", "id": "firmament_driver", - "name": "Firmament-driver", - "description": "Push the target It's not really effective, but sometimes it helps.", + "name": "Firmament-Driver", + "description": "Push the target. It's not really effective, but sometimes comes in handy.", "valid_targets": [ "ally", "self", "hostile" ], "effect": "directed_push", "shape": "blast", + "skill": "deduction", "flags": [ "SOMATIC", "CONCENTRATE" ], "min_damage": 1, "max_damage": 11, @@ -144,16 +22,19 @@ "base_energy_cost": 200, "final_energy_cost": 100, "energy_increment": -5, + "spell_class": "INVENTOR", + "energy_source": "MANA", "extra_effects": [ { "id": "firmament_driver_damage" } ] }, { "type": "SPELL", "id": "firmament_driver_damage", "name": "Firmament-driver Damage", - "description": "Deal some damage to pushed enemy.", + "description": "Deal some damage to the pushed enemy.", "valid_targets": [ "hostile" ], "effect": "attack", "shape": "blast", + "skill": "deduction", "flags": [ "SOMATIC", "CONCENTRATE" ], "min_damage": 20, "max_damage": 60, @@ -163,152 +44,34 @@ "max_level": 20 }, { - "id": "summon_bio_launcher", + "id": "cable_whip", "type": "SPELL", - "name": "Make The Bio Detonator", - "description": "You know how to make a tool to explode the biosignature of nearly all living creatures. It's really powerful, but can't separate enemies from allies, or enemies from user, so it's better to not use it in point-blank range.", - "valid_targets": [ "self" ], - "components": "spell_components_bio_launcher", - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "bio_launcher", - "shape": "blast", - "base_casting_time": 1800000, - "final_casting_time": 240000, - "casting_time_increment": -78000, - "base_energy_cost": 1800, - "final_energy_cost": 1000, - "energy_increment": -40, - "min_duration": 9999999, - "max_duration": 9999999, - "difficulty": 8, - "max_level": 20, - "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT_ALL_LEVELS" ], - "spell_class": "INVENTOR", - "energy_source": "MANA" - }, - { - "id": "summon_bio_warhead", - "type": "SPELL", - "name": "Make The Bio Detonator", - "description": "You know how to make a warhead for your humming mortar to fire.", - "valid_targets": [ "self" ], - "components": "spell_components_bio_launcher_warhead", - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "bio_warhead", - "shape": "blast", - "base_casting_time": 1800000, - "final_casting_time": 240000, - "casting_time_increment": -78000, - "base_energy_cost": 1800, - "final_energy_cost": 1000, - "energy_increment": -40, - "min_duration": 9999999, - "max_duration": 9999999, - "difficulty": 8, - "max_level": 20, - "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT_ALL_LEVELS" ], - "spell_class": "INVENTOR", - "energy_source": "MANA" - }, - { - "id": "summon_rip_ticket", - "type": "SPELL", - "name": "Make The Vancian Bill", - "description": "Somehow if you write some symbols on paper, and cover it with mana, you can make a tool, that allow to tear small part of reality. You found paper dollar bills perfectly fit the required shape of ticket. You find it hilarious the reality can accept US currency.", - "valid_targets": [ "self" ], - "components": "spell_components_rip_ticket", - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "rip_ticket", - "shape": "blast", - "base_casting_time": 180000, - "final_casting_time": 24000, - "casting_time_increment": -7800, - "base_energy_cost": 450, - "final_energy_cost": 250, - "energy_increment": -10, - "difficulty": 4, - "max_level": 20, - "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT_ALL_LEVELS" ], - "spell_class": "INVENTOR", - "energy_source": "MANA" - }, - { - "id": "summon_helmet_inventor", - "type": "SPELL", - "name": "Helmet of Creative Juices", - "description": "You know how to make a helmet, that will increase your creative abilities. Even with this improvement you don't really know how it works, it just came to you in a flash of brilliance.", - "components": "spell_components_helmet_inventor", - "valid_targets": [ "self" ], - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "helmet_inventor", - "shape": "blast", - "base_casting_time": 1800000, - "final_casting_time": 240000, - "casting_time_increment": -78000, - "base_energy_cost": 1300, - "final_energy_cost": 600, - "energy_increment": -35, - "difficulty": 6, - "max_level": 20, - "flags": [ "SOMATIC", "CONCENTRATE", "PERMANENT_ALL_LEVELS" ], - "spell_class": "INVENTOR", - "energy_source": "MANA" - }, - { - "id": "summon_ion_gun", - "type": "SPELL", - "name": "Make The Ion Rifle", - "description": "Craft a small weapon that do… things, that allow you to… kill… things… whatever, you have no idea how it works.", - "valid_targets": [ "self" ], - "components": "spell_components_ion_gun", - "min_damage": 1, - "max_damage": 1, - "effect": "spawn_item", - "effect_str": "ion_gun", - "shape": "blast", - "base_casting_time": 1800000, - "final_casting_time": 240000, - "casting_time_increment": -78000, - "base_energy_cost": 1400, - "final_energy_cost": 600, - "energy_increment": -40, - "min_duration": 302400, - "max_duration": 604800, - "duration_increment": 3024000, - "difficulty": 8, - "max_level": 20, - "flags": [ "SOMATIC", "CONCENTRATE" ], + "name": { "str": "Electric Brandish" }, + "description": "Small whip attack, that uses energized cables as conductor.", + "components": "spell_components_cable_whip", + "effect": "attack", + "shape": "cone", + "valid_targets": [ "ally", "hostile", "ground" ], + "flags": [ "SOMATIC" ], + "max_level": 25, + "min_damage": 10, + "max_damage": 85, + "damage_increment": 3, + "min_range": 3, + "max_range": 8, + "range_increment": 0.2, + "min_aoe": 15, + "max_aoe": 75, + "aoe_increment": 2.4, "spell_class": "INVENTOR", - "energy_source": "MANA" - }, - { - "id": "spark_of_inspiration", - "type": "SPELL", - "name": "Minor Spark of Inspiration", - "//": "Add two more spells one for 3 sparks and one for 5 sparks. Also add spell components reflecting a fully stocked garage of three different tiers.", - "description": "Enters a manic creation episode in the appropriate workshop space and creates… something.", - "valid_targets": [ "self" ], - "flags": [ "NO_LEGS", "CONCENTRATE", "NO_FAIL" ], - "difficulty": 3, - "min_damage": 1, - "max_damage": 1, - "duration_increment": 1, - "effect": "effect_on_condition", - "effect_str": "eoc_artifact_spawn", - "shape": "blast", + "base_casting_time": 300, + "final_casting_time": 50, + "casting_time_increment": -10, + "base_energy_cost": 350, + "final_energy_cost": 150, + "energy_increment": -8, "energy_source": "MANA", - "base_energy_cost": 1000, - "final_energy_cost": 1000, - "base_casting_time": 600000, - "final_casting_time": 600000, - "spell_class": "INVENTOR" + "difficulty": 4, + "damage_type": "electric" } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/spells/item_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/spells/item_spells.json index d6f419723..f5d3b3b50 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/spells/item_spells.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/spells/item_spells.json @@ -5,12 +5,12 @@ "name": "Throw The Hammer", "description": "You throw the hammer.", "valid_targets": [ "hostile" ], - "flags": [ "SOMATIC", "SILENT", "NON_MAGICAL", "RANDOM_DAMAGE" ], - "min_damage": 56, - "max_damage": 77, + "flags": [ "SOMATIC", "SILENT", "NON_MAGICAL", "RANDOM_DAMAGE", "NO_EXPLOSION_SFX" ], + "min_damage": { "math": [ "(u_skill('deduction') + u_skill('throw')) * 4" ] }, + "max_damage": { "math": [ "(u_skill('deduction') + u_skill('throw')) * 7" ] }, "damage_type": "bash", - "min_range": 15, - "max_range": 15, + "min_range": { "math": [ "(u_skill('deduction') + u_skill('throw'))" ] }, + "max_range": { "math": [ "(u_skill('deduction') + u_skill('throw'))" ] }, "shape": "blast", "effect": "attack", "extra_effects": [ { "id": "mace_pipe_magic_throw_stamina", "hit_self": true } ] @@ -19,7 +19,7 @@ "id": "mace_pipe_magic_throw_stamina", "type": "SPELL", "name": "Throw The Hammer Stamina", - "description": "Decrease some of your stamina", + "description": "Decreases some of your stamina", "//": "Let's just hope no one will find you can use it infinitely, even when your stamina is dead", "valid_targets": [ "self" ], "flags": [ "SILENT" ], @@ -29,22 +29,44 @@ "effect": "recover_energy", "effect_str": "STAMINA" }, + { + "id": "blackout_rage_drink", + "type": "SPELL", + "name": "Blackout rage drank", + "//": "Used for blackout rage drink, not castable.", + "description": "This spell transforms you into a drunken master.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_LEGS", "NO_HANDS" ], + "effect": "spawn_item", + "effect_str": "aura_drunken_master", + "shape": "blast", + "max_level": 1, + "min_damage": 1, + "max_damage": 1, + "damage_increment": 0, + "damage_type": "biological", + "difficulty": 0, + "spell_class": "NONE", + "base_casting_time": 300, + "base_energy_cost": 2, + "min_duration": 432000, + "max_duration": 432000 + }, { "id": "bio_explosion", "type": "SPELL", "name": "Biotic Blast", "description": "Explode the enemy. Literally.", - "components": "spell_components_fire_bio_warhead", "effect": "attack", "shape": "blast", "valid_targets": [ "hostile", "ally", "self" ], "flags": [ "LOUD", "NO_LEGS", "RANDOM_DAMAGE" ], - "min_damage": 130, - "max_damage": 200, - "min_aoe": 8, - "max_aoe": 8, - "min_range": 45, - "max_range": 45, + "min_damage": 560, + "max_damage": 700, + "min_aoe": 17, + "max_aoe": 17, + "min_range": 60, + "max_range": 60, "damage_type": "biological" }, { @@ -60,8 +82,8 @@ "max_damage": 35, "min_aoe": 2, "max_aoe": 2, - "min_range": 15, - "max_range": 15, + "min_range": 9, + "max_range": 9, "damage_type": "cut" }, { @@ -94,5 +116,155 @@ "min_range": 4, "max_range": 4, "damage_type": "electric" + }, + { + "id": "heat_expl_gun", + "type": "SPELL", + "name": "Instant Ignition", + "description": "Explode the small area.", + "effect": "explosion", + "shape": "blast", + "valid_targets": [ "hostile", "ground" ], + "flags": [ "LOUD", "RANDOM_DAMAGE", "IGNORE_WALLS", "NO_PROJECTILE" ], + "min_damage": 120, + "max_damage": 180, + "min_range": 30, + "max_range": 30, + "min_aoe": 1, + "max_aoe": 1 + }, + { + "type": "SPELL", + "id": "jump_boots_leap", + "name": "Jump Boots Leap", + "description": "Makes you jump.", + "valid_targets": [ "ground" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "effect": "dash", + "shape": "cone", + "damage_type": "bash", + "min_range": 11, + "max_range": 11 + }, + { + "id": "inventor_electric_fist_spell", + "type": "SPELL", + "name": "Overture Electric Attack", + "description": "You cast electric spell at the monster.", + "valid_targets": [ "hostile" ], + "flags": [ "SILENT", "NON_MAGICAL", "RANDOM_DAMAGE", "NO_EXPLOSION_SFX" ], + "min_damage": 18, + "max_damage": 29, + "damage_type": "electric", + "min_range": 1, + "max_range": 1, + "shape": "blast", + "effect": "attack", + "field_id": "fd_electricity", + "min_field_intensity": 1, + "max_field_intensity": 1, + "field_chance": 1 + }, + { + "type": "SPELL", + "id": "learn_blood_of_saints", + "name": { "str": "Blood of Saints" }, + "effect": "mutate", + "shape": "blast", + "effect_str": "BLOOD_OF_SAINTS", + "description": "This grants a specific mutation.", + "message": "You imbibed the concoction and you feel your veins flex in a warm glow.", + "min_damage": 10000, + "max_damage": 10000, + "flags": [ "SILENT", "MUTATE_TRAIT" ], + "valid_targets": [ "self", "ally" ] + }, + { + "type": "SPELL", + "id": "extend_life", + "name": { "str": "Extend Life" }, + "effect": "mutate", + "shape": "blast", + "effect_str": "EXTEND_LIFE", + "description": "This grants a specific mutation.", + "message": "You imbibed the concoction and you feel your chakras align and your DNA de-age.", + "min_damage": 10000, + "max_damage": 10000, + "flags": [ "SILENT", "MUTATE_TRAIT" ], + "valid_targets": [ "self", "ally" ] + }, + { + "id": "future_sight", + "type": "SPELL", + "name": "Future Sight", + "description": "Summons an aura that grants precognitive abilities.", + "valid_targets": [ "self" ], + "flags": [ "SILENT", "NO_LEGS", "NO_HANDS" ], + "effect": "spawn_item", + "effect_str": "aura_futuresight", + "shape": "blast", + "max_level": 1, + "min_damage": 1, + "max_damage": 1, + "damage_increment": 0, + "damage_type": "biological", + "difficulty": 0, + "spell_class": "NONE", + "base_casting_time": 300, + "base_energy_cost": 2, + "min_duration": 4320000, + "max_duration": 4320000 + }, + { + "type": "SPELL", + "id": "hyde_formula", + "name": { "str": "Hyde Formula" }, + "effect": "mutate", + "shape": "blast", + "effect_str": "HYDE", + "description": "This grants a specific mutation.", + "message": "You imbibed the concoction and you feel your inner self unleashed.", + "min_damage": 10000, + "max_damage": 10000, + "flags": [ "SILENT", "MUTATE_TRAIT" ], + "valid_targets": [ "self", "ally" ] + }, + { + "id": "wicked_quick_hands", + "type": "SPELL", + "name": "Wicked Quick Hands", + "description": "You become more graceful, agile, and coordinated.", + "valid_targets": [ "self" ], + "min_duration": 360000, + "max_duration": 360000, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "shape": "blast", + "effect": "attack", + "effect_str": "wicked_quick_hands" + }, + { + "id": "terrible_strength", + "type": "SPELL", + "name": "Terrible Strength", + "description": "You gain a terrible strength.", + "valid_targets": [ "self" ], + "min_duration": 360000, + "max_duration": 360000, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "shape": "blast", + "effect": "attack", + "effect_str": "terrible_strength" + }, + { + "type": "SPELL", + "id": "spell_hare_leap", + "name": "Hare Leap", + "description": "You squat down, build up tension in your legs and release. Launching yourself quite a distance.", + "valid_targets": [ "ground" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "effect": "dash", + "shape": "cone", + "min_range": 8, + "max_range": 8 } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/spells/spell_eocs.json b/data/Mainline_mods/Mods/Xedra_Evolved/spells/spell_eocs.json index 7808f433b..a16dff795 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/spells/spell_eocs.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/spells/spell_eocs.json @@ -1,26 +1,68 @@ [ { "type": "effect_on_condition", - "id": "eoc_artifact_spawn", - "condition": { "compare_int": [ { "u_val": "vitamin", "name": "creative_spark" }, ">=", { "const": 1 } ] }, + "id": "EOC_DREAMER_ARTIFACT_SPAWN", + "condition": { "math": [ "u_val('vitamin', 'name:dreamer_vit')", ">=", "600" ] }, "effect": [ - { "u_assign_activity": "ACT_GENERIC_EOC", "duration": "1 seconds" }, - { "arithmetic": [ { "u_val": "vitamin", "name": "creative_spark" }, "-=", { "const": 1 } ] }, - { "queue_eocs": [ "EOC_ARTIFACT_SPAWN" ], "time_in_future": 1 }, - { "u_add_effect": "manic_fugue", "duration": "2 minutes" } + { "u_spawn_item": "dreamer_artifact", "use_item_group": true, "suppress_message": true }, + { "math": [ "u_val('vitamin', 'name:dreamer_vit')", "-=", "600" ] }, + { + "u_message": "You pulled your powers into this world and something from outside placed an object in your hand.", + "type": "info" + } ], - "false_effect": [ { "u_message": "You don't have enough creative juice to enter an inspired state.", "type": "bad" } ] + "false_effect": [ { "run_eocs": [ "EOC_DREAMER_ARTIFACT_FAIL_MESSAGE" ] } ] }, { "type": "effect_on_condition", - "id": "EOC_ARTIFACT_SPAWN", - "condition": { "u_has_effect": "manic_fugue" }, - "effect": [ - { "mapgen_update": "spawn_minor_spark_artifact" }, - { - "u_message": "As you leave the fugue state, you realize you have managed to create a thing. Now to figure out what it does.", - "type": "info" - } - ] + "id": "EOC_DREAMER_ARTIFACT_FAIL_MESSAGE", + "effect": { + "switch": { "u_val": "vitamin", "name": "dreamer_vit" }, + "cases": [ + { + "case": 0, + "effect": { + "u_message": "Your impatience is apparently a defining feature. You're going to need a lot more time connecting with the universe to make this happen.", + "type": "bad" + } + }, + { + "case": 150, + "effect": { + "u_message": "You try to connect the item with another dimensions, but everything went wrong from the very beginning. You feel you need much more patience to finish it.", + "type": "bad" + } + }, + { + "case": 300, + "effect": { + "u_message": "You try to connect the item with another dimensions, but something interrupted you in the middle. You need just a bit of time to afford it.", + "type": "bad" + } + }, + { + "case": 450, + "effect": { + "u_message": "You try to connect the item with another dimensions, but in the end it failed. It was close enough, so you think you need to try it again in a day.", + "type": "bad" + } + } + ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_EATER_DROSS_FUN_1", + "effect": [ { "u_add_morale": "morale_ate_dross", "bonus": 1, "max_bonus": 200, "duration": "2 h", "decay_start": "1 h" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_EATER_DROSS_FUN_2", + "effect": [ { "u_add_morale": "morale_ate_dross", "bonus": 10, "max_bonus": 200, "duration": "20 h", "decay_start": "10 h" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_EATER_DROSS_FUN_3", + "effect": [ { "u_add_morale": "morale_ate_dross", "bonus": 100, "max_bonus": 200, "duration": "120 h", "decay_start": "60 h" } ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/spells/vampire_spells.json b/data/Mainline_mods/Mods/Xedra_Evolved/spells/vampire_spells.json index d6a5cb155..803e010e6 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/spells/vampire_spells.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/spells/vampire_spells.json @@ -5,16 +5,16 @@ "name": "Eye gleam", "description": "Gives you the power to see in the dark.", "message": "Your eyes glow red for a moment. Now your sight can pierce the darkest shadows.", + "teachable": false, "valid_targets": [ "self" ], "effect": "attack", "effect_str": "eyegleam", "flags": [ "NO_HANDS", "SILENT", "NO_FAIL" ], "shape": "blast", + "skill": "deduction", "min_range": 1, "max_range": 1, "base_casting_time": 100, - "base_energy_cost": 0, - "energy_source": "NONE", "min_duration": 100000, "max_duration": 1000000, "duration_increment": 2000 @@ -24,11 +24,13 @@ "type": "SPELL", "name": "Stamina from blood", "description": "You focus on sending the blood in your veins to where it can do the most good for your immediate stamina.", + "teachable": false, "effect": "recover_energy", "effect_str": "STAMINA", "shape": "blast", "valid_targets": [ "self" ], "flags": [ "NO_HANDS", "SILENT", "NO_FAIL" ], + "skill": "deduction", "min_damage": 1500, "max_damage": 10000, "base_casting_time": 100, @@ -39,13 +41,13 @@ "type": "SPELL", "name": "Coagulant Weave", "description": "Turning your blood mastery inwards, magically enhancing your flesh. Rather than strength of healing, it staves off blood loss and purges wounds before they can turn septic, at the cost of increased hunger and thirst.", + "teachable": false, "valid_targets": [ "self" ], "effect": "attack", "effect_str": "vamp_blood_weave", "shape": "blast", "flags": [ "NO_HANDS", "SILENT", "NO_FAIL" ], - "energy_source": "NONE", - "spell_class": "NONE", + "skill": "deduction", "base_energy_cost": 150, "max_level": 20, "min_duration": 6000, @@ -57,32 +59,31 @@ "type": "SPELL", "name": "Blood healing", "description": "Heals a little bit of damage on the target.", + "teachable": false, "valid_targets": [ "self" ], "min_damage": -5, "max_damage": -20, "damage_increment": -1.0, "max_level": 15, - "min_range": 0, "effect": "attack", "shape": "blast", "base_casting_time": 20, "flags": [ "NO_HANDS", "SILENT", "NO_FAIL" ], - "spell_class": "NONE", - "difficulty": 2, - "energy_source": "NONE" + "skill": "deduction", + "difficulty": 2 }, { "id": "spell_blood_haste", "type": "SPELL", "name": "Haste", "description": "This spell gives you an enormous boost of speed lasting a short period of time.", + "teachable": false, "valid_targets": [ "self" ], "flags": [ "NO_HANDS", "SILENT", "NO_FAIL", "NO_PROJECTILE" ], + "skill": "deduction", "effect": "attack", "effect_str": "haste", "shape": "blast", - "spell_class": "NONE", - "energy_source": "NONE", "base_casting_time": 200, "max_level": 20, "min_duration": 600, @@ -94,17 +95,16 @@ "type": "SPELL", "name": "hypnotic gaze", "description": "Stares into the eyes of your victim and wills them to pause.", + "teachable": false, "valid_targets": [ "ally", "hostile" ], "effect": "attack", "effect_str": "stunned", "shape": "blast", "flags": [ "NO_HANDS", "SILENT", "NO_FAIL", "NO_PROJECTILE" ], - "spell_class": "NONE", - "energy_source": "NONE", + "skill": "deduction", "difficulty": 3, "base_casting_time": 100, "max_level": 15, - "min_damage": 0, "min_range": 3, "max_range": 9, "range_increment": 0.4, diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/techniques.json b/data/Mainline_mods/Mods/Xedra_Evolved/techniques.json new file mode 100644 index 000000000..8fbdb36ef --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/techniques.json @@ -0,0 +1,64 @@ +[ + { + "type": "technique", + "id": "tec_devil_tail_puncture", + "name": "TAIL_SHOT", + "messages": [ + "Your devil tail shoot itself into %s, penetrating its body like a bullet", + "'s devil tail shoot itself into %s, penetrating its body like a bullet" + ], + "unarmed_allowed": true, + "melee_allowed": true, + "attack_override": true, + "weighting": 2, + "crit_ok": true, + "repeat_min": 1, + "repeat_max": 1, + "block_counter": true, + "dodge_counter": true, + "flat_bonuses": [ { "stat": "damage", "type": "bullet", "scale": 45 }, { "stat": "damage", "type": "cut", "scale": -1 } ], + "tech_effects": [ { "id": "bleed", "chance": 100, "duration": 2000, "on_damage": true, "message": "%s is bleeding heavily!" } ] + }, + { + "type": "technique", + "id": "tec_devil_tail_wide", + "name": "TAIL_SWEEP", + "messages": [ + "Your devil tail make a fast move, cutting heavily everybody in front", + "'s devil tail make a fast move, cutting heavily everybody in front" + ], + "unarmed_allowed": true, + "melee_allowed": true, + "attack_override": true, + "weighting": 2, + "crit_ok": true, + "repeat_min": 1, + "repeat_max": 1, + "block_counter": true, + "dodge_counter": true, + "aoe": "wide", + "flat_bonuses": [ { "stat": "damage", "type": "cut", "scale": 1.5 } ], + "tech_effects": [ { "id": "bleed", "chance": 100, "duration": 2000, "on_damage": true, "message": "%s is bleeding heavily!" } ] + }, + { + "type": "technique", + "id": "tec_devil_tail_grab", + "//": "not an actual grab, but would be nice to be so", + "name": "TAIL_GRAB", + "messages": [ + "Your devil tail grab %s, and make it fall on the ground", + "'s devil tail grab %s, and make it fall on the ground" + ], + "unarmed_allowed": true, + "melee_allowed": true, + "attack_override": true, + "weighting": 2, + "crit_ok": true, + "repeat_min": 1, + "repeat_max": 1, + "block_counter": true, + "dodge_counter": true, + "flat_bonuses": [ { "stat": "damage", "type": "bash", "scale": 15 }, { "stat": "damage", "type": "cut", "scale": -1 } ], + "tech_effects": [ { "id": "downed", "chance": 100, "duration": 5, "message": "You smash %s and make him fall" } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/ter_transforms/arvore_ter_transforms.json b/data/Mainline_mods/Mods/Xedra_Evolved/ter_transforms/arvore_ter_transforms.json new file mode 100644 index 000000000..43fb7d14b --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/ter_transforms/arvore_ter_transforms.json @@ -0,0 +1,196 @@ +[ + { + "type": "ter_furn_transform", + "id": "ter_arvore_plant_growth", + "terrain": [ + { + "result": [ + [ "t_tree_birch", 32 ], + [ "t_tree_elm", 32 ], + [ "t_tree_cottonwood", 32 ], + [ "t_tree_basswood", 32 ], + [ "t_tree_alder", 32 ], + [ "t_tree_pine", 64 ], + [ "t_tree_maple", 64 ], + [ "t_tree_willow", 64 ], + [ "t_tree_hickory", 32 ], + [ "t_tree_walnut", 16 ], + [ "t_tree_butternut", 4 ], + [ "t_tree_chestnut", 8 ], + [ "t_tree_hazelnut", 2 ], + [ "t_tree_beech", 4 ], + [ "t_tree_blackjack", 8 ], + [ "t_tree_apple", 2 ], + [ "t_tree_cherry", 2 ], + [ "t_tree_juniper", 2 ], + [ "t_tree_pear", 2 ], + [ "t_tree_plum", 2 ], + [ "t_tree_elderberry", 2 ], + [ "t_tree_mulberry", 2 ], + [ "t_tree_sassafras", 3 ] + ], + "valid_terrain": [ "t_tree_young" ], + "message": "The young tree creaks as its limbs begin growing, first slowly and then with increasing speed. Roots churn through the soil and leaves stretch toward the sun, and in moments, before you is a tree that could have stood for a human lifetime." + }, + { + "result": "t_grass_long", + "valid_terrain": [ "t_grass" ], + "message": "Fresh green grass grows longer and longer until it stands as tall as your knees." + }, + { + "result": "t_grass_tall", + "valid_terrain": [ "t_grass_long" ], + "message": "The tall grass grows and grows until a child could easily hide themselves within it." + } + ], + "furniture": [ + { + "result": "f_plant_harvest", + "valid_furniture": [ "f_plant_mature", "f_plant_seedling" ], + "message": "The plant grows in moments, leaves unfurling, roots churning the soil, and flowers opening toward the sun. Before you even lower your hands, it's ripe and ready for the harvest." + } + ] + }, + { + "type": "ter_furn_transform", + "id": "ter_arvore_wood_wall", + "terrain": [ + { + "result": [ "t_triffid_bark_wall" ], + "valid_terrain": [ "t_barkfloor" ], + "message": "The bark surges upward as the roots below grow into a heavy, solid wall covered in bark." + }, + { + "result": [ "t_triffid_wood_wall" ], + "valid_terrain": [ "t_triffid_bark_wall" ], + "message": "The wooden wall shudders as as the bark peels off in sheets, eventually becoming a solid expanse of bare wood." + }, + { + "result": [ "t_triffid_bark_wall" ], + "valid_terrain": [ "t_triffid_wood_wall" ], + "message": "The bare wooden wall shudders as bark sprouts and spreads over it, covering the entire surface in moments." + } + ] + }, + { + "type": "ter_furn_transform", + "id": "ter_arvore_wood_floor", + "terrain": [ + { + "result": [ "t_barkfloor" ], + "valid_terrain": [ + "t_grass", + "t_grass_long", + "t_dirt", + "t_dirtfloor", + "t_dirtfloor_no_roof", + "t_dirtmoundfloor", + "t_dirtmound", + "t_grass_dead", + "t_grass_white", + "t_sand", + "t_clay", + "t_sandmound", + "t_forestfloor" + ], + "message": "The ground churns as bark-covered roots erupt from it and form into a solid bark-covered floor." + }, + { + "result": [ "t_barkfloor_no_roof" ], + "valid_terrain": [ "t_barkfloor" ], + "message": "The ground churns as bark-covered roots quest upward." + }, + { + "result": [ "t_barkfloor_no_roof" ], + "valid_terrain": [ "t_triffid_wood_wall", "t_triffid_bark_wall" ], + "message": "The wooden wall spasms and recedes into the ground, leaving only a bark-covered floor in its place." + }, + { + "result": [ "t_triffid_wood_wall" ], + "valid_terrain": [ "t_triffid_bark_wall" ], + "message": "The wooden wall shudders as as the bark peels off in sheets, eventually becoming a solid expanse of bare wood." + }, + { + "result": [ "t_triffid_bark_wall" ], + "valid_terrain": [ "t_triffid_wood_wall" ], + "message": "The bare wooden wall shudders as bark sprouts and spreads over it, covering the entire surface in moments." + } + ] + }, + { + "type": "ter_furn_transform", + "id": "ter_arvore_wood_branch", + "terrain": [ + { + "result": [ "t_triffid_leaves" ], + "valid_terrain": [ "t_barkfloor_no_roof", "t_barkfloor" ], + "message": "The bark floor shudders as thin branches sprout from it, leaves already growing and unfurling, and soon a thicket of dense leaves covers the area." + }, + { + "result": [ "t_triffid_leaves" ], + "valid_terrain": [ + "t_grass", + "t_grass_long", + "t_dirt", + "t_dirtfloor", + "t_dirtfloor_no_roof", + "t_dirtmoundfloor", + "t_dirtmound", + "t_grass_dead", + "t_grass_white", + "t_sand", + "t_clay", + "t_sandmound", + "t_forestfloor" + ], + "message": "The ground shudders as thin branches sprout from it, leaves already growing and unfurling, and soon a thicket of dense leaves covers the area." + } + ] + }, + { + "type": "ter_furn_transform", + "id": "ter_arvore_wood_door", + "terrain": [ + { + "result": [ "t_bramble_door_c" ], + "valid_terrain": [ "t_triffid_wood_wall", "t_triffid_bark_wall" ], + "message": "The wall trembles and splits apart into a tangle of gnarled roots, waving in the air like monstrous tentacles. They weave together into a sturdy door before ceasing their motion." + }, + { + "result": [ "t_triffid_bark_wall" ], + "valid_terrain": [ "t_bramble_door_c", "t_bramble_door_o" ], + "message": "The roots surge into motion, growing together thicker and more tangled until a bark-covered wall of solid wood is all that remains." + } + ] + }, + { + "type": "ter_furn_transform", + "id": "ter_arvore_summoned_brambles", + "furniture": [ + { + "result": "f_magic_brambles", + "valid_furniture": [ + "f_null", + "f_cattails", + "t_grass_tall", + "t_grass_long", + "f_burdock", + "f_lotus", + "f_japanese_knotweed", + "f_lilypad", + "f_bluebell", + "f_lily", + "f_salsify", + "f_wild_sarsaparilla" + ], + "message": "The ground churns as thick, tangled brambles burst forth and grow in moments." + } + ] + }, + { + "type": "ter_furn_transform", + "id": "ter_arvore_fungicide", + "terrain": [ { "result": "t_dirt_barren", "valid_flags": [ "FUNGUS" ], "message": "The fungus withers and dies!" } ], + "furniture": [ { "result": "f_null", "valid_flags": [ "FUNGUS" ], "message": "The fungus withers and dies!" } ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/tool_qualities.json b/data/Mainline_mods/Mods/Xedra_Evolved/tool_qualities.json index bb19e8885..f5f161ae9 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/tool_qualities.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/tool_qualities.json @@ -2,6 +2,18 @@ { "type": "tool_quality", "id": "DREAM_HAMMER", - "name": { "str": "Hammer of Dreams" } + "name": { "str": "hammer of dreams" } + }, + { + "type": "tool_quality", + "id": "AI_TOOL", + "//": "provide a support in organizing huge amount of informations", + "name": { "str": "intelligent agent" } + }, + { + "type": "tool_quality", + "id": "SACRIFICE", + "//": "a place to convert one type of magic to another via sacrificing it to elder powers", + "name": { "str": "sacrificial altar" } } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/ui/sidebar.json b/data/Mainline_mods/Mods/Xedra_Evolved/ui/sidebar.json new file mode 100644 index 000000000..4f4c25e0d --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/ui/sidebar.json @@ -0,0 +1,248 @@ +[ + { + "//": "Maximum mana points, in light blue color.", + "id": "xe_max_mana_num", + "type": "widget", + "label": "Max Mana", + "style": "number", + "var": "max_mana", + "colors": [ "c_pink" ] + }, + { + "//": "Base widget for other mana widgets to copy-from. Sets var and colors.", + "id": "xe_mana_base", + "type": "widget", + "var": "mana", + "colors": [ "c_red", "c_light_red", "c_yellow", "c_pink" ] + }, + { + "//": "Current number of mana points, with color.", + "id": "xe_mana_num", + "type": "widget", + "copy-from": "xe_mana_base", + "label": "Mana", + "style": "number" + }, + { + "//": "Wide bar-graph of current mana level, using the default 'bucket' fill.", + "id": "xe_mana_graph", + "type": "widget", + "copy-from": "xe_mana_base", + "label": "Mana", + "style": "graph", + "width": 25, + "symbols": ".-=#", + "fill": "bucket" + }, + { + "//": "Like the mana graph, but using a 'pool' fill.", + "id": "xe_mana_pool", + "type": "widget", + "copy-from": "xe_mana_graph", + "fill": "pool" + }, + { + "//": "Both current and maximum mana numbers, side by side", + "id": "xe_current_max_mana_nums_layout", + "type": "widget", + "label": "Xedra Current/Max Mana", + "style": "layout", + "arrange": "columns", + "widgets": [ "xe_mana_num", "xe_max_mana_num" ] + }, + { + "//": "Bar graph of current mana, with 'bucket' fill.", + "id": "xe_mana_graph_layout", + "type": "widget", + "style": "layout", + "label": "Xedra Mana Graph", + "arrange": "columns", + "widgets": [ "xe_mana_graph" ] + }, + { + "//": "Bar graph of current mana, with 'pool' fill.", + "id": "xe_mana_pool_layout", + "type": "widget", + "style": "layout", + "label": "Xedra Mana Pool", + "arrange": "columns", + "widgets": [ "xe_mana_pool" ] + }, + { + "//": "Extend the custom sidebar with Xedra-specific sections", + "copy-from": "legacy_classic_sidebar", + "type": "widget", + "id": "legacy_classic_sidebar", + "extend": { + "widgets": [ "xe_current_max_mana_nums_layout", "xe_mana_graph_layout", "xe_mana_pool_layout", "vampire_blood_levels" ] + } + }, + { + "//": "Extend the custom sidebar with Xedra-specific sections", + "copy-from": "legacy_compact_sidebar", + "type": "widget", + "id": "legacy_compact_sidebar", + "extend": { + "widgets": [ "xe_current_max_mana_nums_layout", "xe_mana_graph_layout", "xe_mana_pool_layout", "vampire_blood_levels" ] + } + }, + { + "//": "Extend the custom sidebar with Xedra-specific sections", + "copy-from": "legacy_labels_narrow_sidebar", + "type": "widget", + "id": "legacy_labels_narrow_sidebar", + "extend": { + "widgets": [ "xe_current_max_mana_nums_layout", "xe_mana_graph_layout", "xe_mana_pool_layout", "vampire_blood_levels" ] + } + }, + { + "//": "Extend the custom sidebar with Xedra-specific sections", + "copy-from": "legacy_labels_sidebar", + "type": "widget", + "id": "legacy_labels_sidebar", + "extend": { + "widgets": [ "xe_current_max_mana_nums_layout", "xe_mana_graph_layout", "xe_mana_pool_layout", "vampire_blood_levels" ] + } + }, + { + "//": "Extend the custom sidebar with Xedra-specific sections", + "copy-from": "structured_sidebar", + "type": "widget", + "id": "structured_sidebar", + "extend": { + "widgets": [ "xe_current_max_mana_nums_layout", "xe_mana_graph_layout", "xe_mana_pool_layout", "vampire_blood_levels" ] + } + }, + { + "//": "spacebar Wide bar-graph of current mana level, using the default 'bucket' fill.", + "id": "xe_spacebar_mana_graph", + "type": "widget", + "copy-from": "xe_mana_base", + "label": "Mana", + "style": "graph", + "width": 36, + "symbols": ".oO", + "fill": "bucket" + }, + { + "id": "vampire_needs_desc_layout_label", + "type": "widget", + "style": "layout", + "label": "Vampire Needs", + "arrange": "rows", + "widgets": [ + "hunger_desc_label", + "thirst_desc_label", + "vampire_blood_levels", + "weight_desc_label", + "fatigue_desc_label", + "pain_desc_label", + "body_temp_desc_label" + ] + }, + { + "//": "spacebar Current number of mana points, with color.", + "id": "xe_spacebar_mana_num", + "type": "widget", + "copy-from": "xe_mana_base", + "label": "Mana", + "width": 28, + "style": "number", + "colors": [ "c_pink" ] + }, + { + "//": "spacebar Maximum mana points, in light blue color.", + "id": "xe_spacebar_max_mana_num", + "type": "widget", + "label": "Max Mana", + "style": "number", + "var": "max_mana", + "width": 28, + "colors": [ "c_pink" ] + }, + { + "//": "spacebar Both current and maximum mana numbers, side by side", + "id": "xe_spacebar_current_max_mana_nums_layout", + "type": "widget", + "label": "Xedra Current/Max Mana", + "style": "layout", + "arrange": "minimum_columns", + "width": 56, + "widgets": [ "xe_spacebar_mana_num", "xe_spacebar_max_mana_num", "vampire_blood_levels" ] + }, + { + "id": "xe_spacebar_mana_bar_block", + "type": "widget", + "style": "layout", + "label": "xe_mana_bar", + "arrange": "minimum_columns", + "widgets": [ "spacebar_separator_2", "xe_spacebar_mana_graph", "vampire_blood_levels" ] + }, + { + "id": "xe_spacebar_mana_numbers_block", + "type": "widget", + "style": "layout", + "label": "xe_mana_number", + "arrange": "minimum_columns", + "widgets": [ "spacebar_separator_2", "xe_spacebar_current_max_mana_nums_layout", "vampire_blood_levels" ] + }, + { + "//": "spacebar Extend the custom sidebar with Xedra-specific sections", + "copy-from": "spacebar", + "type": "widget", + "id": "spacebar", + "extend": { "widgets": [ "xe_spacebar_mana_numbers_block", "xe_spacebar_mana_bar_block", "vampire_blood_levels" ] } + }, + { + "//": "Extend the custom sidebar with Xedra-specific sections", + "copy-from": "my_labels_sidebar", + "type": "widget", + "id": "my_labels_sidebar", + "extend": { + "widgets": [ "xe_current_max_mana_nums_layout", "xe_mana_graph_layout", "xe_mana_pool_layout", "vampire_blood_levels" ] + } + }, + { + "//": "Extend the custom sidebar with Xedra-specific sections", + "copy-from": "legacy_classic_sidebar_one_padding", + "type": "widget", + "id": "legacy_classic_sidebar_one_padding", + "extend": { + "widgets": [ "xe_current_max_mana_nums_layout", "xe_mana_graph_layout", "xe_mana_pool_layout", "vampire_blood_levels" ] + } + }, + { + "id": "vampire_sidebar", + "type": "widget", + "style": "sidebar", + "label": { "str": "vampire", "ctxt": "UI sidebar" }, + "width": 36, + "separator": ": ", + "padding": 2, + "widgets": [ + "hitpoints_all_narrow_graphs_layout", + "hitpoints_all_narrow_nums_layout", + "stats_narrow_layout", + "movement_layout", + "stamina_activity_weary_layout", + "vampire_needs_desc_layout_label", + "needs_desc_sa_layout_label", + "safe_sound_layout", + "power_desc", + "rad_badge_desc", + "compass_all_layout", + "compass_all_layout_alt", + "weapon_style_layout", + "place_date_time_layout", + "overmap_full_width", + "overmap_location_desc", + "light_moon_wind_temp_layout", + "vehicle_acf_label_layout", + "vital_numbers_layout", + "bodypart_armor_outer_layout", + "bodypart_status_layout", + "bodypart_status_sym_layout", + "bodygraph_hp_layout" + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/ui/vamp_blood_levels.json b/data/Mainline_mods/Mods/Xedra_Evolved/ui/vamp_blood_levels.json new file mode 100644 index 000000000..e838c69bb --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/ui/vamp_blood_levels.json @@ -0,0 +1,105 @@ +[ + { + "id": "vampire_blood_levels", + "type": "widget", + "label": "Blood", + "style": "text", + "flags": [ "W_DISABLED_WHEN_EMPTY" ], + "clauses": [ + { + "id": "slumber", + "text": "Eternal Slumber", + "color": "dark_gray_red", + "condition": { + "and": [ + { "u_has_effect": "vampire_virus" }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "<=", { "const": -11999 } ] } + ] + } + }, + { + "id": "near_death", + "text": "Corpse-like", + "color": "light_gray", + "condition": { + "and": [ + { "u_has_effect": "vampire_virus" }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "<=", { "const": -6401 } ] }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">", { "const": -11999 } ] } + ] + } + }, + { + "id": "starving", + "text": "Hypomia", + "color": "yellow", + "condition": { + "and": [ + { "u_has_effect": "vampire_virus" }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "<=", { "const": -5601 } ] }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">", { "const": -6401 } ] } + ] + } + }, + { + "id": "hungry", + "text": "Sallow", + "color": "light_green", + "condition": { + "and": [ + { "u_has_effect": "vampire_virus" }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "<=", { "const": -4800 } ] }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">", { "const": -5601 } ] } + ] + } + }, + { + "id": "content", + "text": "Content", + "color": "green", + "condition": { + "and": [ + { "u_has_effect": "vampire_virus" }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "<=", { "const": 1800 } ] }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">", { "const": -4800 } ] } + ] + } + }, + { + "id": "flush", + "text": "Flush", + "color": "light_red", + "condition": { + "and": [ + { "u_has_effect": "vampire_virus" }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "<=", { "const": 2401 } ] }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">", { "const": 1800 } ] } + ] + } + }, + { + "id": "engorged", + "text": "Engorged", + "color": "red", + "condition": { + "and": [ + { "u_has_effect": "vampire_virus" }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, "<=", { "const": 4401 } ] }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">", { "const": 2401 } ] } + ] + } + }, + { + "id": "swollen", + "text": "Tick-like", + "color": "red_cyan", + "condition": { + "and": [ + { "u_has_effect": "vampire_virus" }, + { "compare_num": [ { "u_val": "vitamin", "name": "human_blood_vitamin" }, ">", { "const": 4401 } ] } + ] + } + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/vehicles/magickal_vehicles.json b/data/Mainline_mods/Mods/Xedra_Evolved/vehicles/magickal_vehicles.json new file mode 100644 index 000000000..224374856 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/vehicles/magickal_vehicles.json @@ -0,0 +1,18 @@ +[ + { + "type": "vehicle", + "id": "wave_rider_kayak", + "name": "wave rider kayak", + "blueprint": [ [ "" ] ], + "parts": [ + { + "x": 0, + "y": 0, + "parts": [ "xlframe#horizontal", "seat", "wave_rider_engine", "carbonfiber_boat_hull", "alternator_motorbike" ] + }, + { "x": 0, "y": 0, "parts": [ "controls", "controls_electronic" ] }, + { "x": 1, "y": 0, "parts": [ "xlframe#horizontal", "carbonfiber_boat_hull" ] }, + { "x": -1, "y": 0, "parts": [ "xlframe#horizontal", "carbonfiber_boat_hull", "battery_motorbike" ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/vehicles/vehicle_parts.json b/data/Mainline_mods/Mods/Xedra_Evolved/vehicles/vehicle_parts.json new file mode 100644 index 000000000..394c930d6 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/vehicles/vehicle_parts.json @@ -0,0 +1,50 @@ +[ + { + "id": "wave_rider_engine", + "copy-from": "engine_combustion", + "type": "vehicle_part", + "fuel_type": "mana", + "m2c": 60, + "item": "unloaded_wave_rider_engine", + "durability": 200, + "epower": "-50 W", + "power": "37300 W", + "energy_consumption": "124500 W", + "folded_volume": "2 L", + "breaks_into": [ + { "item": "steel_lump", "count": [ 10, 20 ] }, + { "item": "steel_chunk", "count": [ 10, 20 ] }, + { "item": "scrap", "count": [ 10, 20 ] } + ], + "requirements": { + "install": { "skills": [ [ "mechanics", 2 ] ], "time": "60 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, + "removal": { "skills": [ [ "mechanics", 2 ] ], "time": "30 m", "using": [ [ "vehicle_wrench_2", 1 ] ] }, + "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "60 m", "using": [ [ "welding_standard", 5 ] ] } + }, + "damage_reduction": { "all": 60 }, + "extend": { "flags": [ "NO_INSTALL_HIDDEN" ] } + }, + { + "id": "mana", + "name": "mana energy", + "default": "mana", + "type": "ammunition_type" + }, + { + "id": "mana", + "type": "AMMO", + "category": "chems", + "name": "mana core power", + "description": "Seeing this is a bug.", + "weight": "10 g", + "volume": "10 ml", + "phase": "solid", + "material": [ "mana" ], + "flags": [ "PSEUDO", "PERPETUAL" ], + "symbol": "?", + "color": "magenta", + "count": 1, + "ammo_type": "mana", + "melee_damage": { "bash": 1 } + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/vehicles/xedra.json b/data/Mainline_mods/Mods/Xedra_Evolved/vehicles/xedra.json index 8c9452d38..b4eb51e3e 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/vehicles/xedra.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/vehicles/xedra.json @@ -1,103 +1,105 @@ -{ - "id": "bearcub", - "type": "vehicle", - "name": "Border Enforcement Bearcub", - "blueprint": [ - [ "O----++-OH" ], - [ "===|H##'|H" ], - [ "===t###'|H" ], - [ "===|H##'|H" ], - [ "O----++-OH" ] - ], - "parts": [ - { "x": 0, "y": 0, "parts": [ "hdframe_cross", "hdroof" ] }, - { "x": 0, "y": 0, "parts": [ { "fuel": "jp8", "part": "tank" }, "controls", "dashboard" ] }, - { "x": 0, "y": 0, "parts": [ "vehicle_clock", "horn_big", "seat", "seatbelt" ] }, - { "x": 0, "y": -1, "parts": [ "hdframe_vertical_left", "hddoor_left" ] }, - { "x": 0, "y": 1, "parts": [ "hdframe_cross", "box", "recharge_station", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ "hdframe_cross", "hdroof" ] }, - { "x": 0, "y": 2, "parts": [ { "fuel": "jp8", "part": "tank" }, "seat", "seatbelt" ] }, - { "x": 0, "y": 3, "parts": [ "hdframe_vertical_right", "hddoor_right" ] }, - { "x": 1, "y": -1, "parts": [ "hdframe_vertical_T_left", "reinforced_windshield_nw" ] }, - { "x": 1, "y": 0, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 0, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 0, "part": "headlight_reinforced" }, - { "x": 1, "y": 1, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 1, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 2, "part": "hdframe_horizontal_2" }, - { "x": 1, "y": 2, "part": "reinforced_windshield_horizontal_front" }, - { "x": 1, "y": 3, "parts": [ "hdframe_vertical_T_right", "reinforced_windshield_ne" ] }, - { "x": 2, "y": -1, "parts": [ "hdframe_vertical_T_left", "hdhalfboard_nw" ] }, - { "x": 2, "y": -1, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, - { "x": 2, "y": -1, "part": "wheel_armor" }, - { "x": 2, "y": 0, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, - { "x": 2, "y": 0, "parts": [ "plating_military", "engine_v8", "headlight_reinforced" ] }, - { "x": 2, "y": 1, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, - { "x": 2, "y": 1, "parts": [ "plating_military", "diesel_engine_v8", "alternator_truck" ] }, - { "x": 2, "y": 1, "part": "battery_car" }, - { "x": 2, "y": 2, "parts": [ "hdframe_horizontal_2", "hdhalfboard_horizontal" ] }, - { "x": 2, "y": 2, "parts": [ "plating_military", "headlight_reinforced" ] }, - { "x": 2, "y": 3, "parts": [ "hdframe_vertical_T_right", "hdhalfboard_ne" ] }, - { "x": 2, "y": 3, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, - { "x": 2, "y": 3, "part": "wheel_armor" }, - { "x": 3, "y": -1, "parts": [ "hdframe_nw", "plating_military" ] }, - { "x": 3, "y": 0, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 1, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 2, "parts": [ "hdframe_horizontal_front", "plating_military" ] }, - { "x": 3, "y": 3, "parts": [ "hdframe_ne", "plating_military" ] }, - { "x": -1, "y": -1, "parts": [ "hdframe_vertical_left", "hddoor_left" ] }, - { - "x": -1, - "y": 0, - "parts": [ "hdframe_cross", "seat", { "fuel": "gasoline", "part": "tank" }, "seatbelt", "hdroof" ] - }, - { "x": -1, "y": 1, "parts": [ "hdframe_cross", "aisle_horizontal", "hdroof" ] }, - { "x": -1, "y": 1, "part": "turret_mount" }, - { - "x": -1, - "y": 1, - "part": "turret_hammer_turret_system", - "ammo_types": [ "shot_00", "shot_slug" ], - "ammo": 64, - "ammo_qty": [ 0, 64 ] - }, - { "x": -1, "y": 2, "parts": [ "hdframe_cross", "seat", "seatbelt", "hdroof" ] }, - { "x": -1, "y": 3, "parts": [ "hdframe_vertical_right", "hddoor_right" ] }, - { "x": -2, "y": -1, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, - { "x": -2, "y": -1, "part": "plating_military" }, - { "x": -2, "y": 0, "parts": [ "hdframe_cross", "cargo_space", "hdroof" ] }, - { "x": -2, "y": 1, "parts": [ "hdframe_cross", "cargo_space", "hdroof" ] }, - { "x": -2, "y": 2, "parts": [ "hdframe_cross", "cargo_space", "hdroof" ] }, - { "x": -2, "y": 3, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, - { "x": -2, "y": 3, "part": "plating_military" }, - { "x": -3, "y": -1, "parts": [ "hdframe_vertical_left", "hdboard_vertical_left" ] }, - { "x": -3, "y": -1, "part": "plating_military" }, - { "x": -3, "y": 0, "parts": [ "hdframe_cross", "trunk" ] }, - { "x": -3, "y": 1, "parts": [ "hdframe_cross", "trunk" ] }, - { "x": -3, "y": 2, "parts": [ "hdframe_cross", "trunk" ] }, - { "x": -3, "y": 3, "parts": [ "hdframe_vertical_right", "hdboard_vertical_right" ] }, - { "x": -3, "y": 3, "part": "plating_military" }, - { "x": -4, "y": -1, "parts": [ "hdframe_vertical_left", "hdhalfboard_vertical_left" ] }, - { "x": -4, "y": -1, "part": "plating_military" }, - { "x": -4, "y": 0, "parts": [ "hdframe_cross", "trunk" ] }, - { "x": -4, "y": 1, "parts": [ "hdframe_cross", "trunk" ] }, - { "x": -4, "y": 2, "parts": [ "hdframe_cross", "trunk" ] }, - { "x": -4, "y": 3, "parts": [ "hdframe_vertical_right", "hdhalfboard_vertical_right" ] }, - { "x": -4, "y": 3, "part": "plating_military" }, - { "x": -5, "y": -1, "parts": [ "hdframe_sw", "hdhalfboard_sw", "plating_military" ] }, - { "x": -5, "y": -1, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, - { "x": -5, "y": 0, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk", "muffler" ] }, - { "x": -5, "y": 0, "part": "plating_military" }, - { "x": -5, "y": 1, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk" ] }, - { "x": -5, "y": 1, "part": "plating_military" }, - { "x": -5, "y": 2, "parts": [ "hdframe_horizontal_rear", "hddoor_trunk" ] }, - { "x": -5, "y": 2, "part": "plating_military" }, - { "x": -5, "y": 3, "parts": [ "hdframe_se", "hdhalfboard_se", "plating_military" ] }, - { "x": -5, "y": 3, "parts": [ "wheel_mount_heavy", "wheel_armor" ] } - ], - "items": [ - { "x": 0, "y": 0, "chance": 5, "items": [ "badge_zebra" ] }, - { "x": -2, "y": 2, "chance": 15, "item_groups": [ "fuel_jp8" ] }, - { "x": -2, "y": 1, "chance": 7, "item_groups": [ "military_standard_sniper_rifles" ] } - ] -} +[ + { + "id": "bearcub", + "type": "vehicle", + "//": "A humvee like vehicle with an extended trunk. Used heavily by Xedra cover agencies.", + "name": "Border Enforcement Bearcub", + "blueprint": [ + [ "O----++-OH" ], + [ "===|H##'|H" ], + [ "===t###'|H" ], + [ "===|H##'|H" ], + [ "O----++-OH" ] + ], + "parts": [ + { "x": 0, "y": 0, "parts": [ "hdframe#cross", "hdroof" ] }, + { "x": 0, "y": 0, "parts": [ { "part": "tank", "fuel": "jp8" }, "controls", "dashboard" ] }, + { "x": 0, "y": 0, "parts": [ "horn_big", "seat", "seatbelt" ] }, + { "x": 0, "y": -1, "parts": [ "hdframe#vertical_left", "hddoor#left" ] }, + { "x": 0, "y": 1, "parts": [ "hdframe#cross", "box", "recharge_station", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ "hdframe#cross", "hdroof" ] }, + { "x": 0, "y": 2, "parts": [ { "part": "tank", "fuel": "jp8" }, "seat", "seatbelt" ] }, + { "x": 0, "y": 3, "parts": [ "hdframe#vertical_right", "hddoor#right" ] }, + { "x": 1, "y": -1, "parts": [ "hdframe#vertical_T_left", "reinforced_windshield#nw" ] }, + { "x": 1, "y": 0, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 0, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 0, "parts": [ "headlight_reinforced" ] }, + { "x": 1, "y": 1, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 1, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 2, "parts": [ "hdframe#horizontal_2" ] }, + { "x": 1, "y": 2, "parts": [ "reinforced_windshield#horizontal_front" ] }, + { "x": 1, "y": 3, "parts": [ "hdframe#vertical_T_right", "reinforced_windshield#ne" ] }, + { "x": 2, "y": -1, "parts": [ "hdframe#vertical_T_left", "hdhalfboard#nw" ] }, + { "x": 2, "y": -1, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, + { "x": 2, "y": -1, "parts": [ "wheel_armor" ] }, + { "x": 2, "y": 0, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, + { "x": 2, "y": 0, "parts": [ "plating_military", "engine_v8", "headlight_reinforced" ] }, + { "x": 2, "y": 1, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, + { "x": 2, "y": 1, "parts": [ "plating_military", "diesel_engine_v8", "alternator_truck" ] }, + { "x": 2, "y": 1, "parts": [ "battery_car" ] }, + { "x": 2, "y": 2, "parts": [ "hdframe#horizontal_2", "hdhalfboard#horizontal" ] }, + { "x": 2, "y": 2, "parts": [ "plating_military", "headlight_reinforced" ] }, + { "x": 2, "y": 3, "parts": [ "hdframe#vertical_T_right", "hdhalfboard#ne" ] }, + { "x": 2, "y": 3, "parts": [ "plating_military", "wheel_mount_heavy_steerable" ] }, + { "x": 2, "y": 3, "parts": [ "wheel_armor" ] }, + { "x": 3, "y": -1, "parts": [ "hdframe#nw", "plating_military" ] }, + { "x": 3, "y": 0, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 1, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 2, "parts": [ "hdframe#horizontal_front", "plating_military" ] }, + { "x": 3, "y": 3, "parts": [ "hdframe#ne", "plating_military" ] }, + { "x": -1, "y": -1, "parts": [ "hdframe#vertical_left", "hddoor#left" ] }, + { + "x": -1, + "y": 0, + "parts": [ "hdframe#cross", "seat", { "part": "tank", "fuel": "gasoline" }, "seatbelt", "hdroof" ] + }, + { "x": -1, "y": 1, "parts": [ "hdframe#cross", "aisle#horizontal", "hdroof" ] }, + { "x": -1, "y": 1, "parts": [ "turret_mount" ] }, + { + "x": -1, + "y": 1, + "parts": [ + { "part": "turret_hammer_turret_system", "ammo": 64, "ammo_types": [ "shot_00", "shot_slug" ], "ammo_qty": [ 0, 64 ] } + ] + }, + { "x": -1, "y": 2, "parts": [ "hdframe#cross", "seat", "seatbelt", "hdroof" ] }, + { "x": -1, "y": 3, "parts": [ "hdframe#vertical_right", "hddoor#right" ] }, + { "x": -2, "y": -1, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, + { "x": -2, "y": -1, "parts": [ "plating_military" ] }, + { "x": -2, "y": 0, "parts": [ "hdframe#cross", "cargo_space", "hdroof" ] }, + { "x": -2, "y": 1, "parts": [ "hdframe#cross", "cargo_space", "hdroof" ] }, + { "x": -2, "y": 2, "parts": [ "hdframe#cross", "cargo_space", "hdroof" ] }, + { "x": -2, "y": 3, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, + { "x": -2, "y": 3, "parts": [ "plating_military" ] }, + { "x": -3, "y": -1, "parts": [ "hdframe#vertical_left", "hdboard#vertical_left" ] }, + { "x": -3, "y": -1, "parts": [ "plating_military" ] }, + { "x": -3, "y": 0, "parts": [ "hdframe#cross", "trunk" ] }, + { "x": -3, "y": 1, "parts": [ "hdframe#cross", "trunk" ] }, + { "x": -3, "y": 2, "parts": [ "hdframe#cross", "trunk" ] }, + { "x": -3, "y": 3, "parts": [ "hdframe#vertical_right", "hdboard#vertical_right" ] }, + { "x": -3, "y": 3, "parts": [ "plating_military" ] }, + { "x": -4, "y": -1, "parts": [ "hdframe#vertical_left", "hdhalfboard#vertical_left" ] }, + { "x": -4, "y": -1, "parts": [ "plating_military" ] }, + { "x": -4, "y": 0, "parts": [ "hdframe#cross", "trunk" ] }, + { "x": -4, "y": 1, "parts": [ "hdframe#cross", "trunk" ] }, + { "x": -4, "y": 2, "parts": [ "hdframe#cross", "trunk" ] }, + { "x": -4, "y": 3, "parts": [ "hdframe#vertical_right", "hdhalfboard#vertical_right" ] }, + { "x": -4, "y": 3, "parts": [ "plating_military" ] }, + { "x": -5, "y": -1, "parts": [ "hdframe#sw", "hdhalfboard#sw", "plating_military" ] }, + { "x": -5, "y": -1, "parts": [ "wheel_mount_heavy", "wheel_armor" ] }, + { "x": -5, "y": 0, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk", "muffler" ] }, + { "x": -5, "y": 0, "parts": [ "plating_military" ] }, + { "x": -5, "y": 1, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk" ] }, + { "x": -5, "y": 1, "parts": [ "plating_military" ] }, + { "x": -5, "y": 2, "parts": [ "hdframe#horizontal_rear", "hddoor_trunk" ] }, + { "x": -5, "y": 2, "parts": [ "plating_military" ] }, + { "x": -5, "y": 3, "parts": [ "hdframe#se", "hdhalfboard#se", "plating_military" ] }, + { "x": -5, "y": 3, "parts": [ "wheel_mount_heavy", "wheel_armor" ] } + ], + "items": [ + { "x": 0, "y": 0, "chance": 5, "items": [ "badge_zebra" ] }, + { "x": -2, "y": 2, "chance": 15, "item_groups": [ "fuel_jp8" ] }, + { "x": -2, "y": 1, "chance": 7, "item_groups": [ "military_standard_sniper_rifles" ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/vitamin.json b/data/Mainline_mods/Mods/Xedra_Evolved/vitamin.json index 02f5f3be5..d9da759f9 100644 --- a/data/Mainline_mods/Mods/Xedra_Evolved/vitamin.json +++ b/data/Mainline_mods/Mods/Xedra_Evolved/vitamin.json @@ -13,6 +13,7 @@ { "id": "human_blood_vitamin", "type": "vitamin", + "//": "Only Vampires have the ability to process this vitamin so if other characters gain any amount of this it will stick around forever and potentially give them the excess disease.", "vit_type": "counter", "name": { "str": "Stolen Blood" }, "excess": "blood_quenched", @@ -23,13 +24,117 @@ "disease": [ [ -4800, -5600 ], [ -5601, -6400 ], [ -6401, -11998 ], [ -11999, -12000 ] ], "disease_excess": [ [ 1800, 2400 ], [ 2401, 4400 ], [ 4401, 5600 ] ] }, + { + "id": "cheval", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Cheval" }, + "excess": "cheval_overdose", + "deficiency": "cheval_withdrawal", + "min": 0, + "max": 2000, + "rate": "1 m", + "disease": [ [ 1, 400 ] ], + "disease_excess": [ [ 401, 1000 ], [ 1001, 1300 ], [ 1301, 1600 ], [ 1601, 2000 ] ] + }, + { + "id": "creative_spark_research", + "type": "vitamin", + "//": "Processed sparks, it respond for inventor's researches of different items, recipes and spells.", + "vit_type": "counter", + "name": { "str": "Processed Creativity" }, + "min": 0, + "max": 1000, + "rate": "0 m" + }, { "id": "creative_spark", "type": "vitamin", + "//": "This vitamin powers any Spark type abilities for the Inventor/Mad Genius spellcasting class.", "vit_type": "counter", "name": { "str": "Creative Spark" }, "min": 0, - "max": 5, - "rate": "0 m" + "max": 6, + "rate": "0 m", + "excess": "creativity", + "disease_excess": [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] + }, + { + "id": "dreamer_vit", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Metaphysical Connection" }, + "//": "Respond for dreamer's ability to pull stuff from other dimensions", + "min": 0, + "max": 1000, + "rate": "0 m", + "excess": "dreamer_eff", + "disease_excess": [ [ 1, 200 ], [ 201, 400 ], [ 401, 600 ], [ 601, 800 ], [ 801, 1000 ] ] + }, + { + "id": "mutagen_earthkin", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Ierde Mutagen" }, + "excess": "mutagen_earthkin", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, + { + "id": "mutagen_plantkin", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Arvore Mutagen" }, + "excess": "mutagen_plantkin", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, + { + "id": "mutagen_waterkin", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Undine Mutagen" }, + "excess": "mutagen_waterkin", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, + { + "id": "mutagen_flamekin", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Salamander Mutagen" }, + "excess": "mutagen_flamekin", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, + { + "id": "mutagen_dollkin", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Homullus Mutagen" }, + "excess": "mutagen_dollkin", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] + }, + { + "id": "mutagen_airkin", + "type": "vitamin", + "vit_type": "counter", + "name": { "str": "Sylph Mutagen" }, + "excess": "mutagen_airkin", + "min": 0, + "max": 2500, + "rate": "1 h", + "disease_excess": [ [ 100, 500 ], [ 501, 2199 ], [ 2200, 2500 ] ] } ] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/weakpoints/wp_alien_being.json b/data/Mainline_mods/Mods/Xedra_Evolved/weakpoints/wp_alien_being.json new file mode 100644 index 000000000..4f8c46040 --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/weakpoints/wp_alien_being.json @@ -0,0 +1,79 @@ +[ + { + "type": "weakpoint_set", + "id": "wps_alien_biology", + "weakpoints": [ + { + "id": "vital_gap", + "name": "this small gap leads to something vital", + "coverage": 5, + "difficulty": { "melee": 4, "ranged": 5 }, + "coverage_mult": { "broad": 0.5 }, + "armor_mult": { "all": 0.25 } + }, + { + "id": "alien_joint", + "name": "where a limb derives motion from", + "coverage": 8, + "difficulty": { "melee": 3, "ranged": 7 }, + "coverage_mult": { "ranged": 0.25 }, + "armor_mult": { "all": 0.5 } + }, + { + "id": "hard_point", + "name": "a particularly strong part of the body", + "armor_mult": { "all": 1.25 }, + "crit_mult": { "all": 0.75 }, + "coverage_mult": { "melee": 0.75 }, + "coverage": 12 + }, + { + "id": "grasping_appendage", + "name": "the arm", + "crit_mult": { "all": 0.75 }, + "difficulty": { "ranged": 4, "melee": 1 }, + "coverage_mult": { "point": 0.75 }, + "effects": [ + { "effect": "staggered", "chance": 15, "message": "The %s is knocked off-balance!", "damage_required": [ 10, 30 ] }, + { + "effect": "staggered", + "chance": 25, + "message": "The %s is knocked off-balance!", + "damage_required": [ 31, 100 ] + } + ], + "coverage": 8 + }, + { + "id": "part_grasping_appendage", + "name": "the grasping appendage", + "//": "Gives you a higher chance of hitting the arm if the enemy is grabbing you.", + "crit_mult": { "all": 0.75 }, + "effects": [ + { "effect": "staggered", "chance": 15, "message": "The %s is knocked off-balance!", "damage_required": [ 10, 30 ] }, + { + "effect": "staggered", + "chance": 25, + "message": "The %s is knocked off-balance!", + "damage_required": [ 31, 100 ] + } + ], + "required_effects": [ "grabbing" ], + "coverage": 8 + }, + { + "id": "alien_leg", + "name": "the leg", + "crit_mult": { "all": 0.75 }, + "difficulty": { "ranged": 3, "melee": 1 }, + "coverage_mult": { "point": 0.75 }, + "effects": [ + { "effect": "downed", "chance": 3, "message": "The %s is knocked down!", "damage_required": [ 10, 30 ] }, + { "effect": "downed", "chance": 8, "message": "The %s is knocked down!", "damage_required": [ 31, 50 ] }, + { "effect": "downed", "chance": 16, "message": "The %s is knocked down!", "damage_required": [ 51, 100 ] } + ], + "coverage": 15 + } + ] + } +] diff --git a/data/Mainline_mods/Mods/Xedra_Evolved/weakpoints/wp_combat_cyborg.json b/data/Mainline_mods/Mods/Xedra_Evolved/weakpoints/wp_combat_cyborg.json new file mode 100644 index 000000000..d4841f58b --- /dev/null +++ b/data/Mainline_mods/Mods/Xedra_Evolved/weakpoints/wp_combat_cyborg.json @@ -0,0 +1,129 @@ +[ + { + "type": "weakpoint_set", + "id": "wps_combat_cyborg", + "weakpoints": [ + { + "id": "small_gap", + "name": "a small gap in the armored plates", + "coverage": 5, + "difficulty": { "melee": 4, "ranged": 5 }, + "coverage_mult": { "broad": 0.5 }, + "armor_mult": { "all": 0.25 } + }, + { + "id": "weak_joint", + "name": "a joint in the armored plates", + "coverage": 8, + "difficulty": { "melee": 3, "ranged": 7 }, + "coverage_mult": { "ranged": 0.25 }, + "armor_mult": { "all": 0.5 } + }, + { + "id": "hard_point", + "name": "a particularly thick patch of armor", + "armor_mult": { "all": 1.25 }, + "crit_mult": { "all": 0.75 }, + "coverage_mult": { "melee": 0.75 }, + "coverage": 12 + }, + { + "id": "grasping_appendage", + "name": "the arm", + "crit_mult": { "all": 0.75 }, + "difficulty": { "ranged": 4, "melee": 1 }, + "coverage_mult": { "point": 0.75 }, + "effects": [ + { "effect": "staggered", "chance": 15, "message": "The %s is knocked off-balance!", "damage_required": [ 10, 30 ] }, + { + "effect": "staggered", + "chance": 25, + "message": "The %s is knocked off-balance!", + "damage_required": [ 31, 100 ] + } + ], + "coverage": 8 + }, + { + "id": "part_grasping_appendage", + "name": "the grasping appendage", + "//": "Gives you a higher chance of hitting the arm if the enemy is grabbing you.", + "crit_mult": { "all": 0.75 }, + "effects": [ + { "effect": "staggered", "chance": 15, "message": "The %s is knocked off-balance!", "damage_required": [ 10, 30 ] }, + { + "effect": "staggered", + "chance": 25, + "message": "The %s is knocked off-balance!", + "damage_required": [ 31, 100 ] + } + ], + "required_effects": [ "grabbing" ], + "coverage": 8 + }, + { + "id": "cyborg_leg", + "name": "the cybernetic leg", + "crit_mult": { "all": 0.75 }, + "difficulty": { "ranged": 3, "melee": 1 }, + "coverage_mult": { "point": 0.75 }, + "effects": [ + { "effect": "downed", "chance": 3, "message": "The %s is knocked down!", "damage_required": [ 10, 30 ] }, + { "effect": "downed", "chance": 8, "message": "The %s is knocked down!", "damage_required": [ 31, 50 ] }, + { "effect": "downed", "chance": 16, "message": "The %s is knocked down!", "damage_required": [ 51, 100 ] } + ], + "coverage": 15 + }, + { + "id": "motive_power", + "name": "the motive power box", + "coverage": 5, + "crit_mult": { "all": 1.1 }, + "armor_mult": { "physical": 0.75 }, + "difficulty": { "melee": 2, "ranged": 5 }, + "effects": [ + { + "effect": "stunned", + "duration": [ 1, 2 ], + "chance": 5, + "message": "The %s is stunned!", + "damage_required": [ 1, 10 ] + }, + { + "effect": "stunned", + "duration": [ 1, 2 ], + "chance": 15, + "message": "The %s is stunned!", + "damage_required": [ 11, 50 ] + }, + { + "effect": "stunned", + "duration": [ 1, 2 ], + "chance": 25, + "message": "The %s is stunned!", + "damage_required": [ 51, 100 ] + } + ] + }, + { + "id": "vid_eye_aperture", + "name": "the video aperture", + "armor_mult": { "physical": 0 }, + "coverage": 1, + "crit_mult": { "all": 1.25 }, + "difficulty": { "ranged": 8, "melee": 6 }, + "coverage_mult": { "broad": 0.5 }, + "effects": [ + { "effect": "blind", "duration": [ 1, 2 ], "chance": 40, "message": "The %s is blinded!", "damage_required": [ 1, 25 ] }, + { + "effect": "blind", + "permanent": true, + "chance": 30, + "message": "Sparks fly from the aperture!", + "damage_required": [ 26, 100 ] + } + ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/aftershock_exoplanet/Map/overmap_terrain/overmap_terrain_transportation.json b/data/Mainline_mods/Mods/aftershock_exoplanet/Map/overmap_terrain/overmap_terrain_transportation.json index 62c21a7d1..d96aec2ad 100644 --- a/data/Mainline_mods/Mods/aftershock_exoplanet/Map/overmap_terrain/overmap_terrain_transportation.json +++ b/data/Mainline_mods/Mods/aftershock_exoplanet/Map/overmap_terrain/overmap_terrain_transportation.json @@ -7,7 +7,7 @@ "color": "dark_gray", "see_cost": 2, "extras": "road", - "flags": [ "LINEAR" ] + "flags": [ "LINEAR", "REQUIRES_PREDECESSOR" ] }, { "type": "overmap_terrain", diff --git a/data/Mainline_mods/Mods/aftershock_exoplanet/region_settings.json b/data/Mainline_mods/Mods/aftershock_exoplanet/region_settings.json index dce589d9b..051f32f66 100644 --- a/data/Mainline_mods/Mods/aftershock_exoplanet/region_settings.json +++ b/data/Mainline_mods/Mods/aftershock_exoplanet/region_settings.json @@ -2,12 +2,7 @@ { "type": "region_settings", "id": "default", - "overmap_feature_flag_settings": { - "clear_blacklist": false, - "blacklist": [ "BLOB", "BEE", "ANT", "FUNGAL", "SLIME", "TRIFFID", "MI-GO", "LAB", "CLASSIC" ], - "clear_whitelist": false, - "whitelist": [ ] - }, + "overmap_feature_flag_settings": { "clear_blacklist": false, "blacklist": [ ], "clear_whitelist": false, "whitelist": [ "EXOPLANET" ] }, "default_oter": [ "open_air", "open_air", @@ -49,7 +44,7 @@ "base_wind": 9.0, "base_wind_distrib_peaks": 80, "base_wind_season_variation": 50, - "weather_types": [ "clear", "sunny", "cloudy", "afs_whiteout", "afs_thunder", "afs_lightning", "afs_flurries", "afs_snowing" ] + "weather_white_list": [ "clear", "sunny", "cloudy", "afs_whiteout", "afs_thunder", "afs_lightning", "afs_flurries", "afs_snowing" ] }, "region_terrain_and_furniture": { "terrain": { diff --git a/data/Mainline_mods/Mods/aftershock_exoplanet/setting_blacklists/location_blacklist.json b/data/Mainline_mods/Mods/aftershock_exoplanet/setting_blacklists/location_blacklist.json index 460dc48d1..d5c563868 100644 --- a/data/Mainline_mods/Mods/aftershock_exoplanet/setting_blacklists/location_blacklist.json +++ b/data/Mainline_mods/Mods/aftershock_exoplanet/setting_blacklists/location_blacklist.json @@ -1,17 +1,4 @@ [ - { - "//": "mostly removes areas with their own storylines, static NPCs, and the like. some will be readded with time", - "type": "overmap_special", - "id": "Necropolis", - "overmaps": [ ], - "occurrences": [ 0, 0 ] - }, - { - "type": "overmap_special", - "id": "St_Johns_farm", - "overmaps": [ ], - "occurrences": [ 0, 0 ] - }, { "type": "overmap_special", "id": "Strangle Temple", diff --git a/data/Mainline_mods/Mods/aftershock_exoplanet/setting_blacklists/scenario_blacklist.json b/data/Mainline_mods/Mods/aftershock_exoplanet/setting_blacklists/scenario_blacklist.json index b1ffc6dd0..7bffee834 100644 --- a/data/Mainline_mods/Mods/aftershock_exoplanet/setting_blacklists/scenario_blacklist.json +++ b/data/Mainline_mods/Mods/aftershock_exoplanet/setting_blacklists/scenario_blacklist.json @@ -2,6 +2,6 @@ { "type": "SCENARIO_BLACKLIST", "subtype": "whitelist", - "scenarios": [ "escape_pod" ] + "scenarios": [ "escape_pod", "crashing_ship" ] } ] diff --git a/data/Mainline_mods/Mods/aftershock_exoplanet/weather_type.json b/data/Mainline_mods/Mods/aftershock_exoplanet/weather_type.json index 0a08fd344..59760e1a9 100644 --- a/data/Mainline_mods/Mods/aftershock_exoplanet/weather_type.json +++ b/data/Mainline_mods/Mods/aftershock_exoplanet/weather_type.json @@ -13,18 +13,13 @@ "dangerous": false, "precip": "light", "rains": true, - "acidic": false, "tiles_animation": "weather_snowflake", "weather_animation": { "factor": 0.01, "color": "white", "sym": "." }, "sound_category": "flurries", "sun_multiplier": 0.3, "required_weathers": [ "cloudy" ], - "condition": { - "or": [ - { "compare_int": [ { "weather": "humidity" }, ">=", { "const": 97 } ] }, - { "compare_int": [ { "weather": "pressure" }, "<", { "const": 1000 } ] } - ] - } + "priority": 30, + "condition": { "or": [ { "math": [ "weather('humidity')", ">=", "97" ] }, { "math": [ "weather('pressure')", "<", "1000" ] } ] } }, { "id": "afs_whiteout", @@ -40,13 +35,13 @@ "dangerous": false, "precip": "heavy", "rains": true, - "acidic": false, "tiles_animation": "weather_snowflake", "weather_animation": { "factor": 0.01, "color": "white", "sym": "*" }, "sound_category": "snowstorm", "sun_multiplier": 0.15, "required_weathers": [ "cloudy", "afs_flurries" ], - "condition": { "and": [ "is_day", { "compare_int": [ { "weather": "windpower" }, ">=", { "const": 20 } ] } ] } + "priority": 40, + "condition": { "and": [ "is_day", { "math": [ "weather('windpower')", ">=", "20" ] } ] } }, { "id": "afs_snowing", @@ -62,18 +57,13 @@ "dangerous": false, "precip": "heavy", "rains": true, - "acidic": false, "tiles_animation": "weather_snowflake", "weather_animation": { "factor": 0.02, "color": "white", "sym": "*" }, "sound_category": "snow", "sun_multiplier": 0.2, "required_weathers": [ "afs_flurries", "afs_whiteout" ], - "condition": { - "or": [ - { "compare_int": [ { "weather": "humidity" }, ">=", { "const": 98 } ] }, - { "compare_int": [ { "weather": "pressure" }, "<", { "const": 993 } ] } - ] - } + "priority": 50, + "condition": { "or": [ { "math": [ "weather('humidity')", ">=", "98" ] }, { "math": [ "weather('pressure')", "<", "993" ] } ] } }, { "id": "afs_thunder", @@ -89,13 +79,13 @@ "dangerous": false, "precip": "heavy", "rains": true, - "acidic": false, "tiles_animation": "weather_snowflake", "weather_animation": { "factor": 0.02, "color": "white", "sym": "*" }, "sound_category": "snowstorm", "sun_multiplier": 0.01, "required_weathers": [ "afs_snowing" ], - "condition": { "compare_int": [ { "weather": "pressure" }, "<", { "const": 990 } ] } + "priority": 60, + "condition": { "math": [ "weather('pressure')", "<", "990" ] } }, { "id": "afs_lightning", @@ -111,12 +101,12 @@ "dangerous": false, "precip": "heavy", "rains": true, - "acidic": false, "tiles_animation": "weather_snowflake", "weather_animation": { "factor": 0.04, "color": "white", "sym": "*" }, "sound_category": "snowstorm", "sun_multiplier": 0.01, "required_weathers": [ "afs_thunder" ], - "condition": { "compare_int": [ { "weather": "pressure" }, "<", { "const": 980 } ] } + "priority": 70, + "condition": { "math": [ "weather('pressure')", "<", "980" ] } } ] diff --git a/data/Mainline_mods/Mods/alt_map_key/overmap_terrain.json b/data/Mainline_mods/Mods/alt_map_key/overmap_terrain.json index 37f986c5f..2f259c73e 100644 --- a/data/Mainline_mods/Mods/alt_map_key/overmap_terrain.json +++ b/data/Mainline_mods/Mods/alt_map_key/overmap_terrain.json @@ -71,22 +71,6 @@ "sym": "#", "color": "green" }, - { - "type": "overmap_terrain", - "id": "hiway_ns", - "copy-from": "hiway_ns", - "name": "highway", - "sym": "H", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "hiway_ew", - "copy-from": "hiway_ew", - "name": "highway", - "sym": "=", - "color": "dark_gray" - }, { "type": "overmap_terrain", "id": "road", @@ -208,12 +192,46 @@ }, { "type": "overmap_terrain", - "id": "park", + "id": [ + "park", + "park_roof", + "park_2", + "park_3", + "park_4", + "park_5", + "park_5_roof", + "park_6", + "park_7", + "park_7_roof", + "dog_park", + "volleyball_court", + "tennis_court", + "baskeball_court", + "playground", + "playground_roof", + "playground_1" + ], "copy-from": "park", "name": "park", "sym": "p", "color": "blue" }, + { + "type": "overmap_terrain", + "id": "cs_private_park", + "copy-from": "cs_private_park", + "name": "private park", + "sym": "p", + "color": "blue" + }, + { + "type": "overmap_terrain", + "id": [ "paintball_field", "paintball_field_1" ], + "copy-from": "paintball_field", + "name": "paintball field", + "sym": "P", + "color": "blue" + }, { "type": "overmap_terrain", "id": "pool", @@ -320,7 +338,7 @@ }, { "type": "overmap_terrain", - "id": "s_pharm", + "id": [ "s_pharm", "s_pharm_1" ], "copy-from": "s_pharm", "name": "pharmacy", "sym": "p", @@ -328,7 +346,7 @@ }, { "type": "overmap_terrain", - "id": "office_doctor", + "id": [ "office_doctor", "office_doctor_1", "office_doctor_2" ], "copy-from": "office_doctor", "name": "doctor's office", "sym": "d", @@ -528,7 +546,7 @@ }, { "type": "overmap_terrain", - "id": "s_grocery", + "id": [ "s_grocery", "s_grocery_1" ], "copy-from": "s_grocery", "name": "grocery store", "sym": "g", @@ -536,7 +554,7 @@ }, { "type": "overmap_terrain", - "id": "s_hardware", + "id": [ "s_hardware", "s_hardware_1", "s_hardware_2", "s_hardware_3" ], "copy-from": "s_hardware", "name": "hardware store", "sym": "h", @@ -544,7 +562,7 @@ }, { "type": "overmap_terrain", - "id": "s_electronics", + "id": [ "s_electronics", "s_electronics_1", "s_electronicstore" ], "copy-from": "s_electronics", "name": "electronics store", "sym": "e", @@ -568,7 +586,18 @@ }, { "type": "overmap_terrain", - "id": "s_gun", + "id": [ + "s_gun", + "s_gun_looted", + "s_gun_1", + "s_gun_2", + "s_gun_3", + "s_gun_3_looted", + "s_gun_4", + "s_gun_4_looted", + "s_gunstore", + "s_gunstore_looted" + ], "copy-from": "s_gun", "name": "gun store", "sym": "g", @@ -576,7 +605,7 @@ }, { "type": "overmap_terrain", - "id": "s_clothes", + "id": [ "s_clothes", "s_clothes_1", "s_clothes_2", "s_clothes_3", "s_clothes_4", "s_clothes_5", "s_clothes_6" ], "copy-from": "s_clothes", "name": "clothing store", "sym": "c", @@ -584,7 +613,7 @@ }, { "type": "overmap_terrain", - "id": "s_library", + "id": [ "s_library", "s_library_1", "s_library_2", "s_library_3" ], "copy-from": "s_library", "name": "library", "sym": "l", @@ -592,7 +621,7 @@ }, { "type": "overmap_terrain", - "id": "s_bookstore", + "id": [ "s_bookstore", "s_bookstore_1", "s_bookstore_2" ], "copy-from": "s_bookstore", "name": "bookstore", "sym": "b", @@ -600,7 +629,7 @@ }, { "type": "overmap_terrain", - "id": "s_restaurant", + "id": [ "s_restaurant", "s_restaurant_1", "s_restaurant_2", "s_restaurant_3" ], "copy-from": "s_restaurant", "name": "restaurant", "sym": "r", @@ -608,7 +637,7 @@ }, { "type": "overmap_terrain", - "id": "s_restaurant_fast", + "id": [ "s_restaurant_fast", "s_restaurant_fast_1" ], "copy-from": "s_restaurant_fast", "name": "fast food restaurant", "sym": "f", @@ -616,7 +645,15 @@ }, { "type": "overmap_terrain", - "id": "s_restaurant_coffee", + "id": "s_diner", + "name": "diner", + "copy-from": "s_diner", + "sym": "d", + "color": "green" + }, + { + "type": "overmap_terrain", + "id": [ "s_restaurant_coffee", "s_restaurant_coffee_1", "s_restaurant_coffee_2" ], "copy-from": "s_restaurant_coffee", "name": "coffee shop", "sym": "c", @@ -624,7 +661,7 @@ }, { "type": "overmap_terrain", - "id": "s_teashop", + "id": [ "s_teashop", "s_teashop_1" ], "copy-from": "s_teashop", "name": "teashop", "sym": "t", @@ -632,7 +669,7 @@ }, { "type": "overmap_terrain", - "id": "bar", + "id": [ "bar", "bar_1" ], "copy-from": "bar", "name": "bar", "sym": "b", @@ -640,7 +677,7 @@ }, { "type": "overmap_terrain", - "id": "s_pizza_parlor", + "id": [ "s_pizza_parlor", "s_pizza_parlor_1" ], "copy-from": "s_pizza_parlor", "name": "pizza parlor", "sym": "p", @@ -768,7 +805,23 @@ }, { "type": "overmap_terrain", - "id": "bank", + "id": [ "town_hall_0_0_0", "town_hall_1_0_0", "town_hall_0_1_0", "town_hall_1_1_0" ], + "copy-from": "town_hall_0_0_0", + "name": "town hall", + "sym": "t", + "color": "yellow" + }, + { + "type": "overmap_terrain", + "id": [ "town_hall_0_0_1", "town_hall_1_0_1", "town_hall_0_1_1", "town_hall_1_1_1" ], + "copy-from": "town_hall_0_0_1", + "name": "town hall", + "sym": "t", + "color": "yellow" + }, + { + "type": "overmap_terrain", + "id": [ "bank", "bank_1" ], "copy-from": "bank", "name": "bank", "sym": "b", @@ -776,7 +829,7 @@ }, { "type": "overmap_terrain", - "id": "pawn", + "id": [ "pawn", "pawn_1", "pawn_pf", "pawn_pf_under" ], "copy-from": "pawn", "name": "pawn shop", "sym": "p", @@ -784,7 +837,7 @@ }, { "type": "overmap_terrain", - "id": "mil_surplus", + "id": [ "mil_surplus", "mil_surplus_1", "mil_surplus_2" ], "copy-from": "mil_surplus", "name": { "str": "mil. surplus", "//NOLINT(cata-text-style)": "not a period" }, "sym": "m", @@ -800,7 +853,7 @@ }, { "type": "overmap_terrain", - "id": "abstorefront", + "id": [ "abstorefront", "abstorefront_1", "abstorefront_2" ], "copy-from": "abstorefront", "name": "abandoned storefront", "sym": "a", @@ -1362,35 +1415,143 @@ }, { "type": "overmap_terrain", - "id": "motel_entrance", - "copy-from": "motel_entrance", + "abstract": "generic_motel", + "copy-from": "generic_motel", "name": "motel", - "sym": "M", + "sym": "m", "color": "i_light_green" }, + { + "type": "overmap_terrain", + "id": "motel_entrance", + "copy-from": "generic_motel", + "sym": "M" + }, { "type": "overmap_terrain", "id": "motel_1", - "copy-from": "motel_1", - "name": "motel", - "sym": "m", - "color": "i_light_green" + "copy-from": "generic_motel" }, { "type": "overmap_terrain", "id": "motel_2", - "copy-from": "motel_2", - "name": "motel", - "sym": "m", - "color": "i_light_green" + "copy-from": "generic_motel" }, { "type": "overmap_terrain", "id": "motel_3", - "copy-from": "motel_3", - "name": "motel", - "sym": "m", - "color": "i_light_green" + "copy-from": "generic_motel" + }, + { + "type": "overmap_terrain", + "id": "motel_twd_1", + "copy-from": "generic_motel", + "sym": "M" + }, + { + "type": "overmap_terrain", + "id": "motel_entrance_no_sidewalk", + "copy-from": "generic_motel", + "sym": "M" + }, + { + "type": "overmap_terrain", + "id": "motel_twd_2", + "copy-from": "generic_motel" + }, + { + "type": "overmap_terrain", + "id": "motel_twd_1_f1", + "copy-from": "generic_motel" + }, + { + "type": "overmap_terrain", + "id": "motel_1_no_sidewalk", + "copy-from": "generic_motel" + }, + { + "type": "overmap_terrain", + "id": "motel_2_no_sidewalk", + "copy-from": "generic_motel" + }, + { + "type": "overmap_terrain", + "id": "motel_3_no_sidewalk", + "copy-from": "generic_motel" + }, + { + "type": "overmap_terrain", + "id": "2fmotel_entrance_f2", + "copy-from": "generic_motel" + }, + { + "type": "overmap_terrain", + "id": "2fmotel_1_f2", + "copy-from": "generic_motel" + }, + { + "type": "overmap_terrain", + "id": "2fmotel_2_f2", + "copy-from": "generic_motel" + }, + { + "type": "overmap_terrain", + "id": "2fmotel_3_f2", + "copy-from": "generic_motel" + }, + { + "type": "overmap_terrain", + "id": "motel_twd_2_f1", + "copy-from": "generic_motel", + "name": "motel roof" + }, + { + "type": "overmap_terrain", + "id": "motel_twd_1_f2", + "copy-from": "generic_motel", + "name": "motel roof" + }, + { + "type": "overmap_terrain", + "id": "motel_entrance_roof", + "copy-from": "generic_motel", + "name": "motel roof" + }, + { + "type": "overmap_terrain", + "id": "motel_1_roof", + "copy-from": "generic_motel", + "name": "motel roof" + }, + { + "type": "overmap_terrain", + "id": "motel_2_roof", + "copy-from": "generic_motel", + "name": "motel roof" + }, + { + "type": "overmap_terrain", + "id": "motel_3_roof", + "copy-from": "generic_motel", + "name": "motel roof" + }, + { + "type": "overmap_terrain", + "id": "2fmotel_1_r", + "copy-from": "generic_motel", + "name": "motel roof" + }, + { + "type": "overmap_terrain", + "id": "2fmotel_2_r", + "copy-from": "generic_motel", + "name": "motel roof" + }, + { + "type": "overmap_terrain", + "id": "2fmotel_3_r", + "copy-from": "generic_motel", + "name": "motel roof" }, { "type": "overmap_terrain", @@ -1624,6 +1785,14 @@ "sym": "l", "color": "i_pink" }, + { + "type": "overmap_terrain", + "id": "microlab_generic_surface", + "copy-from": "microlab_generic_surface", + "name": "lab", + "sym": "L", + "color": "i_pink" + }, { "type": "overmap_terrain", "id": "central_lab_entrance", @@ -2463,2816 +2632,224 @@ "id": "mall_a_54", "copy-from": "mall_a_54", "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_55", - "copy-from": "mall_a_55", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_56", - "copy-from": "mall_a_56", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_57", - "copy-from": "mall_a_57", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_58", - "copy-from": "mall_a_58", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_59", - "copy-from": "mall_a_59", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_60", - "copy-from": "mall_a_60", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_61", - "copy-from": "mall_a_61", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_62", - "copy-from": "mall_a_62", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_63", - "copy-from": "mall_a_63", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_64", - "copy-from": "mall_a_64", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_65", - "copy-from": "mall_a_65", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_66", - "copy-from": "mall_a_66", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_67", - "copy-from": "mall_a_67", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_68", - "copy-from": "mall_a_68", - "name": "mall - entrance", - "sym": "M", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_69", - "copy-from": "mall_a_69", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_70", - "copy-from": "mall_a_70", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_71", - "copy-from": "mall_a_71", - "name": "mall", - "sym": "m", - "color": "i_magenta" - }, - { - "type": "overmap_terrain", - "id": "mall_a_72", - "copy-from": "mall_a_72", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_73", - "copy-from": "mall_a_73", - "name": "road", - "sym": "└", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_74", - "copy-from": "mall_a_74", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_75", - "copy-from": "mall_a_75", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_76", - "copy-from": "mall_a_76", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_77", - "copy-from": "mall_a_77", - "name": "road", - "sym": "┬", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_78", - "copy-from": "mall_a_78", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_79", - "copy-from": "mall_a_79", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_80", - "copy-from": "mall_a_80", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "mall_a_81", - "copy-from": "mall_a_81", - "name": "road", - "sym": "┘", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_1", - "copy-from": "necropolis_a_1", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_2", - "copy-from": "necropolis_a_2", - "name": "house", - "sym": "v", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_3", - "copy-from": "necropolis_a_3", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_4", - "copy-from": "necropolis_a_4", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_5", - "copy-from": "necropolis_a_5", - "name": "abandoned store", - "sym": "a", - "color": "blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_6", - "copy-from": "necropolis_a_6", - "name": "road", - "color": "dark_gray", - "sym": "│" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_7", - "copy-from": "necropolis_a_7", - "name": "pump station", - "sym": "p", - "color": "i_yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_8", - "copy-from": "necropolis_a_8", - "name": "pump station", - "sym": "p", - "color": "i_yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_9", - "copy-from": "necropolis_a_9", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_10", - "copy-from": "necropolis_a_10", - "name": "house", - "sym": ">", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_11", - "copy-from": "necropolis_a_11", - "name": "road", - "color": "dark_gray", - "sym": "│" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_12", - "copy-from": "necropolis_a_12", - "name": "gardening store", - "sym": "g", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_13", - "copy-from": "necropolis_a_13", - "name": "salon", - "sym": "s", - "color": "blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_14", - "copy-from": "necropolis_a_14", - "name": "crater", - "sym": "*", - "color": "pink" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_15", - "copy-from": "necropolis_a_15", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_16", - "copy-from": "necropolis_a_16", - "name": "police station", - "sym": "p", - "color": "i_red" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_17", - "copy-from": "necropolis_a_17", - "name": "police station", - "sym": "p", - "color": "i_red" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_18", - "copy-from": "necropolis_a_18", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_19", - "copy-from": "necropolis_a_19", - "name": "parking lot", - "sym": "p", - "color": "light_blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_20", - "copy-from": "necropolis_a_20", - "name": "road", - "sym": "└", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_21", - "copy-from": "necropolis_a_21", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_22", - "copy-from": "necropolis_a_22", - "name": "road", - "sym": "┬", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_23", - "copy-from": "necropolis_a_23", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_24", - "copy-from": "necropolis_a_24", - "name": "road", - "sym": "┴", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_25", - "copy-from": "necropolis_a_25", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_26", - "copy-from": "necropolis_a_26", - "name": "road", - "sym": "┐", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_27", - "copy-from": "necropolis_a_27", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_28", - "copy-from": "necropolis_a_28", - "name": "grocery store", - "sym": "g", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_29", - "copy-from": "necropolis_a_29", - "name": "grocery store", - "sym": "g", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_30", - "copy-from": "necropolis_a_30", - "name": "park", - "sym": "p", - "color": "blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_31", - "copy-from": "necropolis_a_31", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_32", - "copy-from": "necropolis_a_32", - "name": "church", - "sym": "c", - "color": "i_white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_33", - "copy-from": "necropolis_a_33", - "name": "church", - "sym": "c", - "color": "i_white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_34", - "copy-from": "necropolis_a_34", - "name": "pawn shop", - "sym": "p", - "color": "magenta" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_35", - "copy-from": "necropolis_a_35", - "name": "crater", - "sym": "*", - "color": "pink" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_36", - "copy-from": "necropolis_a_36", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_37", - "copy-from": "necropolis_a_37", - "name": "furniture store", - "sym": "f", - "color": "blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_38", - "copy-from": "necropolis_a_38", - "name": "crater", - "sym": "*", - "color": "pink" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_39", - "copy-from": "necropolis_a_39", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_40", - "copy-from": "necropolis_a_40", - "name": "road", - "sym": "┴", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_41", - "copy-from": "necropolis_a_41", - "name": "road", - "sym": "┬", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_42", - "copy-from": "necropolis_a_42", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_43", - "copy-from": "necropolis_a_43", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_44", - "copy-from": "necropolis_a_44", - "name": "road", - "sym": "┤", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_45", - "copy-from": "necropolis_a_45", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_46", - "copy-from": "necropolis_a_46", - "name": "clothing store", - "sym": "c", - "color": "magenta" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_47", - "copy-from": "necropolis_a_47", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_48", - "copy-from": "necropolis_a_48", - "name": "motel", - "sym": "m", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_49", - "copy-from": "necropolis_a_49", - "name": "motel", - "sym": "m", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_50", - "copy-from": "necropolis_a_50", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_51", - "copy-from": "necropolis_a_51", - "name": "restaurant", - "sym": "r", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_52", - "copy-from": "necropolis_a_52", - "name": "bank", - "sym": "b", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_53", - "copy-from": "necropolis_a_53", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_54", - "copy-from": "necropolis_a_54", - "name": "house", - "sym": "<", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_55", - "copy-from": "necropolis_a_55", - "name": "motel", - "sym": "m", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_56", - "copy-from": "necropolis_a_56", - "name": "parking lot", - "sym": "p", - "color": "light_blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_57", - "copy-from": "necropolis_a_57", - "name": "motel", - "sym": "m", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_58", - "copy-from": "necropolis_a_58", - "name": "parking lot", - "sym": "p", - "color": "light_blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_59", - "copy-from": "necropolis_a_59", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_60", - "copy-from": "necropolis_a_60", - "name": "parking lot", - "sym": "p", - "color": "light_blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_61", - "copy-from": "necropolis_a_61", - "name": "parking lot", - "sym": "p", - "color": "light_blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_62", - "copy-from": "necropolis_a_62", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_63", - "copy-from": "necropolis_a_63", - "name": "house", - "sym": "<", - "color": "light_green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_64", - "copy-from": "necropolis_a_64", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_65", - "copy-from": "necropolis_a_65", - "name": "road", - "sym": "┴", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_66", - "copy-from": "necropolis_a_66", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_67", - "copy-from": "necropolis_a_67", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_68", - "copy-from": "necropolis_a_68", - "name": "road", - "sym": "┼", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_69", - "copy-from": "necropolis_a_69", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_70", - "copy-from": "necropolis_a_70", - "name": "road", - "sym": "─", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_71", - "copy-from": "necropolis_a_71", - "name": "road", - "sym": "┘", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_72", - "copy-from": "necropolis_a_72", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_73", - "copy-from": "necropolis_a_73", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_74", - "copy-from": "necropolis_a_74", - "name": "bar", - "sym": "b", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_75", - "copy-from": "necropolis_a_75", - "name": "fast food restaurant", - "sym": "f", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_76", - "copy-from": "necropolis_a_76", - "name": "parking lot", - "sym": "p", - "color": "light_blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_77", - "copy-from": "necropolis_a_77", - "name": "road", - "sym": "│", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_78", - "copy-from": "necropolis_a_78", - "name": "gas station", - "sym": "g", - "color": "light_blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_79", - "copy-from": "necropolis_a_79", - "name": "mechanic garage", - "sym": "m", - "color": "light_blue" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_80", - "copy-from": "necropolis_a_80", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_a_81", - "copy-from": "necropolis_a_81", - "name": "field", - "sym": ".", - "color": "brown" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_1", - "copy-from": "necropolis_b_1", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_2", - "copy-from": "necropolis_b_2", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_3", - "copy-from": "necropolis_b_3", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_4", - "copy-from": "necropolis_b_4", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_5", - "copy-from": "necropolis_b_5", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_6", - "copy-from": "necropolis_b_6", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_7", - "copy-from": "necropolis_b_7", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_8", - "copy-from": "necropolis_b_8", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_9", - "copy-from": "necropolis_b_9", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_10", - "copy-from": "necropolis_b_10", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_11", - "copy-from": "necropolis_b_11", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_12", - "copy-from": "necropolis_b_12", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_13", - "copy-from": "necropolis_b_13", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_14", - "copy-from": "necropolis_b_14", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_15", - "copy-from": "necropolis_b_15", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_16", - "copy-from": "necropolis_b_16", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_17", - "copy-from": "necropolis_b_17", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_18", - "copy-from": "necropolis_b_18", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_19", - "copy-from": "necropolis_b_19", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_20", - "copy-from": "necropolis_b_20", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_21", - "copy-from": "necropolis_b_21", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_22", - "copy-from": "necropolis_b_22", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_23", - "copy-from": "necropolis_b_23", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_24", - "copy-from": "necropolis_b_24", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_25", - "copy-from": "necropolis_b_25", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_26", - "copy-from": "necropolis_b_26", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_27", - "copy-from": "necropolis_b_27", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_28", - "copy-from": "necropolis_b_28", - "name": "cavern", - "sym": "0", - "color": "light_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_29", - "copy-from": "necropolis_b_29", - "name": "sewer?", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_30", - "copy-from": "necropolis_b_30", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_31", - "copy-from": "necropolis_b_31", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_32", - "copy-from": "necropolis_b_32", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_33", - "copy-from": "necropolis_b_33", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_34", - "copy-from": "necropolis_b_34", - "name": "basement", - "sym": "O", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_35", - "copy-from": "necropolis_b_35", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_36", - "copy-from": "necropolis_b_36", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_37", - "copy-from": "necropolis_b_37", - "name": "cavern", - "sym": "0", - "color": "light_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_38", - "copy-from": "necropolis_b_38", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_39", - "copy-from": "necropolis_b_39", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_40", - "copy-from": "necropolis_b_40", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_41", - "copy-from": "necropolis_b_41", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_42", - "copy-from": "necropolis_b_42", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_43", - "copy-from": "necropolis_b_43", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_44", - "copy-from": "necropolis_b_44", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_45", - "copy-from": "necropolis_b_45", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_46", - "copy-from": "necropolis_b_46", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_47", - "copy-from": "necropolis_b_47", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_48", - "copy-from": "necropolis_b_48", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_49", - "copy-from": "necropolis_b_49", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_50", - "copy-from": "necropolis_b_50", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_51", - "copy-from": "necropolis_b_51", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_52", - "copy-from": "necropolis_b_52", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_53", - "copy-from": "necropolis_b_53", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_54", - "copy-from": "necropolis_b_54", - "name": "basement", - "sym": "O", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_55", - "copy-from": "necropolis_b_55", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_56", - "copy-from": "necropolis_b_56", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_57", - "copy-from": "necropolis_b_57", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_58", - "copy-from": "necropolis_b_58", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_59", - "copy-from": "necropolis_b_59", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_60", - "copy-from": "necropolis_b_60", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_61", - "copy-from": "necropolis_b_61", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_62", - "copy-from": "necropolis_b_62", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_63", - "copy-from": "necropolis_b_63", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_64", - "copy-from": "necropolis_b_64", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_65", - "copy-from": "necropolis_b_65", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_66", - "copy-from": "necropolis_b_66", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_67", - "copy-from": "necropolis_b_67", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_68", - "copy-from": "necropolis_b_68", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_69", - "copy-from": "necropolis_b_69", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_70", - "copy-from": "necropolis_b_70", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_71", - "copy-from": "necropolis_b_71", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_72", - "copy-from": "necropolis_b_72", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_73", - "copy-from": "necropolis_b_73", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_74", - "copy-from": "necropolis_b_74", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_75", - "copy-from": "necropolis_b_75", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_76", - "copy-from": "necropolis_b_76", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_77", - "copy-from": "necropolis_b_77", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_78", - "copy-from": "necropolis_b_78", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_79", - "copy-from": "necropolis_b_79", - "name": "sewer", - "sym": "┼", - "color": "green" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_80", - "copy-from": "necropolis_b_80", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_b_81", - "copy-from": "necropolis_b_81", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_1", - "copy-from": "necropolis_c_1", - "name": "Vault - Barracks", - "sym": "B", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_2", - "copy-from": "necropolis_c_2", - "name": "Vault - Armory", - "sym": "A", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_3", - "copy-from": "necropolis_c_3", - "name": "Vault - Barracks", - "sym": "B", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_4", - "copy-from": "necropolis_c_4", - "name": "Vault - Barracks", - "sym": "B", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_5", - "copy-from": "necropolis_c_5", - "name": "Vault - Hospital", - "sym": "H", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_6", - "copy-from": "necropolis_c_6", - "name": "Vault - Hospital", - "sym": "H", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_7", - "copy-from": "necropolis_c_7", - "name": "Vault - Hospital", - "sym": "H", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_8", - "copy-from": "necropolis_c_8", - "name": "Vault - Hospital", - "sym": "H", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_9", - "copy-from": "necropolis_c_9", - "name": "Vault - Jail", - "sym": "J", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_10", - "copy-from": "necropolis_c_10", - "name": "Vault - Barracks", - "sym": "B", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_11", - "copy-from": "necropolis_c_11", - "name": "Vault - Barracks", - "sym": "B", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_12", - "copy-from": "necropolis_c_12", - "name": "Vault - Barracks", - "sym": "B", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_13", - "copy-from": "necropolis_c_13", - "name": "Vault - Offices", - "sym": "O", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_14", - "copy-from": "necropolis_c_14", - "name": "Vault - Offices", - "sym": "O", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_15", - "copy-from": "necropolis_c_15", - "name": "Vault - Hospital", - "sym": "H", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_16", - "copy-from": "necropolis_c_16", - "name": "Vault - Hospital", - "sym": "H", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_17", - "copy-from": "necropolis_c_17", - "name": "Vault - Police Station", - "sym": "P", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_18", - "copy-from": "necropolis_c_18", - "name": "Vault - Police Station", - "sym": "P", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_19", - "copy-from": "necropolis_c_19", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_20", - "copy-from": "necropolis_c_20", - "name": "Vault - Entrance", - "sym": "E", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_21", - "copy-from": "necropolis_c_21", - "name": "Vault - Utilities", - "sym": "U", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_22", - "copy-from": "necropolis_c_22", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_23", - "copy-from": "necropolis_c_23", - "name": "Vault - Communications", - "sym": "C", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_24", - "copy-from": "necropolis_c_24", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_25", - "copy-from": "necropolis_c_25", - "name": "Vault - Courthouse", - "sym": "C", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_26", - "copy-from": "necropolis_c_26", - "name": "Vault - Police Station", - "sym": "P", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_27", - "copy-from": "necropolis_c_27", - "name": "Vault - Police Station", - "sym": "P", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_28", - "copy-from": "necropolis_c_28", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_29", - "copy-from": "necropolis_c_29", - "name": "Vault - Entrance", - "sym": "E", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_30", - "copy-from": "necropolis_c_30", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_31", - "copy-from": "necropolis_c_31", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_32", - "copy-from": "necropolis_c_32", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_33", - "copy-from": "necropolis_c_33", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_34", - "copy-from": "necropolis_c_34", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_35", - "copy-from": "necropolis_c_35", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_36", - "copy-from": "necropolis_c_36", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_37", - "copy-from": "necropolis_c_37", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_38", - "copy-from": "necropolis_c_38", - "name": "Vault - Motor Pool", - "sym": "M", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_39", - "copy-from": "necropolis_c_39", - "name": "Vault - Motor Pool", - "sym": "M", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_40", - "copy-from": "necropolis_c_40", - "name": "Vault - Visitor Center", - "sym": "V", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_41", - "copy-from": "necropolis_c_41", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_42", - "copy-from": "necropolis_c_42", - "name": "Vault - Control", - "sym": "X", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_43", - "copy-from": "necropolis_c_43", - "name": "Vault - Control", - "sym": "X", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_44", - "copy-from": "necropolis_c_44", - "name": "Vault - Control", - "sym": "X", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_45", - "copy-from": "necropolis_c_45", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_46", - "copy-from": "necropolis_c_46", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_47", - "copy-from": "necropolis_c_47", - "name": "Vault - Motor Pool", - "sym": "M", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_48", - "copy-from": "necropolis_c_48", - "name": "Vault - Motor Pool", - "sym": "M", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_49", - "copy-from": "necropolis_c_49", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_50", - "copy-from": "necropolis_c_50", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_51", - "copy-from": "necropolis_c_51", - "name": "Vault - Cafeteria", - "sym": "C", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_52", - "copy-from": "necropolis_c_52", - "name": "Vault - Cafeteria", - "sym": "C", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_53", - "copy-from": "necropolis_c_53", - "name": "Vault - Cafeteria", - "sym": "C", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_54", - "copy-from": "necropolis_c_54", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_55", - "copy-from": "necropolis_c_55", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_56", - "copy-from": "necropolis_c_56", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_57", - "copy-from": "necropolis_c_57", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_58", - "copy-from": "necropolis_c_58", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_59", - "copy-from": "necropolis_c_59", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_60", - "copy-from": "necropolis_c_60", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_61", - "copy-from": "necropolis_c_61", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_62", - "copy-from": "necropolis_c_62", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_63", - "copy-from": "necropolis_c_63", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_64", - "copy-from": "necropolis_c_64", - "name": "Vault - School", - "sym": "S", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_65", - "copy-from": "necropolis_c_65", - "name": "Vault - School", - "sym": "S", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_66", - "copy-from": "necropolis_c_66", - "name": "Vault - School", - "sym": "S", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_67", - "copy-from": "necropolis_c_67", - "name": "Vault - School", - "sym": "S", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_68", - "copy-from": "necropolis_c_68", - "name": "Vault - Labs", - "sym": "L", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_69", - "copy-from": "necropolis_c_69", - "name": "Vault - Labs", - "sym": "L", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_70", - "copy-from": "necropolis_c_70", - "name": "Vault - Labs", - "sym": "L", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_71", - "copy-from": "necropolis_c_71", - "name": "Vault - Labs", - "sym": "L", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_72", - "copy-from": "necropolis_c_72", - "name": "Vault - Labs", - "sym": "L", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_73", - "copy-from": "necropolis_c_73", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_74", - "copy-from": "necropolis_c_74", - "name": "Vault - School", - "sym": "S", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_75", - "copy-from": "necropolis_c_75", - "name": "Vault - School", - "sym": "S", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_76", - "copy-from": "necropolis_c_76", - "name": "Vault - School", - "sym": "S", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_77", - "copy-from": "necropolis_c_77", - "name": "Vault - School", - "sym": "S", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_78", - "copy-from": "necropolis_c_78", - "name": "Vault - School", - "sym": "S", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_79", - "copy-from": "necropolis_c_79", - "name": "Vault - School", - "sym": "S", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_80", - "copy-from": "necropolis_c_80", - "name": "Vault - Labs", - "sym": "L", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_c_81", - "copy-from": "necropolis_c_81", - "name": "Vault - Labs", - "sym": "L", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_1", - "copy-from": "necropolis_d_1", - "name": "Vault - Robotics Bay", - "sym": "R", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_2", - "copy-from": "necropolis_d_2", - "name": "Vault - Robotics Bay", - "sym": "R", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_3", - "copy-from": "necropolis_d_3", - "name": "Vault - Slum Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_4", - "copy-from": "necropolis_d_4", - "name": "Vault - Slum Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_5", - "copy-from": "necropolis_d_5", - "name": "Vault - Slum Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_6", - "copy-from": "necropolis_d_6", - "name": "Vault - Hospital", - "sym": "H", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_7", - "copy-from": "necropolis_d_7", - "name": "Vault - Hospital", - "sym": "H", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_8", - "copy-from": "necropolis_d_8", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_9", - "copy-from": "necropolis_d_9", - "name": "Vault - Suites", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_10", - "copy-from": "necropolis_d_10", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_11", - "copy-from": "necropolis_d_11", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_12", - "copy-from": "necropolis_d_12", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_13", - "copy-from": "necropolis_d_13", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_14", - "copy-from": "necropolis_d_14", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_15", - "copy-from": "necropolis_d_15", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_16", - "copy-from": "necropolis_d_16", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_17", - "copy-from": "necropolis_d_17", - "name": "Vault - Suites", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_18", - "copy-from": "necropolis_d_18", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_19", - "copy-from": "necropolis_d_19", - "name": "Vault - Living Bays", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_20", - "copy-from": "necropolis_d_20", - "name": "Vault - Living Bays", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_21", - "copy-from": "necropolis_d_21", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_22", - "copy-from": "necropolis_d_22", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_23", - "copy-from": "necropolis_d_23", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_24", - "copy-from": "necropolis_d_24", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_25", - "copy-from": "necropolis_d_25", - "name": "Vault - Living Bays", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_26", - "copy-from": "necropolis_d_26", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_27", - "copy-from": "necropolis_d_27", - "name": "Vault - Transition Bay", - "sym": "T", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_28", - "copy-from": "necropolis_d_28", - "name": "Vault - Living Bays", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_29", - "copy-from": "necropolis_d_29", - "name": "Vault - Living Bays", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_30", - "copy-from": "necropolis_d_30", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_31", - "copy-from": "necropolis_d_31", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_32", - "copy-from": "necropolis_d_32", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_33", - "copy-from": "necropolis_d_33", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_34", - "copy-from": "necropolis_d_34", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_35", - "copy-from": "necropolis_d_35", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_36", - "copy-from": "necropolis_d_36", - "name": "Vault - Transition Bay", - "sym": "T", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_37", - "copy-from": "necropolis_d_37", - "name": "solid rock", - "sym": "%", - "color": "dark_gray" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_38", - "copy-from": "necropolis_d_38", - "name": { "str": "Vault - Maint. Bay", "//NOLINT(cata-text-style)": "not a period" }, - "sym": "M", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_39", - "copy-from": "necropolis_d_39", - "name": { "str": "Vault - Maint. Bay", "//NOLINT(cata-text-style)": "not a period" }, - "sym": "M", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_40", - "copy-from": "necropolis_d_40", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_41", - "copy-from": "necropolis_d_41", - "name": "Vault - Quartermasters", - "sym": "Q", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_42", - "copy-from": "necropolis_d_42", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_43", - "copy-from": "necropolis_d_43", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_44", - "copy-from": "necropolis_d_44", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_45", - "copy-from": "necropolis_d_45", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_46", - "copy-from": "necropolis_d_46", - "name": "Vault - Living Bays", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_47", - "copy-from": "necropolis_d_47", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_48", - "copy-from": "necropolis_d_48", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_49", - "copy-from": "necropolis_d_49", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_50", - "copy-from": "necropolis_d_50", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_51", - "copy-from": "necropolis_d_51", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_52", - "copy-from": "necropolis_d_52", - "name": "Vault - Kitchen", - "sym": "K", - "color": "yellow" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_53", - "copy-from": "necropolis_d_53", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" - }, - { - "type": "overmap_terrain", - "id": "necropolis_d_54", - "copy-from": "necropolis_d_54", - "name": "Vault - Slum Housing", - "sym": "h", - "color": "yellow" + "sym": "│", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_55", - "copy-from": "necropolis_d_55", - "name": "Vault - Living Bays", - "sym": "h", - "color": "yellow" + "id": "mall_a_55", + "copy-from": "mall_a_55", + "name": "road", + "sym": "│", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_56", - "copy-from": "necropolis_d_56", - "name": "Vault - Living Bays", - "sym": "h", - "color": "yellow" + "id": "mall_a_56", + "copy-from": "mall_a_56", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_57", - "copy-from": "necropolis_d_57", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" + "id": "mall_a_57", + "copy-from": "mall_a_57", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_58", - "copy-from": "necropolis_d_58", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" + "id": "mall_a_58", + "copy-from": "mall_a_58", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_59", - "copy-from": "necropolis_d_59", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" + "id": "mall_a_59", + "copy-from": "mall_a_59", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_60", - "copy-from": "necropolis_d_60", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" + "id": "mall_a_60", + "copy-from": "mall_a_60", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_61", - "copy-from": "necropolis_d_61", - "name": "Vault - Conference Room", - "sym": "C", - "color": "yellow" + "id": "mall_a_61", + "copy-from": "mall_a_61", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_62", - "copy-from": "necropolis_d_62", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" + "id": "mall_a_62", + "copy-from": "mall_a_62", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_63", - "copy-from": "necropolis_d_63", - "name": "Vault - Slum Housing", - "sym": "h", - "color": "yellow" + "id": "mall_a_63", + "copy-from": "mall_a_63", + "name": "road", + "sym": "│", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_64", - "copy-from": "necropolis_d_64", - "name": "Vault - Living Bays", - "sym": "h", - "color": "yellow" + "id": "mall_a_64", + "copy-from": "mall_a_64", + "name": "road", + "sym": "│", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_65", - "copy-from": "necropolis_d_65", - "name": "Vault - Living Bays", - "sym": "h", - "color": "yellow" + "id": "mall_a_65", + "copy-from": "mall_a_65", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_66", - "copy-from": "necropolis_d_66", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" + "id": "mall_a_66", + "copy-from": "mall_a_66", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_67", - "copy-from": "necropolis_d_67", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" + "id": "mall_a_67", + "copy-from": "mall_a_67", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_68", - "copy-from": "necropolis_d_68", - "name": "Vault - Housing", - "sym": "h", - "color": "yellow" + "id": "mall_a_68", + "copy-from": "mall_a_68", + "name": "mall - entrance", + "sym": "M", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_69", - "copy-from": "necropolis_d_69", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" + "id": "mall_a_69", + "copy-from": "mall_a_69", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_70", - "copy-from": "necropolis_d_70", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" + "id": "mall_a_70", + "copy-from": "mall_a_70", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_71", - "copy-from": "necropolis_d_71", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" + "id": "mall_a_71", + "copy-from": "mall_a_71", + "name": "mall", + "sym": "m", + "color": "i_magenta" }, { "type": "overmap_terrain", - "id": "necropolis_d_72", - "copy-from": "necropolis_d_72", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" + "id": "mall_a_72", + "copy-from": "mall_a_72", + "name": "road", + "sym": "│", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_73", - "copy-from": "necropolis_d_73", - "name": "solid rock", - "sym": "%", + "id": "mall_a_73", + "copy-from": "mall_a_73", + "name": "road", + "sym": "└", "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_74", - "copy-from": "necropolis_d_74", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" + "id": "mall_a_74", + "copy-from": "mall_a_74", + "name": "road", + "sym": "─", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_75", - "copy-from": "necropolis_d_75", - "name": "Vault - Library", - "sym": "L", - "color": "yellow" + "id": "mall_a_75", + "copy-from": "mall_a_75", + "name": "road", + "sym": "─", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_76", - "copy-from": "necropolis_d_76", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" + "id": "mall_a_76", + "copy-from": "mall_a_76", + "name": "road", + "sym": "─", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_77", - "copy-from": "necropolis_d_77", - "name": "Vault - Light Industry", - "sym": "I", - "color": "yellow" + "id": "mall_a_77", + "copy-from": "mall_a_77", + "name": "road", + "sym": "┬", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_78", - "copy-from": "necropolis_d_78", - "name": "Vault - Light Industry", - "sym": "I", - "color": "yellow" + "id": "mall_a_78", + "copy-from": "mall_a_78", + "name": "road", + "sym": "─", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_79", - "copy-from": "necropolis_d_79", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" + "id": "mall_a_79", + "copy-from": "mall_a_79", + "name": "road", + "sym": "─", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_80", - "copy-from": "necropolis_d_80", - "name": "Vault - Gym", - "sym": "G", - "color": "yellow" + "id": "mall_a_80", + "copy-from": "mall_a_80", + "name": "road", + "sym": "─", + "color": "dark_gray" }, { "type": "overmap_terrain", - "id": "necropolis_d_81", - "copy-from": "necropolis_d_81", - "name": "Vault - Passage", - "sym": "┼", - "color": "white" + "id": "mall_a_81", + "copy-from": "mall_a_81", + "name": "road", + "sym": "┘", + "color": "dark_gray" }, { "type": "overmap_terrain", @@ -5570,6 +3147,14 @@ "sym": "w", "color": "light_cyan" }, + { + "type": "overmap_terrain", + "id": [ "abandonedwarehouse", "abandonedwarehouse_1", "abandonedwarehouse_2", "abandonedwarehouse_3", "abandonedwarehouse_4" ], + "copy-from": "abandonedwarehouse", + "name": "abandoned warehouse", + "sym": "w", + "color": "blue" + }, { "type": "overmap_terrain", "id": "ranch_camp_1", @@ -6595,13 +4180,21 @@ "color": "green" }, { - "id": "dispensary", + "id": [ "dispensary", "dispensary_1", "dispensary_2" ], "copy-from": "dispensary", "type": "overmap_terrain", "name": "dispensary", "sym": "d", "color": "blue" }, + { + "type": "overmap_terrain", + "id": "headshop", + "copy-from": "headshop", + "name": "head shop", + "sym": "h", + "color": "blue" + }, { "id": "skate_park", "copy-from": "skate_park", @@ -6634,6 +4227,14 @@ "sym": "a", "color": "white" }, + { + "type": "overmap_terrain", + "id": "cs_public_art_piece", + "copy-from": "cs_public_art_piece", + "name": "public art piece", + "sym": "a", + "color": "white" + }, { "id": "derelict_property", "copy-from": "derelict_property", @@ -6675,12 +4276,12 @@ "color": "i_brown" }, { - "id": "pavilion", + "id": [ "pavilion", "pavilion_1" ], "copy-from": "pavilion", "type": "overmap_terrain", "name": "pavilion", - "sym": "A", - "color": "i_green" + "sym": "p", + "color": "blue" }, { "id": "fishing_pond_0_0", @@ -6723,7 +4324,7 @@ "color": "brown" }, { - "id": "small_storage_units", + "id": [ "small_storage_units", "small_storage_units_1" ], "copy-from": "small_storage_units", "type": "overmap_terrain", "name": "small storage units", @@ -6740,275 +4341,275 @@ }, { "type": "overmap_terrain", - "abstract": "generic_mansion_no_sidewalk", - "copy-from": "generic_mansion_no_sidewalk", + "abstract": "generic_mansion", + "copy-from": "generic_mansion", "name": "mansion", "sym": "m", "color": "i_light_green" }, { "type": "overmap_terrain", - "abstract": "generic_mansion", - "copy-from": "generic_mansion_no_sidewalk" + "abstract": "generic_mansion_entrance", + "copy-from": "generic_mansion" }, { "id": "mansion_c1", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c2", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c3", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c4", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c5", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c1u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c2u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c3u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c4u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c5u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c1d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c2d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c3d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c4d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_c5d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+1", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+2", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+3", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+4", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+1u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+2u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+3u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+4u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+1d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+2d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_+4d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t1", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t2", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t4", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t5", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t6", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t7", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t1u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t2u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t4u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t5u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t6u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t7u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t1d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t2d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t4d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t5d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t6d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_t7d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk" + "copy-from": "generic_mansion" }, { "id": "mansion_e1", "type": "overmap_terrain", - "copy-from": "generic_mansion", + "copy-from": "generic_mansion_entrance", "sym": "M" }, { "id": "mansion_e2", "type": "overmap_terrain", - "copy-from": "generic_mansion", + "copy-from": "generic_mansion_entrance", "sym": "M" }, { "id": "mansion_e1u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion", "sym": "M" }, { "id": "mansion_e2u", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion", "sym": "M" }, { "id": "mansion_e1d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion", "sym": "M" }, { "id": "mansion_e2d", "type": "overmap_terrain", - "copy-from": "generic_mansion_no_sidewalk", + "copy-from": "generic_mansion", "sym": "M" }, { - "id": "fire_station", + "id": [ "fire_station", "fire_station_1" ], "copy-from": "fire_station", "type": "overmap_terrain", "name": "fire station", @@ -7048,7 +4649,7 @@ "color": "brown" }, { - "id": "gym_fitness", + "id": [ "gym_fitness", "gym_fitness_1", "gym_fitness_2ndFloor_1" ], "copy-from": "gym_fitness", "type": "overmap_terrain", "name": "fitness gym", @@ -7096,7 +4697,7 @@ "color": "magenta" }, { - "id": "dojo", + "id": [ "dojo", "dojo_1" ], "copy-from": "dojo", "type": "overmap_terrain", "name": "dojo", @@ -7104,13 +4705,21 @@ "color": "blue" }, { - "id": "s_laundromat", + "id": [ "s_laundromat", "s_laundromat_1" ], "copy-from": "s_laundromat", "type": "overmap_terrain", "name": "laundromat", "sym": "l", "color": "blue" }, + { + "type": "overmap_terrain", + "id": [ "s_cosmetic" ], + "copy-from": "s_cosmetic", + "name": "cosmetics store", + "sym": "c", + "color": "blue" + }, { "id": "museum", "copy-from": "museum", @@ -7153,7 +4762,7 @@ }, { "type": "overmap_terrain", - "id": "construction_site", + "id": [ "construction_site", "house_vacant", "house_vacant1", "house_vacant2", "house_vacant3" ], "copy-from": "construction_site", "name": "construction site", "sym": "c", @@ -7161,7 +4770,7 @@ }, { "type": "overmap_terrain", - "id": "post_office", + "id": [ "post_office", "post_office_1" ], "copy-from": "post_office", "name": "post office", "sym": "p", @@ -7169,7 +4778,7 @@ }, { "type": "overmap_terrain", - "id": "candy_shop", + "id": [ "candy_shop", "candy_shop_1" ], "copy-from": "candy_shop", "name": "candy shop", "sym": "c", @@ -7217,7 +4826,7 @@ }, { "type": "overmap_terrain", - "id": "s_butcher", + "id": [ "s_butcher", "s_butcher_1", "s_butcher_2" ], "copy-from": "s_butcher", "name": "butcher shop", "sym": "b", @@ -7225,7 +4834,7 @@ }, { "type": "overmap_terrain", - "id": "dollarstore", + "id": [ "dollarstore", "dollarstore_1" ], "copy-from": "dollarstore", "name": "dollar store", "sym": "d", @@ -7593,36 +5202,12 @@ }, { "type": "overmap_terrain", - "id": "s_petstore", + "id": [ "s_petstore", "s_petstore_1", "s_petstore_2" ], "copy-from": "s_petstore", "name": "pet supply store", "sym": "p", "color": "magenta" }, - { - "type": "overmap_terrain", - "id": "trailerparksmall0", - "copy-from": "trailerparksmall0", - "name": "trailer park", - "sym": "t", - "color": "i_light_green" - }, - { - "type": "overmap_terrain", - "id": "trailerparksmall1", - "copy-from": "trailerparksmall1", - "name": "trailer park", - "sym": "t", - "color": "i_light_green" - }, - { - "type": "overmap_terrain", - "id": "trailerparksmall2", - "copy-from": "trailerparksmall2", - "name": "trailer park", - "sym": "t", - "color": "i_light_green" - }, { "type": "overmap_terrain", "id": "large_storage_units_3", @@ -7759,6 +5344,22 @@ "sym": "r", "color": "light_gray" }, + { + "type": "overmap_terrain", + "id": "smallscrapyard", + "copy-from": "smallscrapyard", + "name": "small scrap yard", + "sym": "s", + "color": "light_gray" + }, + { + "type": "overmap_terrain", + "id": [ "smallscrapyard_ocu" ], + "copy-from": "smallscrapyard_ocu", + "name": "scrap yard", + "sym": "s", + "color": "light_gray" + }, { "type": "overmap_terrain", "id": "music_venue", @@ -7769,12 +5370,20 @@ }, { "type": "overmap_terrain", - "id": "s_bike_shop", + "id": [ "s_bike_shop", "s_bike_shop_1" ], "copy-from": "s_bike_shop", "name": "bike shop", "color": "light_blue", "sym": "b" }, + { + "type": "overmap_terrain", + "id": [ "cs_car_dealership", "s_cardealer" ], + "copy-from": "cs_car_dealership", + "name": "car dealership", + "sym": "c", + "color": "light_blue" + }, { "type": "overmap_terrain", "id": "sugar_house", @@ -8047,6 +5656,14 @@ "sym": "r", "color": "i_red" }, + { + "type": "overmap_terrain", + "id": [ "gunshow_0", "gunshow_1" ], + "copy-from": "gunshow_0", + "name": "gun show", + "sym": "g", + "color": "red" + }, { "type": "overmap_terrain", "id": "cabin_aban1", diff --git a/data/Mainline_mods/Mods/deadly_bites/effect_on_conditions.json b/data/Mainline_mods/Mods/deadly_bites/effect_on_conditions.json index 1e7f666e2..84e9703b2 100644 --- a/data/Mainline_mods/Mods/deadly_bites/effect_on_conditions.json +++ b/data/Mainline_mods/Mods/deadly_bites/effect_on_conditions.json @@ -33,7 +33,7 @@ "condition": { "and": [ { "u_has_effect": "zombie_virus", "intensity": 2 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "zombie_virus" }, "=", { "const": 2 } ] } + { "compare_num": [ { "u_val": "effect_intensity", "effect": "zombie_virus" }, "=", { "const": 2 } ] } ] }, "effect": [ @@ -49,7 +49,7 @@ "condition": { "and": [ { "u_has_effect": "zombie_virus", "intensity": 3 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "zombie_virus" }, "=", { "const": 3 } ] } + { "compare_num": [ { "u_val": "effect_intensity", "effect": "zombie_virus" }, "=", { "const": 3 } ] } ] }, "effect": [ @@ -65,7 +65,7 @@ "condition": { "and": [ { "u_has_effect": "zombie_virus", "intensity": 4 }, - { "compare_int": [ { "u_val": "effect_intensity", "effect": "zombie_virus" }, "=", { "const": 4 } ] } + { "compare_num": [ { "u_val": "effect_intensity", "effect": "zombie_virus" }, "=", { "const": 4 } ] } ] }, "effect": [ diff --git a/data/Mainline_mods/Mods/deadly_bites/itemgroups.json b/data/Mainline_mods/Mods/deadly_bites/itemgroups.json index 60be299fb..fda32a291 100644 --- a/data/Mainline_mods/Mods/deadly_bites/itemgroups.json +++ b/data/Mainline_mods/Mods/deadly_bites/itemgroups.json @@ -1,55 +1,25 @@ [ - { - "id": "SUS_bathroom_medicine", - "type": "item_group", - "subtype": "collection", - "copy-from": "SUS_bathroom_medicine", - "extend": { - "entries": [ { "item": "antivirals", "prob": 5, "charges-min": 1, "charges-max": 10, "container-item": "bottle_plastic_small" } ] - } - }, { "id": "drugs_rare", "type": "item_group", "copy-from": "drugs_rare", "extend": { "items": [ [ "antivirals", 100 ] ] } }, - { - "type": "item_group", - "id": "harddrugs", - "copy-from": "harddrugs", - "extend": { "items": [ { "item": "antivirals", "prob": 10, "charges": [ 1, 5 ] } ] } - }, - { - "type": "item_group", - "id": "softdrugs", - "copy-from": "softdrugs", - "extend": { "items": [ { "item": "antivirals", "prob": 5, "charges": [ 1, 5 ] } ] } - }, - { - "type": "item_group", - "id": "stash_drugs", - "copy-from": "stash_drugs", - "extend": { "items": [ { "item": "antivirals", "prob": 1, "charges": [ 1, 5 ] } ] } - }, - { - "type": "item_group", - "id": "rare", - "subtype": "distribution", - "copy-from": "rare", - "extend": { "entries": [ { "item": "antivirals", "prob": 10, "charges": [ 1, 10 ] } ] } - }, - { - "type": "item_group", - "id": "science", - "copy-from": "science", - "extend": { "items": [ { "item": "antivirals", "prob": 2, "charges": [ 1, 10 ] } ] } - }, { "id": "vet_hardrug", "type": "item_group", "copy-from": "vet_hardrug", - "extend": { "items": [ { "item": "antivirals", "prob": 20, "charges": [ 1, 10 ] } ] } + "extend": { + "items": [ + { + "item": "antivirals", + "prob": 20, + "count": [ 1, 10 ], + "container-item": "null", + "entry-wrapper": "bottle_plastic_pill_prescription" + } + ] + } }, { "type": "item_group", @@ -63,29 +33,10 @@ "copy-from": "hospital_bed", "extend": { "items": [ [ "antivirals", 6 ] ] } }, - { - "type": "item_group", - "id": "survivorzed_extra", - "copy-from": "survivorzed_extra", - "extend": { "items": [ { "item": "antivirals", "prob": 1, "charges": [ 0, 10 ] } ] } - }, { "id": "virology_lab_fridge", "type": "item_group", "copy-from": "virology_lab_fridge", "extend": { "items": [ [ "antivirals", 40 ] ] } - }, - { - "type": "item_group", - "id": "behindcounter", - "subtype": "distribution", - "copy-from": "behindcounter", - "extend": { "entries": [ { "item": "antivirals", "prob": 5, "charges": [ 1, 5 ] } ] } - }, - { - "id": "drugs_misc", - "type": "item_group", - "copy-from": "drugs_misc", - "extend": { "items": [ [ "antivirals", 100 ] ] } } ] diff --git a/data/Mainline_mods/Mods/deadly_bites/items.json b/data/Mainline_mods/Mods/deadly_bites/items.json index 237ac1d6d..71c5ae4c7 100644 --- a/data/Mainline_mods/Mods/deadly_bites/items.json +++ b/data/Mainline_mods/Mods/deadly_bites/items.json @@ -6,11 +6,9 @@ "name": { "str_sp": "antivirals" }, "description": "An anti-viral medication that inhibits the development of certain viruses. One dose lasts 16 hours. Could this, by some miracle, work against whatever the zombies are carrying?", "weight": "1 g", - "volume": "250 ml", - "price": 9000, - "price_postapoc": 40000, - "charges": 15, - "stack_size": 200, + "volume": "1 ml", + "price": "45 cent", + "price_postapoc": "2 USD", "symbol": "!", "color": "white", "container": "bottle_plastic_pill_prescription", diff --git a/data/Mainline_mods/Mods/desert_region/desert_insect_spider.json b/data/Mainline_mods/Mods/desert_region/desert_insect_spider.json index 2f3b9fa30..eec1c7b3b 100644 --- a/data/Mainline_mods/Mods/desert_region/desert_insect_spider.json +++ b/data/Mainline_mods/Mods/desert_region/desert_insect_spider.json @@ -21,12 +21,11 @@ "melee_dice_sides": 8, "melee_damage": [ { "damage_type": "cut", "amount": 6 } ], "dodge": 1, - "armor_bash": 4, - "armor_cut": 10, "vision_day": 5, "vision_night": 5, "harvest": "arachnid", "special_attacks": [ { "id": "impale" } ], - "flags": [ "SEES", "SMELLS", "HEARS", "BADVENOM", "PARALYZEVENOM", "GRABS" ] + "flags": [ "SEES", "SMELLS", "HEARS", "BADVENOM", "PARALYZEVENOM", "GRABS" ], + "armor": { "bash": 4, "cut": 10 } } ] diff --git a/data/Mainline_mods/Mods/desert_region/desert_mammal.json b/data/Mainline_mods/Mods/desert_region/desert_mammal.json index c4c9827bc..a01135d75 100644 --- a/data/Mainline_mods/Mods/desert_region/desert_mammal.json +++ b/data/Mainline_mods/Mods/desert_region/desert_mammal.json @@ -21,8 +21,6 @@ "melee_dice": 4, "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], - "armor_bash": 6, - "armor_cut": 3, "path_settings": { "max_dist": 20 }, "anger_triggers": [ "FRIEND_ATTACKED", "FRIEND_DIED", "HURT", "MATING_SEASON" ], "baby_flags": [ "SPRING" ], @@ -42,6 +40,7 @@ "GROUP_MORALE", "GOODHEARING", "SWARMS" - ] + ], + "armor": { "bash": 6, "cut": 3 } } ] diff --git a/data/Mainline_mods/Mods/desert_region/desert_monsters.json b/data/Mainline_mods/Mods/desert_region/desert_monsters.json index 49b8af027..4a0fc874b 100644 --- a/data/Mainline_mods/Mods/desert_region/desert_monsters.json +++ b/data/Mainline_mods/Mods/desert_region/desert_monsters.json @@ -21,8 +21,6 @@ "melee_dice_sides": 6, "melee_damage": [ { "damage_type": "cut", "amount": 3 } ], "dodge": 2, - "armor_bash": 3, - "armor_cut": 1, "vision_day": 30, "vision_night": 5, "harvest": "zombie_leather", @@ -33,7 +31,8 @@ ], "anger_triggers": [ "STALK", "PLAYER_WEAK", "PLAYER_CLOSE" ], "fear_triggers": [ "FIRE" ], - "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "BASHES", "POISON", "NO_BREATHE", "REVIVES", "FILTHY", "SWIMS" ] + "flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "BASHES", "POISON", "NO_BREATHE", "REVIVES", "FILTHY", "SWIMS" ], + "armor": { "bash": 3, "cut": 1 } }, { "id": "mon_bushelephant_fungal", @@ -50,12 +49,11 @@ "melee_skill": 4, "melee_dice": 2, "melee_dice_sides": 3, - "armor_bash": 3, - "armor_cut": 1, "death_function": { "effect": { "id": "death_fungus", "hit_self": true } }, "special_attacks": [ [ "FUNGUS", 200 ], [ "SMASH", 15 ], [ "FUNGUS_BRISTLE", 20 ], [ "FUNGUS_BIG_BLOSSOM", 30 ] ], "extend": { "flags": [ "POISON", "NO_BREATHE" ] }, - "delete": { "flags": [ "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "GROUP_MORALE", "GOODHEARING", "SWARMS" ] } + "delete": { "flags": [ "HEARS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "GROUP_MORALE", "GOODHEARING", "SWARMS" ] }, + "armor": { "bash": 3, "cut": 1 } }, { "id": "mon_zandcrawler", diff --git a/data/Mainline_mods/Mods/desert_region/desert_overmap_connections.json b/data/Mainline_mods/Mods/desert_region/desert_overmap_connections.json index 8316874b5..4c507d989 100644 --- a/data/Mainline_mods/Mods/desert_region/desert_overmap_connections.json +++ b/data/Mainline_mods/Mods/desert_region/desert_overmap_connections.json @@ -8,8 +8,7 @@ { "terrain": "road", "locations": [ "forest_trail" ], "basic_cost": 25 }, { "terrain": "road", "locations": [ "swamp" ], "basic_cost": 40 }, { "terrain": "road_nesw_manhole", "locations": [ ] }, - { "terrain": "road", "locations": [ "mesa" ], "basic_cost": 120 }, - { "terrain": "bridge", "locations": [ "canyon" ], "basic_cost": 120 } + { "terrain": "bridge", "locations": [ "water" ], "basic_cost": 120 } ] } ] diff --git a/data/Mainline_mods/Mods/desert_region/desert_regional_map_settings.json b/data/Mainline_mods/Mods/desert_region/desert_regional_map_settings.json index 978a778c3..8da94f934 100644 --- a/data/Mainline_mods/Mods/desert_region/desert_regional_map_settings.json +++ b/data/Mainline_mods/Mods/desert_region/desert_regional_map_settings.json @@ -57,7 +57,7 @@ "f_region_water_plant": { "f_cattails": 15, "f_lilypad": 1, "f_lotus": 5 } } }, - "river_scale": 0.0, + "river_scale": 0.6, "field_coverage": { "percent_coverage": 0.45, "default_ter": "t_shrub_dead", @@ -78,7 +78,7 @@ "overmap_lake_settings": { "noise_threshold_lake": 0.4, "lake_size_min": 4, - "lake_depth": -4, + "lake_depth": 0, "shore_extendable_overmap_terrain": [ "forest", "forest_thick", "forest_water", "field" ], "shore_extendable_overmap_terrain_aliases": [ { "om_terrain": "island_forest", "om_terrain_match_type": "TYPE", "alias": "forest" }, @@ -89,10 +89,10 @@ }, "overmap_ravine_settings": { "num_ravines": 0, "ravine_width": 3, "ravine_range": 15, "ravine_depth": -2 }, "overmap_forest_settings": { - "noise_threshold_forest": 0.4, + "noise_threshold_forest": 0.29, "noise_threshold_forest_thick": 0.5, - "noise_threshold_swamp_adjacent_water": 0.4, - "noise_threshold_swamp_isolated": 0.3, + "noise_threshold_swamp_adjacent_water": 1.0, + "noise_threshold_swamp_isolated": 1.0, "river_floodplain_buffer_distance_min": 3, "river_floodplain_buffer_distance_max": 15 }, @@ -192,17 +192,17 @@ } }, "forest_trail_settings": { - "chance": 100, + "chance": 2, "border_point_chance": 2, - "minimum_forest_size": 100000000, - "random_point_min": 4, - "random_point_max": 50, + "minimum_forest_size": 120, + "random_point_min": 1, + "random_point_max": 5, "random_point_size_scalar": 100, - "trailhead_chance": 100, + "trailhead_chance": 1, "trailhead_road_distance": 6, "trail_center_variance": 0, "trail_width_offset_min": 1, - "trail_width_offset_max": 3, + "trail_width_offset_max": 2, "clear_trail_terrain": false, "trail_terrain": { "t_railroad_rubble": 1 }, "trailheads": { "trailhead_basic": 1, "trailhead_outhouse": 1, "trailhead_shack": 1 } @@ -245,7 +245,6 @@ "mx_crater": 10, "mx_portal_in": 3, "mx_fallen_shed": 20, - "mx_shia": 1, "mx_jabberwock": 1, "mx_clay_deposit": 125, "mx_casings": 30, @@ -302,7 +301,8 @@ "mx_military": 50, "mx_science": 400, "mx_collegekids": 500, - "mx_roadblock": 1000, + "mx_roadblock": 830, + "mx_roadblock_mil": 170, "mx_bandits_block": 800, "mx_drugdeal": 300, "mx_supplydrop": 100, @@ -370,32 +370,7 @@ }, "river": { "chance": 3, "extras": { "mx_reed": 100 } }, "lake_shore": { "chance": 2, "extras": { "mx_reed": 100 } }, - "sewer": { - "chance": 1, - "extras": { - "mx_sewer_round": 40, - "mx_sewer_grid": 20, - "mx_sewer_grid2": 20, - "mx_sewer_mntE": 10, - "mx_sewer_mntW": 10, - "mx_sewer_mntN": 10, - "mx_sewer_mntS": 10, - "mx_sewer_grateE": 10, - "mx_sewer_grateW": 10, - "mx_sewer_grateN": 10, - "mx_sewer_grateS": 10, - "mx_sewer_pipesA": 30, - "mx_sewer_pipesB": 30, - "mx_sewer_pipesC": 30, - "mx_sewer_pipesD": 30, - "mx_sewer_pipesE": 30, - "mx_sewer_pipesF": 30, - "mx_sewer_pipesG": 30, - "mx_sewer_pipesH": 30, - "mx_sewer_pipesI": 30, - "mx_sewer_pipesJ": 30 - } - } + "sewer": { "chance": 80, "extras": { "mx_null": 100 } } }, "city": { "shop_radius": 30, @@ -404,8 +379,21 @@ "park_sigma": 80, "houses": { "2storyModern01": 5, + "2storyModern02": 50, + "2StoryModern03": 50, + "2StoryModern04": 50, + "bungalow01": 50, + "bungalow02": 50, + "bungalow03": 50, + "bungalow04": 50, + "bungalow05": 50, + "bungalow06": 50, + "bungalow07": 50, + "bungalow08": 50, "house_w_1": 50, "house_two_story_basement": 50, + "multi_unit_two_story_basement": 40, + "multi_unit_three_story_basement": 30, "house_crack1": 5, "house_crack2": 5, "house_crack3": 5, @@ -523,17 +511,17 @@ "urban_17_house_ranch": 50, "urban_18_victorian": 50, "emptyresidentiallot": 20, - "house_vacant": 20, - "house_vacant2": 20, + "house_vacant": 7, + "house_vacant1": 7, + "house_vacant2": 7, + "house_vacant3": 7, "apartments_con_new": 10, "apartments_mod_new": 10, "s_apt": 30, "s_apt_2": 30, "school": 15, "motel_city": 10, - "fishing_pond_city": 10, - "trailerpark_city": 15, - "railroad_city": 5 + "fishing_pond_city": 10 }, "parks": { "park": 50, @@ -556,7 +544,8 @@ "volleyball_court": 30, "tennis_court": 30, "baskeball_court": 30, - "skate_park": 30, + "skate_park_ramp": 20, + "skate_park": 20, "park_maze": 10, "park_maze_2": 10, "small_wooded_trail": 30, @@ -578,6 +567,7 @@ "stadium": 25, "stadium_football": 25, "cemetery_city": 50, + "public_pond_city": 50, "cemetery_religious_city": 25, "cs_private_park": 100, "cs_public_art_piece": 100, @@ -603,6 +593,7 @@ "s_gas_1": 500, "s_pharm": 300, "s_pharm_1": 300, + "s_cosmetic": 300, "s_grocery": 1500, "s_grocery_1": 1500, "s_hardware": 400, @@ -722,7 +713,7 @@ "art_gallery": 200, "small_storage_units": 150, "small_storage_units_1": 150, - "construction_site": 400, + "construction_site": 600, "post_office": 200, "post_office_1": 200, "candy_shop": 200, @@ -773,7 +764,8 @@ "public_works": 200, "office_tower": 150, "office_tower_2": 150, - "office_tower_large": 500, + "office_skyscraper": 300, + "office_tower_large": 300, "office_tower_hiddenlab": 50, "mall": 100, "home_improvement_superstore_new": 150, @@ -795,7 +787,9 @@ "cs_sex_shop": 100, "cs_tire_shop": 100, "homeless_shelter": 100, - "parking_garage": 200 + "parking_garage": 200, + "salon": 500, + "strip_mall": 750 } }, "weather": { @@ -813,20 +807,7 @@ "summer_humidity_manual_mod": 0, "autumn_humidity_manual_mod": 10, "winter_humidity_manual_mod": 15, - "weather_types": [ - "clear", - "sunny", - "cloudy", - "light_drizzle", - "drizzle", - "rain", - "thunder", - "lightning", - "early_dust_storm", - "dust_storm", - "early_portal_storm", - "portal_storm" - ] + "weather_black_list": [ "flurries", "snowing", "snowstorm" ] } } ] diff --git a/data/Mainline_mods/Mods/desert_region/desert_special_locations.json b/data/Mainline_mods/Mods/desert_region/desert_special_locations.json index f7adf087c..5f6435b44 100644 --- a/data/Mainline_mods/Mods/desert_region/desert_special_locations.json +++ b/data/Mainline_mods/Mods/desert_region/desert_special_locations.json @@ -2,17 +2,35 @@ { "type": "overmap_location", "id": "mesa", - "terrains": [ "mesa", "mesa_edge", "mesa_corner", "mesa_air", "mesa_air_1", "mesa_2way", "mesa_3way" ] + "terrains": [ + "mesa", + "mesa_edge_v1", + "mesa_corner_v1", + "mesa_2way_v1", + "mesa_3way_v1", + "mesa_edge_top_v1", + "mesa_corner_top_v1", + "mesa_2way_top_v1", + "mesa_3way_top_v1", + "mesa_edge_v2", + "mesa_corner_v2", + "mesa_2way_v2", + "mesa_3way_v2", + "mesa_edge_top_v2", + "mesa_corner_top_v2", + "mesa_2way_top_v2", + "mesa_3way_top_v2" + ] }, { "type": "overmap_location", "id": "land", - "terrains": [ "forest", "forest_thick", "forest_water", "field", "forest_trail", "desert" ] + "terrains": [ "forest", "forest_thick", "forest_water", "field", "forest_trail" ] }, { "type": "overmap_location", "id": "wilderness", - "terrains": [ "forest", "forest_thick", "field", "forest_trail", "desert" ] + "terrains": [ "forest", "forest_thick", "field", "forest_trail" ] }, { "type": "overmap_location", @@ -22,7 +40,32 @@ { "type": "overmap_location", "id": "canyon", - "terrains": [ "canyon_edge", "canyon_corner", "canyon_2way", "canyon_3way", "canyon_air", "canyon_air_surface" ] + "terrains": [ + "canyon_2way_v1", + "canyon_3way_v1", + "canyon_edge_v1", + "canyon_corner_v1", + "canyon_2way_v2", + "canyon_3way_v2", + "canyon_edge_v2", + "canyon_corner_v2", + "canyon_2way_ground_v1", + "canyon_3way_ground_v1", + "canyon_edge_ground_v1", + "canyon_corner_ground_v1", + "canyon_2way_ground_v2", + "canyon_3way_ground_v2", + "canyon_edge_ground_v2", + "canyon_corner_ground_v2", + "canyon_2way_v1_bottom", + "canyon_3way_v1_bottom", + "canyon_edge_v1_bottom", + "canyon_corner_v1_bottom", + "canyon_2way_v2_bottom", + "canyon_3way_v2_bottom", + "canyon_edge_v2_bottom", + "canyon_corner_v2_bottom" + ] }, { "type": "overmap_location", diff --git a/data/Mainline_mods/Mods/desert_region/furniture-and-terrain/desert_terrain.json b/data/Mainline_mods/Mods/desert_region/furniture-and-terrain/desert_terrain.json index ce0d65aa2..335725098 100644 --- a/data/Mainline_mods/Mods/desert_region/furniture-and-terrain/desert_terrain.json +++ b/data/Mainline_mods/Mods/desert_region/furniture-and-terrain/desert_terrain.json @@ -69,28 +69,19 @@ }, { "type": "terrain", - "id": "t_sandstone", - "name": "sandstone", - "description": "A wall of yellowish brown sandstone.", - "symbol": "#", - "color": "yellow", - "move_cost": 0, - "coverage": 100, - "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "MINEABLE", "BLOCK_WIND" ], - "roof": "t_searth", - "looks_like": "t_adobe_brick_wall", - "bash": { - "str_min": 100, - "str_max": 400, - "sound": "wham!", - "sound_fail": "whump!", - "ter_set": "t_searth", - "ter_set_bashed_from_above": "t_searth" - } + "id": "t_mudcrack", + "name": "mudcrack", + "description": "Large continuous cracks mark what once was a bottom of a body of water. With the proper tools, you could extract clay from here.", + "symbol": ".", + "looks_like": "t_dirt", + "color": "brown", + "move_cost": 2, + "flags": [ "TRANSPARENT", "DIGGABLE", "FLAT" ], + "bash": { "sound": "thump", "ter_set": "t_null", "str_min": 50, "str_max": 100, "str_min_supported": 100, "bash_below": true } }, { "type": "terrain", - "id": "t_sandstone_plateau", + "id": "t_sandstone", "name": "sandstone", "description": "A wall of yellowish brown sandstone.", "symbol": "#", @@ -98,7 +89,7 @@ "move_cost": 0, "coverage": 100, "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "MINEABLE", "BLOCK_WIND" ], - "roof": "t_sandstone", + "roof": "t_searth", "looks_like": "t_adobe_brick_wall", "bash": { "str_min": 100, diff --git a/data/Mainline_mods/Mods/desert_region/mapgen/earth.json b/data/Mainline_mods/Mods/desert_region/mapgen/earth.json index 180794b89..73c71e97c 100644 --- a/data/Mainline_mods/Mods/desert_region/mapgen/earth.json +++ b/data/Mainline_mods/Mods/desert_region/mapgen/earth.json @@ -1,576 +1,740 @@ [ { + "type": "mapgen", "method": "json", - "object": { - "rows": [ - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................", - "........................" - ], - "terrain": { ".": "t_sandstone" } - }, "om_terrain": "sandstone", + "weight": 100, + "object": { "fill_ter": "t_sandstone" } + }, + { "type": "mapgen", - "weight": 100 + "method": "json", + "om_terrain": "mesa", + "weight": 100, + "object": { "fill_ter": "t_sandstone" } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "mesa_edge_v1", "mesa_edge_v2" ] ], + "//": "Z = 0", "object": { - "predecessor_mapgen": "field", + "fallback_predecessor_mapgen": "field", "rows": [ - "##################### ", - " ########## ### ", - " #### ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " + "########################### ################", + " ################# ########## ", + " ########## #### ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "mesa_edge", - "type": "mapgen", - "weight": 100 + "terrain": { "#": "t_sandstone" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "mesa_edge_top_v1", "mesa_edge_top_v2" ] ], + "//": "Z = 2", "object": { "predecessor_mapgen": "field", "rows": [ - "########################", - " ######### ####### ", - " #### ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " + "########################### ################", + " ################# ########## ", + " ########## #### ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "mesa_edge", - "type": "mapgen", - "weight": 100 + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "#": "t_null", " ": "t_open_air" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "mesa_corner_v1", "mesa_corner_v2" ] ], + "//": "Z = 0", "object": { - "predecessor_mapgen": "field", + "fallback_predecessor_mapgen": "field", "rows": [ - " ###################### ", - " ################## ", - " ######### ", - " ### ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " + "################################################", + " #############################################", + " ################### #######################", + " ################ ######################", + " ############## #####################", + " ############ ####################", + " ########### ####################", + " ########## ###################", + " ########## #################", + " ######### ################", + " ######## ##############", + " ####### #############", + " ##### ############", + " #### ############", + " #### ###########", + " ### ##########", + " ### ##########", + " ### #########", + " ## ########", + " ## ######", + " ## #####", + " # ###", + " # ##", + " # ##" ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "mesa_edge", - "type": "mapgen", - "weight": 100 + "terrain": { "#": "t_sandstone" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "mesa_corner_top_v1", "mesa_corner_top_v2" ] ], + "//": "Z = 2", "object": { "predecessor_mapgen": "field", "rows": [ - " ########### #########", - " ###### #######", - " #####", - " ###", - " ###", - " ##", - " ##", - " #", - " #", - " #", - " #", - " ", - " ", - " #", - " #", - " ##", - " ##", - " ###", - " ###", - " ###", - " ##", - " ##", - " #", - " #" + "################################################", + " #############################################", + " ################### #######################", + " ################ ######################", + " ############## #####################", + " ############ ####################", + " ########### ####################", + " ########## ###################", + " ########## #################", + " ######### ################", + " ######## ##############", + " ####### #############", + " ##### ############", + " #### ############", + " #### ###########", + " ### ##########", + " ### ##########", + " ### #########", + " ## ########", + " ## ######", + " ## #####", + " # ###", + " # ##", + " # ##" ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "mesa_corner", - "type": "mapgen", - "weight": 100 + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "#": "t_null", " ": "t_open_air" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "mesa_2way_v1", "mesa_2way_v2" ] ], + "//": "Z = 0", "object": { - "predecessor_mapgen": "field", + "fallback_predecessor_mapgen": "field", "rows": [ - " #######################", - " #####################", - " ######### ######", - " ### ####", - " ###", - " ##", - " ##", - " ##", - " #", - " #", - " #", - " #", - " ", - " ", - " #", - " ##", - " ##", - " #", - " #", - " #", - " ##", - " ##", - " ##", - " #" + "# ## #", + "# ## #", + "## ### ##", + "## #### ##", + "## #### ###", + "### ##### ###", + "### ##### ###", + "#### ##### ####", + "#### ##### ####", + "#### ###### ####", + "#### ###### ####", + "#### ####### ####", + "### ######## ####", + "### ######## ###", + "### ######## ###", + "## ######## ###", + "## ######## ###", + "## ###### ###", + "## ###### ###", + "## ##### ##", + "## #### ##", + "# #### ##", + "# ## #", + "# ## #" ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "mesa_corner", - "type": "mapgen", - "weight": 100 + "terrain": { "#": "t_sandstone" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "mesa_2way_top_v1", "mesa_2way_top_v2" ] ], + "//": "Z = 2", "object": { "predecessor_mapgen": "field", "rows": [ - "# #", - "# #", - "## ##", - "## ##", - "## ##", - "### ###", - "### ###", - "#### ###", - "#### ###", - "#### ###", - "#### ###", - "#### ####", - "### ####", - "### ####", - "### ####", - "## ####", - "## ####", - "## ###", - "## ###", - "## ###", - "## ##", - "# ##", - "# #", - "# #" + "# ## #", + "# ## #", + "## ### ##", + "## #### ##", + "## #### ###", + "### ##### ###", + "### ##### ###", + "#### ##### ####", + "#### ##### ####", + "#### ###### ####", + "#### ###### ####", + "#### ####### ####", + "### ######## ####", + "### ######## ###", + "### ######## ###", + "## ######## ###", + "## ######## ###", + "## ###### ###", + "## ###### ###", + "## ##### ##", + "## #### ##", + "# #### ##", + "# ## #", + "# ## #" ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "mesa_2way", + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "#": "t_null", " ": "t_open_air" } + } + }, + { "type": "mapgen", - "weight": 100 + "method": "json", + "om_terrain": [ [ "mesa_3way_v1", "mesa_3way_v2" ] ], + "//": "Z = 0", + "object": { + "fallback_predecessor_mapgen": "field", + "rows": [ + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "########## ##################################", + "####### ################################", + "###### ################### ######", + "#### ################# ####", + "#### ############### ####", + "### ############## ###", + "### ############ ###", + "### ########## ###", + "## ####### ##", + "## ### ##", + "## ## ##" + ], + "terrain": { "#": "t_sandstone" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "mesa_3way_top_v1", "mesa_3way_top_v2" ] ], + "//": "Z = 2", "object": { "predecessor_mapgen": "field", "rows": [ - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "######### #########", - "###### #####", - "#### ###", - "#### ###", - "### ##", - "### ##", - "### ##", - "## #", - "## #", - "## #" + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "########## ##################################", + "####### ################################", + "###### ################### ######", + "#### ################# ####", + "#### ############### ####", + "### ############## ###", + "### ############ ###", + "### ########## ###", + "## ####### ##", + "## ### ##", + "## ## ##" ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "mesa_3way", - "type": "mapgen", - "weight": 100 + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "#": "t_null", " ": "t_open_air" } + } }, { - "method": "json", - "object": { "predecessor_mapgen": "open_air" }, - "om_terrain": "mesa_air", "type": "mapgen", - "weight": 100 + "method": "json", + "om_terrain": [ [ "canyon_edge_v1_bottom", "canyon_edge_v2_bottom" ] ], + "//": "Z = -2", + "object": { + "predecessor_mapgen": "field", + "rows": [ + " ##### ", + "### ################ ##", + "###### ###################### ######", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################" + ], + "terrain": { "#": "t_sandstone" } + } }, { - "method": "json", - "object": { "predecessor_mapgen": "open_air" }, - "om_terrain": "mesa_air_1", "type": "mapgen", - "weight": 100 + "method": "json", + "om_terrain": [ [ "canyon_edge_v1", "canyon_edge_v2" ] ], + "//": "Z = -1", + "object": { + "rows": [ + " ##### ", + "### ################ ##", + "###### ###################### ######", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################" + ], + "terrain": { "#": "t_sandstone", " ": "t_open_air" } + } }, { - "method": "json", - "object": { "predecessor_mapgen": "sandstone" }, - "om_terrain": "mesa", "type": "mapgen", - "weight": 100 + "method": "json", + "om_terrain": [ [ "canyon_edge_ground_v1", "canyon_edge_ground_v2" ] ], + "//": "Z = 0", + "object": { + "fallback_predecessor_mapgen": "field", + "rows": [ + " ##### ", + "### ################ ##", + "###### ###################### ######", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################", + "################################################" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "#": "t_null", " ": "t_open_air" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "canyon_corner_v1_bottom", "canyon_corner_v2_bottom" ] ], + "//": "Z = -2", "object": { "predecessor_mapgen": "field", "rows": [ - "# ##", - "#### ### #####", - "####### #############", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################" + " ", + "### ", + "##### # ", + "######## ## ", + "########## ### ", + "############ #### ", + "############# #### ", + "############## ##### ", + "############## ####### ", + "############### ######## ", + "################ ########## ", + "################# ########### ", + "################### ############ ", + "#################### ############ ", + "#################### ############# ", + "##################### ############## ", + "##################### ############## ", + "##################### ############### ", + "###################### ################ ", + "###################### ################## ", + "###################### ################### ", + "####################### ##################### ", + "####################### ###################### ", + "####################### ###################### " ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "canyon_edge", - "type": "mapgen", - "weight": 100 + "terrain": { "#": "t_sandstone" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "canyon_corner_v1", "canyon_corner_v2" ] ], + "//": "Z = -1", "object": { - "predecessor_mapgen": "field", "rows": [ - "## ##", - "##### #### ####", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################" + " ", + "### ", + "##### # ", + "######## ## ", + "########## ### ", + "############ #### ", + "############# #### ", + "############## ##### ", + "############## ####### ", + "############### ######## ", + "################ ########## ", + "################# ########### ", + "################### ############ ", + "#################### ############ ", + "#################### ############# ", + "##################### ############## ", + "##################### ############## ", + "##################### ############### ", + "###################### ################ ", + "###################### ################## ", + "###################### ################### ", + "####################### ##################### ", + "####################### ###################### ", + "####################### ###################### " ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "canyon_edge", - "type": "mapgen", - "weight": 100 + "terrain": { "#": "t_sandstone", " ": "t_open_air" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "canyon_corner_ground_v1", "canyon_corner_ground_v2" ] ], + "//": "Z = 0", "object": { - "predecessor_mapgen": "field", + "fallback_predecessor_mapgen": "field", "rows": [ - "# ###", - "##### ######", - "######## ##########", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################", - "########################" + " ", + "### ", + "##### # ", + "######## ## ", + "########## ### ", + "############ #### ", + "############# #### ", + "############## ##### ", + "############## ####### ", + "############### ######## ", + "################ ########## ", + "################# ########### ", + "################### ############ ", + "#################### ############ ", + "#################### ############# ", + "##################### ############## ", + "##################### ############## ", + "##################### ############### ", + "###################### ################ ", + "###################### ################## ", + "###################### ################### ", + "####################### ##################### ", + "####################### ###################### ", + "####################### ###################### " ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "canyon_edge", - "type": "mapgen", - "weight": 100 + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "#": "t_null", " ": "t_open_air" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "canyon_2way_v1_bottom", "canyon_2way_v2_bottom" ] ], + "//": "Z = -1", "object": { "predecessor_mapgen": "field", "rows": [ - " ", - "### ", - "##### #### ", - "######## ######### ", - "##################### ", - "###################### ", - "###################### ", - "####################### ", - "####################### ", - "####################### ", - "########################", - "########################", - "########################", - "####################### ", - "####################### ", - "###################### ", - "###################### ", - "####################### ", - "####################### ", - "####################### ", - "###################### ", - "###################### ", - "###################### ", - "###################### " + " ###################### ###################### ", + " ###################### ###################### ", + " #################### ##################### ", + " #################### #################### ", + " #################### ################### ", + " ################## ################### ", + " ################## ################### ", + " ################# ################## ", + " ################# ################## ", + " ################# ################# ", + " ################# ################# ", + " ################ ################# ", + " ################# ################ ", + " ################# ################# ", + " ################# ################# ", + " ################## ################# ", + " ################## ################# ", + " ################### ################## ", + " ################### ################## ", + " ################### #################### ", + " #################### #################### ", + " ##################### #################### ", + " ###################### ###################### ", + " ###################### ###################### " ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "canyon_corner", - "type": "mapgen", - "weight": 100 + "terrain": { "#": "t_sandstone" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "canyon_2way_v1", "canyon_2way_v2" ] ], + "//": "Z = -1", "object": { - "predecessor_mapgen": "field", "rows": [ - " ### ", - "#### ####### ", - "################### ", - "##################### ", - "##################### ", - "###################### ", - "###################### ", - "###################### ", - "####################### ", - "####################### ", - "####################### ", - "####################### ", - "####################### ", - "###################### ", - "###################### ", - "###################### ", - "###################### ", - "##################### ", - "##################### ", - "##################### ", - "###################### ", - "###################### ", - "####################### ", - "####################### " + " ###################### ###################### ", + " ###################### ###################### ", + " #################### ##################### ", + " #################### #################### ", + " #################### ################### ", + " ################## ################### ", + " ################## ################### ", + " ################# ################## ", + " ################# ################## ", + " ################# ################# ", + " ################# ################# ", + " ################ ################# ", + " ################# ################ ", + " ################# ################# ", + " ################# ################# ", + " ################## ################# ", + " ################## ################# ", + " ################### ################## ", + " ################### ################## ", + " ################### #################### ", + " #################### #################### ", + " ##################### #################### ", + " ###################### ###################### ", + " ###################### ###################### " ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "canyon_corner", - "type": "mapgen", - "weight": 100 + "terrain": { "#": "t_sandstone", " ": "t_open_air" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "canyon_2way_ground_v1", "canyon_2way_ground_v2" ] ], + "//": "Z = 0", "object": { - "predecessor_mapgen": "field", + "fallback_predecessor_mapgen": "field", "rows": [ - " ##################### ", - " #################### ", - " #################### ", - " #################### ", - " ################## ", - " ################## ", - " ################# ", - " ################# ", - " ################# ", - " ################ ", - " ################ ", - " ################ ", - " ################# ", - " ################# ", - " ################# ", - " ################# ", - " ################## ", - " ################## ", - " ################## ", - " ################### ", - " ################### ", - " ################### ", - " ##################### ", - " ##################### " + " ###################### ###################### ", + " ###################### ###################### ", + " #################### ##################### ", + " #################### #################### ", + " #################### ################### ", + " ################## ################### ", + " ################## ################### ", + " ################# ################## ", + " ################# ################## ", + " ################# ################# ", + " ################# ################# ", + " ################ ################# ", + " ################# ################ ", + " ################# ################# ", + " ################# ################# ", + " ################## ################# ", + " ################## ################# ", + " ################### ################## ", + " ################### ################## ", + " ################### #################### ", + " #################### #################### ", + " ##################### #################### ", + " ###################### ###################### ", + " ###################### ###################### " ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "canyon_2way", - "type": "mapgen", - "weight": 100 + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "#": "t_null", " ": "t_open_air" } + } }, { + "type": "mapgen", "method": "json", + "om_terrain": [ [ "canyon_3way_v1_bottom", "canyon_3way_v2_bottom" ] ], + "//": "Z = -2", "object": { "predecessor_mapgen": "field", "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ###### ", - " ############# ", - " ################# ", - " ################# ", - " ################### ", - " ################### ", - " ################### ", - " ##################### ", - " ##################### ", - " ##################### " + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " #### ", + " ######### ", + " ########### ###### ", + " ############# ########## ", + " ############## ########### ", + " ################ ############ ", + " ################# ############# ", + " ################## ############## ", + " #################### ################# ", + " ##################### #################### ", + " ##################### ##################### " ], - "terrain": { "#": "t_sandstone_plateau" } - }, - "om_terrain": "canyon_3way", - "type": "mapgen", - "weight": 100 + "terrain": { "#": "t_sandstone" } + } }, { - "method": "json", - "object": { "fill_ter": "t_open_air" }, - "om_terrain": "canyon_air", "type": "mapgen", - "weight": 100 + "method": "json", + "om_terrain": [ [ "canyon_3way_v1", "canyon_3way_v2" ] ], + "//": "Z = -1", + "object": { + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " #### ", + " ######### ", + " ########### ###### ", + " ############# ########## ", + " ############## ########### ", + " ################ ############ ", + " ################# ############# ", + " ################## ############## ", + " #################### ################# ", + " ##################### #################### ", + " ##################### ##################### " + ], + "terrain": { "#": "t_sandstone", " ": "t_open_air" } + } }, { - "method": "json", - "object": { "fill_ter": "t_open_air" }, - "om_terrain": "canyon_air_surface", "type": "mapgen", - "weight": 100 + "method": "json", + "om_terrain": [ [ "canyon_3way_ground_v1", "canyon_3way_ground_v2" ] ], + "//": "Z = 0", + "object": { + "fallback_predecessor_mapgen": "field", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " #### ", + " ######### ", + " ########### ###### ", + " ############# ########## ", + " ############## ########### ", + " ################ ############ ", + " ################# ############# ", + " ################## ############## ", + " #################### ################# ", + " ##################### #################### ", + " ##################### ##################### " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "#": "t_null", " ": "t_open_air" } + } } ] diff --git a/data/Mainline_mods/Mods/desert_region/mapgen/waterbody.json b/data/Mainline_mods/Mods/desert_region/mapgen/waterbody.json new file mode 100644 index 000000000..00e1dcbb2 --- /dev/null +++ b/data/Mainline_mods/Mods/desert_region/mapgen/waterbody.json @@ -0,0 +1,522 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + "lake_bed", + "lake_shore", + "river_center", + "river_nw", + "river_ne", + "river_sw", + "river_se", + "river", + "river_c_not_ne", + "river_c_not_nw", + "river_c_not_se", + "river_c_not_sw" + ], + "weight": 100000000000, + "object": { + "fill_ter": "t_mudcrack", + "place_nested": [ + { + "else_chunks": [ "shore_north_west" ], + "x": 0, + "y": 0, + "neighbors": { + "north_west": [ + "lake_bed", + "lake_shore", + "river_center", + "river_nw", + "river_ne", + "river_sw", + "river_se", + "river", + "river_c_not_ne", + "river_c_not_nw", + "river_c_not_se", + "river_c_not_sw", + "bridge", + "bridgehead_ground" + ] + } + }, + { + "else_chunks": [ "shore_north_east" ], + "x": 0, + "y": 0, + "neighbors": { + "north_east": [ + "lake_bed", + "lake_shore", + "river_center", + "river_nw", + "river_ne", + "river_sw", + "river_se", + "river", + "river_c_not_ne", + "river_c_not_nw", + "river_c_not_se", + "river_c_not_sw", + "bridge", + "bridgehead_ground" + ] + } + }, + { + "else_chunks": [ "shore_south_east" ], + "x": 0, + "y": 0, + "neighbors": { + "south_east": [ + "lake_bed", + "lake_shore", + "river_center", + "river_nw", + "river_ne", + "river_sw", + "river_se", + "river", + "river_c_not_ne", + "river_c_not_nw", + "river_c_not_se", + "river_c_not_sw", + "bridge", + "bridgehead_ground" + ] + } + }, + { + "else_chunks": [ "shore_south_west" ], + "x": 0, + "y": 0, + "neighbors": { + "south_west": [ + "lake_bed", + "lake_shore", + "river_center", + "river_nw", + "river_ne", + "river_sw", + "river_se", + "river", + "river_c_not_ne", + "river_c_not_nw", + "river_c_not_se", + "river_c_not_sw", + "bridge", + "bridgehead_ground" + ] + } + }, + { + "else_chunks": [ "shore_north" ], + "x": 0, + "y": 0, + "neighbors": { + "north": [ + "lake_bed", + "lake_shore", + "river_center", + "river_nw", + "river_ne", + "river_sw", + "river_se", + "river", + "river_c_not_ne", + "river_c_not_nw", + "river_c_not_se", + "river_c_not_sw", + "bridge", + "bridgehead_ground" + ] + } + }, + { + "else_chunks": [ "shore_east" ], + "x": 0, + "y": 0, + "neighbors": { + "east": [ + "lake_bed", + "lake_shore", + "river_center", + "river_nw", + "river_ne", + "river_sw", + "river_se", + "river", + "river_c_not_ne", + "river_c_not_nw", + "river_c_not_se", + "river_c_not_sw", + "bridge", + "bridgehead_ground" + ] + } + }, + { + "else_chunks": [ "shore_south" ], + "x": 0, + "y": 0, + "neighbors": { + "south": [ + "lake_bed", + "lake_shore", + "river_center", + "river_nw", + "river_ne", + "river_sw", + "river_se", + "river", + "river_c_not_ne", + "river_c_not_nw", + "river_c_not_se", + "river_c_not_sw", + "bridge", + "bridgehead_ground" + ] + } + }, + { + "else_chunks": [ "shore_west" ], + "x": 0, + "y": 0, + "neighbors": { + "west": [ + "lake_bed", + "lake_shore", + "river_center", + "river_nw", + "river_ne", + "river_sw", + "river_se", + "river", + "river_c_not_ne", + "river_c_not_nw", + "river_c_not_se", + "river_c_not_sw", + "bridge", + "bridgehead_ground" + ] + } + } + ] + } + }, + { + "type": "palette", + "id": "desert_shore_palette", + "terrain": { + "_": "t_region_groundcover", + ",": [ [ "t_region_groundcover", 5 ], [ "t_null", 3 ] ], + ".": [ "t_region_groundcover", [ "t_null", 5 ] ], + " ": "t_null" + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "shore_north", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "________________________", + "________________________", + "________________________", + "________________________", + ",,,,,,,,,,,,,,,,,,,,,,,,", + ",,,,,,,,,,,,,,,,,,,,,,,,", + "........................", + "........................", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "desert_shore_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "shore_east", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____", + " ..,,____" + ], + "palettes": [ "desert_shore_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "shore_south", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "........................", + "........................", + ",,,,,,,,,,,,,,,,,,,,,,,,", + ",,,,,,,,,,,,,,,,,,,,,,,,", + "________________________", + "________________________", + "________________________", + "________________________" + ], + "palettes": [ "desert_shore_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "shore_west", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. ", + "____,,.. " + ], + "palettes": [ "desert_shore_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "shore_north_west", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + "____,,.. ", + "___,,,.. ", + "___,,... ", + "_,,,,.. ", + ",,,,... ", + ",,.... ", + "..... ", + "... ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "desert_shore_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "shore_north_east", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + " ..,,____", + " ..,,,___", + " ...,,___", + " ..,,,,_", + " ...,,,,", + " ....,,", + " .....", + " ...", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "desert_shore_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "shore_south_east", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ...", + " .....", + " ....,,", + " ...,,,,", + " ..,,,,_", + " ...,,___", + " ..,,,___", + " ..,,____" + ], + "palettes": [ "desert_shore_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "shore_south_west", + "object": { + "mapgensize": [ 24, 24 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "... ", + "..... ", + ",,.... ", + ",,,,... ", + "_,,,,.. ", + "___,,... ", + "___,,,.. ", + "____,,.. " + ], + "palettes": [ "desert_shore_palette" ] + } + }, + { + "type": "palette", + "id": "bridge_ground_palette", + "terrain": { + ",": "t_region_soil", + "s": "t_mudcrack", + "~": "t_mudcrack", + ".": "t_pavement", + ":": "t_pavement_y", + "_": "t_sidewalk", + "=": "t_guardrail", + "u": "t_ramp_up_low", + "U": "t_ramp_up_high", + "d": "t_ramp_down_high", + "D": "t_ramp_down_low", + "W": "t_sidewalk_ramp_down_high", + ">": "t_sidewalk_ramp_down_low", + "<": "t_sidewalk_ramp_up_high", + "w": "t_sidewalk_ramp_up_low", + "#": "t_concrete_wall" + } + } +] diff --git a/data/Mainline_mods/Mods/desert_region/modinfo.json b/data/Mainline_mods/Mods/desert_region/modinfo.json index 47474f442..d6f674de9 100644 --- a/data/Mainline_mods/Mods/desert_region/modinfo.json +++ b/data/Mainline_mods/Mods/desert_region/modinfo.json @@ -9,6 +9,6 @@ "category": "content", "dependencies": [ "dda" ], "version": "0.1", - "obsolete": false + "obsolete": true } ] diff --git a/data/Mainline_mods/Mods/desert_region/overmap/desert_overmap_terrain.json b/data/Mainline_mods/Mods/desert_region/overmap/desert_overmap_terrain.json index 401aabc46..2ef6e67be 100644 --- a/data/Mainline_mods/Mods/desert_region/overmap/desert_overmap_terrain.json +++ b/data/Mainline_mods/Mods/desert_region/overmap/desert_overmap_terrain.json @@ -1,17 +1,54 @@ [ { "type": "overmap_terrain", - "id": "desert", + "id": "field", "copy-from": "generic_open_land", - "name": "desert", + "name": "drylands", "sym": ".", "color": "yellow", "see_cost": 2, "extras": "field", - "spawns": { "group": "GROUP_DESERT", "population": [ 0, 1 ], "chance": 13 }, "mapgen": [ { "method": "builtin", "name": "field" } ], "flags": [ "NO_ROTATE" ] }, + { + "type": "overmap_terrain", + "id": "forest", + "copy-from": "generic_forest", + "name": "shrubland", + "sym": "*", + "color": "green", + "see_cost": 1, + "extras": "forest", + "spawns": { "group": "GROUP_FOREST", "population": [ 0, 3 ], "chance": 13 }, + "flags": [ "NO_ROTATE", "SOURCE_FORAGE" ] + }, + { + "type": "overmap_terrain", + "id": "forest_thick", + "copy-from": "generic_forest", + "name": "woodland", + "sym": "F", + "color": "green", + "see_cost": 4, + "extras": "forest_thick", + "spawns": { "group": "GROUP_FOREST", "population": [ 0, 6 ], "chance": 15 }, + "mapgen": [ { "method": "builtin", "name": "forest" } ], + "flags": [ "NO_ROTATE", "SOURCE_FORAGE" ] + }, + { + "type": "overmap_terrain", + "id": "forest_water", + "copy-from": "generic_wetland_forest", + "name": "desert pavement", + "sym": ",", + "color": "dark_gray", + "see_cost": 2, + "extras": "forest_water", + "spawns": { "group": "GROUP_SWAMP", "population": [ 1, 4 ], "chance": 16 }, + "mapgen": [ { "method": "builtin", "name": "forest" } ], + "flags": [ "NO_ROTATE" ] + }, { "type": "overmap_terrain", "id": "sandstone", @@ -32,68 +69,162 @@ }, { "type": "overmap_terrain", - "id": "mesa_air", + "id": [ + "mesa_2way_v1", + "mesa_3way_v1", + "mesa_edge_v1", + "mesa_corner_v1", + "mesa_2way_v2", + "mesa_3way_v2", + "mesa_edge_v2", + "mesa_corner_v2" + ], "name": "mesa", "sym": "%", "color": "brown", "see_cost": 5, - "flags": [ "NO_ROTATE" ] - }, - { - "type": "overmap_terrain", - "id": [ "mesa_2way", "mesa_3way", "mesa_edge", "mesa_corner" ], - "name": "mesa", - "sym": "%", - "color": "brown", - "see_cost": 5 + "flags": [ "REQUIRES_PREDECESSOR" ] }, { "type": "overmap_terrain", - "id": [ "field", "canyon" ], - "copy-from": "generic_open_land", + "id": [ + "mesa_2way_top_v1", + "mesa_3way_top_v1", + "mesa_edge_top_v1", + "mesa_corner_top_v1", + "mesa_2way_top_v2", + "mesa_3way_top_v2", + "mesa_edge_top_v2", + "mesa_corner_top_v2" + ], "name": "drylands", "sym": ".", - "color": "yellow", - "see_cost": 2, - "extras": "field", - "mapgen": [ { "method": "builtin", "name": "field" } ], - "flags": [ "NO_ROTATE" ] + "color": "brown", + "see_cost": 1 }, { "type": "overmap_terrain", - "id": "mesa_air_1", - "name": "drylands", - "sym": ".", - "color": "yellow", - "flags": [ "NO_ROTATE" ] + "id": [ + "canyon_2way_v1", + "canyon_3way_v1", + "canyon_edge_v1", + "canyon_corner_v1", + "canyon_2way_v2", + "canyon_3way_v2", + "canyon_edge_v2", + "canyon_corner_v2", + "canyon_2way_v1_bottom", + "canyon_3way_v1_bottom", + "canyon_edge_v1_bottom", + "canyon_corner_v1_bottom", + "canyon_2way_v2_bottom", + "canyon_3way_v2_bottom", + "canyon_edge_v2_bottom", + "canyon_corner_v2_bottom" + ], + "name": "canyon", + "sym": "V", + "color": "light_gray" }, { "type": "overmap_terrain", - "id": [ "canyon_air", "canyon_air_surface" ], + "id": [ + "canyon_2way_ground_v1", + "canyon_3way_ground_v1", + "canyon_edge_ground_v1", + "canyon_corner_ground_v1", + "canyon_2way_ground_v2", + "canyon_3way_ground_v2", + "canyon_edge_ground_v2", + "canyon_corner_ground_v2" + ], "name": "canyon", - "sym": "/", + "sym": "V", "color": "light_gray", - "flags": [ "NO_ROTATE" ] + "see_cost": 5, + "flags": [ "REQUIRES_PREDECESSOR" ] }, { "type": "overmap_terrain", - "id": [ "canyon_edge", "canyon_corner", "canyon_2way", "canyon_3way" ], - "name": "canyon", - "sym": "/", + "abstract": "generic_lake", + "copy-from": "generic_water", + "name": "lake bed", + "sym": "#", + "color": "dark_gray", + "see_cost": 1, + "flags": [ "NO_ROTATE", "LAKE" ] + }, + { + "type": "overmap_terrain", + "id": "lake_shore", + "copy-from": "generic_lake", + "name": "lake bed shore", "color": "light_gray", - "see_cost": 5 + "delete": { "flags": [ "LAKE" ] }, + "extend": { "flags": [ "LAKE_SHORE" ] }, + "extras": "lake_shore", + "mapgen": [ { "method": "builtin", "name": "lake_shore" } ] }, { "type": "overmap_terrain", - "id": "forest_water", - "copy-from": "generic_wetland_forest", - "name": "desert pavement", - "sym": ",", + "id": "lake_surface", + "copy-from": "generic_lake" + }, + { + "type": "overmap_terrain", + "id": "lake_water_cube", + "copy-from": "generic_lake", + "name": "lake" + }, + { + "type": "overmap_terrain", + "id": "lake_bed", + "copy-from": "generic_lake", + "name": "lake bed" + }, + { + "type": "overmap_terrain", + "abstract": "generic_river", + "copy-from": "generic_water", + "name": "riverbed", + "sym": "R", "color": "dark_gray", - "see_cost": 2, - "extras": "forest_water", - "spawns": { "group": "GROUP_SWAMP", "population": [ 1, 4 ], "chance": 16 }, - "mapgen": [ { "method": "builtin", "name": "forest" } ], - "flags": [ "NO_ROTATE" ] + "see_cost": 1, + "flags": [ "RIVER", "NO_ROTATE" ] + }, + { + "type": "overmap_terrain", + "abstract": "generic_river_bank", + "copy-from": "generic_river", + "name": "riverbed shore", + "color": "light_gray" + }, + { + "type": "overmap_terrain", + "id": "river_center", + "copy-from": "generic_river", + "mapgen": [ { "method": "builtin", "name": "river_center" } ] + }, + { + "type": "overmap_terrain", + "id": "river", + "copy-from": "generic_river_bank", + "extras": "river", + "mapgen": [ { "method": "builtin", "name": "river_straight" } ], + "delete": { "flags": [ "NO_ROTATE" ] } + }, + { + "type": "overmap_terrain", + "id": [ "river_c_not_ne", "river_c_not_nw", "river_c_not_se", "river_c_not_sw" ], + "copy-from": "generic_river_bank", + "extras": "river", + "mapgen": [ { "method": "builtin", "name": "river_curved_not" } ] + }, + { + "type": "overmap_terrain", + "id": [ "river_ne", "river_nw", "river_se", "river_sw" ], + "extras": "river", + "copy-from": "generic_river_bank", + "mapgen": [ { "method": "builtin", "name": "river_curved" } ] } ] diff --git a/data/Mainline_mods/Mods/desert_region/overmap/mutable/canyon_mutable.json b/data/Mainline_mods/Mods/desert_region/overmap/mutable/canyon_mutable.json index 82f53db63..7a09f47d8 100644 --- a/data/Mainline_mods/Mods/desert_region/overmap/mutable/canyon_mutable.json +++ b/data/Mainline_mods/Mods/desert_region/overmap/mutable/canyon_mutable.json @@ -1,99 +1,302 @@ [ { "type": "overmap_special", - "id": "canyon_mutable", + "id": "Canyon Mutable", "subtype": "mutable", - "locations": [ "land", "subterranean_empty" ], + "locations": [ "field", "forest_with_swamp", "subterranean_empty" ], "city_distance": [ 0, -1 ], "city_sizes": [ 0, -1 ], - "occurrences": [ 0, 10 ], + "occurrences": [ 0, 3 ], "flags": [ "CLASSIC" ], "check_for_locations_area": [ - { "type": [ "land" ], "from": [ -12, -12, 0 ], "to": [ 12, 12, 0 ] }, - { "type": [ "subterranean_empty" ], "from": [ -12, -12, -1 ], "to": [ 12, 12, -2 ] } - ], - "joins": [ - "canyon_to_canyon", - "canyon_to_edge", - "start_to_mid", - "start_to_sub", - { "id": "canyon_to_mid", "into_locations": [ "subterranean_empty" ] }, - { "id": "mid_to_top", "into_locations": [ "land" ] }, - { "id": "edge_canyon_to_mid", "into_locations": [ "subterranean_empty" ] }, - { "id": "edge_mid_to_top", "into_locations": [ "land" ] } + { "type": [ "field", "forest_with_swamp" ], "from": [ -4, -4, 0 ], "to": [ 4, 4, 0 ] }, + { "type": [ "subterranean_empty" ], "from": [ -16, -16, -1 ], "to": [ 16, 16, -2 ] } ], + "joins": [ "canyon_to_canyon", "canyon_to_edge", "canyon_to_bottom" ], "overmaps": { - "canyon_start": { "overmap": "open_air", "below": { "id": "start_to_mid" } }, - "start_mid": { "overmap": "open_air", "below": { "id": "start_to_sub" }, "above": { "id": "start_to_mid" } }, - "start_sub": { - "overmap": "canyon", - "above": { "id": "start_to_sub" }, - "north": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] }, - "east": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] }, - "south": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] }, - "west": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] } + "canyon_root": { + "overmap": "open_air", + "below": { "id": "canyon_to_bottom", "alternatives": [ "canyon_to_edge" ] }, + "north": { "id": "canyon_to_canyon" }, + "east": { "id": "canyon_to_canyon" }, + "south": { "id": "canyon_to_canyon" }, + "west": { "id": "canyon_to_canyon" } }, - "canyon_core": { - "overmap": "canyon", - "above": { "id": "canyon_to_mid" }, + "canyon_core_ground": { + "overmap": "open_air", "north": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] }, "east": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] }, "south": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] }, "west": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] } }, - "canyon_edge": { - "overmap": "canyon_edge_north", - "above": { "id": "edge_canyon_to_mid" }, - "north": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] } + "canyon_filler_ground": { + "overmap": "open_air", + "north": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] }, + "east": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] }, + "south": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] }, + "west": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] } }, - "canyon_corner": { - "overmap": "canyon_corner_north", - "above": { "id": "edge_canyon_to_mid" }, + "canyon_edge_ground_v1": { "overmap": "canyon_edge_ground_v1_north", "north": { "id": "canyon_to_canyon" } }, + "canyon_corner_ground_v1": { + "overmap": "canyon_corner_ground_v1_north", "north": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] }, "east": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] } }, - "canyon_filler": { - "overmap": "canyon", - "above": { "id": "canyon_to_mid" }, + "canyon_2way_ground_v1": { + "overmap": "canyon_2way_ground_v1_east", + "north": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] }, + "south": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] } + }, + "canyon_3way_ground_v1": { + "overmap": "canyon_3way_ground_v1_north", "north": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] }, "east": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] }, - "south": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] }, "west": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] } }, - "canyon_2way": { - "overmap": "canyon_2way_east", - "above": { "id": "edge_canyon_to_mid" }, + "canyon_core": { "overmap": "open_air" }, + "canyon_filler": { "overmap": "open_air" }, + "canyon_root_filler": { "overmap": "open_air", "above": { "id": "canyon_to_bottom", "alternatives": [ "canyon_to_edge" ] } }, + "canyon_bottom": { "overmap": "field" }, + "canyon_edge_v1": { "overmap": "canyon_edge_v1_north" }, + "canyon_corner_v1": { "overmap": "canyon_corner_v1_north" }, + "canyon_2way_v1": { "overmap": "canyon_2way_v1_east" }, + "canyon_3way_v1": { "overmap": "canyon_3way_v1_north" }, + "canyon_edge_v1_bottom": { "overmap": "canyon_edge_v1_bottom_north" }, + "canyon_corner_v1_bottom": { "overmap": "canyon_corner_v1_bottom_north" }, + "canyon_2way_v1_bottom": { "overmap": "canyon_2way_v1_bottom_east" }, + "canyon_3way_v1_bottom": { "overmap": "canyon_3way_v1_bottom_north" }, + "canyon_edge_ground_v2": { "overmap": "canyon_edge_ground_v2_north", "north": { "id": "canyon_to_canyon" } }, + "canyon_corner_ground_v2": { + "overmap": "canyon_corner_ground_v2_north", + "north": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] }, + "east": { "id": "canyon_to_canyon", "alternatives": [ "canyon_to_edge" ] } + }, + "canyon_2way_ground_v2": { + "overmap": "canyon_2way_ground_v2_east", "north": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] }, "south": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] } }, - "canyon_3way": { - "overmap": "canyon_3way_north", - "above": { "id": "edge_canyon_to_mid" }, + "canyon_3way_ground_v2": { + "overmap": "canyon_3way_ground_v2_north", "north": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] }, "east": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] }, "west": { "id": "canyon_to_canyon", "type": "available", "alternatives": [ "canyon_to_edge" ] } }, - "canyon_mid": { "overmap": "open_air", "above": { "id": "mid_to_top" }, "below": { "id": "canyon_to_mid" } }, - "canyon_sub": { "overmap": "open_air", "below": { "id": "mid_to_top" } }, - "edge_canyon_mid": { "overmap": "canyon_air", "above": { "id": "edge_mid_to_top" }, "below": { "id": "edge_canyon_to_mid" } }, - "edge_canyon_sub": { "overmap": "canyon_air_surface", "below": { "id": "edge_mid_to_top" } } + "canyon_edge_v2": { "overmap": "canyon_edge_v2_north" }, + "canyon_corner_v2": { "overmap": "canyon_corner_v2_north" }, + "canyon_2way_v2": { "overmap": "canyon_2way_v2_east" }, + "canyon_3way_v2": { "overmap": "canyon_3way_v2_north" }, + "canyon_edge_v2_bottom": { "overmap": "canyon_edge_v2_bottom_north" }, + "canyon_corner_v2_bottom": { "overmap": "canyon_corner_v2_bottom_north" }, + "canyon_2way_v2_bottom": { "overmap": "canyon_2way_v2_bottom_east" }, + "canyon_3way_v2_bottom": { "overmap": "canyon_3way_v2_bottom_north" } }, - "root": "canyon_start", + "root": "canyon_root", "phases": [ - [ { "name": "canyon_start", "chunk": [ { "overmap": "canyon_start", "pos": [ 0, 0, 0 ] } ], "max": 1 } ], - [ { "name": "canyon_start_1", "chunk": [ { "overmap": "canyon_start", "pos": [ 0, 5, 0 ] } ], "max": 1 } ], - [ { "overmap": "start_mid", "max": 1 } ], - [ { "overmap": "start_sub", "max": 1 } ], - [ { "overmap": "canyon_core", "weight": 1, "max": { "poisson": 50 } } ], - [ { "overmap": "canyon_edge", "weight": 5 } ], - [ { "overmap": "canyon_corner", "weight": 1 } ], - [ { "overmap": "canyon_2way", "weight": 1 } ], - [ { "overmap": "canyon_3way", "weight": 1 } ], - [ { "overmap": "canyon_filler", "weight": 1 } ], - [ { "overmap": "canyon_mid", "weight": 1 } ], - [ { "overmap": "canyon_sub", "weight": 1 } ], - [ { "overmap": "edge_canyon_mid", "weight": 1 } ], - [ { "overmap": "edge_canyon_sub", "weight": 1 } ] + [ + { + "name": "15-tile straight branch", + "chunk": [ + { "overmap": "canyon_core_ground", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 0, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 1, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 1, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 1, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 2, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 2, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 2, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 3, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 3, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 3, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 4, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 4, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 4, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 5, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 5, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 5, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 6, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 6, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 6, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 7, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 7, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 7, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 8, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 8, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 8, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 9, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 9, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 9, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 10, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 10, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 10, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 11, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 11, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 11, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 12, 1, 0 ] }, + { "overmap": "canyon_core", "pos": [ 12, 1, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 12, 1, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 13, 1, 0 ] }, + { "overmap": "canyon_core", "pos": [ 13, 1, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 13, 1, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 14, 1, 0 ] }, + { "overmap": "canyon_core", "pos": [ 14, 1, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 14, 1, -2 ] } + ], + "max": 1 + }, + { + "name": "12-tile diagonal branch", + "chunk": [ + { "overmap": "canyon_core_ground", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 0, 0, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 1, 1, 0 ] }, + { "overmap": "canyon_core", "pos": [ 1, 1, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 1, 1, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 2, 2, 0 ] }, + { "overmap": "canyon_core", "pos": [ 2, 2, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 2, 2, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 3, 3, 0 ] }, + { "overmap": "canyon_core", "pos": [ 3, 3, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 3, 3, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 4, 4, 0 ] }, + { "overmap": "canyon_core", "pos": [ 4, 4, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 4, 4, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 5, 5, 0 ] }, + { "overmap": "canyon_core", "pos": [ 5, 5, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 5, 5, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 6, 6, 0 ] }, + { "overmap": "canyon_core", "pos": [ 6, 6, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 6, 6, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 7, 7, 0 ] }, + { "overmap": "canyon_core", "pos": [ 7, 7, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 7, 7, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 8, 8, 0 ] }, + { "overmap": "canyon_core", "pos": [ 8, 8, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 8, 8, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 9, 9, 0 ] }, + { "overmap": "canyon_core", "pos": [ 9, 9, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 9, 9, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 10, 10, 0 ] }, + { "overmap": "canyon_core", "pos": [ 10, 10, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 10, 10, -2 ] }, + { "overmap": "canyon_core_ground", "pos": [ 11, 11, 0 ] }, + { "overmap": "canyon_core", "pos": [ 11, 11, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 11, 11, -2 ] } + ], + "max": 1 + } + ], + [ + { + "name": "canyon core", + "chunk": [ + { "overmap": "canyon_core_ground", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_core", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 0, 0, -2 ] } + ], + "max": { "poisson": 30 } + } + ], + [ + { + "name": "canyon edge v1", + "chunk": [ + { "overmap": "canyon_edge_ground_v1", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_edge_v1", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_edge_v1_bottom", "pos": [ 0, 0, -2 ] } + ], + "weight": 1 + }, + { + "name": "canyon edge v2", + "chunk": [ + { "overmap": "canyon_edge_ground_v2", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_edge_v2", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_edge_v2_bottom", "pos": [ 0, 0, -2 ] } + ], + "weight": 1 + } + ], + [ + { + "name": "canyon corner v1", + "chunk": [ + { "overmap": "canyon_corner_ground_v1", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_corner_v1", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_corner_v1_bottom", "pos": [ 0, 0, -2 ] } + ], + "weight": 1 + }, + { + "name": "canyon corner v2", + "chunk": [ + { "overmap": "canyon_corner_ground_v2", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_corner_v2", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_corner_v2_bottom", "pos": [ 0, 0, -2 ] } + ], + "weight": 1 + } + ], + [ + { + "name": "canyon 2way v1", + "chunk": [ + { "overmap": "canyon_2way_ground_v1", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_2way_v1", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_2way_v1_bottom", "pos": [ 0, 0, -2 ] } + ], + "weight": 1 + }, + { + "name": "canyon 2way v2", + "chunk": [ + { "overmap": "canyon_2way_ground_v2", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_2way_v2", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_2way_v2_bottom", "pos": [ 0, 0, -2 ] } + ], + "weight": 1 + } + ], + [ + { + "name": "canyon 3way v1", + "chunk": [ + { "overmap": "canyon_3way_ground_v1", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_3way_v1", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_3way_v1_bottom", "pos": [ 0, 0, -2 ] } + ], + "weight": 1 + }, + { + "name": "canyon 3way v2", + "chunk": [ + { "overmap": "canyon_3way_ground_v2", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_3way_v2", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_3way_v2_bottom", "pos": [ 0, 0, -2 ] } + ], + "weight": 1 + } + ], + [ + { + "name": "canyon filler", + "chunk": [ + { "overmap": "canyon_filler_ground", "pos": [ 0, 0, 0 ] }, + { "overmap": "canyon_filler", "pos": [ 0, 0, -1 ] }, + { "overmap": "canyon_bottom", "pos": [ 0, 0, -2 ] } + ], + "weight": 1 + } + ], + [ + { + "name": "canyon filler root", + "chunk": [ { "overmap": "canyon_root_filler", "pos": [ 0, 0, -1 ] }, { "overmap": "canyon_bottom", "pos": [ 0, 0, -2 ] } ], + "weight": 1 + } + ] ] } ] diff --git a/data/Mainline_mods/Mods/desert_region/overmap/mutable/mesa_mutable.json b/data/Mainline_mods/Mods/desert_region/overmap/mutable/mesa_mutable.json index d376f9b20..e7ef9cf42 100644 --- a/data/Mainline_mods/Mods/desert_region/overmap/mutable/mesa_mutable.json +++ b/data/Mainline_mods/Mods/desert_region/overmap/mutable/mesa_mutable.json @@ -1,69 +1,204 @@ [ { "type": "overmap_special", - "id": "mesa_mutable", + "id": "Mesa Mutable", "subtype": "mutable", - "locations": [ "land", "open_air" ], + "locations": [ "field", "forest_with_swamp", "open_air" ], "city_distance": [ 0, -1 ], "city_sizes": [ 0, -1 ], "occurrences": [ 0, 12 ], "flags": [ "CLASSIC" ], - "check_for_locations_area": [ { "type": [ "land" ], "from": [ -5, -5, 0 ], "to": [ 5, 5, 0 ] } ], - "joins": [ "mesa_to_mesa", "mesa_to_edge", "mesa_to_mid", "mid_to_top", "edge_mesa_to_mid", "edge_mid_to_top" ], + "check_for_locations_area": [ { "type": [ "field", "forest_with_swamp" ], "from": [ -4, -4, 0 ], "to": [ 4, 4, 0 ] } ], + "joins": [ "mesa_to_mesa", "mesa_to_edge", "mesa_to_top" ], "overmaps": { - "mesa_core": { + "mesa_root": { "overmap": "mesa", - "above": { "id": "mesa_to_mid" }, + "above": { "id": "mesa_to_top", "alternatives": [ "mesa_to_edge" ] }, "north": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] }, "east": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] }, "south": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] }, "west": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] } }, - "mesa_edge": { "overmap": "mesa_edge_north", "above": { "id": "edge_mesa_to_mid" }, "north": { "id": "mesa_to_mesa" } }, - "mesa_corner": { - "overmap": "mesa_corner_north", - "above": { "id": "edge_mesa_to_mid" }, + "mesa_core_ground": { + "overmap": "mesa", "north": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] }, - "east": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] } + "east": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] }, + "south": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] }, + "west": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] } }, - "mesa_filler": { + "mesa_filler_ground": { "overmap": "mesa", - "above": { "id": "mesa_to_mid" }, "north": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] }, "east": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] }, "south": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] }, "west": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] } }, - "mesa_2way": { - "overmap": "mesa_2way_east", - "above": { "id": "edge_mesa_to_mid" }, + "mesa_edge_ground_v1": { "overmap": "mesa_edge_v1_north", "north": { "id": "mesa_to_mesa" } }, + "mesa_corner_ground_v1": { + "overmap": "mesa_corner_v1_north", + "north": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] }, + "east": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] } + }, + "mesa_2way_ground_v1": { + "overmap": "mesa_2way_v1_east", + "north": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] }, + "south": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] } + }, + "mesa_3way_ground_v1": { + "overmap": "mesa_3way_v1_north", + "north": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] }, + "east": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] }, + "west": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] } + }, + "mesa_core": { "overmap": "mesa" }, + "mesa_filler": { "overmap": "mesa" }, + "mesa_root_filler": { "overmap": "mesa", "below": { "id": "mesa_to_top", "alternatives": [ "mesa_to_edge" ] } }, + "mesa_top": { "overmap": "field" }, + "mesa_edge_v1": { "overmap": "mesa_edge_v1_north" }, + "mesa_corner_v1": { "overmap": "mesa_corner_v1_north" }, + "mesa_2way_v1": { "overmap": "mesa_2way_v1_east" }, + "mesa_3way_v1": { "overmap": "mesa_3way_v1_north" }, + "mesa_edge_top_v1": { "overmap": "mesa_edge_top_v1_north" }, + "mesa_corner_top_v1": { "overmap": "mesa_corner_top_v1_north" }, + "mesa_2way_top_v1": { "overmap": "mesa_2way_top_v1_east" }, + "mesa_3way_top_v1": { "overmap": "mesa_3way_top_v1_north" }, + "mesa_edge_ground_v2": { "overmap": "mesa_edge_v2_north", "north": { "id": "mesa_to_mesa" } }, + "mesa_corner_ground_v2": { + "overmap": "mesa_corner_v2_north", + "north": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] }, + "east": { "id": "mesa_to_mesa", "alternatives": [ "mesa_to_edge" ] } + }, + "mesa_2way_ground_v2": { + "overmap": "mesa_2way_v2_east", "north": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] }, "south": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] } }, - "mesa_3way": { - "overmap": "mesa_3way_north", - "above": { "id": "edge_mesa_to_mid" }, + "mesa_3way_ground_v2": { + "overmap": "mesa_3way_v2_north", "north": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] }, "east": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] }, "west": { "id": "mesa_to_mesa", "type": "available", "alternatives": [ "mesa_to_edge" ] } }, - "mesa_mid": { "overmap": "mesa", "above": { "id": "mid_to_top" }, "below": { "id": "mesa_to_mid" } }, - "mesa_top": { "overmap": "field", "below": { "id": "mid_to_top" } }, - "edge_mesa_mid": { "overmap": "mesa_air", "above": { "id": "edge_mid_to_top" }, "below": { "id": "edge_mesa_to_mid" } }, - "edge_mesa_top": { "overmap": "mesa_air_1", "below": { "id": "edge_mid_to_top" } } + "mesa_edge_v2": { "overmap": "mesa_edge_v2_north" }, + "mesa_corner_v2": { "overmap": "mesa_corner_v2_north" }, + "mesa_2way_v2": { "overmap": "mesa_2way_v2_east" }, + "mesa_3way_v2": { "overmap": "mesa_3way_v2_north" }, + "mesa_edge_top_v2": { "overmap": "mesa_edge_top_v2_north" }, + "mesa_corner_top_v2": { "overmap": "mesa_corner_top_v2_north" }, + "mesa_2way_top_v2": { "overmap": "mesa_2way_top_v2_east" }, + "mesa_3way_top_v2": { "overmap": "mesa_3way_top_v2_north" } }, - "root": "mesa_core", + "root": "mesa_root", "phases": [ - [ { "overmap": "mesa_core", "weight": 1, "max": { "poisson": 225 } } ], - [ { "overmap": "mesa_edge", "weight": 1 } ], - [ { "overmap": "mesa_corner", "weight": 1 } ], - [ { "overmap": "mesa_2way", "weight": 1 } ], - [ { "overmap": "mesa_3way", "weight": 1 } ], - [ { "overmap": "mesa_filler", "weight": 1 } ], - [ { "overmap": "mesa_mid", "weight": 1 } ], - [ { "overmap": "mesa_top", "weight": 1 } ], - [ { "overmap": "edge_mesa_mid", "weight": 1 } ], - [ { "overmap": "edge_mesa_top", "weight": 1 } ] + [ + { + "name": "mesa core", + "chunk": [ + { "overmap": "mesa_core_ground", "pos": [ 0, 0, 0 ] }, + { "overmap": "mesa_core", "pos": [ 0, 0, 1 ] }, + { "overmap": "mesa_top", "pos": [ 0, 0, 2 ] } + ], + "max": { "poisson": 250 } + } + ], + [ + { + "name": "mesa edge v1", + "chunk": [ + { "overmap": "mesa_edge_ground_v1", "pos": [ 0, 0, 0 ] }, + { "overmap": "mesa_edge_v1", "pos": [ 0, 0, 1 ] }, + { "overmap": "mesa_edge_top_v1", "pos": [ 0, 0, 2 ] } + ], + "weight": 1 + }, + { + "name": "mesa edge v2", + "chunk": [ + { "overmap": "mesa_edge_ground_v2", "pos": [ 0, 0, 0 ] }, + { "overmap": "mesa_edge_v2", "pos": [ 0, 0, 1 ] }, + { "overmap": "mesa_edge_top_v2", "pos": [ 0, 0, 2 ] } + ], + "weight": 1 + } + ], + [ + { + "name": "mesa corner v1", + "chunk": [ + { "overmap": "mesa_corner_ground_v1", "pos": [ 0, 0, 0 ] }, + { "overmap": "mesa_corner_v1", "pos": [ 0, 0, 1 ] }, + { "overmap": "mesa_corner_top_v1", "pos": [ 0, 0, 2 ] } + ], + "weight": 1 + }, + { + "name": "mesa corner v2", + "chunk": [ + { "overmap": "mesa_corner_ground_v2", "pos": [ 0, 0, 0 ] }, + { "overmap": "mesa_corner_v2", "pos": [ 0, 0, 1 ] }, + { "overmap": "mesa_corner_top_v2", "pos": [ 0, 0, 2 ] } + ], + "weight": 1 + } + ], + [ + { + "name": "mesa 2way v1", + "chunk": [ + { "overmap": "mesa_2way_ground_v1", "pos": [ 0, 0, 0 ] }, + { "overmap": "mesa_2way_v1", "pos": [ 0, 0, 1 ] }, + { "overmap": "mesa_2way_top_v1", "pos": [ 0, 0, 2 ] } + ], + "weight": 1 + }, + { + "name": "mesa 2way v2", + "chunk": [ + { "overmap": "mesa_2way_ground_v2", "pos": [ 0, 0, 0 ] }, + { "overmap": "mesa_2way_v2", "pos": [ 0, 0, 1 ] }, + { "overmap": "mesa_2way_top_v2", "pos": [ 0, 0, 2 ] } + ], + "weight": 1 + } + ], + [ + { + "name": "mesa 3way v1", + "chunk": [ + { "overmap": "mesa_3way_ground_v1", "pos": [ 0, 0, 0 ] }, + { "overmap": "mesa_3way_v1", "pos": [ 0, 0, 1 ] }, + { "overmap": "mesa_3way_top_v1", "pos": [ 0, 0, 2 ] } + ], + "weight": 1 + }, + { + "name": "mesa 3way v2", + "chunk": [ + { "overmap": "mesa_3way_ground_v2", "pos": [ 0, 0, 0 ] }, + { "overmap": "mesa_3way_v2", "pos": [ 0, 0, 1 ] }, + { "overmap": "mesa_3way_top_v2", "pos": [ 0, 0, 2 ] } + ], + "weight": 1 + } + ], + [ + { + "name": "mesa filler", + "chunk": [ + { "overmap": "mesa_filler_ground", "pos": [ 0, 0, 0 ] }, + { "overmap": "mesa_filler", "pos": [ 0, 0, 1 ] }, + { "overmap": "mesa_top", "pos": [ 0, 0, 2 ] } + ], + "weight": 1 + } + ], + [ + { + "name": "mesa filler root", + "chunk": [ { "overmap": "mesa_root_filler", "pos": [ 0, 0, 1 ] }, { "overmap": "mesa_top", "pos": [ 0, 0, 2 ] } ], + "weight": 1 + } + ] ] } ] diff --git a/data/Mainline_mods/Mods/desert_region/overmap/specials.json b/data/Mainline_mods/Mods/desert_region/overmap/specials.json index a2b860743..ef9d05869 100644 --- a/data/Mainline_mods/Mods/desert_region/overmap/specials.json +++ b/data/Mainline_mods/Mods/desert_region/overmap/specials.json @@ -15,12 +15,12 @@ "type": "overmap_special", "id": "Canyon Tourist Center", "overmaps": [ - { "point": [ 0, 1, 0 ], "overmap": "canyon_air_surface", "locations": [ "canyon" ] }, + { "point": [ 0, 1, 0 ], "overmap": "s_lot_north", "locations": [ "canyon" ] }, { "point": [ 0, 0, 0 ], "overmap": "s_lot_north", "locations": [ "land" ] } ], "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road" } ], "city_distance": [ 5, 75 ], - "occurrences": [ 0, 6 ], + "occurrences": [ 0, 2 ], "flags": [ "CLASSIC", "MAN_MADE" ] } ] diff --git a/data/Mainline_mods/Mods/desert_region/weather/desert_weather_type.json b/data/Mainline_mods/Mods/desert_region/weather/desert_weather_type.json index d365223ef..7ebff1dc0 100644 --- a/data/Mainline_mods/Mods/desert_region/weather/desert_weather_type.json +++ b/data/Mainline_mods/Mods/desert_region/weather/desert_weather_type.json @@ -13,10 +13,10 @@ "dangerous": false, "precip": "none", "rains": false, - "acidic": false, "sound_category": "flurries", "sun_multiplier": 0.2, - "condition": { "compare_int": [ { "global_val": "var", "var_name": "cause_early_dust_storm" }, "=", { "const": 1 } ] } + "priority": 115, + "condition": { "compare_num": [ { "global_val": "var", "var_name": "cause_early_dust_storm" }, "=", { "const": 1 } ] } }, { "id": "dust_storm", @@ -32,10 +32,10 @@ "dangerous": false, "precip": "none", "rains": false, - "acidic": false, "weather_animation": { "factor": 0.04, "color": "yellow", "sym": "-" }, "sound_category": "snow", "sun_multiplier": 0.01, - "condition": { "compare_int": [ { "global_val": "var", "var_name": "cause_dust_storm" }, "=", { "const": 1 } ] } + "priority": 116, + "condition": { "compare_num": [ { "global_val": "var", "var_name": "cause_dust_storm" }, "=", { "const": 1 } ] } } ] diff --git a/data/Mainline_mods/Mods/desert_region/weather/weather_eoc.json b/data/Mainline_mods/Mods/desert_region/weather/weather_eoc.json index a28d9a60a..f36d600dd 100644 --- a/data/Mainline_mods/Mods/desert_region/weather/weather_eoc.json +++ b/data/Mainline_mods/Mods/desert_region/weather/weather_eoc.json @@ -55,12 +55,12 @@ "or": [ { "is_weather": "dust_storm" }, { "is_weather": "early_dust_storm" }, - { "compare_int": [ { "global_val": "var", "var_name": "cause_dust_storm" }, "=", { "const": 1 } ] }, - { "compare_int": [ { "global_val": "var", "var_name": "cause_early_dust_storm" }, "=", { "const": 1 } ] }, + { "compare_num": [ { "global_val": "var", "var_name": "cause_dust_storm" }, "=", { "const": 1 } ] }, + { "compare_num": [ { "global_val": "var", "var_name": "cause_early_dust_storm" }, "=", { "const": 1 } ] }, { "is_weather": "portal_storm" }, { "is_weather": "early_portal_storm" }, - { "compare_int": [ { "global_val": "var", "var_name": "cause_portal_storm" }, "=", { "const": 1 } ] }, - { "compare_int": [ { "global_val": "var", "var_name": "cause_early_portal_storm" }, "=", { "const": 1 } ] } + { "compare_num": [ { "global_val": "var", "var_name": "cause_portal_storm" }, "=", { "const": 1 } ] }, + { "compare_num": [ { "global_val": "var", "var_name": "cause_early_portal_storm" }, "=", { "const": 1 } ] } ] } }, @@ -103,7 +103,7 @@ "not": { "or": [ { "is_weather": "dust_storm" }, - { "compare_int": [ { "global_val": "var", "var_name": "cause_dust_storm" }, "=", { "const": 1 } ] } + { "compare_num": [ { "global_val": "var", "var_name": "cause_dust_storm" }, "=", { "const": 1 } ] } ] } }, @@ -135,8 +135,8 @@ "or": [ { "is_weather": "dust_storm" }, { "is_weather": "early_dust_storm" }, - { "compare_int": [ { "global_val": "var", "var_name": "cause_dust_storm" }, "=", { "const": 1 } ] }, - { "compare_int": [ { "global_val": "var", "var_name": "cause_early_dust_storm" }, "=", { "const": 1 } ] } + { "compare_num": [ { "global_val": "var", "var_name": "cause_dust_storm" }, "=", { "const": 1 } ] }, + { "compare_num": [ { "global_val": "var", "var_name": "cause_early_dust_storm" }, "=", { "const": 1 } ] } ] }, "effect": [ @@ -159,11 +159,9 @@ "id": "EOC_DUST_WIND", "recurrence": [ "10 seconds", "30 seconds" ], "global": true, - "condition": { - "and": [ { "compare_int": [ { "weather": "windpower" }, "<=", { "const": 60 } ] }, { "is_weather": "early_dust_storm" } ] - }, + "condition": { "and": [ { "math": [ "weather('windpower')", "<=", "60" ] }, { "is_weather": "early_dust_storm" } ] }, "deactivate_condition": { "not": { "is_weather": "early_dust_storm" } }, - "effect": [ { "arithmetic": [ { "weather": "windpower" }, "+=", { "const": 3 } ] }, { "u_message": "WIND", "type": "bad" } ] + "effect": [ { "math": [ "weather('windpower')", "+=", "3" ] }, { "u_message": "WIND", "type": "bad" } ] }, { "type": "effect_on_condition", @@ -179,8 +177,8 @@ "id": "EOC_DUST_WIND_STRONG", "recurrence": [ "10 seconds", "30 seconds" ], "global": true, - "condition": { "and": [ { "compare_int": [ { "weather": "windpower" }, "<=", { "const": 120 } ] }, { "is_weather": "dust_storm" } ] }, + "condition": { "and": [ { "math": [ "weather('windpower')", "<=", "120" ] }, { "is_weather": "dust_storm" } ] }, "deactivate_condition": { "not": { "is_weather": "dust_storm" } }, - "effect": [ { "arithmetic": [ { "weather": "windpower" }, "+=", { "const": 4 } ] }, { "u_message": "WIND", "type": "bad" } ] + "effect": [ { "math": [ "weather('windpower')", "+=", "4" ] }, { "u_message": "WIND", "type": "bad" } ] } ] diff --git a/data/Mainline_mods/Mods/extra_mut_scen/mutation_scenarios.json b/data/Mainline_mods/Mods/extra_mut_scen/mutation_scenarios.json index 4740ebc51..2d37a9ca9 100644 --- a/data/Mainline_mods/Mods/extra_mut_scen/mutation_scenarios.json +++ b/data/Mainline_mods/Mods/extra_mut_scen/mutation_scenarios.json @@ -21,6 +21,7 @@ "ALCMET", "ANIMALDISCORD2", "ANIMALEMPATH2", + "ANIMAL_FEET", "ANTENNAE", "ANTLERS", "ARM_FEATHERS", @@ -36,6 +37,7 @@ "BIOLUM0", "BIOLUM1", "BIOLUM2", + "CAMO1", "CANINE_EARS", "CARNIVORE", "CEPH_EYES", @@ -56,6 +58,7 @@ "DEFORMED", "DEFORMED2", "DEFORMED3", + "DENSE_BONES", "DEX_UP", "DEX_UP_2", "DEX_UP_3", @@ -86,6 +89,7 @@ "HAIRROOTS", "HAS_NEMESIS", "HATES_BOOKS", + "HATES_WATER", "HEADBUMPS", "HEAVYSLEEPER2", "HERBIVORE", @@ -139,9 +143,11 @@ "MUZZLE", "MUZZLE_BEAR", "MUZZLE_LONG", + "MUZZLE_RAPTOR", "MUZZLE_RAT", "NAILS", "NAUSEA", + "NIGHT_RAIDER", "NIGHTVISION2", "NIGHTVISION3", "NOMAD", @@ -255,7 +261,8 @@ "WINGS_STUB", "XS", "XXXL" - ] + ], + "reveal_locale": false }, { "type": "scenario", @@ -287,6 +294,7 @@ "LONG_TONGUE2", "PHEROMONE_AMPHIBIAN", "PRED1", + "STRONGER_RESISTWARM", "THIRST3", "VOMITSTOMACH", "WAKEFUL2", @@ -302,7 +310,7 @@ "name": "Mutant - Beast Threshold", "description": "Start as a post-threshold Beast Mutant", "forced_traits": "THRESH_BEAST", - "extend": { "traits": [ "MUT_TOUGH", "PRED1", "PRED2", "PRED3", "PRED4", "SAPIOVORE", "STR_UP_4" ] } + "extend": { "traits": [ "MUT_TOUGH", "PRED1", "PRED2", "PRED3", "PRED4", "SAPIOVORE", "STR_UP_4", "STRONGER_RESISTCHILL" ] } }, { "type": "scenario", @@ -320,7 +328,7 @@ "name": "Mutant - Bovine Threshold", "description": "Start as a post-threshold Bovine Mutant", "forced_traits": "THRESH_CATTLE", - "extend": { "traits": [ "GRAZER", "HUGE_OK", "LARGE_OK", "MUT_TOUGH", "MUT_TOUGH2", "MUT_TOUGH3" ] } + "extend": { "traits": [ "GRAZER", "HUGE_OK", "LARGE_OK", "MUT_TOUGH", "MUT_TOUGH2", "MUT_TOUGH3", "STRONGER_RESISTCHILL" ] } }, { "type": "scenario", @@ -329,7 +337,9 @@ "name": "Mutant - Cephalopod Threshold", "description": "Start as a post-threshold Cephalopod Mutant", "forced_traits": "THRESH_CEPHALOPOD", - "extend": { "traits": [ "CLAWS_TENTACLE", "DEX_UP_4", "INT_UP_4", "LEG_TENT_BRACE", "SHELL2" ] } + "extend": { + "traits": [ "CAMO2", "CEPH_MIND", "CLAWS_TENTACLE", "DEX_UP_4", "INT_UP_4", "LEG_TENT_BRACE", "SHELL2", "STRONGER_RESISTWARM" ] + } }, { "type": "scenario", @@ -374,7 +384,7 @@ "name": "Mutant - Feline Threshold", "description": "Start as a post-threshold Feline Mutant", "forced_traits": "THRESH_FELINE", - "extend": { "traits": [ "PRED1", "PRED2", "PRED3", "SABER_TEETH" ] } + "extend": { "traits": [ "FELINE_FLEXIBILITY", "FELINE_LEAP", "PRED1", "PRED2", "PRED3", "SABER_TEETH", "STRONGER_RESISTCHILL" ] } }, { "type": "scenario", @@ -383,7 +393,18 @@ "name": "Mutant - Aquatic Threshold", "description": "Start as a post-threshold Aquatic Mutant", "forced_traits": "THRESH_FISH", - "extend": { "traits": [ "AMPHIBIAN", "DEX_UP_4", "FRESHWATEROSMOSIS", "SEESLEEP", "SHARKTEETH", "TOXICFLESH", "WATERSLEEP" ] } + "extend": { + "traits": [ + "AMPHIBIAN", + "DEX_UP_4", + "FRESHWATEROSMOSIS", + "SEESLEEP", + "SHARKTEETH", + "STRONGER_RESISTWARM", + "TOXICFLESH", + "WATERSLEEP" + ] + } }, { "type": "scenario", @@ -402,7 +423,18 @@ "description": "Start as a post-threshold Lizard Mutant", "forced_traits": "THRESH_LIZARD", "extend": { - "traits": [ "COLDBLOOD4", "LARGE_OK", "MUT_TOUGH", "PRED1", "PRED2", "PRED3", "REGEN_LIZ", "SAPIOVORE", "THICK_SCALES" ] + "traits": [ + "COLDBLOOD4", + "LARGE_OK", + "MUT_TOUGH", + "PRED1", + "PRED2", + "PRED3", + "REGEN_LIZ", + "SAPIOVORE", + "STRONGER_RESISTWARM", + "THICK_SCALES" + ] } }, { @@ -412,7 +444,7 @@ "name": "Mutant - Wolf Threshold", "description": "Start as a post-threshold Wolf Mutant", "forced_traits": "THRESH_LUPINE", - "extend": { "traits": [ "BURROW", "PACK_HUNTER", "PERSISTENCE_HUNTER2", "PRED1", "PRED2", "PRED3" ] } + "extend": { "traits": [ "BURROWLARGE", "PACK_HUNTER", "PERSISTENCE_HUNTER2", "PRED1", "PRED2", "PRED3", "STRONGER_RESISTCHILL" ] } }, { "type": "scenario", @@ -441,7 +473,19 @@ "name": "Mutant - Diminutive Threshold", "description": "Start as a post-threshold Diminutive Mutant", "forced_traits": "THRESH_MOUSE", - "extend": { "traits": [ "CRAFTY", "EASYSLEEPER2", "EATDEAD", "EATPOISON", "GOODCARDIO2", "NO_THIRST", "PROJUNK2", "SMALL_OK" ] } + "extend": { + "traits": [ + "CRAFTY", + "EASYSLEEPER2", + "EATDEAD", + "EATPOISON", + "GOODCARDIO2", + "NO_THIRST", + "PROJUNK2", + "SMALL_OK", + "STRONGER_RESISTCHILL" + ] + } }, { "type": "scenario", @@ -485,8 +529,10 @@ "ROOTS3", "ROSEBUDS", "SAPROPHAGE", + "STRONGER_RESISTWARM", "TRANSPIRATION", "TREE_COMMUNION", + "STRONGER_RESISTCHILL", "VINES3" ] } @@ -498,7 +544,7 @@ "name": "Mutant - Lagomorph Threshold", "description": "Start as a post-threshold Lagomorph Mutant", "forced_traits": "THRESH_RABBIT", - "extend": { "traits": [ "BURROW", "EASYSLEEPER2", "GOODCARDIO2", "GRAZER", "INCISORS" ] } + "extend": { "traits": [ "BURROW", "EASYSLEEPER2", "GOODCARDIO2", "GRAZER", "INCISORS", "STRONGER_RESISTCHILL" ] } }, { "type": "scenario", @@ -586,7 +632,7 @@ "forced_traits": "THRESH_URSINE", "extend": { "traits": [ - "BURROW", + "BURROWLARGE", "HIBERNATE", "HUGE_OK", "LARGE_OK", @@ -598,6 +644,7 @@ "PRED3", "PRED4", "SAPIOVORE", + "STRONGER_RESISTCHILL", "STR_UP_4" ] } diff --git a/data/Mainline_mods/Mods/innawood/furniture_and_terrain/appliances.json b/data/Mainline_mods/Mods/innawood/furniture_and_terrain/appliances.json index b640b2046..0a656cfdd 100644 --- a/data/Mainline_mods/Mods/innawood/furniture_and_terrain/appliances.json +++ b/data/Mainline_mods/Mods/innawood/furniture_and_terrain/appliances.json @@ -4,7 +4,6 @@ "id": "ap_battery_car_clay", "name": { "str": "clay car grid battery" }, "categories": [ "energy" ], - "symbol": "B", "looks_like": "clay_hydria", "location": "structure", "color": "light_cyan", @@ -13,14 +12,14 @@ "item": "battery_car_clay", "breaks_into": [ { "item": "ceramic_shard", "count": [ 1, 3 ] }, { "item": "lead", "count": [ 200, 1000 ] } ], "durability": 120, - "requirements": { "removal": { "time": "6 m" } } + "requirements": { "removal": { "time": "6 m" } }, + "variants": [ { "symbols": "B", "symbols_broken": "#" } ] }, { "type": "vehicle_part", "id": "ap_battery_clay_array", "name": { "str": "clay grid battery array" }, "categories": [ "energy" ], - "symbol": "B", "looks_like": "f_crate_o", "location": "structure", "color": "light_cyan", @@ -34,6 +33,7 @@ { "item": "nail", "count": [ 2, 6 ] } ], "durability": 120, - "requirements": { "removal": { "time": "6 m" } } + "requirements": { "removal": { "time": "6 m" } }, + "variants": [ { "symbols": "B", "symbols_broken": "#" } ] } ] diff --git a/data/Mainline_mods/Mods/innawood/furniture_and_terrain/furniture-flora.json b/data/Mainline_mods/Mods/innawood/furniture_and_terrain/furniture-flora.json index 752d09e9f..ca063b0dd 100644 --- a/data/Mainline_mods/Mods/innawood/furniture_and_terrain/furniture-flora.json +++ b/data/Mainline_mods/Mods/innawood/furniture_and_terrain/furniture-flora.json @@ -4,8 +4,8 @@ "id": "f_wildcotton", "name": "wild cotton", "description": "A cotton plant, growing wild and feral.", - "symbol": "f", - "color": "brown", + "symbol": "i", + "color": "white", "looks_like": "f_mustard", "move_cost_mod": 0, "required_str": -1, @@ -17,9 +17,9 @@ { "type": "furniture", "id": "f_wildsbeet", - "name": "wild sugarbeet", - "description": "Sugarbeet plant, growing wild without human touch.", - "symbol": "f", + "name": "wild sugar beet", + "description": "Sugar beet plant, growing wild without human touch.", + "symbol": "i", "color": "magenta", "looks_like": "f_dandelion", "move_cost_mod": 0, @@ -34,7 +34,7 @@ "id": "f_wildweed", "name": "wild cannabis", "description": "A riotous snarl of cannabis, all stalks and five-pointed leaves.", - "symbol": "f", + "symbol": "i", "color": "green", "looks_like": "f_dandelion", "move_cost_mod": 0, @@ -49,7 +49,7 @@ "id": "f_wildpumpkin", "name": "wild pumpkins", "description": "A tangled mess of hairy vines and pale yellow trumpet flowers. Is that a pumpkin hidden in this mess?", - "symbol": "f", + "symbol": "i", "color": "yellow", "looks_like": "f_dandelion", "move_cost_mod": 0, @@ -64,9 +64,9 @@ "id": "f_wildcorn", "name": "wild corn", "description": "Tall green stalks with what looks like hair growing out of nodes along its length. You're pretty sure this is corn.", - "symbol": "f", + "symbol": "i", "looks_like": "f_mustard", - "color": "light_green", + "color": "cyan", "move_cost_mod": 0, "required_str": -1, "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ], @@ -79,9 +79,9 @@ "id": "f_wildbeans", "name": "wild beans", "description": "A mess of vines strangling a dead bush. There are pods and tiny white flowers growing along them.", - "symbol": "f", + "symbol": "i", "looks_like": "f_chamomile", - "color": "light_green", + "color": "brown", "move_cost_mod": 0, "required_str": -1, "flags": [ "TRANSPARENT", "TINY", "FLAMMABLE_ASH", "NOCOLLIDE", "FLOWER" ], diff --git a/data/Mainline_mods/Mods/innawood/furniture_and_terrain/furniture-tools.json b/data/Mainline_mods/Mods/innawood/furniture_and_terrain/furniture-tools.json index 2778952ab..d2ec02af2 100644 --- a/data/Mainline_mods/Mods/innawood/furniture_and_terrain/furniture-tools.json +++ b/data/Mainline_mods/Mods/innawood/furniture_and_terrain/furniture-tools.json @@ -32,5 +32,53 @@ { "item": "splinter", "count": 1 } ] } + }, + { + "type": "furniture", + "id": "f_bulletin", + "name": "bulletin board", + "description": "A crude approximation of a 'real' bulletin board. Good for pinning various notices for other survivors to read.", + "symbol": "6", + "color": "blue", + "move_cost_mod": -1, + "coverage": 75, + "required_str": -1, + "flags": [ "FLAMMABLE", "ORGANIC", "TRANSPARENT" ], + "max_volume": "120 ml", + "examine_action": "bulletin_board", + "deconstruct": { + "items": [ { "item": "stick", "count": 6 }, { "item": "string_36", "count": 1 }, { "item": "birchbark", "count": [ 2, 6 ] } ] + }, + "bash": { + "str_min": 3, + "str_max": 40, + "sound": "crunch!", + "sound_fail": "whump.", + "items": [ + { "item": "stick", "count": [ 0, 3 ] }, + { "item": "birchbark", "count": [ 2, 4 ] }, + { "item": "splinter", "count": [ 1, 4 ] } + ] + } + }, + { + "type": "construction_group", + "id": "build_innawood_bulletin_board", + "name": "Build Innawood Bulletin Board" + }, + { + "type": "construction", + "id": "constr_innawood_bulletin", + "group": "build_innawood_bulletin_board", + "category": "FURN", + "required_skills": [ [ "fabrication", 0 ] ], + "time": "20 m", + "components": [ + [ [ "stick", 6 ], [ "stick_long", 3 ] ], + [ [ "string_36", 1 ], [ "cordage_36", 1 ] ], + [ [ "birchbark", 6 ], [ "willowbark", 6 ], [ "tanbark", 6 ], [ "alder_bark", 6 ] ] + ], + "pre_special": "check_empty", + "post_terrain": "f_bulletin" } ] diff --git a/data/Mainline_mods/Mods/innawood/furniture_and_terrain/misc.json b/data/Mainline_mods/Mods/innawood/furniture_and_terrain/misc.json new file mode 100644 index 000000000..4b8f7baa9 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/furniture_and_terrain/misc.json @@ -0,0 +1,26 @@ +[ + { + "type": "furniture", + "id": "f_beaver_dam", + "name": "dam", + "description": "A house that beavers built. The entrance is underwater making it harder for predators to access.", + "symbol": "#", + "color": "brown", + "looks_like": "t_wall_log", + "move_cost_mod": 2, + "required_str": -1, + "flags": [ "FLAMMABLE_ASH", "TRANSPARENT" ], + "bash": { + "str_min": 6, + "str_max": 12, + "sound": "crunch.", + "sound_fail": "bonk.", + "items": [ + { "item": "twig", "count": [ 5, 12 ] }, + { "item": "stick", "count": [ 5, 12 ] }, + { "item": "stick_long", "count": [ 5, 12 ] }, + { "item": "splinter", "count": [ 12, 38 ] } + ] + } + } +] diff --git a/data/Mainline_mods/Mods/innawood/furniture_and_terrain/terrain-floors-outdoors.json b/data/Mainline_mods/Mods/innawood/furniture_and_terrain/terrain-floors-outdoors.json index d40182dc5..0ebbba229 100644 --- a/data/Mainline_mods/Mods/innawood/furniture_and_terrain/terrain-floors-outdoors.json +++ b/data/Mainline_mods/Mods/innawood/furniture_and_terrain/terrain-floors-outdoors.json @@ -3,6 +3,7 @@ "type": "terrain", "id": "t_pavement", "name": "pavement", + "connect_groups": "PAVEMENT", "connects_to": "PAVEMENT", "description": "A segment of asphalt, slowly degrading from cracks, frost heaves and lack of maintenance.", "symbol": ".", @@ -21,6 +22,7 @@ "type": "terrain", "id": "t_pavement_y", "name": "yellow pavement", + "connect_groups": "PAVEMENT", "connects_to": "PAVEMENT", "description": "Streaks of carefully aligned yellow paint mark the road to inform drivers not to cross. No one is enforcing these rules anymore.", "symbol": ".", diff --git a/data/Mainline_mods/Mods/innawood/game_balance.json b/data/Mainline_mods/Mods/innawood/game_balance.json new file mode 100644 index 000000000..6766e1fc3 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/game_balance.json @@ -0,0 +1,16 @@ +[ + { + "type": "EXTERNAL_OPTION", + "name": "OVERMAP_PLACE_CITIES", + "info": "Allows to place cities during overmap generation.", + "stype": "bool", + "value": false + }, + { + "type": "EXTERNAL_OPTION", + "name": "OVERMAP_PLACE_ROADS", + "info": "Allows to place procgen roads during overmap generation.", + "stype": "bool", + "value": false + } +] diff --git a/data/Mainline_mods/Mods/innawood/itemgroups/clothing.json b/data/Mainline_mods/Mods/innawood/itemgroups/clothing.json index af0afc354..ff966f5ba 100644 --- a/data/Mainline_mods/Mods/innawood/itemgroups/clothing.json +++ b/data/Mainline_mods/Mods/innawood/itemgroups/clothing.json @@ -1,4 +1,118 @@ [ + { + "id": "clothing_biker", + "type": "item_group", + "subtype": "collection", + "//": "Protective clothing for motorbike riding.", + "items": [ + { "item": "straw_hat" }, + { "item": "leathersandals", "prob": 80 }, + { + "distribution": [ { "collection": [ { "item": "grass_cloak" }, { "item": "skirt_leather", "prob": 80 } ], "prob": 40 } ], + "prob": 80 + } + ] + }, + { + "id": "clothing_glasses", + "type": "item_group", + "subtype": "distribution", + "entries": [ { "item": "null", "prob": 10 } ] + }, + { + "id": "clothing_watch", + "type": "item_group", + "subtype": "distribution", + "entries": [ { "item": "null", "prob": 10 } ] + }, + { + "id": "clothing_hunting", + "type": "item_group", + "//": "Clothes that hunters take on hunting trips.", + "subtype": "distribution", + "entries": [ { "item": "hat_fur", "prob": 50 }, { "item": "leathersandals", "prob": 75 } ] + }, + { + "type": "item_group", + "id": "pants_male", + "subtype": "distribution", + "entries": [ + { "item": "pants_leather", "prob": 60 }, + { "item": "pants_fur", "prob": 5 }, + { "item": "hot_pants_fur", "prob": 5 }, + { "item": "hot_pants_leather", "prob": 25 } + ] + }, + { + "type": "item_group", + "id": "pants_female", + "subtype": "distribution", + "entries": [ { "group": "pants_male", "prob": 200 }, { "item": "skirt_leather", "prob": 5 } ] + }, + { + "type": "item_group", + "id": "pants", + "items": [ [ "leather_belt", 30 ], [ "pants_leather", 60 ], [ "skirt_leather", 5 ], [ "kilt", 2 ] ] + }, + { + "type": "item_group", + "id": "shirts", + "items": [ [ "shirt_straw", 80 ], [ "turtleneck", 10 ], [ "poncho", 10 ] ] + }, + { + "type": "item_group", + "id": "jackets", + "items": [ [ "jacket_leather", 30 ], [ "apron_leather", 1 ] ] + }, + { + "type": "item_group", + "id": "hatstore_hats", + "items": [ + [ "hat_knit", 10 ], + [ "hat_fur", 20 ], + [ "hat_newsboy", 10 ], + [ "hat_sombrero", 10 ], + [ "straw_hat", 100 ], + [ "straw_fedora", 100 ] + ] + }, + { + "type": "item_group", + "id": "large_bags", + "subtype": "distribution", + "entries": [ + { "item": "backpack_leather", "prob": 28 }, + { "item": "wicker_backpack", "prob": 38 }, + { "item": "backpack_hiking", "prob": 3 } + ] + }, + { + "type": "item_group", + "id": "small_bags", + "subtype": "distribution", + "entries": [ { "item": "purse", "prob": 40 }, { "item": "backpack_leather", "prob": 8 } ] + }, + { + "id": "scarfs_unisex", + "type": "item_group", + "//": "unisex scarfs and fabric coverings", + "subtype": "distribution", + "items": [ { "item": "scarf_fur_long", "prob": 10 }, { "item": "scarf_fur", "prob": 20 } ] + }, + { + "id": "shirts_unisex", + "type": "item_group", + "//": "unisex shirts", + "subtype": "distribution", + "items": [ { "item": "turtleneck", "prob": 10 }, { "item": "wool_hoodie", "prob": 10 } ] + }, + { + "id": "shirts_womens", + "type": "item_group", + "//": "womens shirts", + "subtype": "distribution", + "items": [ { "item": "chestwrap_leather", "prob": 30 } ] + }, { "type": "item_group", "id": "female_underwear_top", @@ -24,5 +138,58 @@ "type": "item_group", "id": "male_underwear_bottom", "items": [ [ "null", 40 ], [ "loincloth_leather", 30 ], [ "loincloth_fur", 30 ] ] + }, + { + "id": "coats_unisex", + "type": "item_group", + "//": "unisex coats, jackets, cloaks, etc.", + "subtype": "distribution", + "items": [ + { + "distribution": [ { "item": "cloak_wool", "prob": 10 }, { "item": "cloak_leather", "prob": 20 }, { "item": "cloak_fur", "prob": 10 } ], + "prob": 20 + }, + { + "distribution": [ + { "item": "duster_leather", "prob": 60 }, + { "item": "duster_fur", "prob": 5 }, + { "item": "sleeveless_duster_leather", "prob": 50 }, + { "item": "sleeveless_duster_fur", "prob": 20 } + ], + "prob": 60 + }, + { + "distribution": [ + { "item": "trenchcoat_leather", "prob": 60 }, + { "item": "trenchcoat_fur", "prob": 5 }, + { "item": "sleeveless_trenchcoat_leather", "prob": 30 }, + { "item": "sleeveless_trenchcoat_fur", "prob": 10 } + ], + "prob": 40 + }, + { + "distribution": [ { "item": "peacoat", "prob": 10 }, { "item": "greatcoat", "prob": 10 }, { "item": "coat_fur", "prob": 10 } ], + "prob": 80 + }, + { "distribution": [ { "item": "jacket_leather", "prob": 50 }, { "item": "poncho", "prob": 10 } ], "prob": 60 }, + { "distribution": [ { "item": "vest_leather", "prob": 20 } ], "prob": 40 } + ] + }, + { + "id": "shoes_unisex", + "type": "item_group", + "//": "unisex shoes (there are no men's only shoes)", + "subtype": "distribution", + "items": [ + { "distribution": [ { "item": "straw_sandals", "prob": 20 }, { "item": "leathersandals", "prob": 35 } ], "prob": 60 }, + { "distribution": [ { "item": "mocassins", "prob": 10 } ], "prob": 70 }, + { "distribution": [ { "item": "clogs", "prob": 20 }, { "item": "geta", "prob": 10 } ], "prob": 70 } + ] + }, + { + "type": "item_group", + "id": "common_gloves", + "subtype": "distribution", + "entries": [ { "item": "gloves_leather", "prob": 15 }, { "item": "gloves_wool", "prob": 10 }, { "item": "mittens", "prob": 5 } ] } ] diff --git a/data/Mainline_mods/Mods/innawood/itemgroups/guns.json b/data/Mainline_mods/Mods/innawood/itemgroups/guns.json index 8078fc7e7..129fc2144 100644 --- a/data/Mainline_mods/Mods/innawood/itemgroups/guns.json +++ b/data/Mainline_mods/Mods/innawood/itemgroups/guns.json @@ -90,6 +90,13 @@ "//": "Less common rifles including those only used by police/paramilitary forces.", "items": [ { "group": "guns_rifle_improvised", "prob": 22 } ] }, + { + "type": "item_group", + "id": "guns_rifle_milspec", + "//": "Military specification rifles only ever found at military sites.", + "//2": "Making the assumption any loaded gun will have additional ammo and mags with it.", + "items": [ { "group": "guns_rifle_improvised", "prob": 22 } ] + }, { "type": "item_group", "id": "guns_rifle_obscure", diff --git a/data/Mainline_mods/Mods/innawood/itemgroups/monster_drops_lairs.json b/data/Mainline_mods/Mods/innawood/itemgroups/monster_drops_lairs.json index bf06449d1..7ac62c7de 100644 --- a/data/Mainline_mods/Mods/innawood/itemgroups/monster_drops_lairs.json +++ b/data/Mainline_mods/Mods/innawood/itemgroups/monster_drops_lairs.json @@ -55,5 +55,13 @@ "id": "hive", "subtype": "distribution", "entries": [ { "item": "honeycomb", "prob": 10 } ] + }, + { + "type": "item_group", + "id": "wasp_lair", + "//": "Override for mx_Trapdoor_spider_den, no loot value but even more warning", + "subtype": "distribution", + "ammo": 10, + "entries": [ { "group": "human_parts", "prob": 1 } ] } ] diff --git a/data/Mainline_mods/Mods/innawood/itemgroups/tools.json b/data/Mainline_mods/Mods/innawood/itemgroups/tools.json new file mode 100644 index 000000000..6287c6494 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/itemgroups/tools.json @@ -0,0 +1,14 @@ +[ + { + "id": "tools_common_small", + "type": "item_group", + "//": "Common household tools that are small enough to fit in a bag", + "items": [ + [ "primitive_hammer", 80 ], + [ "stone_chopper", 60 ], + [ "stone_polishing", 30 ], + [ "drill_rock_primitive", 50 ], + [ "sieve_primitive", 20 ] + ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/itemgroups/trash_and_debris.json b/data/Mainline_mods/Mods/innawood/itemgroups/trash_and_debris.json index e7db845ef..d7f463f55 100644 --- a/data/Mainline_mods/Mods/innawood/itemgroups/trash_and_debris.json +++ b/data/Mainline_mods/Mods/innawood/itemgroups/trash_and_debris.json @@ -13,7 +13,6 @@ [ "straw_pile", 80 ], [ "tanbark", 80 ], [ "rock_large", 70 ], - [ "ceramic_shard", 10 ], [ "pine_bough", 70 ], [ "splinter", 70 ], [ "hickory_root", 65 ], diff --git a/data/Mainline_mods/Mods/innawood/items/electronics.json b/data/Mainline_mods/Mods/innawood/items/electronics.json index 612047ea2..4727c7db0 100644 --- a/data/Mainline_mods/Mods/innawood/items/electronics.json +++ b/data/Mainline_mods/Mods/innawood/items/electronics.json @@ -13,8 +13,8 @@ "material": [ "iron", "copper" ], "weight": "113 g", "volume": "1 L", - "bashing": 5, - "to_hit": -1 + "to_hit": -1, + "melee_damage": { "bash": 5 } }, { "id": "magazine_battery_mod", diff --git a/data/Mainline_mods/Mods/innawood/items/lighting.json b/data/Mainline_mods/Mods/innawood/items/lighting.json index 43e04cb0d..325193ce7 100644 --- a/data/Mainline_mods/Mods/innawood/items/lighting.json +++ b/data/Mainline_mods/Mods/innawood/items/lighting.json @@ -51,7 +51,6 @@ "price": 0, "price_postapoc": 0, "to_hit": 1, - "bashing": 8, "material": [ "wood" ], "symbol": "/", "color": "brown", @@ -70,6 +69,7 @@ } ], "techniques": [ "WBLOCK_1" ], - "flags": [ "FIRE", "LIGHT_60", "CHARGEDIM", "FLAMING", "TRADER_AVOID", "WATER_EXTINGUISH", "BURNOUT" ] + "flags": [ "FIRE", "LIGHT_60", "CHARGEDIM", "FLAMING", "TRADER_AVOID", "WATER_EXTINGUISH", "BURNOUT" ], + "melee_damage": { "bash": 8 } } ] diff --git a/data/Mainline_mods/Mods/innawood/items/medical_primitive.json b/data/Mainline_mods/Mods/innawood/items/medical_primitive.json index eb8438e21..b5497b982 100644 --- a/data/Mainline_mods/Mods/innawood/items/medical_primitive.json +++ b/data/Mainline_mods/Mods/innawood/items/medical_primitive.json @@ -6,14 +6,12 @@ "name": { "str": "birchbark bandage" }, "description": "A small roll of birchbark with cord, to tie around wounds to help stop bleeding and protect from dirt. It's better than nothing.", "weight": "70 g", - "volume": "250 ml", - "price": 25, - "price_postapoc": 25, + "volume": "41 ml", + "price": "4 cent", + "price_postapoc": "4 cent", "material": "wood", "symbol": "!", "color": "white", - "charges": 3, - "stack_size": 6, "flags": [ "NO_INGEST", "EDIBLE_FROZEN" ], "use_action": { "type": "heal", "bandages_power": 2, "bleed": 8, "move_cost": 6000 } }, @@ -30,7 +28,6 @@ "material": "wood", "symbol": "!", "color": "white", - "charges": 1, "flags": [ "NO_INGEST", "EDIBLE_FROZEN" ], "use_action": { "type": "heal", "bandages_power": 3, "bleed": 10, "move_cost": 6000 } } diff --git a/data/Mainline_mods/Mods/innawood/items/tool_tailoring.json b/data/Mainline_mods/Mods/innawood/items/tool_tailoring.json index bfb59f36c..c06a36090 100644 --- a/data/Mainline_mods/Mods/innawood/items/tool_tailoring.json +++ b/data/Mainline_mods/Mods/innawood/items/tool_tailoring.json @@ -2,7 +2,7 @@ { "id": "kevlar_shears", "type": "TOOL", - "name": { "str": "pair of Kevlar shears", "str_pl": "pairs of Kevlar shears" }, + "name": { "str": "pair of Kevlar cutters", "str_pl": "pairs of Kevlar cutters" }, "description": "These are a pair of heavy-duty shears with a blade suitable for cutting particularly tough materials, from polyaramid fabrics to tough plastics and thin metals. The blades feature a flat shearing edge and a fine serration.", "ascii_picture": "scissors", "weight": "113 g", @@ -10,13 +10,13 @@ "price": 3500, "price_postapoc": 350, "to_hit": -1, - "cutting": 10, "material": [ "steel", "plastic" ], "symbol": ",", "color": "yellow", "qualities": [ [ "CUT", 2 ], [ "BUTCHER", 5 ], [ "FABRIC_CUT", 2 ], [ "SHEAR", 1 ] ], - "flags": [ "STAB", "BELT_CLIP", "SHEATH_KNIFE" ], - "weapon_category": [ "SHIVS" ] + "flags": [ "BELT_CLIP", "SHEATH_KNIFE" ], + "weapon_category": [ "SHIVS" ], + "melee_damage": { "stab": 10 } }, { "id": "sewing_kit", diff --git a/data/Mainline_mods/Mods/innawood/items/tool_workshop.json b/data/Mainline_mods/Mods/innawood/items/tool_workshop.json index 4a4c0794b..5c08f9631 100644 --- a/data/Mainline_mods/Mods/innawood/items/tool_workshop.json +++ b/data/Mainline_mods/Mods/innawood/items/tool_workshop.json @@ -10,7 +10,6 @@ "price": 5000, "price_postapoc": 1000, "to_hit": -2, - "bashing": 9, "material": [ "steel", "clay" ], "symbol": ";", "color": "dark_gray", @@ -38,6 +37,7 @@ } ], "flags": [ "ALLOWS_REMOTE_USE" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "charcoal": 100 } } ] + "pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "charcoal": 100 } } ], + "melee_damage": { "bash": 9 } } ] diff --git a/data/Mainline_mods/Mods/innawood/mapgen/cave.json b/data/Mainline_mods/Mods/innawood/mapgen/cave.json index 672751f2f..631a2646b 100644 --- a/data/Mainline_mods/Mods/innawood/mapgen/cave.json +++ b/data/Mainline_mods/Mods/innawood/mapgen/cave.json @@ -5,7 +5,6 @@ "om_terrain": [ "cave_innawood" ], "weight": 1000, "object": { - "rotation": [ 0, 3 ], "predecessor_mapgen": "forest_thick", "rows": [ " ", @@ -17,21 +16,21 @@ " ", " ", " ", - " %%%%%%%%% ", - " %%|||||||%% ", - " %|||||||||% ", + " %%%;;%%%% ", + " %%||;;|||%% ", + " %|||;;||||% ", " %||||,,<||% ", " %|||,,||||% ", " %|||,,||||% ", " %%|||,,||%% ", - " %%%%;;%%% ", - " ", - " ", - " ", - " ", - " ", - " ", - " " + " %%|||,,||%% ", + " %%|||,,||%% ", + " %%|||,,||%% ", + " %%||||,||,,||||%% ", + " %||,,,,,||% ", + " %|||,|||% ", + " %%|<|%% ", + " %|||% " ], "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "terrain": { @@ -50,7 +49,6 @@ "om_terrain": [ "cave_innawood" ], "weight": 1000, "object": { - "rotation": [ 0, 3 ], "predecessor_mapgen": "forest_thick", "rows": [ " ", @@ -58,8 +56,8 @@ " ", " %%%%%%%%%%%%%%% ", " %||||||||||||||%% ", - " %|,,,,,,,,,,,,||% ", - " %|,,,||||||||,,|% ", + " ;;,,,,,,,,,,,,||% ", + " ;;,,,||||||||,,|% ", " %|,,|||||||||,,|% ", " %|<||,,,,||||,,|% ", " %|||,,||,,|||,,|% ", @@ -72,11 +70,11 @@ " %|,,,,|||||,,|||% ", " %||||||,,,,,,|||% ", " %|||||,,||||||||% ", - " %%|||;;||||||||%% ", - " %%%%;;%%%%%%%%% ", - " ", - " ", - " " + " %%||||,|||,||||%% ", + " %||,,,,,||% ", + " %|||,|||% ", + " %%|<|%% ", + " %|||% " ], "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "terrain": { @@ -95,7 +93,6 @@ "om_terrain": [ "cave_innawood" ], "weight": 1000, "object": { - "rotation": [ 0, 3 ], "predecessor_mapgen": "forest_thick", "rows": [ " ", @@ -103,8 +100,8 @@ " ", " %%%%%%%%%%%%%%% ", " %||||||||||||||%% ", - " %|,,,WW,,,,WW,||% ", - " %|,,,||||||||,,|% ", + " ;;,,,WW,,,,WW,||% ", + " ;;,,,||||||||,,|% ", " %|WW|||||||||,,|% ", " %|<||W,,,||||,,|% ", " %|||,W||,,|||,,|% ", @@ -117,11 +114,11 @@ " %|WWWW|||||,,|||% ", " %||||||,,,,,,|||% ", " %|||||,,||||||||% ", - " %%|||;;||||||||%% ", - " %%%%;;%%%%%%%%% ", - " ", - " ", - " " + " %%||||,|||,||||%% ", + " %||,,W,,||% ", + " %|||,|||% ", + " %%|<|%% ", + " %|||% " ], "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "terrain": { @@ -143,7 +140,6 @@ "om_terrain": [ "cave_innawood" ], "weight": 1000, "object": { - "rotation": [ 0, 3 ], "predecessor_mapgen": "forest_thick", "rows": [ " ", @@ -157,7 +153,7 @@ " %||||||||,,W,,||% ", " %|,|,,,,||||,,||% ", " %|,|W||,,||||,,,; ", - " %,,|,,||,<|||,,,; ", + " %,,|,,||,,|||,,,; ", " %|W||,,||||,,,||% ", " %|,,||,,|||,,|||% ", " %||,,||,,W,,||,|% ", @@ -165,11 +161,11 @@ " %||||,,,|||,,W,|% ", " %||||,||||||||||% ", " %|||,,,,W,,,,,||% ", - " %%|||||||||||||%% ", - " %%%%%%%%%%%%%%% ", - " ", - " ", - " " + " %%||||||||,||||%% ", + " %||,,W,,||% ", + " %|||,|||% ", + " %%|<|%% ", + " %|||% " ], "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "terrain": { @@ -190,7 +186,6 @@ "om_terrain": [ "cave_innawood" ], "weight": 1000, "object": { - "rotation": [ 0, 3 ], "predecessor_mapgen": "forest_thick", "rows": [ " ", @@ -204,7 +199,7 @@ " %||||||||,,B,,||% ", " %|,|,,,,||||,,||% ", " %|,|,||,,||||,,,; ", - " %,,|BB||,<|||,,,; ", + " %,,|BB||,,|||,,,; ", " %|,||,,||||,,,||% ", " %|,B||,,|||,,|||% ", " %||,,||,BBB,||,|% ", @@ -212,11 +207,11 @@ " %||||,,,|||,,,,|% ", " %||||,||||||||||% ", " %|||BB,,,,,,,,||% ", - " %%|||||||||||||%% ", - " %%%%%%%%%%%%%%% ", - " ", - " ", - " " + " %%||||||||,||||%% ", + " %||,,,,,||% ", + " %|||,|||% ", + " %%|<|%% ", + " %|||% " ], "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "terrain": { @@ -237,7 +232,6 @@ "om_terrain": [ "cave_innawood" ], "weight": 1000, "object": { - "rotation": [ 0, 3 ], "predecessor_mapgen": "forest_thick", "rows": [ " ", @@ -251,7 +245,7 @@ " %||||||||,,,,,||% ", " %|,|,,,,||||,,||% ", " %|W|,||,B||||,,,; ", - " %,,|,,||,<|||,,,; ", + " %,,|,,||,,|||,,,; ", " %|,||,,||||,,,||% ", " %|,,||,,|||,,|||% ", " %||,,||,,,,,||,|% ", @@ -259,11 +253,11 @@ " %||||,W,|||,,,,|% ", " %||||,||||||||||% ", " %|||,,,,,,,W,,||% ", - " %%|||||||||||||%% ", - " %%%%%%%%%%%%%%% ", - " ", - " ", - " " + " %%||||||||,||||%% ", + " %||,,W,,||% ", + " %|||,|||% ", + " %%|<|%% ", + " %|||% " ], "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "terrain": { @@ -286,7 +280,6 @@ "om_terrain": [ "cave_innawood" ], "weight": 1000, "object": { - "rotation": [ 0, 3 ], "predecessor_mapgen": "forest_thick", "rows": [ " ", @@ -298,7 +291,7 @@ " %||,,,,,,|||,,||% ", " %||,,||||,,|||,,||% ", " %|||W||||||,,|||,,||% ", - " %||||,,,,,|||,,|||<||% ", + " %||||,,,,,|||,,|||,||% ", " %|||||||||||||,,|||||% ", " %||||,,,,,,W,,,,,,,,,; ", " %|||,,|||,||,,,,,,,,,; ", @@ -310,9 +303,9 @@ " %||,,|||,,||||% ", " %||,,|||,,||% ", " %||,,W,,||% ", - " %|||||||% ", - " %%%%%%% ", - " " + " %|||,|||% ", + " %%|<|%% ", + " %|||% " ], "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "terrain": { @@ -334,7 +327,6 @@ "om_terrain": [ "cave_innawood" ], "weight": 1000, "object": { - "rotation": [ 0, 3 ], "predecessor_mapgen": "forest_thick", "rows": [ " ", @@ -346,7 +338,7 @@ " %||,,W,,,|||,,||% ", " %||,,||||,,|||,W||% ", " %|||,||||||,,|||,,||% ", - " %||||,,W,,|||,,|||<||% ", + " %||||,,W,,|||,,|||,||% ", " %|||||||||||||,,|||||% ", " %||||,,,,,W,,,,,,,,,,; ", " %|||,,|||,||,,,,,,,,,; ", @@ -358,9 +350,9 @@ " %||,,|||,,||||% ", " %||,,|||,,||% ", " %||,,W,,||% ", - " %|||||||% ", - " %%%%%%% ", - " " + " %|||W|||% ", + " %%|<|%% ", + " %|||% " ], "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], "terrain": { @@ -398,7 +390,7 @@ " %|||,,||||,,||||% ", " %||,,,|||||,,|||% ", " %||,,,|||||,,|||% ", - " %||||||,,,,,q|||% ", + " %||||||,,,,,,|||% ", " %|||||,,||||||||% ", " %%|||;;||||||||%% ", " %;;|;;;;;%%%%%% ", @@ -431,8 +423,7 @@ "!": { "field": "fd_gibs_flesh", "intensity": 2, "age": 10 }, "?": { "field": "fd_blood", "intensity": 2, "age": 10 }, "#": { "field": "fd_blood", "intensity": 3, "age": 10 } - }, - "monster": { "q": { "monster": "mon_rabbit_dreadful" } } + } } }, { @@ -441,7 +432,6 @@ "om_terrain": [ "cave_underground_innawood" ], "weight": 50, "object": { - "rotation": [ 0, 3 ], "rows": [ "........................", ".......~~~~~~~~~~~......", @@ -465,8 +455,8 @@ ".........~~~~~~~~.......", "..........~~~~~~~.......", "............,...........", - "............,...........", - "............>..........." + "............>...........", + "........................" ], "terrain": { ".": "t_soil", ",": "t_dirt_underground", "W": "t_dirt_underground", ">": "t_slope_up", "~": "t_water_dp" }, "furniture": { "W": "f_boulder_small" }, @@ -486,7 +476,6 @@ "weight": 1000, "object": { "fill_ter": "t_dirt_underground", - "rotation": [ 0, 3 ], "rows": [ "........................", "........................", @@ -510,8 +499,8 @@ "...~~~~~~...,...........", ".....~~~....,...........", "............,...........", - "............,...........", - "............>..........." + "............>...........", + "........................" ], "terrain": { ".": "t_soil", ",": "t_dirt_underground", ">": "t_slope_up" }, "furniture": { }, @@ -531,14 +520,13 @@ "weight": 800, "object": { "fill_ter": "t_dirt_underground", - "rotation": [ 0, 3 ], "rows": [ "........................", ".......... 1 .....", "... ... ....... ....", "...1.. .. .. .. ...", "... ... .. ..1 ..", - "... .... ... M .. ..", + "... .... ... .. ..", "... .... .. .. ..", ".... .... .. .. ..", "..... .... ......1 ...", @@ -555,13 +543,12 @@ ".. 1.......... 1 ....", "... ........ .........", ".... 1 ..........", - "............ ...........", - "............>..........." + "............>...........", + "........................" ], "terrain": { ".": "t_soil", " ": "t_dirt_underground", ">": "t_slope_up" }, "furniture": { }, - "items": { "1": { "item": "cave_minerals", "chance": 40, "repeat": [ 1, 3 ] } }, - "monster": { "M": { "monster": "mon_nakedmolerat_giant" }, " ": { "monster": "mon_nakedmolerat_giant", "chance": 2 } } + "items": { "1": { "item": "cave_minerals", "chance": 40, "repeat": [ 1, 3 ] } } } }, { @@ -571,7 +558,6 @@ "weight": 500, "object": { "fill_ter": "t_dirt_underground", - "rotation": [ 0, 3 ], "rows": [ "........................", "........................", @@ -595,8 +581,8 @@ ".........,,,,..,,.......", ".........,,,..,,........", "..........,,.,,.........", - "...........,,,..........", - "............>..........." + "...........,>,..........", + "........................" ], "terrain": { ".": "t_soil", ",": "t_dirt_underground", ">": "t_slope_up" }, "items": { "!": { "item": "cave_minerals", "chance": 100, "repeat": [ 1, 3 ] } }, @@ -610,7 +596,6 @@ "weight": 250, "object": { "fill_ter": "t_dirt_underground", - "rotation": [ 0, 3 ], "rows": [ "........................", "........................", @@ -634,8 +619,8 @@ ".... a ..... .", "............ .... a .", "............6.... .", - "............ .... . .", - "............>..........." + "............>.... . .", + "........................" ], "terrain": { ".": "t_soil", " ": "t_dirt_underground", ">": "t_slope_up" }, "items": { "a": { "item": "cave_minerals", "chance": 40, "repeat": [ 1, 3 ] } }, @@ -657,7 +642,6 @@ "weight": 700, "object": { "fill_ter": "t_dirt_underground", - "rotation": [ 0, 3 ], "rows": [ "........................", ".......11111111111......", @@ -681,8 +665,8 @@ "........... ..........", "........... ..........", "........... ..........", - "........... ..........", - "............>..........." + "........... > ..........", + "........................" ], "terrain": { ".": "t_soil", " ": "t_dirt_underground", ">": "t_slope_up", "2": "t_railroad_track_small" }, "furniture": { }, @@ -753,7 +737,7 @@ ".%%%%||||rr rr||||%%%.", ".%%%%||||rr rr||||%%%.", ".%%%%|||| ||||%%%.", - ".%%%%|||| K ||||%%%.", + ".%%%%|||| ||||%%%.", ".%%%%|||| ||||%%%.", ".%%%%||||rr rr||||%%%.", "..%%%||||rr rr||||%%%.", @@ -774,7 +758,7 @@ "<": "t_slope_up" }, "furniture": { }, - "monster": { "K": { "monster": "mon_rat_king" }, "r": { "monster": "mon_sewer_rat" } }, + "monster": { "r": { "monster": "mon_sewer_rat" } }, "item": { "l": { "item": "bone", "chance": 50, "repeat": [ 1, 3 ] } } } }, diff --git a/data/Mainline_mods/Mods/innawood/mapgen/stream.json b/data/Mainline_mods/Mods/innawood/mapgen/stream.json new file mode 100644 index 000000000..77432bfa2 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/mapgen/stream.json @@ -0,0 +1,278 @@ +[ + { + "om_terrain": "stream", + "type": "mapgen", + "method": "json", + "weight": 1, + "object": { + "fill_ter": "t_region_groundcover", + "fallback_predecessor_mapgen": "field", + "rows": [ + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~11222 ", + " 22211~~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~11222 " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "stream_palette" ], + "place_monster": [ { "group": "GROUP_STREAM", "x": 10, "y": 10, "chance": 25, "use_pack_size": true } ] + } + }, + { + "om_terrain": "stream", + "type": "mapgen", + "method": "json", + "weight": 10, + "object": { + "fill_ter": "t_region_groundcover", + "fallback_predecessor_mapgen": "field", + "rows": [ + " 22211~~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~11222 ", + " 22211~~11222 ", + " 22211~~11222 " + ], + "place_nested": [ + { + "chunks": [ + [ "null", 500 ], + [ "stream_4x4_ll_01", 100 ], + [ "stream_4x4_ll_02", 100 ], + [ "stream_4x4_ll_03", 50 ], + [ "stream_4x4_ll_04", 300 ], + [ "stream_4x4_ll_05", 50 ], + [ "stream_4x4_ll_06", 300 ] + ], + "x": 6, + "y": 3 + }, + { + "chunks": [ + [ "null", 500 ], + [ "stream_4x4_ll_01", 100 ], + [ "stream_4x4_ll_02", 100 ], + [ "stream_4x4_ll_03", 300 ], + [ "stream_4x4_ll_04", 300 ], + [ "stream_4x4_ll_05", 50 ], + [ "stream_4x4_ll_06", 300 ] + ], + "x": 8, + "y": 13 + }, + { + "chunks": [ + [ "null", 500 ], + [ "stream_4x4_lr_01", 100 ], + [ "stream_4x4_lr_02", 100 ], + [ "stream_4x4_lr_03", 300 ], + [ "stream_4x4_lr_04", 300 ], + [ "stream_4x4_lr_05", 500 ], + [ "stream_4x4_lr_06", 300 ] + ], + "x": 10, + "y": 15 + }, + { "chunks": [ [ "null", 500 ], [ "stream_8x8_ll_01", 20 ], [ "stream_8x8_ll_02", 100 ] ], "x": 8, "y": 2 } + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "stream_palette" ], + "place_monster": [ { "group": "GROUP_STREAM", "x": 10, "y": 10, "chance": 25, "use_pack_size": true } ] + } + }, + { + "om_terrain": "stream_end", + "type": "mapgen", + "method": "json", + "object": { + "fill_ter": "t_region_groundcover", + "fallback_predecessor_mapgen": "field", + "rows": [ + " 222111222 ", + " 22211-11222 ", + " 22211----11222 ", + " 22211---------11222 ", + "22211------------11222 ", + "22211-------------11222 ", + " 22211------------11222 ", + "22211--------------11222", + "22211--------------11222", + "22211------------11222 ", + " 22211-------11222 ", + " 22211----11222 ", + " 22211~~~11222 ", + " 22211~~~11222 ", + " 22211~~11222 ", + " 22211~~~~11222 ", + " 22211~~~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~11222 " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "stream_palette" ], + "terrain": { "-": "t_water_sh" }, + "place_monster": [ { "group": "GROUP_STREAM", "x": 10, "y": 10, "chance": 25, "use_pack_size": true } ] + } + }, + { + "om_terrain": "stream_corner", + "type": "mapgen", + "method": "json", + "weight": 1, + "object": { + "fill_ter": "t_region_groundcover", + "fallback_predecessor_mapgen": "field", + "rows": [ + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~~11222 ", + " 22211~~11222 ", + "22 22211~~11222 ", + "222 22211~~~11222 ", + "2222222111~~11222 ", + "11222211111~~11222 ", + "1111111~1111~~11222 ", + "~~111~~~~111~~11222 ", + "~~~~~~~1~~111~~11222 ", + "11~~~1111~~~~~11222 ", + "211~1122211~~11222 ", + "22111222221111222 ", + "2221222222211222 ", + " 22222 222222 ", + " 222 2222 ", + " 2 22 ", + " ", + " ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "stream_palette" ], + "place_monster": [ { "group": "GROUP_STREAM", "x": 10, "y": 10, "chance": 25, "use_pack_size": true } ] + } + }, + { + "om_terrain": "stream_corner", + "type": "mapgen", + "method": "json", + "weight": 10, + "object": { + "fill_ter": "t_region_groundcover", + "fallback_predecessor_mapgen": "field", + "rows": [ + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~11222 ", + " 22211~~~11222 ", + " 22211~~11222 ", + "22 22 22211~~~11222 ", + "2222222222 22211~~~1122", + "222222222222 22211~~112", + "11222211222222222211~~11", + "11111111112222222211~~11", + "~~1111~~1111222222211~~1", + "~~~~~~~~~~1111121111~~~1", + "11~~~111~~~~1111111~~~11", + "11111111111~~~~11~~~1112", + "2211122211111~~~~~~11122", + "222222222221111~~111222 ", + "22222222222221111112222 ", + " 222 22222221122222 ", + " 222222222 ", + " 222222 ", + " 22 ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "stream_palette" ], + "place_monster": [ { "group": "GROUP_STREAM", "x": 10, "y": 10, "chance": 25, "use_pack_size": true } ] + } + }, + { + "om_terrain": "stream_corner", + "type": "mapgen", + "method": "json", + "weight": 50, + "object": { + "fill_ter": "t_region_groundcover", + "fallback_predecessor_mapgen": "field", + "rows": [ + " 22211~~11222 ", + " 22211~~~11222 ", + " 22211~11222 ", + " 222211~11222 ", + " 222211~~11222 ", + "22211~~~11222 ", + "2211~~11222 ", + "11~~~11222 ", + "1~~11222 ", + "11~~11222 ", + "1~~~11222 ", + "~~~11222 ", + "~~11222 ", + "111222 ", + "11222 ", + "2222 ", + "222 ", + "22 ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "palettes": [ "stream_palette" ], + "place_monster": [ { "group": "GROUP_STREAM", "x": 10, "y": 10, "chance": 25, "use_pack_size": true } ] + } + } +] diff --git a/data/Mainline_mods/Mods/innawood/mapgen/stream_nested.json b/data/Mainline_mods/Mods/innawood/mapgen/stream_nested.json new file mode 100644 index 000000000..ac08a88a8 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/mapgen/stream_nested.json @@ -0,0 +1,244 @@ +[ + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_ll_01", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + " .~ ", + "..~ ", + "...~", + " ..~" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { ".": "t_clay", "~": "t_water_moving_sh" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_ll_02", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + " .~ ", + "...~", + " ..~", + ". ~~" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { ".": "t_clay", "~": "t_water_moving_sh" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_ll_03", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + ",i~ ", + "iii~", + "iii~", + ",i~ " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "i": "t_water_moving_sh", "~": "t_water_moving_sh", ",": "t_grass_long" }, + "furniture": { "i": "f_cattails" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_ll_04", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + ",i~ ", + ",,i~", + " ,i~", + ",i~~" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "i": "t_water_moving_sh", "~": "t_water_moving_sh", ",": "t_grass_long" }, + "furniture": { "i": "f_cattails" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_ll_05", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + " ~ ", + " ~ ", + " # ~", + " ~" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "#": "t_dirtmound", "~": "t_water_moving_sh" }, + "place_monster": [ { "monster": "mon_squirrel_red", "x": 2, "y": 3 } ], + "place_loot": [ { "item": "hazelnut", "x": 1, "y": 2 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_ll_06", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + ",i~ ", + ",ii~", + ",,i~", + ",i~ " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "i": "t_water_moving_sh", "~": "t_water_moving_sh", ",": "t_grass_long" }, + "furniture": { "i": "f_cattails" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_lr_01", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + " ~. ", + "~.. ", + "~.. ", + " ~ " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { ".": "t_clay", "~": "t_water_moving_sh" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_lr_02", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + " ~. ", + " ~..", + "~.. ", + "~. " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { ".": "t_clay", "~": "t_water_moving_sh" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_lr_03", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + " ~i,", + "~ii,", + "~ii,", + " ~i," + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "i": "t_water_moving_sh", "~": "t_water_moving_sh", ",": "t_grass_long" }, + "furniture": { "i": "f_cattails" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_lr_04", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + " ~i,", + "~ii,", + "~i, ", + " ~,," + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "i": "t_water_moving_sh", "~": "t_water_moving_sh", ",": "t_grass_long" }, + "furniture": { "i": "f_cattails" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_lr_05", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + " ~~ ", + "~~~~", + "~~~ ", + " ~ ~" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "#": "t_dirtmound", "~": "t_water_moving_sh" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_4x4_lr_06", + "object": { + "mapgensize": [ 4, 4 ], + "rows": [ + "~i, ", + "~i, ", + "~~i,", + "~~i," + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "i": "t_water_moving_sh", "~": "t_water_moving_sh", ",": "t_grass_long" }, + "furniture": { "i": "f_cattails" } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_8x8_ll_01", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + " ----^ ", + "^-------", + " -------", + "-------^", + "------- ", + " #### ", + " ~ ^ ", + "^ ~^ ^" + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "-": "t_water_sh", "~": "t_water_moving_sh", ",": "t_grass_long", "^": "t_stump" }, + "furniture": { "#": "f_beaver_dam" }, + "place_monster": [ { "monster": "mon_beaver", "x": [ 0, 8 ], "y": [ 0, 8 ], "repeat": 8 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "stream_8x8_ll_02", + "object": { + "mapgensize": [ 8, 8 ], + "rows": [ + " ,~~,, ", + " ,,~,,~,", + " ,~~,,, ", + ",~,,,,, ", + ",~~,,,~,", + " ,~,,~, ", + " ,~~~, ", + ", ,~~, " + ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "terrain": { "~": "t_water_moving_sh", ",": "t_grass_long" } + } + } +] diff --git a/data/Mainline_mods/Mods/innawood/mapgen_palettes/misc_palettes.json b/data/Mainline_mods/Mods/innawood/mapgen_palettes/misc_palettes.json new file mode 100644 index 000000000..0a7527b37 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/mapgen_palettes/misc_palettes.json @@ -0,0 +1,36 @@ +[ + { + "type": "palette", + "id": "stream_palette", + "terrain": { + " ": "t_null", + "~": "t_water_moving_sh", + "1": [ + [ "t_null", 100 ], + [ "t_sand", 1 ], + [ "t_clay", 4 ], + [ "t_grass_long", 900 ], + [ "t_region_shrub_forest", 20 ], + [ "t_region_tree_forest", 20 ] + ], + "2": [ [ "t_null", 150 ], [ "t_grass_long", 10 ], [ "t_region_shrub_forest", 1 ], [ "t_region_tree_forest", 1 ] ] + }, + "furniture": { + " ": "f_null", + "1": [ + [ "f_null", 800 ], + [ "f_region_weed", 10 ], + [ "f_boulder_small", 3 ], + [ "f_boulder_medium", 2 ], + [ "f_boulder_large", 1 ] + ], + "2": [ + [ "f_null", 1400 ], + [ "f_region_weed", 10 ], + [ "f_boulder_small", 3 ], + [ "f_boulder_medium", 2 ], + [ "f_boulder_large", 1 ] + ] + } + } +] diff --git a/data/Mainline_mods/Mods/innawood/materials.json b/data/Mainline_mods/Mods/innawood/materials.json index 13d9ffff5..90bb0bf0c 100644 --- a/data/Mainline_mods/Mods/innawood/materials.json +++ b/data/Mainline_mods/Mods/innawood/materials.json @@ -8,13 +8,6 @@ "specific_heat_solid": 0.02, "latent_heat": 205, "soft": true, - "reinforces": true, - "bash_resist": 1, - "cut_resist": 1, - "bullet_resist": 1, - "acid_resist": 3, - "fire_resist": 0, - "elec_resist": 2, "chip_resist": 6, "wind_resist": 70, "repaired_with": "cotton_patchwork", @@ -27,7 +20,8 @@ { "fuel": 1, "smoke": 1, "burn": 1, "volume_per_turn": "1250 ml" }, { "fuel": 1, "smoke": 1, "burn": 1 }, { "fuel": 1, "smoke": 1, "burn": 2 } - ] + ], + "resist": { "bash": 1, "cut": 1, "acid": 3, "heat": 0, "bullet": 1, "electric": 2 } }, { "type": "material", @@ -38,12 +32,6 @@ "specific_heat_solid": 0.02, "latent_heat": 205, "soft": true, - "reinforces": true, - "bash_resist": 1, - "cut_resist": 1, - "bullet_resist": 1, - "acid_resist": 3, - "fire_resist": 0, "chip_resist": 6, "breathability": "AVERAGE", "wind_resist": 70, @@ -56,6 +44,7 @@ { "fuel": 1, "smoke": 1, "burn": 1, "volume_per_turn": "1250 ml" }, { "fuel": 1, "smoke": 1, "burn": 1 }, { "fuel": 1, "smoke": 1, "burn": 2 } - ] + ], + "resist": { "bash": 1, "cut": 1, "acid": 3, "heat": 0, "bullet": 1 } } ] diff --git a/data/Mainline_mods/Mods/innawood/mining/furniture_and_terrain/terrain-walls.json b/data/Mainline_mods/Mods/innawood/mining/furniture_and_terrain/terrain-walls.json index 90e2e5d25..d3e13b984 100644 --- a/data/Mainline_mods/Mods/innawood/mining/furniture_and_terrain/terrain-walls.json +++ b/data/Mainline_mods/Mods/innawood/mining/furniture_and_terrain/terrain-walls.json @@ -34,7 +34,8 @@ { "item": "chunk_aluminum", "count": [ 0, 3 ], "prob": 3 }, { "item": "chunk_cassiterite", "count": [ 2, 4 ], "prob": 10 }, { "item": "chunk_galena", "count": [ 2, 4 ], "prob": 10 }, - { "item": "chunk_hematite", "count": [ 2, 2 ], "prob": 10 } + { "item": "chunk_hematite", "count": [ 2, 2 ], "prob": 10 }, + { "item": "chunk_cinnabar", "count": [ 1, 3 ], "prob": 15 } ] } } diff --git a/data/Mainline_mods/Mods/innawood/mining/items/ore.json b/data/Mainline_mods/Mods/innawood/mining/items/ore.json index 7a8564b9e..4e7e81d73 100644 --- a/data/Mainline_mods/Mods/innawood/mining/items/ore.json +++ b/data/Mainline_mods/Mods/innawood/mining/items/ore.json @@ -8,12 +8,12 @@ "category": "spare_parts", "description": "A chunk of iron-rich earth. Could be refined with a bloomery.", "price": 531, - "bashing": 7, "price_postapoc": 10, "material": [ "iron" ], "weight": "1000 g", "volume": "235 ml", - "to_hit": -1 + "to_hit": -1, + "melee_damage": { "bash": 7 } }, { "type": "GENERIC", @@ -28,7 +28,7 @@ "volume": "1 L", "//": "Density of one liter of copper, item is native metal.", "weight": "8960 g", - "bashing": 2 + "melee_damage": { "bash": 2 } }, { "type": "GENERIC", @@ -43,7 +43,7 @@ "volume": "1 L", "//": "Density of one liter of silver, item is native metal.", "weight": "10490 g", - "bashing": 3 + "melee_damage": { "bash": 3 } }, { "type": "GENERIC", @@ -58,7 +58,7 @@ "volume": "1 L", "//": "Density of one liter of gold, item is native metal. Massivelly heavy.", "weight": "19320 g", - "bashing": 4 + "melee_damage": { "bash": 4 } }, { "type": "GENERIC", @@ -73,7 +73,7 @@ "volume": "1 L", "//": "Density of one liter of aluminum, item is native metal.", "weight": "2700 g", - "bashing": 1 + "melee_damage": { "bash": 1 } }, { "type": "GENERIC", @@ -88,7 +88,7 @@ "volume": "1 L", "//": "One liter, roughly 6.26 grams per cubic centimeter.", "weight": "6260 g", - "bashing": 2 + "melee_damage": { "bash": 2 } }, { "type": "GENERIC", @@ -103,7 +103,7 @@ "volume": "1 L", "//": "One liter, roughly 7.6 grams per cubic centimeter.", "weight": "7600 g", - "bashing": 3 + "melee_damage": { "bash": 3 } }, { "type": "GENERIC", @@ -118,6 +118,21 @@ "volume": "1 L", "//": "One liter, roughly 5.04 grams per cubic centimeter.", "weight": "5040 g", - "bashing": 2 + "melee_damage": { "bash": 2 } + }, + { + "type": "GENERIC", + "id": "chunk_cinnabar", + "category": "spare_parts", + "price": 250, + "name": { "str": "chunk of cinnabar ", "str_pl": "chunks of cinnabar" }, + "symbol": "*", + "color": "brown", + "description": "A large chunk of cinnabar, an ore of mercury. It is also the historic source for vermilion pigment.", + "material": "stone", + "volume": "1 L", + "//": "One liter, roughly 8.1 grams per cubic centimeter.", + "weight": "8100 g", + "melee_damage": { "bash": 2 } } ] diff --git a/data/Mainline_mods/Mods/innawood/mining/recipes/smelting.json b/data/Mainline_mods/Mods/innawood/mining/recipes/smelting.json index e95f218b4..14788aa20 100644 --- a/data/Mainline_mods/Mods/innawood/mining/recipes/smelting.json +++ b/data/Mainline_mods/Mods/innawood/mining/recipes/smelting.json @@ -11,12 +11,47 @@ "difficulty": 1, "time": "9 h", "batch_time_factors": [ 95, 2 ], - "reversible": true, "autolearn": true, "tools": [ [ [ "bloomery", 41 ] ] ], "qualities": [ { "id": "HAMMER", "level": 1 } ], "components": [ [ [ "iron_ore", 17 ] ] ] }, + { + "result": "steel_chunk", + "type": "recipe", + "id_suffix": "from ore", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "proficiencies": [ { "proficiency": "prof_metallurgy" } ], + "difficulty": 1, + "time": "9 h", + "batch_time_factors": [ 95, 2 ], + "autolearn": true, + "result_mult": 4, + "tools": [ [ [ "bloomery", 41 ] ] ], + "qualities": [ { "id": "HAMMER", "level": 1 } ], + "components": [ [ [ "iron_ore", 17 ] ] ] + }, + { + "result": "scrap", + "type": "recipe", + "id_suffix": "from ore", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "proficiencies": [ { "proficiency": "prof_metallurgy" } ], + "difficulty": 1, + "time": "9 h", + "batch_time_factors": [ 95, 2 ], + "autolearn": true, + "result_mult": 20, + "tools": [ [ [ "bloomery", 41 ] ] ], + "qualities": [ { "id": "HAMMER", "level": 1 } ], + "components": [ [ [ "iron_ore", 17 ] ] ] + }, { "result": "copper", "type": "recipe", @@ -165,5 +200,69 @@ [ [ "material_shrd_limestone", 1 ], [ "material_limestone", 10 ] ], [ [ "charcoal", 10 ], [ "coal_lump", 10 ] ] ] + }, + { + "result": "steel_chunk", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "id_suffix": "smelt", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 90, 4 ], + "autolearn": true, + "book_learn": [ [ "textbook_armschina", 3 ], [ "textbook_fabrication", 3 ], [ "welding_book", 3 ] ], + "//": "Hematite has around 70% yield of iron, total yield here is just over 69% at 3500 grams of steel. Estimated 2% carbon content has minimal effect on these numbers. Magnetite has around 80% yield, but ironsand isn't pure magnetite.", + "result_mult": 15, + "using": [ [ "forging_standard", 4 ] ], + "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ + [ [ "chunk_hematite", 1 ] ], + [ [ "material_shrd_limestone", 1 ], [ "material_limestone", 10 ] ], + [ [ "charcoal", 10 ], [ "coal_lump", 10 ] ] + ] + }, + { + "result": "scrap", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "id_suffix": "smelt", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "difficulty": 4, + "time": "60 m", + "batch_time_factors": [ 90, 4 ], + "autolearn": true, + "book_learn": [ [ "textbook_armschina", 3 ], [ "textbook_fabrication", 3 ], [ "welding_book", 3 ] ], + "//": "Hematite has around 70% yield of iron, total yield here is just over 69% at 3500 grams of steel. Estimated 2% carbon content has minimal effect on these numbers. Magnetite has around 80% yield, but ironsand isn't pure magnetite.", + "result_mult": 75, + "using": [ [ "forging_standard", 4 ] ], + "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ + [ [ "chunk_hematite", 1 ] ], + [ [ "material_shrd_limestone", 1 ], [ "material_limestone", 10 ] ], + [ [ "charcoal", 10 ], [ "coal_lump", 10 ] ] + ] + }, + { + "result": "mercury", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "id_suffix": "smelt", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "difficulty": 4, + "skills_required": [ [ "chemistry", 3 ] ], + "time": "2 h", + "batch_time_factors": [ 20, 4 ], + "//": "handwaves crushing cinnabar to avoid extra micro and recipe, added an extra hour to simulate crushing", + "autolearn": true, + "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "DISTILL", "level": 1 } ], + "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 250 ] ] ], + "components": [ [ [ "chunk_cinnabar", 1 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/innawood/modinfo.json b/data/Mainline_mods/Mods/innawood/modinfo.json index 2d49f2c39..00b1bfb48 100644 --- a/data/Mainline_mods/Mods/innawood/modinfo.json +++ b/data/Mainline_mods/Mods/innawood/modinfo.json @@ -5,7 +5,7 @@ "name": "Innawood", "authors": [ "Lightwave" ], "maintainers": [ "Lightwave" ], - "description": "An untouched land that mankind has yet to reach. Disables most traces of civilization for that 'innawood' experience. Recommend size of cities be set to 0.", + "description": "An untouched land that mankind has yet to reach. Disables most traces of civilization for that 'innawood' experience.", "category": "total_conversion", "dependencies": [ "dda" ], "obsolete": false diff --git a/data/Mainline_mods/Mods/innawood/monsterdrops/zombie.json b/data/Mainline_mods/Mods/innawood/monsterdrops/zombie.json new file mode 100644 index 000000000..d543152fd --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/monsterdrops/zombie.json @@ -0,0 +1,12 @@ +[ + { + "type": "item_group", + "subtype": "collection", + "id": "mon_zombie_hulk_death_drops", + "entries": [ + { "item": "cotton_patchwork", "damage": [ 1, 4 ], "count": [ 1, 4 ] }, + { "group": "pants", "damage": [ 1, 4 ] }, + { "group": "default_zombie_items" } + ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/monsterdrops/zombie_child.json b/data/Mainline_mods/Mods/innawood/monsterdrops/zombie_child.json new file mode 100644 index 000000000..6a771f1c4 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/monsterdrops/zombie_child.json @@ -0,0 +1,52 @@ +[ + { + "type": "item_group", + "subtype": "collection", + "//": "contains cloth for an average zombie child", + "id": "default_zombie_children_clothes", + "entries": [ + { "distribution": [ { "group": "coats_unisex", "prob": 90, "damage": [ 1, 4 ] } ], "prob": 20 }, + { "group": "common_gloves", "damage": [ 1, 4 ], "prob": 20 }, + { "distribution": [ { "group": "hatstore_hats", "prob": 50, "damage": [ 1, 4 ] } ], "prob": 20 }, + { "group": "scarfs_unisex", "damage": [ 1, 4 ], "prob": 20 }, + { + "distribution": [ + { + "collection": [ + { "distribution": [ { "group": "male_underwear", "prob": 90, "damage": [ 1, 4 ] } ] }, + { + "distribution": [ + { + "collection": [ + { "group": "pants_male", "prob": 60, "damage": [ 1, 4 ] }, + { "group": "shirts_unisex", "prob": 60, "damage": [ 1, 4 ] }, + { "item": "leather_belt", "prob": 30, "damage": [ 1, 4 ] } + ] + } + ] + }, + { "distribution": [ { "group": "shoes_unisex", "prob": 50, "damage": [ 1, 4 ] } ], "prob": 30 } + ] + }, + { + "collection": [ + { "group": "female_underwear", "prob": 90, "damage": [ 1, 4 ] }, + { + "distribution": [ + { + "collection": [ + { "group": "pants_female", "prob": 60, "damage": [ 1, 4 ] }, + { "distribution": [ { "group": "shoes_unisex", "prob": 30, "damage": [ 1, 4 ] } ], "prob": 30 }, + { "group": "shirts_unisex", "prob": 60, "damage": [ 1, 4 ] } + ], + "prob": 70 + } + ] + } + ] + } + ] + } + ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/monsterdrops/zombie_default.json b/data/Mainline_mods/Mods/innawood/monsterdrops/zombie_default.json new file mode 100644 index 000000000..1275a2297 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/monsterdrops/zombie_default.json @@ -0,0 +1,40 @@ +[ + { + "type": "item_group", + "subtype": "distribution", + "//": "items that an average zombie carries around and drops on death", + "id": "default_zombie_items", + "entries": [ + { "group": "large_bags", "damage": [ 1, 4 ], "contents-group": "default_zombie_items_bags", "prob": 6 }, + { "group": "small_bags", "damage": [ 1, 4 ], "contents-group": "default_zombie_items_bags_small", "prob": 10 }, + { "group": "default_zombie_items_pockets", "prob": 20 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "//": "items people could have carried in their pockets prior to zombification", + "id": "default_zombie_items_pockets", + "entries": [ { "distribution": [ { "item": "primitive_knife", "prob": 50 } ], "prob": 5 } ] + }, + { + "type": "item_group", + "subtype": "collection", + "//": "items people could have carried in their bags prior to zombification", + "id": "default_zombie_items_bags", + "entries": [ + { "group": "default_zombie_items_bags_small", "prob": 100 }, + { "distribution": [ { "group": "tools_common_small", "count": [ 1, 2 ], "prob": 50 } ], "prob": 5 } + ] + }, + { + "type": "item_group", + "subtype": "collection", + "//": "items people could have carried in their small bags prior to zombification", + "id": "default_zombie_items_bags_small", + "entries": [ + { "group": "default_zombie_items_pockets", "prob": 50 }, + { "distribution": [ { "item": "straw_doll", "prob": 33 } ], "prob": 5 } + ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/monstergroups/stream.json b/data/Mainline_mods/Mods/innawood/monstergroups/stream.json new file mode 100644 index 000000000..5b47dc443 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/monstergroups/stream.json @@ -0,0 +1,69 @@ +[ + { + "type": "monstergroup", + "name": "GROUP_STREAM", + "is_animal": true, + "monsters": [ + { "group": "GROUP_STREAM_LARGE", "weight": 10 }, + { "group": "GROUP_STREAM_SMALL", "weight": 30 }, + { "group": "GROUP_STREAM_BIRDS", "weight": 30 }, + { "group": "GROUP_STREAM_DOMESTIC", "weight": 2 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_STREAM_LARGE", + "is_animal": true, + "monsters": [ + { "group": "GROUP_BOARS", "weight": 60, "pack_size": [ 1, 6 ] }, + { "group": "GROUP_BEARS", "weight": 5, "pack_size": [ 1, 2 ] }, + { "group": "GROUP_DEERS", "weight": 40, "pack_size": [ 2, 6 ] }, + { "group": "GROUP_WOLFS", "weight": 5, "pack_size": [ 1, 4 ] }, + { "group": "GROUP_HORSES", "weight": 10, "pack_size": [ 1, 4 ] }, + { "group": "GROUP_MOOSE", "weight": 30 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_STREAM_DOMESTIC", + "is_animal": true, + "monsters": [ + { "group": "GROUP_COWS", "weight": 5, "pack_size": [ 1, 4 ] }, + { "group": "GROUP_PIGS", "weight": 15, "pack_size": [ 2, 6 ] }, + { "group": "GROUP_SHEEPS", "weight": 15, "pack_size": [ 1, 4 ] }, + { "group": "GROUP_HORSES", "weight": 25, "pack_size": [ 1, 4 ] }, + { "monster": "mon_goat", "weight": 10, "pack_size": [ 1, 4 ] }, + { "monster": "mon_llama", "weight": 10, "pack_size": [ 1, 4 ] }, + { "monster": "mon_chicken", "weight": 20, "pack_size": [ 4, 6 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_STREAM_BIRDS", + "is_animal": true, + "monsters": [ + { "monster": "mon_duck", "weight": 20, "pack_size": [ 1, 4 ], "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] }, + { "monster": "mon_goose", "weight": 15, "pack_size": [ 2, 4 ] }, + { "monster": "mon_coot", "weight": 15, "pack_size": [ 2, 4 ] }, + { "monster": "mon_moorhen", "weight": 15, "pack_size": [ 2, 4 ] }, + { "monster": "mon_cormorant", "weight": 15, "pack_size": [ 2, 4 ] }, + { "monster": "mon_grebe", "weight": 15, "pack_size": [ 2, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_STREAM_SMALL", + "is_animal": true, + "monsters": [ + { + "monster": "mon_otter", + "weight": 5, + "cost_multiplier": 5, + "pack_size": [ 1, 8 ], + "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] + }, + { "monster": "mon_mink", "weight": 3, "pack_size": [ 1, 2 ], "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] }, + { "monster": "mon_beaver", "weight": 8, "pack_size": [ 1, 3 ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/monsters/insect_spider.json b/data/Mainline_mods/Mods/innawood/monsters/insect_spider.json index 1d6b538cb..ca7c03f46 100644 --- a/data/Mainline_mods/Mods/innawood/monsters/insect_spider.json +++ b/data/Mainline_mods/Mods/innawood/monsters/insect_spider.json @@ -40,9 +40,6 @@ "melee_dice_sides": 2, "melee_damage": [ { "damage_type": "cut", "amount": 2 } ], "dodge": 3, - "armor_bash": 2, - "armor_cut": 5, - "armor_bullet": 3, "vision_day": 10, "vision_night": 5, "starting_ammo": { "fresh_honeydew": 2 }, @@ -55,6 +52,7 @@ "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "honeydew", "biosig_timer": 600 }, "petfood": { "food": [ "CATTLEFOOD" ], "feed": "The %s seems to like you! It lets you pat its head and seems friendly." }, - "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL", "SWARMS", "MILKABLE" ] + "flags": [ "SEES", "HEARS", "SMELLS", "CLIMBS", "PATH_AVOID_FIRE", "PATH_AVOID_FALL", "SWARMS", "MILKABLE" ], + "armor": { "bash": 2, "cut": 5, "bullet": 3 } } ] diff --git a/data/Mainline_mods/Mods/innawood/monsters/nether.json b/data/Mainline_mods/Mods/innawood/monsters/nether.json index 59d7dd724..d4c01ed2a 100644 --- a/data/Mainline_mods/Mods/innawood/monsters/nether.json +++ b/data/Mainline_mods/Mods/innawood/monsters/nether.json @@ -18,7 +18,7 @@ "special_attacks": [ { "type": "spell", - "spell_data": { "id": "shifting_mass", "min_level": 1 }, + "spell_data": { "id": "shifting_mass_attack", "min_level": 1 }, "cooldown": 1, "monster_message": "For a moment the shifting mass passes into you as if it were an illusion and a slight wave of fatigue washes over you." } @@ -29,7 +29,7 @@ { "id": "mon_impossible_shape", "type": "MONSTER", - "name": { "str": "Impossible shape" }, + "name": { "str": "impossible shape" }, "description": "A twisted shape floating in midair; its angles don't quite seem to add up - it hurts to look at. You can see through it, not as if it were transparent but as if it isn't quite fully there.", "default_faction": "nether", "species": [ "NETHER" ], @@ -56,7 +56,7 @@ { "id": "mon_absence", "type": "MONSTER", - "name": { "str": "Absence" }, + "name": { "str": "absence" }, "description": "Every sense you have claims this space to be empty, but your mind is not fooled. There is an emptiness here that is far from natural or safe.", "default_faction": "nether", "species": [ "NETHER" ], @@ -83,7 +83,7 @@ { "id": "mon_giant_appendage", "type": "MONSTER", - "name": { "str": "Giant appendage" }, + "name": { "str": "giant appendage" }, "description": "A gigantic appendage reaching through what looks like a portal, as if this is merely a probing piece of something much larger.", "default_faction": "nether", "species": [ "NETHER" ], @@ -106,7 +106,7 @@ { "id": "mon_memory", "type": "MONSTER", - "name": { "str": "Memory", "str_pl": "Memories" }, + "name": { "str": "memory", "str_pl": "memories" }, "description": "The shade of a human body reaching towards you like it needs help. Though it has no eyes you feel as though it is staring through you.", "default_faction": "nether", "species": [ "NETHER" ], diff --git a/data/Mainline_mods/Mods/innawood/npcs/Backgrounds/codger.json b/data/Mainline_mods/Mods/innawood/npcs/Backgrounds/codger.json index b2d4f5530..757766023 100644 --- a/data/Mainline_mods/Mods/innawood/npcs/Backgrounds/codger.json +++ b/data/Mainline_mods/Mods/innawood/npcs/Backgrounds/codger.json @@ -51,7 +51,7 @@ { "id": "BGSS_CODGER_STORY4b", "type": "talk_topic", - "dynamic_line": "Be patient! I'm almost done. Now up the top o' Mount Greenwood there used to be a nice campin' place, that woulda been before you were born. Whole area burnt up that one year, they said it were lightnin' but you an' I both know it were just kids partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out. Burnt out woods looked haunted, we figgered there were some o' them damn kids rummagin' around in there, neckin' or whatnot. Rusty G brought his boom stick, and lucky thing cuz o' what we saw..", + "dynamic_line": "Be patient! I'm almost done. Now up the top o' Mount Greenwood there used to be a nice campin' place, that woulda been before you were born. Whole area burnt up that one year, they said it were lightnin' but you an' I both know it were just kids partyin'. Rusty G an' I left ol' yeller behind and wen' in to check it out. Burnt out woods looked haunted, we figgered there were some o' them damn kids rummagin' around in there, neckin' or whatnot. Rusty G brought his boom stick, and lucky thing cuz o' what we saw.", "responses": [ { "text": "What did you see?", "topic": "BGSS_CODGER_STORY5" }, { "text": "We really, really have to go.", "topic": "BGSS_CODGER_STORY5" }, diff --git a/data/Mainline_mods/Mods/innawood/npcs/Backgrounds/high_school_1.json b/data/Mainline_mods/Mods/innawood/npcs/Backgrounds/high_school_1.json index 68b87ecba..68e2a60a7 100644 --- a/data/Mainline_mods/Mods/innawood/npcs/Backgrounds/high_school_1.json +++ b/data/Mainline_mods/Mods/innawood/npcs/Backgrounds/high_school_1.json @@ -12,7 +12,7 @@ { "id": "BGSS_HIGH_SCHOOL_1_STORY2", "type": "talk_topic", - "dynamic_line": "I guess it got worse, because the teachers decided to tie us up and drink. For hours. And then a bunch of sweaty men with spears came to take us to the camps. They tooks us away in batches and I was in on the of the last batches and they didn't come back for us. The men with spears weren't much older than me… they didn't look like they knew what was going on. I lived nearby. I snuck off.", + "dynamic_line": "I guess it got worse, because the teachers decided to tie us up and drink. For hours. And then a bunch of sweaty men with spears came to take us to the camps. They took us away in batches and I was in on the of the last batches and they didn't come back for us. The men with spears weren't much older than me… they didn't look like they knew what was going on. I lived nearby. I snuck off.", "responses": [ { "text": "Did you get home?", "topic": "BGSS_HIGH_SCHOOL_1_STORY3" }, { "text": "", "topic": "TALK_FRIEND" }, diff --git a/data/Mainline_mods/Mods/innawood/npcs/NC_ARMY.json b/data/Mainline_mods/Mods/innawood/npcs/NC_ARMY.json new file mode 100644 index 000000000..8ad102a11 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/npcs/NC_ARMY.json @@ -0,0 +1,145 @@ +[ + { + "type": "item_group", + "id": "NC_ARMY_pants_male", + "subtype": "distribution", + "entries": [ { "group": "npc_pants_male" } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_pants_female", + "subtype": "distribution", + "entries": [ { "group": "npc_pants_female", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_shirt_male", + "subtype": "distribution", + "entries": [ { "group": "npc_shirt_male", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_shirt_female", + "subtype": "distribution", + "entries": [ { "group": "npc_shirt_female", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_gloves", + "subtype": "distribution", + "entries": [ { "group": "npc_gloves", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_coat", + "subtype": "distribution", + "entries": [ { "group": "npc_coat", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_shoes", + "subtype": "distribution", + "entries": [ { "group": "npc_shoes_male", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_masks", + "subtype": "distribution", + "entries": [ { "item": "null", "prob": 10 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_eyes", + "subtype": "distribution", + "entries": [ { "item": "null", "prob": 60 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_hat", + "subtype": "distribution", + "entries": [ { "group": "npc_hat", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_extra", + "subtype": "distribution", + "entries": [ { "item": "null", "prob": 30 }, { "item": "wicker_backpack", "prob": 70 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_bashing", + "subtype": "distribution", + "entries": [ { "item": "primitive_hammer", "prob": 20 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_cutting", + "subtype": "distribution", + "entries": [ { "item": "stone_chopper", "prob": 20 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_stabbing", + "subtype": "distribution", + "entries": [ { "item": "pointy_stick", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_throw", + "subtype": "distribution", + "entries": [ { "item": "rock", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_archery", + "subtype": "distribution", + "items": [ [ "selfbow", 50 ] ] + }, + { + "type": "item_group", + "id": "NC_ARMY_pistols", + "subtype": "distribution", + "items": [ { "group": "guns_pistol_improvised", "prob": 35 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_shotgun", + "subtype": "distribution", + "items": [ { "group": "guns_shotgun_improvised", "prob": 22 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_smg", + "subtype": "distribution", + "items": [ { "group": "guns_shotgun_improvised", "prob": 22 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_rifle", + "subtype": "distribution", + "entries": [ { "group": "guns_rifle_improvised", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_launcher", + "subtype": "distribution", + "entries": [ { "group": "guns_rifle_improvised", "prob": 10 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_weapon_random", + "subtype": "distribution", + "entries": [ { "item": "q_staff", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "NC_ARMY_misc", + "subtype": "distribution", + "entries": [ + { "item": "tobacco", "prob": 2 }, + { "item": "weed", "prob": 50 }, + { "item": "seed_weed", "prob": 35 }, + { "item": "seed_tobacco", "prob": 15 } + ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/npcs/NC_OPS.json b/data/Mainline_mods/Mods/innawood/npcs/NC_OPS.json new file mode 100644 index 000000000..01fa73866 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/npcs/NC_OPS.json @@ -0,0 +1,145 @@ +[ + { + "type": "item_group", + "id": "NC_OPS_pants_male", + "subtype": "distribution", + "entries": [ { "group": "npc_pants_male" } ] + }, + { + "type": "item_group", + "id": "NC_OPS_pants_female", + "subtype": "distribution", + "entries": [ { "group": "npc_pants_female", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_shirt_male", + "subtype": "distribution", + "entries": [ { "group": "npc_shirt_male", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_shirt_female", + "subtype": "distribution", + "entries": [ { "group": "npc_shirt_female", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_gloves", + "subtype": "distribution", + "entries": [ { "group": "npc_gloves", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_coat", + "subtype": "distribution", + "entries": [ { "group": "npc_coat", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_shoes", + "subtype": "distribution", + "entries": [ { "group": "npc_shoes_male", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_masks", + "subtype": "distribution", + "entries": [ { "item": "null", "prob": 10 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_eyes", + "subtype": "distribution", + "entries": [ { "item": "null", "prob": 60 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_hat", + "subtype": "distribution", + "entries": [ { "group": "npc_hat", "prob": 80 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_extra", + "subtype": "distribution", + "entries": [ { "item": "null", "prob": 30 }, { "item": "wicker_backpack", "prob": 70 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_bashing", + "subtype": "distribution", + "entries": [ { "item": "primitive_hammer", "prob": 20 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_cutting", + "subtype": "distribution", + "entries": [ { "item": "stone_chopper", "prob": 20 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_stabbing", + "subtype": "distribution", + "entries": [ { "item": "pointy_stick", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_throw", + "subtype": "distribution", + "entries": [ { "item": "rock", "prob": 50 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_archery", + "subtype": "distribution", + "items": [ [ "selfbow", 50 ] ] + }, + { + "type": "item_group", + "id": "NC_OPS_pistols", + "subtype": "distribution", + "items": [ { "group": "guns_pistol_improvised", "prob": 35 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_shotgun", + "subtype": "distribution", + "items": [ { "group": "guns_shotgun_improvised", "prob": 22 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_smg", + "subtype": "distribution", + "items": [ { "group": "guns_shotgun_improvised", "prob": 22 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_rifle", + "subtype": "distribution", + "entries": [ { "group": "guns_rifle_improvised", "prob": 100 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_launcher", + "subtype": "distribution", + "entries": [ { "group": "guns_rifle_improvised", "prob": 10 } ] + }, + { + "type": "item_group", + "id": "NC_OPS_weapon_random", + "subtype": "distribution", + "items": [ [ "q_staff", 100 ] ] + }, + { + "type": "item_group", + "id": "NC_OPS_misc", + "subtype": "distribution", + "entries": [ + { "item": "tobacco", "prob": 2 }, + { "item": "weed", "prob": 50 }, + { "item": "seed_weed", "prob": 35 }, + { "item": "seed_tobacco", "prob": 15 } + ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/npcs/classes.json b/data/Mainline_mods/Mods/innawood/npcs/classes.json new file mode 100644 index 000000000..5bd782bc0 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/npcs/classes.json @@ -0,0 +1,55 @@ +[ + { + "type": "npc_class", + "id": "NC_SCAVENGER_PREPPER", + "name": { "str": "Scavenger" }, + "job_description": "I'm just trying to survive.", + "traits": [ + { "group": "BG_survival_story_EVACUEE" }, + { "group": "NPC_starting_traits" }, + { "group": "Appearance_demographics" }, + { "trait": "GETS_RANDOM_MISSION_NOMOVE" } + ], + "//": "Override to erase shopkeep item groups appearing when spawned! A tiny bit safer than overriding all the item groups themevles", + "skills": [ + { "skill": "ALL", "level": { "sum": [ { "dice": [ 3, 2 ] }, { "constant": -3 } ] } }, + { "skill": "gun", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "pistol", "bonus": { "rng": [ 2, 5 ] } }, + { "skill": "rifle", "bonus": { "rng": [ 0, 3 ] } }, + { "skill": "archery", "bonus": { "rng": [ 0, 3 ] } } + ] + }, + { + "type": "npc_class", + "id": "NC_SCAVENGER_MOONSHINER", + "name": { "str": "Scavenger" }, + "job_description": "I'm just trying to survive.", + "traits": [ + { "group": "BG_survival_story_EVACUEE" }, + { "group": "NPC_starting_traits" }, + { "group": "Appearance_demographics" }, + { "trait": "GETS_RANDOM_MISSION_NOMOVE" } + ], + "//": "Override to erase shopkeep item groups appearing when spawned! A tiny bit safer than overriding all the item groups themevles", + "skills": [ + { "skill": "ALL", "level": { "sum": [ { "dice": [ 3, 2 ] }, { "constant": -3 } ] } }, + { "skill": "gun", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "pistol", "bonus": { "rng": [ 2, 5 ] } }, + { "skill": "rifle", "bonus": { "rng": [ 0, 3 ] } }, + { "skill": "archery", "bonus": { "rng": [ 0, 3 ] } } + ] + }, + { + "type": "npc_class", + "id": "NC_SLAVE", + "name": { "str": "Slave" }, + "job_description": "I've had very bad luck recently.", + "traits": [ { "group": "BG_survival_story_EVACUEE" }, { "group": "NPC_starting_traits" }, { "group": "Appearance_demographics" } ], + "carry_override": "naked_prisoner", + "weapon_override": "naked_prisoner", + "//": "Override to erase worn_override so they'll get a full selection of random innawoods NPC clothes (without having to define a new item group)", + "skills": [ + { "skill": "ALL", "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 4, 2 ] }, { "rng": [ -4, -1 ] } ] } ] } } + ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/npcs/items_generic.json b/data/Mainline_mods/Mods/innawood/npcs/items_generic.json index 8f542e0f6..37f2c4b5d 100644 --- a/data/Mainline_mods/Mods/innawood/npcs/items_generic.json +++ b/data/Mainline_mods/Mods/innawood/npcs/items_generic.json @@ -218,5 +218,23 @@ [ "yeast", 5 ], [ "zucchini", 3 ] ] + }, + { + "id": "survivor_bashing", + "//": "Override for hardcoded reference in npc::starting_weapon", + "type": "item_group", + "items": [ [ "cudgel", 1 ], [ "stick_long", 2 ], [ "rock", 5 ], [ "q_staff", 1 ] ] + }, + { + "id": "survivor_stabbing", + "//": "Override for hardcoded reference in npc::starting_weapon", + "type": "item_group", + "items": [ [ "pointy_stick", 5 ], [ "pointy_stick_long", 2 ] ] + }, + { + "id": "survivor_cutting", + "//": "Override for hardcoded reference in npc::starting_weapon", + "type": "item_group", + "items": [ [ "sharp_rock", 5 ], [ "bone_knife", 2 ] ] } ] diff --git a/data/Mainline_mods/Mods/innawood/npcs/missiondef.json b/data/Mainline_mods/Mods/innawood/npcs/missiondef.json index 46daa9869..b3ed113d9 100644 --- a/data/Mainline_mods/Mods/innawood/npcs/missiondef.json +++ b/data/Mainline_mods/Mods/innawood/npcs/missiondef.json @@ -104,7 +104,7 @@ "dialogue": { "describe": "Those twisted snakes…", "offer": "I left my dream journal in the swamp while I was doing my naked snake yoga. There's some pretty wild stuff in there so I want it back.", - "accepted": "Please dont read it unless you are prepared for some graphic and disturbing content.", + "accepted": "Please don't read it unless you are prepared for some graphic and disturbing content.", "rejected": "I know it isn't pressing but I want it. I have an incredible imagination. I had a dream about a horse once and it talked. Amazing stuff.", "advice": "The swamps are pretty dangerous and I'm not really sure where I was. If you want to just make me a new dream journal that would be all right too.", "inquire": "Any luck?", @@ -166,7 +166,7 @@ "origins": [ "ORIGIN_OPENER_NPC", "ORIGIN_ANY_NPC" ], "dialogue": { "describe": "St. Michael the archangel defend me in battle…", - "offer": "As the world seems to abandon the reality that we once knew, it becomes plausible that the old superstitions that were cast aside may have had some truth to them. Please go and find me a religious relic… I doubt it will be of much use but I've got to hope in something. It will look like a normal rock to your puny mind.", + "offer": "As the world seems to abandon the reality that we once knew, it becomes plausible that the old superstitions that were cast aside may have had some truth to them. Please go and find me a religious relic… I doubt it will be of much use but I've got to hope in something. It will look like a normal rock to you, but I can divine secrets from its earthly essence.", "accepted": "I wish you the best of luck, may whatever god you please guide your path.", "rejected": "Ya, I guess the stress may just be getting to me…", "advice": "I hear rocks may be found in the woods. They tell me things. The spirits. Religion!", @@ -176,6 +176,91 @@ "failure": "It was a lost cause anyways…" } }, + { + "id": "MISSION_RECOVER_PRIEST_DIARY", + "type": "mission_definition", + "name": { "str": "Recover Holy Symbol" }, + "goal": "MGOAL_FIND_ITEM", + "difficulty": 2, + "value": 70000, + "item": "holy_symbol", + "start": { + "update_mapgen": { "place_item": [ { "item": "holy_symbol", "x": [ 3, 21 ], "y": [ 6, 21 ], "amount": 1 } ] }, + "assign_mission_target": { + "om_terrain": "standing_stones", + "om_terrain_match_type": "PREFIX", + "om_special": "Standing stones", + "search_range": 80, + "min_distance": 5, + "random": true, + "z": 0 + } + }, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_INVESTIGATE_CULT", + "dialogue": { + "describe": "St. Michael the archangel defend me in battle…", + "offer": "I have learned so much from this sacred relic. I have attuned to it. We must go deeper. I now understand that buried in the deep forest is a special place with even larger rocks, I mean sacred relics. Go there, and get me a holy symbol of this place.", + "accepted": "I wish you the best of luck, may whatever god you please guide your path.", + "rejected": "Ya, I guess the stress may just be getting to me…", + "advice": "The woods are deep and dark and probably dangerous. Bring a friend if you can.", + "inquire": "Any luck?", + "success": "Thank you, this is exactly what I was looking for.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "MISSION_INVESTIGATE_CULT", + "type": "mission_definition", + "name": { "str": "Investigate Cult" }, + "goal": "MGOAL_FIND_ITEM", + "difficulty": 2, + "value": 150000, + "item": "etched_skull", + "start": { + "update_mapgen": { "place_item": [ { "item": "etched_skull", "x": [ 3, 21 ], "y": [ 6, 21 ], "amount": 1 } ] }, + "assign_mission_target": { "om_terrain": "cave_rat", "om_special": "Rat Cave", "reveal_radius": 3, "search_range": 120 } + }, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_INVESTIGATE_PRISON_VISIONARY", + "dialogue": { + "describe": "St. Michael the archangel defend me in battle…", + "offer": "You have no idea how interesting this holy symbol is. I have two very promising leads… first things first, I have learned of dark whispers of mystic significance, telluric resonances that tingle the spine and give me kind of a dizzy feeling, but not entirely unpleasant. Could you investigate a location for me? I'm not sure what was going on here but the whispers seem fairly worried about it.", + "accepted": "I wish you the best of luck, may whatever god you please guide your path… You may need it this time more than the past excursions you have gone on. There is a whisper about potential human sacrifice in the days immediately before and after the grand mystical shift. The name of the cult is not revealed to me, except for an incessant squeaking.", + "rejected": "Ya, I guess the stress may just be getting to me…", + "advice": "I doubt the site is still occupied but I'd carry some form of weapon at least… I'm not sure what you might be looking for but I'm positive you'll find something out of the ordinary if you look long enough.", + "inquire": "I'm positive there is something there… there has to be, any luck?", + "success": "Thank you, your account of these… demonic creations proves the fears the whispers had were well founded. Our priority should be routing out any survivors of this cult… I don't known if they are responsible for the disaster but they certainly know more about it than I do.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, + { + "id": "MISSION_INVESTIGATE_PRISON_VISIONARY", + "type": "mission_definition", + "name": { "str": "Mad Hermit" }, + "goal": "MGOAL_FIND_ITEM", + "difficulty": 2, + "value": 150000, + "item": "visions_solitude", + "start": { + "assign_mission_target": { "om_terrain": "island_forest_thick", "om_special": "Island", "reveal_radius": 3, "search_range": 180 }, + "update_mapgen": { "om_terrain": "prison_1_4", "place_item": [ { "item": "visions_solitude", "x": 15, "y": 22 } ] } + }, + "origins": [ "ORIGIN_SECONDARY" ], + "dialogue": { + "describe": "St. Michael the archangel defend me in battle…", + "offer": "I have another task if you are feeling up to it. There is a mad hermit that the whispers made special mention of. I was wondering if you could see what may have happened to them or if they left anything behind. The whispers admit the individual is rather unstable, to put it lightly, but the whispers believe the hermit was some kind of mystical visionary. I'm not in a position to cast out the account just yet… it seems the hermit has prophesied events accurately before.", + "accepted": "I wish you the best of luck, may whatever god you please guide your path… I can only imagine that the island will be a little slice of hell. I hope you can swim.", + "rejected": "Ya, I guess the stress may just be getting to me…", + "advice": "With things as they are you probably won't just find a boat lying around. Maybe make one? Maybe swim?", + "inquire": "Any luck?", + "success": "Thank you, I'm not sure what to make of this but I'll ponder your account.", + "success_lie": "What good does this do us?", + "failure": "It was a lost cause anyways…" + } + }, { "id": "MISSION_GET_SOFTWARE", "type": "mission_definition", @@ -190,7 +275,7 @@ "offer": "There's some important notes on my special stick that I need.", "accepted": "Thanks! Just get the stick and bring it to me.", "rejected": "Seriously? It's an easy job…", - "advice": "Don't worry, you'll know the stick when you see it, it is unmistakeable.", + "advice": "Don't worry, you'll know the stick when you see it, it is unmistakable.", "inquire": "So, do you have my stick yet?", "success": "Excellent, thank you!", "success_lie": "What?! You liar!", @@ -341,7 +426,7 @@ "and": [ { "u_has_item": "backpack_leather" }, { "u_has_items": { "item": "cattail_stalk", "count": 80 } }, - { "u_has_skill": { "skill": "survival", "level": 1 } } + { "math": [ "u_skill('survival')", ">=", "1" ] } ] }, "difficulty": 1, @@ -358,6 +443,7 @@ { "u_sell_item": "cattail_stalk", "count": 80 }, { "npc_consume_item": "cattail_stalk", "count": 80 }, { "u_learn_recipe": "cattail_jelly" }, + { "u_message": "You learn how to craft cattail jelly.", "popup": true }, { "u_spawn_item": "cattail_jelly", "container": "stomach_sealed", "count": 7 } ] }, @@ -388,7 +474,7 @@ "effect": [ "follow_only", { "npc_first_topic": "MISSION_PYROMANIAC" } ], "assign_mission_target": { "om_terrain": "forest", "om_terrain_match_type": "PREFIX", "search_range": 75, "random": true, "z": 0 } }, - "end": { "effect": [ "follow", { "u_consume_item": "tinder" }, { "mapgen_update": "MISSION_PYROMANIAC_BURN" } ] }, + "end": { "effect": [ "follow", { "u_consume_item": "tinder" }, { "mapgen_update": "MISSION_PYROMANIAC_BURN_INNAWOOD" } ] }, "origins": [ "ORIGIN_OPENER_NPC" ], "dialogue": { "describe": "Oh man, I want to burn it so bad…", @@ -405,11 +491,24 @@ { "//": "For MISSION_PYROMANIAC. Will spawn fire on tile where PC is standing.", "type": "mapgen", - "update_mapgen_id": "MISSION_PYROMANIAC_BURN", + "update_mapgen_id": "MISSION_PYROMANIAC_BURN_INNAWOOD", "method": "json", "object": { "place_item": [ { "item": "tinder", "x": [ 5, 20 ], "y": [ 5, 20 ], "amount": 5, "repeat": 40 } ], "place_fields": [ { "field": "fd_fire", "x": [ 5, 20 ], "y": [ 5, 20 ], "repeat": 40 } ] } + }, + { + "//": "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 tree!", + "responses": [ + { + "text": "We're here. Let's do it!", + "topic": "TALK_MISSION_INQUIRE", + "condition": { "and": [ "mission_complete", { "u_has_items": { "item": "tinder", "count": 1 } } ] } + } + ] } ] diff --git a/data/Mainline_mods/Mods/innawood/overmap/overmap_mutable/stream_mutable.json b/data/Mainline_mods/Mods/innawood/overmap/overmap_mutable/stream_mutable.json new file mode 100644 index 000000000..fa70d7970 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/overmap/overmap_mutable/stream_mutable.json @@ -0,0 +1,47 @@ +[ + { + "type": "overmap_special", + "id": "stream_mutable", + "subtype": "mutable", + "locations": [ "field", "forest", "swamp" ], + "occurrences": [ 1, 1 ], + "flags": [ "WILDERNESS" ], + "check_for_locations_area": [ { "type": [ "field", "forest" ], "from": [ 1, 1, 0 ], "to": [ -1, -1, 0 ] } ], + "joins": [ "stream_to_stream", "stream_to_east", "stream_to_west" ], + "overmaps": { + "stream_body": { "overmap": "stream_north", "north": "stream_to_stream", "south": "stream_to_stream" }, + "stream_bend_e": { "overmap": "stream_corner_east", "north": "stream_to_stream", "east": "stream_to_west" }, + "stream_bend_w": { "overmap": "stream_corner_north", "north": "stream_to_stream", "west": "stream_to_east" }, + "stream_bend_start_e": { "overmap": "stream_north", "north": "stream_to_stream", "south": "stream_to_east" }, + "stream_bend_start_w": { "overmap": "stream_north", "north": "stream_to_stream", "south": "stream_to_west" }, + "stream_corner_e": { "overmap": "stream_corner_north", "north": "stream_to_stream", "west": "stream_to_stream" }, + "stream_corner_w": { "overmap": "stream_corner_east", "north": "stream_to_stream", "east": "stream_to_stream" }, + "stream_end_n": { "overmap": "stream_end_north", "south": "stream_to_stream" }, + "stream_end_s": { "overmap": "stream_end_south", "north": "stream_to_stream" }, + "stream_end_bend_en": { "overmap": "stream_end_north", "south": "stream_to_west" }, + "stream_end_bend_es": { "overmap": "stream_end_south", "north": "stream_to_west" }, + "stream_end_bend_wn": { "overmap": "stream_end_north", "south": "stream_to_east" }, + "stream_end_bend_ws": { "overmap": "stream_end_south", "north": "stream_to_east" } + }, + "root": "stream_end_n", + "phases": [ + [ + { "overmap": "stream_body", "weight": 100 }, + { "overmap": "stream_bend_start_e", "weight": 1 }, + { "overmap": "stream_bend_start_w", "weight": 1 }, + { "overmap": "stream_bend_e", "weight": 120 }, + { "overmap": "stream_bend_w", "weight": 120 }, + { "overmap": "stream_corner_e", "weight": 1 }, + { "overmap": "stream_corner_w", "weight": 1 } + ], + [ + { "overmap": "stream_end_n", "max": 1 }, + { "overmap": "stream_end_s", "max": 1 }, + { "overmap": "stream_end_bend_en", "max": 1 }, + { "overmap": "stream_end_bend_es", "max": 1 }, + { "overmap": "stream_end_bend_wn", "max": 1 }, + { "overmap": "stream_end_bend_ws", "max": 1 } + ] + ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/overmap/overmap_terrarin/overmap_terrain_stream.json b/data/Mainline_mods/Mods/innawood/overmap/overmap_terrarin/overmap_terrain_stream.json new file mode 100644 index 000000000..ae42dd9a2 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/overmap/overmap_terrarin/overmap_terrain_stream.json @@ -0,0 +1,11 @@ +[ + { + "type": "overmap_terrain", + "id": [ "stream", "stream_end", "stream_corner" ], + "copy-from": "generic_open_land", + "name": "stream", + "sym": ".", + "color": "light_blue", + "flags": [ "REQUIRES_PREDECESSOR" ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/portal_storm_effect_on_condition.json b/data/Mainline_mods/Mods/innawood/portal_storm_effect_on_condition.json index debebce0c..4769c97f4 100644 --- a/data/Mainline_mods/Mods/innawood/portal_storm_effect_on_condition.json +++ b/data/Mainline_mods/Mods/innawood/portal_storm_effect_on_condition.json @@ -6,13 +6,13 @@ "condition": { "and": [ { "not": { "u_has_trait": "PORTAL_DEPENDENT" } }, - { "compare_int": [ { "global_val": "var", "var_name": "ps_min_woc" }, "<", { "time": "45 days" } ] } + { "compare_num": [ { "global_val": "var", "var_name": "ps_min_woc" }, "<", { "time": "45 days" } ] } ] }, "deactivate_condition": { "or": [ { "u_has_trait": "PORTAL_DEPENDENT" }, - { "compare_int": [ { "global_val": "var", "var_name": "ps_min_woc" }, ">=", { "time": "45 days" } ] } + { "compare_num": [ { "global_val": "var", "var_name": "ps_min_woc" }, ">=", { "time": "45 days" } ] } ] }, "effect": [ @@ -37,13 +37,13 @@ { "type": "effect_on_condition", "id": "EOC_PORTAL_WEAKEN", - "condition": { "compare_int": [ { "global_val": "var", "var_name": "ps_base_str" }, ">=", { "const": 1 } ] }, + "condition": { "compare_num": [ { "global_val": "var", "var_name": "ps_base_str" }, ">=", { "const": 1 } ] }, "effect": { "arithmetic": [ { "global_val": "var", "var_name": "ps_base_str" }, "--" ], "max": 8 } }, { "type": "effect_on_condition", "id": "EOC_PORTAL_SHORTEN", - "condition": { "compare_int": [ { "global_val": "var", "var_name": "ps_min_length" }, ">=", { "time": "15 minutes" } ] }, + "condition": { "compare_num": [ { "global_val": "var", "var_name": "ps_min_length" }, ">=", { "time": "15 minutes" } ] }, "effect": [ { "arithmetic": [ { "global_val": "var", "var_name": "ps_min_length" }, "-=", { "time": "15 minutes" } ] }, { "arithmetic": [ { "global_val": "var", "var_name": "ps_max_length" }, "-=", { "time": "15 minutes" } ] } diff --git a/data/Mainline_mods/Mods/innawood/professions.json b/data/Mainline_mods/Mods/innawood/professions.json index 9379f9e99..daaf5f652 100644 --- a/data/Mainline_mods/Mods/innawood/professions.json +++ b/data/Mainline_mods/Mods/innawood/professions.json @@ -11,6 +11,12 @@ "id": "quiver_crossbow_hunter", "entries": [ { "item": "bolt_simple_wood", "charges": 20 } ] }, + { + "type": "item_group", + "subtype": "collection", + "id": "quiver_arbalist", + "entries": [ { "item": "bolt_simple_wood", "charges": 60 } ] + }, { "type": "item_group", "subtype": "collection", @@ -27,15 +33,13 @@ "pets": [ { "name": "mon_goat", "amount": 2 } ], "items": { "both": { - "items": [ "jeans", "leather_belt", "socks", "boots", "pockknife", "diving_watch" ], + "items": [ "loincloth_leather", "leather_belt", "socks", "mocassins", "shirt_straw" ], "entries": [ - { "item": "rope_6", "count": 2 }, - { "group": "charged_smart_phone" }, - { "item": "tshirt", "variant": "generic_tshirt" } + { "item": "rope_makeshift_6", "count": 2 }, + { "item": "sheath_birchbark", "contents-item": "primitive_knife" }, + { "item": "bucket_wood", "custom-flags": [ "auto_wield" ] } ] - }, - "male": [ "boxer_shorts" ], - "female": [ "bra", "panties" ] + } } }, { @@ -107,13 +111,13 @@ "bronze_pickaxe", "mocassins", "torch", - "fire_drill", "waterskin", "tunic", "helmet_larmor", "gloves_wraps_leather", "bigtrapper_pack" - ] + ], + "entries": [ { "item": "fire_drill", "ammo-item": "notch", "charges": 24 } ] } } }, @@ -214,10 +218,32 @@ "proficiencies": [ "prof_fibers" ], "items": { "both": { - "items": [ "fire_drill", "wicker_backpack", "footrags_leather", "shirt_straw", "skirt_grass", "straw_hat" ], + "items": [ "wicker_backpack", "footrags_leather", "shirt_straw", "skirt_grass", "straw_hat" ], "entries": [ { "item": "primitive_knife", "container-item": "sheath_birchbark" }, - { "item": "fishing_rod_basic", "custom-flags": [ "auto_wield" ] } + { "item": "fishing_rod_basic", "custom-flags": [ "auto_wield" ] }, + { "item": "fire_drill", "ammo-item": "notch", "charges": 24 } + ] + } + } + }, + { + "type": "profession", + "id": "fisher_canoe", + "name": { "male": "Canoe Fisherman", "female": "Canoe Fisherwoman" }, + "description": "You spent most of your days fishing in lakes and swamps, getting by quietly on your catch. While you've wandered from your canoe, you can't resist coming back for another catch.", + "points": 4, + "vehicle": "canoe", + "skills": [ { "level": 2, "name": "swimming" }, { "level": 2, "name": "survival" }, { "level": 1, "name": "driving" } ], + "traits": [ "OUTDOORSMAN" ], + "proficiencies": [ "prof_fibers" ], + "items": { + "both": { + "items": [ "wicker_backpack", "footrags_leather", "shirt_straw", "skirt_grass", "straw_hat" ], + "entries": [ + { "item": "primitive_knife", "container-item": "sheath_birchbark" }, + { "item": "fishing_rod_basic", "custom-flags": [ "auto_wield" ] }, + { "item": "fire_drill", "ammo-item": "notch", "charges": 24 } ] } } @@ -257,11 +283,41 @@ "points": 0, "items": { "both": { - "items": [ "skirt_grass", "shirt_straw", "footrags", "straw_basket", "primitive_knife", "fire_drill" ], - "entries": [ { "item": "water_clean", "charges": 6, "container-item": "waterskin" } ] + "items": [ "skirt_grass", "shirt_straw", "footrags", "straw_basket", "primitive_knife" ], + "entries": [ + { "item": "water_clean", "charges": 6, "container-item": "waterskin" }, + { "item": "fire_drill", "ammo-item": "notch", "charges": 24 } + ] } } }, + { + "type": "profession", + "id": "trapper", + "name": "Trapper", + "description": "You spent most of your life trapping with your father. Both of you made a decent living selling your catches and running trapping tutorials. Hopefully, your skills will come in useful against less conventional game.", + "points": 2, + "skills": [ { "level": 4, "name": "traps" }, { "level": 2, "name": "survival" } ], + "proficiencies": [ "prof_fibers", "prof_carving", "prof_traps", "prof_trapsetting" ], + "items": { + "both": { + "items": [ + "pants", + "socks", + "mocassins", + "hat_fur", + "shirt_straw", + "cloak_leather", + "patchwork_scarf", + "light_snare_kit", + "wicker_backpack" + ], + "entries": [ { "item": "copper_knife", "container-item": "sheath" } ] + }, + "male": [ "briefs" ], + "female": [ "bra", "panties" ] + } + }, { "type": "profession", "id": "tailor", @@ -353,13 +409,161 @@ { "item": "water_clean", "charges": 6, "container-item": "waterskin" }, { "item": "quiver_birchbark", "contents-group": "quiver_bow_hunter" }, { "item": "spear_copper", "container-item": "spearsling" }, - { "item": "makeshift_ear_plugs_off", "custom-flags": [ "no_auto_equip" ] }, { "item": "copper_knife", "container-item": "sheath_birchbark" }, - { "item": "longbow", "contents-item": [ "bow_silencer" ] } + { "item": "longbow", "contents-item": [ "primitive_bow_silencer" ] } + ] + }, + "male": [ "briefs" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "tribal_swordsman", + "name": { "male": "Tribal Swordsman", "female": "Tribal Swordswoman" }, + "description": "As a member of your tribe's elite guard, you sharpened your swordsmanship to the best that you could. Now, you're a rōnin of the woods.", + "points": 4, + "skills": [ + { "level": 3, "name": "cutting" }, + { "level": 3, "name": "melee" }, + { "level": 2, "name": "dodge" }, + { "level": 2, "name": "swimming" } + ], + "items": { + "both": { + "items": [ "helmet_larmor", "armor_larmor", "socks", "boots_larmor", "gauntlets_larmor" ], + "entries": [ + { "item": "water_clean", "charges": 6, "container-item": "waterskin" }, + { "item": "sword_bronze", "container-item": "scabbard" }, + { "item": "copper_knife", "container-item": "sheath_birchbark" } ] }, "male": [ "briefs" ], "female": [ "bra", "panties" ] } + }, + { + "type": "profession", + "id": "tribal_arbalist", + "name": "Tribal Arbalist", + "description": "From your first hunt, you showed talent with a crossbow. While the tribe was well guarded by your aim, you're all alone now.", + "points": 3, + "proficiencies": [ "prof_bow_basic", "prof_bow_expert", "prof_fletching" ], + "skills": [ { "level": 3, "name": "rifle" }, { "level": 3, "name": "gun" }, { "level": 2, "name": "swimming" } ], + "items": { + "both": { + "items": [ "leathersandals", "helmet_larmor", "vambrace_larmor", "socks", "skirt_grass", "vest_leather", "legguard_larmor" ], + "entries": [ + { + "item": "compositecrossbow", + "ammo-item": "bolt_simple_wood", + "charges": 1, + "contents-item": [ "shoulder_strap", "primitive_bow_silencer", "wooden_grip" ], + "custom-flags": [ "no_auto_equip" ] + }, + { "item": "quiver_large_birchbark", "contents-group": "quiver_arbalist" }, + { "item": "copper_knife", "container-item": "sheath_birchbark" } + ] + }, + "male": [ "briefs" ], + "female": [ "bra", "panties" ] + } + }, + { + "type": "profession", + "id": "farmer", + "name": "Farmer", + "description": "A patch of soil, some water, and sunlight were all you ever needed; why should things be any different now? With a handful of seeds and your trusty hoe, it's time to rebuild the Earth, one plant at a time.", + "points": 1, + "items": { + "both": { + "items": [ + "loincloth_leather", + "wicker_backpack", + "patchwork_scarf", + "straw_hat", + "socks", + "mocassins", + "seed_blueberries", + "seed_strawberries", + "seed_wheat", + "seed_hops", + "seed_barley", + "seed_sugar_beet", + "seed_tomato" + ], + "entries": [ { "item": "bronze_hoe", "custom-flags": [ "auto_wield" ] } ] + } + } + }, + { + "type": "profession", + "id": "native_settler", + "name": "Native Settler", + "description": "You were on the road with friends from your tribe to search for a new settlement spot when you seemed to be yanked somewhere completely different. You see no sign of your friends, but at least you got your equipment and some seeds with you.", + "points": 3, + "skills": [ { "level": 4, "name": "survival" }, { "level": 2, "name": "archery" } ], + "proficiencies": [ "prof_basketweaving", "prof_pottery" ], + "items": { + "both": { + "items": [ + "wicker_backpack", + "tunic", + "mocassins", + "cloak", + "chaps_leather", + "bandana_head", + "copper_knife", + "shortbow", + "loincloth" + ], + "entries": [ + { "item": "seed_pumpkin", "count": 5 }, + { "item": "seed_beans", "count": 5 }, + { "item": "seed_corn", "count": 5 }, + { "item": "seed_wild_rice", "count": 5 }, + { "item": "seed_bottle_gourd", "count": 1 }, + { "item": "water_clean", "charges": 8, "container-item": "bottle_gourd" }, + { "item": "arrow_heavy_fire_hardened_fletched", "charges": 10, "container-item": "quiver_birchbark" } + ] + } + } + }, + { + "type": "profession", + "id": "carpenter", + "name": "Carpenter", + "points": 4, + "description": "Living under your craftsmanship, the tribe was no longer bound to caves lest they freeze in the night. You won't have to work nearly as hard for just yourself.", + "skills": [ { "level": 4, "name": "fabrication" } ], + "proficiencies": [ "prof_carving", "prof_carpentry_basic" ], + "items": { + "both": { + "items": [ "wicker_backpack", "tunic", "clogs", "socks", "helmet_larmor", "copper_knife", "primitive_hammer", "loincloth" ], + "entries": [ + { "item": "copper_ax", "container-item": "axe_ring" }, + { "item": "primitive_adze", "container-item": "rope_makeshift_6" }, + { "item": "primitive_shovel", "custom-flags": [ "auto_wield" ] } + ] + } + } + }, + { + "type": "profession", + "id": "bricklayer", + "name": "Bricklayer", + "points": 4, + "description": "Using the earth and organic material to create durable, insulated adobe kept your trade in high demand in your tribe. Now alone, you only need to look out for yourself.", + "skills": [ { "level": 3, "name": "fabrication" }, { "level": 1, "name": "survival" } ], + "items": { + "both": { + "items": [ "trapper_pack", "tunic", "mocassins", "socks", "helmet_larmor", "primitive_hammer", "loincloth", "frame_wood_light" ], + "entries": [ + { "item": "adobe_brick", "count": 10 }, + { "item": "primitive_knife", "container-item": "sheath_birchbark" }, + { "item": "wood_smoother", "custom-flags": [ "auto_wield" ] } + ] + } + } } ] diff --git a/data/Mainline_mods/Mods/innawood/readme.md b/data/Mainline_mods/Mods/innawood/readme.md index 9ac1558d3..fde21547e 100644 --- a/data/Mainline_mods/Mods/innawood/readme.md +++ b/data/Mainline_mods/Mods/innawood/readme.md @@ -1,12 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Goal](#goal) -- [Changes](#changes) - - - # Goal The goal of the mod is to create a 'innawood' experience, where the player can experience exploring an untouched land, and have to craft rather than loot everything they want to use. @@ -21,8 +12,7 @@ The goal of the mod is to create a 'innawood' experience, where the player can e - Sand spawns somewhat commonly in plains. - Get a lot of withered plants from smashing young trees. - Bog iron can be extracted and refined to allow metalworking. -- The old ammonia recipe is back. -- Ammonia, glass from sand, cattail jelly, quicklime, cement, and mortar are auto learned. +- Glass from sand, cattail jelly, quicklime, cement, mortar, and other recipes for a wilderness experience are auto learned. - Mortar can be made without a cement mixer, but now requires water. - Man made junk found on the ground or though foraging is removed. - You can make nails without first needing a nail. diff --git a/data/Mainline_mods/Mods/innawood/recipes/armor/arms.json b/data/Mainline_mods/Mods/innawood/recipes/armor/arms.json new file mode 100644 index 000000000..2fe61e758 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/recipes/armor/arms.json @@ -0,0 +1,17 @@ +[ + { + "result": "2byarm_guard", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_ARMS", + "skill_used": "fabrication", + "difficulty": 1, + "time": "15 m", + "autolearn": true, + "reversible": true, + "using": [ [ "cordage_short", 2 ] ], + "qualities": [ { "id": "CUT", "level": 2 } ], + "components": [ [ [ "2x4", 1 ], [ "stick", 2 ] ], [ [ "cotton_patchwork", 1 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/recipes/armor/head.json b/data/Mainline_mods/Mods/innawood/recipes/armor/head.json new file mode 100644 index 000000000..050929eb1 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/recipes/armor/head.json @@ -0,0 +1,21 @@ +[ + { + "result": "goggles_welding", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_HEAD", + "skill_used": "mechanics", + "difficulty": 2, + "skills_required": [ "fabrication", 1 ], + "time": "1 h", + "autolearn": true, + "book_learn": [ [ "textbook_fabrication", 3 ], [ "welding_book", 3 ] ], + "components": [ + [ [ "goggles_ski", 1 ], [ "goggles_swim", 1 ], [ "glasses_safety", 1 ], [ "glass_goggles", 1 ] ], + [ [ "eclipse_glasses", 1 ], [ "glass_tinted", 3 ] ], + [ [ "duct_tape", 40 ], [ "medical_tape", 40 ], [ "superglue", 2 ] ] + ], + "proficiencies": [ { "proficiency": "prof_plasticworking" } ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/recipes/armor/other.json b/data/Mainline_mods/Mods/innawood/recipes/armor/other.json new file mode 100644 index 000000000..eeba2e11a --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/recipes/armor/other.json @@ -0,0 +1,50 @@ +[ + { + "result": "gold_bracelet", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_OTHER", + "skill_used": "fabrication", + "difficulty": 6, + "time": "120 m", + "autolearn": true, + "using": [ [ "blacksmithing_standard", 3 ] ], + "proficiencies": [ { "proficiency": "prof_fine_metalsmithing" } ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ], + "components": [ [ [ "gold_small", 12 ] ] ] + }, + { + "result": "copper_bracelet", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_OTHER", + "skill_used": "fabrication", + "difficulty": 6, + "time": "120 m", + "autolearn": true, + "using": [ [ "blacksmithing_standard", 3 ] ], + "proficiencies": [ { "proficiency": "prof_fine_metalsmithing" } ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ], + "components": [ [ [ "copper_scrap_equivalent", 2, "LIST" ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "silver_bracelet", + "category": "CC_ARMOR", + "subcategory": "CSC_ARMOR_OTHER", + "skill_used": "fabrication", + "difficulty": 6, + "time": "120 m", + "autolearn": true, + "using": [ [ "blacksmithing_standard", 3 ] ], + "proficiencies": [ { "proficiency": "prof_fine_metalsmithing" } ], + "qualities": [ { "id": "CHISEL", "level": 3 } ], + "tools": [ [ [ "swage", -1 ] ] ], + "components": [ [ [ "silver_small", 15 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/recipes/brewing.json b/data/Mainline_mods/Mods/innawood/recipes/brewing.json index 74de5048e..417611f7c 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/brewing.json +++ b/data/Mainline_mods/Mods/innawood/recipes/brewing.json @@ -3,7 +3,6 @@ "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_milk_curdled", - "result_mult": 18, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -13,13 +12,13 @@ "batch_time_factors": [ 50, 4 ], "autolearn": true, "using": [ [ "milk_standard_raw_fresh", 15 ] ], - "components": [ [ [ "vinegar", 3 ] ], [ [ "wild_herbs", 40 ], [ "meat_stomach", 1, "LIST" ] ] ] + "components": [ [ [ "vinegar", 3 ] ], [ [ "wild_herbs", 40 ], [ "meat_stomach", 1, "LIST" ] ] ], + "charges": 18 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_whiskey", - "result_mult": 3, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -29,13 +28,13 @@ "autolearn": true, "qualities": [ { "id": "BOIL", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], - "components": [ [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "malted_grain", 2 ] ], [ [ "sugar", 50 ] ], [ [ "yeast", 1 ] ] ] + "components": [ [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "malted_grain", 2 ] ], [ [ "sugar", 50 ] ], [ [ "yeast", 1 ] ] ], + "charges": 3 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_gin", - "result_mult": 3, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -49,13 +48,13 @@ [ [ "water", 2 ], [ "water_clean", 2 ] ], [ [ "corn", 3 ], [ "cornmeal", 3 ], [ "barley", 3 ], [ "buckwheat", 3 ], [ "oats", 3 ] ], [ [ "juniper", 10 ] ] - ] + ], + "charges": 3 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_rum", - "result_mult": 3, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -65,13 +64,13 @@ "autolearn": true, "qualities": [ { "id": "BOIL", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], - "components": [ [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "molasses", 2 ], [ "sugar_beet", 5 ] ], [ [ "yeast", 1 ] ] ] + "components": [ [ [ "water", 3 ], [ "water_clean", 3 ] ], [ [ "molasses", 2 ], [ "sugar_beet", 5 ] ], [ [ "yeast", 1 ] ] ], + "charges": 3 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_moonshine", - "result_mult": 15, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -86,13 +85,13 @@ [ [ "cornmeal", 12 ], [ "corn", 2 ] ], [ [ "sugar", 100 ] ], [ [ "yeast", 2 ] ] - ] + ], + "charges": 15 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_hb_seltzer", - "result_mult": 10, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -113,14 +112,14 @@ [ "worthy_wine", 1, "LIST" ], [ "sweet_fruit", 1, "LIST" ] ] - ] + ], + "charges": 10 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_moonshine", "id_suffix": "pumpkin", - "result_mult": 15, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -130,14 +129,14 @@ "autolearn": true, "qualities": [ { "id": "BOIL", "level": 2 } ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ] ], - "components": [ [ [ "water", 15 ], [ "water_clean", 15 ] ], [ [ "pumpkin", 12 ] ], [ [ "sugar", 50 ] ], [ [ "yeast", 2 ] ] ] + "components": [ [ [ "water", 15 ], [ "water_clean", 15 ] ], [ [ "pumpkin", 12 ] ], [ [ "sugar", 50 ] ], [ [ "yeast", 2 ] ] ], + "charges": 15 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_moonshine", "id_suffix": "forage", - "result_mult": 15, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -152,13 +151,13 @@ [ [ "cattail_rhizome", 12 ], [ "buckwheat", 15 ] ], [ [ "sugar", 100 ] ], [ [ "yeast", 2 ] ] - ] + ], + "charges": 15 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_fruit_wine", - "result_mult": 3, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -167,13 +166,13 @@ "batch_time_factors": [ 95, 4 ], "autolearn": true, "qualities": [ { "id": "CONTAIN", "level": 1 } ], - "components": [ [ [ "juice", 2 ] ], [ [ "yeast", 1 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ] + "components": [ [ [ "juice", 2 ] ], [ [ "yeast", 1 ] ], [ [ "water", 2 ], [ "water_clean", 2 ] ] ], + "charges": 3 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_hb_beer", - "result_mult": 10, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -183,13 +182,13 @@ "autolearn": true, "qualities": [ { "id": "BOIL", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], - "components": [ [ [ "water", 10 ], [ "water_clean", 10 ] ], [ [ "malted_grain", 2 ] ], [ [ "hops", 1 ] ], [ [ "yeast", 1 ] ] ] + "components": [ [ [ "water", 10 ], [ "water_clean", 10 ] ], [ [ "malted_grain", 2 ] ], [ [ "hops", 1 ] ], [ [ "yeast", 1 ] ] ], + "charges": 10 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_mead", - "result_mult": 3, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -202,13 +201,13 @@ [ [ "water_clean", 3 ] ], [ [ "honey_bottled", 12 ], [ "honeycomb", 2 ], [ "honey_glassed", 4 ] ], [ [ "yeast", 1 ] ] - ] + ], + "charges": 3 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_dandelion_wine", - "result_mult": 3, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -222,13 +221,13 @@ [ [ "soaked_dandelion", 10 ] ], [ [ "sugar_standard", 2, "LIST" ], [ "honeycomb", 1 ] ], [ [ "yeast", 1 ] ] - ] + ], + "charges": 3 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_burdock_wine", - "result_mult": 3, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -243,13 +242,13 @@ [ [ "raw_burdock", 10 ] ], [ [ "sugar_standard", 2, "LIST" ], [ "honeycomb", 1 ] ], [ [ "yeast", 1 ] ] - ] + ], + "charges": 3 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "brew_pine_wine", - "result_mult": 3, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -264,13 +263,13 @@ [ [ "pine_bough", 5 ] ], [ [ "sugar_standard", 2, "LIST" ], [ "honeycomb", 1 ] ], [ [ "yeast", 1 ] ] - ] + ], + "charges": 3 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "malting_grain", - "result_mult": 1, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -282,13 +281,13 @@ "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "corn", 1 ], [ "barley", 1 ], [ "buckwheat", 1 ], [ "oats", 1 ], [ "wheat", 1 ] ] - ] + ], + "charges": 1 }, { "type": "recipe", "activity_level": "NO_EXERCISE", "result": "soaking_dandelion", - "result_mult": 1, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -298,13 +297,13 @@ "autolearn": true, "qualities": [ { "id": "BOIL", "level": 2 } ], "tools": [ [ [ "surface_heat", 6, "LIST" ] ] ], - "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "raw_dandelion", 1 ] ] ] + "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "raw_dandelion", 1 ] ] ], + "charges": 1 }, { "type": "recipe", "activity_level": "LIGHT_EXERCISE", "result": "brew_vinegar", - "result_mult": 1, "category": "CC_FOOD", "subcategory": "CSC_FOOD_BREW", "skill_used": "cooking", @@ -322,6 +321,7 @@ [ "sweet_fruit", 1, "LIST" ], [ "wild_herbs", 40 ] ] - ] + ], + "charges": 1 } ] diff --git a/data/Mainline_mods/Mods/innawood/recipes/medsandchemicals.json b/data/Mainline_mods/Mods/innawood/recipes/medsandchemicals.json index 2348fdbe4..5b1202c9d 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/medsandchemicals.json +++ b/data/Mainline_mods/Mods/innawood/recipes/medsandchemicals.json @@ -1,21 +1,4 @@ [ - { - "type": "recipe", - "result": "ammonia_hydroxide", - "category": "CC_CHEM", - "subcategory": "CSC_CHEM_CHEMICALS", - "skill_used": "chemistry", - "difficulty": 5, - "time": "36 m", - "autolearn": true, - "qualities": [ { "id": "CHEM", "level": 1 } ], - "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], - "components": [ - [ [ "water_clean", 1 ], [ "water", 1 ] ], - [ [ "scrap", 1 ] ], - [ [ "charcoal", 5 ], [ "coal_lump", 5 ], [ "lye_powder", 20 ] ] - ] - }, { "result": "cattail_jelly", "byproducts": [ [ "plant_fibre" ] ], @@ -250,7 +233,7 @@ "skill_used": "tailor", "time": "1 m 2 s", "autolearn": true, - "charges": 8, + "result_mult": 8, "qualities": [ { "id": "CUT", "level": 2 } ], "components": [ [ [ "sheet_cotton", 1 ], [ "sheet_fibercloth", 1 ] ] ] }, @@ -263,8 +246,33 @@ "skill_used": "tailor", "time": "9 s", "autolearn": true, - "charges": 1, + "result_mult": 1, "flags": [ "BLIND_EASY" ], "components": [ [ [ "cotton_patchwork", 1 ], [ "fibercloth_patchwork", 1 ] ] ] + }, + { + "result": "lye", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "id_suffix": "by_electrolysis", + "category": "CC_CHEM", + "subcategory": "CSC_CHEM_CHEMICALS", + "skill_used": "chemistry", + "skills_required": [ "electronics", 2 ], + "difficulty": 4, + "time": "20 m", + "batch_time_factors": [ 80, 4 ], + "//": "chloralkali process, same as with bleach except we wont be washing gases", + "//2": "This is a copy of the DDA recipe, with autolearn added.", + "autolearn": true, + "book_learn": [ [ "adv_chemistry", 3 ], [ "textbook_chemistry", 3 ], [ "recipe_labchem", 3 ] ], + "proficiencies": [ + { "proficiency": "prof_intro_chemistry" }, + { "proficiency": "prof_inorganic_chemistry" }, + { "proficiency": "prof_intro_chem_synth" } + ], + "qualities": [ { "id": "CHEM", "level": 2 } ], + "tools": [ [ [ "electrolysis_kit", 250 ] ] ], + "components": [ [ [ "salt_water", 2 ], [ "saline", 10 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/innawood/recipes/other/materials.json b/data/Mainline_mods/Mods/innawood/recipes/other/materials.json index 2b3d3659a..14f62e97f 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/other/materials.json +++ b/data/Mainline_mods/Mods/innawood/recipes/other/materials.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "MODERATE_EXERCISE", "result": "material_quicklime", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", @@ -16,7 +16,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "result": "material_cement", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", @@ -31,7 +31,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "ACTIVE_EXERCISE", "result": "mortar_build", "category": "CC_OTHER", "subcategory": "CSC_OTHER_OTHER", @@ -59,9 +59,8 @@ "qualities": [ { "id": "CHEM", "level": 1 } ], "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], - [ [ "sheet_metal", -1 ], [ "pot", -1 ], [ "pot_makeshift", -1 ] ], - [ [ "forge", 25 ] ], - [ [ "surface_heat", 15, "LIST" ] ] + [ [ "sheet_metal", -1 ], [ "fire_brick", -1 ], [ "anvil", -1 ], [ "anvil_bronze", -1 ], [ "casting_mold", -1 ] ], + [ [ "forge", 26 ] ] ], "components": [ [ [ "material_sand", 10 ] ], @@ -86,11 +85,11 @@ "proficiencies": [ { "proficiency": "prof_glassblowing" } ], "result_mult": 4, "qualities": [ { "id": "CHEM", "level": 1 } ], + "//": "Forest glass, as cited: https://etheses.whiterose.ac.uk/3464/1/287681.pdf", "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], - [ [ "sheet_metal", -1 ], [ "pot", -1 ], [ "pot_makeshift", -1 ] ], - [ [ "forge", 60 ] ], - [ [ "surface_heat", 30, "LIST" ] ] + [ [ "sheet_metal", -1 ], [ "fire_brick", -1 ], [ "anvil", -1 ], [ "anvil_bronze", -1 ], [ "casting_mold", -1 ] ], + [ [ "forge", 26 ] ] ], "components": [ [ [ "material_sand", 10 ] ], [ [ "ash", 540 ] ], [ [ "material_quicklime", 2 ], [ "material_limestone", 2 ] ] ] }, @@ -146,6 +145,76 @@ "qualities": [ { "id": "CUT", "level": 1 } ], "components": [ [ [ "plant_fibre", 5 ] ] ] }, + { + "type": "recipe", + "result": "lc_steel_lump", + "activity_level": "MODERATE_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "fabrication", + "difficulty": 5, + "time": "4 h", + "batch_time_factors": [ 90, 2 ], + "autolearn": true, + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } ], + "tools": [ [ [ "tongs", -1 ] ], [ [ "metal_tank", -1 ] ], [ [ "forge", 500 ] ] ], + "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 20 ] ], [ [ "coal_lump", 64 ], [ "charcoal", 40 ] ] ] + }, + { + "type": "recipe", + "result": "mc_steel_lump", + "activity_level": "MODERATE_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "fabrication", + "difficulty": 5, + "time": "6 h", + "batch_time_factors": [ 90, 2 ], + "autolearn": true, + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } ], + "tools": [ [ [ "tongs", -1 ] ], [ [ "metal_tank", -1 ] ], [ [ "forge", 500 ] ] ], + "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 20 ] ], [ [ "coal_lump", 77 ], [ "charcoal", 48 ] ] ] + }, + { + "type": "recipe", + "result": "hc_steel_lump", + "activity_level": "MODERATE_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "fabrication", + "difficulty": 5, + "time": "7 h", + "batch_time_factors": [ 90, 2 ], + "autolearn": true, + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } ], + "tools": [ [ [ "tongs", -1 ] ], [ [ "metal_tank", -1 ] ], [ [ "forge", 500 ] ] ], + "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 20 ] ], [ [ "coal_lump", 90 ], [ "charcoal", 68 ] ] ] + }, + { + "type": "recipe", + "result": "steel_lump", + "id_suffix": "from_other_steel", + "activity_level": "MODERATE_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "fabrication", + "difficulty": 5, + "time": "3 h", + "batch_time_factors": [ 90, 2 ], + "autolearn": true, + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" } ], + "tools": [ [ [ "tongs", -1 ] ], [ [ "metal_tank", -1 ] ], [ [ "forge", 200 ] ] ], + "components": [ + [ + [ "hc_steel_lump", 1 ], + [ "hc_steel_chunk", 4 ], + [ "mc_steel_lump", 1 ], + [ "mc_steel_chunk", 4 ], + [ "lc_steel_lump", 1 ], + [ "lc_steel_chunk", 4 ] + ] + ] + }, { "type": "recipe", "activity_level": "LIGHT_EXERCISE", @@ -163,5 +232,30 @@ "qualities": [ { "id": "CHEM", "level": 2 }, { "id": "CONTAIN", "level": 1 } ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ] ], "components": [ [ [ "meal_chitin_piece", 30 ] ], [ [ "lye", 4 ], [ "lye_potassium", 6 ] ], [ [ "any_strong_acid", 1, "LIST" ] ] ] + }, + { + "result": "scrap_bronze", + "type": "recipe", + "activity_level": "ACTIVE_EXERCISE", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "difficulty": 2, + "time": "10 m", + "batch_time_factors": [ 90, 4 ], + "autolearn": true, + "using": [ [ "forging_standard", 1 ] ], + "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_redsmithing" } ], + "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], + "components": [ + [ + [ "tin", 12 ], + [ "aluminum_foil", 371 ], + [ "chem_aluminium_powder", 29 ], + [ "can_drink", 2 ], + [ "scrap_aluminum", 1 ] + ], + [ [ "copper_scrap_equivalent", 1, "LIST" ] ] + ] } ] diff --git a/data/Mainline_mods/Mods/innawood/recipes/other/medical.json b/data/Mainline_mods/Mods/innawood/recipes/other/medical.json new file mode 100644 index 000000000..d49effe0f --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/recipes/other/medical.json @@ -0,0 +1,144 @@ +[ + { + "result": "bandages", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "firstaid", + "difficulty": 1, + "time": "30 s", + "autolearn": true, + "result_mult": 3, + "components": [ + [ [ "cotton_patchwork", 3 ], [ "medical_gauze", 1 ], [ "fibercloth_patchwork", 3 ] ], + [ [ "duct_tape", 20 ], [ "medical_tape", 5 ] ], + [ + [ "disinfectant", 5 ], + [ "thyme_oil", 1 ], + [ "chem_ethanol", 250 ], + [ "denat_alcohol", 250 ], + [ "methed_alcohol", 250 ] + ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "arm_xlsplint", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "firstaid", + "skills_required": [ "survival", 1 ], + "difficulty": 1, + "time": "5 m", + "autolearn": true, + "components": [ + [ [ "cotton_patchwork", 10 ], [ "fibercloth_patchwork", 10 ], [ "medical_gauze", 4 ] ], + [ [ "cordage", 2, "LIST" ], [ "duct_tape", 100 ], [ "medical_tape", 50 ] ], + [ [ "stick", 2 ], [ "broom", 2 ], [ "2x4", 2 ], [ "pool_cue", 2 ], [ "mop", 2 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "arm_splint", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "firstaid", + "skills_required": [ "survival", 1 ], + "difficulty": 1, + "time": "2 m", + "autolearn": true, + "components": [ + [ [ "cotton_patchwork", 5 ], [ "fibercloth_patchwork", 5 ], [ "medical_gauze", 2 ] ], + [ [ "cordage", 1, "LIST" ], [ "duct_tape", 50 ], [ "medical_tape", 25 ] ], + [ [ "stick", 1 ], [ "broom", 1 ], [ "2x4", 1 ], [ "pool_cue", 1 ], [ "mop", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "arm_xs_splint", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "firstaid", + "skills_required": [ "survival", 1 ], + "difficulty": 1, + "time": "2 m", + "autolearn": true, + "components": [ + [ [ "cotton_patchwork", 2 ], [ "fibercloth_patchwork", 2 ], [ "medical_gauze", 1 ] ], + [ [ "cordage", 1, "LIST" ], [ "duct_tape", 25 ], [ "medical_tape", 10 ] ], + [ [ "stick", 1 ], [ "broom", 1 ], [ "2x4", 1 ], [ "pool_cue", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "leg_splint", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "firstaid", + "skills_required": [ "survival", 1 ], + "difficulty": 1, + "time": "2 m", + "autolearn": true, + "components": [ + [ [ "cotton_patchwork", 10 ], [ "fibercloth_patchwork", 10 ], [ "medical_gauze", 4 ] ], + [ [ "cordage", 1, "LIST" ], [ "duct_tape", 100 ], [ "medical_tape", 50 ] ], + [ [ "stick", 2 ], [ "broom", 2 ], [ "2x4", 2 ], [ "pool_cue", 2 ], [ "mop", 2 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "leg_xlsplint", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "firstaid", + "skills_required": [ "survival", 1 ], + "difficulty": 1, + "time": "2 m", + "autolearn": true, + "components": [ + [ [ "cotton_patchwork", 10 ], [ "fibercloth_patchwork", 10 ], [ "medical_gauze", 4 ] ], + [ [ "cordage", 2, "LIST" ], [ "duct_tape", 100 ], [ "medical_tape", 50 ] ], + [ [ "stick", 4 ], [ "broom", 4 ], [ "2x4", 4 ], [ "pool_cue", 4 ], [ "mop", 4 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "leg_xs_splint", + "category": "CC_*", + "subcategory": "CSC_*_NESTED", + "skill_used": "firstaid", + "skills_required": [ "survival", 1 ], + "difficulty": 1, + "time": "2 m", + "autolearn": true, + "components": [ + [ [ "cotton_patchwork", 5 ], [ "fibercloth_patchwork", 10 ], [ "medical_gauze", 2 ] ], + [ [ "cordage", 1, "LIST" ], [ "duct_tape", 100 ], [ "medical_tape", 50 ] ], + [ [ "stick", 1 ], [ "broom", 1 ], [ "2x4", 1 ], [ "pool_cue", 1 ] ] + ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "makeshift_crutches", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MEDICAL", + "skill_used": "fabrication", + "time": "30 m", + "autolearn": true, + "qualities": [ { "id": "SAW_W", "level": 1 }, { "id": "CUT", "level": 2 } ], + "proficiencies": [ { "proficiency": "prof_carving" }, { "proficiency": "prof_carpentry_basic" } ], + "components": [ + [ [ "cotton_patchwork", 10 ], [ "fibercloth_patchwork", 10 ], [ "medical_gauze", 4 ] ], + [ [ "cordage", 2, "LIST" ], [ "duct_tape", 100 ], [ "medical_tape", 50 ] ], + [ [ "stick", 2 ], [ "broom", 2 ], [ "2x4", 2 ], [ "pool_cue", 2 ] ] + ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/recipes/other/parts.json b/data/Mainline_mods/Mods/innawood/recipes/other/parts.json index 0c0bac45a..b0d6c2382 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/other/parts.json +++ b/data/Mainline_mods/Mods/innawood/recipes/other/parts.json @@ -27,7 +27,7 @@ "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 } ], "proficiencies": [ { "proficiency": "prof_metalworking", "required": false, "time_multiplier": 1.5 }, - { "proficiency": "prof_plumbing", "required": false, "time_multiplier": 3, "fail_multiplier": 1.5 } + { "proficiency": "prof_plumbing", "required": false, "time_multiplier": 3, "skill_penalty": 0.5 } ], "components": [ [ [ "pipe", 1 ] ], [ [ "scrap", 1 ] ], [ [ "plastic_chunk", 1 ] ], [ [ "pipe_fittings", 1 ] ] ] }, @@ -134,7 +134,7 @@ "using": [ [ "welding_standard", 5 ] ], "proficiencies": [ { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_welding_basic", "fail_multiplier": 1.5 }, + { "proficiency": "prof_welding_basic", "skill_penalty": 0.5 }, { "proficiency": "prof_welding" } ], "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 } ], @@ -217,6 +217,22 @@ "qualities": [ { "id": "CUT", "level": 2 } ], "components": [ [ [ "cotton_patchwork", 4 ], [ "leather_belt", 1 ], [ "rope_superior_short", 1, "LIST" ] ], [ [ "duct_tape", 20 ] ] ] }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "foot_crank", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_PARTS", + "skill_used": "fabrication", + "skills_required": [ "mechanics", 2 ], + "difficulty": 4, + "time": "2 h", + "autolearn": true, + "qualities": [ { "id": "SAW_M_FINE", "level": 1 }, { "id": "SCREW_FINE", "level": 1 }, { "id": "WRENCH", "level": 1 } ], + "proficiencies": [ { "proficiency": "prof_metalworking", "required": false, "time_multiplier": 1.5 } ], + "tools": [ [ [ "metal_file", -1 ] ] ], + "components": [ [ [ "simple_crank", 2 ] ], [ [ "sheet_metal", 1 ] ], [ [ "chain", 3 ] ] ] + }, { "type": "recipe", "activity_level": "LIGHT_EXERCISE", @@ -236,12 +252,13 @@ "type": "recipe", "activity_level": "MODERATE_EXERCISE", "result": "antenna", + "id_suffix": "innawood", "//": "This is the old, completely inaccurate and frankly just terrible recipe from the mainline. It was ported to Innawoods for the sake of not removing the ability to learn electronics for players but it should ideally be changed/replaced.", "category": "CC_ELECTRONIC", "subcategory": "CSC_ELECTRONIC_COMPONENTS", "skill_used": "electronics", "time": "3 m", - "book_learn": [ [ "radio_book", 1 ], [ "textbook_anarch", 1 ] ], + "autolearn": true, "qualities": [ { "id": "SAW_M", "level": 1 } ], "components": [ [ [ "steel_chunk", 1 ], [ "scrap", 3 ], [ "knife_butter", 2 ] ] ] } diff --git a/data/Mainline_mods/Mods/innawood/recipes/other/power_supplies.json b/data/Mainline_mods/Mods/innawood/recipes/other/power_supplies.json index e4ee3d666..1f129aac4 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/other/power_supplies.json +++ b/data/Mainline_mods/Mods/innawood/recipes/other/power_supplies.json @@ -74,7 +74,7 @@ "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], "components": [ [ [ "chem_manganese_dioxide", 29 ] ], - [ [ "zinc_metal", 2 ] ], + [ [ "zinc_metal", 8 ] ], [ [ "chem_potassium_hydroxide", 7 ] ], [ [ "duct_tape", 1 ] ], [ [ "water_clean", 1 ] ], @@ -96,7 +96,7 @@ "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], "components": [ [ [ "chem_manganese_dioxide", 87 ] ], - [ [ "zinc_metal", 6 ] ], + [ [ "zinc_metal", 24 ] ], [ [ "chem_potassium_hydroxide", 20 ] ], [ [ "duct_tape", 5 ] ], [ [ "water_clean", 3 ] ], @@ -118,7 +118,7 @@ "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], "components": [ [ [ "chem_manganese_dioxide", 348 ] ], - [ [ "zinc_metal", 24 ] ], + [ [ "zinc_metal", 96 ] ], [ [ "chem_potassium_hydroxide", 82 ] ], [ [ "duct_tape", 20 ] ], [ [ "water_clean", 12 ] ], @@ -140,7 +140,7 @@ "tools": [ [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ] ], "components": [ [ [ "chem_manganese_dioxide", 725 ] ], - [ [ "zinc_metal", 50 ] ], + [ [ "zinc_metal", 200 ] ], [ [ "chem_potassium_hydroxide", 170 ] ], [ [ "duct_tape", 40 ] ], [ [ "water_clean", 25 ] ], @@ -162,7 +162,7 @@ "using": [ [ "blacksmithing_standard", 1 ] ], "components": [ [ [ "chem_manganese_dioxide", 87 ] ], - [ [ "zinc_metal", 6 ] ], + [ [ "zinc_metal", 24 ] ], [ [ "chem_potassium_hydroxide", 20 ] ], [ [ "duct_tape", 5 ] ], [ [ "water_clean", 3 ] ], @@ -184,7 +184,7 @@ "using": [ [ "blacksmithing_standard", 1 ] ], "components": [ [ [ "chem_manganese_dioxide", 348 ] ], - [ [ "zinc_metal", 24 ] ], + [ [ "zinc_metal", 96 ] ], [ [ "chem_potassium_hydroxide", 82 ] ], [ [ "duct_tape", 20 ] ], [ [ "water_clean", 12 ] ], @@ -206,7 +206,7 @@ "using": [ [ "blacksmithing_standard", 1 ] ], "components": [ [ [ "chem_manganese_dioxide", 725 ] ], - [ [ "zinc_metal", 50 ] ], + [ [ "zinc_metal", 200 ] ], [ [ "chem_potassium_hydroxide", 170 ] ], [ [ "duct_tape", 40 ] ], [ [ "water_clean", 25 ] ], @@ -228,7 +228,7 @@ "using": [ [ "blacksmithing_standard", 1 ] ], "components": [ [ [ "cathod_mix", 166 ] ], - [ [ "zinc_metal", 6 ] ], + [ [ "zinc_metal", 24 ] ], [ [ "carbon_electrode", 1 ] ], [ [ "duct_tape", 5 ] ], [ [ "light_battery_shell", 1 ] ] @@ -249,7 +249,7 @@ "using": [ [ "blacksmithing_standard", 1 ] ], "components": [ [ [ "cathod_mix", 664 ] ], - [ [ "zinc_metal", 24 ] ], + [ [ "zinc_metal", 96 ] ], [ [ "carbon_electrode", 4 ] ], [ [ "duct_tape", 20 ] ], [ [ "medium_battery_shell", 1 ] ] @@ -270,7 +270,7 @@ "using": [ [ "blacksmithing_standard", 1 ] ], "components": [ [ [ "cathod_mix", 1328 ] ], - [ [ "zinc_metal", 50 ] ], + [ [ "zinc_metal", 200 ] ], [ [ "carbon_electrode", 8 ] ], [ [ "duct_tape", 40 ] ], [ [ "heavy_battery_shell", 1 ] ] diff --git a/data/Mainline_mods/Mods/innawood/recipes/practice/tailoring.json b/data/Mainline_mods/Mods/innawood/recipes/practice/tailoring.json index 2457433a4..af7c31fcd 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/practice/tailoring.json +++ b/data/Mainline_mods/Mods/innawood/recipes/practice/tailoring.json @@ -9,8 +9,8 @@ "description": "Practice knitting whatever comes to your mind, from simple forms to elaborate and rich designs.", "skill_used": "tailor", "proficiencies": [ - { "proficiency": "prof_knitting", "fail_multiplier": 1, "time_multiplier": 1 }, - { "proficiency": "prof_knitting_speed", "fail_multiplier": 1, "time_multiplier": 1 } + { "proficiency": "prof_knitting", "time_multiplier": 1, "skill_penalty": 0 }, + { "proficiency": "prof_knitting_speed", "time_multiplier": 1, "skill_penalty": 0 } ], "time": "1 h", "practice_data": { "min_difficulty": 0, "max_difficulty": 1, "skill_limit": 2 }, diff --git a/data/Mainline_mods/Mods/innawood/recipes/recipe_food.json b/data/Mainline_mods/Mods/innawood/recipes/recipe_food.json index ac7512889..beff7b771 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/recipe_food.json +++ b/data/Mainline_mods/Mods/innawood/recipes/recipe_food.json @@ -216,7 +216,8 @@ "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "BOIL", "level": 1 } ], "tools": [ [ [ "surface_heat", 30, "LIST" ] ] ], "proficiencies": [ { "proficiency": "prof_food_prep" }, { "proficiency": "prof_forage_cooking" } ], - "components": [ [ [ "water_clean", 1 ] ], [ [ "coffee_pod", 1 ] ] ] + "components": [ [ [ "water_clean", 1 ] ], [ [ "coffee_pod", 1 ] ] ], + "charges": 5 }, { "type": "recipe", @@ -507,7 +508,6 @@ "type": "recipe", "activity_level": "LIGHT_EXERCISE", "result": "raw_butter", - "result_mult": 3, "category": "CC_FOOD", "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", @@ -518,7 +518,8 @@ "qualities": [ { "id": "CHURN", "level": 1 } ], "book_learn": [ [ "dairy_book", 3 ] ], "//": "Book Things to do with milk. Add curdled milk and cheese recipes to the book. Also consider adding to brewing json Airag from this book.", - "components": [ [ [ "milk_cream", 5 ] ] ] + "components": [ [ [ "milk_cream", 5 ] ] ], + "charges": 99 }, { "type": "recipe", @@ -526,7 +527,6 @@ "result": "raw_butter", "id_suffix": "shake", "byproducts": [ [ "buttermilk", 3 ] ], - "result_mult": 1, "category": "CC_FOOD", "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", @@ -536,7 +536,8 @@ "book_learn": [ [ "dairy_book", 3 ] ], "//": "Book Things to do with milk. Add curdled milk and cheese recipes to the book. Also consider adding to brewing json Airag from this book.", "tools": [ [ [ "jar_glass_sealed", -1 ] ] ], - "components": [ [ [ "water_clean", 1 ] ], [ [ "milk_cream", 3 ] ] ] + "components": [ [ [ "water_clean", 1 ] ], [ [ "milk_cream", 3 ] ] ], + "charges": 33 }, { "result": "offal_pickled", @@ -552,12 +553,12 @@ "book_learn": [ [ "cookbook", 6 ], [ "manual_canning", 4 ] ], "autolearn": true, "container": "jar_glass_sealed", - "result_mult": 2, + "charges": 2, "qualities": [ { "id": "CUT", "level": 2 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 20, "LIST" ] ] ], "components": [ [ [ "water", 1 ], [ "water_clean", 1 ], [ "salt_water", 1 ], [ "saline", 5 ] ], - [ [ "jar_glass", 1 ] ], + [ [ "jar_glass_sealed", 1 ] ], [ [ "meat_offal", 2, "LIST" ] ], [ [ "vinegar", 1 ] ] ] @@ -576,12 +577,12 @@ "book_learn": [ [ "cookbook", 6 ], [ "manual_canning", 4 ] ], "autolearn": true, "container": "jar_3l_glass_sealed", - "result_mult": 12, + "charges": 12, "qualities": [ { "id": "CUT", "level": 2 }, { "id": "COOK", "level": 3 } ], "tools": [ [ [ "surface_heat", 100, "LIST" ] ] ], "components": [ [ [ "water", 6 ], [ "water_clean", 6 ], [ "salt_water", 6 ], [ "saline", 30 ] ], - [ [ "jar_3l_glass", 1 ] ], + [ [ "jar_3l_glass_sealed", 1 ] ], [ [ "meat_offal", 12, "LIST" ] ], [ [ "vinegar", 6 ] ] ] @@ -606,7 +607,8 @@ [ [ "batter", 3, "LIST" ] ], [ [ "salt", 1 ] ], [ [ "seasoning_mild", 4, "LIST" ] ] - ] + ], + "charges": 3 }, { "type": "recipe", @@ -659,13 +661,13 @@ "subcategory": "CSC_FOOD_OTHER", "skill_used": "cooking", "difficulty": 4, - "result_mult": 2, "time": "8 m", "autolearn": true, "book_learn": [ [ "cookbook_italian", 2 ] ], "qualities": [ { "id": "CUT", "level": 2 }, { "id": "COOK", "level": 2 } ], "tools": [ [ [ "surface_heat", 2, "LIST" ] ] ], - "components": [ [ [ "salt", 20 ] ], [ [ "garlic_clove", 6 ] ], [ [ "thyme", 2 ] ], [ [ "wild_herbs", 200 ] ] ] + "components": [ [ [ "salt", 20 ] ], [ [ "garlic_clove", 6 ] ], [ [ "thyme", 2 ] ], [ [ "wild_herbs", 200 ] ] ], + "charges": 2 }, { "type": "recipe", @@ -685,7 +687,8 @@ [ [ "sweet_fruit_like", 8, "LIST" ] ], [ [ "sugar", 20 ], [ "syrup", 4 ], [ "beet_syrup", 4 ], [ "molasses", 4 ], [ "artificial_sweetener", 20 ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] - ] + ], + "charges": 8 }, { "type": "recipe", @@ -751,7 +754,8 @@ "book_learn": [ [ "cookbook", 1 ], [ "scots_cookbook", 2 ] ], "qualities": [ [ { "id": "COOK", "level": 2 } ], [ { "id": "OVEN", "level": 1 } ] ], "tools": [ [ [ "surface_heat", 45, "LIST" ] ] ], - "components": [ [ [ "flour_any", 20, "LIST" ] ], [ [ "meat_offal", 1, "LIST" ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ] + "components": [ [ [ "flour_any", 20, "LIST" ] ], [ [ "meat_offal", 1, "LIST" ] ], [ [ "water", 1 ], [ "water_clean", 1 ] ] ], + "charges": 3 }, { "type": "recipe", @@ -764,7 +768,7 @@ "skill_used": "cooking", "difficulty": 5, "time": "30 m", - "result_mult": 2, + "charges": 2, "book_learn": [ [ "manual_canning", 4 ] ], "autolearn": true, "batch_time_factors": [ 83, 5 ], @@ -872,7 +876,7 @@ "skill_used": "cooking", "difficulty": 6, "time": "30 m", - "result_mult": 2, + "charges": 2, "book_learn": [ [ "manual_canning", 4 ] ], "autolearn": true, "batch_time_factors": [ 83, 5 ], @@ -896,7 +900,7 @@ "skill_used": "cooking", "difficulty": 6, "time": "30 m", - "result_mult": 2, + "charges": 2, "book_learn": [ [ "manual_canning", 4 ] ], "autolearn": true, "batch_time_factors": [ 83, 5 ], @@ -937,7 +941,7 @@ "skill_used": "cooking", "difficulty": 6, "time": "40 m", - "result_mult": 12, + "charges": 12, "book_learn": [ [ "manual_canning", 4 ] ], "autolearn": true, "batch_time_factors": [ 83, 5 ], @@ -961,7 +965,7 @@ "skill_used": "cooking", "difficulty": 6, "time": "40 m", - "result_mult": 12, + "charges": 12, "book_learn": [ [ "manual_canning", 4 ] ], "autolearn": true, "batch_time_factors": [ 83, 5 ], @@ -985,7 +989,7 @@ "skill_used": "cooking", "difficulty": 5, "time": "40 m", - "result_mult": 12, + "charges": 12, "book_learn": [ [ "manual_canning", 4 ] ], "batch_time_factors": [ 83, 5 ], "autolearn": true, diff --git a/data/Mainline_mods/Mods/innawood/recipes/recipe_others.json b/data/Mainline_mods/Mods/innawood/recipes/recipe_others.json index 933292d58..9ac554b8a 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/recipe_others.json +++ b/data/Mainline_mods/Mods/innawood/recipes/recipe_others.json @@ -1,7 +1,7 @@ [ { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "chemistry_set_basic", "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", @@ -21,7 +21,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "chemistry_set", "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", @@ -55,7 +55,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "LIGHT_EXERCISE", "result": "pipe_cleaner", "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", @@ -155,7 +155,8 @@ "//": "The tailoring kit is an expanded sewing kit, so a bone/wood needle is inappropriate.", "components": [ [ [ "sewing_kit", 1 ] ], - [ [ "scissors", 1 ] ], + [ [ "scissors", 1 ], [ "steel_scissors", 1 ] ], + [ [ "kevlar_shears", 1 ] ], [ [ "knitting_needles", 1 ] ], [ [ "awl_steel", 1 ] ], [ [ "needle_curved", 1 ] ], @@ -182,5 +183,34 @@ [ [ "duct_tape", 25 ], [ "medical_tape", 50 ], [ "paint", 25, "LIST" ], [ "charcoal", 10 ] ], [ [ "2x4", 4 ], [ "log", 1 ], [ "wood_beam", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "mop", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_TOOLS", + "skill_used": "fabrication", + "time": "10 m", + "reversible": true, + "autolearn": true, + "using": [ [ "cordage", 1 ] ], + "qualities": [ { "id": "CUT", "level": 2 } ], + "proficiencies": [ { "proficiency": "prof_carving" } ], + "components": [ [ [ "stick", 1 ], [ "2x4", 1 ] ], [ [ "cotton_patchwork", 4 ], [ "fibercloth_patchwork", 4 ] ] ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "mirror", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_TOOLS", + "skill_used": "fabrication", + "difficulty": 5, + "time": "30 m", + "autolearn": true, + "proficiencies": [ { "proficiency": "prof_glassblowing", "required": false, "time_multiplier": 6 } ], + "tools": [ [ [ "tongs", -1 ] ], [ [ "crucible", -1 ], [ "crucible_clay", -1 ] ], [ [ "forge", 75 ] ] ], + "components": [ [ [ "glass_sheet", 1 ] ], [ [ "silver_small", 10 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/innawood/recipes/recipe_vehicle.json b/data/Mainline_mods/Mods/innawood/recipes/recipe_vehicle.json index 56701bb49..72c35d70c 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/recipe_vehicle.json +++ b/data/Mainline_mods/Mods/innawood/recipes/recipe_vehicle.json @@ -26,5 +26,43 @@ [ [ "steel_plate", 8 ] ], [ [ "water", 150 ], [ "water_clean", 150 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "alternator_bicycle", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_PARTS", + "skill_used": "electronics", + "skills_required": [ "fabrication", 3 ], + "difficulty": 3, + "time": "30 m", + "reversible": true, + "autolearn": true, + "decomp_learn": 2, + "book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ], [ "manual_mechanics", 2 ] ], + "using": [ [ "soldering_standard", 4 ], [ "steel_tiny", 1 ] ], + "proficiencies": [ { "proficiency": "prof_elec_soldering" } ], + "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "components": [ [ [ "cable", 4 ] ], [ [ "makeshift_transformer", 1 ] ] ] + }, + { + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "result": "alternator_motorbike", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_PARTS", + "skill_used": "electronics", + "skills_required": [ "fabrication", 4 ], + "difficulty": 3, + "time": "30 m", + "reversible": true, + "autolearn": true, + "decomp_learn": 2, + "book_learn": [ [ "manual_electronics", 2 ], [ "mag_electronics", 2 ], [ "manual_mechanics", 2 ] ], + "using": [ [ "soldering_standard", 4 ], [ "steel_tiny", 1 ] ], + "proficiencies": [ { "proficiency": "prof_elec_soldering" } ], + "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "SCREW_FINE", "level": 1 } ], + "components": [ [ [ "cable", 30 ] ], [ [ "makeshift_transformer", 4 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/innawood/recipes/tool.json b/data/Mainline_mods/Mods/innawood/recipes/tool.json index 60bbd2107..aa454579a 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/tool.json +++ b/data/Mainline_mods/Mods/innawood/recipes/tool.json @@ -89,5 +89,28 @@ "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 }, { "id": "GRIND", "level": 2 } ], "tools": [ [ [ "tongs", -1 ] ], [ [ "hotcut", -1 ] ] ], "components": [ [ [ "scrap", 2 ] ], [ [ "splinter", 5 ], [ "bone", 2 ] ], [ [ "leather", 2 ] ] ] + }, + { + "type": "recipe", + "activity_level": "BRISK_EXERCISE", + "result": "scissors", + "id_suffix": "wooden_handle", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_TOOLS", + "byproducts": [ [ "splinter", 5 ] ], + "skill_used": "fabrication", + "difficulty": 3, + "time": "2 h", + "autolearn": true, + "using": [ [ "blacksmithing_scrap", 1 ] ], + "proficiencies": [ + { "proficiency": "prof_metalworking" }, + { "proficiency": "prof_toolsmithing", "required": false, "time_multiplier": 1.5 }, + { "proficiency": "prof_bladesmith", "required": false, "time_multiplier": 1.5 }, + { "proficiency": "prof_carving", "required": false, "time_multiplier": 1.5 } + ], + "qualities": [ { "id": "GRIND", "level": 2 } ], + "tools": [ [ [ "hotcut", -1 ] ] ], + "components": [ [ [ "scrap", 1 ] ], [ [ "2x4", 1 ], [ "stick", 1 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/innawood/recipes/tools_containers.json b/data/Mainline_mods/Mods/innawood/recipes/tools_containers.json index a718b452d..3761404f0 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/tools_containers.json +++ b/data/Mainline_mods/Mods/innawood/recipes/tools_containers.json @@ -77,7 +77,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "bag_canvas_small", "category": "CC_OTHER", "subcategory": "CSC_OTHER_CONTAINERS", @@ -90,7 +90,7 @@ }, { "type": "recipe", - "activity_level": "fake", + "activity_level": "NO_EXERCISE", "result": "bag_canvas", "category": "CC_OTHER", "subcategory": "CSC_OTHER_CONTAINERS", diff --git a/data/Mainline_mods/Mods/innawood/recipes/tools_electronic.json b/data/Mainline_mods/Mods/innawood/recipes/tools_electronic.json index 20a3ebc04..26b9a60d3 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/tools_electronic.json +++ b/data/Mainline_mods/Mods/innawood/recipes/tools_electronic.json @@ -35,7 +35,7 @@ "autolearn": [ [ "electronics", 2 ] ], "book_learn": [ [ "manual_electronics", 1 ], [ "advanced_electronics", 2 ], [ "textbook_anarch", 2 ] ], "qualities": [ { "id": "CUT", "level": 2 }, { "id": "SCREW", "level": 1 } ], - "proficiencies": [ { "proficiency": "prof_elec_soldering", "fail_multiplier": 1.125 }, { "proficiency": "prof_elec_circuits" } ], + "proficiencies": [ { "proficiency": "prof_elec_soldering", "skill_penalty": 0.125 }, { "proficiency": "prof_elec_circuits" } ], "components": [ [ [ "e_scrap", 2 ], [ "glowplug", 1 ], [ "makeshift_transformer", 2 ] ], [ [ "copper", 1 ], [ "nail", 1 ], [ "wire", 1 ] ], @@ -190,7 +190,7 @@ "components": [ [ [ "2x4", 4 ] ], [ [ "plastic_chunk", 2 ] ], - [ [ "vac_pump", 1 ] ], + [ [ "motor_micro", 1 ] ], [ [ "nail", 16 ] ], [ [ "wood_panel", 1 ] ], [ [ "hose", 1 ], [ "makeshift_hose", 1 ] ], @@ -218,5 +218,32 @@ [ [ "motor_micro", 1 ] ], [ [ "e_scrap", 1 ], [ "makeshift_transformer", 1 ] ] ] + }, + { + "result": "microcentrifuge", + "type": "recipe", + "activity_level": "LIGHT_EXERCISE", + "category": "CC_ELECTRONIC", + "subcategory": "CSC_ELECTRONIC_TOOLS", + "skill_used": "electronics", + "difficulty": 3, + "time": "20 m", + "reversible": true, + "autolearn": true, + "using": [ [ "soldering_standard", 30 ] ], + "proficiencies": [ { "proficiency": "prof_elec_soldering" }, { "proficiency": "prof_elec_circuits" } ], + "qualities": [ + { "id": "SCREW", "level": 1, "amount": 1 }, + { "id": "HAMMER", "level": 3, "amount": 1 }, + { "id": "CUT_FINE", "level": 1, "amount": 1 } + ], + "components": [ + [ [ "sheet_metal_small", 2 ] ], + [ [ "steel_chunk", 4 ] ], + [ [ "cable", 2 ] ], + [ [ "motor_small", 1 ] ], + [ [ "2x4", 1 ] ], + [ [ "adhesive", 1, "LIST" ] ] + ] } ] diff --git a/data/Mainline_mods/Mods/innawood/recipes/tools_hand.json b/data/Mainline_mods/Mods/innawood/recipes/tools_hand.json index 232dddab7..a16809912 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/tools_hand.json +++ b/data/Mainline_mods/Mods/innawood/recipes/tools_hand.json @@ -1,45 +1,4 @@ [ - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "metalworking_tongs", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "fabrication", - "difficulty": 2, - "time": "60 m", - "autolearn": true, - "qualities": [ { "id": "ANVIL", "level": 1 }, { "id": "HAMMER", "level": 2 } ], - "tools": [ [ [ "forge", 150 ], [ "oxy_torch", 30 ] ] ], - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_toolsmithing" } - ], - "components": [ - [ [ "steel_lump", 1 ], [ "pipe", 2 ], [ "rebar", 2 ] ], - [ [ "nail", 1 ], [ "steel_chunk", 2 ], [ "scrap", 6 ], [ "steel_lump", 1 ] ] - ] - }, - { - "type": "recipe", - "activity_level": "BRISK_EXERCISE", - "result": "metal_file", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "fabrication", - "difficulty": 4, - "time": "2 h", - "autolearn": true, - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_toolsmithing" } - ], - "qualities": [ { "id": "CHISEL", "level": 3 }, { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 } ], - "tools": [ [ [ "forge", 20 ], [ "oxy_torch", 20 ], [ "fake_arc_furnace", 10 ] ], [ [ "metalworking_tongs", -1 ] ] ], - "components": [ [ [ "scrap", 2 ], [ "steel_lump", 1 ] ] ] - }, { "type": "recipe", "result": "xacto", diff --git a/data/Mainline_mods/Mods/innawood/recipes/tools_lights.json b/data/Mainline_mods/Mods/innawood/recipes/tools_lights.json index 49e618f00..9c7db7a39 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/tools_lights.json +++ b/data/Mainline_mods/Mods/innawood/recipes/tools_lights.json @@ -176,35 +176,6 @@ ] ] }, - { - "type": "recipe", - "activity_level": "LIGHT_EXERCISE", - "result": "survivor_light", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "electronics", - "skills_required": [ "survival", 3 ], - "difficulty": 2, - "time": "25 m", - "autolearn": true, - "reversible": true, - "using": [ [ "soldering_standard", 10 ] ], - "proficiencies": [ { "proficiency": "prof_elec_soldering" } ], - "qualities": [ { "id": "CUT", "level": 2 }, { "id": "SCREW", "level": 1 } ], - "components": [ - [ [ "flashlight", 1 ] ], - [ [ "amplifier", 1 ], [ "makeshift_transformer", 2 ] ], - [ [ "scrap", 2 ] ], - [ [ "wire", 2 ] ], - [ - [ "cotton_patchwork", 4 ], - [ "leather", 4 ], - [ "duct_tape", 20 ], - [ "medical_tape", 40 ], - [ "cordage", 1, "LIST" ] - ] - ] - }, { "result": "standing_lamp", "type": "recipe", diff --git a/data/Mainline_mods/Mods/innawood/recipes/weapon/bashing.json b/data/Mainline_mods/Mods/innawood/recipes/weapon/bashing.json index dd57dce45..ef1e27903 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/weapon/bashing.json +++ b/data/Mainline_mods/Mods/innawood/recipes/weapon/bashing.json @@ -9,10 +9,7 @@ "time": "25 m", "autolearn": true, "qualities": [ { "id": "SAW_W", "level": 1 } ], - "proficiencies": [ - { "proficiency": "prof_carpentry_basic", "fail_multiplier": 1 }, - { "proficiency": "prof_carving", "fail_multiplier": 1 } - ], + "proficiencies": [ { "proficiency": "prof_carpentry_basic", "skill_penalty": 0 }, { "proficiency": "prof_carving", "skill_penalty": 0 } ], "components": [ [ [ "2x4", 1 ], [ "stick", 1 ] ] ] } ] diff --git a/data/Mainline_mods/Mods/innawood/recipes/weapon/mods.json b/data/Mainline_mods/Mods/innawood/recipes/weapon/mods.json new file mode 100644 index 000000000..ed4717399 --- /dev/null +++ b/data/Mainline_mods/Mods/innawood/recipes/weapon/mods.json @@ -0,0 +1,30 @@ +[ + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "wooden_grip", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_MODS", + "skill_used": "fabrication", + "skills_required": [ [ "gun", 3 ] ], + "difficulty": 3, + "time": "50 m", + "autolearn": true, + "book_learn": [ + [ "manual_fabrication", 2 ], + [ "manual_pistol", 3 ], + [ "manual_shotgun", 4 ], + [ "manual_smg", 4 ], + [ "manual_rifle", 4 ], + [ "manual_launcher", 4 ] + ], + "qualities": [ + { "id": "HAMMER", "level": 2 }, + { "id": "CUT", "level": 2 }, + { "id": "CUT_FINE", "level": 1 }, + { "id": "FILE", "level": 1 } + ], + "proficiencies": [ { "proficiency": "prof_carving", "time_multiplier": 1.5 } ], + "components": [ [ [ "stick", 1 ] ], [ [ "nail", 2 ] ] ] + } +] diff --git a/data/Mainline_mods/Mods/innawood/recipes/weapon/piercing.json b/data/Mainline_mods/Mods/innawood/recipes/weapon/piercing.json index b49c1084d..e36ddf3bb 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/weapon/piercing.json +++ b/data/Mainline_mods/Mods/innawood/recipes/weapon/piercing.json @@ -12,7 +12,7 @@ "proficiencies": [ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_redsmithing" }, - { "proficiency": "prof_carving", "fail_multiplier": 1 } + { "proficiency": "prof_carving", "skill_penalty": 0 } ], "using": [ [ "forging_standard", 1 ], [ "bronzesmithing_tools", 1 ] ], "qualities": [ { "id": "CUT", "level": 2 }, { "id": "GRIND", "level": 2 } ], @@ -34,7 +34,7 @@ { "proficiency": "prof_metalworking" }, { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_bladesmith" }, - { "proficiency": "prof_carving", "fail_multiplier": 1 } + { "proficiency": "prof_carving", "skill_penalty": 0 } ], "using": [ [ "blacksmithing_standard", 8 ], [ "steel_standard", 2 ] ], "qualities": [ { "id": "GRIND", "level": 2 } ], diff --git a/data/Mainline_mods/Mods/innawood/recipes/weapon/ranged.json b/data/Mainline_mods/Mods/innawood/recipes/weapon/ranged.json index 33aae782e..1f22a0250 100644 --- a/data/Mainline_mods/Mods/innawood/recipes/weapon/ranged.json +++ b/data/Mainline_mods/Mods/innawood/recipes/weapon/ranged.json @@ -23,7 +23,7 @@ { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_gunsmithing_basic" }, { "proficiency": "prof_gunsmithing_antique" }, - { "proficiency": "prof_carving", "time_multiplier": 1.5, "fail_multiplier": 1.15 } + { "proficiency": "prof_carving", "time_multiplier": 1.5, "skill_penalty": 0.15 } ], "tools": [ [ [ "tongs", -1 ] ], [ [ "swage", -1 ] ] ], "components": [ [ [ "2x4", 2 ] ], [ [ "pipe", 1 ] ], [ [ "sharp_rock", 1 ] ] ] @@ -52,7 +52,7 @@ { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_gunsmithing_basic" }, { "proficiency": "prof_gunsmithing_antique" }, - { "proficiency": "prof_carving", "time_multiplier": 1.5, "fail_multiplier": 1.15 } + { "proficiency": "prof_carving", "time_multiplier": 1.5, "skill_penalty": 0.15 } ], "tools": [ [ [ "tongs", -1 ] ], [ [ "hotcut", -1 ] ] ], "components": [ [ [ "2x4", 2 ] ], [ [ "pipe", 1 ] ], [ [ "sharp_rock", 1 ] ] ] @@ -81,7 +81,7 @@ { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_gunsmithing_basic" }, { "proficiency": "prof_gunsmithing_antique" }, - { "proficiency": "prof_carving", "time_multiplier": 1.5, "fail_multiplier": 1.15 } + { "proficiency": "prof_carving", "time_multiplier": 1.5, "skill_penalty": 0.15 } ], "tools": [ [ [ "tongs", -1 ] ], [ [ "hotcut", -1 ] ] ], "components": [ [ [ "2x4", 2 ] ], [ [ "pipe", 1 ] ], [ [ "sharp_rock", 1 ] ] ] @@ -110,7 +110,7 @@ { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_gunsmithing_basic" }, { "proficiency": "prof_gunsmithing_antique" }, - { "proficiency": "prof_carving", "time_multiplier": 1.5, "fail_multiplier": 1.15 } + { "proficiency": "prof_carving", "time_multiplier": 1.5, "skill_penalty": 0.15 } ], "tools": [ [ [ "tongs", -1 ] ], [ [ "hotcut", -1 ] ] ], "components": [ [ [ "2x4", 1 ] ], [ [ "pipe", 1 ] ], [ [ "sharp_rock", 1 ] ] ] @@ -133,7 +133,7 @@ { "proficiency": "prof_blacksmithing" }, { "proficiency": "prof_gunsmithing_basic" }, { "proficiency": "prof_gunsmithing_antique" }, - { "proficiency": "prof_carving", "time_multiplier": 1.5, "fail_multiplier": 1.15 } + { "proficiency": "prof_carving", "time_multiplier": 1.5, "skill_penalty": 0.15 } ], "components": [ [ [ "2x4", 2 ] ], [ [ "pipe", 2 ] ], [ [ "sharp_rock", 2 ] ] ] }, @@ -173,7 +173,7 @@ { "id": "WRENCH", "level": 1 } ], "proficiencies": [ - { "proficiency": "prof_bowyery", "time_multiplier": 1.5, "fail_multiplier": 1.15 }, + { "proficiency": "prof_bowyery", "time_multiplier": 1.5, "skill_penalty": 0.15 }, { "proficiency": "prof_gunsmithing_spring" } ], "components": [ @@ -197,7 +197,7 @@ "reversible": true, "decomp_learn": 2, "proficiencies": [ - { "proficiency": "prof_bowyery", "time_multiplier": 1.5, "fail_multiplier": 1.15 }, + { "proficiency": "prof_bowyery", "time_multiplier": 1.5, "skill_penalty": 0.15 }, { "proficiency": "prof_gunsmithing_spring" } ], "autolearn": true, @@ -213,7 +213,7 @@ "skill_used": "fabrication", "skills_required": [ [ "traps", 2 ], [ "archery", 2 ] ], "proficiencies": [ - { "proficiency": "prof_bowyery", "time_multiplier": 1.5, "fail_multiplier": 1.15 }, + { "proficiency": "prof_bowyery", "time_multiplier": 1.5, "skill_penalty": 0.15 }, { "proficiency": "prof_gunsmithing_spring" }, { "proficiency": "prof_carving", "time_multiplier": 1.5 } ], @@ -237,7 +237,7 @@ "reversible": true, "decomp_learn": 2, "proficiencies": [ - { "proficiency": "prof_bowyery", "time_multiplier": 1.5, "fail_multiplier": 1.15 }, + { "proficiency": "prof_bowyery", "time_multiplier": 1.5, "skill_penalty": 0.15 }, { "proficiency": "prof_gunsmithing_spring" } ], "autolearn": true, diff --git a/data/Mainline_mods/Mods/innawood/scenarios.json b/data/Mainline_mods/Mods/innawood/scenarios.json index 03613c22e..cdb934dc6 100644 --- a/data/Mainline_mods/Mods/innawood/scenarios.json +++ b/data/Mainline_mods/Mods/innawood/scenarios.json @@ -8,7 +8,36 @@ "description": "Somehow, you found yourself in a cave. Someone else is with you.", "allowed_locs": [ "sloc_cave_underground_innawood", "sloc_cave_innawood" ], "start_name": "Cave", - "flags": [ ] + "professions": [ + "svictim", + "naked", + "unemployed", + "musician", + "goat_man", + "lost_tribal", + "shaman", + "backpacker", + "miner", + "bow_hunter", + "javelin_hunter", + "spear_hunter", + "crossbow_hunter", + "fisher", + "redsmith", + "lumberjack", + "recruit", + "native_settler", + "naturalist", + "tribal_swordsman", + "tribal_arbalist", + "farmer", + "fisher_canoe", + "trapper", + "carpenter", + "bricklayer" + ], + "flags": [ ], + "reveal_locale": false }, { "type": "scenario", @@ -18,7 +47,36 @@ "description": "Somehow, you found yourself in a cave. Seems like you're on your own.", "allowed_locs": [ "sloc_cave_underground_innawood", "sloc_cave_innawood" ], "start_name": "Cave", - "flags": [ "LONE_START" ] + "flags": [ "LONE_START" ], + "professions": [ + "svictim", + "naked", + "unemployed", + "musician", + "goat_man", + "lost_tribal", + "shaman", + "backpacker", + "miner", + "bow_hunter", + "javelin_hunter", + "spear_hunter", + "crossbow_hunter", + "fisher", + "redsmith", + "lumberjack", + "recruit", + "native_settler", + "naturalist", + "tribal_swordsman", + "tribal_arbalist", + "farmer", + "fisher_canoe", + "trapper", + "carpenter", + "bricklayer" + ], + "reveal_locale": false }, { "type": "scenario", @@ -29,7 +87,36 @@ "points": -4, "start_name": "Wilderness", "allowed_locs": [ "sloc_field", "sloc_forest", "sloc_desert_island", "sloc_river" ], - "eoc": [ "scenario_infected" ] + "eoc": [ "scenario_infected" ], + "professions": [ + "svictim", + "naked", + "unemployed", + "musician", + "goat_man", + "lost_tribal", + "shaman", + "backpacker", + "miner", + "bow_hunter", + "javelin_hunter", + "spear_hunter", + "crossbow_hunter", + "fisher", + "redsmith", + "lumberjack", + "recruit", + "native_settler", + "naturalist", + "tribal_swordsman", + "tribal_arbalist", + "farmer", + "fisher_canoe", + "trapper", + "carpenter", + "bricklayer" + ], + "reveal_locale": false }, { "type": "scenario", @@ -41,7 +128,36 @@ "allowed_locs": [ "sloc_field", "sloc_forest", "sloc_desert_island", "sloc_river" ], "start_name": "Wilderness", "flags": [ "CHALLENGE", "LONE_START" ], - "missions": [ "MISSION_KILL_NEMESIS" ] + "missions": [ "MISSION_KILL_NEMESIS" ], + "professions": [ + "svictim", + "naked", + "unemployed", + "musician", + "goat_man", + "lost_tribal", + "shaman", + "backpacker", + "miner", + "bow_hunter", + "javelin_hunter", + "spear_hunter", + "crossbow_hunter", + "fisher", + "redsmith", + "lumberjack", + "recruit", + "native_settler", + "naturalist", + "tribal_swordsman", + "tribal_arbalist", + "farmer", + "fisher_canoe", + "trapper", + "carpenter", + "bricklayer" + ], + "reveal_locale": false }, { "type": "scenario", @@ -52,7 +168,36 @@ "start_name": "Wilderness", "allowed_locs": [ "sloc_field", "sloc_forest", "sloc_desert_island", "sloc_river" ], "eoc": [ "scenario_fungal_infection" ], - "flags": [ "CHALLENGE", "LONE_START" ] + "flags": [ "CHALLENGE", "LONE_START" ], + "professions": [ + "svictim", + "naked", + "unemployed", + "musician", + "goat_man", + "lost_tribal", + "shaman", + "backpacker", + "miner", + "bow_hunter", + "javelin_hunter", + "spear_hunter", + "crossbow_hunter", + "fisher", + "redsmith", + "lumberjack", + "recruit", + "native_settler", + "naturalist", + "tribal_swordsman", + "tribal_arbalist", + "farmer", + "fisher_canoe", + "trapper", + "carpenter", + "bricklayer" + ], + "reveal_locale": false }, { "type": "scenario", @@ -62,20 +207,10 @@ "description": "You start drunk to the point of incapacitation, depressed, infected, surrounded by fire, and sick with the flu. This day went downhill really fast.", "start_name": "Wilderness", "allowed_locs": [ "sloc_field", "sloc_forest", "sloc_desert_island", "sloc_river" ], - "professions": [ - "svictim", - "naked", - "unemployed", - "homeless", - "hitchhiker", - "clown", - "lost_sub", - "spouse", - "musician", - "true_foodperson" - ], + "professions": [ "svictim", "naked", "unemployed", "homeless", "hitchhiker", "musician" ], "eoc": [ "scenario_infected", "scenario_bad_day" ], - "flags": [ "FIRE_START", "CHALLENGE", "LONE_START" ] + "flags": [ "FIRE_START", "CHALLENGE", "LONE_START" ], + "reveal_locale": false }, { "type": "scenario", @@ -85,7 +220,36 @@ "description": "You have survived the initial wave of panic, and have achieved (relative) safety in a wilderness. The only thing that really bothers you is a mysterious sky-high wall seen in the distance.", "start_name": "Wilderness", "allowed_locs": [ "sloc_field", "sloc_forest", "sloc_desert_island", "sloc_river" ], - "flags": [ "CHALLENGE", "BORDERED" ] + "flags": [ "CHALLENGE", "BORDERED" ], + "professions": [ + "svictim", + "naked", + "unemployed", + "musician", + "goat_man", + "lost_tribal", + "shaman", + "backpacker", + "miner", + "bow_hunter", + "javelin_hunter", + "spear_hunter", + "crossbow_hunter", + "fisher", + "redsmith", + "lumberjack", + "recruit", + "native_settler", + "naturalist", + "tribal_swordsman", + "tribal_arbalist", + "farmer", + "fisher_canoe", + "trapper", + "carpenter", + "bricklayer" + ], + "reveal_locale": false }, { "type": "scenario", @@ -97,9 +261,37 @@ "start_name": "Outside Town", "surround_groups": [ [ "GROUP_BLACK_ROAD", 70.0 ] ], "flags": [ "LONE_START" ], - "custom_initial_date": { "season": "winter" }, - "add_professions": true, - "professions": [ "sheltered_survivor", "sheltered_militia", "winter_scavenger", "winter_army" ] + "start_of_cataclysm": { "hour": 0, "day": 61, "season": "spring", "year": 1 }, + "start_of_game": { "hour": 8, "day": 1, "season": "winter", "year": 1 }, + "professions": [ + "svictim", + "naked", + "unemployed", + "musician", + "goat_man", + "lost_tribal", + "shaman", + "backpacker", + "miner", + "bow_hunter", + "javelin_hunter", + "spear_hunter", + "crossbow_hunter", + "fisher", + "redsmith", + "lumberjack", + "recruit", + "native_settler", + "naturalist", + "tribal_swordsman", + "tribal_arbalist", + "farmer", + "fisher_canoe", + "trapper", + "carpenter", + "bricklayer" + ], + "reveal_locale": false }, { "type": "scenario", @@ -110,22 +302,51 @@ "allowed_locs": [ "sloc_field", "sloc_forest", "sloc_desert_island", "sloc_river" ], "start_name": "Outside Town", "flags": [ "LONE_START" ], - "custom_initial_date": { "season": "summer", "year": 2 }, - "add_professions": true, - "professions": [ "sheltered_survivor", "sheltered_militia", "winter_scavenger", "winter_army" ] + "start_of_cataclysm": { "hour": 0, "day": 61, "season": "spring", "year": 1 }, + "start_of_game": { "hour": 8, "day": 1, "season": "summer", "year": 2 }, + "professions": [ + "svictim", + "naked", + "unemployed", + "musician", + "goat_man", + "lost_tribal", + "shaman", + "backpacker", + "miner", + "bow_hunter", + "javelin_hunter", + "spear_hunter", + "crossbow_hunter", + "fisher", + "redsmith", + "lumberjack", + "recruit", + "native_settler", + "naturalist", + "tribal_swordsman", + "tribal_arbalist", + "farmer", + "fisher_canoe", + "trapper", + "carpenter", + "bricklayer" + ], + "reveal_locale": false }, { "type": "scenario", "id": "last_flight", "name": "Last Flight", - "//": "Doesn't seem to spawn the helicopter without a road nearby. Dissabeled until this can be fixed.", + "//": "Doesn't seem to spawn the helicopter without a road nearby. Disabled until this can be fixed.", "points": 2, "description": "Once it became clear that the world was ending you took to the skies, hoping that your flying skills could lead you to safety. During your flight you got lost and had to land on an empty field.", "start_name": "Emergency Landing Site", "allowed_locs": [ "sloc_field" ], "vehicle": "2seater2_scenario", "professions": [ "heli_pilot" ], - "flags": [ "LONE_START" ] + "flags": [ "LONE_START" ], + "reveal_locale": false }, { "type": "scenario", @@ -135,7 +356,36 @@ "description": "You find yourself amongst trees. The screaming and the moaning is fainter this far from civilization, but you'd better know what you're doing out here.", "start_name": "Wilderness", "allowed_locs": [ "sloc_field", "sloc_forest", "sloc_desert_island", "sloc_river" ], - "flags": [ "LONE_START" ] + "flags": [ "LONE_START" ], + "professions": [ + "svictim", + "naked", + "unemployed", + "musician", + "goat_man", + "lost_tribal", + "shaman", + "backpacker", + "miner", + "bow_hunter", + "javelin_hunter", + "spear_hunter", + "crossbow_hunter", + "fisher", + "redsmith", + "lumberjack", + "recruit", + "native_settler", + "naturalist", + "tribal_swordsman", + "tribal_arbalist", + "farmer", + "fisher_canoe", + "trapper", + "carpenter", + "bricklayer" + ], + "reveal_locale": false }, { "type": "scenario", @@ -143,10 +393,27 @@ "name": "Car Crash", "points": -2, "description": "You decided the open road would be a better prospect than the zombie-filled cities. While en route to your destination, you were involved in a wreck. When you look around, you can no longer spot the road you were driving on. Just how hard did you hit your head?", + "//": "Came from a portal storm, so future tech/professions are allowed", "allowed_locs": [ "sloc_field" ], "start_name": "Crash Site", "map_extra": "mx_mayhem", - "flags": [ "CHALLENGE", "HELI_CRASH", "LONE_START" ] + "flags": [ "CHALLENGE", "HELI_CRASH", "LONE_START" ], + "reveal_locale": false + }, + { + "type": "scenario", + "id": "portal_dependent", + "name": "Challenge - Portal Dependent", + "points": -8, + "description": "You were caught in a huge and unstable portal storm, and were utterly unprotected from the full force of its effects. You're on the tail end of the storm now, and while you've survived, you feel… different.", + "forced_traits": [ "PORTAL_DEPENDENT" ], + "flags": [ "CHALLENGE", "LONE_START" ], + "start_name": "Field", + "allowed_locs": [ "sloc_field", "sloc_forest", "sloc_desert_island" ], + "eoc": [ "scenario_strong_portal_storm" ], + "requirement": "achievement_witnessed_portal_storm", + "reveal_locale": false, + "professions": [ "portal_traveler", "churl", "true_foodperson", "unemployed", "naked" ] }, { "type": "scenario", @@ -159,6 +426,7 @@ "professions": [ "churl" ], "forced_traits": [ "ILLITERATE", "ANTIJUNK", "STRONGSTOMACH", "SPIRITUAL" ], "forbidden_traits": [ "FASTREADER", "SLOWREADER" ], - "flags": [ "CHALLENGE", "LONE_START" ] + "flags": [ "CHALLENGE", "LONE_START" ], + "reveal_locale": false } ] diff --git a/data/Mainline_mods/Mods/innawood/vehicleparts/battery.json b/data/Mainline_mods/Mods/innawood/vehicleparts/battery.json index f6297e09a..d58fa0fdd 100644 --- a/data/Mainline_mods/Mods/innawood/vehicleparts/battery.json +++ b/data/Mainline_mods/Mods/innawood/vehicleparts/battery.json @@ -5,7 +5,6 @@ "name": { "str": "clay car battery" }, "item": "battery_car_clay", "fuel_type": "battery", - "symbol": "o", "categories": [ "energy" ], "color": "yellow", "broken_color": "red", @@ -22,7 +21,7 @@ "removal": { "skills": [ [ "mechanics", 0 ] ], "time": "50 s", "qualities": [ { "id": "WRENCH", "level": 1 } ] }, "repair": { "skills": [ [ "mechanics", 3 ] ], "time": "600 s", "using": [ [ "soldering_standard", 5 ] ] } }, - "flags": [ "FOLDABLE" ], - "damage_reduction": { "bash": 10 } + "damage_reduction": { "bash": 10 }, + "variants": [ { "symbols": "o", "symbols_broken": "#" } ] } ] diff --git a/data/Mainline_mods/Mods/no_fungal_growth/modinfo.json b/data/Mainline_mods/Mods/no_fungal_growth/modinfo.json index 344c1e802..46bcb03e0 100644 --- a/data/Mainline_mods/Mods/no_fungal_growth/modinfo.json +++ b/data/Mainline_mods/Mods/no_fungal_growth/modinfo.json @@ -2,7 +2,7 @@ { "type": "MOD_INFO", "id": "no_fungal_growth", - "name": "No Fungal Growth", + "name": "Slowdown Fungal Growth", "authors": [ "eltank" ], "description": "Removes the exponential growth ability of fungaloids.", "category": "rebalance", diff --git a/data/Mainline_mods/Mods/package_bionic_professions/bionic_professions.json b/data/Mainline_mods/Mods/package_bionic_professions/bionic_professions.json index 506e25cd6..68bd76b04 100644 --- a/data/Mainline_mods/Mods/package_bionic_professions/bionic_professions.json +++ b/data/Mainline_mods/Mods/package_bionic_professions/bionic_professions.json @@ -50,12 +50,12 @@ "bio_power_storage_mkII", "bio_recoil" ], - "traits": [ "PROF_CYBERCOP" ], + "traits": [ "PROF_FED" ], "skills": [ { "level": 1, "name": "gun" }, { "level": 1, "name": "pistol" } ], "proficiencies": [ "prof_spotting" ], "items": { "both": { - "items": [ "tac_fullhelmet", "police_belt", "pants_cargo", "under_armor", "socks", "boots", "badge_cybercop", "wristwatch" ], + "items": [ "tac_fullhelmet", "police_belt", "pants_cargo", "under_armor", "socks", "boots", "badge_marshal", "wristwatch" ], "entries": [ { "group": "charged_two_way_radio" }, { "group": "charged_smart_phone" }, @@ -246,7 +246,7 @@ "description": "When bionics first emerged, you were quick to make them into your career, and spent your days overseeing their installation. That makes you one of the few non-zombies in the world that can calibrate an Autodoc, which might come in handy.", "points": 4, "skills": [ { "level": 4, "name": "firstaid" }, { "level": 4, "name": "electronics" } ], - "proficiencies": [ "prof_intro_biology", "prof_physiology", "prof_wound_care" ], + "proficiencies": [ "prof_intro_biology", "prof_physiology", "prof_wound_care", "prof_dissect_humans" ], "traits": [ "PROF_AUTODOC" ], "items": { "both": { @@ -259,7 +259,7 @@ "glasses_safety", "coat_lab", "mbag", - "bandages", + { "item": "bandages", "count": 3 }, "wristwatch", "stethoscope" ], @@ -277,7 +277,7 @@ "points": 6, "CBMs": [ "bio_surgical_razor", "bio_flashlight", "bio_batteries", "bio_power_storage_mkII" ], "skills": [ { "level": 8, "name": "firstaid" } ], - "proficiencies": [ "prof_intro_biology", "prof_physiology", "prof_wound_care", "prof_wound_care_expert" ], + "proficiencies": [ "prof_intro_biology", "prof_physiology", "prof_wound_care", "prof_wound_care_expert", "prof_dissect_humans" ], "traits": [ "PROF_MED" ], "items": { "both": { @@ -456,7 +456,6 @@ "both": { "items": [ "pants_army", - "army_top", "jacket_army_modern", "gloves_tactical", "rucksack", @@ -469,13 +468,14 @@ "tent_kit", "rollmat", "e_tool", - "knife_hunting" + "knife_hunting", + "mess_kit" ], "entries": [ - { "item": "medium_plus_battery_cell", "ammo-item": "battery", "charges": 600, "container-item": "mil_mess_kit" }, { "group": "charged_two_way_radio" }, { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, { "item": "hat_boonie", "custom-flags": [ "no_auto_equip" ] }, + { "item": "tank_top", "variant": "tank_top_camo" }, { "item": "m2010", "ammo-item": "300_winmag", @@ -536,8 +536,8 @@ { "item": "ear_plugs", "custom-flags": [ "no_auto_equip" ] }, { "item": "sheath", "contents-item": "knife_combat" }, { - "item": "m27_assault_rifle", - "variant": "h&k416a5", + "item": "modular_m27_assault_rifle", + "variant": "modular_h&k416a5", "ammo-item": "556", "charges": 30, "contents-item": [ "shoulder_strap", "acog_scope" ], @@ -761,6 +761,7 @@ "bio_water_extractor", "bio_taste_blocker" ], + "proficiencies": [ "prof_dissect_humans" ], "skills": [ { "level": 3, "name": "melee" }, { "level": 3, "name": "stabbing" }, diff --git a/data/Mainline_mods/Mods/package_bionic_professions/modinfo.json b/data/Mainline_mods/Mods/package_bionic_professions/modinfo.json index 0acb806b8..c6119cdff 100644 --- a/data/Mainline_mods/Mods/package_bionic_professions/modinfo.json +++ b/data/Mainline_mods/Mods/package_bionic_professions/modinfo.json @@ -4,7 +4,7 @@ "id": "package_bionic_professions", "name": "Bionic Professions", "authors": [ "Erk/Everyone" ], - "description": "Numerous bionic starting professions. Disable for a more real-world experience.", + "description": "Numerous bionic starting professions.", "category": "content", "dependencies": [ "dda" ] } diff --git a/data/Mainline_mods/Mods/railroads/external_options.json b/data/Mainline_mods/Mods/railroads/external_options.json new file mode 100644 index 000000000..67ae1f173 --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/external_options.json @@ -0,0 +1,16 @@ +[ + { + "type": "EXTERNAL_OPTION", + "name": "OVERMAP_PLACE_RAILROADS", + "info": "Allows to place procgen railroads during overmap generation.", + "stype": "bool", + "value": true + }, + { + "type": "EXTERNAL_OPTION", + "name": "OVERMAP_PLACE_RAILROADS_BEFORE_ROADS", + "info": "Defines whether to place railroads before roads.", + "stype": "bool", + "value": true + } +] diff --git a/data/Mainline_mods/Mods/railroads/mapgen/railroad.json b/data/Mainline_mods/Mods/railroads/mapgen/railroad.json new file mode 100644 index 000000000..25fd0d38a --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/mapgen/railroad.json @@ -0,0 +1,179 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": "railroad_end", + "object": { + "rows": [ + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + ".^^^^^^^........^^^^^^^.", + ".^S^^^S^........^S^^^S^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^." + ], + "palettes": [ "railroad_palette" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "railroad_straight", + "object": { + "fallback_predecessor_mapgen": "field", + "rows": [ + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^.", + ".^X^^^X^........^X^^^X^.", + ".-x---x-........-x---x-.", + ".^X^^^X^........^X^^^X^." + ], + "palettes": [ "railroad_palette" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "railroad_curved", + "object": { + "rows": [ + "........................", + ".......................^", + "......................^D", + ".....................^DD", + "....................^DD^", + "...................^DD^^", + "..................^DD^^D", + ".................^DD^^DD", + "................^DD^^DD^", + "...............^DD^^DD^.", + "..............^DD^^DD^..", + ".............^DD^^DD^...", + "............^DD^^DD^....", + "...........^DD^^DD^.....", + "..........^DD^^DD^......", + ".........^DD^^DD^.......", + "........^DD^^DD^.......^", + ".......^DD^^DD^.......^D", + "......^DD^^DD^.......^DD", + ".....^DD^^DD^.......^DD^", + "....^DD^^DD^.......^DD^^", + "...^DD^^DD^.......^DD^^D", + "..^DD^^DD^.......^DD^^DD", + ".^DD^^DD^.......^DD^^DD^" + ], + "palettes": [ "railroad_palette" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "railroad_tee", + "object": { + "fallback_predecessor_mapgen": "field", + "rows": [ + "........................", + "^-^^-^^-^^-^^-^^-^^-^^-^", + "XxXXxXXxXXxXXxXXxXXxXXxX", + "^-^^-^^-^^-^^-^^-^^-^^-^", + "^-^^-^^-^^-^^-^^-^^-^^-^", + "^-^^-^^-^^-^^-^^-^^-^^-^", + "XxXXxXXxXXxXXxXXxXXxXXxX", + "^-^^-^^-^^-^^-^^-^^-^^-^", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "D^....................^D", + "DD^..................^DD", + "^DD^................^DD^", + "^^DD^..............^DD^^", + "D^^DD^............^DD^^D", + "DD^^DD^..........^DD^^DD", + ".DD^^DD^........^DD^^DD." + ], + "palettes": [ "railroad_palette" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "railroad_four_way", + "object": { + "rows": [ + ".DD^^DD^........^DD^^DD.", + "DD^^DD^..........^DD^^DD", + "D^^DD^............^DD^^D", + "^^DD^..............^DD^^", + "^DD^................^DD^", + "DD^..................^DD", + "D^....................^D", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "........................", + "D^....................^D", + "DD^..................^DD", + "^DD^................^DD^", + "^^DD^..............^DD^^", + "D^^DD^............^DD^^D", + "DD^^DD^..........^DD^^DD", + ".DD^^DD^........^DD^^DD." + ], + "palettes": [ "railroad_palette" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ] + } + } +] diff --git a/data/Mainline_mods/Mods/railroads/mapgen/railroad/railroad_level_crossing.json b/data/Mainline_mods/Mods/railroads/mapgen/railroad/railroad_level_crossing.json new file mode 100644 index 000000000..087fce0d7 --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/mapgen/railroad/railroad_level_crossing.json @@ -0,0 +1,38 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "railroad_level_crossing" ], + "weight": 100, + "object": { + "fill_ter": "t_dirt", + "rows": [ + "^^X^^^X^^ ^^X^^^X^^", + "^-x---x-^ ^-x---x-1", + "^^X^^^X^^ ^^X^^^X^2", + "^^X^^^X^^]]]]]]^^X^^^X^^", + "..X...X..........X...X..", + "..X...X..........X...X..", + "..X...X..........X...X..", + "..X...X..........X...X..", + "..X...X..........X...X..", + "..X...X..........X...X..", + "..X...X..........X...X..", + ":.X:::X.:::..:::.X:::X.:", + ":.X:::X.:::..:::.X:::X.:", + "..X...X..........X...X..", + "..X...X..........X...X..", + "..X...X..........X...X..", + "..X...X..........X...X..", + "..X...X..........X...X..", + "..X...X..........X...X..", + "..X...X..........X...X..", + "^^X^^^X^^]]]]]]^^X^^^X^^", + "2^X^^^X^^ ^^X^^^X^^", + "1-x---x-^ ^-x---x-^", + "^^X^^^X^^ ^^X^^^X^^" + ], + "palettes": [ "railroad" ] + } + } +] diff --git a/data/Mainline_mods/Mods/railroads/mapgen/railroad/railroad_station.json b/data/Mainline_mods/Mods/railroads/mapgen/railroad/railroad_station.json new file mode 100644 index 000000000..4ba35a6fe --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/mapgen/railroad/railroad_station.json @@ -0,0 +1,336 @@ +[ + { + "type": "mapgen", + "method": "json", + "weight": 100, + "om_terrain": [ + [ "railroad_station_0_1", "railroad_station_1_1", "railroad_station_2_1" ], + [ "railroad_station_0_2", "railroad_station_1_2", "railroad_station_2_2" ], + [ "railroad_station_0_3", "railroad_station_1_3", "railroad_station_2_3" ], + [ "railroad_station_0_4", "railroad_station_1_4", "railroad_station_2_4" ] + ], + "object": { + "fill_ter": "t_floor", + "rows": [ + " ^X^^^X^rrrrrrrr^X^^^X^rrrrrrrrrr###########$$$$$$$$................$$ ", + " -x---x-r,bbbb,r-x---x-r,bbbb,___#sss#T#T#T#]].............::.......]$ ", + " ^X^^^X^r,,,,,,r^X^^^X^r,,,,,,__8#'''#+#+#+#4].............::.......]$ ", + " ^X^^^X^rI,,,,Ir^X^^^X^rI,,,,I__9#&''''''''#]].............::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,___##+########]]......................]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_____________r]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_____________r]]....Á........::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,___rrrrrrrrrrr]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,___]]]]]]]]]]]]]::::::................]$ ", + " ^X^^^X^_,,>>,,_^X^^^X^_,,>>,,___]]]]]]]]]]]]].............::.......]$ ", + " -x---x-_,,>>,,_-x---x-_,,>>,,___]]]]]]]]]]]]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,___]]]]]]]]]]]]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,___rrrrrrrrrrr]]......................]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,_____________r]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_____________r]]....Á........::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_____________r]].............::.......]$ ", + " -x---x-_I,,,aI_-x---x-_Ia,,,I___4_________r]]::::::................]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_######o#o#o##]].............::.......]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_#d[l#[C[C[C[#]].............::.......]$ ", + " -x---x-_,b,,b,_-x---x-_,b,,b,_Odc[#[c[c[c[#]].............::.......]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_#d[[+[[[[[[[+]]......................]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_#####+#####+#]]....Á........::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,_+[[[[[#'T#s'#]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_+[[[[[#'s#T'#]].............::.......]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_#![[[[#+#####]]::::::................]$ ", + " -x---x-_,b,,b,_-x---x-_,b,,b,_O[[[[[[[[[[[O]].............::.......]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_#BBBB[[[BBBB#]].............::.......]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_O[[[[[[[[[[[O]].............::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,_#BBBB[[[BBBB#]]......................]$ ", + " ^X^^^X^_I,,,,I_^X^^^X^_I,,,,I_O[[[[[[[[[[[O]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_#BBBB[[[BBBB#]]....Á........::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,_O[[[[[[[[[[[O]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_#BBBB[[[BBBB#]]::::::................]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_O[[[[[[[[[[[O]].............::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,_#![[[[[[[[[!#]].............::.......]$ ", + " ^X^^^X^_,,>>,,_^X^^^X^_,,>>,,_+[[[[[[[[[[[+]].............::.......]$ ", + " ^X^^^X^_,,>>,,_^X^^^X^_,,>>,,_+[[[[[[[[[[[+]]......................]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,_#[[[[[[[[[[[#]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_O[[[[[[[[[[[O]]....Á........::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_#6[[[[[[[[[7#]].............::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,_#7[[[[[[[[[6#]]::::::................]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_O[[[[[[[[[[[O]].............::.......]$ ", + " ^X^^^X^_I,,,,I_^X^^^X^_I,,,,I_#[[[[[[[[[[[#]].............::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,_##o#o#o#o#o##]].............::.......]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_#[C[C[C[C[C[#]]......................]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_#[c[c[c[c[c[#]]....Á........::.......]$ ", + " -x---x-_,b,,b,_-x---x-_,b,,b,_#[[[[[[[[[[[+]].............::.......]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_######+######]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_#Ts#ff[lllll#]]::::::................]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,_#''+[[[[[[[[+]].............::.......]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_######+######]].............::.......]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_#[[[[[[[[[[[+]].............::.......]$ ", + " -x---x-_,b,,b,_-x---x-_,b,,b,_#[c[c[c[c[c[#]]......................]$ ", + " ^X^^^X^_,b,,b,_^X^^^X^_,b,,b,_#[C[C[C[C[C[#4].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_##o#o#o#o#o##]]....Á........::.......]$ ", + " -x---x-_I,,,aI_-x---x-_Ia,,,I_____________r]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_____________r]]::::::................]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_____________r]].............::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,_____________r]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,___rrrrrrrrrrr]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,___]]]]]]]]]]]]]......................]$ ", + " -x---x-_,,>>,,_-x---x-_,,>>,,___]]]]]]]]]]]]].............::.......]$ ", + " ^X^^^X^_,,>>,,_^X^^^X^_,,>>,,___]]]]]]]]]]]]]....Á........::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,___]]]]]]]]]]]]].............::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,___rrrrrrrrrrr]]::::::................]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_____________r]].............::.......]$ ", + " ^X^^^X^_,,,,,,_^X^^^X^_,,,,,,_____________r]].............::.......]$ ", + " -x---x-_,,,,,,_-x---x-_,,,,,,___##+########]].............::.......]$ ", + " ^X^^^X^rI,,,,Ir^X^^^X^rI,,,,I__9#&''''''''#]]......................]$ ", + " ^X^^^X^r,,,,,,r^X^^^X^r,,,,,,__8#'''#+#+#+#]]....Á........::.......]$ ", + " -x---x-r,bbbb,r-x---x-r,bbbb,___#sss#T#T#T#]].............::.......]$ ", + " ^X^^^X^rrrrrrrr^X^^^X^rrrrrrrrrr###########]].............::.......]$ ", + " ^X^^^X^ ^X^^^X^ 4 $]]::::::................]$ ", + " -x---x- -x---x- $]].............::.......]$ ", + " ^X^^^X^ ^X^^^X^ $]].............::.......]$ ", + " ^X^^^X^ ^X^^^X^ $]].............::.......]$ ", + " -x---x- -x---x- $]]......................]$ ", + " ^X^^^X^ ^X^^^X^ $]].............::.......]$ ", + " ^X^^^X^ ^X^^^X^ $]]....Á........::.......]$ ", + " -x---x- -x---x- $]].............::.......]$ ", + " ^X^^^X^ ^X^^^X^ $]]::::::................]$ ", + " ^X^^^X^ ^X^^^X^ $]].............::.......]$ ", + " -x---x- -x---x- $]].............::.......]$ ", + " ^X^^^X^ ^X^^^X^ $]].............::.......]$ ", + " ^X^^^X^ ^X^^^X^ $]]......................]$ ", + " -x---x- -x---x- $]].............::.......]$ ", + " ^X^^^X^ ^X^^^X^ $]]....Á........::.......]$ ", + " ^X^^^X^ ^X^^^X^ $]].............::.......]$ ", + " -x---x- -x---x- $]]]]]]]]................]$ ", + " ^X^^^X^ ^X^^^X^ ##+####]].......::.......]$ ", + " ^X^^^X^ ^X^^^X^ #l[[ff#]].......::.......]$ ", + " -x---x- -x---x- 4#l[[[[O]].......::.......]$ ", + " ^X^^^X^ ^X^^^X^ ##+#[d#]]................]$ ", + " ^X^^^X^ ^X^^^X^ #s'#cdO]].......::.......]$ ", + " -x---x- -x---x- #T'#[d#]].......::.......]$ ", + " ^X^^^X^ ^X^^^X^ #######$$.......::.......$$ " + ], + "palettes": [ "railroad", "railroad_station" ], + "place_monsters": [ + { "monster": "GROUP_ZOMBIE", "x": [ 25, 46 ], "y": [ 1, 22 ], "repeat": [ 0, 1 ], "density": 0.15 }, + { "monster": "GROUP_ZOMBIE", "x": [ 49, 70 ], "y": [ 1, 22 ], "repeat": [ 0, 1 ], "density": 0.15 }, + { "monster": "GROUP_ZOMBIE", "x": [ 1, 22 ], "y": [ 25, 46 ], "repeat": [ 0, 1 ], "density": 0.15 }, + { "monster": "GROUP_ZOMBIE", "x": [ 25, 46 ], "y": [ 25, 46 ], "repeat": [ 0, 1 ], "density": 0.15 }, + { "monster": "GROUP_ZOMBIE", "x": [ 1, 22 ], "y": [ 49, 70 ], "repeat": [ 0, 1 ], "density": 0.15 }, + { "monster": "GROUP_ZOMBIE", "x": [ 49, 70 ], "y": [ 49, 70 ], "repeat": [ 0, 1 ], "density": 0.15 }, + { "monster": "GROUP_ZOMBIE", "x": [ 25, 46 ], "y": [ 73, 94 ], "repeat": [ 0, 1 ], "density": 0.15 }, + { "monster": "GROUP_ZOMBIE", "x": [ 49, 70 ], "y": [ 73, 94 ], "repeat": [ 0, 1 ], "density": 0.15 } + ], + "vendingmachines": { + "6": { "item_group": "vending_drink", "lootable": true }, + "7": { "item_group": "vending_food", "lootable": true }, + "8": { "item_group": "vending_drink", "lootable": true }, + "9": { "item_group": "vending_food", "lootable": true } + }, + "place_vehicles": [ + { "vehicle": "train_electrical_loco1300", "x": 5, "y": 90, "chance": 10, "rotation": 90, "status": -1 }, + { "vehicle": "trains_and_cars", "x": 18, "y": 9, "chance": 24, "rotation": 270, "status": 1 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "weight": 100, + "om_terrain": [ + [ "railroad_station_0_1_roof", "railroad_station_1_1_roof" ], + [ "railroad_station_0_2_roof", "railroad_station_1_2_roof" ], + [ "railroad_station_0_3_roof", "railroad_station_1_3_roof" ], + [ "railroad_station_1_4_roof", "railroad_station_2_4_roof" ] + ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ----------- ", + " ...... ...... -.........- ", + " ...... ...... -.........5 ", + " ...... ...... -.........- ", + " ...... ...... ----------- ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... --5---------- ", + " ...... ...... -...........- ", + " ...... ...... -..X.:......- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -........AA.- ", + " ...... ...... -........AA.- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........- ", + " ...... ...... -...........5 ", + " ...... ...... ------------- ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ", + " ...... ...... ----------- ", + " ...... ...... -.........- ", + " ...... ...... -.........- ", + " ...... ...... -.........- ", + " -----5----- ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ------- ", + " -.....- ", + " 5.....- ", + " -.....- ", + " -.....- ", + " -.....- ", + " ------- " + ], + "palettes": [ "roof_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ + [ "railroad_station_under_0_1", "railroad_station_under_1_1" ], + [ "railroad_station_under_0_2", "railroad_station_under_1_2" ], + [ "railroad_station_under_0_3", "railroad_station_under_1_3" ] + ], + "weight": 100, + "object": { + "fill_ter": "t_soil", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ##################### ", + " #___________________# ", + " #_<<_____________<<_# ", + " #_<<_____________<<_# ", + " #___________________# ", + " ########__I__######## ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #__I__# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #__I__# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " ########__I__######## ", + " #___________________# ", + " #_<<_____________<<_# ", + " #_<<_____________<<_# ", + " #___________________# ", + " ########__I__######## ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #__I__# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #__I__# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " #_____# ", + " ########__I__######## ", + " #___________________# ", + " #_<<_____________<<_# ", + " #_<<_____________<<_# ", + " #___________________# ", + " ##################### ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "railroad_station_under" ] + } + } +] diff --git a/data/Mainline_mods/Mods/railroads/mapgen/railroad_bridges.json b/data/Mainline_mods/Mods/railroads/mapgen/railroad_bridges.json new file mode 100644 index 000000000..9d7d0556e --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/mapgen/railroad_bridges.json @@ -0,0 +1,187 @@ +[ + { + "type": "palette", + "id": "railroad_bridge_ground_palette", + "terrain": { + "_": "t_concrete", + "^": "t_railroad_rubble", + "-": "t_railroad_tie", + "X": "t_railroad_track", + "x": "t_railroad_track_on_tie", + ",": "t_region_soil", + "s": "t_water_moving_sh", + "~": "t_water_moving_dp", + "=": "t_guardrail", + "u": "t_railroad_ramp_up_low", + "U": "t_railroad_ramp_up_high", + "d": "t_railroad_ramp_down_high", + "D": "t_railroad_ramp_down_low", + "W": "t_sidewalk_ramp_down_high", + ">": "t_sidewalk_ramp_down_low", + "<": "t_sidewalk_ramp_up_high", + "w": "t_sidewalk_ramp_up_low", + "#": "t_concrete_wall" + } + }, + { + "type": "palette", + "id": "railroad_bridge_overpass_palette", + "terrain": { + "_": "t_concrete", + "=": "t_guardrail", + "^": "t_railroad_rubble", + "-": "t_railroad_tie", + "X": "t_railroad_track", + "x": "t_railroad_track_on_tie", + " ": "t_open_air", + "U": "t_railroad_ramp_up_high", + "d": "t_railroad_ramp_down_high", + "D": "t_railroad_ramp_down_low", + "W": "t_sidewalk_ramp_down_high", + ">": "t_sidewalk_ramp_down_low", + "<": "t_sidewalk_ramp_up_high", + "w": "t_sidewalk_ramp_up_low", + "#": "t_concrete_wall" + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "railroad_bridge" ], + "object": { + "fill_ter": "t_water_moving_dp", + "rows": [ + "~~~~~~~~s######s~~~~~~~~", + "~~~~~~~~ss####ss~~~~~~~~", + "~~~~~~~~~ss##ss~~~~~~~~~", + "~~~~~~~~~~ssss~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~~~~~~~~~~~~~~~", + "~~~~~~~~~~ssss~~~~~~~~~~", + "~~~~~~~~~ss##ss~~~~~~~~~", + "~~~~~~~~ss####ss~~~~~~~~", + "~~~~~~~~s######s~~~~~~~~" + ], + "palettes": [ "railroad_bridge_ground_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "railroad_bridge_overpass" ], + "object": { + "fill_ter": "t_open_air", + "rows": [ + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=" + ], + "palettes": [ "railroad_bridge_overpass_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "railroad_bridgehead_ground" ], + "object": { + "fill_ter": "t_water_moving_dp", + "rows": [ + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=wuwwwuwwwwwwwwwwuwwwuw=", + "=D>>>D>>>>>>>>>>D>>>D>=", + "=WdWWWdWWWWWWWWWWdWWWdW=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=", + "=^X^^^X^________^X^^^X^=", + "=-x---x-________-x---x-=", + "=^X^^^X^________^X^^^X^=" + ], + "palettes": [ "railroad_bridge_overpass_palette" ] + } + } +] diff --git a/data/Mainline_mods/Mods/railroads/mapgen_palettes/railroad.json b/data/Mainline_mods/Mods/railroads/mapgen_palettes/railroad.json new file mode 100644 index 000000000..38885eb2e --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/mapgen_palettes/railroad.json @@ -0,0 +1,118 @@ +[ + { + "type": "palette", + "id": "railroad_palette", + "//": "mapgendata::first_predecessor doesn't work perfectly so use 9 to overwrite other nests", + "terrain": { + "^": "t_railroad_rubble", + "-": "t_railroad_tie", + "D": "t_railroad_track_d", + "X": "t_railroad_track", + "x": "t_railroad_track_on_tie", + "S": "t_buffer_stop", + ".": "t_region_soil", + "9": "t_region_groundcover_urban" + } + }, + { + "type": "palette", + "id": "railroad", + "terrain": { + " ": "t_region_groundcover_urban", + ".": "t_pavement", + "Á": "t_pavement", + ":": "t_pavement_y", + "]": "t_sidewalk", + "_": "t_concrete", + "^": "t_railroad_rubble", + "t": "t_railroad_tie", + "-": "t_railroad_tie_h", + "|": "t_railroad_tie_v", + "/": "t_railroad_tie_d", + "X": "t_railroad_track", + "H": "t_railroad_track_h", + "V": "t_railroad_track_v", + "D": "t_railroad_track_d", + "E": "t_railroad_track_d1", + "F": "t_railroad_track_d2", + "x": "t_railroad_track_on_tie", + "h": "t_railroad_track_h_on_tie", + "v": "t_railroad_track_v_on_tie", + "d": "t_railroad_track_d_on_tie", + "1": "t_railroad_crossing_signal", + "2": [ "t_crossbuck_wood", "t_crossbuck_metal" ], + "S": "t_buffer_stop", + "r": "t_railing" + } + }, + { + "type": "palette", + "id": "railroad_station", + "terrain": { + ">": "t_stairs_down", + "<": "t_stairs_up", + "#": "t_concrete_wall", + "$": "t_chainfence", + ",": "t_thconc_floor", + "b": "t_thconc_floor", + "a": "t_thconc_floor", + "+": "t_door_c", + "[": "t_floor", + "d": "t_floor", + "'": "t_linoleum_white", + "T": "t_linoleum_white", + "s": "t_linoleum_white", + "&": "t_linoleum_white", + "I": "t_column", + "8": "t_concrete", + "9": "t_concrete", + "O": "t_window", + "o": "t_window_open", + "4": "t_gutter_downspout" + }, + "furniture": { + "C": "f_counter", + "b": "f_bench", + "B": "f_bench", + "c": "f_chair", + "d": "f_desk", + "f": "f_sofa", + "l": "f_locker", + "s": "f_sink", + "T": "f_toilet", + "!": "f_trashcan", + "a": "f_trashcan", + "&": "f_trashcan" + }, + "items": { + "a": { "item": "trash", "chance": 30 }, + "!": { "item": "trash", "chance": 30 }, + "&": { "item": "trash", "chance": 30 }, + "d": { "item": "office", "chance": 30 }, + "C": [ { "item": "office", "chance": 30 }, { "item": "cash_register_random", "chance": 100 } ], + "l": { "item": "clothing_work_set", "chance": 30 }, + "b": [ { "item": "snacks", "chance": 10 }, { "item": "novels", "chance": 10 }, { "item": "alcohol", "chance": 5 } ], + "B": [ + { "item": "magazines", "chance": 10 }, + { "item": "novels", "chance": 10 }, + { "item": "alcohol", "chance": 5 }, + { "item": "snacks", "chance": 20 }, + { "item": "manuals", "chance": 2 } + ] + }, + "toilets": { "T": { } }, + "vehicles": { "Á": { "vehicle": "parkinglotbasic", "chance": 15, "rotation": 180 } } + }, + { + "type": "palette", + "id": "railroad_station_under", + "terrain": { + " ": "t_soil", + ">": "t_stairs_down", + "<": "t_stairs_up", + "#": "t_concrete_wall", + "_": "t_thconc_floor", + "I": "t_column" + } + } +] diff --git a/data/Mainline_mods/Mods/railroads/modinfo.json b/data/Mainline_mods/Mods/railroads/modinfo.json new file mode 100644 index 000000000..b12089f52 --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/modinfo.json @@ -0,0 +1,11 @@ +[ + { + "type": "MOD_INFO", + "id": "railroads", + "name": "Railroads", + "authors": [ "ZhilkinSerg" ], + "description": "Enables basic railroad network generation in the world. Not intended for regular gameplay, more for development purposes.", + "category": "buildings", + "dependencies": [ "dda" ] + } +] diff --git a/data/Mainline_mods/Mods/railroads/overmap/multitile_city_buildings.json b/data/Mainline_mods/Mods/railroads/overmap/multitile_city_buildings.json new file mode 100644 index 000000000..7e5c88b81 --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/overmap/multitile_city_buildings.json @@ -0,0 +1,37 @@ +[ + { + "type": "city_building", + "id": "railroad_city", + "locations": [ "land" ], + "overmaps": [ + { "point": [ 0, 1, 0 ], "overmap": "railroad_station_0_1_north" }, + { "point": [ 0, 2, 0 ], "overmap": "railroad_station_0_2_north" }, + { "point": [ 0, 3, 0 ], "overmap": "railroad_station_0_3_north" }, + { "point": [ 0, 4, 0 ], "overmap": "railroad_station_0_4_north" }, + { "point": [ 1, 1, 0 ], "overmap": "railroad_station_1_1_north" }, + { "point": [ 1, 2, 0 ], "overmap": "railroad_station_1_2_north" }, + { "point": [ 1, 3, 0 ], "overmap": "railroad_station_1_3_north" }, + { "point": [ 1, 4, 0 ], "overmap": "railroad_station_1_4_north" }, + { "point": [ 0, 1, 1 ], "overmap": "railroad_station_0_1_roof_north" }, + { "point": [ 0, 2, 1 ], "overmap": "railroad_station_0_2_roof_north" }, + { "point": [ 0, 3, 1 ], "overmap": "railroad_station_0_3_roof_north" }, + { "point": [ 1, 1, 1 ], "overmap": "railroad_station_1_1_roof_north" }, + { "point": [ 1, 2, 1 ], "overmap": "railroad_station_1_2_roof_north" }, + { "point": [ 1, 3, 1 ], "overmap": "railroad_station_1_3_roof_north" }, + { "point": [ 1, 4, 1 ], "overmap": "railroad_station_1_4_roof_north" }, + { "point": [ 2, 4, 1 ], "overmap": "railroad_station_2_4_roof_north" }, + { "point": [ 2, 0, 0 ], "overmap": "road_end_north" }, + { "point": [ 2, 1, 0 ], "overmap": "railroad_station_2_1_north" }, + { "point": [ 2, 2, 0 ], "overmap": "railroad_station_2_2_north" }, + { "point": [ 2, 3, 0 ], "overmap": "railroad_station_2_3_north" }, + { "point": [ 2, 4, 0 ], "overmap": "railroad_station_2_4_north" }, + { "point": [ 2, 5, 0 ], "overmap": "road_end_south" }, + { "point": [ 0, 1, -1 ], "overmap": "railroad_station_under_0_1_north" }, + { "point": [ 0, 2, -1 ], "overmap": "railroad_station_under_0_2_north" }, + { "point": [ 0, 3, -1 ], "overmap": "railroad_station_under_0_3_north" }, + { "point": [ 1, 1, -1 ], "overmap": "railroad_station_under_1_1_north" }, + { "point": [ 1, 2, -1 ], "overmap": "railroad_station_under_1_2_north" }, + { "point": [ 1, 3, -1 ], "overmap": "railroad_station_under_1_3_north" } + ] + } +] diff --git a/data/Mainline_mods/Mods/railroads/overmap/overmap_connections.json b/data/Mainline_mods/Mods/railroads/overmap/overmap_connections.json new file mode 100644 index 000000000..54255acab --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/overmap/overmap_connections.json @@ -0,0 +1,19 @@ +[ + { + "type": "overmap_connection", + "id": "local_railroad", + "subtypes": [ + { "terrain": "railroad", "locations": [ "railroad" ], "basic_cost": 1 }, + { "terrain": "railroad", "locations": [ "generic_loot_locations" ], "basic_cost": 2 }, + { "terrain": "railroad", "locations": [ "wilderness" ], "basic_cost": 2 }, + { "terrain": "railroad", "locations": [ "swamp" ], "basic_cost": 2 }, + { + "terrain": "railroad_level_crossing", + "locations": [ "railroad_level_crossing_allowed" ], + "basic_cost": 2, + "flags": [ "ORTHOGONAL" ] + }, + { "terrain": "railroad_bridge", "locations": [ "water" ], "basic_cost": 2, "flags": [ "ORTHOGONAL" ] } + ] + } +] diff --git a/data/Mainline_mods/Mods/railroads/overmap/overmap_special/specials.json b/data/Mainline_mods/Mods/railroads/overmap/overmap_special/specials.json new file mode 100644 index 000000000..aa3f8232a --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/overmap/overmap_special/specials.json @@ -0,0 +1,42 @@ +[ + { + "id": "Railroad Station", + "type": "overmap_special", + "overmaps": [ + { "point": [ 0, 1, 0 ], "overmap": "railroad_station_0_1_north" }, + { "point": [ 0, 2, 0 ], "overmap": "railroad_station_0_2_north" }, + { "point": [ 0, 3, 0 ], "overmap": "railroad_station_0_3_north" }, + { "point": [ 0, 4, 0 ], "overmap": "railroad_station_0_4_north" }, + { "point": [ 1, 1, 0 ], "overmap": "railroad_station_1_1_north" }, + { "point": [ 1, 2, 0 ], "overmap": "railroad_station_1_2_north" }, + { "point": [ 1, 3, 0 ], "overmap": "railroad_station_1_3_north" }, + { "point": [ 1, 4, 0 ], "overmap": "railroad_station_1_4_north" }, + { "point": [ 0, 1, 1 ], "overmap": "railroad_station_0_1_roof_north" }, + { "point": [ 0, 2, 1 ], "overmap": "railroad_station_0_2_roof_north" }, + { "point": [ 0, 3, 1 ], "overmap": "railroad_station_0_3_roof_north" }, + { "point": [ 1, 1, 1 ], "overmap": "railroad_station_1_1_roof_north" }, + { "point": [ 1, 2, 1 ], "overmap": "railroad_station_1_2_roof_north" }, + { "point": [ 1, 3, 1 ], "overmap": "railroad_station_1_3_roof_north" }, + { "point": [ 1, 4, 1 ], "overmap": "railroad_station_1_4_roof_north" }, + { "point": [ 2, 4, 1 ], "overmap": "railroad_station_2_4_roof_north" }, + { "point": [ 2, 0, 0 ], "overmap": "road_end_north" }, + { "point": [ 2, 1, 0 ], "overmap": "railroad_station_2_1_north" }, + { "point": [ 2, 2, 0 ], "overmap": "railroad_station_2_2_north" }, + { "point": [ 2, 3, 0 ], "overmap": "railroad_station_2_3_north" }, + { "point": [ 2, 4, 0 ], "overmap": "railroad_station_2_4_north" }, + { "point": [ 2, 5, 0 ], "overmap": "road_end_south" }, + { "point": [ 0, 1, -1 ], "overmap": "railroad_station_under_0_1_north" }, + { "point": [ 0, 2, -1 ], "overmap": "railroad_station_under_0_2_north" }, + { "point": [ 0, 3, -1 ], "overmap": "railroad_station_under_0_3_north" }, + { "point": [ 1, 1, -1 ], "overmap": "railroad_station_under_1_1_north" }, + { "point": [ 1, 2, -1 ], "overmap": "railroad_station_under_1_2_north" }, + { "point": [ 1, 3, -1 ], "overmap": "railroad_station_under_1_3_north" } + ], + "connections": [ { "point": [ 2, 0, 0 ], "terrain": "road" }, { "point": [ 2, 5, 0 ], "terrain": "road" } ], + "locations": [ "land", "forest" ], + "city_distance": [ -1, 20 ], + "city_sizes": [ 3, 12 ], + "occurrences": [ 50, 100 ], + "flags": [ "CLASSIC", "UNIQUE", "URBAN", "MAN_MADE" ] + } +] diff --git a/data/Mainline_mods/Mods/railroads/overmap/overmap_terrain/overmap_terrain_transportation.json b/data/Mainline_mods/Mods/railroads/overmap/overmap_terrain/overmap_terrain_transportation.json new file mode 100644 index 000000000..a1e8f6c54 --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/overmap/overmap_terrain/overmap_terrain_transportation.json @@ -0,0 +1,120 @@ +[ + { + "type": "overmap_terrain", + "id": "railroad", + "name": "railroad", + "copy-from": "generic_transportation", + "color": "light_green", + "see_cost": 2, + "flags": [ "LINEAR", "REQUIRES_PREDECESSOR" ] + }, + { + "type": "overmap_terrain", + "abstract": "generic_railroad_bridge", + "copy-from": "generic_transportation", + "name": "railroad bridge", + "sym": "│", + "color": "white", + "see_cost": 2 + }, + { + "type": "overmap_terrain", + "id": "railroad_bridge", + "copy-from": "generic_railroad_bridge", + "color": "light_cyan", + "flags": [ "RIVER" ] + }, + { + "type": "overmap_terrain", + "id": "railroad_bridge_overpass", + "copy-from": "generic_bridge", + "name": "railroad bridge (overpass)" + }, + { + "type": "overmap_terrain", + "id": "railroad_bridgehead_ground", + "copy-from": "generic_railroad_bridge", + "name": "railroad bridgehead (ground)", + "sym": "v", + "extras": "bridgehead_railroad_ground" + }, + { + "type": "overmap_terrain", + "id": "railroad_bridgehead_ramp", + "copy-from": "generic_railroad_bridge", + "name": "railroad bridgehead (ramp)", + "sym": "^" + }, + { + "type": "overmap_terrain", + "id": "railroad_level_crossing", + "name": "railroad level crossing", + "sym": "┼", + "color": "red", + "see_cost": 2, + "extras": "road" + }, + { + "abstract": "generic_railroad_station", + "type": "overmap_terrain", + "name": "railroad station", + "copy-from": "generic_city_building_no_sidewalk", + "sym": "R", + "color": "light_green" + }, + { + "abstract": "generic_railroad_station_under", + "type": "overmap_terrain", + "copy-from": "generic_railroad_station", + "color": "dark_gray" + }, + { + "abstract": "generic_railroad_station_parking_lot", + "type": "overmap_terrain", + "name": "railroad station parking lot", + "copy-from": "generic_railroad_station", + "sym": "O", + "color": "dark_gray" + }, + { + "type": "overmap_terrain", + "id": [ "railroad_station_0_1", "railroad_station_0_2", "railroad_station_0_3", "railroad_station_0_4" ], + "copy-from": "generic_railroad_station", + "sym": "│" + }, + { + "type": "overmap_terrain", + "id": [ + "railroad_station_1_1", + "railroad_station_1_2", + "railroad_station_1_3", + "railroad_station_1_4", + "railroad_station_0_1_roof", + "railroad_station_0_2_roof", + "railroad_station_0_3_roof", + "railroad_station_1_1_roof", + "railroad_station_1_2_roof", + "railroad_station_1_3_roof", + "railroad_station_1_4_roof", + "railroad_station_2_4_roof" + ], + "copy-from": "generic_railroad_station" + }, + { + "type": "overmap_terrain", + "id": [ "railroad_station_2_1", "railroad_station_2_2", "railroad_station_2_3", "railroad_station_2_4" ], + "copy-from": "generic_railroad_station_parking_lot" + }, + { + "type": "overmap_terrain", + "id": [ + "railroad_station_under_0_1", + "railroad_station_under_0_2", + "railroad_station_under_0_3", + "railroad_station_under_1_1", + "railroad_station_under_1_2", + "railroad_station_under_1_3" + ], + "copy-from": "generic_railroad_station_under" + } +] diff --git a/data/Mainline_mods/Mods/railroads/overmap/special_locations.json b/data/Mainline_mods/Mods/railroads/overmap/special_locations.json new file mode 100644 index 000000000..c6bb14779 --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/overmap/special_locations.json @@ -0,0 +1,17 @@ +[ + { + "type": "overmap_location", + "id": "generic_loot_locations", + "flags": [ "GENERIC_LOOT" ] + }, + { + "type": "overmap_location", + "id": "railroad", + "terrains": [ "railroad" ] + }, + { + "type": "overmap_location", + "id": "railroad_level_crossing_allowed", + "terrains": [ "road" ] + } +] diff --git a/data/Mainline_mods/Mods/railroads/region_overlay.json b/data/Mainline_mods/Mods/railroads/region_overlay.json new file mode 100644 index 000000000..6c00a6f8b --- /dev/null +++ b/data/Mainline_mods/Mods/railroads/region_overlay.json @@ -0,0 +1,7 @@ +[ + { + "type": "region_overlay", + "regions": [ "all" ], + "city": { "houses": { "railroad_city": 5 } } + } +] diff --git a/data/Mainline_mods/Mods/rural_biome/rural_regional_map_settings.json b/data/Mainline_mods/Mods/rural_biome/rural_regional_map_settings.json index 343f54dad..6daf9e181 100644 --- a/data/Mainline_mods/Mods/rural_biome/rural_regional_map_settings.json +++ b/data/Mainline_mods/Mods/rural_biome/rural_regional_map_settings.json @@ -439,7 +439,6 @@ "mx_grass": 10, "mx_grass2": 20, "mx_fallen_shed": 5, - "mx_shia": 1, "mx_spider": 200, "mx_nest_wasp": 100, "mx_jabberwock": 1, @@ -500,7 +499,8 @@ "chance": 75, "extras": { "mx_helicopter": 25, - "mx_roadblock": 20, + "mx_roadblock": 15, + "mx_roadblock_mil": 5, "mx_bandits_block": 80, "mx_supplydrop": 1, "mx_portal": 5, @@ -631,8 +631,7 @@ "emptyresidentiallot": 200, "house_vacant": 200, "house_vacant2": 200, - "motel_city": 5, - "trailerpark_city": 15 + "motel_city": 5 }, "parks": { "s_gas": 200, @@ -701,21 +700,7 @@ "base_pressure": 1015.0, "base_wind": 3.4, "base_wind_distrib_peaks": 80, - "base_wind_season_variation": 50, - "weather_types": [ - "clear", - "sunny", - "cloudy", - "light_drizzle", - "drizzle", - "rain", - "thunder", - "lightning", - "flurries", - "snowing", - "snowstorm", - "portal_storm" - ] + "base_wind_season_variation": 50 }, "overmap_feature_flag_settings": { "clear_blacklist": false, diff --git a/data/Mainline_mods/Mods/translate-dialogue/rubik.json b/data/Mainline_mods/Mods/translate-dialogue/rubik.json index 85be0c401..c571d7c05 100644 --- a/data/Mainline_mods/Mods/translate-dialogue/rubik.json +++ b/data/Mainline_mods/Mods/translate-dialogue/rubik.json @@ -254,7 +254,7 @@ "id": "TALK_EXODII_MERCHANT_Exodize", "type": "talk_topic", "dynamic_line": { - "compare_int": [ { "u_val": "sold" }, ">=", { "const": 100 } ], + "compare_num": [ { "u_val": "sold" }, ">=", { "const": 100 } ], "yes": "Oh HO! Well, well. Now you're yarkin' the King's Anglic. Aye, us'n can fix ye good, if'n ye're tassed to repay it in kind. Us'll speak it as clear-like as this Rubik can. If ye'n use it to put the dead back in the ground, us'n can fix ye with some goods like this, aye. Stuck in the flesh and to the bone, wired into the brain. Ye kennit? If no, us'll speak to the Great Grey for a pint o' the ol' clarity-draught.\"\n\n[TRANSLATE:] \"Oh HO! Well, now you're speaking my language. We can fix you up good, if you're willing to pay us back. I'll say it as clearly as I can. If you help us kill the undead, we can help you get fixed up like us, yeah. Stuck right into your flesh and bone and wired into your brain. You understand? If not, we'll ask the Great Grey to help clear it up.", "no": { "u_has_faction_trust": 5, @@ -271,7 +271,7 @@ { "id": "TALK_EXODII_MERCHANT_ExodizeMe1", "type": "talk_topic", - "dynamic_line": "Fine an' fine, an' fine an' fine! Ha! Us'll rubber up the ol' gristle mill. Yer tassed wi' bringin' us a nip o' good tea. Not 'tea', o'course. I'm yarkin dockside Anglic here. Us means the stuff what puts y'to sleep f'r a chirurgery. The Great Grey says y'r assert for it is 'anus fetick'. You bring us one liter of 'anus fetick', us'll fix'n ye up with a wire an' a tiff.\"\n\n[TRANSLATE:] \"Great, great, great!! Ha! We'll fire up the old meat grinder. Your job is to bring us a bit of good tea. Not literally 'tea' of course. That's my Anglic street slang. I mean the stuff that puts you to sleep for surgery. The Great Grey says your word for it is 'anesthetic'. You bring us one liter of anesthetic, we'll fix you up with a wire and everything." + "dynamic_line": "Fine an' fine, an' fine an' fine! Ha! Us'll rubber up the ol' gristle mill. Yer tassed wi' bringin' us a nip o' good tea. Not 'tea', o'course. I'm yarkin dockside Anglic here. Us means the stuff what puts y'to sleep f'r a chirurgery. The Great Grey says y'r assert for it is 'anus fetick'. You bring us a thousand unit of 'anus fetick', us'll fix'n ye up with a wire an' a tiff.\"\n\n[TRANSLATE:] \"Great, great, great!! Ha! We'll fire up the old meat grinder. Your job is to bring us a bit of good tea. Not literally 'tea' of course. That's my Anglic street slang. I mean the stuff that puts you to sleep for surgery. The Great Grey says your word for it is 'anesthetic'. You bring us a thousand units of anesthetic, we'll fix you up with a wire and everything." }, { "id": "TALK_EXODII_MERCHANT_ExodizeMe2", diff --git a/data/Maintained_mods/mods/Nocts_cata_mod/README_DDA.md b/data/Maintained_mods/mods/Nocts_cata_mod/README_DDA.md index 7b70bc364..a9f4e4966 100644 --- a/data/Maintained_mods/mods/Nocts_cata_mod/README_DDA.md +++ b/data/Maintained_mods/mods/Nocts_cata_mod/README_DDA.md @@ -1,23 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Expansion mod for Cataclysm, Dark Days Ahead version](#expansion-mod-for-cataclysm-dark-days-ahead-version) - - [Special Thanks](#special-thanks) - - [Frequently Asked Questions](#frequently-asked-questions) - - ["The zombie super scout (insert event where it killed your char)!"](#the-zombie-super-scout-insert-event-where-it-killed-your-char) - - [Why do you have books that level you up from 0-10? Isn't that a bit broken?](#why-do-you-have-books-that-level-you-up-from-0-10-isnt-that-a-bit-broken) - - [Here is my github for this project](#here-is-my-github-for-this-project) - - [Contributing](#contributing) - - [Suggestions](#suggestions) - - [Reporting bugs](#reporting-bugs) - - [Modifying the code](#modifying-the-code) - - [Github Rules](#github-rules) -- [Warning: Spoilers Ahead!](#warning-spoilers-ahead) - - [To do](#to-do) - - - # Expansion mod for Cataclysm, Dark Days Ahead version The version of this mod in this folder is is for Cataclysm: Dark Days Ahead. Copy the folder containing this content into data/mods if you are using that version of Cataclysm. Use the other folder, nocts_cata_mod_BN if you are playing with Cataclysm: Bright Nights. diff --git a/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Generic/Generic.json b/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Generic/Generic.json index c7021cc95..75c8c80a1 100644 --- a/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Generic/Generic.json +++ b/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Generic/Generic.json @@ -12,6 +12,7 @@ "volume": "450 L", "melee_damage": { "bash": 8 }, "to_hit": -9, + "melee_damage": { "cut": 0 }, "material": [ "qt_steel" ], "pocket_data": [ { diff --git a/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Guns.json b/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Guns.json index 350049809..d634c9f34 100644 --- a/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Guns.json +++ b/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Guns.json @@ -70,8 +70,7 @@ "description": "A large cannon, consisting of a large motor, belt feed system, and firing mechanism, employing eight long barrels mounted on a rotating disc. The use of eight barrels allows high rates of fire, and increased heat dissipation. Firing this weapon is impossible without a mount, due to the sheer size and weight.", "price": "18 kUSD", "material": [ "qt_steel" ], - "flags": [ "USE_UPS", "MOUNTED_GUN" ], - "modes": [ [ "DEFAULT", "burst", 25 ], [ "AUTO", "auto", 50 ] ], + "flags": [ "USE_UPS", "MODE_BURST", "MOUNTED_GUN" ], "skill": "rifle", "ammo": [ "50" ], "weight": "122000 g", diff --git a/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Materials.json b/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Materials.json index b151ceb7d..f7b403cee 100644 --- a/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Materials.json +++ b/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Items/Materials.json @@ -19,7 +19,7 @@ "specific_heat_liquid": 0.82, "specific_heat_solid": 0.45, "latent_heat": 273, - "resist": { "bash": 10, "cut": 16, "acid": 6, "heat": 3, "bullet": 9 }, + "resist": { "bash": 10, "cut": 16, "acid": 6, "heat": 3, "electric": 0, "bullet": 9 }, "chip_resist": 30, "repaired_with": "scrap", "dmg_adj": [ "marked", "dented", "smashed", "shattered" ], diff --git a/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Monsters/Bots.json b/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Monsters/Bots.json index 05fc8673d..7e59a1115 100644 --- a/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Monsters/Bots.json +++ b/data/Unleash_The_Mods/Working_mods/Advanced_Gear_Technologies/Monsters/Bots.json @@ -49,6 +49,9 @@ "melee_dice": 5, "melee_dice_sides": 5, "melee_damage": [ { "damage_type": "cut", "amount": 0 } ], + "armor_bash": 90, + "armor_cut": 90, + "armor_bullet": 72, "armor": { "bash": 90, "cut": 90, "bullet": 72 }, "vision_day": 50, "revert_to_itype": "bot_tankbot", diff --git a/data/Unleash_The_Mods/Working_mods/Armor_Up_Survivor_Expansion/Items.json b/data/Unleash_The_Mods/Working_mods/Armor_Up_Survivor_Expansion/Items.json index acb54e216..4911d3284 100644 --- a/data/Unleash_The_Mods/Working_mods/Armor_Up_Survivor_Expansion/Items.json +++ b/data/Unleash_The_Mods/Working_mods/Armor_Up_Survivor_Expansion/Items.json @@ -8,7 +8,7 @@ "weight": "7000 g", "price": "1200 USD", "material": [ "superalloy", "leather" ], - "armor": [ { "encumbrance": 18, "coverage": 80, "covers": [ "torso", "leg_l", "leg_r", "arm_l", "arm_r" ] } ], + "armor": [ { "encumbrance": 18, "coverage": 95, "covers": [ "torso", "leg_l", "leg_r", "arm_l", "arm_r" ] } ], "material_thickness": 5 }, { diff --git a/data/Unleash_The_Mods/Working_mods/Artyom_Emporium/art_magazines.json b/data/Unleash_The_Mods/Working_mods/Artyom_Emporium/art_magazines.json index 40aa3d36a..848117141 100644 --- a/data/Unleash_The_Mods/Working_mods/Artyom_Emporium/art_magazines.json +++ b/data/Unleash_The_Mods/Working_mods/Artyom_Emporium/art_magazines.json @@ -631,7 +631,7 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "762R": 200 } } ], "count": 100, "linkage": "ammolink762R", - "flags": [ "NO_RELOAD", "NO_UNLOAD", "ZERO_WEIGHT", "MAG_DESTROY" ] + "flags": [ "NO_RELOAD", "NO_UNLOAD", "MAG_DESTROY", "ZERO_WEIGHT" ] }, { "id": "belt45", @@ -643,7 +643,7 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "45": 250 } } ], "count": 100, "linkage": "ammolink45", - "flags": [ "NO_RELOAD", "NO_UNLOAD", "ZERO_WEIGHT", "MAG_DESTROY" ] + "flags": [ "NO_RELOAD", "NO_UNLOAD", "MAG_DESTROY", "ZERO_WEIGHT" ] }, { "id": "belt22", @@ -655,7 +655,7 @@ "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "22": 500 } } ], "count": 100, "linkage": "ammolink45", - "flags": [ "NO_RELOAD", "NO_UNLOAD", "ZERO_WEIGHT", "MAG_DESTROY" ] + "flags": [ "NO_RELOAD", "NO_UNLOAD", "MAG_DESTROY", "ZERO_WEIGHT" ] }, { "id": "lewiswhy", diff --git a/data/Unleash_The_Mods/Working_mods/Useful_Helicopters/README.md b/data/Unleash_The_Mods/Working_mods/Useful_Helicopters/README.md index 270b16416..152fab4bd 100644 --- a/data/Unleash_The_Mods/Working_mods/Useful_Helicopters/README.md +++ b/data/Unleash_The_Mods/Working_mods/Useful_Helicopters/README.md @@ -1,11 +1,3 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [useful_helicopters](#useful_helicopters) - - - # useful_helicopters A Cataclysm DDA mod that rebalances helicopters to make them more practical. Has recently undergone a complete overhaul to make it compatible with 0.F and address issues with the initial (extremely hacky) release. The goal of this mod is to make helicopters actually factor into gameplay in an authentic and fun way. This is not a "realism" mod, but it is also not designed to (intentionally) enable giant flying bases. Note: NOT compatible with Bright Nights. NOT compatible with 0.E Stable. Designed for the upcoming 0.F stable release and working with the current 0.F experimental. diff --git a/docs/Updating_Legacy_JSON.md b/docs/Updating_Legacy_JSON.md index 792ca01a1..ca95e7b5f 100644 --- a/docs/Updating_Legacy_JSON.md +++ b/docs/Updating_Legacy_JSON.md @@ -761,6 +761,7 @@ This regex will find all non-ascii (unicode) characters, excluding the ellipsis --- # Price `key` `price` should have a `value` `string` + ```C++ "price": 100, "price_postapoc": 1000 @@ -771,3 +772,26 @@ This regex will find all non-ascii (unicode) characters, excluding the ellipsis ``` --- + +## Melee_damage + +```c++ +"bashing": 6, +"cutting": 25, + +"melee_damage": { "bash": 6, "cut": 25 }, +``` + +### Resist + +```c++ +"bash_resist": 10, +"cut_resist": 16, +"bullet_resist": 9, +"acid_resist": 6, +"fire_resist": 3, +"elec_resist": 4, + +"resist": { "bash": 10, "cut": 16, "acid": 6, "heat": 3, "electric": 4, "bullet": 9 }, +``` +