From d1a8d87fb0e85881c88a29dc69b9caaa24a90440 Mon Sep 17 00:00:00 2001 From: SariusSkelrets Date: Sun, 20 Oct 2024 10:08:03 -0400 Subject: [PATCH] Add the cryptids and their abilities --- data/mods/Xedra_Evolved/effects/effects.json | 28 ++++ data/mods/Xedra_Evolved/emitters.json | 7 + .../Xedra_Evolved/enchantments/armor.json | 11 ++ data/mods/Xedra_Evolved/field_type.json | 26 +++ .../itemgroups/monster_drops.json | 16 ++ .../mods/Xedra_Evolved/items/armor/armor.json | 53 ++++++ .../mods/Xedra_Evolved/monsters/cryptids.json | 135 +++++++++++++++ .../monsters/monster_spells.json | 78 ++++++++- .../snippets/cryptid_speech.json | 158 ++++++++++++++++++ 9 files changed, 511 insertions(+), 1 deletion(-) create mode 100644 data/mods/Xedra_Evolved/monsters/cryptids.json create mode 100644 data/mods/Xedra_Evolved/snippets/cryptid_speech.json diff --git a/data/mods/Xedra_Evolved/effects/effects.json b/data/mods/Xedra_Evolved/effects/effects.json index 65701bdb5cee8..16b3a60c3bd24 100644 --- a/data/mods/Xedra_Evolved/effects/effects.json +++ b/data/mods/Xedra_Evolved/effects/effects.json @@ -2229,5 +2229,33 @@ "desc": [ "Triggering your abilities that way has taken their toll on you. You cannot save yourself from death that way a second time yet." ] + }, + { + "type": "effect_type", + "id": "effect_sleep_aid", + "name": [ "Promises of easy sleep" ], + "desc": [ "You feel as if you could fall asleep anywhere, but you do not feel more tired than you are." ], + "apply_message": "You suddenly feel that falling asleep would be incredibly easy.", + "remove_message": "Your ability to sleep returns to its regular state.", + "rating": "good", + "max_duration": "1 minutes", + "show_intensity": false, + "max_intensity": 1, + "enchantments": [ { "values": [ { "value": "SLEEPY", "add": 999 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_sleep_shield", + "name": [ "Undisrupted sleep" ], + "desc": [ "Sleep well. Nothing but you can disrupt your sleep." ], + "apply_message": "You could swear that this man wished you a good night.", + "remove_message": "The feeling of safety quickly fades away.", + "rating": "good", + "max_duration": "2 seconds", + "show_intensity": false, + "max_intensity": 1, + "//": "using the hedge magic effect allows to prevent duplication.", + "flags": [ "INVISIBLE", "ETHEREAL" ], + "ench_effects": [ { "effect": "incorporeal", "intensity": 1 }, { "effect": "effect_hedge_no_nightmares", "intensity": 1 } ] } ] diff --git a/data/mods/Xedra_Evolved/emitters.json b/data/mods/Xedra_Evolved/emitters.json index 91d8ed5675d87..3f3e574337420 100644 --- a/data/mods/Xedra_Evolved/emitters.json +++ b/data/mods/Xedra_Evolved/emitters.json @@ -19,5 +19,12 @@ "field": "fd_hot_air4", "intensity": 3, "qty": 100 + }, + { + "id": "emit_sleep_aid", + "type": "emit", + "field": "fd_sleep_aid", + "intensity": 3, + "qty": 100 } ] diff --git a/data/mods/Xedra_Evolved/enchantments/armor.json b/data/mods/Xedra_Evolved/enchantments/armor.json index 30e9ac7dfa388..5f3df9dbfba42 100644 --- a/data/mods/Xedra_Evolved/enchantments/armor.json +++ b/data/mods/Xedra_Evolved/enchantments/armor.json @@ -159,5 +159,16 @@ { "value": "CLIMATE_CONTROL_CHILL", "add": 10 }, { "value": "BONUS_DODGE", "add": 1 } ] + }, + { + "id": "ench_sevenoclock_coat", + "type": "enchantment", + "has": "WORN", + "condition": { "or": [ { "u_has_effect": "lying_down" }, { "u_has_effect": "sleep" } ] }, + "values": [ + { "value": "CLIMATE_CONTROL_HEAT", "add": 1000 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 1000 }, + { "value": "SLEEPY", "add": 9999 } + ] } ] diff --git a/data/mods/Xedra_Evolved/field_type.json b/data/mods/Xedra_Evolved/field_type.json index 85506ebfa9bc3..b25bc42dcffea 100644 --- a/data/mods/Xedra_Evolved/field_type.json +++ b/data/mods/Xedra_Evolved/field_type.json @@ -225,5 +225,31 @@ "phase": "gas", "display_items": false, "display_field": true + }, + { + "id": "fd_sleep_aid", + "type": "field_type", + "intensity_levels": [ + { + "name": "", + "effects": [ + { + "effect_id": "effect_sleep_aid", + "intensity": 1, + "min_duration": "10 seconds", + "max_duration": "35 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/mods/Xedra_Evolved/itemgroups/monster_drops.json b/data/mods/Xedra_Evolved/itemgroups/monster_drops.json index 00a70f4fee7d5..ad08b5b8a2cb1 100644 --- a/data/mods/Xedra_Evolved/itemgroups/monster_drops.json +++ b/data/mods/Xedra_Evolved/itemgroups/monster_drops.json @@ -511,5 +511,21 @@ { "drop": "triffid_heart_chunk", "type": "flesh", "mass_ratio": 0.2 }, { "drop": "veggy", "type": "offal", "mass_ratio": 0.3 } ] + }, + { + "id": "sevenoclock_death_drops", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "item": "hat_fur" }, + { "item": "sevenoclock_coat" }, + { "item": "swag_bag" }, + { "item": "cane" }, + { "item": "bone_human", "count": [ 3, 15 ] }, + { "item": "human_meat_scrap", "count": [ 10, 40 ] }, + { "item": "pants" }, + { "item": "dress_shoes" }, + { "item": "underwear" } + ] } ] diff --git a/data/mods/Xedra_Evolved/items/armor/armor.json b/data/mods/Xedra_Evolved/items/armor/armor.json index 6272f7b503ded..f568b4f574f4b 100644 --- a/data/mods/Xedra_Evolved/items/armor/armor.json +++ b/data/mods/Xedra_Evolved/items/armor/armor.json @@ -1321,5 +1321,58 @@ ], "melee_damage": { "bash": 4 }, "relic_data": { "passive_effects": [ { "id": "ench_verdant_boots" } ] } + }, + { + "id": "sevenoclock_coat", + "type": "ARMOR", + "name": { "str": "coat of the timely sleeper" }, + "description": "A old-fashioned padded coat with deep pockets. As you touch it, you feel that this coat could allow you to fall asleep whenever and wherever you want.", + "weight": "1340 g", + "volume": "6750 ml", + "price": "14000 USD", + "price_postapoc": "70 USD 50 cent", + "material": [ "cotton" ], + "symbol": "[", + "looks_like": "coat_rain", + "color": "light_red", + "armor": [ + { "covers": [ "torso" ], "coverage": 100, "encumbrance": [ 8, 17 ] }, + { "covers": [ "arm_l", "arm_r" ], "coverage": 100, "encumbrance": [ 8, 11 ] } + ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1250 ml", + "max_contains_weight": "3 kg", + "max_item_length": "21 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1250 ml", + "max_contains_weight": "3 kg", + "max_item_length": "21 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "900 ml", + "max_contains_weight": "1 kg", + "max_item_length": "13 cm", + "moves": 120 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "900 ml", + "max_contains_weight": "1 kg", + "max_item_length": "13 cm", + "moves": 120 + } + ], + "warmth": 70, + "material_thickness": 2, + "environmental_protection": 1, + "flags": [ "VARSIZE", "POCKETS", "COLLAR", "ALARM", "OUTER" ], + "relic_data": { "passive_effects": [ { "id": "ench_sevenoclock_coat" } ] } } ] diff --git a/data/mods/Xedra_Evolved/monsters/cryptids.json b/data/mods/Xedra_Evolved/monsters/cryptids.json new file mode 100644 index 0000000000000..51f3c8c08af36 --- /dev/null +++ b/data/mods/Xedra_Evolved/monsters/cryptids.json @@ -0,0 +1,135 @@ +[ + { + "id": "mon_sevenoclock_passive", + "type": "MONSTER", + "name": { "str_sp": "Man of the Nineteenth Hour" }, + "description": "A tall and lanky old man wearing an old-fashionned winter coat carrying a cane in his hand and a bag over his shoulder. He absently look at the horizon, as if waiting for something.", + "default_faction": "", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 150, + "speed": 40, + "material": [ "flesh" ], + "symbol": "S", + "color": "brown", + "aggression": 0, + "morale": 100, + "melee_skill": 6, + "melee_dice": 5, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 6 } ], + "dodge": 6, + "weakpoints": [ + { "name": "the head", "armor_mult": { "physical": 0.5 }, "coverage": 3 }, + { "name": "the eye", "armor_mult": { "physical": 0 }, "coverage": 1 } + ], + "families": [ "prof_wp_demihuman" ], + "bleed_rate": 80, + "vision_day": 45, + "vision_night": 55, + "harvest": "demihuman", + "path_settings": { "max_dist": 5 }, + "emit_fields": [ { "emit_id": "emit_sleep_aid", "delay": "1 s" } ], + "special_attacks": [ + { + "type": "spell", + "id": "mon_sevenoclock_activate", + "spell_data": { "id": "mon_sevenoclock_activate", "min_level": 1, "hit_self": true }, + "allow_no_target": true, + "condition": { "math": [ "time_since('noon', 'unit':'hours') <= 7" ] }, + "monster_message": "%1$s is blotted by shadows for an instant then reemerges, visibly angrier than before.", + "cooldown": 1 + }, + { + "type": "spell", + "id": "spell_shield_sleepers", + "spell_data": { "id": "spell_shield_sleepers", "min_level": 1, "hit_self": true }, + "allow_no_target": true, + "cooldown": 1 + } + ], + "death_drops": "sevenoclock_death_drops", + "flags": [ "SEES", "HEARS", "SMELLS", "HAS_MIND", "GRABS", "WARM", "BASHES", "PUSH_MON" ], + "armor": { "bash": 5, "cut": 5, "bullet": 4, "electric": 6 } + }, + { + "id": "mon_sevenoclock_active", + "type": "MONSTER", + "description": "A tall and lanky old man wearing an old-fashionned winter coat carrying a cane in his hand and a bag over his shoulder. As he notices that you are awake he prepares his bag and brandishes his cane, his visage warped by a twisted combination of anger, hunger and disapproval.", + "copy_from": "mon_sevenoclock_passive", + "speed": 140, + "aggression": 100, + "grab_strength": 50, + "special_attacks": [ + { + "type": "spell", + "id": "mon_sevenoclock_pacify", + "spell_data": { "id": "mon_sevenoclock_pacify", "min_level": 1, "hit_self": true }, + "allow_no_target": true, + "condition": { "math": [ "time_until('noon', 'unit':'hours') >= 7" ] }, + "monster_message": "%1$s is blotted by shadows for an instant then reemerges, visibly calmer than before.", + "cooldown": 1 + }, + { + "type": "spell", + "id": "spell_shield_sleepers", + "spell_data": { "id": "spell_shield_sleepers", "min_level": 1, "hit_self": true }, + "allow_no_target": true, + "cooldown": 1 + }, + { "id": "grab", "cooldown": 7 }, + [ "PARROT_AT_DANGER", 30 ] + ] + }, + { + "id": "mon_deathworm", + "type": "MONSTER", + "name": { "str_sp": "Olgoi-khorkhoi" }, + "description": "Also known as the mongolian death worm, the olgoi-khorkhoi is a massive acid-spewing blood-red worm. As you see it, you start hoping for the stories you've heard about the deadly poison coating its skin to be nothing but exagerations.", + "//": "Due to DIGS making that this monster cannot be fought outside of melee range, it won't have its skin poison to prevent gotcha moments. To compensate, there will be so much acid.", + "default_faction": "", + "bodytype": "snake", + "species": [ "MUTANT" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 130, + "speed": 80, + "material": [ "flesh" ], + "symbol": "S", + "color": "brown_red", + "aggression": 100, + "morale": 100, + "melee_skill": 2, + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "acid", "amount": 7 } ], + "dodge": 5, + "families": [ "prof_gross_anatomy", "prof_intro_biology", "prof_physiology" ], + "bleed_rate": 40, + "vision_day": 30, + "vision_night": 30, + "harvest": "mutant_meatslug", + "path_settings": { "max_dist": 5 }, + "special_attacks": [ + { + "type": "gun", + "cooldown": 3, + "move_cost": 30, + "gun_type": "acid_spit", + "fake_skills": [ [ "gun", 8 ], [ "rifle", 8 ] ], + "fake_dex": 8, + "fake_per": 8, + "require_targeting_player": false, + "target_moving_vehicles": true, + "description": "%1$s spits a glob of acid!", + "ranges": [ [ 1, 10, "DEFAULT" ] ] + }, + [ "ACID_BARF", 3 ] + ], + "special_when_hit": [ "ACIDSPLASH", 100 ], + "flags": [ "SEES", "HEARS", "SMELLS", "BASHES", "DIGS", "POISON", "NO_BREATHE", "PUSH_MON", "ACIDPROOF", "ACID_BLOOD", "RANGED_ATTACKER" ], + "armor": { "bash": 20 , "cut": 5 , "bullet": 10 } + } +] diff --git a/data/mods/Xedra_Evolved/monsters/monster_spells.json b/data/mods/Xedra_Evolved/monsters/monster_spells.json index 7ec53e8befce9..a95ec28d2f144 100644 --- a/data/mods/Xedra_Evolved/monsters/monster_spells.json +++ b/data/mods/Xedra_Evolved/monsters/monster_spells.json @@ -498,5 +498,81 @@ "min_field_intensity": 2, "max_field_intensity": 3, "damage_type": "cold" - } + }, + { + "id": "mon_sevenoclock_pacify", + "type": "SPELL", + "name": "Pacify the Nineteenth Hour", + "description": "Makes the Man of the Nineteenth Hour calm down.", + "valid_targets": [ "hostile" ], + "flags": [ "NO_LEGS", "NO_PROJECTILE" ], + "effect": "targeted_polymorph", + "effect_str": "mon_sevenoclock_passive", + "shape": "blast", + "spell_class": "NONE", + "base_casting_time": 10, + "difficulty": 0, + "max_level": 1, + "min_damage": 9999, + "max_damage": 9999, + "damage_type": "pure", + "min_range": 30, + "max_range": 30 + }, + { + "id": "mon_sevenoclock_activate", + "type": "SPELL", + "name": "Anger the Nineteenth Hour", + "description": "Makes the Man of the Nineteenth Hour ready to attack all those who do not sleep.", + "valid_targets": [ "hostile" ], + "flags": [ "NO_LEGS", "NO_PROJECTILE" ], + "effect": "targeted_polymorph", + "effect_str": "mon_sevenoclock_active", + "shape": "blast", + "spell_class": "NONE", + "base_casting_time": 10, + "difficulty": 0, + "max_level": 1, + "min_damage": 9999, + "max_damage": 9999, + "damage_type": "pure", + "min_range": 30, + "max_range": 30 + }, + { + "id": "spell_shield_sleepers", + "type": "SPELL", + "name": { "str": "Shield the sleepers" }, + "description": "Ensures an eventless sleep to those who sleep nearby.", + "valid_targets": [ "ally", "self" ], + "effect": "effect_on_condition", + "effect_str": "eoc_check_sleepers", + "shape": "blast", + "min_aoe": 15, + "max_aoe": 15, + "min_range": 1, + "max_range": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] + }, + { + "id": "eoc_check_sleepers", + "type": "effect_on_condition", + "condition": { "or": [ { "u_has_effect": "lying_down" }, { "u_has_effect": "sleep" } ] }, + "effect": [ { "u_cast_spell": { "id": "spell_confirm_sleepers", "hit_self": true } } ] + }, + { + "id": "spell_confirm_sleepers", + "type": "SPELL", + "name": { "str": "Trully shield the sleepers" }, + "description": "Ensures nothing will disturb your sleep", + "valid_targets": [ "self" ], + "effect": "attack", + "effect_str": "effect_sleep_shield", + "shape": "blast", + "min_duration": 600, + "max_duration": 600, + "min_range": 1, + "max_range": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] + } ] diff --git a/data/mods/Xedra_Evolved/snippets/cryptid_speech.json b/data/mods/Xedra_Evolved/snippets/cryptid_speech.json new file mode 100644 index 0000000000000..92117b0e65e33 --- /dev/null +++ b/data/mods/Xedra_Evolved/snippets/cryptid_speech.json @@ -0,0 +1,158 @@ +[ + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"You should be sleeping by now!\"", + "volume": 25 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"You should be sleeping by now.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I'm going to eat you!\"", + "volume": 25 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"SLEEP!\"", + "volume": 32 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"Jump in my bag, it will be less painful that way.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"Another one awake past its bedtime.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"Those who do not sleep won't ever wake up.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I'm going to beat you until you sleep, one way or another.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"This time is for the sleeping, not for the wakeful.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"There is no excuse. You sleep, or you die.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I am here to guard the sleepers.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I am here to kill the awake.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I won't let you wake them up.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"They say being dead is akin to being asleep. Sleep now, or you'll know what is it to be dead.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"So hungry.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"Need to eat.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"Their flesh and dreams are rotten.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"You will be fine food.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"The wakeful threaten the sleepers. I cannot let that be.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"It is currently the sleepers' time.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"All who are awake during the sleepers' time are mine.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I wish for all to sleep well in this time.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"You are still able to sleep. Why do you squander this gift?\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I will ensure that all who sleep won't be disturbed.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I will ensure that all who cannot sleep will die.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"For the last time: SLEEP!\"", + "volume": 32 + } +]