From e43389302cc002ed591ccfebc35ecb39c8ba6d91 Mon Sep 17 00:00:00 2001 From: Standing-Storm <120433252+Standing-Storm@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:53:20 -0600 Subject: [PATCH] [Xedra Evolved] Add more changeling traits (#79312) * Add selkie attribute traits * Some trow traits * Add beguilement spells * Add The One Who Knocks * Add further powers * Fixes * More fixes * Implement suggestions from code review * Change to recurring EoC so trow NPCs don't cause EoCsplosion --- data/mods/Xedra_Evolved/effects/effects.json | 16 ++ .../Xedra_Evolved/enchantments/armor.json | 7 + .../Xedra_Evolved/items/armor/integrated.json | 19 +- .../items/comestibles/goblin_fruits.json | 58 +++++ .../Xedra_Evolved/monsters/changeling.json | 4 +- data/mods/Xedra_Evolved/monsters/species.json | 6 + .../mutations/paraclesians/homullus_eocs.json | 6 +- .../paraclesians/ierde_mutations.json | 4 +- .../mutations/playable_changeling.json | 233 +++++++++++++++++- .../mutations/playable_changeling_eocs.json | 53 ++-- .../spells/changeling_spells.json | 126 ++++++++++ 11 files changed, 491 insertions(+), 41 deletions(-) diff --git a/data/mods/Xedra_Evolved/effects/effects.json b/data/mods/Xedra_Evolved/effects/effects.json index 490b1c304eb79..8d600cd050799 100644 --- a/data/mods/Xedra_Evolved/effects/effects.json +++ b/data/mods/Xedra_Evolved/effects/effects.json @@ -2428,6 +2428,22 @@ "name": [ "" ], "desc": [ "" ] }, + { + "type": "effect_type", + "id": "effect_trow_no_eating_or_sleep", + "//": "Hidden effect, used to give you no metabolism or sleep gain while mining", + "name": [ "" ], + "desc": [ "" ], + "enchantments": [ + { + "values": [ + { "value": "METABOLISM", "multiply": -1 }, + { "value": "THIRST", "multiply": -1 }, + { "value": "SLEEPINESS", "multiply": -1 } + ] + } + ] + }, { "type": "effect_type", "id": "called_daffodil", diff --git a/data/mods/Xedra_Evolved/enchantments/armor.json b/data/mods/Xedra_Evolved/enchantments/armor.json index 6448ad1722ca9..ebe9fb25a4065 100644 --- a/data/mods/Xedra_Evolved/enchantments/armor.json +++ b/data/mods/Xedra_Evolved/enchantments/armor.json @@ -186,5 +186,12 @@ "condition": { "not": "u_has_weapon" }, "melee_damage_bonus": [ { "type": "bash", "add": { "math": [ "10 * (1 + (u_has_trait('IERDE_SKIN_3') * 0.5) )" ] } } ], "values": [ { "value": "ATTACK_SPEED", "multiply": 0.15 } ] + }, + { + "id": "ench_trow_stone_fists", + "type": "enchantment", + "has": "WORN", + "condition": { "not": "u_has_weapon" }, + "melee_damage_bonus": [ { "type": "bash", "add": 6 } ] } ] diff --git a/data/mods/Xedra_Evolved/items/armor/integrated.json b/data/mods/Xedra_Evolved/items/armor/integrated.json index b67e1c75c24c8..fc2e8764d2cd7 100644 --- a/data/mods/Xedra_Evolved/items/armor/integrated.json +++ b/data/mods/Xedra_Evolved/items/armor/integrated.json @@ -162,7 +162,7 @@ "volume": "500 ml", "price": "0 cent", "price_postapoc": "0 cent", - "material": [ "mut_wood" ], + "material": [ "stone" ], "symbol": ",", "color": "brown", "flags": [ "INTEGRATED", "SEMITANGIBLE", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "PADDED" ], @@ -920,6 +920,23 @@ ], "melee_damage": { "bash": 6 } }, + { + "id": "integrated_trow_fists", + "type": "ARMOR", + "category": "armor", + "name": { "str_sp": "stone fists" }, + "description": "Your thick skin and nails means your hands can be used as simple tools. You also do slightly more damage when punching.", + "weight": "300 g", + "volume": "500 ml", + "price": "0 cent", + "price_postapoc": "0 cent", + "material": [ "fae_flesh" ], + "symbol": ",", + "color": "brown", + "flags": [ "INTEGRATED", "SEMITANGIBLE", "ALLOWS_NATURAL_ATTACKS", "UNBREAKABLE", "PERSONAL", "PADDED" ], + "qualities": [ [ "HAMMER", 2 ], [ "HAMMER_FINE", 1 ], [ "PRYING_NAIL", 1 ], [ "PRY", 2 ] ], + "relic_data": { "passive_effects": [ { "id": "ench_trow_stone_fists" } ] } + }, { "id": "internal_mp3_fruit", "type": "TOOL_ARMOR", diff --git a/data/mods/Xedra_Evolved/items/comestibles/goblin_fruits.json b/data/mods/Xedra_Evolved/items/comestibles/goblin_fruits.json index 397ae82ec050e..8931ed50b907e 100644 --- a/data/mods/Xedra_Evolved/items/comestibles/goblin_fruits.json +++ b/data/mods/Xedra_Evolved/items/comestibles/goblin_fruits.json @@ -1157,6 +1157,64 @@ { "u_lose_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" } ] }, + { + "type": "effect_on_condition", + "id": "GOBLIN_FRUIT_ANIMAL_IGNORE_ATTACK_RANGED", + "eoc_type": "EVENT", + "required_event": "character_ranged_attacks_monster", + "condition": { + "and": [ + { "u_has_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" }, + { + "or": [ + { "npc_has_species": "MAMMAL" }, + { "npc_has_species": "AMPHIBIAN" }, + { "npc_has_species": "BIRD" }, + { "npc_has_species": "REPTILE" }, + { "npc_has_species": "FISH" }, + { "npc_has_species": "KRAKEN" }, + { "npc_has_species": "INSECT" }, + { "npc_has_species": "CENTIPEDE" }, + { "npc_has_species": "INSECT_FLYING" }, + { "npc_has_species": "SPIDER" } + ] + } + ] + }, + "effect": [ + { "u_lose_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" }, + { "u_message": "Nearby animals stop ignoring your presence.", "type": "info" } + ] + }, + { + "type": "effect_on_condition", + "id": "GOBLIN_FRUIT_ANIMAL_IGNORE_ATTACK_MELEE", + "eoc_type": "EVENT", + "required_event": "character_melee_attacks_monster", + "condition": { + "and": [ + { "u_has_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" }, + { + "or": [ + { "npc_has_species": "MAMMAL" }, + { "npc_has_species": "AMPHIBIAN" }, + { "npc_has_species": "BIRD" }, + { "npc_has_species": "REPTILE" }, + { "npc_has_species": "FISH" }, + { "npc_has_species": "KRAKEN" }, + { "npc_has_species": "INSECT" }, + { "npc_has_species": "CENTIPEDE" }, + { "npc_has_species": "INSECT_FLYING" }, + { "npc_has_species": "SPIDER" } + ] + } + ] + }, + "effect": [ + { "u_lose_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" }, + { "u_message": "Nearby animals stop ignoring your presence.", "type": "info" } + ] + }, { "type": "COMESTIBLE", "id": "goblin_fruit_mend_bone", diff --git a/data/mods/Xedra_Evolved/monsters/changeling.json b/data/mods/Xedra_Evolved/monsters/changeling.json index 494ec234ea2c9..8d7e2a3b7a430 100644 --- a/data/mods/Xedra_Evolved/monsters/changeling.json +++ b/data/mods/Xedra_Evolved/monsters/changeling.json @@ -165,7 +165,7 @@ "description": "Nearly seven feet tall and whip thin, this warlord of the border realm of the Nether is clothed in silks and silvery tightly woven chainmail. It glares at you and an ethereal sword manifests in its hand.", "default_faction": "changeling", "bodytype": "human", - "species": [ "CHANGELING" ], + "species": [ "CHANGELING", "CHANGELING_NOBLE" ], "volume": "72500 ml", "weight": "91500 g", "hp": 190, @@ -221,7 +221,7 @@ "description": "Shrouded in an obscuring cloak, this fae warrior is crowned with an impressive rack of antlers spreading through rents in its gossamer hood. Two burning blue eyes are all that is visible of its features. In one mailed hand, it holds a sword made of wood as black as ebony.", "default_faction": "changeling", "bodytype": "human", - "species": [ "CHANGELING" ], + "species": [ "CHANGELING", "CHANGELING_NOBLE" ], "volume": "72500 ml", "weight": "91500 g", "hp": 250, diff --git a/data/mods/Xedra_Evolved/monsters/species.json b/data/mods/Xedra_Evolved/monsters/species.json index e6bb2b15096da..eb257b86945b2 100644 --- a/data/mods/Xedra_Evolved/monsters/species.json +++ b/data/mods/Xedra_Evolved/monsters/species.json @@ -13,6 +13,12 @@ "description": "a creature from under the hill", "fear_triggers": [ "HURT" ] }, + { + "type": "SPECIES", + "id": "CHANGELING_NOBLE", + "description": "one of the leaders of the people under the hill", + "fear_triggers": [ "HURT" ] + }, { "type": "SPECIES", "id": "IERDE", diff --git a/data/mods/Xedra_Evolved/mutations/paraclesians/homullus_eocs.json b/data/mods/Xedra_Evolved/mutations/paraclesians/homullus_eocs.json index 36d6ba280a672..c272825926320 100644 --- a/data/mods/Xedra_Evolved/mutations/paraclesians/homullus_eocs.json +++ b/data/mods/Xedra_Evolved/mutations/paraclesians/homullus_eocs.json @@ -125,8 +125,10 @@ "required_event": "character_wakes_up", "condition": { "and": [ - { "u_has_trait": "HOMULLUS_DREAMWALKER" }, - { "x_in_y_chance": { "x": { "math": [ "1 + u_has_trait('THRESH_HOMULLUS')" ] }, "y": 10 } }, + { "or": [ { "u_has_trait": "HOMULLUS_DREAMWALKER" }, { "u_has_trait": "CHANGELING_NOBLE_DREAMWALKER" } ] }, + { + "x_in_y_chance": { "x": { "math": [ "1 + u_has_trait('THRESH_HOMULLUS') + u_has_trait('THRESH_FAIR_FOLK_NOBLE')" ] }, "y": 10 } + }, { "math": [ "u_characters_nearby('radius': 30, 'attitude': 'any') > 0" ] } ] }, diff --git a/data/mods/Xedra_Evolved/mutations/paraclesians/ierde_mutations.json b/data/mods/Xedra_Evolved/mutations/paraclesians/ierde_mutations.json index 58134136338db..0bb680629672c 100644 --- a/data/mods/Xedra_Evolved/mutations/paraclesians/ierde_mutations.json +++ b/data/mods/Xedra_Evolved/mutations/paraclesians/ierde_mutations.json @@ -9,7 +9,7 @@ "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" ] + "category": [ "IERDE", "FAIR_FOLK_COMMONER_TROW" ] }, { "type": "mutation", @@ -20,7 +20,7 @@ "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" ], + "category": [ "IERDE", "FAIR_FOLK_COMMONER_TROW" ], "prereqs": [ "IERDE_SKIN_1" ], "changes_to": [ "IERDE_SKIN_3" ], "wet_protection": [ diff --git a/data/mods/Xedra_Evolved/mutations/playable_changeling.json b/data/mods/Xedra_Evolved/mutations/playable_changeling.json index fcb8a9c0efc1a..05e100e5f8c68 100644 --- a/data/mods/Xedra_Evolved/mutations/playable_changeling.json +++ b/data/mods/Xedra_Evolved/mutations/playable_changeling.json @@ -306,6 +306,7 @@ "points": 8, "description": "The Fair Folk have dealt with many mortal civilizations over the aeons, and have come to mutually beneficial arrangements with some of them. Activate this trait to make your fae nature obvious, invoking those ancient agreements. This may anger some who have especially bad relationships with the fae.", "prereqs": [ "PRETTY", "BEAUTIFUL", "BEAUTIFUL2", "BEAUTIFUL3" ], + "prereqs2": [ "CHANGELING_NOBLE_COMMAND_COMMMONERS" ], "category": [ "FAIR_FOLK_NOBLE" ], "active": true, "activated_is_setup": true, @@ -323,6 +324,107 @@ "ignored_by": [ "PLANT", "MIGO", "CHANGELING", "ARVORE", "IERDE", "HOMULLUS", "SALAMANDER", "SYLPH", "UNDINE" ], "anger_relations": [ [ "CYBORG", 50 ] ] }, + { + "type": "mutation", + "id": "STR_UP_NOBLE", + "name": { "str": "Murmurs the Mighty One", "//~": "A reference to the A.E. poem 'A Call of the Sidhe' " }, + "points": 3, + "description": "You are strong enough to defend a crossroads at twilight against all comers. +3 Strength.", + "category": [ "FAIR_FOLK_NOBLE" ], + "enchantments": [ { "values": [ { "value": "STRENGTH", "add": 3 } ] } ] + }, + { + "type": "mutation", + "id": "DEX_UP_NOBLE", + "name": { "str": "All Dancing with Delight", "//~": "A reference to the Rose Fyleman poem 'Alms in Autumn' " }, + "points": 3, + "description": "You are graceful enough to dance the night away beneath a crystal dome on a floor of mirror-bright silver. +3 Dexterity.", + "category": [ "FAIR_FOLK_NOBLE" ], + "enchantments": [ { "values": [ { "value": "DEXTERITY", "add": 3 } ] } ] + }, + { + "type": "mutation", + "id": "SPEED_UP_NOBLE", + "name": { "str": "At Speed Unthought Of", "//~": "A reference to the Lord Dunsany poem 'The Fairy Child' " }, + "points": 3, + "description": "Your reactions are inhumanly quick. +15 Speed.", + "category": [ "FAIR_FOLK_NOBLE" ], + "threshreq": [ "DEX_UP_NOBLE" ], + "prereqs2": [ "PARACLESIAN_STR_DEX_1", "PARACLESIAN_STR_DEX_2" ], + "enchantments": [ { "values": [ { "value": "SPEED", "add": 15 } ] } ] + }, + { + "type": "mutation", + "id": "INT_UP_NOBLE", + "name": { "str": "Wisdom from the Well" }, + "points": 3, + "description": "Like the legendary salmon who ate the nine acorns, you have gained a plethora of wisdom. +3 Intelligence.", + "category": [ "FAIR_FOLK_NOBLE" ], + "enchantments": [ { "values": [ { "value": "INTELLIGENCE", "add": 3 } ] } ] + }, + { + "type": "mutation", + "id": "PER_UP_NOBLE", + "name": { "str": "Hear the Whole World Whispering", "//~": "A reference to the Charlotte Mew poem 'The Changeling' " }, + "points": 3, + "description": "You senses are far more attuned to your surroundings than previously. +3 Perception.", + "category": [ "FAIR_FOLK_NOBLE" ], + "enchantments": [ { "values": [ { "value": "PERCEPTION", "add": 3 } ] } ] + }, + { + "type": "mutation", + "id": "CHANGELING_NOBLE_DREAMWALKER", + "name": { "str": "Dreamwalker" }, + "points": 2, + "description": "From the dreams of mortals, you can spin remnants of fantasy into material substance. When you sleep near mortals, you have a chance to awaken with some dreamdross nearby.", + "prereqs": [ "PARACLESIAN_FAE_SIGHT_1", "PARACLESIAN_FAE_SIGHT_2" ], + "prereqs2": [ "PER_UP_NOBLE" ], + "category": [ "FAIR_FOLK_NOBLE" ], + "//": "Ideally this would detect even non-allied NPCs nearby instead of just a location where NPCs are likely to be" + }, + { + "type": "mutation", + "id": "CHANGELING_NOBLE_COMMAND_COMMMONERS", + "name": { "str": "Sovereign's Command" }, + "points": 3, + "description": "Invoke your rights as one of noble birth and exert your authority over the commoner fae, forcing them to obey your commands. The glamour will only last a short time, and the target is under no obligation to look on your favorably afterwards.", + "category": [ "FAIR_FOLK_NOBLE" ], + "spells_learned": [ [ "changeling_noble_command_commoners_spell", 1 ] ] + }, + { + "type": "mutation", + "id": "CHANGELING_NOBLE_CHARM_HUMANS", + "name": { "str": "Come Away, O Human Child", "//~": "A reference to the Yeats poem 'The Stolen Child' " }, + "points": 3, + "description": "Glamour a human into defending you for a short period of time. When the glamour ends, all effects end and the human will not be well-disposed toward you afterwards.", + "prereqs": [ "BEAUTIFUL", "BEAUTIFUL2", "BEAUTIFUL3" ], + "prereqs2": [ "CHANGELING_NOBLE_COMMAND_COMMMONERS" ], + "category": [ "FAIR_FOLK_NOBLE" ], + "spells_learned": [ [ "changeling_noble_charm_humans_spell", 1 ] ] + }, + { + "type": "mutation", + "id": "CHANGELING_NOBLE_INHUMAN_MINDSET", + "name": { "str": "Empty Your Heart of its Mortal Dream", "//~": "A reference to the Yeats poem 'The Hosting of the Sidhe' " }, + "points": 8, + "description": "Your mindset is shifting to the alien morality of those from Under the Hill. You can control this to some extent, though it may also overtake you in times of pain or stress.", + "prereqs": [ "CHANGELING_NOBLE_DREAMWALKER" ], + "prereqs2": [ "CHANGELING_NOBLE_CHARM_HUMANS" ], + "category": [ "FAIR_FOLK_NOBLE" ], + "threshreq": [ "THRESH_FAIR_FOLK_NOBLE" ], + "active": true, + "activated_is_setup": true, + "activation_msg": "The mortal sentiments in your thoughts fade away.", + "enchantments": [ + { "condition": "ACTIVE", "mutations": [ "PSYCHOPATH" ] }, + { "condition": { "math": [ "u_pain('type': 'perceived')", ">=", "50" ] }, "mutations": [ "PSYCHOPATH" ] }, + { "condition": { "math": [ "u_val('sleepiness')", ">=", "200" ] }, "mutations": [ "PSYCHOPATH" ] }, + { + "condition": { "u_has_any_effect": [ "formication", "visuals", "hallu", "bite", "infected" ] }, + "mutations": [ "PSYCHOPATH" ] + } + ] + }, { "type": "mutation", "id": "BROWNIE_CRAFTING_BONUS", @@ -1114,6 +1216,47 @@ } ] }, + { + "type": "mutation", + "id": "DEX_UP_SELKIE", + "name": { "str": "Bending Like the River" }, + "points": 3, + "description": "Your movements are graceful whether on land or in the water. +3 Dexterity.", + "prereqs": [ "PARACLESIAN_STR_DEX_1", "PARACLESIAN_STR_DEX_2" ], + "prereqs2": [ "SELKIE_WATERMOVE" ], + "category": [ "FAIR_FOLK_COMMONER_SELKIE" ], + "enchantments": [ { "values": [ { "value": "DEXTERITY", "add": 3 } ] } ] + }, + { + "type": "mutation", + "id": "PER_UP_SELKIE", + "name": { "str": "Eyes On the Waterline" }, + "points": 3, + "description": "Your sight is keen whether in or out of the water. +2 Perception.", + "prereqs": [ "PARACLESIAN_INT_PER_1", "PARACLESIAN_INT_PER_2" ], + "category": [ "FAIR_FOLK_COMMONER_SELKIE" ], + "enchantments": [ { "values": [ { "value": "PERCEPTION", "add": 2 } ] } ] + }, + { + "type": "mutation", + "id": "INT_UP_SELKIE", + "name": { "str": "Thoughts like Clear Water" }, + "points": 2, + "description": "Your mind flows easily from topic to topic while remembering the important details. +2 Intelligence.", + "prereqs": [ "PARACLESIAN_INT_PER_1", "PARACLESIAN_INT_PER_2" ], + "category": [ "FAIR_FOLK_COMMONER_SELKIE" ], + "enchantments": [ { "values": [ { "value": "INTELLIGENCE", "add": 2 } ] } ] + }, + { + "type": "mutation", + "id": "SELKIE_BEGUILMENT", + "name": { "str": "Beguilement" }, + "points": 3, + "description": "Glamour a human into defending you for a short period of time. When the glamour ends, all effects end and the human will not be well-disposed toward you afterwards.", + "prereqs": [ "BEAUTIFUL", "BEAUTIFUL2", "BEAUTIFUL3" ], + "category": [ "FAIR_FOLK_COMMONER_SELKIE" ], + "spells_learned": [ [ "selkie_beguilement_spell", 1 ] ] + }, { "type": "mutation", "id": "SELKIE_FOG_CLOAK", @@ -1207,7 +1350,7 @@ "name": { "str": "The Waves my Bed" }, "points": 1, "description": "Falling asleep underwater is easy for you, and you spend less time asleep when you rest there.", - "prereqs": [ "SELKIE_BREATHING_WATER2" ], + "prereqs2": [ "DEX_UP_SELKIE" ], "category": [ "FAIR_FOLK_COMMONER_SELKIE" ], "comfort": [ { @@ -1249,6 +1392,92 @@ "category": [ "FAIR_FOLK_COMMONER_SELKIE" ], "threshreq": [ "THRESH_FAIR_FOLK_COMMONER_SELKIE" ] }, + { + "type": "mutation", + "id": "TROW_MAKE_NOISE", + "name": { "str": "The One Who Knocks" }, + "points": 3, + "description": "Create a loud knocking sound within the glamour's range, to distract or lure your enemies away.", + "category": [ "FAIR_FOLK_COMMONER_TROW" ], + "spells_learned": [ [ "trow_make_noise_spell", 1 ] ] + }, + { + "type": "mutation", + "id": "TROW_STONE_FISTS", + "name": { "str": "Fists of Stone" }, + "points": 4, + "visibility": 0, + "ugliness": 0, + "description": "Your tough skin and thick nails allow you to use yours hands to replace some simple tools. Your punches hit harder as well.", + "types": [ "CLAWS" ], + "prereqs": [ "IERDE_SKIN_2" ], + "category": [ "FAIR_FOLK_COMMONER_TROW" ], + "integrated_armor": [ "integrated_trow_fists" ] + }, + { + "type": "mutation", + "id": "TROW_LESS_METABOLISM_UNDERGROUND", + "name": { "str": "Stone-Eater" }, + "points": 4, + "visibility": 0, + "ugliness": 0, + "description": "The trow don't literally eat stones, but merely being underground fills you with strength and vigor. You need half as much food and water while you're underground, and cold underground does not affect you.", + "types": [ "METABOLISM" ], + "prereqs": [ "PAINRESIST_TROW", "PAINRESIST_TROW2" ], + "category": [ "FAIR_FOLK_COMMONER_TROW" ], + "enchantments": [ + { + "condition": { "and": [ { "not": "u_is_outside" }, { "math": [ "u_val('pos_z') <= -1" ] } ] }, + "values": [ + { "value": "METABOLISM", "multiply": -0.5 }, + { "value": "THIRST", "multiply": -0.5 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 50 } + ] + } + ] + }, + { + "type": "mutation", + "id": "TROW_WHILE_MINING_NO_EATING_OR_SLEEP", + "name": { "str": "Deep-Delver" }, + "points": 4, + "visibility": 0, + "ugliness": 0, + "description": "Once you begin mining, you can do it for hours without rest or sleep. You need neither food nor drink nor rest for as long as you continue mining.", + "prereqs": [ "TROW_LESS_METABOLISM_UNDERGROUND" ], + "category": [ "FAIR_FOLK_COMMONER_TROW" ] + }, + { + "type": "mutation", + "id": "TROW_STEALTH_UNDERGROUND_ON_ROCK", + "name": { "str": "Amongst the Stones" }, + "points": 4, + "visibility": 0, + "ugliness": 0, + "description": "While on rock or underground, you seem to subtly blend into your surroundings. You are harder to spot on rocks or underground.", + "prereqs": [ "IERDE_SKIN_2" ], + "category": [ "FAIR_FOLK_COMMONER_TROW" ], + "enchantments": [ + { + "condition": { + "or": [ + { + "or": [ + { "u_is_on_terrain": "t_stone_masonry_floor_balcony" }, + { "u_is_on_terrain": "t_stone_masonry_floor" }, + { "u_is_on_terrain": "t_rock_floor_no_roof" }, + { "u_is_on_terrain": "t_rock_floor" }, + { "u_is_on_terrain": "t_marble_floor" }, + { "u_is_on_terrain": "t_railroad_rubble" } + ] + }, + { "and": [ { "not": "u_is_outside" }, { "math": [ "u_val('pos_z') <= -1" ] } ] } + ] + }, + "values": [ { "value": "STEALTH_MODIFIER", "add": 25 } ] + } + ] + }, { "type": "mutation", "id": "PAINRESIST", @@ -1297,7 +1526,7 @@ "condition": { "and": [ { "not": "u_is_outside" }, { "math": [ "u_val('pos_z') <= -1" ] } ] }, "values": [ { "value": "PAIN", "multiply": -0.5 } ] }, - { "values": [ { "value": "PAIN_PENALTY_MOD_STR", "multiply": -10 } ] } + { "values": [ { "value": "PAIN_PENALTY_MOD_STR", "multiply": -1 } ] } ] }, { diff --git a/data/mods/Xedra_Evolved/mutations/playable_changeling_eocs.json b/data/mods/Xedra_Evolved/mutations/playable_changeling_eocs.json index e63c5dfc44aad..6ca250524a544 100644 --- a/data/mods/Xedra_Evolved/mutations/playable_changeling_eocs.json +++ b/data/mods/Xedra_Evolved/mutations/playable_changeling_eocs.json @@ -1718,61 +1718,50 @@ }, { "type": "effect_on_condition", - "id": "GOBLIN_FRUIT_ANIMAL_IGNORE_ATTACK_RANGED", + "id": "EOC_TROW_START_MINING", "eoc_type": "EVENT", - "required_event": "character_ranged_attacks_monster", + "required_event": "character_starts_activity", "condition": { "and": [ - { "u_has_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" }, + { "u_has_trait": "TROW_WHILE_MINING_NO_EATING_OR_SLEEP" }, { "or": [ - { "npc_has_species": "MAMMAL" }, - { "npc_has_species": "AMPHIBIAN" }, - { "npc_has_species": "BIRD" }, - { "npc_has_species": "REPTILE" }, - { "npc_has_species": "FISH" }, - { "npc_has_species": "KRAKEN" }, - { "npc_has_species": "INSECT" }, - { "npc_has_species": "CENTIPEDE" }, - { "npc_has_species": "INSECT_FLYING" }, - { "npc_has_species": "SPIDER" } + { "compare_string": [ "ACT_MULTIPLE_MINE", { "context_val": "activity" } ] }, + { "compare_string": [ "ACT_PICKAXE", { "context_val": "activity" } ] } ] } ] }, "effect": [ - { "u_lose_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" }, - { "u_message": "Nearby animals stop ignoring your presence.", "type": "info" } + { "math": [ "u_calories_pre_mining = u_calories()" ] }, + { "u_add_effect": "effect_trow_no_eating_or_sleep", "duration": "PERMANENT" } ] }, { "type": "effect_on_condition", - "id": "GOBLIN_FRUIT_ANIMAL_IGNORE_ATTACK_MELEE", + "id": "EOC_TROW_WHILE_MINING", + "recurrence": "5 minutes", + "condition": { "u_has_effect": "effect_trow_no_eating_or_sleep" }, + "deactivate_condition": { "not": { "u_has_trait": "TROW_WHILE_MINING_NO_EATING_OR_SLEEP" } }, + "effect": [ { "math": [ "u_calories('dont_affect_weariness': true) = u_calories_pre_mining" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TROW_END_MINING", "eoc_type": "EVENT", - "required_event": "character_melee_attacks_monster", + "required_event": "character_finished_activity", "condition": { "and": [ - { "u_has_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" }, + { "u_has_trait": "TROW_WHILE_MINING_NO_EATING_OR_SLEEP" }, { "or": [ - { "npc_has_species": "MAMMAL" }, - { "npc_has_species": "AMPHIBIAN" }, - { "npc_has_species": "BIRD" }, - { "npc_has_species": "REPTILE" }, - { "npc_has_species": "FISH" }, - { "npc_has_species": "KRAKEN" }, - { "npc_has_species": "INSECT" }, - { "npc_has_species": "CENTIPEDE" }, - { "npc_has_species": "INSECT_FLYING" }, - { "npc_has_species": "SPIDER" } + { "compare_string": [ "ACT_MULTIPLE_MINE", { "context_val": "activity" } ] }, + { "compare_string": [ "ACT_PICKAXE", { "context_val": "activity" } ] } ] } ] }, - "effect": [ - { "u_lose_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" }, - { "u_message": "Nearby animals stop ignoring your presence.", "type": "info" } - ] + "effect": [ { "u_lose_effect": "effect_trow_no_eating_or_sleep" } ] }, { "type": "effect_on_condition", diff --git a/data/mods/Xedra_Evolved/spells/changeling_spells.json b/data/mods/Xedra_Evolved/spells/changeling_spells.json index c8ed8402b19c9..33796c8e006fa 100644 --- a/data/mods/Xedra_Evolved/spells/changeling_spells.json +++ b/data/mods/Xedra_Evolved/spells/changeling_spells.json @@ -204,6 +204,63 @@ "math": [ "max(( 400 - (u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 8) - (u_skill('deduction') * 15)), 150)" ] } }, + { + "id": "changeling_noble_command_commoners_spell", + "type": "SPELL", + "name": "Sovereign's Command", + "description": "With a stern word of command, you can glamour one of the common fae, the redcaps or brownies or pooka or bannermen, into defending you from your enemies.", + "message": "You snap out an order to your target.", + "valid_targets": [ "ally", "hostile" ], + "flags": [ "VERBAL", "RECHARM", "RANDOM_DAMAGE", "RANDOM_DURATION", "NO_FAIL", "NO_PROJECTILE", "SILENT" ], + "effect": "charm_monster", + "shape": "blast", + "spell_class": "CHANGELING_MAGIC", + "difficulty": 5, + "max_level": 1, + "min_damage": { "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 4.5) + (u_skill('deduction') * 20) + 10" ] }, + "max_damage": { "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 9) + (u_skill('deduction') * 30) + 30" ] }, + "min_duration": { "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 691) + (u_skill('deduction') * 3246) + 8259" ] }, + "max_duration": { "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 1685) + (u_skill('deduction') * 8388) + 26221" ] }, + "min_range": 15, + "max_range": 15, + "magic_type": "xe_fey_magick", + "base_energy_cost": { + "math": [ "max(( 450 - (u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 5) - (u_skill('deduction') * 15)), 150)" ] + }, + "base_casting_time": { + "math": [ "max(( 150 - (u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 3) - (u_skill('deduction') * 8)), 50)" ] + }, + "targeted_monster_species": [ "CHANGELING" ], + "ignored_monster_species": [ "CHANGELING_NOBLE" ] + }, + { + "id": "changeling_noble_charm_humans_spell", + "type": "SPELL", + "name": "Come Away, O Human Child", + "description": "With a stern word of command or a whispered entreaty, you can glamour a human into defending you from your enemies.", + "message": "You cast your glamour over your target.", + "valid_targets": [ "ally", "hostile" ], + "flags": [ "VERBAL", "RECHARM", "RANDOM_DAMAGE", "RANDOM_DURATION", "NO_FAIL", "NO_PROJECTILE", "SILENT" ], + "effect": "charm_monster", + "shape": "blast", + "spell_class": "CHANGELING_MAGIC", + "difficulty": 7, + "max_level": 1, + "min_damage": { "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 3) + (u_skill('deduction') * 20) + 10" ] }, + "max_damage": { "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 7) + (u_skill('deduction') * 30) + 30" ] }, + "min_duration": { "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 286) + (u_skill('deduction') * 2455) + 5824" ] }, + "max_duration": { "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 773) + (u_skill('deduction') * 6250) + 19375" ] }, + "min_range": 10, + "max_range": 10, + "magic_type": "xe_fey_magick", + "base_energy_cost": { + "math": [ "max(( 700 - (u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 9) - (u_skill('deduction') * 25)), 300)" ] + }, + "base_casting_time": { + "math": [ "max(( 150 - (u_sum_traits_of_category_char_has('FAIR_FOLK_NOBLE') * 3) - (u_skill('deduction') * 8)), 50)" ] + }, + "targeted_monster_species": [ "FERAL", "HUMAN" ] + }, { "id": "changeling_brownie_blink_indoors_spell", "type": "SPELL", @@ -291,6 +348,46 @@ }, "targeted_monster_species": [ "MAMMAL", "BIRD" ] }, + { + "id": "selkie_beguilement_spell", + "type": "SPELL", + "name": "Beguilement", + "description": "With a wink and a bit of fae glamour, you can .", + "message": "You cast your glamour over your target.", + "valid_targets": [ "ally", "hostile" ], + "flags": [ "VERBAL", "RECHARM", "RANDOM_DAMAGE", "RANDOM_DURATION", "NO_FAIL", "NO_PROJECTILE", "SILENT" ], + "effect": "charm_monster", + "shape": "blast", + "spell_class": "CHANGELING_MAGIC", + "difficulty": 7, + "max_level": 1, + "min_damage": { + "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_SELKIE') * 3) + (u_skill('deduction') * 10) + 10" ] + }, + "max_damage": { + "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_SELKIE') * 7) + (u_skill('deduction') * 20) + 30" ] + }, + "min_duration": { + "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_SELKIE') * 286) + (u_skill('deduction') * 2455) + 5824" ] + }, + "max_duration": { + "math": [ "(u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_SELKIE') * 773) + (u_skill('deduction') * 6250) + 19375" ] + }, + "min_range": 10, + "max_range": 10, + "magic_type": "xe_fey_magick", + "base_energy_cost": { + "math": [ + "max(( 750 - (u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_SELKIE') * 9) - (u_skill('deduction') * 25)), 350)" + ] + }, + "base_casting_time": { + "math": [ + "max(( 200 - (u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_SELKIE') * 4) - (u_skill('deduction') * 8)), 50)" + ] + }, + "targeted_monster_species": [ "FERAL", "HUMAN" ] + }, { "id": "selkie_fog_cloak_spell", "type": "SPELL", @@ -459,6 +556,35 @@ ] } }, + { + "id": "trow_make_noise_spell", + "type": "SPELL", + "name": "The One Who Knocks", + "description": "Make a distant knocking sound, leading others astray.", + "message": "A loud thump resounds.", + "flags": [ "NO_FAIL", "VERBAL", "SOMATIC", "RANDOM_DAMAGE", "NO_PROJECTILE" ], + "valid_targets": [ "ground", "self", "ally", "hostile" ], + "spell_class": "CHANGELING_MAGIC", + "difficulty": 2, + "skill": "deduction", + "max_level": 1, + "effect": "noise", + "shape": "blast", + "min_damage": 25, + "max_damage": 35, + "min_range": 30, + "max_range": 30, + "min_aoe": 1, + "max_aoe": 1, + "magic_type": "xe_fey_magick", + "base_energy_cost": { + "math": [ "max(( 200 - (u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_TROW') * 2) - (u_skill('deduction') * 5)), 35)" ] + }, + "base_casting_time": { + "math": [ "max(( 150 - (u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_TROW') * 3) - (u_skill('deduction') * 6)), 50)" ] + }, + "sound_description": "a loud thump" + }, { "id": "selkie_cultivate_goblin_fruit", "type": "SPELL",