From f7598f1aa935c73ddd93670907554d55d5468d9a Mon Sep 17 00:00:00 2001 From: SariusSkelrets <68650913+SariusSkelrets@users.noreply.github.com> Date: Mon, 27 Jan 2025 01:57:44 -0500 Subject: [PATCH] [XE] Add new goblin fruits (#79319) * Add new goblin fruits, part 1 * Add more fruits, part 2 * Add more fruits, part 3 * add more fruits, part 4 * add more fruits, part 5 * fix errors, part 1 * Update data/mods/Xedra_Evolved/mutations/playable_changeling_eocs.json * Add the new itemgroups * Add non-elemental fae fruit mutations & spells and make elemental fae have a chance to obtain their exclusive fruits * fix enough errors to be able to open the game * Fix some more errors. * Fix a few more fruits. * Fix the other fruits. * clarify a message * Fix some spells. * Some more fixes. * Fix a missing space. * Fix the other missing space. --------- Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com> --- .../effects/goblin_fruit_effects.json | 295 ++++++ .../itemgroups/goblin_fruit.json | 601 +++++++++++- .../Xedra_Evolved/items/armor/integrated.json | 32 + .../items/comestibles/goblin_fruits.json | 856 ++++++++++++++++++ data/mods/Xedra_Evolved/material.json | 16 + data/mods/Xedra_Evolved/morale_types.json | 5 + .../mutations/paraclesians/arvore_eocs.json | 2 +- .../mutations/paraclesians/homullus_eocs.json | 2 +- .../mutations/paraclesians/ierde_eocs.json | 2 +- .../paraclesians/salamander_eocs.json | 4 +- .../mutations/paraclesians/sylph_eocs.json | 2 +- .../mutations/paraclesians/undine_eocs.json | 2 +- .../mutations/playable_changeling.json | 55 ++ .../mutations/playable_changeling_eocs.json | 175 +++- .../Xedra_Evolved/mutations/temporary.json | 25 + .../spells/changeling_spells.json | 115 +++ .../Xedra_Evolved/spells/item_spells.json | 71 ++ 17 files changed, 2251 insertions(+), 9 deletions(-) diff --git a/data/mods/Xedra_Evolved/effects/goblin_fruit_effects.json b/data/mods/Xedra_Evolved/effects/goblin_fruit_effects.json index 467c545366a25..ae0ded75d11cf 100644 --- a/data/mods/Xedra_Evolved/effects/goblin_fruit_effects.json +++ b/data/mods/Xedra_Evolved/effects/goblin_fruit_effects.json @@ -242,5 +242,300 @@ "rating": "good", "show_intensity": false, "flags": [ "WALK_UNDERWATER", "GILLS" ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_stealth", + "name": [ "Unnoticed" ], + "desc": [ "You're beneath notice, unless they get too close of you." ], + "apply_message": "You find it hard to notice your own presence.", + "remove_message": "You become noticeable again.", + "rating": "good", + "enchantments": [ { "values": [ { "value": "STEALTH_MODIFIER", "add": 50 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_combat_skill_boost", + "name": [ "Violent reflection" ], + "desc": [ "You are mirroring a version of yourself that is more skilled at violence." ], + "apply_message": "Your mind fills with violence and the knowledge to use it.", + "remove_message": "Your level of violence returns to normal.", + "rating": "good", + "enchantments": [ + { + "skills": [ + { "value": "bashing", "add": 2 }, + { "value": "cutting", "add": 2 }, + { "value": "melee", "add": 2 }, + { "value": "throw", "add": 2 }, + { "value": "dodge", "add": 2 }, + { "value": "stabbing", "add": 2 }, + { "value": "unarmed", "add": 2 }, + { "value": "archery", "add": 2 }, + { "value": "gun", "add": 2 }, + { "value": "launcher", "add": 2 }, + { "value": "rifle", "add": 2 }, + { "value": "shotgun", "add": 2 }, + { "value": "smg", "add": 2 } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_craft_skill_boost", + "name": [ "Imitated skill" ], + "desc": [ "You're imitating yourself, if you were better at making things." ], + "apply_message": "You start imitating a more skilled artisan.", + "remove_message": "Your talent to imitate fades.", + "rating": "good", + "enchantments": [ + { + "skills": [ + { "value": "mechanics", "add": 2 }, + { "value": "tailor", "add": 2 }, + { "value": "computer", "add": 2 }, + { "value": "cooking", "add": 2 }, + { "value": "electronics", "add": 2 }, + { "value": "fabrication", "add": 2 }, + { "value": "chemistry", "add": 2 } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_immovable", + "name": [ "Immovable" ], + "desc": [ "You cannot be moved against your will by mundane means." ], + "apply_message": "You feel fixed in place!", + "remove_message": "You stumble a little as your immovability ceases.", + "rating": "good", + "removes_effects": [ "stunned", "dazed", "downed" ], + "enchantments": [ { "values": [ { "value": "KNOCKBACK_RESIST", "add": 100 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_dodge_instant", + "name": [ "Untouchable" ], + "desc": [ "For an instant, nothing can touch you." ], + "apply_message": "You start dodging everything that could touch you!", + "remove_message": "Your dodging abilities return to normal.", + "rating": "good", + "base_mods": { "dodge_mod": [ 100 ] }, + "flags": [ "UNCANNY_DODGE" ], + "removes_effects": [ "grabbed" ], + "enchantments": [ + { + "values": [ + { "value": "DODGE_CHANCE", "add": 100 }, + { "value": "RANGE_DODGE", "add": 100 }, + { "value": "BONUS_DODGE", "add": 15 } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_focus_boost", + "name": [ "Understanding" ], + "desc": [ "As long as it lasts, you will have an easier time learning new things." ], + "apply_message": "Everything feels a little easier to understand now.", + "remove_message": "Your mind returns to its regular level of understanding.", + "rating": "good", + "enchantments": [ { "values": [ { "value": "LEARNING_FOCUS", "add": 20 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_heal_after_sleep", + "name": [ "Eventual restful sleep" ], + "desc": [ "" ], + "max_intensity": 9999, + "rating": "good" + }, + { + "id": "effect_goblin_fruit_teleport", + "type": "effect_type", + "name": [ "Fractal teleportation" ], + "desc": [ "Your position constantly changes." ], + "apply_message": "You feel your position grow uncertain.", + "remove_message": "You stop teleporting all over the place.", + "rating": "good", + "show_intensity": false, + "enchantments": [ + { + "intermittent_activation": { "effects": [ { "frequency": "1 seconds", "spell_effects": [ { "id": "goblin_fruit_teleport_spell" } ] } ] } + } + ] + }, + { + "id": "goblin_fruit_teleport_spell", + "type": "SPELL", + "name": { "str": "fractal fruit teleport", "//~": "NO_I18N" }, + "description": { "str": "Makes the fractal goblin fruit.", "//~": "NO_I18N" }, + "effect": "short_range_teleport", + "shape": "blast", + "valid_targets": [ "none" ], + "flags": [ "NO_FAIL", "SILENT", "NO_LEGS" ], + "min_aoe": 2, + "max_aoe": 3, + "min_range": 2, + "max_range": 15, + "difficulty": 0, + "spell_class": "NONE" + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_climb", + "name": [ "Sticky climb" ], + "desc": [ "You can climb walls without trouble." ], + "apply_message": "Your extremities become sticky.", + "remove_message": "Your extremities stop being this sticky.", + "flags": [ "CLIMB_NO_LADDER", "WALL_CLING" ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_amplification_instant", + "name": [ "Pressurized amplification" ], + "desc": [ "Your muscles are filled with pressurized power!" ], + "apply_message": "Your muscles are filled with pressurized power!", + "decay_messages": [ [ "The pressure inside your muscles grows!", "good" ] ], + "remove_message": "The power leaves your muscles in an instant.", + "max_intensity": 10, + "int_add_val": 10, + "int_decay_step": -1, + "int_decay_tick": 6, + "base_mods": { "str_mod": [ 10 ] }, + "scaling_mods": { "str_mod": [ -1 ] }, + "rating": "good" + }, + { + "type": "effect_type", + "id": "goblin_fruit_carry_boost", + "name": [ "Lightened load" ], + "desc": [ "You find it easier to carry heavy charges." ], + "apply_message": "You feel lighter, as does everything you're carrying.", + "remove_message": "The weight of your belongings return to normal.", + "enchantments": [ { "values": [ { "value": "CARRY_WEIGHT", "add": 30000 } ] } ], + "rating": "good" + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_wild_travel_boost", + "name": [ "A path through the forest" ], + "desc": [ "You move a bit quicker through the wilds." ], + "apply_message": "Nearby vegetation becomes a little less daunting.", + "remove_message": "Traversing vegetation stops being easier.", + "rating": "good", + "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": "effect_type", + "id": "effect_goblin_fruit_slowing_armor", + "name": [ "The stone's endurance" ], + "desc": [ "You are more resistant to damage but move more slowly." ], + "apply_message": "You stiffen, becoming slower but more resistant to anything.", + "remove_message": "The stiffness quits your body.", + "rating": "mixed", + "show_in_info": true, + "base_mods": { "speed_mod": [ -10 ] }, + "enchantments": [ { "values": [ { "value": "ARMOR_ALL", "add": -10 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_social_boost", + "name": [ "Silver tongue" ], + "desc": [ "You are better at convincing others to do what you want." ], + "apply_message": "You feel more persuasive.", + "remove_message": "Your charisma returns to normal.", + "rating": "good", + "show_in_info": true, + "enchantments": [ + { + "values": [ + { "value": "SOCIAL_LIE", "add": 15 }, + { "value": "SOCIAL_PERSUADE", "add": 15 }, + { "value": "SOCIAL_INTIMIDATE", "add": 15 } + ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_altitude_speed", + "name": [ "Gust of wind" ], + "desc": [ "The winds are assisting your movements." ], + "apply_message": "You long for the skies as winds start blowing at you.", + "remove_message": "The skies lose their heightened luster.", + "rating": "good", + "show_in_info": true, + "enchantments": [ { "values": [ { "value": "SPEED", "add": { "math": [ "max( (u_val('pos_z') + 1) * 3, 0 )" ] } } ] } ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_cold_resist", + "name": [ "Shelter from the cold" ], + "desc": [ "You withstand the cold much better than most." ], + "apply_message": "You feel much more warm.", + "remove_message": "The warm feeling fades.", + "rating": "good", + "show_in_info": true, + "enchantments": [ + { "incoming_damage_mod": [ { "type": "cold", "multiply": -0.33 } ] }, + { "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": 30 } ] } + ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_craft_speed_boost", + "name": [ "Accelerated artistry" ], + "desc": [ "You make things quicker, unless someone else is looking." ], + "apply_message": "You feel better at making things, but only if nobody is watching you.", + "remove_message": "Your increased crafting quickness returns to normal.", + "rating": "good", + "show_in_info": true, + "enchantments": [ + { + "condition": { + "and": [ + { "math": [ "u_monsters_nearby('radius': 8, 'attitude': 'both') == 0" ] }, + { "math": [ "u_characters_nearby('radius': 8) == 0" ] } + ] + }, + "values": [ { "value": "CRAFTING_SPEED_MULTIPLIER", "multiply": 0.15 } ] + } + ] + }, + { + "type": "effect_type", + "id": "effect_goblin_fruit_cure_dreamless_cooldown", + "name": [ "Cloudy fruit aftertaste" ], + "desc": [ + "You can still faintly taste that cloudy fruit. Any cloudy fruit you might eat before the aftertaste ends won't have any effect." + ], + "show_in_info": true } ] diff --git a/data/mods/Xedra_Evolved/itemgroups/goblin_fruit.json b/data/mods/Xedra_Evolved/itemgroups/goblin_fruit.json index 1aa7156f78f14..b12bd407e6abe 100644 --- a/data/mods/Xedra_Evolved/itemgroups/goblin_fruit.json +++ b/data/mods/Xedra_Evolved/itemgroups/goblin_fruit.json @@ -2,6 +2,8 @@ { "type": "item_group", "id": "spell_spawned_goblin_fruit", + "//": "Contains all goblin fruits except for the cloudy fruit, which is noble-exclusive.", + "//2": "Using copy_from to not recopy the entire list multiple times is desired, but currently cause errors.", "subtype": "distribution", "entries": [ { "item": "goblin_fruit_healing", "prob": 1 }, @@ -20,7 +22,604 @@ { "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 } + { "item": "goblin_fruit_giant_growth", "prob": 1 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_wild_travel_boost", "prob": 1 }, + { "item": "goblin_fruit_slowing_armor", "prob": 1 }, + { "item": "goblin_fruit_social_boost", "prob": 1 }, + { "item": "goblin_fruit_heat_blast", "prob": 1 }, + { "item": "goblin_fruit_altitude_speed", "prob": 1 }, + { "item": "goblin_fruit_cold_resist", "prob": 1 }, + { "item": "goblin_fruit_craft_speed_boost", "prob": 1 }, + { "item": "goblin_fruit_call_rain", "prob": 1 }, + { "item": "goblin_fruit_animal_ignore", "prob": 1 }, + { "item": "goblin_fruit_mend_bone", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_ierde", + "//": "Contains all non-exclusive goblin fruits and the Ierde's exlusive fruits.", + "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 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_slowing_armor", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_arvore", + "//": "Contains all non-exclusive goblin fruits and the Arvore's exlusive fruits.", + "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 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_wild_travel_boost", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_homullus", + "//": "Contains all non-exclusive goblin fruits and the Homullus' exlusive fruits.", + "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 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_social_boost", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_salamander", + "//": "Contains all non-exclusive goblin fruits and the Salamander's exlusive fruits.", + "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 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_heat_blast", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_sylph", + "//": "Contains all non-exclusive goblin fruits and the Sylph's exlusive fruits.", + "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 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_altitude_speed", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_undine", + "//": "Contains all non-exclusive goblin fruits and the Undine's exlusive fruits.", + "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 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_cold_resist", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_brownie", + "//": "Contains all non-exclusive goblin fruits and the Brownie's exlusive fruits.", + "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 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_craft_speed_boost", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_selkie", + "//": "Contains all non-exclusive goblin fruits and the Selkie's exlusive fruits.", + "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 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_call_rain", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_pooka", + "//": "Contains all non-exclusive goblin fruits and the Pooka's exlusive fruits.", + "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 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_animal_ignore", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_trow", + "//": "Contains all non-exclusive goblin fruits and the Trow's exlusive fruits.", + "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 }, + { "item": "goblin_fruit_mana_restore", "prob": 1 }, + { "item": "goblin_fruit_stealth", "prob": 1 }, + { "item": "goblin_fruit_food", "prob": 1 }, + { "item": "goblin_fruit_soothing", "prob": 1 }, + { "item": "goblin_fruit_music", "prob": 1 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 1 }, + { "item": "goblin_fruit_immovable", "prob": 1 }, + { "item": "goblin_fruit_dodge_instant", "prob": 1 }, + { "item": "goblin_fruit_blood_gain", "prob": 1 }, + { "item": "goblin_fruit_blind_flash", "prob": 1 }, + { "item": "goblin_fruit_map", "prob": 1 }, + { "item": "goblin_fruit_adrenaline", "prob": 1 }, + { "item": "goblin_fruit_focus_boost", "prob": 1 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 1 }, + { "item": "goblin_fruit_fun", "prob": 1 }, + { "item": "goblin_fruit_no_spoil", "prob": 1 }, + { "item": "goblin_fruit_numbing", "prob": 1 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 1 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 1 }, + { "item": "goblin_fruit_teleport", "prob": 1 }, + { "item": "goblin_fruit_climb", "prob": 1 }, + { "item": "goblin_fruit_amplification_instant", "prob": 1 }, + { "item": "goblin_fruit_carry_boost", "prob": 1 }, + { "item": "goblin_fruit_mood_clear", "prob": 1 }, + { "item": "goblin_fruit_mend_bone", "prob": 1 } + ] + }, + { + "type": "item_group", + "id": "spell_spawned_goblin_fruit_noble", + "//": "Contains all non-exclusive goblin fruits and the Noble's exlusive fruits.", + "//2": "Can't use copy_from as the cloudy fruit needs to be much more rare than the rest.", + "subtype": "distribution", + "entries": [ + { "item": "goblin_fruit_healing", "prob": 3 }, + { "item": "goblin_fruit_illness", "prob": 3 }, + { "item": "goblin_fruit_attack_speed", "prob": 3 }, + { "item": "goblin_fruit_pain", "prob": 3 }, + { "item": "goblin_fruit_awake", "prob": 3 }, + { "item": "goblin_fruit_water", "prob": 3 }, + { "item": "goblin_fruit_purge_blood", "prob": 3 }, + { "item": "goblin_fruit_dodge", "prob": 3 }, + { "item": "goblin_fruit_night_vision", "prob": 3 }, + { "item": "goblin_fruit_no_bleed", "prob": 3 }, + { "item": "goblin_fruit_perception", "prob": 3 }, + { "item": "goblin_fruit_no_drunk", "prob": 3 }, + { "item": "goblin_fruit_no_rotten_food", "prob": 3 }, + { "item": "goblin_fruit_feather_fall", "prob": 3 }, + { "item": "goblin_fruit_super_clairvoyance", "prob": 3 }, + { "item": "goblin_fruit_water_breathing", "prob": 3 }, + { "item": "goblin_fruit_giant_growth", "prob": 3 }, + { "item": "goblin_fruit_mana_restore", "prob": 3 }, + { "item": "goblin_fruit_stealth", "prob": 3 }, + { "item": "goblin_fruit_food", "prob": 3 }, + { "item": "goblin_fruit_soothing", "prob": 3 }, + { "item": "goblin_fruit_music", "prob": 3 }, + { "item": "goblin_fruit_combat_skill_boost", "prob": 3 }, + { "item": "goblin_fruit_craft_skill_boost", "prob": 3 }, + { "item": "goblin_fruit_immovable", "prob": 3 }, + { "item": "goblin_fruit_dodge_instant", "prob": 3 }, + { "item": "goblin_fruit_blood_gain", "prob": 3 }, + { "item": "goblin_fruit_blind_flash", "prob": 3 }, + { "item": "goblin_fruit_map", "prob": 3 }, + { "item": "goblin_fruit_adrenaline", "prob": 3 }, + { "item": "goblin_fruit_focus_boost", "prob": 3 }, + { "item": "goblin_fruit_spawn_more_fruits", "prob": 3 }, + { "item": "goblin_fruit_fun", "prob": 3 }, + { "item": "goblin_fruit_no_spoil", "prob": 3 }, + { "item": "goblin_fruit_numbing", "prob": 3 }, + { "item": "goblin_fruit_spawn_shadows", "prob": 3 }, + { "item": "goblin_fruit_heal_after_sleep", "prob": 3 }, + { "item": "goblin_fruit_teleport", "prob": 3 }, + { "item": "goblin_fruit_climb", "prob": 3 }, + { "item": "goblin_fruit_amplification_instant", "prob": 3 }, + { "item": "goblin_fruit_carry_boost", "prob": 3 }, + { "item": "goblin_fruit_mood_clear", "prob": 3 }, + { "item": "goblin_fruit_cure_dreamless", "prob": 1 } ] } ] diff --git a/data/mods/Xedra_Evolved/items/armor/integrated.json b/data/mods/Xedra_Evolved/items/armor/integrated.json index 1d2586ec9422a..b67e1c75c24c8 100644 --- a/data/mods/Xedra_Evolved/items/armor/integrated.json +++ b/data/mods/Xedra_Evolved/items/armor/integrated.json @@ -919,5 +919,37 @@ } ], "melee_damage": { "bash": 6 } + }, + { + "id": "internal_mp3_fruit", + "type": "TOOL_ARMOR", + "copy-from": "fake_item", + "name": { "str": "The fruit's song" }, + "description": "The song contained in the fruit is now struck in your head until it goes away. Fortunately this song is enjoyable, increasing your mood while it lasts.", + "use_action": [ + { + "target": "internal_mp3_fruit_on", + "menu_text": "Hear the song", + "msg": "The fruit's melody fills your mind.", + "type": "transform", + "active": true, + "need_charges": 0, + "need_charges_msg": "Something is preventing this fruit from working. Please report it on github." + } + ], + "charges_per_use": 0, + "flags": [ "INTEGRATED", "UNBREAKABLE", "PERSONAL", "NO_REPAIR", "ALLOWS_NATURAL_ATTACKS", "USES_BIONIC_POWER" ] + }, + { + "id": "internal_mp3_fruit_on", + "type": "TOOL_ARMOR", + "copy-from": "fake_item", + "name": { "str": "The fruit's song" }, + "description": "The song contained in the fruit is now struck in your head until it goes away. Fortunately this song is enjoyable, increasing your mood while it lasts.", + "charges_per_use": 0, + "flags": [ "INTEGRATED", "UNBREAKABLE", "PERSONAL", "NO_REPAIR", "ALLOWS_NATURAL_ATTACKS" ], + "power_draw": "0 W", + "revert_to": "internal_mp3", + "tick_action": [ "MP3_ON" ] } ] diff --git a/data/mods/Xedra_Evolved/items/comestibles/goblin_fruits.json b/data/mods/Xedra_Evolved/items/comestibles/goblin_fruits.json index 5879e950367c1..397ae82ec050e 100644 --- a/data/mods/Xedra_Evolved/items/comestibles/goblin_fruits.json +++ b/data/mods/Xedra_Evolved/items/comestibles/goblin_fruits.json @@ -429,5 +429,861 @@ }, { "u_lose_trait": "GOBLIN_FRUIT_GIANT_GROWTH" } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_mana_restore", + "name": { "str": "fizzy goblin fruit" }, + "description": "This small brown goblin fruit constantly forms bubbles that erupt from its skin. Despite that, its surface remains smooth at all times. It has a subtle, sugary smell.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "brown", + "weight": "134 g", + "volume": "122 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_MANA" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_MANA", + "effect": [ { "u_cast_spell": { "id": "potion_recover_mana_xe", "min_level": 4, "max_level": 6 } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_stealth", + "name": { "str": "unnoticeable goblin fruit" }, + "description": "This goblin fruit is hard to perceive. You think it's black, you believe it's small and you're certain it's near you, but all its other details slip from your memory the instant you stop looking at this fruit.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "black", + "weight": "61 g", + "volume": "56 ml", + "fun": 0, + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_STEALTH" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_STEALTH", + "effect": [ { "u_add_effect": "effect_goblin_fruit_stealth", "duration": { "math": [ "100 + rand(50)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_food", + "name": { "str": "heavy goblin fruit" }, + "description": "This green goblin fruit is much heavier than it should be. Its scent is heavy, pressing down your nose and throat as you smell it.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "light_green", + "weight": "2816 g", + "volume": "256 ml", + "calories": 1050, + "vitamins": [ [ "vitC", 100 ], [ "calcium", 100 ], [ "iron", 100 ], [ "fruit_allergen", 1 ] ], + "material": [ "fruit_heavy" ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_soothing", + "name": { "str": "soothing goblin fruit" }, + "description": "This sky blue fruit slows the thoughts racing in your mind a little as you stare at it, making you feel sightly more calm until you put it away.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "light_blue", + "weight": "202 g", + "volume": "184 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_SOOTHING" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_SOOTHING", + "effect": [ + { "math": [ "goblin_fruit_soothe_duration = (10000 + rand(5000))" ] }, + { "u_add_effect": "took_xanax", "duration": { "math": [ "goblin_fruit_soothe_duration" ] } }, + { "u_add_effect": "took_prozac", "duration": { "math": [ "goblin_fruit_soothe_duration" ] } }, + { "u_add_effect": "took_thorazine", "duration": { "math": [ "goblin_fruit_soothe_duration" ] } } + ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_music", + "name": { "str": "melodious goblin fruit" }, + "description": "This sinewy, beak-shaped fruit produces a faint melody. This melody grows a little louder when you bring the fruit next to your mouth.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "magenta", + "weight": "260 g", + "volume": "237 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_MUSIC" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_MUSIC", + "condition": { "not": { "u_has_trait": "GOBLIN_FRUIT_MUSIC" } }, + "effect": [ + { "u_message": "The fruit's melody fills your head.", "type": "good" }, + { "u_add_trait": "GOBLIN_FRUIT_MUSIC" }, + { "run_eocs": "EOC_GOBLIN_FRUIT_MUSIC_START" }, + { "run_eocs": "EOC_GOBLIN_FRUIT_MUSIC_REMOVE", "time_in_future": { "math": [ "10000 + rand(10000)" ] } } + ], + "false_effect": [ { "u_message": "Another song is already struck in your head and won't share its space with another." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_MUSIC_START", + "effect": { + "u_run_inv_eocs": "all", + "search_data": [ { "id": "internal_mp3_fruit", "worn_only": true } ], + "true_eocs": [ { "id": "EOC_GOBLIN_FRUIT_MUSIC_ACTIVATE", "effect": [ { "u_activate": "transform" } ] } ] + } + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_MUSIC_REMOVE", + "effect": [ { "u_message": "The song in your head fades.", "type": "info" }, { "u_lose_trait": "GOBLIN_FRUIT_MUSIC" } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_combat_skill_boost", + "name": { "str": "mirror goblin fruit" }, + "description": "You can see your reflection in the mirror-like surface of this fruit. This reflection of you seems angrier, closer to a feral human than to your own image.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "white", + "weight": "331 g", + "volume": "301 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_COMBAT_SKILL_BOOST" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_COMBAT_SKILL_BOOST", + "effect": [ { "u_add_effect": "effect_goblin_fruit_combat_skill_boost", "duration": { "math": [ "2000 + rand(3000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_craft_skill_boost", + "name": { "str": "camouflaged goblin fruit" }, + "description": "The many colors of this oblong fruit shift to mimic what's behind it, trying to imitate other things with the best of its ability.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "red", + "weight": "244 g", + "volume": "222 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_CRAFT_SKILL_BOOST" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_CRAFT_SKILL_BOOST", + "effect": [ { "u_add_effect": "effect_goblin_fruit_craft_skill_boost", "duration": { "math": [ "15000 + rand(5000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_immovable", + "name": { "str": "bitter goblin fruit" }, + "description": "This fruit wrapped in barbed vines fills you with bitterness as you hold it. It slightly resists inertia as you move it, as if it moved through molasses.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "light_gray", + "weight": "202 g", + "volume": "184 ml", + "fun": -10, + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_IMMOVABLE" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_IMMOVABLE", + "effect": [ { "u_add_effect": "effect_goblin_fruit_immovable", "duration": { "math": [ "90 + rand(45)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_dodge_instant", + "name": { "str": "Evasive goblin fruit" }, + "description": "This yellow half-liquid fruit is hard to hold, as it actively tries to escape your grasp. You hope it won't try to escape your innards after you eat it.", + "copy-from": "goblin_fruit_abstract", + "//": "When possible, this fruit should take longer to eat, as it literally opposes your attempts to eat it.", + "comestible_type": "FOOD", + "color": "yellow_cyan", + "weight": "169 g", + "volume": "154 ml", + "fun": -1, + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_DODGE_INSTANT" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_DODGE_INSTANT", + "effect": [ { "u_add_effect": "effect_goblin_fruit_dodge_instant", "duration": { "math": [ "10 + rand(5)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_blood_gain", + "name": { "str": "vein-filled goblin fruit" }, + "description": "This translucent fruit is filled with a network of tubes not unlike veins and arteries. Judging by the way its brown surface turns blue when bruised, it probably contains a fluid similar to blood.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "brown", + "weight": "279 g", + "volume": "254 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_BLOOD_GAIN" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_BLOOD_GAIN", + "condition": { "u_has_any_trait": [ "VAMPIRE", "VAMPIRE2", "VAMPIRE3", "VAMPIRE4", "BLOOD_DRINKER" ] }, + "//": "If the regular and the stolen bloods of vampires ever become one and the same, remove the below blood gain for vampires.", + "//2": "This fruit cannot and will not allow vampires to survive without blood. It will only fill their reserves of mundane blood, as currently vampires can't lose stolen blood from blood loss.", + "effect": [ + { "u_message": "This isn't the blood you need." }, + { "math": [ "u_vitamin('blood')", "+=", "5000" ] }, + { "math": [ "u_vitamin('redcells')", "+=", "5000" ] } + ], + "false_effect": [ + { "u_message": "You feel a pressure in your veins, then it passes." }, + { "math": [ "u_vitamin('blood')", "+=", "5000" ] }, + { "math": [ "u_vitamin('redcells')", "+=", "5000" ] } + ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_blind_flash", + "name": { "str": "dazzling goblin fruit" }, + "description": "This fruit shines a light bright enough to be painful to look at. From the little you can see, it appears to be a purple ovoid fruit.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "magenta", + "weight": "279 g", + "volume": "254 ml", + "flags": [ "FREEZERBURN", "NO_AUTO_CONSUME", "LIGHT_650" ], + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_BLIND_FLASH" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_BLIND_FLASH", + "effect": [ { "u_cast_spell": { "id": "goblin_fruit_blind_flash", "min_level": 0, "max_level": 0 } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_map", + "name": { "str": "rotating goblin fruit" }, + "description": "This spiraled fruit ceaselessly spins on itself. No matter how tight your grasp, you cannot stop its spinning.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "blue", + "weight": "224 g", + "volume": "204 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_MAP" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_MAP", + "effect": [ { "u_cast_spell": { "id": "goblin_fruit_map_reveal" } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_adrenaline", + "name": { "str": "pulsating goblin fruit" }, + "description": "This fruit pulses at regular intervals like a beating heart. As you hold it its rhythm changes, mimicking your own heart.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "green", + "weight": "324 g", + "volume": "295 ml", + "consumption_effect_on_conditions": [ "EOC_GOLBIN_FRUIT_ADRENALINE" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOLBIN_FRUIT_ADRENALINE", + "effect": [ { "u_add_effect": "adrenaline", "duration": "20 minutes" } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_focus_boost", + "name": { "str": "understandable goblin fruit" }, + "description": "You understand everything about this pale green fruit. You know that it will taste like an apple and you know that it will have the inner structure of a kiwi, the texture of a durian, the smell of a dragon fruit and the colors of an orange. you also know that eating it will help you understand anything you could try to learn for a few hours.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "green_white", + "weight": "255 g", + "volume": "231 ml", + "consumption_effect_on_conditions": [ "EOC_GOLBIN_FRUIT_FOCUS_BOOST" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOLBIN_FRUIT_FOCUS_BOOST", + "effect": [ { "u_add_effect": "effect_goblin_fruit_focus_boost", "duration": { "math": [ "15000 + rand(5000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_spawn_more_fruits", + "name": { "str": "pupating goblin fruit" }, + "description": "This dark red half-liquid fruit fills you with dread and sadness as it endlessly tries to split but fails to do so. You sense that it wants you to eat it, but you're not sure if it would be worth it.", + "copy-from": "goblin_fruit_abstract", + "//": "The idea is that this fruit needs to feed on happiness to create other goblin fruits and it can't do that unless you eat it, with predictable results on your own happiness.", + "comestible_type": "FOOD", + "color": "dark_gray_red", + "weight": "381 g", + "volume": "350 ml", + "fun": -30, + "vitamins": [ [ "vitC", 10 ], [ "calcium", 10 ], [ "iron", 10 ], [ "fruit_allergen", 1 ], [ "bad_food", 25 ] ], + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_SPAWN_MORE_FRUITS" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_SPAWN_MORE_FRUITS", + "effect": [ + { + "u_spawn_item": "spell_spawned_goblin_fruit", + "count": { "math": [ "rng(2,3)" ] }, + "use_item_group": true, + "suppress_message": true + }, + { + "u_message": "Some hard chunks of that horrible fruit jump from your mouth and turn into fresh goblin fruits.", + "type": "info" + } + ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_fun", + "name": { "str": "patchwork goblin fruit" }, + "description": "This fruit is closer to an art project than to a fruit. Numerous stitches hold together red-tinted parts of many different fruits so tightly it acts as a single, consistent whole.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "light_red", + "weight": "379 g", + "volume": "345 ml", + "fun": 30 + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_no_spoil", + "name": { "str": "pristine goblin fruit" }, + "description": "This fruit has a perfectly unblemished surface that cannot be tarnished or dirtied, no matter what happens to it.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "yellow_cyan", + "weight": "222 g", + "volume": "202 ml", + "spoils_in": 0 + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_numbing", + "name": { "str": "numbing goblin fruit" }, + "description": "This gray dented fruit numbs your fingers as you hold it and its smell numbs your nose the same way.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "light_gray", + "weight": "244 g", + "volume": "222 ml", + "fun": 0, + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_NUMB" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_NUMB", + "condition": { "not": { "u_has_trait": "NUMB" } }, + "effect": [ + { "u_message": "Everything goes numb.", "type": "good" }, + { "u_add_trait": "NUMB" }, + { "run_eocs": "EOC_GOBLIN_FRUIT_NUMB_REMOVE", "time_in_future": { "math": [ "2000 + rand(3000)" ] } } + ], + "false_effect": [ { "u_message": "You don't feel more numb than you currently are." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_NUMB_REMOVE", + "effect": [ { "u_message": "The numbness goes away.", "type": "info" }, { "u_lose_trait": "NUMB" } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_spawn_shadows", + "name": { "str": "whispering goblin fruit" }, + "description": "This fruit is similar to a sphere of smoke. Faint sounds come from this fruit. They almost sound like whispers.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "dark_gray", + "weight": "275 g", + "volume": "250 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_SPAWN_SHADOWS" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_SPAWN_SHADOWS", + "effect": [ + { + "u_spawn_monster": "mon_dream_shadow_player", + "real_count": { "math": [ "2 + rand(3)" ] }, + "min_radius": 0, + "max_radius": 3, + "lifespan": { "math": [ "2500 + rand(2500)" ] } + }, + { "u_message": "A few shadows emerge from the ground near you.", "type": "info" } + ] + }, + { + "id": "mon_dream_shadow_player", + "copy-from": "mon_dream_shadow", + "type": "MONSTER", + "name": "shadow", + "default_faction": "player" + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_heal_after_sleep", + "name": { "str": "recoloring goblin fruit" }, + "description": "This rectangle fruit smells of lavender and has a mushy texture. Its colors grow more vibrant for a second when you blink.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "green_white", + "weight": "238 g", + "volume": "217 ml", + "flags": [ "FREEZERBURN", "NO_AUTO_CONSUME", "MUSHY" ], + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_HEAL_AFTER_SLEEP" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_HEAL_AFTER_SLEEP", + "effect": [ + { + "u_add_effect": "effect_goblin_fruit_heal_after_sleep", + "duration": "PERMANENT", + "intensity": { "math": [ "u_effect_intensity('effect_goblin_fruit_heal_after_sleep') + 1" ] } + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_HEAL_AFTER_SLEEP_HEALING", + "eoc_type": "EVENT", + "required_event": "character_wakes_up", + "condition": { "u_has_effect": "effect_goblin_fruit_heal_after_sleep" }, + "effect": [ + { "math": [ "u_hp('ALL') += u_effect_intensity('effect_goblin_fruit_heal_after_sleep') * (15 + rand(5))" ] }, + { "u_message": "Some of the aches of yesterday are gone." }, + { "u_lose_effect": "effect_goblin_fruit_heal_after_sleep" } + ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_teleport", + "name": { "str": "fractal goblin fruit" }, + "description": "This spherical fruit is made of smaller versions of itself, which are also made of smaller versions of themselves. Should you have a microscope, you could look at the fractal as it becomes smaller and smaller.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "blue", + "weight": "458 g", + "volume": "417 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_TELEPORT" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_TELEPORT", + "effect": [ { "u_add_effect": "effect_goblin_fruit_teleport", "duration": { "math": [ "2 + rand(5)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_climb", + "name": { "str": "sticky goblin fruit" }, + "description": "Reeking of glass cleaner, this disk-shaped fruit sticks to anything it touches. Despite this, you have no issue removing any dust sticking to it.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "light_blue", + "weight": "359 g", + "volume": "327 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_CLIMB" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_CLIMB", + "effect": [ { "u_add_effect": "effect_goblin_fruit_climb", "duration": { "math": [ "3000 + rand(1000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_amplification_instant", + "name": { "str": "pressurized goblin fruit" }, + "description": "This capsule-shaped goblin fruit behaves as a pressurized tank when you press its surface with your finger. Fortunately, it doesn't appear to be able to explode if pierced or bitten.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "brown", + "weight": "359 g", + "volume": "327 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_AMPLIFICATION_INSTANT" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_AMPLIFICATION_INSTANT", + "effect": [ { "u_add_effect": "effect_goblin_fruit_amplification_instant", "duration": "60 seconds", "intensity": 10 } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_carry_boost", + "name": { "str": "balloon goblin fruit" }, + "description": "This fruit is nothing more than a thin layer of fruit filled with air. It has a heady aroma that makes you a little lightheaded.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "yellow", + "calories": 5, + "weight": "25 g", + "volume": "227 ml", + "material": [ "fruit_light" ], + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_CARRY_BOOST" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_CARRY_BOOST", + "effect": [ { "u_add_effect": "goblin_fruit_carry_boost", "duration": { "math": [ "8000 + rand(8000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_mood_clear", + "name": { "str": "boring goblin fruit" }, + "description": "This fruit is the most boring thing you've ever seen. Everything about it is boring: its drab dark brown color, its smell, its lack of feature, even its taste is boring. It's not a good fruit. It's not a bad fruit. It's just boring.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "brown", + "fun": 0, + "weight": "255 g", + "volume": "232 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_MOOD_CLEAR" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_MOOD_CLEAR", + "effect": [ + { + "switch": { "math": [ "u_val('morale')" ] }, + "cases": [ + { "case": -100, "effect": { "u_add_morale": "morale_boring_fruit", "bonus": 100, "max_bonus": 100 } }, + { "case": -75, "effect": { "u_add_morale": "morale_boring_fruit", "bonus": 75, "max_bonus": 75 } }, + { "case": -50, "effect": { "u_add_morale": "morale_boring_fruit", "bonus": 50, "max_bonus": 50 } }, + { "case": -25, "effect": { "u_add_morale": "morale_boring_fruit", "bonus": 25, "max_bonus": 25 } }, + { "case": 25, "effect": { "u_add_morale": "morale_boring_fruit", "bonus": -25, "max_bonus": -25 } }, + { "case": 50, "effect": { "u_add_morale": "morale_boring_fruit", "bonus": -50, "max_bonus": -50 } }, + { "case": 75, "effect": { "u_add_morale": "morale_boring_fruit", "bonus": -75, "max_bonus": -75 } }, + { "case": 100, "effect": { "u_add_morale": "morale_boring_fruit", "bonus": -100, "max_bonus": -100 } } + ] + } + ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_wild_travel_boost", + "name": { "str": "mud-covered goblin fruit" }, + "description": "This fruit is always covered in fresh mud. You try to wipe it away, but it always come back.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "brown", + "weight": "304 g", + "volume": "277 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_WILD_TRAVEL_BOOST" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_WILD_TRAVEL_BOOST", + "effect": [ { "u_add_effect": "effect_goblin_fruit_wild_travel_boost", "duration": { "math": [ "3000 + rand(4000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_slowing_armor", + "name": { "str": "cavernous goblin fruit" }, + "description": "This fruit has the shape of a hollow cylinder. It has a notable smell of freshly-upturned earth.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "brown", + "weight": "304 g", + "volume": "277 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_SLOWING_ARMOR" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_SLOWING_ARMOR", + "effect": [ { "u_add_effect": "effect_goblin_fruit_slowing_armor", "duration": { "math": [ "400 + rand(200)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_social_boost", + "name": { "str": "arguing goblin fruit" }, + "description": "This fruit reminds you of a small bowling ball. You can hear it as it tries to convince you to not eat it. It won't succeed, right?", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "blue_red", + "weight": "221 g", + "volume": "201 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_SOCIAL_BOOST" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_SOCIAL_BOOST", + "effect": [ { "u_add_effect": "effect_goblin_fruit_social_boost", "duration": { "math": [ "1200 + rand(1200)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_heat_blast", + "name": { "str": "urchin goblin fruit" }, + "description": "This spherical fruit bears many spines, yet all of of them are dulled. It smells faintly of cinnamon and aftershave.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "red", + "weight": "331 g", + "volume": "301 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_HEAT_BLAST" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_HEAT_BLAST", + "effect": [ { "u_cast_spell": { "id": "goblin_fruit_heat_blasts", "min_level": 0, "max_level": 0 } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_altitude_speed", + "name": { "str": "rushing goblin fruit" }, + "description": "This pale fruit is surrounded by small lines of wind revolving around it. The lines grow thicker the further the fruit is from the ground.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "white", + "weight": "188 g", + "volume": "171 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_ALTITUDE_SPEED" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_ALTITUDE_SPEED", + "effect": [ { "u_add_effect": "effect_goblin_fruit_altitude_speed", "duration": { "math": [ "3000 + rand(2000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_cold_resist", + "name": { "str": "sapphire goblin fruit" }, + "description": "This fruit is easily mistakable for a fist-sized sapphire. Its color, rigidity and facets bring to mind a gemstone, unlike its green stem.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "blue", + "weight": "259 g", + "volume": "236 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_COLD_RESIST" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_COLD_RESIST", + "effect": [ { "u_add_effect": "effect_goblin_fruit_cold_resist", "duration": { "math": [ "2500 + rand(3000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_craft_speed_boost", + "name": { "str": "shy goblin fruit" }, + "description": "This fruit shaped akin to a chunk torn from a beehive is warm, but becomes cold as long as anyone is looking at it. It has a strong odor, between maple and oak, but only when unobserved.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "green", + "weight": "302 g", + "volume": "275 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_CRAFT_SPEED_BOOST" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_CRAFT_SPEED_BOOST", + "effect": [ { "u_add_effect": "effect_goblin_fruit_craft_speed_boost", "duration": { "math": [ "5000 + rand(10000)" ] } } ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_call_rain", + "name": { "str": "weeping goblin fruit" }, + "description": "This blue tear-shaped fruit drips with water. You try to collect it, but it fades away before touching the container.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "blue", + "weight": "259 g", + "volume": "236 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_CALL_RAIN" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_CALL_RAIN", + "condition": { "math": [ "weather('temperature') > from_fahrenheit( 31 )" ] }, + "effect": [ { "run_eocs": "EOC_GOBLIN_FRUIT_CALL_RAIN_TRUE" } ], + "false_effect": [ { "u_message": "A few droplets fall from the sky, but nothing more happen.", "type": "info" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_CALL_RAIN_TRUE", + "effect": [ + { "run_eocs": [ "EOC_GOBLIN_FRUIT_START_RAIN" ] }, + { "run_eocs": "EOC_GOBLIN_FRUIT_STOP_RAIN", "time_in_future": { "math": [ "2500 + rand(1000)" ] } }, + { "u_message": "A light drizzle starts falling from the sky.", "type": "info" } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_START_RAIN", + "effect": [ { "math": [ "magic_weather_light_drizzle = 1" ] }, "next_weather" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_STOP_RAIN", + "effect": [ + { "math": [ "magic_weather_light_drizzle = 0" ] }, + "next_weather", + { "u_message": "The drizzle the fruit caused ends.", "type": "info" } + ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_animal_ignore", + "name": { "str": "furry goblin fruit" }, + "description": "This fruit what a kiwi would be if kiwi had decimeter-long beige fur. It smells of steel and lilies.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "brown", + "weight": "314 g", + "volume": "286 ml", + "fun": -3, + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_ANIMAL_IGNORE" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_ANIMAL_IGNORE", + "condition": { "not": { "u_has_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" } }, + "effect": [ + { "u_message": "Nearby animals tolerate your presence a little more.", "type": "good" }, + { "u_add_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" }, + { "run_eocs": "EOC_GOBLIN_FRUIT_ANIMAL_IGNORE_REMOVE", "time_in_future": { "math": [ "12500 + rand(5000)" ] } } + ], + "false_effect": [ { "u_message": "Animals can't tolerate your presence more than they are currently doing." } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_ANIMAL_IGNORE_REMOVE", + "condition": { "u_has_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" }, + "effect": [ + { "u_message": "Nearby animals stop ignoring your presence.", "type": "info" }, + { "u_lose_trait": "GOBLIN_FRUIT_ANIMAL_IGNORE" } + ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_mend_bone", + "name": { "str": "remolding goblin fruit" }, + "description": "This gray fruit is hard to pierce, as it reshapes itself to close any hole you make in it. Ironically, the fruit keeps tearing its surface apart, making its reshaping a sisyphean task.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "light_gray", + "weight": "330 g", + "volume": "300 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_MEND_BONE" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_MEND_BONE", + "//": "Unbreaks the first broken limb it finds, then heals it. No effect if you don't have broken limbs.", + "condition": { "math": [ "u_hp('arm_l') == 0" ] }, + "effect": [ + { "math": [ "u_hp('arm_l')", "+=", "30" ] }, + { "u_message": "The bones of your left arm mend together in an instant!", "type": "good" } + ], + "false_effect": [ + { + "if": { "math": [ "u_hp('arm_r') == 0" ] }, + "then": [ + { "math": [ "u_hp('arm_r')", "+=", "30" ] }, + { "u_message": "The bones of your right arm mend together in an instant!", "type": "good" } + ], + "else": { + "if": { "math": [ "u_hp('leg_l') == 0" ] }, + "then": [ + { "math": [ "u_hp('leg_l')", "+=", "30" ] }, + { "u_message": "The bones of your left leg mend together in an instant!", "type": "good" } + ], + "else": { + "if": { "math": [ "u_hp('leg_r') == 0" ] }, + "then": [ + { "math": [ "u_hp('leg_r')", "+=", "30" ] }, + { "u_message": "The bones of your right leg mend together in an instant!", "type": "good" } + ], + "else": { "u_message": "You feel your bones itch for a moment, but nothing happens.", "type": "info" } + } + } + } + ] + }, + { + "type": "COMESTIBLE", + "id": "goblin_fruit_cure_dreamless", + "name": { "str": "cloudy goblin fruit" }, + "description": "This fruit looks like a crystal ball filled with clouds. When you look into it, you see fragments of your most intense dreams.", + "copy-from": "goblin_fruit_abstract", + "comestible_type": "FOOD", + "color": "light_blue", + "weight": "220 g", + "volume": "200 ml", + "consumption_effect_on_conditions": [ "EOC_GOBLIN_FRUIT_CURE_DREAMLESS" ] + }, + { + "type": "effect_on_condition", + "id": "EOC_GOBLIN_FRUIT_CURE_DREAMLESS", + "//": "Only works on those able to get spell dreams. Cures dreamless. For the dreaming classless, it will force the eater-dreamer dream to happen. For eater and dreamers, it will force the dreamsmith-inventor dream to happen. For those with 2 classes, it gives either a dreamer or a eater spell next wake up depending on their chosen classes. It's not possible to benefit from its effect more than one time per season.", + "condition": { + "u_has_any_trait": [ + "CHANGELING_MAGIC", + "NATIVE_SHAPESHIFTER", + "LILIN_TRAITS", + "GRACKEN", + "ARVORE", + "IERDE", + "HOMULLUS", + "SALAMANDER", + "SYLPH", + "UNDINE", + "VAMPIRE" + ] + }, + "effect": [ { "u_message": "Not even the power of this fruit could grant you access to dream magic.", "type": "bad" } ], + "false_effect": [ + { + "if": { "u_has_effect": "effect_goblin_fruit_cure_dreamless_cooldown" }, + "then": [ + { + "u_message": "Your dreams are still digesting another cloudy fruit, preventing this one from having any effect.", + "type": "bad" + } + ], + "else": { + "if": { "u_has_trait": "DREAMLESS" }, + "then": [ + { "u_lose_trait": "DREAMLESS" }, + { "u_message": "Your mind fills with dreams of an intensity you have never seen before!", "type": "good" }, + { "u_add_effect": "effect_goblin_fruit_cure_dreamless_cooldown", "duration": "90 days" } + ], + "else": { + "if": { "and": [ { "not": { "u_has_trait": "EATER" } }, { "not": { "u_has_trait": "DREAMER" } } ] }, + "then": [ + { "math": [ "eater_dreamer_sequence = 5" ] }, + { "math": [ "magic_potential = 1" ] }, + { "u_message": "Your mind fills with oddly real dreams!", "type": "good" }, + { "u_add_effect": "effect_goblin_fruit_cure_dreamless_cooldown", "duration": "90 days" } + ], + "else": { + "if": { "and": [ { "not": { "u_has_trait": "INVENTOR" } }, { "not": { "u_has_trait": "DREAMSMITH" } } ] }, + "then": [ + { "math": [ "inventor_dreamsmith_sequence = 7" ] }, + { "math": [ "magic_potential = 1" ] }, + { "u_message": "Your mind fills with dreams you could make real!", "type": "good" }, + { "u_add_effect": "effect_goblin_fruit_cure_dreamless_cooldown", "duration": "90 days" } + ], + "else": { + "if": { "u_has_trait": "EATER" }, + "then": [ + { "math": [ "xe_eater_leveling++" ] }, + { "u_message": "You feel your Eater potential grow!", "type": "good" }, + { "u_add_effect": "effect_goblin_fruit_cure_dreamless_cooldown", "duration": "90 days" } + ], + "else": [ + { "math": [ "xe_dreamer_leveling++" ] }, + { "u_message": "You feel your Dreamer potential grow!", "type": "good" }, + { "u_add_effect": "effect_goblin_fruit_cure_dreamless_cooldown", "duration": "90 days" } + ] + } + } + } + } + } + ] } ] diff --git a/data/mods/Xedra_Evolved/material.json b/data/mods/Xedra_Evolved/material.json index 27bf672191ed2..a84da9f5918fb 100644 --- a/data/mods/Xedra_Evolved/material.json +++ b/data/mods/Xedra_Evolved/material.json @@ -289,5 +289,21 @@ "bash_dmg_verb": "shaken", "cut_dmg_verb": "rippled", "resist": { "bash": 6, "cut": 3, "acid": 20, "heat": 2, "bullet": 3 } + }, + { + "type": "material", + "id": "fruit_heavy", + "name": "Fruit Matter", + "copy-from": "fruit", + "//": "Identical to regular fruit matter but 10 times as heavy.", + "density": 11 + }, + { + "type": "material", + "id": "fruit_light", + "name": "Fruit Matter", + "copy-from": "fruit", + "//": "Identical to regular fruit matter but 10 times as light.", + "density": 0.11 } ] diff --git a/data/mods/Xedra_Evolved/morale_types.json b/data/mods/Xedra_Evolved/morale_types.json index 043c5a4d459a1..a7fcdd5a053c0 100644 --- a/data/mods/Xedra_Evolved/morale_types.json +++ b/data/mods/Xedra_Evolved/morale_types.json @@ -33,5 +33,10 @@ "id": "morale_ierde_meditation", "type": "morale_type", "text": "Certainty of stone" + }, + { + "id": "morale_boring_fruit", + "type": "morale_type", + "text": "Boring aftertaste" } ] diff --git a/data/mods/Xedra_Evolved/mutations/paraclesians/arvore_eocs.json b/data/mods/Xedra_Evolved/mutations/paraclesians/arvore_eocs.json index 20c78c9bd2969..5d235de50ef2f 100644 --- a/data/mods/Xedra_Evolved/mutations/paraclesians/arvore_eocs.json +++ b/data/mods/Xedra_Evolved/mutations/paraclesians/arvore_eocs.json @@ -396,7 +396,7 @@ { "test_eoc": "EOC_CONDITION_CHECK_ARVORE_IN_THE_WILD" } ] }, - "effect": [ { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } ], + "effect": { "u_spawn_item": "spell_spawned_goblin_fruit_arvore", "use_item_group": true, "suppress_message": true }, "false_effect": [ { "u_message": "You must be surrounded by the wild to call forth a goblin fruit.", "type": "bad" } ] }, { diff --git a/data/mods/Xedra_Evolved/mutations/paraclesians/homullus_eocs.json b/data/mods/Xedra_Evolved/mutations/paraclesians/homullus_eocs.json index cbfac256a4cef..36d6ba280a672 100644 --- a/data/mods/Xedra_Evolved/mutations/paraclesians/homullus_eocs.json +++ b/data/mods/Xedra_Evolved/mutations/paraclesians/homullus_eocs.json @@ -142,7 +142,7 @@ "type": "effect_on_condition", "id": "EOC_HOMULLUS_GOBLIN_FRUIT", "condition": { "test_eoc": "EOC_HOMULLUS_IN_CIVILIZATION_CHECKER_CONDITION" }, - "effect": [ { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } ], + "effect": { "u_spawn_item": "spell_spawned_goblin_fruit_homullus", "use_item_group": true, "suppress_message": true }, "false_effect": [ { "u_message": "You must be in the remnants of civilization to call forth a goblin fruit.", "type": "bad" } ] }, { diff --git a/data/mods/Xedra_Evolved/mutations/paraclesians/ierde_eocs.json b/data/mods/Xedra_Evolved/mutations/paraclesians/ierde_eocs.json index 772fb607ee90d..4b2f3ac35fa53 100644 --- a/data/mods/Xedra_Evolved/mutations/paraclesians/ierde_eocs.json +++ b/data/mods/Xedra_Evolved/mutations/paraclesians/ierde_eocs.json @@ -125,7 +125,7 @@ { "not": { "u_is_on_terrain": "t_woodchips" } } ] }, - "effect": [ { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } ], + "effect": { "u_spawn_item": "spell_spawned_goblin_fruit_ierde", "use_item_group": true, "suppress_message": true }, "false_effect": [ { "u_message": "You must be on living earth or stone to call forth a goblin fruit.", "type": "bad" } ] }, { diff --git a/data/mods/Xedra_Evolved/mutations/paraclesians/salamander_eocs.json b/data/mods/Xedra_Evolved/mutations/paraclesians/salamander_eocs.json index a86a3a6e9a0a5..5d92cde08814a 100644 --- a/data/mods/Xedra_Evolved/mutations/paraclesians/salamander_eocs.json +++ b/data/mods/Xedra_Evolved/mutations/paraclesians/salamander_eocs.json @@ -95,8 +95,8 @@ ] }, "effect": [ - { "u_message": "You full a goblin fruit from the flames.", "type": "good" }, - { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } + { "u_message": "You pull a goblin fruit from the flames.", "type": "good" }, + { "u_spawn_item": "spell_spawned_goblin_fruit_salamander", "use_item_group": true, "suppress_message": true } ], "false_effect": [ { "u_message": "You must have a nearby source of flames or heat to call forth a goblin fruit.", "type": "bad" } ] }, diff --git a/data/mods/Xedra_Evolved/mutations/paraclesians/sylph_eocs.json b/data/mods/Xedra_Evolved/mutations/paraclesians/sylph_eocs.json index 92e1c2d918bdf..888adf9f43733 100644 --- a/data/mods/Xedra_Evolved/mutations/paraclesians/sylph_eocs.json +++ b/data/mods/Xedra_Evolved/mutations/paraclesians/sylph_eocs.json @@ -177,7 +177,7 @@ { "and": [ "u_is_outside", { "math": [ "u_val('pos_z') >= 1" ] } ] } ] }, - "effect": [ { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } ], + "effect": { "u_spawn_item": "spell_spawned_goblin_fruit_sylph", "use_item_group": true, "suppress_message": true }, "false_effect": [ { "u_message": "You must have a strong enough wind or be above ground level to call forth a goblin fruit.", diff --git a/data/mods/Xedra_Evolved/mutations/paraclesians/undine_eocs.json b/data/mods/Xedra_Evolved/mutations/paraclesians/undine_eocs.json index abf3a8f6dec7d..6b4ad130bf763 100644 --- a/data/mods/Xedra_Evolved/mutations/paraclesians/undine_eocs.json +++ b/data/mods/Xedra_Evolved/mutations/paraclesians/undine_eocs.json @@ -178,7 +178,7 @@ "type": "effect_on_condition", "id": "EOC_UNDINE_GOBLIN_FRUIT", "condition": { "test_eoc": "EOC_CONDITION_UNDINE_CLOSE_TO_OR_IN_WATER" }, - "effect": [ { "u_cast_spell": { "id": "cultivate_goblin_fruit_real" } } ], + "effect": { "u_spawn_item": "spell_spawned_goblin_fruit_undine", "use_item_group": true, "suppress_message": true }, "false_effect": [ { "u_message": "You must be standing in water or near a large body of water to call forth a goblin fruit.", diff --git a/data/mods/Xedra_Evolved/mutations/playable_changeling.json b/data/mods/Xedra_Evolved/mutations/playable_changeling.json index 34af932413807..fcb8a9c0efc1a 100644 --- a/data/mods/Xedra_Evolved/mutations/playable_changeling.json +++ b/data/mods/Xedra_Evolved/mutations/playable_changeling.json @@ -1404,5 +1404,60 @@ "THRESH_FAIR_FOLK_COMMONER_TROW" ], "flags": [ "MEND_ALL" ] + }, + { + "type": "mutation", + "id": "SELKIE_CULTIVATE_GOBLIN_FRUIT", + "name": { "str": "Cultivate Goblin Fruit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Selkie gains the ability to grow a goblin fruit when near water or under the rain.", + "category": [ "FAIR_FOLK_COMMONER_SELKIE" ], + "spells_learned": [ [ "selkie_cultivate_goblin_fruit", 1 ] ] + }, + { + "type": "mutation", + "id": "BROWNIE_CULTIVATE_GOBLIN_FRUIT", + "name": { "str": "Cultivate Goblin Fruit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Brownie gains the ability to grow a goblin fruit when indoors and unobserved.", + "category": [ "FAIR_FOLK_COMMONER_BROWNIE" ], + "spells_learned": [ [ "brownie_cultivate_goblin_fruit", 1 ] ] + }, + { + "type": "mutation", + "id": "POOKA_CULTIVATE_GOBLIN_FRUIT", + "name": { "str": "Cultivate Goblin Fruit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Pooka gains the ability to grow a goblin fruit when near animals.", + "category": [ "FAIR_FOLK_COMMONER_POOKA" ], + "spells_learned": [ [ "pooka_cultivate_goblin_fruit", 1 ] ] + }, + { + "type": "mutation", + "id": "TROW_CULTIVATE_GOBLIN_FRUIT", + "name": { "str": "Cultivate Goblin Fruit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Trow gains the ability to grow a goblin fruit when underground or at night.", + "category": [ "FAIR_FOLK_COMMONER_TROW" ], + "spells_learned": [ [ "trow_cultivate_goblin_fruit", 1 ] ] + }, + { + "type": "mutation", + "id": "NOBLE_CULTIVATE_GOBLIN_FRUIT", + "name": { "str": "Cultivate Goblin Fruit" }, + "points": 3, + "visibility": 0, + "ugliness": 0, + "description": "Upon gaining this ability the Noble gains the ability to grow a goblin fruit when near humans or Fae.", + "category": [ "FAIR_FOLK_NOBLE" ], + "spells_learned": [ [ "noble_cultivate_goblin_fruit", 1 ] ] } ] diff --git a/data/mods/Xedra_Evolved/mutations/playable_changeling_eocs.json b/data/mods/Xedra_Evolved/mutations/playable_changeling_eocs.json index fde3e4084ce32..e63c5dfc44aad 100644 --- a/data/mods/Xedra_Evolved/mutations/playable_changeling_eocs.json +++ b/data/mods/Xedra_Evolved/mutations/playable_changeling_eocs.json @@ -1713,7 +1713,180 @@ "then": { "u_learn_recipe": "moon_tear_ingot" }, "else": { "run_eocs": "EOC_LEARN_MOONS_TEARS_RECIPES" } }, - { "u_message": "You dreams have revealed to you a secret of forging moon's tears.", "type": "good" } + { "u_message": "Your dreams have revealed to you a secret of forging moon's tears.", "type": "good" } ] + }, + { + "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": "effect_on_condition", + "id": "EOC_SELKIE_GOBLIN_FRUIT", + "condition": { + "or": [ + { + "and": [ + "u_is_outside", + { + "or": [ + { "is_weather": "magic_weather_light_drizzle" }, + { "is_weather": "magic_weather_drizzle" }, + { "is_weather": "magic_weather_rain" }, + { "is_weather": "magic_weather_rainstorm" }, + { "is_weather": "magic_weather_thunder" }, + { "is_weather": "magic_weather_lightning" }, + { "is_weather": "weather_light_drizzle" }, + { "is_weather": "weather_drizzle" }, + { "is_weather": "weather_rain" }, + { "is_weather": "weather_rainstorm" }, + { "is_weather": "weather_thunder" }, + { "is_weather": "weather_lightning" } + ] + } + ] + }, + { "u_near_om_location": "generic_river_bank", "range": 1 }, + { "u_near_om_location": "generic_river", "range": 1 }, + { "u_near_om_location": "river_center", "range": 1 }, + { "u_near_om_location": "river", "range": 1 }, + { "u_near_om_location": "river_c_not_ne", "range": 1 }, + { "u_near_om_location": "river_c_not_nw", "range": 1 }, + { "u_near_om_location": "river_c_not_se", "range": 1 }, + { "u_near_om_location": "river_c_not_sw", "range": 1 }, + { "u_near_om_location": "lake_shore", "range": 1 }, + { "u_near_om_location": "lake_surface", "range": 1 }, + { "u_near_om_location": "ocean", "range": 1 }, + { "u_near_om_location": "ocean_shore", "range": 1 }, + { "u_near_om_location": "ocean_surface", "range": 1 }, + { "u_near_om_location": "ocean_bed", "range": 1 }, + { "u_near_om_location": "ocean_water_cube", "range": 1 }, + { "u_near_om_location": "ocean_surface", "range": 1 }, + { "u_near_om_location": "pond_field", "range": 1 }, + { "u_at_om_location": "fishing_pond_0_0" }, + { "u_at_om_location": "fishing_pond_1_0" }, + { "u_at_om_location": "fishing_pond_0_1" }, + { "u_at_om_location": "fishing_pond_1_1" }, + { "u_at_om_location": "forest_water" }, + { "u_at_om_location": "undine_genius_loci_NW" }, + { "u_at_om_location": "undine_genius_loci_NE" }, + { "u_at_om_location": "undine_genius_loci_SW" }, + { "u_at_om_location": "undine_genius_loci_SE" } + ] + }, + "effect": { "u_spawn_item": "spell_spawned_goblin_fruit_selkie", "use_item_group": true, "suppress_message": true }, + "false_effect": [ { "u_message": "You must be near water or under the rain to call forth a goblin fruit.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_BROWNIE_GOBLIN_FRUIT", + "condition": { + "and": [ + { "not": "u_is_outside" }, + { "math": [ "u_monsters_nearby('radius': 8, 'attitude': 'both') == 0" ] }, + { "math": [ "u_characters_nearby('radius': 8) == 0" ] } + ] + }, + "effect": { "u_spawn_item": "spell_spawned_goblin_fruit_brownie", "use_item_group": true, "suppress_message": true }, + "false_effect": [ { "u_message": "You must be inside and unobserved to call forth a goblin fruit.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_POOKA_GOBLIN_FRUIT", + "condition": { + "or": [ + { "math": [ "u_mon_species_nearby('MAMMAL', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('AMPHIBIAN', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('BIRD', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('REPTILE', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('FISH', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('KRAKEN', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('INSECT', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('CENTIPEDE', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('INSECT_FLYING', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('SPIDER', 'radius': 30, 'attitude': 'both') >= 1" ] } + ] + }, + "effect": { "u_spawn_item": "spell_spawned_goblin_fruit_pooka", "use_item_group": true, "suppress_message": true }, + "false_effect": [ { "u_message": "You must be near an animal to call forth a goblin fruit.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_TROW_GOBLIN_FRUIT", + "condition": { "or": [ { "not": "is_day" }, { "math": [ "u_val('pos_z') <= -1" ] } ] }, + "effect": { "u_spawn_item": "spell_spawned_goblin_fruit_trow", "use_item_group": true, "suppress_message": true }, + "false_effect": [ { "u_message": "You must be under the ground or at night to call forth a goblin fruit.", "type": "bad" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_NOBLE_GOBLIN_FRUIT", + "condition": { + "or": [ + { "math": [ "u_mon_species_nearby('CHANGELING', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('ARVORE', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('IERDE', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('HOMULLUS', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('SALAMANDER', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('SYLPH', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_mon_species_nearby('UNDINE', 'radius': 30, 'attitude': 'both') >= 1" ] }, + { "math": [ "u_characters_nearby('radius': 30) >= 1" ] } + ] + }, + "effect": { "u_spawn_item": "spell_spawned_goblin_fruit_noble", "use_item_group": true, "suppress_message": true }, + "false_effect": [ { "u_message": "You must be near humans or Fae to call forth a goblin fruit.", "type": "bad" } ] } ] diff --git a/data/mods/Xedra_Evolved/mutations/temporary.json b/data/mods/Xedra_Evolved/mutations/temporary.json index aed221401a367..c0e741c464aa0 100644 --- a/data/mods/Xedra_Evolved/mutations/temporary.json +++ b/data/mods/Xedra_Evolved/mutations/temporary.json @@ -29,6 +29,21 @@ "condition": "ALWAYS", "values": [ { "value": "MAX_HP", "multiply": 0.4 }, { "value": "STRENGTH", "add": 6 } ] }, + { + "type": "mutation", + "id": "GOBLIN_FRUIT_MUSIC", + "name": { "str": "The fruit's song" }, + "//": "Until the day EOCs can spawn equiped items, the fruit will give a mutation that holds the music player.", + "valid": false, + "starting_trait": false, + "purifiable": false, + "player_display": false, + "points": 2, + "visibility": 0, + "ugliness": 0, + "description": { "str": "Gives the integrated music player. Should not be player-visible.", "//~": "NO_I18N" }, + "integrated_armor": [ "internal_mp3_fruit" ] + }, { "type": "mutation", "id": "ethereal_wings", @@ -421,5 +436,15 @@ "copy-from": "CHANGELING_DISGUISE_AS_NATURE_BUSH", "name": { "str": "Changeling Rock disguise", "//~": "NO_I18N" }, "override_look": { "id": "f_boulder_medium", "tile_category": "furniture" } + }, + { + "type": "mutation", + "id": "GOBLIN_FRUIT_ANIMAL_IGNORE", + "name": { "str": "Effect of furry fruit", "//~": "NO_I18N" }, + "description": { "str": "What makes the furry fruit work. You should never see this.", "//~": "NO_I18N" }, + "valid": false, + "player_display": false, + "points": 0, + "ignored_by": [ "MAMMAL", "AMPHIBIAN", "BIRD", "REPTILE", "FISH", "KRAKEN", "INSECT", "CENTIPEDE", "INSECT_FLYING", "SPIDER" ] } ] diff --git a/data/mods/Xedra_Evolved/spells/changeling_spells.json b/data/mods/Xedra_Evolved/spells/changeling_spells.json index 0ee0e9a8fc0ba..c8ed8402b19c9 100644 --- a/data/mods/Xedra_Evolved/spells/changeling_spells.json +++ b/data/mods/Xedra_Evolved/spells/changeling_spells.json @@ -458,5 +458,120 @@ "max(( 9000 - (u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_SELKIE') * 10) - (u_skill('deduction') * 250)), 1000)" ] } + }, + { + "id": "selkie_cultivate_goblin_fruit", + "type": "SPELL", + "name": "Cultivate Goblin Fruit", + "description": "You may spin a bit of fae magic into water, 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 near water or under the rain.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_SELKIE_GOBLIN_FRUIT", + "shape": "blast", + "spell_class": "CHANGELING_MAGIC", + "teachable": false, + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "int_to_level(1)" ] }, + "difficulty": 8, + "base_casting_time": 180000, + "final_casting_time": 100, + "casting_time_increment": -6000, + "magic_type": "xe_fey_magick", + "base_energy_cost": 450, + "final_energy_cost": 350, + "energy_increment": -4 + }, + { + "id": "brownie_cultivate_goblin_fruit", + "type": "SPELL", + "name": "Cultivate Goblin Fruit", + "description": "You may spin a bit of fae magic into the air, 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 indoors, when nobody is watching.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_BROWNIE_GOBLIN_FRUIT", + "shape": "blast", + "spell_class": "CHANGELING_MAGIC", + "teachable": false, + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "int_to_level(1)" ] }, + "difficulty": 8, + "base_casting_time": 180000, + "final_casting_time": 100, + "casting_time_increment": -6000, + "magic_type": "xe_fey_magick", + "base_energy_cost": 450, + "final_energy_cost": 350, + "energy_increment": -4 + }, + { + "id": "pooka_cultivate_goblin_fruit", + "type": "SPELL", + "name": "Cultivate Goblin Fruit", + "description": "You may spin a bit of fae magic into the air, 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 near an animal.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_POOKA_GOBLIN_FRUIT", + "shape": "blast", + "spell_class": "CHANGELING_MAGIC", + "teachable": false, + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "int_to_level(1)" ] }, + "difficulty": 8, + "base_casting_time": 180000, + "final_casting_time": 100, + "casting_time_increment": -6000, + "magic_type": "xe_fey_magick", + "base_energy_cost": 450, + "final_energy_cost": 350, + "energy_increment": -4 + }, + { + "id": "trow_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 underground or at night.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_TROW_GOBLIN_FRUIT", + "shape": "blast", + "spell_class": "CHANGELING_MAGIC", + "teachable": false, + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "int_to_level(1)" ] }, + "difficulty": 8, + "base_casting_time": 180000, + "final_casting_time": 100, + "casting_time_increment": -6000, + "magic_type": "xe_fey_magick", + "base_energy_cost": 450, + "final_energy_cost": 350, + "energy_increment": -4 + }, + { + "id": "noble_cultivate_goblin_fruit", + "type": "SPELL", + "name": "Cultivate Goblin Fruit", + "description": "You may spin a bit of fae magic into the air, 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 near a human or a Fae.", + "valid_targets": [ "self" ], + "skill": "deduction", + "effect": "effect_on_condition", + "effect_str": "EOC_NOBLE_GOBLIN_FRUIT", + "shape": "blast", + "spell_class": "CHANGELING_MAGIC", + "teachable": false, + "flags": [ "SOMATIC", "VERBAL", "NO_LEGS", "NO_HANDS" ], + "max_level": { "math": [ "int_to_level(1)" ] }, + "difficulty": 8, + "base_casting_time": 180000, + "final_casting_time": 100, + "casting_time_increment": -6000, + "magic_type": "xe_fey_magick", + "base_energy_cost": 450, + "final_energy_cost": 350, + "energy_increment": -4 } ] diff --git a/data/mods/Xedra_Evolved/spells/item_spells.json b/data/mods/Xedra_Evolved/spells/item_spells.json index b396d9a9cdf83..1bfde0f62efb7 100644 --- a/data/mods/Xedra_Evolved/spells/item_spells.json +++ b/data/mods/Xedra_Evolved/spells/item_spells.json @@ -616,5 +616,76 @@ "max_duration": 600, "min_range": 1, "max_range": 1 + }, + { + "id": "goblin_fruit_blind_flash", + "type": "SPELL", + "name": { "str": "Flash fruit" }, + "description": { + "str": "Produces the fruit's flash effect when eaten. You're not supposed to see this, the same way your foes aren't supposed to see after you ate that fruit near them.", + "//~": "NO_I18N" + }, + "effect": "attack", + "effect_str": "blind", + "shape": "blast", + "affected_body_parts": [ "eyes" ], + "valid_targets": [ "self", "ground" ], + "min_aoe": 7, + "max_aoe": 7, + "min_range": 1, + "max_range": 1, + "min_duration": 2000, + "max_duration": 2500, + "spell_class": "NONE", + "flags": [ "SILENT", "NO_FAIL", "NO_LEGS", "NO_PROJECTILE" ], + "difficulty": 0 + }, + { + "id": "goblin_fruit_heat_blasts", + "type": "SPELL", + "name": { "str": "Fruit blast", "//~": "NO_I18N" }, + "description": { "str": "Cast heat beams in random directions.", "//~": "NO_I18N" }, + "valid_targets": [ "self" ], + "flags": [ "WONDER" ], + "effect": "attack", + "shape": "blast", + "message": "Fiery needles emerge from your body and surge towards anything vaguely hostile.", + "min_damage": 25, + "max_damage": 25, + "min_range": 0, + "max_range": 0, + "extra_effects": [ { "id": "goblin_fruit_heat_blast" } ] + }, + { + "id": "goblin_fruit_heat_blast", + "type": "SPELL", + "name": { "str": "Heat beam", "//~": "NO_I18N" }, + "description": { "str": "Uncontrolled heat blast.", "//~": "NO_I18N" }, + "valid_targets": [ "hostile" ], + "flags": [ "RANDOM_TARGET", "RANDOM_DAMAGE", "SILENT" ], + "effect": "attack", + "shape": "blast", + "message": "", + "min_damage": 10, + "max_damage": 20, + "damage_type": "heat", + "min_range": 7, + "max_range": 7 + }, + { + "id": "goblin_fruit_map_reveal", + "type": "SPELL", + "name": { "str": "Goblin fruit map reveal", "//~": "NO_I18N" }, + "description": { "str": "Reveal map when you eat a goblin fruit. You must not see this.", "//~": "NO_I18N" }, + "teachable": false, + "valid_targets": [ "none" ], + "spell_class": "NONE", + "flags": [ "NO_HANDS", "NO_FAIL", "SILENT", "NO_LEGS" ], + "difficulty": 0, + "max_level": 0, + "effect": "map", + "shape": "blast", + "min_aoe": 15, + "max_aoe": 15 } ]