Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Magiclysm] Add some new high Difficulty spells #78582

Merged
merged 7 commits into from
Dec 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions data/mods/Magiclysm/Spells/druid.json
Original file line number Diff line number Diff line change
Expand Up @@ -1403,5 +1403,116 @@
"//": "EoC to summon because summoned comestibles don't have timers",
"id": "EOC_DRUID_GOODBERRY",
"effect": [ { "u_spawn_item": "item_druid_goodberry", "count": 1, "suppress_message": true } ]
},
{
"id": "druid_create_temporary_spring",
"type": "SPELL",
"name": "Fountain of the Depths",
"description": "Call to the waters beneath the earth and bring them to the surface, creating a natural spring. The waters will subside when the spell's duration ends.",
"flags": [ "CHANNELING_SPELL", "CONCENTRATE", "SILENT", "VERBAL" ],
"valid_targets": [ "self" ],
"spell_class": "DRUID",
"difficulty": 9,
"max_level": 15,
"effect": "effect_on_condition",
"effect_str": "EOC_DRUID_TEMPORARY_SPRING",
"shape": "blast",
"min_duration": 30000,
"max_duration": 255000,
"duration_increment": 15000,
"energy_source": "MANA",
"base_casting_time": 9000,
"base_energy_cost": 750,
"extra_effects": [ { "id": "eoc_channeling_setup", "hit_self": true } ]
},
{
"type": "effect_on_condition",
"id": "EOC_DRUID_TEMPORARY_SPRING",
"effect": [
{
"if": {
"u_query_tile": "around",
"target_var": { "global_val": "druid_temporary_spring_location" },
"message": "Select natural earth:"
},
"then": {
"if": { "map_terrain_with_flag": "DIGGABLE", "loc": { "global_val": "druid_temporary_spring_location" } },
"then": [
{
"u_transform_radius": 0,
"ter_furn_transform": "ter_druid_create_spring",
"target_var": { "global_val": "druid_temporary_spring_location" }
},
{
"u_transform_radius": 60,
"ter_furn_transform": "ter_druid_remove_spring",
"target_var": { "global_val": "druid_temporary_spring_location" },
"time_in_future": {
"math": [ "( (u_spell_level('druid_create_temporary_spring') * 150) + 300 ) * ( channeling_proficiency_modifier() )" ]
}
}
],
"else": { "u_message": "You can only call up a spring on natural earth." }
},
"else": { "u_message": "Canceled" }
}
]
},
{
"id": "druid_turn_tree_into_treant",
"type": "SPELL",
"name": "Awakening of the Forest Guardian",
"description": "Grant a nearby tree awareness and mobility, letting it shake free from the soil and rise up to crush your enemies. It will root itself again when the spell expires.\n\nYou must be <color_yellow>standing next to a tree</color> for the spell to take effect.",
Maleclypse marked this conversation as resolved.
Show resolved Hide resolved
"flags": [ "TRANSFORMATION_SPELL", "CONCENTRATE", "SILENT", "VERBAL" ],
"valid_targets": [ "self" ],
"spell_class": "DRUID",
"difficulty": 12,
"max_level": 20,
"effect": "effect_on_condition",
"effect_str": "EOC_DRUID_TREE_AWAKENING",
"shape": "blast",
"min_duration": 15000,
"max_duration": 155000,
"duration_increment": 7000,
"energy_source": "MANA",
"base_casting_time": 500,
"base_energy_cost": 850,
"extra_effects": [ { "id": "eoc_transformation_setup", "hit_self": true } ]
},
{
"type": "effect_on_condition",
"id": "EOC_DRUID_TREE_AWAKENING",
"effect": [
{
"u_map_run_eocs": [
{
"id": "EOC_DRUID_TREE_AWAKENING_ACTION",
"effect": [
{
"u_transform_radius": 0,
"ter_furn_transform": "ter_druid_tree_guardian_turn",
"target_var": { "context_val": "druid_tree_awakening_check" }
},
{
"u_spawn_monster": "mon_treant_druid",
"real_count": 1,
"min_radius": 0,
"max_radius": 0,
"temporary_drop_items": true,
"lifespan": {
"math": [ "( (u_spell_level('druid_turn_tree_into_treant') * 70) + 150 ) * ( transformation_proficiency_modifier() )" ]
},
"target_var": { "context_val": "druid_tree_awakening_check" }
}
],
"false_effect": { "u_message": "You need to be standing next to a tree to awaken it.", "type": "bad" }
}
],
"range": 1,
"store_coordinates_in": { "context_val": "druid_tree_awakening_check" },
"stop_at_first": true,
"condition": { "map_terrain_with_flag": "TREE", "loc": { "context_val": "druid_tree_awakening_check" } }
}
]
}
]
50 changes: 50 additions & 0 deletions data/mods/Magiclysm/Spells/earthshaper.json
Original file line number Diff line number Diff line change
Expand Up @@ -1292,5 +1292,55 @@
]
}
]
},
{
"id": "earthshaper_diggable_teleport",
"type": "SPELL",
"name": "Earth Gate",
"description": "While standing on natural earth, sink into it and emerge from any other patch of natural earth within the spell's range.",
"message": "",
"valid_targets": [ "self" ],
"flags": [ "CONVEYANCE_SPELL", "VERBAL", "SOMATIC", "SILENT" ],
"effect": "effect_on_condition",
"effect_str": "EOC_EARTHSHAPER_EARTH_GATE_TELEPORT_CHECK",
"extra_effects": [ { "id": "eoc_conveyance_setup", "hit_self": true } ],
"shape": "blast",
"difficulty": 8,
"spell_class": "EARTHSHAPER",
"teachable": false,
"max_level": 20,
"energy_source": "MANA",
"base_energy_cost": 650,
"base_casting_time": 250
},
{
"type": "effect_on_condition",
"id": "EOC_EARTHSHAPER_EARTH_GATE_TELEPORT_CHECK",
"effect": [
{
"if": { "u_is_on_terrain_with_flag": "DIGGABLE" },
"then": [
{
"if": {
"u_query_tile": "line_of_sight",
"target_var": { "global_val": "earthshaper_earth_gate_location" },
"range": { "math": [ "( (u_spell_level('earthshaper_diggable_teleport') * 2) + 3) * conveyance_proficiency_modifier()" ] },
"z_level": false,
"message": "Select nearby earth to gate to."
},
"then": {
"if": { "map_terrain_with_flag": "DIGGABLE", "loc": { "global_val": "earthshaper_earth_gate_location" } },
"then": [
{ "u_teleport": { "global_val": "earthshaper_earth_gate_location" }, "force": true },
{ "u_message": "You sink into the earth and re-emerge nearby.", "type": "neutral" }
],
"else": { "u_message": "You must select a patch of earth to transport to." }
},
"else": { "u_message": "Canceled" }
}
],
"else": { "u_message": "You must be on the living earth to use Earth Gate.", "type": "bad" }
}
]
}
]
63 changes: 63 additions & 0 deletions data/mods/Magiclysm/Spells/kelvinist.json
Original file line number Diff line number Diff line change
Expand Up @@ -772,5 +772,68 @@
]
}
]
},
{
"id": "kelvinist_set_everyone_on_fire",
"type": "SPELL",
"name": "Flames of the Apocalypse",
"description": "Force a large amount of burning mana into every hostile target affected by the spell, causing them to explode in flames. Knowledge of this spell required licensing and registration before the Cataclysm, but you're pretty sure the ATF isn't going to be hassling you any time soon.",
"valid_targets": [ "hostile", "ground" ],
"spell_class": "KELVINIST",
"flags": [ "EVOCATION_SPELL", "CONCENTRATE", "VERBAL", "SOMATIC" ],
"effect": "effect_on_condition",
"effect_str": "EOC_KELVINIST_SET_EVERYONE_ON_FIRE",
"components": "spell_components_kelvinist_set_everyone_on_fire",
"extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
"shape": "blast",
"difficulty": 15,
"max_level": 25,
"min_range": 5,
"max_range": 30,
"range_increment": 1,
"min_aoe": 2,
"max_aoe": 12,
"aoe_increment": 0.5,
"energy_source": "MANA",
"base_energy_cost": 1000,
"base_casting_time": 500
},
{
"type": "effect_on_condition",
"id": "EOC_KELVINIST_SET_EVERYONE_ON_FIRE",
"condition": "has_alpha",
"effect": [
{ "math": [ "u_kelvinist_explosion_level = n_spell_level('kelvinist_set_everyone_on_fire')" ] },
{
"u_cast_spell": {
"id": "kelvinist_set_everyone_on_fire_secondary",
"min_level": { "math": [ "u_kelvinist_explosion_level" ] },
"hit_self": true
}
}
]
},
{
"id": "kelvinist_set_everyone_on_fire_secondary",
"type": "SPELL",
"name": { "str": "Flames of the Apocalypse Target", "//~": "NO_I18N" },
"description": { "str": "Stop hitting yourself (with the flames of the apocalypse). You should never see this.", "//~": "NO_I18N" },
"valid_targets": [ "self", "ground", "ally", "hostile" ],
"flags": [ "EVOCATION_SPELL", "RANDOM_DAMAGE", "CONCENTRATE", "VERBAL", "SOMATIC", "SPLIT_DAMAGE" ],
"effect": "attack",
"effect_str": "onfire",
"shape": "blast",
"max_level": 25,
"min_damage": { "math": [ "(u_kelvinist_explosion_level * 4) + 25" ] },
"max_damage": { "math": [ "(u_kelvinist_explosion_level * 10) + 45" ] },
"damage_type": "heat",
"min_duration": 1000,
"max_duration": 2500,
"min_aoe": { "math": [ "(u_kelvinist_explosion_level * 0.333) + 0" ] },
"max_aoe": { "math": [ "(u_kelvinist_explosion_level * 0.333) + 0" ] },
"field_id": "fd_fire",
"min_field_intensity": 2,
"max_field_intensity": 3,
"field_chance": 2
}
]
26 changes: 25 additions & 1 deletion data/mods/Magiclysm/Spells/magus.json
Original file line number Diff line number Diff line change
Expand Up @@ -791,7 +791,7 @@
"effect": "ter_transform",
"effect_str": "ter_magus_permanent_light",
"shape": "blast",
"flags": [ "CONJURATION_SPELL", "SOMATIC", "VERBAL" ],
"flags": [ "CONJURATION_SPELL", "CONCENTRATE", "SOMATIC", "VERBAL" ],
"components": "spell_components_magus_permanent_light",
"max_level": 15,
"spell_class": "MAGUS",
Expand All @@ -804,5 +804,29 @@
"final_energy_cost": 1500,
"energy_increment": -75,
"extra_effects": [ { "id": "eoc_summon_setup", "hit_self": true } ]
},
{
"id": "magus_cannot_move_attack_or_damage_target",
"type": "SPELL",
"name": "Adamantine Gaol",
"description": "Create an impenetrable shell of force around the target, preventing them from moving or acting for the spell's duration. The shell works in two directions and the target is also immune to all harm.\n\nAdamantine Gaol <color_yellow>cannot be dispelled</color>.",
"valid_targets": [ "ally", "hostile", "self" ],
"flags": [ "EVOCATION_SPELL", "VERBAL", "SOMATIC" ],
"extra_effects": [ { "id": "eoc_evocation_setup", "hit_self": true } ],
"effect": "attack",
"effect_str": "effect_magus_cannot_move_attack_or_damage_target",
"shape": "blast",
"spell_class": "MAGUS",
"energy_source": "MANA",
"difficulty": 10,
"base_casting_time": 75,
"base_energy_cost": 750,
"max_level": 20,
"min_range": 5,
"max_range": 30,
"range_increment": 1.5,
"min_duration": 600,
"max_duration": 2500,
"duration_increment": 100
}
]
10 changes: 10 additions & 0 deletions data/mods/Magiclysm/effects/effects.json
Original file line number Diff line number Diff line change
Expand Up @@ -1400,6 +1400,16 @@
"enchantments": [ { "values": [ { "value": "ATTACK_NOISE", "multiply": -1 }, { "value": "FOOTSTEP_NOISE", "multiply": -1 } ] } ],
"flags": [ "MUTE" ]
},
{
"type": "effect_type",
"id": "effect_magus_cannot_move_attack_or_damage_target",
"name": [ "Adamantine Gaol" ],
"desc": [ "You are totally immobile and invulnerable." ],
"rating": "bad",
"show_in_info": true,
"remove_message": "You can move again.",
"flags": [ "CANNOT_ATTACK", "CANNOT_MOVE", "CANNOT_TAKE_DAMAGE" ]
},
{
"type": "effect_type",
"id": "effect_druid_traverse_the_wilds",
Expand Down
16 changes: 16 additions & 0 deletions data/mods/Magiclysm/furniture_and_terrain/terrain_druid.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,21 @@
"ter_set": "t_dirt",
"items": [ { "item": "splinter", "count": [ 2, 5 ] } ]
}
},
{
"type": "terrain",
"id": "t_water_moving_sh_druid",
"//": "Exists to prevent spamming the fountain of the depths spell and only having one tile transform back.",
"name": "flowing shallow water",
"description": "The streaming water isn't too deep here. With a watertight container, you could gather fresh water from here. Not safe to drink as is, although probably safer than stagnant water.",
"looks_like": "t_water_moving_sh",
"symbol": "~",
"color": "light_blue",
"move_cost": 6,
"flags": [ "TRANSPARENT", "LIQUID", "NO_SCENT", "SWIMMABLE", "FISHABLE", "CURRENT", "SHALLOW_WATER" ],
"connect_groups": "WATER",
"connects_to": "WATER",
"liquid_source": { "id": "water" },
"examine_action": "water_source"
}
]
23 changes: 19 additions & 4 deletions data/mods/Magiclysm/itemgroups/itemgroups.json
Original file line number Diff line number Diff line change
Expand Up @@ -1242,7 +1242,13 @@
],
"prob": 10
},
{ "distribution": [ { "item": "recovery_spellbook", "prob": 10 } ], "prob": 5 }
{
"distribution": [
{ "item": "spell_scroll_magus_cannot_move_attack_or_damage_target", "prob": 10 },
{ "item": "recovery_spellbook", "prob": 10 }
],
"prob": 5
}
]
},
{
Expand Down Expand Up @@ -1345,7 +1351,8 @@
{ "item": "spell_scroll_nova_flare", "prob": 50 },
{ "item": "spell_scroll_cone_cold", "prob": 50 },
{ "item": "spell_scroll_hoary_blast", "prob": 50 },
{ "item": "spell_scroll_kelvinist_no_emotion_spell", "prob": 20 }
{ "item": "spell_scroll_kelvinist_no_emotion_spell", "prob": 20 },
{ "item": "spell_scroll_kelvinist_set_everyone_on_fire", "prob": 2 }
],
"prob": 10
}
Expand Down Expand Up @@ -1442,7 +1449,8 @@
{ "item": "spell_scroll_eshaper_shardstorm", "prob": 50 },
{ "item": "spell_scroll_earthshaper_reveal_world_map", "prob": 25 },
{ "item": "spell_scroll_earthshaper_granite_aegis", "prob": 20 },
{ "item": "spell_scroll_earthshaper_sleep_in_earth", "prob": 20 }
{ "item": "spell_scroll_earthshaper_sleep_in_earth", "prob": 20 },
{ "item": "spell_scroll_earthshaper_diggable_teleport", "prob": 30 }
],
"prob": 10
}
Expand Down Expand Up @@ -1546,9 +1554,16 @@
{ "item": "spell_scroll_druidic_regrowth", "prob": 100 },
{ "item": "spell_scroll_druidic_healing", "prob": 100 },
{ "item": "spell_scroll_druid_beguile_savage_beast", "prob": 75 },
{ "item": "spell_scroll_druid_renew_forest_spell", "prob": 50 }
{ "item": "spell_scroll_druid_create_temporary_spring", "prob": 75 }
],
"prob": 10
},
{
"distribution": [
{ "item": "spell_scroll_druid_renew_forest_spell", "prob": 50 },
{ "item": "spell_scroll_druid_turn_tree_into_treant", "prob": 25 }
],
"prob": 5
}
]
},
Expand Down
5 changes: 5 additions & 0 deletions data/mods/Magiclysm/itemgroups/spellbooks.json
Original file line number Diff line number Diff line change
Expand Up @@ -236,18 +236,23 @@
[ "spell_scroll_obfuscated_body", 10 ],
[ "spell_scroll_shape_of_dust", 30 ],
[ "spell_scroll_summon_eshaper_golem", 30 ],
[ "spell_scroll_earthshaper_diggable_teleport", 25 ],
[ "spell_scroll_druidic_healing", 20 ],
[ "spell_scroll_druid_turn_tree_into_treant", 5 ],
[ "spell_scroll_summon_magic_motorcycle", 5 ],
[ "spell_scroll_animist_spirit_walking", 10 ],
[ "spell_scroll_magus_haste", 50 ],
[ "spell_scroll_magus_permanent_light", 30 ],
[ "spell_scroll_magus_cannot_move_attack_or_damage_target", 10 ],
[ "bio_sneeze_beam", 50 ],
[ "spell_scroll_druid_beguile_savage_beast", 10 ],
[ "spell_scroll_druid_thornskin", 20 ],
[ "spell_scroll_druid_create_temporary_spring", 10 ],
[ "spell_scroll_druid_renew_forest_spell", 5 ],
[ "spell_scroll_kelvinist_no_emotion_spell", 5 ],
[ "spell_scroll_banishment_lesser", 30 ],
[ "spell_scroll_nova_flare", 25 ],
[ "spell_scroll_kelvinist_set_everyone_on_fire", 3 ],
[ "spell_scroll_magus_diamond_imbuement", 10 ],
[ "spell_scroll_freezing_touch", 40 ],
[ "spell_scroll_focused_bolt", 4 ],
Expand Down
Loading
Loading