From 25df9cfd38a70917b8c848e37ee966ac831645ba Mon Sep 17 00:00:00 2001
From: Ranieri Althoff <1993083+ranisalt@users.noreply.github.com>
Date: Fri, 20 Sep 2024 00:13:59 +0200
Subject: [PATCH] Move spells to scripts folder (#4755)
* Move runes to dedicated folder
* Redirect old XML and lib folder to new location
* Drop unused custom spells
---
data/scripts/lib/spells.lua | 325 +++++++
.../runes/#example.lua} | 17 +-
.../runes}/attack/avalanche_rune.lua | 14 +
.../runes}/attack/energy_bomb_rune.lua | 15 +
.../runes}/attack/energy_field_rune.lua | 15 +
.../runes}/attack/energy_wall_rune.lua | 15 +
.../runes}/attack/explosion_rune.lua | 15 +
.../runes}/attack/fire_bomb_rune.lua | 15 +
.../runes}/attack/fire_field_rune.lua | 15 +
.../runes}/attack/fire_wall_rune.lua | 15 +
.../runes}/attack/fireball_rune.lua | 16 +
.../runes}/attack/great_fireball_rune.lua | 15 +
.../attack/heavy_magic_missile_rune.lua | 16 +
.../runes}/attack/holy_missile_rune.lua | 17 +
.../runes}/attack/icicle_rune.lua | 15 +
.../attack/light_magic_missile_rune.lua | 16 +
.../runes}/attack/light_stone_shower_rune.lua | 14 +
.../attack/lightest_magic_missile_rune.lua | 16 +
.../runes}/attack/lightest_missile_rune.lua | 16 +
data/scripts/runes/attack/magic_wall_rune.lua | 22 +
.../runes}/attack/paralyze_rune.lua | 19 +
.../runes}/attack/poison_bomb_rune.lua | 15 +
.../runes}/attack/poison_field_rune.lua | 15 +
.../runes}/attack/poison_wall_rune.lua | 15 +
.../runes}/attack/soulfire_rune.lua | 16 +
.../runes}/attack/stalagmite_rune.lua | 15 +
.../runes}/attack/stone_shower_rune.lua | 14 +
.../runes}/attack/sudden_death_rune.lua | 16 +
.../runes}/attack/thunderstorm_rune.lua | 14 +
.../scripts/runes/attack/wild_growth_rune.lua | 23 +
.../runes}/healing/cure_poison_rune.lua | 17 +
.../runes}/healing/intense_healing_rune.lua | 17 +
.../runes}/healing/ultimate_healing_rune.lua | 17 +
.../runes}/support/animate_dead_rune.lua | 15 +
.../runes/support/chameleon_rune.lua} | 17 +
.../runes/support/convince_creature_rune.lua} | 16 +
.../runes}/support/destroy_field_rune.lua | 16 +
.../runes}/support/disintegrate_rune.lua | 21 +-
data/scripts/spells/#example.lua | 33 -
.../spells}/attack/annihilation.lua | 18 +-
.../spells/attack/apprentice's_strike.lua | 31 +
.../spells}/attack/berserk.lua | 16 +-
.../spells}/attack/brutal_strike.lua | 18 +-
.../spells}/attack/buzz.lua | 19 +-
.../spells}/attack/chill_out.lua | 16 +-
.../spells}/attack/curse.lua | 18 +-
.../spells}/attack/death_strike.lua | 18 +-
.../spells}/attack/divine_caldera.lua | 16 +-
.../spells}/attack/divine_missile.lua | 18 +-
.../spells}/attack/electrify.lua | 18 +-
.../spells}/attack/energy_beam.lua | 16 +-
.../spells}/attack/energy_strike.lua | 18 +-
.../spells}/attack/energy_wave.lua | 16 +-
.../spells}/attack/envenom.lua | 18 +-
.../spells}/attack/eternal_winter.lua | 16 +-
.../spells}/attack/ethereal_spear.lua | 18 +-
.../spells}/attack/fierce_berserk.lua | 16 +-
.../spells}/attack/fire_wave.lua | 16 +-
.../spells}/attack/flame_strike.lua | 18 +-
.../spells}/attack/front_sweep.lua | 17 +-
.../spells}/attack/great_energy_beam.lua | 16 +-
.../spells}/attack/great_fire_wave.lua | 16 +-
.../spells}/attack/groundshaker.lua | 16 +-
.../spells}/attack/hell's_core.lua | 16 +-
.../spells}/attack/holy_flash.lua | 18 +-
.../spells}/attack/ice_strike.lua | 18 +-
.../spells}/attack/ice_wave.lua | 16 +-
.../spells}/attack/ignite.lua | 18 +-
.../spells}/attack/inflict_wound.lua | 17 +-
.../spells}/attack/lightning.lua | 18 +-
.../spells}/attack/mud_attack.lua | 19 +-
.../spells}/attack/physical_strike.lua | 18 +-
.../spells}/attack/practise_fire_wave.lua | 16 +-
.../spells}/attack/rage_of_the_skies.lua | 16 +-
.../spells}/attack/scorch.lua | 16 +-
.../spells}/attack/strong_energy_strike.lua | 18 +-
.../spells}/attack/strong_ethereal_spear.lua | 18 +-
.../spells}/attack/strong_flame_strike.lua | 18 +-
.../spells}/attack/strong_ice_strike.lua | 18 +-
.../spells}/attack/strong_ice_wave.lua | 16 +-
.../spells}/attack/strong_terra_strike.lua | 18 +-
.../spells}/attack/terra_strike.lua | 18 +-
.../spells}/attack/terra_wave.lua | 16 +-
.../spells}/attack/ultimate_energy_strike.lua | 18 +-
.../spells}/attack/ultimate_flame_strike.lua | 18 +-
.../spells}/attack/ultimate_ice_strike.lua | 18 +-
.../spells}/attack/ultimate_terra_strike.lua | 18 +-
.../spells}/attack/whirlwind_throw.lua | 19 +-
.../spells}/attack/wrath_of_nature.lua | 16 +-
.../spells/conjuring/animate_dead_rune.lua | 17 +
data/scripts/spells/conjuring/arrow_call.lua | 20 +
.../spells/conjuring/avalanche_rune.lua | 17 +
data/scripts/spells/conjuring/blank_rune.lua | 17 +
.../spells/conjuring/chameleon_rune.lua | 17 +
.../spells/conjuring/conjure_arrow.lua | 20 +
.../scripts/spells/conjuring/conjure_bolt.lua | 19 +
.../conjuring/conjure_explosive_arrow.lua | 20 +
.../conjuring/conjure_piercing_bolt.lua | 19 +
.../conjuring/conjure_poisoned_arrow.lua | 20 +
.../spells/conjuring/conjure_power_bolt.lua | 19 +
.../spells/conjuring/conjure_sniper_arrow.lua | 19 +
.../conjuring/convince_creature_rune.lua | 17 +
.../spells/conjuring/cure_poison_rune.lua | 17 +
.../spells/conjuring/destroy_field_rune.lua | 17 +
.../spells/conjuring/disintegrate_rune.lua | 17 +
.../spells/conjuring/enchant_spear.lua | 19 +
.../spells/conjuring/energy_bomb_rune.lua | 17 +
.../spells/conjuring/energy_field_rune.lua | 17 +
.../spells/conjuring/energy_wall_rune.lua | 17 +
.../spells/conjuring/explosion_rune.lua | 17 +
.../spells/conjuring/fire_bomb_rune.lua | 17 +
.../spells/conjuring/fire_field_rune.lua | 17 +
.../spells/conjuring/fire_wall_rune.lua | 17 +
.../spells/conjuring/fireball_rune.lua | 17 +
.../spells/conjuring/great_fireball_rune.lua | 17 +
.../conjuring/heavy_magic_missile_rune.lua | 17 +
.../spells/conjuring/holy_missile_rune.lua | 17 +
data/scripts/spells/conjuring/icicle_rune.lua | 17 +
.../spells/conjuring/intense_healing_rune.lua | 17 +
.../conjuring/light_magic_missile_rune.lua | 17 +
.../conjuring/light_stone_shower_rune.lua | 17 +
.../conjuring/lightest_missile_rune.lua | 17 +
.../spells/conjuring/magic_wall_rune.lua | 17 +
.../spells/conjuring/paralyze_rune.lua | 17 +
.../spells/conjuring/poison_bomb_rune.lua | 17 +
.../spells/conjuring/poison_field_rune.lua | 17 +
.../spells/conjuring/poison_wall_rune.lua | 17 +
.../conjuring/practise_magic_missile_rune.lua | 17 +
.../spells/conjuring/soulfire_rune.lua | 17 +
.../spells/conjuring/stalagmite_rune.lua | 18 +
.../spells/conjuring/stone_shower_rune.lua | 17 +
.../spells/conjuring/sudden_death_rune.lua | 17 +
.../spells/conjuring/thunderstorm_rune.lua | 17 +
.../conjuring/ultimate_healing_rune.lua | 17 +
.../spells/conjuring/wand_of_darkness.lua | 18 +
.../spells/conjuring/wild_growth_rune.lua | 15 +
.../spells}/healing/bruise_bane.lua | 17 +-
data/scripts/spells/healing/cure_bleeding.lua | 23 +
data/scripts/spells/healing/cure_burning.lua | 23 +
data/scripts/spells/healing/cure_curse.lua | 23 +
.../spells/healing/cure_electrification.lua | 23 +
data/scripts/spells/healing/cure_poison.lua | 23 +
.../spells}/healing/divine_healing.lua | 18 +-
.../spells}/healing/fair_wound_cleansing.lua | 17 +-
.../spells}/healing/heal_friend.lua | 20 +-
.../spells/healing/intense_healing.lua | 32 +
.../spells}/healing/intense_recovery.lua | 17 +-
.../healing/intense_wound_cleansing.lua | 17 +-
.../spells}/healing/light_healing.lua | 17 +-
.../spells}/healing/magic_patch.lua | 17 +-
.../spells}/healing/mass_healing.lua | 16 +-
.../spells}/healing/natures_embrace.lua | 20 +-
.../spells}/healing/practise_healing.lua | 17 +-
.../spells}/healing/recovery.lua | 17 +-
.../spells}/healing/restoration.lua | 17 +-
.../spells}/healing/salvation.lua | 17 +-
.../spells}/healing/ultimate_healing.lua | 17 +-
.../spells}/healing/wound_cleansing.lua | 18 +-
.../spells}/house/edit_door.lua | 9 +-
.../spells}/house/invite_guests.lua | 9 +-
.../spells}/house/invite_subowners.lua | 9 +-
.../spells}/house/kick_guest.lua | 11 +-
.../spells}/monster/aggresive_lava_bomb.lua | 18 +-
.../barbarian_brutetamer_skill_reducer.lua | 11 +-
.../monster/betrayed_wraith_skill_reducer.lua | 21 +
.../spells}/monster/blightwalker_curse.lua | 10 +-
.../spells}/monster/choking_fear_drown.lua | 10 +-
.../monster/cliff_strider_electrify.lua | 11 +-
.../monster/cliff_strider_skill_reducer.lua | 20 +
.../monster/dark_torturer_skill_reducer.lua | 21 +
.../spells}/monster/death_blob_curse.lua | 11 +-
.../deepling_spellsinger_skill_reducer.lua | 11 +-
.../monster/demon_outcast_skill_reducer.lua | 21 +
.../monster/diabolic_imp_skill_reducer.lua | 23 +
.../monster/dipthrah_skill_reducer.lua | 10 +-
.../monster/djinn_cancel_invisibility.lua | 15 +
.../spells}/monster/djinn_electrify.lua | 11 +-
.../monster/draken_abomination_curse.lua | 11 +-
.../spells}/monster/ember_beast_area.lua | 16 +-
.../spells}/monster/ember_beast_beam.lua | 20 +-
.../monster/energy_elemental_electrify.lua | 10 +-
.../monster/energy_pulse_explosion.lua | 10 +-
.../enslaved_dwarf_skill_reducer_1.lua | 22 +
.../enslaved_dwarf_skill_reducer_2.lua | 20 +
.../scripts/spells/monster/explosion_wave.lua | 19 +
.../spells}/monster/ferumbras_electrify.lua | 10 +-
.../spells}/monster/ferumbras_soulfire.lua | 11 +-
.../monster/feversleep_skill_reducer.lua | 20 +
.../monster/forest_fury_skill_reducer.lua | 11 +-
.../spells}/monster/freed_soul_spell.lua | 11 +-
.../spells}/monster/frozen_minion_beam.lua | 11 +-
.../spells}/monster/frozen_minion_heal.lua | 11 +-
.../spells}/monster/frozen_minion_wave.lua | 11 +-
.../spells}/monster/fury_skill_reducer.lua | 10 +-
.../spells}/monster/ghastly_dragon_curse.lua | 11 +-
.../monster/glooth_fairy_skill_reducer.lua | 11 +-
.../spells}/monster/heal_monsters.lua | 12 +-
.../spells}/monster/heal_monsters_9x9.lua | 12 +-
.../monster/hellfire_fighter_soulfire.lua | 10 +-
.../spells}/monster/hellspawn_soulfire.lua | 12 +-
.../spells}/monster/hirintror_freeze.lua | 10 +-
.../monster/hirintror_skill_reducer.lua | 10 +-
.../monster/ice_golem_skill_reducer.lua | 10 +-
.../spells}/monster/icicle_heal.lua | 11 +-
.../spells}/monster/lancer_beetle_curse.lua | 11 +-
.../spells}/monster/lava_golem_soulfire.lua | 10 +-
.../monster/lizard_magistratus_curse.lua | 11 +-
.../spells}/monster/lloyd_wave_1.lua | 11 +-
.../spells}/monster/lloyd_wave_2.lua | 11 +-
.../monster/magma_crawler_soulfire.lua | 10 +-
.../massive_energy_elemental_electrify.lua | 10 +-
.../massive_fire_elemental_soulfire.lua | 10 +-
.../spells}/monster/monster_soulfire.lua | 12 +-
.../spells}/monster/mutated_bat_curse.lua | 11 +-
.../spells}/monster/phantasm_drown.lua | 11 +-
.../spells}/monster/physical_explosion.lua | 11 +-
.../monster/pirate_corsair_skill_reducer.lua | 21 +
.../spells}/monster/pixie_skill_reducer.lua | 10 +-
.../monster/quara_constrictor_electrify.lua | 11 +-
.../monster/quara_constrictor_freeze.lua | 10 +-
.../spells}/monster/remorseless_wave.lua | 12 +-
.../spells}/monster/root_branchy.lua | 11 +-
.../spells}/monster/sea_serpent_drown.lua | 11 +-
.../monster/shock_head_skill_reducer_1.lua | 22 +
.../monster/shock_head_skill_reducer_2.lua | 20 +
.../monster/silencer_skill_reducer.lua | 16 +-
.../spells}/monster/souleater_drown.lua | 11 +-
.../monster/source_of_corruption_wave.lua | 18 +-
.../spells}/monster/spectre_drown.lua | 10 +-
.../spells}/monster/stampor_skill_reducer.lua | 11 +-
.../spells}/monster/summon_challenge.lua | 10 +-
.../spells}/monster/undead_dragon_curse.lua | 11 +-
.../spells}/monster/vulcongra_soulfire.lua | 10 +-
.../spells}/monster/war_golem_electrify.lua | 11 +-
.../monster/war_golem_skill_reducer.lua | 21 +
.../spells}/monster/warlock_skill_reducer.lua | 11 +-
data/scripts/spells/monster/wave_t.lua | 19 +
.../monster/werewolf_skill_reducer.lua | 11 +-
.../monster/young_sea_serpent_drown.lua | 11 +-
.../spells}/party/enchant_party.lua | 17 +-
.../spells}/party/heal_party.lua | 17 +-
.../spells}/party/protect_party.lua | 17 +-
.../spells}/party/train_party.lua | 17 +-
.../spells}/support/blood_rage.lua | 17 +-
.../spells/support/cancel_invisibility.lua | 23 +
.../{ => support}/cancel_magic_shield.lua | 0
.../spells}/support/challenge.lua | 16 +-
data/scripts/spells/support/charge.lua | 27 +
.../spells}/support/creature_illusion.lua | 17 +-
.../spells}/support/find_person.lua | 36 +-
data/scripts/spells/support/food.lua | 34 +
data/scripts/spells/support/great_light.lua | 28 +
data/scripts/spells/support/haste.lua | 27 +
data/scripts/spells/support/invisible.lua | 26 +
.../spells}/support/levitate.lua | 17 +-
data/scripts/spells/support/light.lua | 28 +
.../spells}/support/magic_rope.lua | 17 +-
.../spells/{ => support}/magic_shield.lua | 0
.../spells}/support/protector.lua | 17 +-
.../spells}/support/sharpshooter.lua | 17 +-
data/scripts/spells/support/strong_haste.lua | 27 +
.../spells}/support/summon_creature.lua | 15 +-
.../spells}/support/swift_foot.lua | 17 +-
.../spells}/support/ultimate_light.lua | 17 +-
data/spells/lib/spells.lua | 326 +------
.../scripts/attack/apprentice's_strike.lua | 14 -
.../spells/scripts/attack/magic_wall_rune.lua | 7 -
.../scripts/attack/wild_growth_rune.lua | 7 -
.../scripts/conjuring/animate_dead_rune.lua | 3 -
data/spells/scripts/conjuring/arrow_call.lua | 3 -
.../scripts/conjuring/avalanche_rune.lua | 3 -
data/spells/scripts/conjuring/blank_rune.lua | 3 -
.../scripts/conjuring/chameleon_rune.lua | 3 -
.../scripts/conjuring/conjure_arrow.lua | 3 -
.../spells/scripts/conjuring/conjure_bolt.lua | 3 -
.../conjuring/conjure_explosive_arrow.lua | 3 -
.../conjuring/conjure_piercing_bolt.lua | 3 -
.../conjuring/conjure_poisoned_arrow.lua | 3 -
.../scripts/conjuring/conjure_power_bolt.lua | 3 -
.../conjuring/conjure_sniper_arrow.lua | 3 -
.../conjuring/convince_creature_rune.lua | 3 -
.../scripts/conjuring/cure_poison_rune.lua | 3 -
.../scripts/conjuring/destroy_field_rune.lua | 3 -
.../scripts/conjuring/disintegrate_rune.lua | 3 -
.../scripts/conjuring/enchant_spear.lua | 3 -
.../scripts/conjuring/energy_bomb_rune.lua | 3 -
.../scripts/conjuring/energy_field_rune.lua | 3 -
.../scripts/conjuring/energy_wall_rune.lua | 3 -
.../scripts/conjuring/explosion_rune.lua | 3 -
.../scripts/conjuring/fire_bomb_rune.lua | 3 -
.../scripts/conjuring/fire_field_rune.lua | 3 -
.../scripts/conjuring/fire_wall_rune.lua | 3 -
.../scripts/conjuring/fireball_rune.lua | 3 -
.../scripts/conjuring/great_fireball_rune.lua | 3 -
.../conjuring/heavy_magic_missile_rune.lua | 3 -
.../scripts/conjuring/holy_missile_rune.lua | 3 -
data/spells/scripts/conjuring/icicle_rune.lua | 3 -
.../conjuring/intense_healing_rune.lua | 3 -
.../conjuring/light_magic_missile_rune.lua | 3 -
.../conjuring/light_stone_shower_rune.lua | 3 -
.../conjuring/lightest_missile_rune.lua | 3 -
.../scripts/conjuring/magic_wall_rune.lua | 3 -
.../scripts/conjuring/paralyze_rune.lua | 3 -
.../scripts/conjuring/poison_bomb_rune.lua | 3 -
.../scripts/conjuring/poison_field_rune.lua | 3 -
.../scripts/conjuring/poison_wall_rune.lua | 3 -
.../conjuring/practise_magic_missile_rune.lua | 3 -
.../scripts/conjuring/soulfire_rune.lua | 3 -
.../scripts/conjuring/stalagmite_rune.lua | 3 -
.../scripts/conjuring/stone_shower_rune.lua | 3 -
.../scripts/conjuring/sudden_death_rune.lua | 3 -
.../scripts/conjuring/thunderstorm_rune.lua | 3 -
.../conjuring/ultimate_healing_rune.lua | 3 -
.../scripts/conjuring/wand_of_darkness.lua | 3 -
.../scripts/conjuring/wild_growth_rune.lua | 3 -
data/spells/scripts/custom/apocalypse.lua | 25 -
data/spells/scripts/custom/combustion.lua | 15 -
data/spells/scripts/custom/drunk.lua | 11 -
data/spells/scripts/custom/magic_prison.lua | 8 -
data/spells/scripts/custom/polymorph.lua | 29 -
data/spells/scripts/healing/cure_bleeding.lua | 8 -
data/spells/scripts/healing/cure_burning.lua | 8 -
data/spells/scripts/healing/cure_curse.lua | 8 -
.../scripts/healing/cure_electrification.lua | 8 -
data/spells/scripts/healing/cure_poison.lua | 8 -
.../monster/betrayed_wraith_skill_reducer.lua | 15 -
.../monster/cliff_strider_skill_reducer.lua | 15 -
.../monster/dark_torturer_skill_reducer.lua | 15 -
.../monster/demon_outcast_skill_reducer.lua | 15 -
.../monster/diabolic_imp_skill_reducer.lua | 17 -
.../monster/djinn_cancel_invisibility.lua | 7 -
.../enslaved_dwarf_skill_reducer_1.lua | 17 -
.../enslaved_dwarf_skill_reducer_2.lua | 15 -
.../spells/scripts/monster/explosion_wave.lua | 15 -
.../monster/feversleep_skill_reducer.lua | 15 -
.../monster/pirate_corsair_skill_reducer.lua | 15 -
.../monster/shock_head_skill_reducer_1.lua | 16 -
.../monster/shock_head_skill_reducer_2.lua | 15 -
.../monster/war_golem_skill_reducer.lua | 15 -
data/spells/scripts/monster/wave_t.lua | 14 -
.../scripts/support/cancel_invisibility.lua | 8 -
data/spells/scripts/support/charge.lua | 12 -
data/spells/scripts/support/food.lua | 19 -
data/spells/scripts/support/great_light.lua | 13 -
data/spells/scripts/support/haste.lua | 12 -
data/spells/scripts/support/invisible.lua | 11 -
data/spells/scripts/support/light.lua | 13 -
data/spells/scripts/support/strong_haste.lua | 12 -
data/spells/spells.xml | 843 +-----------------
349 files changed, 4385 insertions(+), 2014 deletions(-)
create mode 100644 data/scripts/lib/spells.lua
rename data/{spells/scripts/healing/intense_healing.lua => scripts/runes/#example.lua} (57%)
rename data/{spells/scripts => scripts/runes}/attack/avalanche_rune.lua (69%)
rename data/{spells/scripts => scripts/runes}/attack/energy_bomb_rune.lua (58%)
rename data/{spells/scripts => scripts/runes}/attack/energy_field_rune.lua (55%)
rename data/{spells/scripts => scripts/runes}/attack/energy_wall_rune.lua (60%)
rename data/{spells/scripts => scripts/runes}/attack/explosion_rune.lua (69%)
rename data/{spells/scripts => scripts/runes}/attack/fire_bomb_rune.lua (55%)
rename data/{spells/scripts => scripts/runes}/attack/fire_field_rune.lua (51%)
rename data/{spells/scripts => scripts/runes}/attack/fire_wall_rune.lua (56%)
rename data/{spells/scripts => scripts/runes}/attack/fireball_rune.lua (63%)
rename data/{spells/scripts => scripts/runes}/attack/great_fireball_rune.lua (66%)
rename data/{spells/scripts => scripts/runes}/attack/heavy_magic_missile_rune.lua (63%)
rename data/{spells/scripts => scripts/runes}/attack/holy_missile_rune.lua (60%)
rename data/{spells/scripts => scripts/runes}/attack/icicle_rune.lua (66%)
rename data/{spells/scripts => scripts/runes}/attack/light_magic_missile_rune.lua (63%)
rename data/{spells/scripts => scripts/runes}/attack/light_stone_shower_rune.lua (70%)
rename data/{spells/scripts => scripts/runes}/attack/lightest_magic_missile_rune.lua (58%)
rename data/{spells/scripts => scripts/runes}/attack/lightest_missile_rune.lua (65%)
create mode 100644 data/scripts/runes/attack/magic_wall_rune.lua
rename data/{spells/scripts => scripts/runes}/attack/paralyze_rune.lua (53%)
rename data/{spells/scripts => scripts/runes}/attack/poison_bomb_rune.lua (54%)
rename data/{spells/scripts => scripts/runes}/attack/poison_field_rune.lua (51%)
rename data/{spells/scripts => scripts/runes}/attack/poison_wall_rune.lua (56%)
rename data/{spells/scripts => scripts/runes}/attack/soulfire_rune.lua (68%)
rename data/{spells/scripts => scripts/runes}/attack/stalagmite_rune.lua (65%)
rename data/{spells/scripts => scripts/runes}/attack/stone_shower_rune.lua (68%)
rename data/{spells/scripts => scripts/runes}/attack/sudden_death_rune.lua (63%)
rename data/{spells/scripts => scripts/runes}/attack/thunderstorm_rune.lua (69%)
create mode 100644 data/scripts/runes/attack/wild_growth_rune.lua
rename data/{spells/scripts => scripts/runes}/healing/cure_poison_rune.lua (50%)
rename data/{spells/scripts => scripts/runes}/healing/intense_healing_rune.lua (65%)
rename data/{spells/scripts => scripts/runes}/healing/ultimate_healing_rune.lua (65%)
rename data/{spells/scripts => scripts/runes}/support/animate_dead_rune.lua (69%)
rename data/{spells/scripts/support/chameleon.lua => scripts/runes/support/chameleon_rune.lua} (69%)
rename data/{spells/scripts/support/convince_creature.lua => scripts/runes/support/convince_creature_rune.lua} (78%)
rename data/{spells/scripts => scripts/runes}/support/destroy_field_rune.lua (58%)
rename data/{spells/scripts => scripts/runes}/support/disintegrate_rune.lua (54%)
rename data/{spells/scripts => scripts/spells}/attack/annihilation.lua (62%)
create mode 100644 data/scripts/spells/attack/apprentice's_strike.lua
rename data/{spells/scripts => scripts/spells}/attack/berserk.lua (65%)
rename data/{spells/scripts => scripts/spells}/attack/brutal_strike.lua (63%)
rename data/{spells/scripts => scripts/spells}/attack/buzz.lua (58%)
rename data/{spells/scripts => scripts/spells}/attack/chill_out.lua (61%)
rename data/{spells/scripts => scripts/spells}/attack/curse.lua (60%)
rename data/{spells/scripts => scripts/spells}/attack/death_strike.lua (56%)
rename data/{spells/scripts => scripts/spells}/attack/divine_caldera.lua (58%)
rename data/{spells/scripts => scripts/spells}/attack/divine_missile.lua (56%)
rename data/{spells/scripts => scripts/spells}/attack/electrify.lua (62%)
rename data/{spells/scripts => scripts/spells}/attack/energy_beam.lua (59%)
rename data/{spells/scripts => scripts/spells}/attack/energy_strike.lua (54%)
rename data/{spells/scripts => scripts/spells}/attack/energy_wave.lua (62%)
rename data/{spells/scripts => scripts/spells}/attack/envenom.lua (63%)
rename data/{spells/scripts => scripts/spells}/attack/eternal_winter.lua (58%)
rename data/{spells/scripts => scripts/spells}/attack/ethereal_spear.lua (63%)
rename data/{spells/scripts => scripts/spells}/attack/fierce_berserk.lua (64%)
rename data/{spells/scripts => scripts/spells}/attack/fire_wave.lua (59%)
rename data/{spells/scripts => scripts/spells}/attack/flame_strike.lua (54%)
rename data/{spells/scripts => scripts/spells}/attack/front_sweep.lua (63%)
rename data/{spells/scripts => scripts/spells}/attack/great_energy_beam.lua (57%)
rename data/{spells/scripts => scripts/spells}/attack/great_fire_wave.lua (58%)
rename data/{spells/scripts => scripts/spells}/attack/groundshaker.lua (65%)
rename data/{spells/scripts => scripts/spells}/attack/hell's_core.lua (57%)
rename data/{spells/scripts => scripts/spells}/attack/holy_flash.lua (63%)
rename data/{spells/scripts => scripts/spells}/attack/ice_strike.lua (54%)
rename data/{spells/scripts => scripts/spells}/attack/ice_wave.lua (59%)
rename data/{spells/scripts => scripts/spells}/attack/ignite.lua (61%)
rename data/{spells/scripts => scripts/spells}/attack/inflict_wound.lua (72%)
rename data/{spells/scripts => scripts/spells}/attack/lightning.lua (55%)
rename data/{spells/scripts => scripts/spells}/attack/mud_attack.lua (58%)
rename data/{spells/scripts => scripts/spells}/attack/physical_strike.lua (58%)
rename data/{spells/scripts => scripts/spells}/attack/practise_fire_wave.lua (54%)
rename data/{spells/scripts => scripts/spells}/attack/rage_of_the_skies.lua (57%)
rename data/{spells/scripts => scripts/spells}/attack/scorch.lua (61%)
rename data/{spells/scripts => scripts/spells}/attack/strong_energy_strike.lua (54%)
rename data/{spells/scripts => scripts/spells}/attack/strong_ethereal_spear.lua (62%)
rename data/{spells/scripts => scripts/spells}/attack/strong_flame_strike.lua (54%)
rename data/{spells/scripts => scripts/spells}/attack/strong_ice_strike.lua (54%)
rename data/{spells/scripts => scripts/spells}/attack/strong_ice_wave.lua (57%)
rename data/{spells/scripts => scripts/spells}/attack/strong_terra_strike.lua (55%)
rename data/{spells/scripts => scripts/spells}/attack/terra_strike.lua (54%)
rename data/{spells/scripts => scripts/spells}/attack/terra_wave.lua (60%)
rename data/{spells/scripts => scripts/spells}/attack/ultimate_energy_strike.lua (55%)
rename data/{spells/scripts => scripts/spells}/attack/ultimate_flame_strike.lua (55%)
rename data/{spells/scripts => scripts/spells}/attack/ultimate_ice_strike.lua (55%)
rename data/{spells/scripts => scripts/spells}/attack/ultimate_terra_strike.lua (55%)
rename data/{spells/scripts => scripts/spells}/attack/whirlwind_throw.lua (61%)
rename data/{spells/scripts => scripts/spells}/attack/wrath_of_nature.lua (58%)
create mode 100644 data/scripts/spells/conjuring/animate_dead_rune.lua
create mode 100644 data/scripts/spells/conjuring/arrow_call.lua
create mode 100644 data/scripts/spells/conjuring/avalanche_rune.lua
create mode 100644 data/scripts/spells/conjuring/blank_rune.lua
create mode 100644 data/scripts/spells/conjuring/chameleon_rune.lua
create mode 100644 data/scripts/spells/conjuring/conjure_arrow.lua
create mode 100644 data/scripts/spells/conjuring/conjure_bolt.lua
create mode 100644 data/scripts/spells/conjuring/conjure_explosive_arrow.lua
create mode 100644 data/scripts/spells/conjuring/conjure_piercing_bolt.lua
create mode 100644 data/scripts/spells/conjuring/conjure_poisoned_arrow.lua
create mode 100644 data/scripts/spells/conjuring/conjure_power_bolt.lua
create mode 100644 data/scripts/spells/conjuring/conjure_sniper_arrow.lua
create mode 100644 data/scripts/spells/conjuring/convince_creature_rune.lua
create mode 100644 data/scripts/spells/conjuring/cure_poison_rune.lua
create mode 100644 data/scripts/spells/conjuring/destroy_field_rune.lua
create mode 100644 data/scripts/spells/conjuring/disintegrate_rune.lua
create mode 100644 data/scripts/spells/conjuring/enchant_spear.lua
create mode 100644 data/scripts/spells/conjuring/energy_bomb_rune.lua
create mode 100644 data/scripts/spells/conjuring/energy_field_rune.lua
create mode 100644 data/scripts/spells/conjuring/energy_wall_rune.lua
create mode 100644 data/scripts/spells/conjuring/explosion_rune.lua
create mode 100644 data/scripts/spells/conjuring/fire_bomb_rune.lua
create mode 100644 data/scripts/spells/conjuring/fire_field_rune.lua
create mode 100644 data/scripts/spells/conjuring/fire_wall_rune.lua
create mode 100644 data/scripts/spells/conjuring/fireball_rune.lua
create mode 100644 data/scripts/spells/conjuring/great_fireball_rune.lua
create mode 100644 data/scripts/spells/conjuring/heavy_magic_missile_rune.lua
create mode 100644 data/scripts/spells/conjuring/holy_missile_rune.lua
create mode 100644 data/scripts/spells/conjuring/icicle_rune.lua
create mode 100644 data/scripts/spells/conjuring/intense_healing_rune.lua
create mode 100644 data/scripts/spells/conjuring/light_magic_missile_rune.lua
create mode 100644 data/scripts/spells/conjuring/light_stone_shower_rune.lua
create mode 100644 data/scripts/spells/conjuring/lightest_missile_rune.lua
create mode 100644 data/scripts/spells/conjuring/magic_wall_rune.lua
create mode 100644 data/scripts/spells/conjuring/paralyze_rune.lua
create mode 100644 data/scripts/spells/conjuring/poison_bomb_rune.lua
create mode 100644 data/scripts/spells/conjuring/poison_field_rune.lua
create mode 100644 data/scripts/spells/conjuring/poison_wall_rune.lua
create mode 100644 data/scripts/spells/conjuring/practise_magic_missile_rune.lua
create mode 100644 data/scripts/spells/conjuring/soulfire_rune.lua
create mode 100644 data/scripts/spells/conjuring/stalagmite_rune.lua
create mode 100644 data/scripts/spells/conjuring/stone_shower_rune.lua
create mode 100644 data/scripts/spells/conjuring/sudden_death_rune.lua
create mode 100644 data/scripts/spells/conjuring/thunderstorm_rune.lua
create mode 100644 data/scripts/spells/conjuring/ultimate_healing_rune.lua
create mode 100644 data/scripts/spells/conjuring/wand_of_darkness.lua
create mode 100644 data/scripts/spells/conjuring/wild_growth_rune.lua
rename data/{spells/scripts => scripts/spells}/healing/bruise_bane.lua (62%)
create mode 100644 data/scripts/spells/healing/cure_bleeding.lua
create mode 100644 data/scripts/spells/healing/cure_burning.lua
create mode 100644 data/scripts/spells/healing/cure_curse.lua
create mode 100644 data/scripts/spells/healing/cure_electrification.lua
create mode 100644 data/scripts/spells/healing/cure_poison.lua
rename data/{spells/scripts => scripts/spells}/healing/divine_healing.lua (58%)
rename data/{spells/scripts => scripts/spells}/healing/fair_wound_cleansing.lua (59%)
rename data/{spells/scripts => scripts/spells}/healing/heal_friend.lua (65%)
create mode 100644 data/scripts/spells/healing/intense_healing.lua
rename data/{spells/scripts => scripts/spells}/healing/intense_recovery.lua (54%)
rename data/{spells/scripts => scripts/spells}/healing/intense_wound_cleansing.lua (58%)
rename data/{spells/scripts => scripts/spells}/healing/light_healing.lua (55%)
rename data/{spells/scripts => scripts/spells}/healing/magic_patch.lua (57%)
rename data/{spells/scripts => scripts/spells}/healing/mass_healing.lua (65%)
rename data/{spells/scripts => scripts/spells}/healing/natures_embrace.lua (65%)
rename data/{spells/scripts => scripts/spells}/healing/practise_healing.lua (56%)
rename data/{spells/scripts => scripts/spells}/healing/recovery.lua (55%)
rename data/{spells/scripts => scripts/spells}/healing/restoration.lua (57%)
rename data/{spells/scripts => scripts/spells}/healing/salvation.lua (59%)
rename data/{spells/scripts => scripts/spells}/healing/ultimate_healing.lua (57%)
rename data/{spells/scripts => scripts/spells}/healing/wound_cleansing.lua (58%)
rename data/{spells/scripts => scripts/spells}/house/edit_door.lua (75%)
rename data/{spells/scripts => scripts/spells}/house/invite_guests.lua (66%)
rename data/{spells/scripts => scripts/spells}/house/invite_subowners.lua (66%)
rename data/{spells/scripts => scripts/spells}/house/kick_guest.lua (57%)
rename data/{spells/scripts => scripts/spells}/monster/aggresive_lava_bomb.lua (68%)
rename data/{spells/scripts => scripts/spells}/monster/barbarian_brutetamer_skill_reducer.lua (76%)
create mode 100644 data/scripts/spells/monster/betrayed_wraith_skill_reducer.lua
rename data/{spells/scripts => scripts/spells}/monster/blightwalker_curse.lua (67%)
rename data/{spells/scripts => scripts/spells}/monster/choking_fear_drown.lua (65%)
rename data/{spells/scripts => scripts/spells}/monster/cliff_strider_electrify.lua (59%)
create mode 100644 data/scripts/spells/monster/cliff_strider_skill_reducer.lua
create mode 100644 data/scripts/spells/monster/dark_torturer_skill_reducer.lua
rename data/{spells/scripts => scripts/spells}/monster/death_blob_curse.lua (66%)
rename data/{spells/scripts => scripts/spells}/monster/deepling_spellsinger_skill_reducer.lua (71%)
create mode 100644 data/scripts/spells/monster/demon_outcast_skill_reducer.lua
create mode 100644 data/scripts/spells/monster/diabolic_imp_skill_reducer.lua
rename data/{spells/scripts => scripts/spells}/monster/dipthrah_skill_reducer.lua (71%)
create mode 100644 data/scripts/spells/monster/djinn_cancel_invisibility.lua
rename data/{spells/scripts => scripts/spells}/monster/djinn_electrify.lua (64%)
rename data/{spells/scripts => scripts/spells}/monster/draken_abomination_curse.lua (65%)
rename data/{spells/scripts => scripts/spells}/monster/ember_beast_area.lua (72%)
rename data/{spells/scripts => scripts/spells}/monster/ember_beast_beam.lua (70%)
rename data/{spells/scripts => scripts/spells}/monster/energy_elemental_electrify.lua (64%)
rename data/{spells/scripts => scripts/spells}/monster/energy_pulse_explosion.lua (79%)
create mode 100644 data/scripts/spells/monster/enslaved_dwarf_skill_reducer_1.lua
create mode 100644 data/scripts/spells/monster/enslaved_dwarf_skill_reducer_2.lua
create mode 100644 data/scripts/spells/monster/explosion_wave.lua
rename data/{spells/scripts => scripts/spells}/monster/ferumbras_electrify.lua (82%)
rename data/{spells/scripts => scripts/spells}/monster/ferumbras_soulfire.lua (82%)
create mode 100644 data/scripts/spells/monster/feversleep_skill_reducer.lua
rename data/{spells/scripts => scripts/spells}/monster/forest_fury_skill_reducer.lua (69%)
rename data/{spells/scripts => scripts/spells}/monster/freed_soul_spell.lua (80%)
rename data/{spells/scripts => scripts/spells}/monster/frozen_minion_beam.lua (74%)
rename data/{spells/scripts => scripts/spells}/monster/frozen_minion_heal.lua (72%)
rename data/{spells/scripts => scripts/spells}/monster/frozen_minion_wave.lua (78%)
rename data/{spells/scripts => scripts/spells}/monster/fury_skill_reducer.lua (69%)
rename data/{spells/scripts => scripts/spells}/monster/ghastly_dragon_curse.lua (66%)
rename data/{spells/scripts => scripts/spells}/monster/glooth_fairy_skill_reducer.lua (76%)
rename data/{spells/scripts => scripts/spells}/monster/heal_monsters.lua (73%)
rename data/{spells/scripts => scripts/spells}/monster/heal_monsters_9x9.lua (73%)
rename data/{spells/scripts => scripts/spells}/monster/hellfire_fighter_soulfire.lua (64%)
rename data/{spells/scripts => scripts/spells}/monster/hellspawn_soulfire.lua (62%)
rename data/{spells/scripts => scripts/spells}/monster/hirintror_freeze.lua (81%)
rename data/{spells/scripts => scripts/spells}/monster/hirintror_skill_reducer.lua (76%)
rename data/{spells/scripts => scripts/spells}/monster/ice_golem_skill_reducer.lua (68%)
rename data/{spells/scripts => scripts/spells}/monster/icicle_heal.lua (73%)
rename data/{spells/scripts => scripts/spells}/monster/lancer_beetle_curse.lua (65%)
rename data/{spells/scripts => scripts/spells}/monster/lava_golem_soulfire.lua (65%)
rename data/{spells/scripts => scripts/spells}/monster/lizard_magistratus_curse.lua (65%)
rename data/{spells/scripts => scripts/spells}/monster/lloyd_wave_1.lua (71%)
rename data/{spells/scripts => scripts/spells}/monster/lloyd_wave_2.lua (71%)
rename data/{spells/scripts => scripts/spells}/monster/magma_crawler_soulfire.lua (65%)
rename data/{spells/scripts => scripts/spells}/monster/massive_energy_elemental_electrify.lua (64%)
rename data/{spells/scripts => scripts/spells}/monster/massive_fire_elemental_soulfire.lua (64%)
rename data/{spells/scripts => scripts/spells}/monster/monster_soulfire.lua (62%)
rename data/{spells/scripts => scripts/spells}/monster/mutated_bat_curse.lua (68%)
rename data/{spells/scripts => scripts/spells}/monster/phantasm_drown.lua (63%)
rename data/{spells/scripts => scripts/spells}/monster/physical_explosion.lua (63%)
create mode 100644 data/scripts/spells/monster/pirate_corsair_skill_reducer.lua
rename data/{spells/scripts => scripts/spells}/monster/pixie_skill_reducer.lua (72%)
rename data/{spells/scripts => scripts/spells}/monster/quara_constrictor_electrify.lua (63%)
rename data/{spells/scripts => scripts/spells}/monster/quara_constrictor_freeze.lua (65%)
rename data/{spells/scripts => scripts/spells}/monster/remorseless_wave.lua (83%)
rename data/{spells/scripts => scripts/spells}/monster/root_branchy.lua (60%)
rename data/{spells/scripts => scripts/spells}/monster/sea_serpent_drown.lua (63%)
create mode 100644 data/scripts/spells/monster/shock_head_skill_reducer_1.lua
create mode 100644 data/scripts/spells/monster/shock_head_skill_reducer_2.lua
rename data/{spells/scripts => scripts/spells}/monster/silencer_skill_reducer.lua (51%)
rename data/{spells/scripts => scripts/spells}/monster/souleater_drown.lua (63%)
rename data/{spells/scripts => scripts/spells}/monster/source_of_corruption_wave.lua (70%)
rename data/{spells/scripts => scripts/spells}/monster/spectre_drown.lua (66%)
rename data/{spells/scripts => scripts/spells}/monster/stampor_skill_reducer.lua (73%)
rename data/{spells/scripts => scripts/spells}/monster/summon_challenge.lua (63%)
rename data/{spells/scripts => scripts/spells}/monster/undead_dragon_curse.lua (68%)
rename data/{spells/scripts => scripts/spells}/monster/vulcongra_soulfire.lua (65%)
rename data/{spells/scripts => scripts/spells}/monster/war_golem_electrify.lua (59%)
create mode 100644 data/scripts/spells/monster/war_golem_skill_reducer.lua
rename data/{spells/scripts => scripts/spells}/monster/warlock_skill_reducer.lua (69%)
create mode 100644 data/scripts/spells/monster/wave_t.lua
rename data/{spells/scripts => scripts/spells}/monster/werewolf_skill_reducer.lua (66%)
rename data/{spells/scripts => scripts/spells}/monster/young_sea_serpent_drown.lua (62%)
rename data/{spells/scripts => scripts/spells}/party/enchant_party.lua (53%)
rename data/{spells/scripts => scripts/spells}/party/heal_party.lua (56%)
rename data/{spells/scripts => scripts/spells}/party/protect_party.lua (52%)
rename data/{spells/scripts => scripts/spells}/party/train_party.lua (58%)
rename data/{spells/scripts => scripts/spells}/support/blood_rage.lua (57%)
create mode 100644 data/scripts/spells/support/cancel_invisibility.lua
rename data/scripts/spells/{ => support}/cancel_magic_shield.lua (100%)
rename data/{spells/scripts => scripts/spells}/support/challenge.lua (51%)
create mode 100644 data/scripts/spells/support/charge.lua
rename data/{spells/scripts => scripts/spells}/support/creature_illusion.lua (63%)
rename data/{spells/scripts => scripts/spells}/support/find_person.lua (71%)
create mode 100644 data/scripts/spells/support/food.lua
create mode 100644 data/scripts/spells/support/great_light.lua
create mode 100644 data/scripts/spells/support/haste.lua
create mode 100644 data/scripts/spells/support/invisible.lua
rename data/{spells/scripts => scripts/spells}/support/levitate.lua (72%)
create mode 100644 data/scripts/spells/support/light.lua
rename data/{spells/scripts => scripts/spells}/support/magic_rope.lua (51%)
rename data/scripts/spells/{ => support}/magic_shield.lua (100%)
rename data/{spells/scripts => scripts/spells}/support/protector.lua (68%)
rename data/{spells/scripts => scripts/spells}/support/sharpshooter.lua (61%)
create mode 100644 data/scripts/spells/support/strong_haste.lua
rename data/{spells/scripts => scripts/spells}/support/summon_creature.lua (80%)
rename data/{spells/scripts => scripts/spells}/support/swift_foot.lua (65%)
rename data/{spells/scripts => scripts/spells}/support/ultimate_light.lua (51%)
delete mode 100644 data/spells/scripts/attack/apprentice's_strike.lua
delete mode 100644 data/spells/scripts/attack/magic_wall_rune.lua
delete mode 100644 data/spells/scripts/attack/wild_growth_rune.lua
delete mode 100644 data/spells/scripts/conjuring/animate_dead_rune.lua
delete mode 100644 data/spells/scripts/conjuring/arrow_call.lua
delete mode 100644 data/spells/scripts/conjuring/avalanche_rune.lua
delete mode 100644 data/spells/scripts/conjuring/blank_rune.lua
delete mode 100644 data/spells/scripts/conjuring/chameleon_rune.lua
delete mode 100644 data/spells/scripts/conjuring/conjure_arrow.lua
delete mode 100644 data/spells/scripts/conjuring/conjure_bolt.lua
delete mode 100644 data/spells/scripts/conjuring/conjure_explosive_arrow.lua
delete mode 100644 data/spells/scripts/conjuring/conjure_piercing_bolt.lua
delete mode 100644 data/spells/scripts/conjuring/conjure_poisoned_arrow.lua
delete mode 100644 data/spells/scripts/conjuring/conjure_power_bolt.lua
delete mode 100644 data/spells/scripts/conjuring/conjure_sniper_arrow.lua
delete mode 100644 data/spells/scripts/conjuring/convince_creature_rune.lua
delete mode 100644 data/spells/scripts/conjuring/cure_poison_rune.lua
delete mode 100644 data/spells/scripts/conjuring/destroy_field_rune.lua
delete mode 100644 data/spells/scripts/conjuring/disintegrate_rune.lua
delete mode 100644 data/spells/scripts/conjuring/enchant_spear.lua
delete mode 100644 data/spells/scripts/conjuring/energy_bomb_rune.lua
delete mode 100644 data/spells/scripts/conjuring/energy_field_rune.lua
delete mode 100644 data/spells/scripts/conjuring/energy_wall_rune.lua
delete mode 100644 data/spells/scripts/conjuring/explosion_rune.lua
delete mode 100644 data/spells/scripts/conjuring/fire_bomb_rune.lua
delete mode 100644 data/spells/scripts/conjuring/fire_field_rune.lua
delete mode 100644 data/spells/scripts/conjuring/fire_wall_rune.lua
delete mode 100644 data/spells/scripts/conjuring/fireball_rune.lua
delete mode 100644 data/spells/scripts/conjuring/great_fireball_rune.lua
delete mode 100644 data/spells/scripts/conjuring/heavy_magic_missile_rune.lua
delete mode 100644 data/spells/scripts/conjuring/holy_missile_rune.lua
delete mode 100644 data/spells/scripts/conjuring/icicle_rune.lua
delete mode 100644 data/spells/scripts/conjuring/intense_healing_rune.lua
delete mode 100644 data/spells/scripts/conjuring/light_magic_missile_rune.lua
delete mode 100644 data/spells/scripts/conjuring/light_stone_shower_rune.lua
delete mode 100644 data/spells/scripts/conjuring/lightest_missile_rune.lua
delete mode 100644 data/spells/scripts/conjuring/magic_wall_rune.lua
delete mode 100644 data/spells/scripts/conjuring/paralyze_rune.lua
delete mode 100644 data/spells/scripts/conjuring/poison_bomb_rune.lua
delete mode 100644 data/spells/scripts/conjuring/poison_field_rune.lua
delete mode 100644 data/spells/scripts/conjuring/poison_wall_rune.lua
delete mode 100644 data/spells/scripts/conjuring/practise_magic_missile_rune.lua
delete mode 100644 data/spells/scripts/conjuring/soulfire_rune.lua
delete mode 100644 data/spells/scripts/conjuring/stalagmite_rune.lua
delete mode 100644 data/spells/scripts/conjuring/stone_shower_rune.lua
delete mode 100644 data/spells/scripts/conjuring/sudden_death_rune.lua
delete mode 100644 data/spells/scripts/conjuring/thunderstorm_rune.lua
delete mode 100644 data/spells/scripts/conjuring/ultimate_healing_rune.lua
delete mode 100644 data/spells/scripts/conjuring/wand_of_darkness.lua
delete mode 100644 data/spells/scripts/conjuring/wild_growth_rune.lua
delete mode 100644 data/spells/scripts/custom/apocalypse.lua
delete mode 100644 data/spells/scripts/custom/combustion.lua
delete mode 100644 data/spells/scripts/custom/drunk.lua
delete mode 100644 data/spells/scripts/custom/magic_prison.lua
delete mode 100644 data/spells/scripts/custom/polymorph.lua
delete mode 100644 data/spells/scripts/healing/cure_bleeding.lua
delete mode 100644 data/spells/scripts/healing/cure_burning.lua
delete mode 100644 data/spells/scripts/healing/cure_curse.lua
delete mode 100644 data/spells/scripts/healing/cure_electrification.lua
delete mode 100644 data/spells/scripts/healing/cure_poison.lua
delete mode 100644 data/spells/scripts/monster/betrayed_wraith_skill_reducer.lua
delete mode 100644 data/spells/scripts/monster/cliff_strider_skill_reducer.lua
delete mode 100644 data/spells/scripts/monster/dark_torturer_skill_reducer.lua
delete mode 100644 data/spells/scripts/monster/demon_outcast_skill_reducer.lua
delete mode 100644 data/spells/scripts/monster/diabolic_imp_skill_reducer.lua
delete mode 100644 data/spells/scripts/monster/djinn_cancel_invisibility.lua
delete mode 100644 data/spells/scripts/monster/enslaved_dwarf_skill_reducer_1.lua
delete mode 100644 data/spells/scripts/monster/enslaved_dwarf_skill_reducer_2.lua
delete mode 100644 data/spells/scripts/monster/explosion_wave.lua
delete mode 100644 data/spells/scripts/monster/feversleep_skill_reducer.lua
delete mode 100644 data/spells/scripts/monster/pirate_corsair_skill_reducer.lua
delete mode 100644 data/spells/scripts/monster/shock_head_skill_reducer_1.lua
delete mode 100644 data/spells/scripts/monster/shock_head_skill_reducer_2.lua
delete mode 100644 data/spells/scripts/monster/war_golem_skill_reducer.lua
delete mode 100644 data/spells/scripts/monster/wave_t.lua
delete mode 100644 data/spells/scripts/support/cancel_invisibility.lua
delete mode 100644 data/spells/scripts/support/charge.lua
delete mode 100644 data/spells/scripts/support/food.lua
delete mode 100644 data/spells/scripts/support/great_light.lua
delete mode 100644 data/spells/scripts/support/haste.lua
delete mode 100644 data/spells/scripts/support/invisible.lua
delete mode 100644 data/spells/scripts/support/light.lua
delete mode 100644 data/spells/scripts/support/strong_haste.lua
diff --git a/data/scripts/lib/spells.lua b/data/scripts/lib/spells.lua
new file mode 100644
index 0000000000..4a87b8675c
--- /dev/null
+++ b/data/scripts/lib/spells.lua
@@ -0,0 +1,325 @@
+-- Pre-made areas
+
+-- Waves
+AREA_WAVE3 = {
+ {1, 1, 1},
+ {1, 1, 1},
+ {0, 3, 0}
+}
+
+AREA_WAVE4 = {
+ {1, 1, 1, 1, 1},
+ {0, 1, 1, 1, 0},
+ {0, 1, 1, 1, 0},
+ {0, 0, 3, 0, 0}
+}
+
+AREA_WAVE6 = {
+ {0, 0, 0, 0, 0},
+ {0, 1, 3, 1, 0},
+ {0, 0, 0, 0, 0}
+}
+
+AREA_WAVE7 = {
+ {1, 1, 1, 1, 1},
+ {1, 1, 1, 1, 1},
+ {0, 1, 1, 1, 0},
+ {0, 1, 1, 1, 0},
+ {0, 0, 3, 0, 0}
+}
+
+AREA_SQUAREWAVE5 = {
+ {1, 1, 1},
+ {1, 1, 1},
+ {1, 1, 1},
+ {0, 1, 0},
+ {0, 3, 0}
+}
+
+AREA_SQUAREWAVE6 = {
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
+ {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
+ {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
+ {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
+ {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
+ {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
+ {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}
+}
+
+AREA_SQUAREWAVE7 = {
+ {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
+ {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
+ {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
+ {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
+ {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
+ {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
+ {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
+ {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
+ {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}
+}
+
+-- Diagonal waves
+AREADIAGONAL_WAVE4 = {
+ {0, 0, 0, 0, 1, 0},
+ {0, 0, 0, 1, 1, 0},
+ {0, 0, 1, 1, 1, 0},
+ {0, 1, 1, 1, 1, 0},
+ {1, 1, 1, 1, 1, 0},
+ {0, 0, 0, 0, 0, 3}
+}
+
+AREADIAGONAL_SQUAREWAVE5 = {
+ {1, 1, 1, 0, 0},
+ {1, 1, 1, 0, 0},
+ {1, 1, 1, 0, 0},
+ {0, 0, 0, 1, 0},
+ {0, 0, 0, 0, 3}
+}
+
+AREADIAGONAL_WAVE6 = {
+ {0, 0, 1},
+ {0, 3, 0},
+ {1, 0, 0}
+}
+
+AREADIAGONAL_WAVE7 = {
+ {0, 0, 0, 0, 0, 1, 0},
+ {0, 0, 0, 0, 1, 1, 0},
+ {0, 0, 0, 1, 1, 1, 0},
+ {0, 0, 1, 1, 1, 1, 0},
+ {0, 1, 1, 1, 1, 1, 0},
+ {1, 1, 1, 1, 1, 1, 0},
+ {0, 0, 0, 0, 0, 0, 3}
+}
+
+-- Beams
+AREA_BEAM1 = {
+ {3}
+}
+
+AREA_BEAM5 = {
+ {1},
+ {1},
+ {1},
+ {1},
+ {3}
+}
+
+AREA_BEAM7 = {
+ {1},
+ {1},
+ {1},
+ {1},
+ {1},
+ {1},
+ {3}
+}
+
+AREA_BEAM8 = {
+ {1},
+ {1},
+ {1},
+ {1},
+ {1},
+ {1},
+ {1},
+ {3}
+}
+
+-- Diagonal Beams
+AREADIAGONAL_BEAM5 = {
+ {1, 0, 0, 0, 0},
+ {0, 1, 0, 0, 0},
+ {0, 0, 1, 0, 0},
+ {0, 0, 0, 1, 0},
+ {0, 0, 0, 0, 3}
+}
+
+AREADIAGONAL_BEAM7 = {
+ {1, 0, 0, 0, 0, 0, 0},
+ {0, 1, 0, 0, 0, 0, 0},
+ {0, 0, 1, 0, 0, 0, 0},
+ {0, 0, 0, 1, 0, 0, 0},
+ {0, 0, 0, 0, 1, 0, 0},
+ {0, 0, 0, 0, 0, 1, 0},
+ {0, 0, 0, 0, 0, 0, 3}
+}
+
+-- Circles
+AREA_CIRCLE2X2 = {
+ {0, 1, 1, 1, 0},
+ {1, 1, 1, 1, 1},
+ {1, 1, 3, 1, 1},
+ {1, 1, 1, 1, 1},
+ {0, 1, 1, 1, 0}
+}
+
+AREA_CIRCLE3X3 = {
+ {0, 0, 1, 1, 1, 0, 0},
+ {0, 1, 1, 1, 1, 1, 0},
+ {1, 1, 1, 1, 1, 1, 1},
+ {1, 1, 1, 3, 1, 1, 1},
+ {1, 1, 1, 1, 1, 1, 1},
+ {0, 1, 1, 1, 1, 1, 0},
+ {0, 0, 1, 1, 1, 0, 0}
+}
+
+-- Crosses
+AREA_CROSS1X1 = {
+ {0, 1, 0},
+ {1, 3, 1},
+ {0, 1, 0}
+}
+
+AREA_CIRCLE5X5 = {
+ {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
+ {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
+ {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
+ {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
+ {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}
+}
+
+AREA_CIRCLE6X6 = {
+ {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0},
+ {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0},
+ {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0},
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1},
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
+ {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0},
+ {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0},
+ {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}
+}
+
+-- Squares
+AREA_SQUARE1X1 = {
+ {1, 1, 1},
+ {1, 3, 1},
+ {1, 1, 1}
+}
+
+-- Walls
+AREA_WALLFIELD = {
+ {1, 1, 3, 1, 1}
+}
+
+AREADIAGONAL_WALLFIELD = {
+ {0, 0, 0, 0, 1},
+ {0, 0, 0, 1, 1},
+ {0, 1, 3, 1, 0},
+ {1, 1, 0, 0, 0},
+ {1, 0, 0, 0, 0},
+}
+
+-- This array contains all destroyable field items
+FIELDS = {1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1500, 1501, 1502, 1503, 1504}
+
+function Player:addPartyCondition(combat, variant, condition, baseMana)
+ local party = self:getParty()
+ if not party then
+ self:sendCancelMessage(RETURNVALUE_NOPARTYMEMBERSINRANGE)
+ self:getPosition():sendMagicEffect(CONST_ME_POFF)
+ return false
+ end
+
+ local positions = combat:getPositions(self, variant)
+ local members = party:getMembers()
+ members[#members + 1] = party:getLeader()
+
+ local affectedMembers = {}
+ for _, member in ipairs(members) do
+ local memberPosition = member:getPosition()
+ for _, position in ipairs(positions) do
+ if memberPosition == position then
+ affectedMembers[#affectedMembers + 1] = member
+ end
+ end
+ end
+
+ if #affectedMembers <= 1 then
+ self:sendCancelMessage(RETURNVALUE_NOPARTYMEMBERSINRANGE)
+ self:getPosition():sendMagicEffect(CONST_ME_POFF)
+ return false
+ end
+
+ local mana = math.ceil(#affectedMembers * math.pow(0.9, #affectedMembers - 1) * baseMana)
+ if self:getMana() < mana then
+ self:sendCancelMessage(RETURNVALUE_NOTENOUGHMANA)
+ self:getPosition():sendMagicEffect(CONST_ME_POFF)
+ return false
+ end
+
+ self:addMana(-mana)
+ self:addManaSpent(mana)
+
+ for _, member in ipairs(affectedMembers) do
+ member:addCondition(condition)
+ end
+
+ for _, position in ipairs(positions) do
+ position:sendMagicEffect(CONST_ME_MAGIC_BLUE)
+ end
+ return true
+end
+
+function Player:conjureItem(reagentId, conjureId, conjureCount, effect)
+ if not conjureCount and conjureId ~= 0 then
+ local itemType = ItemType(conjureId)
+ if itemType:getId() == 0 then
+ return false
+ end
+
+ local charges = itemType:getCharges()
+ if charges ~= 0 then
+ conjureCount = charges
+ end
+ end
+
+ if reagentId ~= 0 and not self:removeItem(reagentId, 1, -1) then
+ self:sendCancelMessage(RETURNVALUE_YOUNEEDAMAGICITEMTOCASTSPELL)
+ self:getPosition():sendMagicEffect(CONST_ME_POFF)
+ return false
+ end
+
+ local item = self:addItem(conjureId, conjureCount)
+ if not item then
+ self:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
+ self:getPosition():sendMagicEffect(CONST_ME_POFF)
+ return false
+ end
+
+ if item:hasAttribute(ITEM_ATTRIBUTE_DURATION) then
+ item:decay()
+ end
+
+ self:getPosition():sendMagicEffect(item:getType():isRune() and CONST_ME_MAGIC_RED or effect)
+ return true
+end
+
+function Creature:addAttributeCondition(parameters)
+ local condition = Condition(CONDITION_ATTRIBUTES)
+ for _, parameter in ipairs(parameters) do
+ if parameter.key and parameter.value then
+ condition:setParameter(parameter.key, parameter.value)
+ end
+ end
+
+ self:addCondition(condition)
+end
diff --git a/data/spells/scripts/healing/intense_healing.lua b/data/scripts/runes/#example.lua
similarity index 57%
rename from data/spells/scripts/healing/intense_healing.lua
rename to data/scripts/runes/#example.lua
index b5bf4c4596..38ee2faafb 100644
--- a/data/spells/scripts/healing/intense_healing.lua
+++ b/data/scripts/runes/#example.lua
@@ -2,6 +2,7 @@ local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
+combat:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
function onGetFormulaValues(player, level, magicLevel)
@@ -12,6 +13,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_RUNE)
+
+function spell.onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:name("test rune")
+spell:runeId(2275)
+spell:id(220)
+spell:level(20)
+spell:magicLevel(5)
+spell:needTarget(true)
+spell:isAggressive(false)
+spell:allowFarUse(true)
+spell:charges(25)
+spell:vocation("sorcerer;true", "master sorcerer")
+spell:register()
diff --git a/data/spells/scripts/attack/avalanche_rune.lua b/data/scripts/runes/attack/avalanche_rune.lua
similarity index 69%
rename from data/spells/scripts/attack/avalanche_rune.lua
rename to data/scripts/runes/attack/avalanche_rune.lua
index 6148c2e2fd..0029868872 100644
--- a/data/spells/scripts/attack/avalanche_rune.lua
+++ b/data/scripts/runes/attack/avalanche_rune.lua
@@ -12,6 +12,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(115)
+spell:name("Avalanche Rune")
+spell:runeId(2274)
+spell:allowFarUse(true)
+spell:charges(4)
+spell:runeLevel(30)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:register()
diff --git a/data/spells/scripts/attack/energy_bomb_rune.lua b/data/scripts/runes/attack/energy_bomb_rune.lua
similarity index 58%
rename from data/spells/scripts/attack/energy_bomb_rune.lua
rename to data/scripts/runes/attack/energy_bomb_rune.lua
index 78726107d2..36a83d4927 100644
--- a/data/spells/scripts/attack/energy_bomb_rune.lua
+++ b/data/scripts/runes/attack/energy_bomb_rune.lua
@@ -5,6 +5,21 @@ combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGYBALL)
combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_ENERGYFIELD_PVP)
combat:setArea(createCombatArea(AREA_SQUARE1X1))
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(55)
+spell:name("Energy Bomb Rune")
+spell:runeId(2262)
+spell:allowFarUse(true)
+spell:charges(2)
+spell:runeLevel(37)
+spell:runeMagicLevel(10)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/energy_field_rune.lua b/data/scripts/runes/attack/energy_field_rune.lua
similarity index 55%
rename from data/spells/scripts/attack/energy_field_rune.lua
rename to data/scripts/runes/attack/energy_field_rune.lua
index f026a05ed6..702ff1bfee 100644
--- a/data/spells/scripts/attack/energy_field_rune.lua
+++ b/data/scripts/runes/attack/energy_field_rune.lua
@@ -4,6 +4,21 @@ combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGYBALL)
combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_ENERGYFIELD_PVP)
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(27)
+spell:name("Energy Field Rune")
+spell:runeId(2277)
+spell:allowFarUse(true)
+spell:charges(3)
+spell:runeLevel(18)
+spell:runeMagicLevel(3)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/energy_wall_rune.lua b/data/scripts/runes/attack/energy_wall_rune.lua
similarity index 60%
rename from data/spells/scripts/attack/energy_wall_rune.lua
rename to data/scripts/runes/attack/energy_wall_rune.lua
index 9888b87d8c..5e6ac965a1 100644
--- a/data/spells/scripts/attack/energy_wall_rune.lua
+++ b/data/scripts/runes/attack/energy_wall_rune.lua
@@ -5,6 +5,21 @@ combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGYBALL)
combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_ENERGYFIELD_PVP)
combat:setArea(createCombatArea(AREA_WALLFIELD, AREADIAGONAL_WALLFIELD))
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(33)
+spell:name("Energy Wall Rune")
+spell:runeId(2279)
+spell:allowFarUse(true)
+spell:charges(4)
+spell:runeLevel(41)
+spell:runeMagicLevel(9)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/explosion_rune.lua b/data/scripts/runes/attack/explosion_rune.lua
similarity index 69%
rename from data/spells/scripts/attack/explosion_rune.lua
rename to data/scripts/runes/attack/explosion_rune.lua
index 8c5b420758..7b55e8f6fc 100644
--- a/data/spells/scripts/attack/explosion_rune.lua
+++ b/data/scripts/runes/attack/explosion_rune.lua
@@ -13,6 +13,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(18)
+spell:name("Explosion Rune")
+spell:runeId(2313)
+spell:allowFarUse(true)
+spell:charges(6)
+spell:runeLevel(31)
+spell:runeMagicLevel(6)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/fire_bomb_rune.lua b/data/scripts/runes/attack/fire_bomb_rune.lua
similarity index 55%
rename from data/spells/scripts/attack/fire_bomb_rune.lua
rename to data/scripts/runes/attack/fire_bomb_rune.lua
index aabd9a72b2..9c72c72e3c 100644
--- a/data/spells/scripts/attack/fire_bomb_rune.lua
+++ b/data/scripts/runes/attack/fire_bomb_rune.lua
@@ -4,6 +4,21 @@ combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_FIREFIELD_PVP_FULL)
combat:setArea(createCombatArea(AREA_SQUARE1X1))
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(17)
+spell:name("Fire Bomb Rune")
+spell:runeId(2305)
+spell:allowFarUse(true)
+spell:charges(2)
+spell:runeLevel(27)
+spell:runeMagicLevel(5)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/fire_field_rune.lua b/data/scripts/runes/attack/fire_field_rune.lua
similarity index 51%
rename from data/spells/scripts/attack/fire_field_rune.lua
rename to data/scripts/runes/attack/fire_field_rune.lua
index 3a5f3db04c..17c100f2c2 100644
--- a/data/spells/scripts/attack/fire_field_rune.lua
+++ b/data/scripts/runes/attack/fire_field_rune.lua
@@ -3,6 +3,21 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_FIREFIELD_PVP_FULL)
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(25)
+spell:name("Fire Field Rune")
+spell:runeId(2301)
+spell:allowFarUse(true)
+spell:charges(3)
+spell:runeLevel(15)
+spell:runeMagicLevel(1)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/fire_wall_rune.lua b/data/scripts/runes/attack/fire_wall_rune.lua
similarity index 56%
rename from data/spells/scripts/attack/fire_wall_rune.lua
rename to data/scripts/runes/attack/fire_wall_rune.lua
index a74fe64539..573af368d2 100644
--- a/data/spells/scripts/attack/fire_wall_rune.lua
+++ b/data/scripts/runes/attack/fire_wall_rune.lua
@@ -4,6 +4,21 @@ combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_FIREFIELD_PVP_FULL)
combat:setArea(createCombatArea(AREA_WALLFIELD, AREADIAGONAL_WALLFIELD))
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(28)
+spell:name("Fire Wall Rune")
+spell:runeId(2303)
+spell:allowFarUse(true)
+spell:charges(4)
+spell:runeLevel(33)
+spell:runeMagicLevel(6)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/fireball_rune.lua b/data/scripts/runes/attack/fireball_rune.lua
similarity index 63%
rename from data/spells/scripts/attack/fireball_rune.lua
rename to data/scripts/runes/attack/fireball_rune.lua
index 903217fb62..8b6d83d1ce 100644
--- a/data/spells/scripts/attack/fireball_rune.lua
+++ b/data/scripts/runes/attack/fireball_rune.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(15)
+spell:name("Fireball Rune")
+spell:runeId(2302)
+spell:allowFarUse(true)
+spell:charges(5)
+spell:runeLevel(27)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/great_fireball_rune.lua b/data/scripts/runes/attack/great_fireball_rune.lua
similarity index 66%
rename from data/spells/scripts/attack/great_fireball_rune.lua
rename to data/scripts/runes/attack/great_fireball_rune.lua
index d0487519aa..cac578ed1e 100644
--- a/data/spells/scripts/attack/great_fireball_rune.lua
+++ b/data/scripts/runes/attack/great_fireball_rune.lua
@@ -12,6 +12,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(16)
+spell:name("Great Fireball Rune")
+spell:runeId(2304)
+spell:allowFarUse(true)
+spell:charges(4)
+spell:runeLevel(30)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/heavy_magic_missile_rune.lua b/data/scripts/runes/attack/heavy_magic_missile_rune.lua
similarity index 63%
rename from data/spells/scripts/attack/heavy_magic_missile_rune.lua
rename to data/scripts/runes/attack/heavy_magic_missile_rune.lua
index b05030e65c..b9906d8692 100644
--- a/data/spells/scripts/attack/heavy_magic_missile_rune.lua
+++ b/data/scripts/runes/attack/heavy_magic_missile_rune.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(8)
+spell:name("Heavy Magic Missile Rune")
+spell:runeId(2311)
+spell:allowFarUse(true)
+spell:charges(10)
+spell:runeLevel(25)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:runeMagicLevel(3)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/holy_missile_rune.lua b/data/scripts/runes/attack/holy_missile_rune.lua
similarity index 60%
rename from data/spells/scripts/attack/holy_missile_rune.lua
rename to data/scripts/runes/attack/holy_missile_rune.lua
index 9764865b9a..26424829e5 100644
--- a/data/spells/scripts/attack/holy_missile_rune.lua
+++ b/data/scripts/runes/attack/holy_missile_rune.lua
@@ -11,6 +11,23 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(130)
+spell:name("Holy Missile Rune")
+spell:runeId(2295)
+spell:allowFarUse(true)
+spell:charges(5)
+spell:runeLevel(27)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:vocation("paladin;true", "royal paladin")
+spell:register()
diff --git a/data/spells/scripts/attack/icicle_rune.lua b/data/scripts/runes/attack/icicle_rune.lua
similarity index 66%
rename from data/spells/scripts/attack/icicle_rune.lua
rename to data/scripts/runes/attack/icicle_rune.lua
index f5961b96a5..553ee1fafb 100644
--- a/data/spells/scripts/attack/icicle_rune.lua
+++ b/data/scripts/runes/attack/icicle_rune.lua
@@ -11,6 +11,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(114)
+spell:name("Icicle Rune")
+spell:runeId(2271)
+spell:allowFarUse(true)
+spell:charges(5)
+spell:runeLevel(28)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:needTarget(true)
+spell:register()
diff --git a/data/spells/scripts/attack/light_magic_missile_rune.lua b/data/scripts/runes/attack/light_magic_missile_rune.lua
similarity index 63%
rename from data/spells/scripts/attack/light_magic_missile_rune.lua
rename to data/scripts/runes/attack/light_magic_missile_rune.lua
index 798ace297f..47372f5abe 100644
--- a/data/spells/scripts/attack/light_magic_missile_rune.lua
+++ b/data/scripts/runes/attack/light_magic_missile_rune.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(7)
+spell:name("Light Magic Missile Rune")
+spell:runeId(2287)
+spell:allowFarUse(true)
+spell:charges(10)
+spell:runeLevel(15)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:runeMagicLevel(0)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/light_stone_shower_rune.lua b/data/scripts/runes/attack/light_stone_shower_rune.lua
similarity index 70%
rename from data/spells/scripts/attack/light_stone_shower_rune.lua
rename to data/scripts/runes/attack/light_stone_shower_rune.lua
index 280ef3b166..8c4b0c7242 100644
--- a/data/spells/scripts/attack/light_stone_shower_rune.lua
+++ b/data/scripts/runes/attack/light_stone_shower_rune.lua
@@ -14,6 +14,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(116)
+spell:name("Light Stone Shower Rune")
+spell:runeId(23722)
+spell:allowFarUse(true)
+spell:charges(4)
+spell:runeLevel(1)
+spell:runeMagicLevel(0)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:register()
diff --git a/data/spells/scripts/attack/lightest_magic_missile_rune.lua b/data/scripts/runes/attack/lightest_magic_missile_rune.lua
similarity index 58%
rename from data/spells/scripts/attack/lightest_magic_missile_rune.lua
rename to data/scripts/runes/attack/lightest_magic_missile_rune.lua
index abb26ca0f8..030acba915 100644
--- a/data/spells/scripts/attack/lightest_magic_missile_rune.lua
+++ b/data/scripts/runes/attack/lightest_magic_missile_rune.lua
@@ -9,6 +9,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(7)
+spell:name("Lightest Magic Missile Rune")
+spell:runeId(19392)
+spell:allowFarUse(true)
+spell:charges(10)
+spell:runeLevel(1)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:runeMagicLevel(0)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/lightest_missile_rune.lua b/data/scripts/runes/attack/lightest_missile_rune.lua
similarity index 65%
rename from data/spells/scripts/attack/lightest_missile_rune.lua
rename to data/scripts/runes/attack/lightest_missile_rune.lua
index 546f82354c..c62845ee68 100644
--- a/data/spells/scripts/attack/lightest_missile_rune.lua
+++ b/data/scripts/runes/attack/lightest_missile_rune.lua
@@ -13,6 +13,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(7)
+spell:name("Lightest Missile Rune")
+spell:runeId(23723)
+spell:allowFarUse(true)
+spell:charges(10)
+spell:runeLevel(1)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:runeMagicLevel(0)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/scripts/runes/attack/magic_wall_rune.lua b/data/scripts/runes/attack/magic_wall_rune.lua
new file mode 100644
index 0000000000..a5ff6050ff
--- /dev/null
+++ b/data/scripts/runes/attack/magic_wall_rune.lua
@@ -0,0 +1,22 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
+combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_MAGICWALL)
+
+local spell = Spell(SPELL_RUNE)
+
+function onCastSpell(creature, variant, isHotkey)
+ return combat:execute(creature, variant)
+end
+
+spell:group("attack")
+spell:id(86)
+spell:name("Magic Wall Rune")
+spell:runeId(2293)
+spell:allowFarUse(true)
+spell:charges(3)
+spell:runeLevel(32)
+spell:runeMagicLevel(9)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, true)
+spell:register()
diff --git a/data/spells/scripts/attack/paralyze_rune.lua b/data/scripts/runes/attack/paralyze_rune.lua
similarity index 53%
rename from data/spells/scripts/attack/paralyze_rune.lua
rename to data/scripts/runes/attack/paralyze_rune.lua
index 419d43141f..dc6c39576d 100644
--- a/data/spells/scripts/attack/paralyze_rune.lua
+++ b/data/scripts/runes/attack/paralyze_rune.lua
@@ -6,6 +6,8 @@ condition:setParameter(CONDITION_PARAM_TICKS, 20000)
condition:setFormula(-1, 80, -1, 80)
combat:addCondition(condition)
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
if not combat:execute(creature, variant) then
return false
@@ -14,3 +16,20 @@ function onCastSpell(creature, variant, isHotkey)
creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
return true
end
+
+spell:group("attack")
+spell:id(54)
+spell:name("Paralyze Rune")
+spell:runeId(2278)
+spell:allowFarUse(true)
+spell:charges(1)
+spell:runeLevel(54)
+spell:runeMagicLevel(18)
+spell:isPzLock(true)
+spell:cooldown(6000)
+spell:groupCooldown(6000)
+spell:mana(1400)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:vocation("druid;true", "elder druid")
+spell:register()
diff --git a/data/spells/scripts/attack/poison_bomb_rune.lua b/data/scripts/runes/attack/poison_bomb_rune.lua
similarity index 54%
rename from data/spells/scripts/attack/poison_bomb_rune.lua
rename to data/scripts/runes/attack/poison_bomb_rune.lua
index d0a0db9180..4bb0eb689c 100644
--- a/data/spells/scripts/attack/poison_bomb_rune.lua
+++ b/data/scripts/runes/attack/poison_bomb_rune.lua
@@ -4,6 +4,21 @@ combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_POISONFIELD_PVP)
combat:setArea(createCombatArea(AREA_SQUARE1X1))
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(91)
+spell:name("Poison Bomb Rune")
+spell:runeId(2286)
+spell:allowFarUse(true)
+spell:charges(2)
+spell:runeLevel(25)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/poison_field_rune.lua b/data/scripts/runes/attack/poison_field_rune.lua
similarity index 51%
rename from data/spells/scripts/attack/poison_field_rune.lua
rename to data/scripts/runes/attack/poison_field_rune.lua
index fdac58ed41..14ed8a9539 100644
--- a/data/spells/scripts/attack/poison_field_rune.lua
+++ b/data/scripts/runes/attack/poison_field_rune.lua
@@ -3,6 +3,21 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_POISONFIELD_PVP)
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(26)
+spell:name("Poison Field Rune")
+spell:runeId(2285)
+spell:allowFarUse(true)
+spell:charges(3)
+spell:runeLevel(14)
+spell:runeMagicLevel(0)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/poison_wall_rune.lua b/data/scripts/runes/attack/poison_wall_rune.lua
similarity index 56%
rename from data/spells/scripts/attack/poison_wall_rune.lua
rename to data/scripts/runes/attack/poison_wall_rune.lua
index 4cf2f429c0..83373f19d6 100644
--- a/data/spells/scripts/attack/poison_wall_rune.lua
+++ b/data/scripts/runes/attack/poison_wall_rune.lua
@@ -4,6 +4,21 @@ combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_POISONFIELD_PVP)
combat:setArea(createCombatArea(AREA_WALLFIELD, AREADIAGONAL_WALLFIELD))
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(32)
+spell:name("Poison Wall Rune")
+spell:runeId(2289)
+spell:allowFarUse(true)
+spell:charges(4)
+spell:runeLevel(29)
+spell:runeMagicLevel(5)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/soulfire_rune.lua b/data/scripts/runes/attack/soulfire_rune.lua
similarity index 68%
rename from data/spells/scripts/attack/soulfire_rune.lua
rename to data/scripts/runes/attack/soulfire_rune.lua
index dbec631455..e17646efb7 100644
--- a/data/spells/scripts/attack/soulfire_rune.lua
+++ b/data/scripts/runes/attack/soulfire_rune.lua
@@ -3,6 +3,8 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
local min = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.3) + 2
local max = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.6) + 4
@@ -12,3 +14,17 @@ function onCastSpell(creature, variant, isHotkey)
end
return true
end
+
+spell:group("attack")
+spell:id(50)
+spell:name("Soulfire Rune")
+spell:runeId(2308)
+spell:allowFarUse(true)
+spell:charges(3)
+spell:runeLevel(27)
+spell:runeMagicLevel(7)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/stalagmite_rune.lua b/data/scripts/runes/attack/stalagmite_rune.lua
similarity index 65%
rename from data/spells/scripts/attack/stalagmite_rune.lua
rename to data/scripts/runes/attack/stalagmite_rune.lua
index 90536332b9..d8f31fea3c 100644
--- a/data/spells/scripts/attack/stalagmite_rune.lua
+++ b/data/scripts/runes/attack/stalagmite_rune.lua
@@ -11,6 +11,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(77)
+spell:name("Stalagmite Rune")
+spell:runeId(2292)
+spell:allowFarUse(true)
+spell:charges(10)
+spell:runeLevel(24)
+spell:runeMagicLevel(3)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:needTarget(true)
+spell:register()
diff --git a/data/spells/scripts/attack/stone_shower_rune.lua b/data/scripts/runes/attack/stone_shower_rune.lua
similarity index 68%
rename from data/spells/scripts/attack/stone_shower_rune.lua
rename to data/scripts/runes/attack/stone_shower_rune.lua
index 9a9f709b23..0639a72f1c 100644
--- a/data/spells/scripts/attack/stone_shower_rune.lua
+++ b/data/scripts/runes/attack/stone_shower_rune.lua
@@ -12,6 +12,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(116)
+spell:name("Stone Shower Rune")
+spell:runeId(2288)
+spell:allowFarUse(true)
+spell:charges(4)
+spell:runeLevel(28)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:register()
diff --git a/data/spells/scripts/attack/sudden_death_rune.lua b/data/scripts/runes/attack/sudden_death_rune.lua
similarity index 63%
rename from data/spells/scripts/attack/sudden_death_rune.lua
rename to data/scripts/runes/attack/sudden_death_rune.lua
index 532c2eae07..c7c1dcec0c 100644
--- a/data/spells/scripts/attack/sudden_death_rune.lua
+++ b/data/scripts/runes/attack/sudden_death_rune.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(21)
+spell:name("Sudden Death Rune")
+spell:runeId(2268)
+spell:allowFarUse(true)
+spell:charges(3)
+spell:runeLevel(45)
+spell:runeMagicLevel(15)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/attack/thunderstorm_rune.lua b/data/scripts/runes/attack/thunderstorm_rune.lua
similarity index 69%
rename from data/spells/scripts/attack/thunderstorm_rune.lua
rename to data/scripts/runes/attack/thunderstorm_rune.lua
index 798c6e9964..6970d449ee 100644
--- a/data/spells/scripts/attack/thunderstorm_rune.lua
+++ b/data/scripts/runes/attack/thunderstorm_rune.lua
@@ -12,6 +12,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(117)
+spell:name("Thunderstorm Rune")
+spell:runeId(2315)
+spell:allowFarUse(true)
+spell:charges(4)
+spell:runeLevel(28)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:register()
diff --git a/data/scripts/runes/attack/wild_growth_rune.lua b/data/scripts/runes/attack/wild_growth_rune.lua
new file mode 100644
index 0000000000..e01b4831a6
--- /dev/null
+++ b/data/scripts/runes/attack/wild_growth_rune.lua
@@ -0,0 +1,23 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
+combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_WILDGROWTH)
+
+local spell = Spell(SPELL_RUNE)
+
+function onCastSpell(creature, variant, isHotkey)
+ return combat:execute(creature, variant)
+end
+
+spell:group("attack")
+spell:id(94)
+spell:name("Wild Growth Rune")
+spell:runeId(2269)
+spell:allowFarUse(true)
+spell:charges(2)
+spell:runeLevel(27)
+spell:runeMagicLevel(8)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, true)
+spell:vocation("druid;true", "elder druid")
+spell:register()
diff --git a/data/spells/scripts/healing/cure_poison_rune.lua b/data/scripts/runes/healing/cure_poison_rune.lua
similarity index 50%
rename from data/spells/scripts/healing/cure_poison_rune.lua
rename to data/scripts/runes/healing/cure_poison_rune.lua
index f272fb983d..15fbbf8ab5 100644
--- a/data/spells/scripts/healing/cure_poison_rune.lua
+++ b/data/scripts/runes/healing/cure_poison_rune.lua
@@ -4,6 +4,23 @@ combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON)
combat:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(31)
+spell:name("Cure Poison Rune")
+spell:runeId(2266)
+spell:allowFarUse(true)
+spell:charges(1)
+spell:runeLevel(15)
+spell:runeMagicLevel(0)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isAggressive(false)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/healing/intense_healing_rune.lua b/data/scripts/runes/healing/intense_healing_rune.lua
similarity index 65%
rename from data/spells/scripts/healing/intense_healing_rune.lua
rename to data/scripts/runes/healing/intense_healing_rune.lua
index 82fe5684ae..37f7a1b11f 100644
--- a/data/spells/scripts/healing/intense_healing_rune.lua
+++ b/data/scripts/runes/healing/intense_healing_rune.lua
@@ -13,6 +13,23 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(4)
+spell:name("Intense Healing Rune")
+spell:runeId(2265)
+spell:allowFarUse(true)
+spell:charges(1)
+spell:runeLevel(15)
+spell:runeMagicLevel(1)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isAggressive(false)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/healing/ultimate_healing_rune.lua b/data/scripts/runes/healing/ultimate_healing_rune.lua
similarity index 65%
rename from data/spells/scripts/healing/ultimate_healing_rune.lua
rename to data/scripts/runes/healing/ultimate_healing_rune.lua
index f5d5815676..90f4e27867 100644
--- a/data/spells/scripts/healing/ultimate_healing_rune.lua
+++ b/data/scripts/runes/healing/ultimate_healing_rune.lua
@@ -13,6 +13,23 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(5)
+spell:name("Ultimate Healing Rune")
+spell:runeId(2273)
+spell:allowFarUse(true)
+spell:charges(1)
+spell:runeLevel(24)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isAggressive(false)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/support/animate_dead_rune.lua b/data/scripts/runes/support/animate_dead_rune.lua
similarity index 69%
rename from data/spells/scripts/support/animate_dead_rune.lua
rename to data/scripts/runes/support/animate_dead_rune.lua
index 675cb71ec5..8ed8360030 100644
--- a/data/spells/scripts/support/animate_dead_rune.lua
+++ b/data/scripts/runes/support/animate_dead_rune.lua
@@ -1,3 +1,5 @@
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
local position = variant:getPosition()
local tile = Tile(position)
@@ -21,3 +23,16 @@ function onCastSpell(creature, variant, isHotkey)
creature:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
return false
end
+
+spell:group("support")
+spell:id(83)
+spell:name("Animate Dead Rune")
+spell:runeId(2316)
+spell:allowFarUse(true)
+spell:charges(1)
+spell:runeLevel(27)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/support/chameleon.lua b/data/scripts/runes/support/chameleon_rune.lua
similarity index 69%
rename from data/spells/scripts/support/chameleon.lua
rename to data/scripts/runes/support/chameleon_rune.lua
index e157d1a524..1f7244f23f 100644
--- a/data/spells/scripts/support/chameleon.lua
+++ b/data/scripts/runes/support/chameleon_rune.lua
@@ -1,6 +1,8 @@
local condition = Condition(CONDITION_OUTFIT)
condition:setTicks(200000)
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
local position, item = variant:getPosition()
if position.x == CONTAINER_POSITION then
@@ -25,3 +27,18 @@ function onCastSpell(creature, variant, isHotkey)
creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED)
return true
end
+
+spell:group("support")
+spell:id(14)
+spell:name("Chameleon Rune")
+spell:runeId(2291)
+spell:allowFarUse(true)
+spell:charges(1)
+spell:runeLevel(27)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/support/convince_creature.lua b/data/scripts/runes/support/convince_creature_rune.lua
similarity index 78%
rename from data/spells/scripts/support/convince_creature.lua
rename to data/scripts/runes/support/convince_creature_rune.lua
index c466f57994..df79173f71 100644
--- a/data/spells/scripts/support/convince_creature.lua
+++ b/data/scripts/runes/support/convince_creature_rune.lua
@@ -1,3 +1,5 @@
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
local target = Creature(variant:getNumber())
if not target or not target:isMonster() then
@@ -34,3 +36,17 @@ function onCastSpell(creature, variant, isHotkey)
creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
return true
end
+
+spell:group("support")
+spell:id(12)
+spell:name("Convince Creature Rune")
+spell:runeId(2290)
+spell:allowFarUse(true)
+spell:charges(1)
+spell:runeLevel(16)
+spell:runeMagicLevel(5)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:needTarget(true)
+spell:isBlocking(true, false)
+spell:register()
diff --git a/data/spells/scripts/support/destroy_field_rune.lua b/data/scripts/runes/support/destroy_field_rune.lua
similarity index 58%
rename from data/spells/scripts/support/destroy_field_rune.lua
rename to data/scripts/runes/support/destroy_field_rune.lua
index 4d8374f84b..3ac63254c9 100644
--- a/data/spells/scripts/support/destroy_field_rune.lua
+++ b/data/scripts/runes/support/destroy_field_rune.lua
@@ -1,3 +1,5 @@
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
local position = variant:getPosition()
local tile = Tile(position)
@@ -12,3 +14,17 @@ function onCastSpell(creature, variant, isHotkey)
creature:getPosition():sendMagicEffect(CONST_ME_POFF)
return false
end
+
+spell:group("support")
+spell:id(30)
+spell:name("Destroy Field Rune")
+spell:runeId(2261)
+spell:allowFarUse(true)
+spell:charges(3)
+spell:runeLevel(17)
+spell:runeMagicLevel(3)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isAggressive(false)
+spell:range(5)
+spell:register()
diff --git a/data/spells/scripts/support/disintegrate_rune.lua b/data/scripts/runes/support/disintegrate_rune.lua
similarity index 54%
rename from data/spells/scripts/support/disintegrate_rune.lua
rename to data/scripts/runes/support/disintegrate_rune.lua
index 15f8eb67c9..93f1cacf90 100644
--- a/data/spells/scripts/support/disintegrate_rune.lua
+++ b/data/scripts/runes/support/disintegrate_rune.lua
@@ -1,6 +1,8 @@
local corpseIds = {3058, 3059, 3060, 3061, 3064, 3065, 3066}
local removalLimit = 500
+local spell = Spell(SPELL_RUNE)
+
function onCastSpell(creature, variant, isHotkey)
local position = variant:getPosition()
local tile = Tile(position)
@@ -12,12 +14,7 @@ function onCastSpell(creature, variant, isHotkey)
local items = tile:getItems()
if items then
for i, item in ipairs(items) do
- if item:getType():isMovable() and
- item:getUniqueId() > 65535 and
- item:getActionId() == 0 and not
- table.contains(corpseIds, item:getId()) and not
- item:isPodium() and not
- item:isStoreItem() then
+ if item:getType():isMovable() and item:getUniqueId() > 65535 and item:getActionId() == 0 and not table.contains(corpseIds, item:getId()) and not item:isPodium() and not item:isStoreItem() then
item:remove()
end
@@ -31,3 +28,15 @@ function onCastSpell(creature, variant, isHotkey)
position:sendMagicEffect(CONST_ME_POFF)
return true
end
+
+spell:group("support")
+spell:id(78)
+spell:name("Disintegrate Rune")
+spell:runeId(2310)
+spell:charges(3)
+spell:runeLevel(21)
+spell:runeMagicLevel(4)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:range(1)
+spell:register()
diff --git a/data/scripts/spells/#example.lua b/data/scripts/spells/#example.lua
index 9ba6a17b88..8b3859000b 100644
--- a/data/scripts/spells/#example.lua
+++ b/data/scripts/spells/#example.lua
@@ -1,36 +1,3 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING)
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
-combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
-combat:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-function onGetFormulaValues(player, level, magicLevel)
- local min = (level / 5) + (magicLevel * 3.2) + 20
- local max = (level / 5) + (magicLevel * 5.4) + 40
- return min, max
-end
-
-combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-
-local spell = Spell(SPELL_RUNE)
-
-function spell.onCastSpell(creature, variant, isHotkey)
- return combat:execute(creature, variant)
-end
-
-spell:name("test rune")
-spell:runeId(2275)
-spell:id(220)
-spell:level(20)
-spell:magicLevel(5)
-spell:needTarget(true)
-spell:isAggressive(false)
-spell:allowFarUse(true)
-spell:charges(25)
-spell:vocation("sorcerer;true", "master sorcerer")
-spell:register()
-
local conjureRune = Spell(SPELL_INSTANT)
function conjureRune.onCastSpell(creature, variant)
diff --git a/data/spells/scripts/attack/annihilation.lua b/data/scripts/spells/attack/annihilation.lua
similarity index 62%
rename from data/spells/scripts/attack/annihilation.lua
rename to data/scripts/spells/attack/annihilation.lua
index bcdf5bf568..4ac6be98dd 100644
--- a/data/spells/scripts/attack/annihilation.lua
+++ b/data/scripts/spells/attack/annihilation.lua
@@ -13,6 +13,22 @@ end
combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(62)
+spell:name("Annihilation")
+spell:words("exori gran ico")
+spell:level(110)
+spell:mana(300)
+spell:range(1)
+spell:needTarget(true)
+spell:needWeapon(true)
+spell:cooldown(30000)
+spell:groupCooldown(4000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/scripts/spells/attack/apprentice's_strike.lua b/data/scripts/spells/attack/apprentice's_strike.lua
new file mode 100644
index 0000000000..0bb26f939f
--- /dev/null
+++ b/data/scripts/spells/attack/apprentice's_strike.lua
@@ -0,0 +1,31 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
+combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
+
+function onGetFormulaValues(player, level, magicLevel)
+ return -10, -20
+end
+
+combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("attack")
+spell:id(169)
+spell:name("Apprentice's Strike")
+spell:words("exori min flam")
+spell:level(8)
+spell:mana(6)
+spell:isPremium(true)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/berserk.lua b/data/scripts/spells/attack/berserk.lua
similarity index 65%
rename from data/spells/scripts/attack/berserk.lua
rename to data/scripts/spells/attack/berserk.lua
index 9afe6025f5..86bca9ee47 100644
--- a/data/spells/scripts/attack/berserk.lua
+++ b/data/scripts/spells/attack/berserk.lua
@@ -13,6 +13,20 @@ end
combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(80)
+spell:name("Berserk")
+spell:words("exori")
+spell:level(35)
+spell:mana(115)
+spell:needWeapon(true)
+spell:cooldown(4000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/attack/brutal_strike.lua b/data/scripts/spells/attack/brutal_strike.lua
similarity index 63%
rename from data/spells/scripts/attack/brutal_strike.lua
rename to data/scripts/spells/attack/brutal_strike.lua
index e7bf8be50b..e12a5668d7 100644
--- a/data/spells/scripts/attack/brutal_strike.lua
+++ b/data/scripts/spells/attack/brutal_strike.lua
@@ -13,6 +13,22 @@ end
combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(61)
+spell:name("Brutal Strike")
+spell:words("exori ico")
+spell:level(16)
+spell:mana(30)
+spell:range(1)
+spell:needTarget(true)
+spell:needWeapon(true)
+spell:cooldown(6000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/attack/buzz.lua b/data/scripts/spells/attack/buzz.lua
similarity index 58%
rename from data/spells/scripts/attack/buzz.lua
rename to data/scripts/spells/attack/buzz.lua
index 3518c88236..4407011ce8 100644
--- a/data/spells/scripts/attack/buzz.lua
+++ b/data/scripts/spells/attack/buzz.lua
@@ -13,6 +13,23 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(177)
+spell:name("Buzz")
+spell:words("exori infir vis")
+spell:level(1)
+spell:mana(6)
+spell:isPremium(true)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/chill_out.lua b/data/scripts/spells/attack/chill_out.lua
similarity index 61%
rename from data/spells/scripts/attack/chill_out.lua
rename to data/scripts/spells/attack/chill_out.lua
index d89b1dd00c..d1db56381f 100644
--- a/data/spells/scripts/attack/chill_out.lua
+++ b/data/scripts/spells/attack/chill_out.lua
@@ -13,6 +13,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(173)
+spell:name("Chill Out")
+spell:words("exevo infir frigo hur")
+spell:level(1)
+spell:mana(8)
+spell:needDirection(true)
+spell:cooldown(4000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/curse.lua b/data/scripts/spells/attack/curse.lua
similarity index 60%
rename from data/spells/scripts/attack/curse.lua
rename to data/scripts/spells/attack/curse.lua
index 368c888193..0d6a61ddca 100644
--- a/data/spells/scripts/attack/curse.lua
+++ b/data/scripts/spells/attack/curse.lua
@@ -3,7 +3,9 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local min = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.5) + 7
local max = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.9) + 8
local damage = math.random(math.floor(min), math.floor(max))
@@ -12,3 +14,17 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:group("attack")
+spell:id(139)
+spell:name("Curse")
+spell:words("utori mort")
+spell:level(75)
+spell:mana(30)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(40000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/death_strike.lua b/data/scripts/spells/attack/death_strike.lua
similarity index 56%
rename from data/spells/scripts/attack/death_strike.lua
rename to data/scripts/spells/attack/death_strike.lua
index 80d7659f6c..3599fa2aeb 100644
--- a/data/spells/scripts/attack/death_strike.lua
+++ b/data/scripts/spells/attack/death_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(87)
+spell:name("Death Strike")
+spell:words("exori mort")
+spell:level(16)
+spell:mana(20)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/divine_caldera.lua b/data/scripts/spells/attack/divine_caldera.lua
similarity index 58%
rename from data/spells/scripts/attack/divine_caldera.lua
rename to data/scripts/spells/attack/divine_caldera.lua
index f174b205f4..9eb4420470 100644
--- a/data/spells/scripts/attack/divine_caldera.lua
+++ b/data/scripts/spells/attack/divine_caldera.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(124)
+spell:name("Divine Caldera")
+spell:words("exevo mas san")
+spell:level(50)
+spell:mana(160)
+spell:isSelfTarget(true)
+spell:cooldown(4000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/attack/divine_missile.lua b/data/scripts/spells/attack/divine_missile.lua
similarity index 56%
rename from data/spells/scripts/attack/divine_missile.lua
rename to data/scripts/spells/attack/divine_missile.lua
index cdcb055f25..719456a490 100644
--- a/data/spells/scripts/attack/divine_missile.lua
+++ b/data/scripts/spells/attack/divine_missile.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(122)
+spell:name("Divine Missile")
+spell:words("exori san")
+spell:level(40)
+spell:mana(20)
+spell:range(4)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/attack/electrify.lua b/data/scripts/spells/attack/electrify.lua
similarity index 62%
rename from data/spells/scripts/attack/electrify.lua
rename to data/scripts/spells/attack/electrify.lua
index 368bb48e76..1b8ae0e3b2 100644
--- a/data/spells/scripts/attack/electrify.lua
+++ b/data/scripts/spells/attack/electrify.lua
@@ -3,7 +3,9 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local min = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.15) + 1
local max = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.25) + 1
local rounds = math.random(math.floor(min), math.floor(max))
@@ -12,3 +14,17 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:group("attack")
+spell:id(140)
+spell:name("Electrify")
+spell:words("utori vis")
+spell:level(34)
+spell:mana(30)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(30000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/energy_beam.lua b/data/scripts/spells/attack/energy_beam.lua
similarity index 59%
rename from data/spells/scripts/attack/energy_beam.lua
rename to data/scripts/spells/attack/energy_beam.lua
index ea59575aa9..4e2089292f 100644
--- a/data/spells/scripts/attack/energy_beam.lua
+++ b/data/scripts/spells/attack/energy_beam.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(22)
+spell:name("Energy Beam")
+spell:words("exevo vis lux")
+spell:level(23)
+spell:mana(40)
+spell:needDirection(true)
+spell:cooldown(4000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/energy_strike.lua b/data/scripts/spells/attack/energy_strike.lua
similarity index 54%
rename from data/spells/scripts/attack/energy_strike.lua
rename to data/scripts/spells/attack/energy_strike.lua
index 75cc8affa3..65279125a3 100644
--- a/data/spells/scripts/attack/energy_strike.lua
+++ b/data/scripts/spells/attack/energy_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(88)
+spell:name("Energy Strike")
+spell:words("exori vis")
+spell:level(12)
+spell:mana(20)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/energy_wave.lua b/data/scripts/spells/attack/energy_wave.lua
similarity index 62%
rename from data/spells/scripts/attack/energy_wave.lua
rename to data/scripts/spells/attack/energy_wave.lua
index 76ddb34592..ef45f316ef 100644
--- a/data/spells/scripts/attack/energy_wave.lua
+++ b/data/scripts/spells/attack/energy_wave.lua
@@ -12,6 +12,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(13)
+spell:name("Energy Wave")
+spell:words("exevo vis hur")
+spell:level(38)
+spell:mana(170)
+spell:needDirection(true)
+spell:cooldown(8000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/envenom.lua b/data/scripts/spells/attack/envenom.lua
similarity index 63%
rename from data/spells/scripts/attack/envenom.lua
rename to data/scripts/spells/attack/envenom.lua
index e9d4f68331..93c1a7b84d 100644
--- a/data/spells/scripts/attack/envenom.lua
+++ b/data/scripts/spells/attack/envenom.lua
@@ -3,7 +3,9 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local min = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.55) + 6
local max = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.75) + 7
local damage = math.random(math.floor(min) * 1000, math.floor(max) * 1000) / 1000
@@ -12,3 +14,17 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:group("attack")
+spell:id(142)
+spell:name("Envenom")
+spell:words("utori pox")
+spell:level(50)
+spell:mana(30)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(40000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/eternal_winter.lua b/data/scripts/spells/attack/eternal_winter.lua
similarity index 58%
rename from data/spells/scripts/attack/eternal_winter.lua
rename to data/scripts/spells/attack/eternal_winter.lua
index c1b8ffef49..38abe02926 100644
--- a/data/spells/scripts/attack/eternal_winter.lua
+++ b/data/scripts/spells/attack/eternal_winter.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(118)
+spell:name("Eternal Winter")
+spell:words("exevo gran mas frigo")
+spell:level(60)
+spell:mana(1050)
+spell:isSelfTarget(true)
+spell:cooldown(40000)
+spell:groupCooldown(4000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/ethereal_spear.lua b/data/scripts/spells/attack/ethereal_spear.lua
similarity index 63%
rename from data/spells/scripts/attack/ethereal_spear.lua
rename to data/scripts/spells/attack/ethereal_spear.lua
index 164a9c8ea6..69f880752c 100644
--- a/data/spells/scripts/attack/ethereal_spear.lua
+++ b/data/scripts/spells/attack/ethereal_spear.lua
@@ -13,6 +13,22 @@ end
combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(111)
+spell:name("Ethereal Spear")
+spell:words("exori con")
+spell:level(23)
+spell:mana(25)
+spell:range(7)
+spell:needTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:blockWalls(true)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/attack/fierce_berserk.lua b/data/scripts/spells/attack/fierce_berserk.lua
similarity index 64%
rename from data/spells/scripts/attack/fierce_berserk.lua
rename to data/scripts/spells/attack/fierce_berserk.lua
index 1f051ba066..22be35d708 100644
--- a/data/spells/scripts/attack/fierce_berserk.lua
+++ b/data/scripts/spells/attack/fierce_berserk.lua
@@ -13,6 +13,20 @@ end
combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(105)
+spell:name("Fierce Berserk")
+spell:words("exori gran")
+spell:level(90)
+spell:mana(340)
+spell:needWeapon(true)
+spell:cooldown(6000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/attack/fire_wave.lua b/data/scripts/spells/attack/fire_wave.lua
similarity index 59%
rename from data/spells/scripts/attack/fire_wave.lua
rename to data/scripts/spells/attack/fire_wave.lua
index 56b19662e0..57035bc64e 100644
--- a/data/spells/scripts/attack/fire_wave.lua
+++ b/data/scripts/spells/attack/fire_wave.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(19)
+spell:name("Fire Wave")
+spell:words("exevo flam hur")
+spell:level(18)
+spell:mana(25)
+spell:needDirection(true)
+spell:cooldown(4000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/flame_strike.lua b/data/scripts/spells/attack/flame_strike.lua
similarity index 54%
rename from data/spells/scripts/attack/flame_strike.lua
rename to data/scripts/spells/attack/flame_strike.lua
index 1f5850b582..87112bced3 100644
--- a/data/spells/scripts/attack/flame_strike.lua
+++ b/data/scripts/spells/attack/flame_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(89)
+spell:name("Flame Strike")
+spell:words("exori flam")
+spell:level(14)
+spell:mana(20)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/front_sweep.lua b/data/scripts/spells/attack/front_sweep.lua
similarity index 63%
rename from data/spells/scripts/attack/front_sweep.lua
rename to data/scripts/spells/attack/front_sweep.lua
index f88136c1da..01b9656af7 100644
--- a/data/spells/scripts/attack/front_sweep.lua
+++ b/data/scripts/spells/attack/front_sweep.lua
@@ -13,6 +13,21 @@ end
combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(59)
+spell:name("Front Sweep")
+spell:words("exori min")
+spell:level(70)
+spell:mana(200)
+spell:needWeapon(true)
+spell:needDirection(true)
+spell:cooldown(6000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/attack/great_energy_beam.lua b/data/scripts/spells/attack/great_energy_beam.lua
similarity index 57%
rename from data/spells/scripts/attack/great_energy_beam.lua
rename to data/scripts/spells/attack/great_energy_beam.lua
index 2b71c0fe6c..41ea9d134f 100644
--- a/data/spells/scripts/attack/great_energy_beam.lua
+++ b/data/scripts/spells/attack/great_energy_beam.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(23)
+spell:name("Great Energy Beam")
+spell:words("exevo gran vis lux")
+spell:level(29)
+spell:mana(110)
+spell:needDirection(true)
+spell:cooldown(6000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/great_fire_wave.lua b/data/scripts/spells/attack/great_fire_wave.lua
similarity index 58%
rename from data/spells/scripts/attack/great_fire_wave.lua
rename to data/scripts/spells/attack/great_fire_wave.lua
index 38a75ef169..84830835c2 100644
--- a/data/spells/scripts/attack/great_fire_wave.lua
+++ b/data/scripts/spells/attack/great_fire_wave.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(240)
+spell:name("Great Fire Wave")
+spell:words("exevo gran flam hur")
+spell:level(38)
+spell:mana(120)
+spell:needDirection(true)
+spell:cooldown(4000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/groundshaker.lua b/data/scripts/spells/attack/groundshaker.lua
similarity index 65%
rename from data/spells/scripts/attack/groundshaker.lua
rename to data/scripts/spells/attack/groundshaker.lua
index bb99954070..20c035251b 100644
--- a/data/spells/scripts/attack/groundshaker.lua
+++ b/data/scripts/spells/attack/groundshaker.lua
@@ -13,6 +13,20 @@ end
combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(106)
+spell:name("Groundshaker")
+spell:words("exori mas")
+spell:level(33)
+spell:mana(160)
+spell:needWeapon(true)
+spell:cooldown(8000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/attack/hell's_core.lua b/data/scripts/spells/attack/hell's_core.lua
similarity index 57%
rename from data/spells/scripts/attack/hell's_core.lua
rename to data/scripts/spells/attack/hell's_core.lua
index 31fb914732..ea3f7de34c 100644
--- a/data/spells/scripts/attack/hell's_core.lua
+++ b/data/scripts/spells/attack/hell's_core.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(24)
+spell:name("Hell's Core")
+spell:words("exevo gran mas flam")
+spell:level(60)
+spell:mana(1100)
+spell:cooldown(40000)
+spell:groupCooldown(4000)
+spell:isSelfTarget(true)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/holy_flash.lua b/data/scripts/spells/attack/holy_flash.lua
similarity index 63%
rename from data/spells/scripts/attack/holy_flash.lua
rename to data/scripts/spells/attack/holy_flash.lua
index ee9c0494c6..31c6ad3d15 100644
--- a/data/spells/scripts/attack/holy_flash.lua
+++ b/data/scripts/spells/attack/holy_flash.lua
@@ -3,7 +3,9 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local min = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.3) + 2
local max = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.5) + 3
local rounds = math.random(math.floor(min), math.floor(max))
@@ -13,3 +15,17 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:group("attack")
+spell:id(143)
+spell:name("Holy Flash")
+spell:words("utori san")
+spell:level(70)
+spell:mana(30)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(40000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/attack/ice_strike.lua b/data/scripts/spells/attack/ice_strike.lua
similarity index 54%
rename from data/spells/scripts/attack/ice_strike.lua
rename to data/scripts/spells/attack/ice_strike.lua
index deab64ca63..3cf8be91a3 100644
--- a/data/spells/scripts/attack/ice_strike.lua
+++ b/data/scripts/spells/attack/ice_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(112)
+spell:name("Ice Strike")
+spell:words("exori frigo")
+spell:level(15)
+spell:mana(20)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true", "druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/ice_wave.lua b/data/scripts/spells/attack/ice_wave.lua
similarity index 59%
rename from data/spells/scripts/attack/ice_wave.lua
rename to data/scripts/spells/attack/ice_wave.lua
index c3cc4c3933..5a1a52930e 100644
--- a/data/spells/scripts/attack/ice_wave.lua
+++ b/data/scripts/spells/attack/ice_wave.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(121)
+spell:name("Ice Wave")
+spell:words("exevo frigo hur")
+spell:level(18)
+spell:mana(25)
+spell:needDirection(true)
+spell:cooldown(4000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/ignite.lua b/data/scripts/spells/attack/ignite.lua
similarity index 61%
rename from data/spells/scripts/attack/ignite.lua
rename to data/scripts/spells/attack/ignite.lua
index 7d048bf8e9..d2a1af0f5a 100644
--- a/data/spells/scripts/attack/ignite.lua
+++ b/data/scripts/spells/attack/ignite.lua
@@ -3,7 +3,9 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local min = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.3) + 2
local max = (creature:getLevel() / 80) + (creature:getMagicLevel() * 0.6) + 4
local rounds = math.random(math.floor(min), math.floor(max))
@@ -12,3 +14,17 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:group("attack")
+spell:id(138)
+spell:name("Ignite")
+spell:words("utori flam")
+spell:level(26)
+spell:mana(30)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(30000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/inflict_wound.lua b/data/scripts/spells/attack/inflict_wound.lua
similarity index 72%
rename from data/spells/scripts/attack/inflict_wound.lua
rename to data/scripts/spells/attack/inflict_wound.lua
index 229c4e78fd..8518fa252e 100644
--- a/data/spells/scripts/attack/inflict_wound.lua
+++ b/data/scripts/spells/attack/inflict_wound.lua
@@ -13,7 +13,9 @@ local function getHighestSkillLevel(creature)
return skillLevel
end
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local skill = getHighestSkillLevel(creature)
local min = (creature:getLevel() / 80) + (skill * 0.2) + 2
local max = (creature:getLevel() / 80) + (skill * 0.4) + 2
@@ -23,3 +25,16 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:group("attack")
+spell:id(141)
+spell:name("Inflict Wound")
+spell:words("utori kor")
+spell:level(40)
+spell:mana(30)
+spell:range(1)
+spell:needTarget(true)
+spell:cooldown(30000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/attack/lightning.lua b/data/scripts/spells/attack/lightning.lua
similarity index 55%
rename from data/spells/scripts/attack/lightning.lua
rename to data/scripts/spells/attack/lightning.lua
index 62dabeab94..beb0e0fbb0 100644
--- a/data/spells/scripts/attack/lightning.lua
+++ b/data/scripts/spells/attack/lightning.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack", "special")
+spell:id(149)
+spell:name("Lightning")
+spell:words("exori amp vis")
+spell:level(55)
+spell:mana(60)
+spell:range(5)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(8000)
+spell:groupCooldown(2000, 8000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/mud_attack.lua b/data/scripts/spells/attack/mud_attack.lua
similarity index 58%
rename from data/spells/scripts/attack/mud_attack.lua
rename to data/scripts/spells/attack/mud_attack.lua
index 0583a999d1..ca4b598fac 100644
--- a/data/spells/scripts/attack/mud_attack.lua
+++ b/data/scripts/spells/attack/mud_attack.lua
@@ -13,6 +13,23 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(172)
+spell:name("Mud Attack")
+spell:words("exori infir tera")
+spell:level(1)
+spell:mana(6)
+spell:isPremium(true)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/physical_strike.lua b/data/scripts/spells/attack/physical_strike.lua
similarity index 58%
rename from data/spells/scripts/attack/physical_strike.lua
rename to data/scripts/spells/attack/physical_strike.lua
index f6ed9b007c..e32266173a 100644
--- a/data/spells/scripts/attack/physical_strike.lua
+++ b/data/scripts/spells/attack/physical_strike.lua
@@ -12,6 +12,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(148)
+spell:name("Physical Strike")
+spell:words("exori moe ico")
+spell:level(16)
+spell:mana(20)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/practise_fire_wave.lua b/data/scripts/spells/attack/practise_fire_wave.lua
similarity index 54%
rename from data/spells/scripts/attack/practise_fire_wave.lua
rename to data/scripts/spells/attack/practise_fire_wave.lua
index 77f0a48ff1..e0b717ab0f 100644
--- a/data/spells/scripts/attack/practise_fire_wave.lua
+++ b/data/scripts/spells/attack/practise_fire_wave.lua
@@ -9,6 +9,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(167)
+spell:name("Practise Fire Wave")
+spell:words("exevo dis flam hur")
+spell:level(1)
+spell:mana(5)
+spell:needDirection(true)
+spell:cooldown(4000)
+spell:groupCooldown(2000)
+spell:vocation("none;true")
+spell:register()
diff --git a/data/spells/scripts/attack/rage_of_the_skies.lua b/data/scripts/spells/attack/rage_of_the_skies.lua
similarity index 57%
rename from data/spells/scripts/attack/rage_of_the_skies.lua
rename to data/scripts/spells/attack/rage_of_the_skies.lua
index c91ec0fec4..18530d11cb 100644
--- a/data/spells/scripts/attack/rage_of_the_skies.lua
+++ b/data/scripts/spells/attack/rage_of_the_skies.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(119)
+spell:name("Rage of the Skies")
+spell:words("exevo gran mas vis")
+spell:level(55)
+spell:mana(600)
+spell:isSelfTarget(true)
+spell:cooldown(40000)
+spell:groupCooldown(4000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/scorch.lua b/data/scripts/spells/attack/scorch.lua
similarity index 61%
rename from data/spells/scripts/attack/scorch.lua
rename to data/scripts/spells/attack/scorch.lua
index 6cd2b79a3c..d168c12ac3 100644
--- a/data/spells/scripts/attack/scorch.lua
+++ b/data/scripts/spells/attack/scorch.lua
@@ -13,6 +13,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(178)
+spell:name("Scorch")
+spell:words("exevo infir flam hur")
+spell:level(1)
+spell:mana(8)
+spell:needDirection(true)
+spell:cooldown(4000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/strong_energy_strike.lua b/data/scripts/spells/attack/strong_energy_strike.lua
similarity index 54%
rename from data/spells/scripts/attack/strong_energy_strike.lua
rename to data/scripts/spells/attack/strong_energy_strike.lua
index cd723bb7e6..1ad13c86ea 100644
--- a/data/spells/scripts/attack/strong_energy_strike.lua
+++ b/data/scripts/spells/attack/strong_energy_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack", "special")
+spell:id(151)
+spell:name("Strong Energy Strike")
+spell:words("exori gran vis")
+spell:level(80)
+spell:mana(60)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(8000)
+spell:groupCooldown(2000, 8000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/strong_ethereal_spear.lua b/data/scripts/spells/attack/strong_ethereal_spear.lua
similarity index 62%
rename from data/spells/scripts/attack/strong_ethereal_spear.lua
rename to data/scripts/spells/attack/strong_ethereal_spear.lua
index 2b457a5fd3..022a7d1dab 100644
--- a/data/spells/scripts/attack/strong_ethereal_spear.lua
+++ b/data/scripts/spells/attack/strong_ethereal_spear.lua
@@ -13,6 +13,22 @@ end
combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(57)
+spell:name("Strong Ethereal Spear")
+spell:words("exori gran con")
+spell:level(90)
+spell:mana(55)
+spell:range(7)
+spell:needTarget(true)
+spell:cooldown(8000)
+spell:groupCooldown(2000)
+spell:blockWalls(true)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/attack/strong_flame_strike.lua b/data/scripts/spells/attack/strong_flame_strike.lua
similarity index 54%
rename from data/spells/scripts/attack/strong_flame_strike.lua
rename to data/scripts/spells/attack/strong_flame_strike.lua
index 1c0f75e328..d3c4e6a732 100644
--- a/data/spells/scripts/attack/strong_flame_strike.lua
+++ b/data/scripts/spells/attack/strong_flame_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack", "special")
+spell:id(150)
+spell:name("Strong Flame Strike")
+spell:words("exori gran flam")
+spell:level(70)
+spell:mana(60)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(8000)
+spell:groupCooldown(2000, 8000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/strong_ice_strike.lua b/data/scripts/spells/attack/strong_ice_strike.lua
similarity index 54%
rename from data/spells/scripts/attack/strong_ice_strike.lua
rename to data/scripts/spells/attack/strong_ice_strike.lua
index 5e2830bd6a..7cea713880 100644
--- a/data/spells/scripts/attack/strong_ice_strike.lua
+++ b/data/scripts/spells/attack/strong_ice_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack", "special")
+spell:id(152)
+spell:name("Strong Ice Strike")
+spell:words("exori gran frigo")
+spell:level(80)
+spell:mana(60)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(8000)
+spell:groupCooldown(2000, 8000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/strong_ice_wave.lua b/data/scripts/spells/attack/strong_ice_wave.lua
similarity index 57%
rename from data/spells/scripts/attack/strong_ice_wave.lua
rename to data/scripts/spells/attack/strong_ice_wave.lua
index 4b4a721dfd..e40b7be38c 100644
--- a/data/spells/scripts/attack/strong_ice_wave.lua
+++ b/data/scripts/spells/attack/strong_ice_wave.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(43)
+spell:name("Strong Ice Wave")
+spell:words("exevo gran frigo hur")
+spell:level(40)
+spell:mana(170)
+spell:needDirection(true)
+spell:cooldown(8000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/strong_terra_strike.lua b/data/scripts/spells/attack/strong_terra_strike.lua
similarity index 55%
rename from data/spells/scripts/attack/strong_terra_strike.lua
rename to data/scripts/spells/attack/strong_terra_strike.lua
index 7a7e74f0fb..76ddc4b787 100644
--- a/data/spells/scripts/attack/strong_terra_strike.lua
+++ b/data/scripts/spells/attack/strong_terra_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack", "special")
+spell:id(153)
+spell:name("Strong Terra Strike")
+spell:words("exori gran tera")
+spell:level(70)
+spell:mana(60)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(8000)
+spell:groupCooldown(2000, 8000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/terra_strike.lua b/data/scripts/spells/attack/terra_strike.lua
similarity index 54%
rename from data/spells/scripts/attack/terra_strike.lua
rename to data/scripts/spells/attack/terra_strike.lua
index 19154c92ca..b29b0d0ced 100644
--- a/data/spells/scripts/attack/terra_strike.lua
+++ b/data/scripts/spells/attack/terra_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(113)
+spell:name("Terra Strike")
+spell:words("exori tera")
+spell:level(13)
+spell:mana(20)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true", "druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/terra_wave.lua b/data/scripts/spells/attack/terra_wave.lua
similarity index 60%
rename from data/spells/scripts/attack/terra_wave.lua
rename to data/scripts/spells/attack/terra_wave.lua
index d50097f5dd..ddcc692a24 100644
--- a/data/spells/scripts/attack/terra_wave.lua
+++ b/data/scripts/spells/attack/terra_wave.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(120)
+spell:name("Terra Wave")
+spell:words("exevo tera hur")
+spell:level(38)
+spell:mana(170)
+spell:needDirection(true)
+spell:cooldown(4000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/ultimate_energy_strike.lua b/data/scripts/spells/attack/ultimate_energy_strike.lua
similarity index 55%
rename from data/spells/scripts/attack/ultimate_energy_strike.lua
rename to data/scripts/spells/attack/ultimate_energy_strike.lua
index 2aef4b94e2..29cfe73bb2 100644
--- a/data/spells/scripts/attack/ultimate_energy_strike.lua
+++ b/data/scripts/spells/attack/ultimate_energy_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(155)
+spell:name("Ultimate Energy Strike")
+spell:words("exori max vis")
+spell:level(100)
+spell:mana(100)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(30000)
+spell:groupCooldown(4000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/ultimate_flame_strike.lua b/data/scripts/spells/attack/ultimate_flame_strike.lua
similarity index 55%
rename from data/spells/scripts/attack/ultimate_flame_strike.lua
rename to data/scripts/spells/attack/ultimate_flame_strike.lua
index a60738a92a..37cd5bbf13 100644
--- a/data/spells/scripts/attack/ultimate_flame_strike.lua
+++ b/data/scripts/spells/attack/ultimate_flame_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(154)
+spell:name("Ultimate Flame Strike")
+spell:words("exori max flam")
+spell:level(90)
+spell:mana(100)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(30000)
+spell:groupCooldown(4000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/attack/ultimate_ice_strike.lua b/data/scripts/spells/attack/ultimate_ice_strike.lua
similarity index 55%
rename from data/spells/scripts/attack/ultimate_ice_strike.lua
rename to data/scripts/spells/attack/ultimate_ice_strike.lua
index 10f3e271a1..80b82d7c55 100644
--- a/data/spells/scripts/attack/ultimate_ice_strike.lua
+++ b/data/scripts/spells/attack/ultimate_ice_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(156)
+spell:name("Ultimate Ice Strike")
+spell:words("exori max frigo")
+spell:level(100)
+spell:mana(100)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(30000)
+spell:groupCooldown(4000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/ultimate_terra_strike.lua b/data/scripts/spells/attack/ultimate_terra_strike.lua
similarity index 55%
rename from data/spells/scripts/attack/ultimate_terra_strike.lua
rename to data/scripts/spells/attack/ultimate_terra_strike.lua
index c7b863eaac..a5a3d6a3a5 100644
--- a/data/spells/scripts/attack/ultimate_terra_strike.lua
+++ b/data/scripts/spells/attack/ultimate_terra_strike.lua
@@ -11,6 +11,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(157)
+spell:name("Ultimate Terra Strike")
+spell:words("exori max tera")
+spell:level(90)
+spell:mana(100)
+spell:range(3)
+spell:needCasterTargetOrDirection(true)
+spell:blockWalls(true)
+spell:cooldown(30000)
+spell:groupCooldown(4000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/attack/whirlwind_throw.lua b/data/scripts/spells/attack/whirlwind_throw.lua
similarity index 61%
rename from data/spells/scripts/attack/whirlwind_throw.lua
rename to data/scripts/spells/attack/whirlwind_throw.lua
index 508062132a..3ebad3909b 100644
--- a/data/spells/scripts/attack/whirlwind_throw.lua
+++ b/data/scripts/spells/attack/whirlwind_throw.lua
@@ -13,6 +13,23 @@ end
combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(107)
+spell:name("Whirlwind Throw")
+spell:words("exori hur")
+spell:level(28)
+spell:mana(40)
+spell:range(5)
+spell:needTarget(true)
+spell:blockWalls(true)
+spell:needWeapon(true)
+spell:cooldown(6000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/attack/wrath_of_nature.lua b/data/scripts/spells/attack/wrath_of_nature.lua
similarity index 58%
rename from data/spells/scripts/attack/wrath_of_nature.lua
rename to data/scripts/spells/attack/wrath_of_nature.lua
index 80f1c72ea8..cd917a8122 100644
--- a/data/spells/scripts/attack/wrath_of_nature.lua
+++ b/data/scripts/spells/attack/wrath_of_nature.lua
@@ -11,6 +11,20 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("attack")
+spell:id(56)
+spell:name("Wrath of Nature")
+spell:words("exevo gran mas tera")
+spell:level(55)
+spell:mana(700)
+spell:isSelfTarget(true)
+spell:cooldown(40000)
+spell:groupCooldown(4000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/animate_dead_rune.lua b/data/scripts/spells/conjuring/animate_dead_rune.lua
new file mode 100644
index 0000000000..1398ca189e
--- /dev/null
+++ b/data/scripts/spells/conjuring/animate_dead_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2316, 1)
+end
+
+spell:group("support")
+spell:name("Animate Dead Rune")
+spell:words("adana mort")
+spell:level(27)
+spell:mana(600)
+spell:soul(5)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/arrow_call.lua b/data/scripts/spells/conjuring/arrow_call.lua
new file mode 100644
index 0000000000..d4bfab24f3
--- /dev/null
+++ b/data/scripts/spells/conjuring/arrow_call.lua
@@ -0,0 +1,20 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(0, 23839, 3, CONST_ME_MAGIC_BLUE)
+end
+
+spell:group("support")
+spell:id(176)
+spell:name("Arrow Call")
+spell:words("exevo infir con")
+spell:level(1)
+spell:mana(10)
+spell:soul(1)
+spell:isPremium(true)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/avalanche_rune.lua b/data/scripts/spells/conjuring/avalanche_rune.lua
new file mode 100644
index 0000000000..a69129f811
--- /dev/null
+++ b/data/scripts/spells/conjuring/avalanche_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2274, 4)
+end
+
+spell:group("support")
+spell:name("Avalanche Rune")
+spell:words("adori mas frigo")
+spell:level(30)
+spell:mana(530)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/blank_rune.lua b/data/scripts/spells/conjuring/blank_rune.lua
new file mode 100644
index 0000000000..e8c5d81430
--- /dev/null
+++ b/data/scripts/spells/conjuring/blank_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(0, 2260, 1)
+end
+
+spell:group("support")
+spell:name("Blank Rune")
+spell:words("adori blank")
+spell:level(20)
+spell:mana(50)
+spell:soul(1)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true", "paladin;true", "royal paladin;true", "sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/chameleon_rune.lua b/data/scripts/spells/conjuring/chameleon_rune.lua
new file mode 100644
index 0000000000..3c00efb986
--- /dev/null
+++ b/data/scripts/spells/conjuring/chameleon_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2291, 1)
+end
+
+spell:group("support")
+spell:name("Chameleon Rune")
+spell:words("adevo ina")
+spell:level(27)
+spell:mana(600)
+spell:soul(2)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/conjure_arrow.lua b/data/scripts/spells/conjuring/conjure_arrow.lua
new file mode 100644
index 0000000000..643c76de8c
--- /dev/null
+++ b/data/scripts/spells/conjuring/conjure_arrow.lua
@@ -0,0 +1,20 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(0, 2544, 10, CONST_ME_MAGIC_BLUE)
+end
+
+spell:group("support")
+spell:id(51)
+spell:name("Conjure Arrow")
+spell:words("exevo con")
+spell:level(13)
+spell:mana(100)
+spell:soul(1)
+spell:isPremium(true)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/conjure_bolt.lua b/data/scripts/spells/conjuring/conjure_bolt.lua
new file mode 100644
index 0000000000..287e371163
--- /dev/null
+++ b/data/scripts/spells/conjuring/conjure_bolt.lua
@@ -0,0 +1,19 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(0, 2543, 5, CONST_ME_MAGIC_BLUE)
+end
+
+spell:group("support")
+spell:id(79)
+spell:name("Conjure Bolt")
+spell:words("exevo con mort")
+spell:level(17)
+spell:mana(140)
+spell:soul(2)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/conjure_explosive_arrow.lua b/data/scripts/spells/conjuring/conjure_explosive_arrow.lua
new file mode 100644
index 0000000000..33179bb011
--- /dev/null
+++ b/data/scripts/spells/conjuring/conjure_explosive_arrow.lua
@@ -0,0 +1,20 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(0, 2546, 8, CONST_ME_MAGIC_BLUE)
+end
+
+spell:group("support")
+spell:id(49)
+spell:name("Conjure Explosive Arrow")
+spell:words("exevo con flam")
+spell:level(25)
+spell:mana(290)
+spell:soul(3)
+spell:isPremium(true)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/conjure_piercing_bolt.lua b/data/scripts/spells/conjuring/conjure_piercing_bolt.lua
new file mode 100644
index 0000000000..9dfa0c958e
--- /dev/null
+++ b/data/scripts/spells/conjuring/conjure_piercing_bolt.lua
@@ -0,0 +1,19 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(0, 7363, 5, CONST_ME_MAGIC_BLUE)
+end
+
+spell:group("support")
+spell:id(109)
+spell:name("Conjure Piercing Bolt")
+spell:words("exevo con grav")
+spell:level(33)
+spell:mana(180)
+spell:soul(3)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/conjure_poisoned_arrow.lua b/data/scripts/spells/conjuring/conjure_poisoned_arrow.lua
new file mode 100644
index 0000000000..c8a2cac742
--- /dev/null
+++ b/data/scripts/spells/conjuring/conjure_poisoned_arrow.lua
@@ -0,0 +1,20 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(0, 2545, 7, CONST_ME_MAGIC_BLUE)
+end
+
+spell:group("support")
+spell:id(48)
+spell:name("Conjure Poisoned Arrow")
+spell:words("exevo con pox")
+spell:level(16)
+spell:mana(130)
+spell:soul(2)
+spell:isPremium(true)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/conjure_power_bolt.lua b/data/scripts/spells/conjuring/conjure_power_bolt.lua
new file mode 100644
index 0000000000..702ed8b686
--- /dev/null
+++ b/data/scripts/spells/conjuring/conjure_power_bolt.lua
@@ -0,0 +1,19 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(0, 2547, 10, CONST_ME_MAGIC_BLUE)
+end
+
+spell:group("support")
+spell:id(95)
+spell:name("Conjure Power Bolt")
+spell:words("exevo con vis")
+spell:level(59)
+spell:mana(700)
+spell:soul(4)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/conjure_sniper_arrow.lua b/data/scripts/spells/conjuring/conjure_sniper_arrow.lua
new file mode 100644
index 0000000000..950cd43685
--- /dev/null
+++ b/data/scripts/spells/conjuring/conjure_sniper_arrow.lua
@@ -0,0 +1,19 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(0, 7364, 5, CONST_ME_MAGIC_BLUE)
+end
+
+spell:group("support")
+spell:id(108)
+spell:name("Conjure Sniper Arrow")
+spell:words("exevo con hur")
+spell:level(24)
+spell:mana(160)
+spell:soul(3)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/convince_creature_rune.lua b/data/scripts/spells/conjuring/convince_creature_rune.lua
new file mode 100644
index 0000000000..481470ed77
--- /dev/null
+++ b/data/scripts/spells/conjuring/convince_creature_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2290, 1)
+end
+
+spell:group("support")
+spell:name("Convince Creature Rune")
+spell:words("adeta sio")
+spell:level(16)
+spell:mana(200)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/cure_poison_rune.lua b/data/scripts/spells/conjuring/cure_poison_rune.lua
new file mode 100644
index 0000000000..f55c25b373
--- /dev/null
+++ b/data/scripts/spells/conjuring/cure_poison_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2266, 1)
+end
+
+spell:group("support")
+spell:name("Cure Poison Rune")
+spell:words("adana pox")
+spell:level(15)
+spell:mana(200)
+spell:soul(1)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/destroy_field_rune.lua b/data/scripts/spells/conjuring/destroy_field_rune.lua
new file mode 100644
index 0000000000..9fe2c99998
--- /dev/null
+++ b/data/scripts/spells/conjuring/destroy_field_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2261, 3)
+end
+
+spell:group("support")
+spell:name("Destroy Field Rune")
+spell:words("adito grav")
+spell:level(17)
+spell:mana(120)
+spell:soul(2)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "master sorcerer;true", "elder druid;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/disintegrate_rune.lua b/data/scripts/spells/conjuring/disintegrate_rune.lua
new file mode 100644
index 0000000000..dec63e20d3
--- /dev/null
+++ b/data/scripts/spells/conjuring/disintegrate_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2310, 3)
+end
+
+spell:group("support")
+spell:name("Disintegrate Rune")
+spell:words("adito tera")
+spell:level(21)
+spell:mana(200)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "master sorcerer;true", "elder druid;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/enchant_spear.lua b/data/scripts/spells/conjuring/enchant_spear.lua
new file mode 100644
index 0000000000..d3c5aa7cc3
--- /dev/null
+++ b/data/scripts/spells/conjuring/enchant_spear.lua
@@ -0,0 +1,19 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2389, 7367, 1, CONST_ME_MAGIC_GREEN)
+end
+
+spell:group("support")
+spell:id(110)
+spell:name("Enchant Spear")
+spell:words("exeta con")
+spell:level(45)
+spell:mana(350)
+spell:soul(3)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/energy_bomb_rune.lua b/data/scripts/spells/conjuring/energy_bomb_rune.lua
new file mode 100644
index 0000000000..1febe12dbe
--- /dev/null
+++ b/data/scripts/spells/conjuring/energy_bomb_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2262, 2)
+end
+
+spell:group("support")
+spell:name("Energy Bomb Rune")
+spell:words("adevo mas vis")
+spell:level(37)
+spell:mana(880)
+spell:soul(5)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/energy_field_rune.lua b/data/scripts/spells/conjuring/energy_field_rune.lua
new file mode 100644
index 0000000000..f599ee616c
--- /dev/null
+++ b/data/scripts/spells/conjuring/energy_field_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2277, 3)
+end
+
+spell:group("support")
+spell:name("Energy Field Rune")
+spell:words("adevo grav vis")
+spell:level(18)
+spell:mana(320)
+spell:soul(2)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/energy_wall_rune.lua b/data/scripts/spells/conjuring/energy_wall_rune.lua
new file mode 100644
index 0000000000..e765797e47
--- /dev/null
+++ b/data/scripts/spells/conjuring/energy_wall_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2279, 4)
+end
+
+spell:group("support")
+spell:name("Energy Wall Rune")
+spell:words("adevo mas grav vis")
+spell:level(41)
+spell:mana(1000)
+spell:soul(5)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/explosion_rune.lua b/data/scripts/spells/conjuring/explosion_rune.lua
new file mode 100644
index 0000000000..10537b2a30
--- /dev/null
+++ b/data/scripts/spells/conjuring/explosion_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2313, 6)
+end
+
+spell:group("support")
+spell:name("Explosion Rune")
+spell:words("adevo mas hur")
+spell:level(31)
+spell:mana(570)
+spell:soul(4)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/fire_bomb_rune.lua b/data/scripts/spells/conjuring/fire_bomb_rune.lua
new file mode 100644
index 0000000000..97410e44f8
--- /dev/null
+++ b/data/scripts/spells/conjuring/fire_bomb_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2305, 2)
+end
+
+spell:group("support")
+spell:name("Fire Bomb Rune")
+spell:words("adevo mas flam")
+spell:level(27)
+spell:mana(600)
+spell:soul(4)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/fire_field_rune.lua b/data/scripts/spells/conjuring/fire_field_rune.lua
new file mode 100644
index 0000000000..9d54c2446c
--- /dev/null
+++ b/data/scripts/spells/conjuring/fire_field_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2301, 3)
+end
+
+spell:group("support")
+spell:name("Fire Field Rune")
+spell:words("adevo grav flam")
+spell:level(15)
+spell:mana(240)
+spell:soul(1)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/fire_wall_rune.lua b/data/scripts/spells/conjuring/fire_wall_rune.lua
new file mode 100644
index 0000000000..6a0d431d01
--- /dev/null
+++ b/data/scripts/spells/conjuring/fire_wall_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2303, 4)
+end
+
+spell:group("support")
+spell:name("Fire Wall Rune")
+spell:words("adevo mas grav flam")
+spell:level(33)
+spell:mana(780)
+spell:soul(4)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/fireball_rune.lua b/data/scripts/spells/conjuring/fireball_rune.lua
new file mode 100644
index 0000000000..9d028c76b7
--- /dev/null
+++ b/data/scripts/spells/conjuring/fireball_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2302, 5)
+end
+
+spell:group("support")
+spell:name("Fireball Rune")
+spell:words("adori flam")
+spell:level(27)
+spell:mana(460)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/great_fireball_rune.lua b/data/scripts/spells/conjuring/great_fireball_rune.lua
new file mode 100644
index 0000000000..a07303ec5d
--- /dev/null
+++ b/data/scripts/spells/conjuring/great_fireball_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2304, 4)
+end
+
+spell:group("support")
+spell:name("Great Fireball Rune")
+spell:words("adori mas flam")
+spell:level(30)
+spell:mana(530)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/heavy_magic_missile_rune.lua b/data/scripts/spells/conjuring/heavy_magic_missile_rune.lua
new file mode 100644
index 0000000000..8cf3632699
--- /dev/null
+++ b/data/scripts/spells/conjuring/heavy_magic_missile_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2311, 10)
+end
+
+spell:group("support")
+spell:name("Heavy Magic Missile Rune")
+spell:words("adori vis")
+spell:level(25)
+spell:mana(350)
+spell:soul(2)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true", "druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/holy_missile_rune.lua b/data/scripts/spells/conjuring/holy_missile_rune.lua
new file mode 100644
index 0000000000..5fbec29bbd
--- /dev/null
+++ b/data/scripts/spells/conjuring/holy_missile_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2295, 5)
+end
+
+spell:group("support")
+spell:name("Holy Missile Rune")
+spell:words("adori san")
+spell:level(27)
+spell:mana(300)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/icicle_rune.lua b/data/scripts/spells/conjuring/icicle_rune.lua
new file mode 100644
index 0000000000..083d54d25c
--- /dev/null
+++ b/data/scripts/spells/conjuring/icicle_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2271, 5)
+end
+
+spell:group("support")
+spell:name("Icicle Rune")
+spell:words("adori frigo")
+spell:level(28)
+spell:mana(460)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/intense_healing_rune.lua b/data/scripts/spells/conjuring/intense_healing_rune.lua
new file mode 100644
index 0000000000..ee0b4b1dbe
--- /dev/null
+++ b/data/scripts/spells/conjuring/intense_healing_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2265, 1)
+end
+
+spell:group("support")
+spell:name("Intense Healing Rune")
+spell:words("adura gran")
+spell:level(15)
+spell:mana(120)
+spell:soul(2)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/light_magic_missile_rune.lua b/data/scripts/spells/conjuring/light_magic_missile_rune.lua
new file mode 100644
index 0000000000..389421e4c6
--- /dev/null
+++ b/data/scripts/spells/conjuring/light_magic_missile_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2287, 10)
+end
+
+spell:group("support")
+spell:name("Light Magic Missile Rune")
+spell:words("adori min vis")
+spell:level(15)
+spell:mana(120)
+spell:soul(1)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/light_stone_shower_rune.lua b/data/scripts/spells/conjuring/light_stone_shower_rune.lua
new file mode 100644
index 0000000000..3ff93a5936
--- /dev/null
+++ b/data/scripts/spells/conjuring/light_stone_shower_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 23722, 4)
+end
+
+spell:group("support")
+spell:name("Light Stone Shower Rune")
+spell:words("adori infir mas tera")
+spell:level(1)
+spell:mana(6)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "master sorcerer;true", "elder druid;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/lightest_missile_rune.lua b/data/scripts/spells/conjuring/lightest_missile_rune.lua
new file mode 100644
index 0000000000..4c64f150b5
--- /dev/null
+++ b/data/scripts/spells/conjuring/lightest_missile_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 23723, 10)
+end
+
+spell:group("support")
+spell:name("Lightest Missile Rune")
+spell:words("adori infir vis")
+spell:level(1)
+spell:mana(6)
+spell:soul(0)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "master sorcerer;true", "elder druid;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/magic_wall_rune.lua b/data/scripts/spells/conjuring/magic_wall_rune.lua
new file mode 100644
index 0000000000..b80b8cfbe8
--- /dev/null
+++ b/data/scripts/spells/conjuring/magic_wall_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2293, 3)
+end
+
+spell:group("support")
+spell:name("Magic Wall Rune")
+spell:words("adevo grav tera")
+spell:level(32)
+spell:mana(750)
+spell:soul(5)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/paralyze_rune.lua b/data/scripts/spells/conjuring/paralyze_rune.lua
new file mode 100644
index 0000000000..0f835e35bd
--- /dev/null
+++ b/data/scripts/spells/conjuring/paralyze_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2278, 1)
+end
+
+spell:group("support")
+spell:name("Paralyze Rune")
+spell:words("adana ani")
+spell:level(54)
+spell:mana(1400)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/poison_bomb_rune.lua b/data/scripts/spells/conjuring/poison_bomb_rune.lua
new file mode 100644
index 0000000000..edfa977b11
--- /dev/null
+++ b/data/scripts/spells/conjuring/poison_bomb_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2286, 2)
+end
+
+spell:group("support")
+spell:name("Poison Bomb Rune")
+spell:words("adevo mas pox")
+spell:level(25)
+spell:mana(520)
+spell:soul(2)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/poison_field_rune.lua b/data/scripts/spells/conjuring/poison_field_rune.lua
new file mode 100644
index 0000000000..bf7861bb2f
--- /dev/null
+++ b/data/scripts/spells/conjuring/poison_field_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2285, 3)
+end
+
+spell:group("support")
+spell:name("Poison Field Rune")
+spell:words("adevo grav pox")
+spell:level(14)
+spell:mana(200)
+spell:soul(1)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/poison_wall_rune.lua b/data/scripts/spells/conjuring/poison_wall_rune.lua
new file mode 100644
index 0000000000..d6046d3838
--- /dev/null
+++ b/data/scripts/spells/conjuring/poison_wall_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2289, 4)
+end
+
+spell:group("support")
+spell:name("Poison Wall Rune")
+spell:words("adevo mas grav pox")
+spell:level(29)
+spell:mana(640)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/practise_magic_missile_rune.lua b/data/scripts/spells/conjuring/practise_magic_missile_rune.lua
new file mode 100644
index 0000000000..ec46afd9a1
--- /dev/null
+++ b/data/scripts/spells/conjuring/practise_magic_missile_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 19392, 10)
+end
+
+spell:group("support")
+spell:name("Practise Magic Missile Rune")
+spell:words("adori dis min vis")
+spell:level(1)
+spell:mana(5)
+spell:soul(0)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("none;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/soulfire_rune.lua b/data/scripts/spells/conjuring/soulfire_rune.lua
new file mode 100644
index 0000000000..e02d603c10
--- /dev/null
+++ b/data/scripts/spells/conjuring/soulfire_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2308, 3)
+end
+
+spell:group("support")
+spell:name("Soulfire Rune")
+spell:words("adevo res flam")
+spell:level(27)
+spell:mana(420)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/stalagmite_rune.lua b/data/scripts/spells/conjuring/stalagmite_rune.lua
new file mode 100644
index 0000000000..55d51c5b8e
--- /dev/null
+++ b/data/scripts/spells/conjuring/stalagmite_rune.lua
@@ -0,0 +1,18 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2292, 10)
+end
+
+spell:group("support")
+spell:name("Stalagmite Rune")
+spell:words("adori tera")
+spell:level(24)
+spell:mana(350)
+spell:soul(2)
+spell:isPremium(true)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true", "druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/stone_shower_rune.lua b/data/scripts/spells/conjuring/stone_shower_rune.lua
new file mode 100644
index 0000000000..9364d20d5a
--- /dev/null
+++ b/data/scripts/spells/conjuring/stone_shower_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2288, 4)
+end
+
+spell:group("support")
+spell:name("Stone Shower Rune")
+spell:words("adori mas tera")
+spell:level(28)
+spell:mana(430)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/sudden_death_rune.lua b/data/scripts/spells/conjuring/sudden_death_rune.lua
new file mode 100644
index 0000000000..40f53b1ce7
--- /dev/null
+++ b/data/scripts/spells/conjuring/sudden_death_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2268, 3)
+end
+
+spell:group("support")
+spell:name("Sudden Death Rune")
+spell:words("adori gran mort")
+spell:level(45)
+spell:mana(985)
+spell:soul(5)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/thunderstorm_rune.lua b/data/scripts/spells/conjuring/thunderstorm_rune.lua
new file mode 100644
index 0000000000..aef469f892
--- /dev/null
+++ b/data/scripts/spells/conjuring/thunderstorm_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2315, 4)
+end
+
+spell:group("support")
+spell:name("Thunderstorm Rune")
+spell:words("adori mas vis")
+spell:level(28)
+spell:mana(430)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/ultimate_healing_rune.lua b/data/scripts/spells/conjuring/ultimate_healing_rune.lua
new file mode 100644
index 0000000000..49f35e39d6
--- /dev/null
+++ b/data/scripts/spells/conjuring/ultimate_healing_rune.lua
@@ -0,0 +1,17 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2273, 1)
+end
+
+spell:group("support")
+spell:name("Ultimate Healing Rune")
+spell:words("adura vita")
+spell:level(24)
+spell:mana(400)
+spell:soul(3)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/wand_of_darkness.lua b/data/scripts/spells/conjuring/wand_of_darkness.lua
new file mode 100644
index 0000000000..e488bf1245
--- /dev/null
+++ b/data/scripts/spells/conjuring/wand_of_darkness.lua
@@ -0,0 +1,18 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(0, 28416, 1, CONST_ME_MAGIC_GREEN)
+end
+
+spell:group("support")
+spell:id(92)
+spell:name("Conjure Wand of Darkness")
+spell:words("exevo gran mort")
+spell:level(41)
+spell:mana(250)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(1800)
+spell:groupCooldown(2000)
+spell:vocation("master sorcerer;true")
+spell:register()
diff --git a/data/scripts/spells/conjuring/wild_growth_rune.lua b/data/scripts/spells/conjuring/wild_growth_rune.lua
new file mode 100644
index 0000000000..4dbe371963
--- /dev/null
+++ b/data/scripts/spells/conjuring/wild_growth_rune.lua
@@ -0,0 +1,15 @@
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return creature:conjureItem(2260, 2269, 2)
+end
+
+spell:group("support")
+spell:name("Wild Growth Rune")
+spell:words("adevo grav vita")
+spell:level(27)
+spell:mana(600)
+spell:soul(5)
+spell:isAggressive(false)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/healing/bruise_bane.lua b/data/scripts/spells/healing/bruise_bane.lua
similarity index 62%
rename from data/spells/scripts/healing/bruise_bane.lua
rename to data/scripts/spells/healing/bruise_bane.lua
index 425c81f186..ec1816eb36 100644
--- a/data/spells/scripts/healing/bruise_bane.lua
+++ b/data/scripts/spells/healing/bruise_bane.lua
@@ -14,6 +14,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(175)
+spell:name("Bruise Bane")
+spell:words("exura infir ico")
+spell:level(1)
+spell:mana(10)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/scripts/spells/healing/cure_bleeding.lua b/data/scripts/spells/healing/cure_bleeding.lua
new file mode 100644
index 0000000000..4f68bedff3
--- /dev/null
+++ b/data/scripts/spells/healing/cure_bleeding.lua
@@ -0,0 +1,23 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
+combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_BLEEDING)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("healing")
+spell:id(144)
+spell:name("Cure Bleeding")
+spell:words("exana kor")
+spell:level(45)
+spell:mana(30)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(6000)
+spell:groupCooldown(1000)
+spell:vocation("druid;true", "knight;true", "elder druid;true", "elite knight;true")
+spell:register()
diff --git a/data/scripts/spells/healing/cure_burning.lua b/data/scripts/spells/healing/cure_burning.lua
new file mode 100644
index 0000000000..c5a533d15a
--- /dev/null
+++ b/data/scripts/spells/healing/cure_burning.lua
@@ -0,0 +1,23 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
+combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_FIRE)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("healing")
+spell:id(145)
+spell:name("Cure Burning")
+spell:words("exana flam")
+spell:level(30)
+spell:mana(30)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(6000)
+spell:groupCooldown(1000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/healing/cure_curse.lua b/data/scripts/spells/healing/cure_curse.lua
new file mode 100644
index 0000000000..f5f0026e3c
--- /dev/null
+++ b/data/scripts/spells/healing/cure_curse.lua
@@ -0,0 +1,23 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
+combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_CURSED)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("healing")
+spell:id(147)
+spell:name("Cure Curse")
+spell:words("exana mort")
+spell:level(80)
+spell:mana(40)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(6000)
+spell:groupCooldown(1000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/healing/cure_electrification.lua b/data/scripts/spells/healing/cure_electrification.lua
new file mode 100644
index 0000000000..0926c32111
--- /dev/null
+++ b/data/scripts/spells/healing/cure_electrification.lua
@@ -0,0 +1,23 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
+combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_ENERGY)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("healing")
+spell:id(146)
+spell:name("Cure Electrification")
+spell:words("exana vis")
+spell:level(22)
+spell:mana(30)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(6000)
+spell:groupCooldown(1000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/healing/cure_poison.lua b/data/scripts/spells/healing/cure_poison.lua
new file mode 100644
index 0000000000..c3114199a4
--- /dev/null
+++ b/data/scripts/spells/healing/cure_poison.lua
@@ -0,0 +1,23 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
+combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("healing")
+spell:id(29)
+spell:name("Cure Poison")
+spell:words("exana pox")
+spell:level(10)
+spell:mana(30)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(6000)
+spell:groupCooldown(1000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "knight;true", "master sorcerer;true", "elder druid;true", "royal paladin;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/healing/divine_healing.lua b/data/scripts/spells/healing/divine_healing.lua
similarity index 58%
rename from data/spells/scripts/healing/divine_healing.lua
rename to data/scripts/spells/healing/divine_healing.lua
index 6cc3847047..68a4cbfa21 100644
--- a/data/spells/scripts/healing/divine_healing.lua
+++ b/data/scripts/spells/healing/divine_healing.lua
@@ -12,6 +12,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(125)
+spell:name("Divine Healing")
+spell:words("exura san")
+spell:level(35)
+spell:mana(160)
+spell:isPremium(true)
+spell:isSelfTarget(true)
+spell:isAggressive(false)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/healing/fair_wound_cleansing.lua b/data/scripts/spells/healing/fair_wound_cleansing.lua
similarity index 59%
rename from data/spells/scripts/healing/fair_wound_cleansing.lua
rename to data/scripts/spells/healing/fair_wound_cleansing.lua
index 2741906a29..483dc9831a 100644
--- a/data/spells/scripts/healing/fair_wound_cleansing.lua
+++ b/data/scripts/spells/healing/fair_wound_cleansing.lua
@@ -12,6 +12,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(239)
+spell:name("Fair Wound Cleansing")
+spell:words("exura med ico")
+spell:level(300)
+spell:mana(90)
+spell:isSelfTarget(true)
+spell:isAggressive(false)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/healing/heal_friend.lua b/data/scripts/spells/healing/heal_friend.lua
similarity index 65%
rename from data/spells/scripts/healing/heal_friend.lua
rename to data/scripts/spells/healing/heal_friend.lua
index e776dd3932..08ad865185 100644
--- a/data/spells/scripts/healing/heal_friend.lua
+++ b/data/scripts/spells/healing/heal_friend.lua
@@ -12,7 +12,9 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
if creature:isPlayer() and variant:getNumber() == creature:getId() then
creature:sendCancelMessage("You can't cast this spell on yourself.")
creature:getPosition():sendMagicEffect(CONST_ME_POFF)
@@ -21,3 +23,19 @@ function onCastSpell(creature, variant)
creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(84)
+spell:name("Heal Friend")
+spell:words("exura sio")
+spell:level(18)
+spell:mana(120)
+spell:isAggressive(false)
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:hasPlayerNameParam(true)
+spell:hasParams(true)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/healing/intense_healing.lua b/data/scripts/spells/healing/intense_healing.lua
new file mode 100644
index 0000000000..bb269de9ce
--- /dev/null
+++ b/data/scripts/spells/healing/intense_healing.lua
@@ -0,0 +1,32 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING)
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
+combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+function onGetFormulaValues(player, level, magicLevel)
+ local min = (level / 5) + (magicLevel * 3.2) + 20
+ local max = (level / 5) + (magicLevel * 5.4) + 40
+ return min, max
+end
+
+combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("healing")
+spell:id(2)
+spell:name("Intense Healing")
+spell:words("exura gran")
+spell:level(20)
+spell:mana(70)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "master sorcerer;true", "elder druid;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/healing/intense_recovery.lua b/data/scripts/spells/healing/intense_recovery.lua
similarity index 54%
rename from data/spells/scripts/healing/intense_recovery.lua
rename to data/scripts/spells/healing/intense_recovery.lua
index f626cffd2b..8bbf3f7ea4 100644
--- a/data/spells/scripts/healing/intense_recovery.lua
+++ b/data/scripts/spells/healing/intense_recovery.lua
@@ -9,6 +9,21 @@ condition:setParameter(CONDITION_PARAM_HEALTHTICKS, 3000)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
combat:addCondition(condition)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(160)
+spell:name("Intense Recovery")
+spell:words("utura gran")
+spell:level(100)
+spell:mana(165)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(60000)
+spell:groupCooldown(1000)
+spell:vocation("paladin;true", "knight;true", "royal paladin;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/healing/intense_wound_cleansing.lua b/data/scripts/spells/healing/intense_wound_cleansing.lua
similarity index 58%
rename from data/spells/scripts/healing/intense_wound_cleansing.lua
rename to data/scripts/spells/healing/intense_wound_cleansing.lua
index cee08e3603..ff6920ce7f 100644
--- a/data/spells/scripts/healing/intense_wound_cleansing.lua
+++ b/data/scripts/spells/healing/intense_wound_cleansing.lua
@@ -12,6 +12,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(158)
+spell:name("Intense Wound Cleansing")
+spell:words("exura gran ico")
+spell:level(80)
+spell:mana(200)
+spell:isSelfTarget(true)
+spell:isAggressive(false)
+spell:cooldown(600000)
+spell:groupCooldown(1000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/healing/light_healing.lua b/data/scripts/spells/healing/light_healing.lua
similarity index 55%
rename from data/spells/scripts/healing/light_healing.lua
rename to data/scripts/spells/healing/light_healing.lua
index ce66e0eb18..f709cefb12 100644
--- a/data/spells/scripts/healing/light_healing.lua
+++ b/data/scripts/spells/healing/light_healing.lua
@@ -12,6 +12,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(1)
+spell:name("Light Healing")
+spell:words("exura")
+spell:level(8)
+spell:mana(20)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "master sorcerer;true", "elder druid;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/healing/magic_patch.lua b/data/scripts/spells/healing/magic_patch.lua
similarity index 57%
rename from data/spells/scripts/healing/magic_patch.lua
rename to data/scripts/spells/healing/magic_patch.lua
index 8c60b46554..d34217e827 100644
--- a/data/spells/scripts/healing/magic_patch.lua
+++ b/data/scripts/spells/healing/magic_patch.lua
@@ -14,6 +14,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(174)
+spell:name("Magic Patch")
+spell:words("exura infir")
+spell:level(1)
+spell:mana(6)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "master sorcerer;true", "elder druid;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/healing/mass_healing.lua b/data/scripts/spells/healing/mass_healing.lua
similarity index 65%
rename from data/spells/scripts/healing/mass_healing.lua
rename to data/scripts/spells/healing/mass_healing.lua
index 72dad78f2f..91100b1fe5 100644
--- a/data/spells/scripts/healing/mass_healing.lua
+++ b/data/scripts/spells/healing/mass_healing.lua
@@ -4,7 +4,9 @@ combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
combat:setArea(createCombatArea(AREA_CIRCLE3X3))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local min = (creature:getLevel() / 5) + (creature:getMagicLevel() * 4.6) + 100
local max = (creature:getLevel() / 5) + (creature:getMagicLevel() * 9.6) + 125
for _, target in ipairs(combat:getTargets(creature, variant)) do
@@ -15,3 +17,15 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:group("healing")
+spell:id(82)
+spell:name("Mass Healing")
+spell:words("exura gran mas res")
+spell:level(36)
+spell:mana(150)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(1000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/healing/natures_embrace.lua b/data/scripts/spells/healing/natures_embrace.lua
similarity index 65%
rename from data/spells/scripts/healing/natures_embrace.lua
rename to data/scripts/spells/healing/natures_embrace.lua
index b1f7bcdcaf..aaa865675f 100644
--- a/data/spells/scripts/healing/natures_embrace.lua
+++ b/data/scripts/spells/healing/natures_embrace.lua
@@ -12,7 +12,9 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
if creature:isPlayer() and variant:getNumber() == creature:getId() then
creature:sendCancelMessage("You can't cast this spell on yourself.")
creature:getPosition():sendMagicEffect(CONST_ME_POFF)
@@ -21,3 +23,19 @@ function onCastSpell(creature, variant)
creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(242)
+spell:name("Nature's Embrace")
+spell:words("exura gran sio")
+spell:level(300)
+spell:mana(400)
+spell:isAggressive(false)
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:hasPlayerNameParam(true)
+spell:hasParams(true)
+spell:cooldown(60000)
+spell:groupCooldown(1000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/healing/practise_healing.lua b/data/scripts/spells/healing/practise_healing.lua
similarity index 56%
rename from data/spells/scripts/healing/practise_healing.lua
rename to data/scripts/spells/healing/practise_healing.lua
index b18ec024bf..c0113fb0cc 100644
--- a/data/spells/scripts/healing/practise_healing.lua
+++ b/data/scripts/spells/healing/practise_healing.lua
@@ -10,6 +10,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(166)
+spell:name("Practise Healing")
+spell:words("exura dis")
+spell:level(1)
+spell:mana(5)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("none;true")
+spell:register()
diff --git a/data/spells/scripts/healing/recovery.lua b/data/scripts/spells/healing/recovery.lua
similarity index 55%
rename from data/spells/scripts/healing/recovery.lua
rename to data/scripts/spells/healing/recovery.lua
index 63e1f8f313..b1c3c356db 100644
--- a/data/spells/scripts/healing/recovery.lua
+++ b/data/scripts/spells/healing/recovery.lua
@@ -9,6 +9,21 @@ condition:setParameter(CONDITION_PARAM_HEALTHTICKS, 3000)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
combat:addCondition(condition)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(159)
+spell:name("Recovery")
+spell:words("utura")
+spell:level(50)
+spell:mana(75)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(60000)
+spell:groupCooldown(1000)
+spell:vocation("paladin;true", "knight;true", "royal paladin;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/healing/restoration.lua b/data/scripts/spells/healing/restoration.lua
similarity index 57%
rename from data/spells/scripts/healing/restoration.lua
rename to data/scripts/spells/healing/restoration.lua
index 1384407386..c9633bfe9d 100644
--- a/data/spells/scripts/healing/restoration.lua
+++ b/data/scripts/spells/healing/restoration.lua
@@ -12,6 +12,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(241)
+spell:name("Restoration")
+spell:words("exura max vita")
+spell:level(300)
+spell:mana(260)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(6000)
+spell:groupCooldown(1000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/healing/salvation.lua b/data/scripts/spells/healing/salvation.lua
similarity index 59%
rename from data/spells/scripts/healing/salvation.lua
rename to data/scripts/spells/healing/salvation.lua
index 58e27665d7..b464e12051 100644
--- a/data/spells/scripts/healing/salvation.lua
+++ b/data/scripts/spells/healing/salvation.lua
@@ -12,6 +12,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(36)
+spell:name("Salvation")
+spell:words("exura gran san")
+spell:level(60)
+spell:mana(210)
+spell:isSelfTarget(true)
+spell:isAggressive(false)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/healing/ultimate_healing.lua b/data/scripts/spells/healing/ultimate_healing.lua
similarity index 57%
rename from data/spells/scripts/healing/ultimate_healing.lua
rename to data/scripts/spells/healing/ultimate_healing.lua
index a5a8cf8d1b..fcfc827b5b 100644
--- a/data/spells/scripts/healing/ultimate_healing.lua
+++ b/data/scripts/spells/healing/ultimate_healing.lua
@@ -12,6 +12,21 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(3)
+spell:name("Ultimate Healing")
+spell:words("exura vita")
+spell:level(30)
+spell:mana(160)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/healing/wound_cleansing.lua b/data/scripts/spells/healing/wound_cleansing.lua
similarity index 58%
rename from data/spells/scripts/healing/wound_cleansing.lua
rename to data/scripts/spells/healing/wound_cleansing.lua
index 004f51b64e..8491eea753 100644
--- a/data/spells/scripts/healing/wound_cleansing.lua
+++ b/data/scripts/spells/healing/wound_cleansing.lua
@@ -12,6 +12,22 @@ end
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("healing")
+spell:id(123)
+spell:name("Wound Cleansing")
+spell:words("exura ico")
+spell:level(8)
+spell:mana(40)
+spell:isPremium(true)
+spell:isSelfTarget(true)
+spell:isAggressive(false)
+spell:cooldown(1000)
+spell:groupCooldown(1000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/house/edit_door.lua b/data/scripts/spells/house/edit_door.lua
similarity index 75%
rename from data/spells/scripts/house/edit_door.lua
rename to data/scripts/spells/house/edit_door.lua
index 495dbbdc47..e1c9e1354c 100644
--- a/data/spells/scripts/house/edit_door.lua
+++ b/data/scripts/spells/house/edit_door.lua
@@ -1,4 +1,6 @@
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local creaturePos = creature:getPosition()
creaturePos:getNextPosition(creature:getDirection())
local tile = Tile(creaturePos)
@@ -14,3 +16,8 @@ function onCastSpell(creature, variant)
creature:sendHouseWindow(house, doorId)
return true
end
+
+spell:name("Edit Door")
+spell:words("aleta grav")
+spell:isAggressive(false)
+spell:register()
diff --git a/data/spells/scripts/house/invite_guests.lua b/data/scripts/spells/house/invite_guests.lua
similarity index 66%
rename from data/spells/scripts/house/invite_guests.lua
rename to data/scripts/spells/house/invite_guests.lua
index 7b62f80dd5..928e3da46f 100644
--- a/data/spells/scripts/house/invite_guests.lua
+++ b/data/scripts/spells/house/invite_guests.lua
@@ -1,4 +1,6 @@
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local house = creature:getTile():getHouse()
if not house or not house:canEditAccessList(GUEST_LIST, creature) then
creature:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
@@ -10,3 +12,8 @@ function onCastSpell(creature, variant)
creature:sendHouseWindow(house, GUEST_LIST)
return true
end
+
+spell:name("Invite Guests")
+spell:words("aleta sio")
+spell:isAggressive(false)
+spell:register()
diff --git a/data/spells/scripts/house/invite_subowners.lua b/data/scripts/spells/house/invite_subowners.lua
similarity index 66%
rename from data/spells/scripts/house/invite_subowners.lua
rename to data/scripts/spells/house/invite_subowners.lua
index 97d3ed0628..f1f1846248 100644
--- a/data/spells/scripts/house/invite_subowners.lua
+++ b/data/scripts/spells/house/invite_subowners.lua
@@ -1,4 +1,6 @@
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local house = creature:getTile():getHouse()
if not house or not house:canEditAccessList(SUBOWNER_LIST, creature) then
creature:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
@@ -10,3 +12,8 @@ function onCastSpell(creature, variant)
creature:sendHouseWindow(house, SUBOWNER_LIST)
return true
end
+
+spell:name("Invite Subowners")
+spell:words("aleta som")
+spell:isAggressive(false)
+spell:register()
diff --git a/data/spells/scripts/house/kick_guest.lua b/data/scripts/spells/house/kick_guest.lua
similarity index 57%
rename from data/spells/scripts/house/kick_guest.lua
rename to data/scripts/spells/house/kick_guest.lua
index 0235037bc2..a7ce87a2fb 100644
--- a/data/spells/scripts/house/kick_guest.lua
+++ b/data/scripts/spells/house/kick_guest.lua
@@ -1,4 +1,6 @@
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local target = Player(variant:getString()) or creature
local house = target:getTile():getHouse()
if not house or not house:kickPlayer(creature, target) then
@@ -8,3 +10,10 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:name("Kick Guest")
+spell:words("alana sio")
+spell:isAggressive(false)
+spell:hasPlayerNameParam(true)
+spell:hasParams(true)
+spell:register()
diff --git a/data/spells/scripts/monster/aggresive_lava_bomb.lua b/data/scripts/spells/monster/aggresive_lava_bomb.lua
similarity index 68%
rename from data/spells/scripts/monster/aggresive_lava_bomb.lua
rename to data/scripts/spells/monster/aggresive_lava_bomb.lua
index 98f3123a39..00e13ea037 100644
--- a/data/spells/scripts/monster/aggresive_lava_bomb.lua
+++ b/data/scripts/spells/monster/aggresive_lava_bomb.lua
@@ -2,13 +2,7 @@ local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
-combat:setArea(createCombatArea({
- {0, 1, 1, 1, 0},
- {1, 1, 1, 1, 1},
- {1, 1, 3, 1, 1},
- {1, 1, 1, 1, 1},
- {0, 1, 1, 1, 0},
-}))
+combat:setArea(createCombatArea({{0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 3, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}}))
function spellCallback(param)
local tile = Tile(Position(param.pos))
@@ -31,6 +25,14 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("aggresive lava bomb")
+spell:words("###75")
+spell:isSelfTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/barbarian_brutetamer_skill_reducer.lua b/data/scripts/spells/monster/barbarian_brutetamer_skill_reducer.lua
similarity index 76%
rename from data/spells/scripts/monster/barbarian_brutetamer_skill_reducer.lua
rename to data/scripts/spells/monster/barbarian_brutetamer_skill_reducer.lua
index 8f4f569bd3..978132e94e 100644
--- a/data/spells/scripts/monster/barbarian_brutetamer_skill_reducer.lua
+++ b/data/scripts/spells/monster/barbarian_brutetamer_skill_reducer.lua
@@ -12,7 +12,9 @@ local parameters = {
{key = CONDITION_PARAM_SKILL_SHIELD, value = nil}
}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local index = math.random(2, #parameters)
parameters[index].value = -math.random(1, 6)
@@ -21,3 +23,10 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:name("barbarian brutetamer skill reducer")
+spell:words("###38")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/betrayed_wraith_skill_reducer.lua b/data/scripts/spells/monster/betrayed_wraith_skill_reducer.lua
new file mode 100644
index 0000000000..047e1a41d5
--- /dev/null
+++ b/data/scripts/spells/monster/betrayed_wraith_skill_reducer.lua
@@ -0,0 +1,21 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
+combat:setArea(createCombatArea(AREA_SQUAREWAVE5))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 5 * 1000}, {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 80}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("betrayed wraith skill reducer")
+spell:words("###48")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/blightwalker_curse.lua b/data/scripts/spells/monster/blightwalker_curse.lua
similarity index 67%
rename from data/spells/scripts/monster/blightwalker_curse.lua
rename to data/scripts/spells/monster/blightwalker_curse.lua
index 7be900b63e..f5d2d79726 100644
--- a/data/spells/scripts/monster/blightwalker_curse.lua
+++ b/data/scripts/spells/monster/blightwalker_curse.lua
@@ -3,10 +3,18 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS)
combat:setArea(createCombatArea(AREA_CIRCLE6X6))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local damage = math.random(52, 154)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage)
end
return true
end
+
+spell:name("blightwalker curse")
+spell:words("###16")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/choking_fear_drown.lua b/data/scripts/spells/monster/choking_fear_drown.lua
similarity index 65%
rename from data/spells/scripts/monster/choking_fear_drown.lua
rename to data/scripts/spells/monster/choking_fear_drown.lua
index ad23766699..078a3eb6b1 100644
--- a/data/spells/scripts/monster/choking_fear_drown.lua
+++ b/data/scripts/spells/monster/choking_fear_drown.lua
@@ -3,9 +3,17 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_BUBBLES)
combat:setArea(createCombatArea(AREA_CIRCLE6X6))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_DROWN, DAMAGELIST_CONSTANT_PERIOD, 20, 5, 50)
end
return true
end
+
+spell:name("choking fear drown")
+spell:words("###15")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/cliff_strider_electrify.lua b/data/scripts/spells/monster/cliff_strider_electrify.lua
similarity index 59%
rename from data/spells/scripts/monster/cliff_strider_electrify.lua
rename to data/scripts/spells/monster/cliff_strider_electrify.lua
index 3bf4a892e0..f4d079ee01 100644
--- a/data/spells/scripts/monster/cliff_strider_electrify.lua
+++ b/data/scripts/spells/monster/cliff_strider_electrify.lua
@@ -2,9 +2,18 @@ local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_ENERGY, DAMAGELIST_VARYING_PERIOD, 25, {10, 12}, 20)
end
return true
end
+
+spell:name("cliff strider electrify")
+spell:words("###21")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/cliff_strider_skill_reducer.lua b/data/scripts/spells/monster/cliff_strider_skill_reducer.lua
new file mode 100644
index 0000000000..8f238730d4
--- /dev/null
+++ b/data/scripts/spells/monster/cliff_strider_skill_reducer.lua
@@ -0,0 +1,20 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
+combat:setArea(createCombatArea(AREA_CIRCLE2X2))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 6 * 1000}, {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 50}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("cliff strider skill reducer")
+spell:words("###31")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/dark_torturer_skill_reducer.lua b/data/scripts/spells/monster/dark_torturer_skill_reducer.lua
new file mode 100644
index 0000000000..c226350ace
--- /dev/null
+++ b/data/scripts/spells/monster/dark_torturer_skill_reducer.lua
@@ -0,0 +1,21 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SOUND_PURPLE)
+combat:setArea(createCombatArea(AREA_SQUAREWAVE6))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 8 * 1000}, {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = 85}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("dark torturer skill reducer")
+spell:words("###34")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/death_blob_curse.lua b/data/scripts/spells/monster/death_blob_curse.lua
similarity index 66%
rename from data/spells/scripts/monster/death_blob_curse.lua
rename to data/scripts/spells/monster/death_blob_curse.lua
index 9f42fe1483..914b6fde02 100644
--- a/data/spells/scripts/monster/death_blob_curse.lua
+++ b/data/scripts/spells/monster/death_blob_curse.lua
@@ -3,10 +3,19 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local damage = math.random(17, 36)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage)
end
return true
end
+
+spell:name("death blob curse")
+spell:words("###14")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/deepling_spellsinger_skill_reducer.lua b/data/scripts/spells/monster/deepling_spellsinger_skill_reducer.lua
similarity index 71%
rename from data/spells/scripts/monster/deepling_spellsinger_skill_reducer.lua
rename to data/scripts/spells/monster/deepling_spellsinger_skill_reducer.lua
index b4f2a3315c..69b5e501ef 100644
--- a/data/spells/scripts/monster/deepling_spellsinger_skill_reducer.lua
+++ b/data/scripts/spells/monster/deepling_spellsinger_skill_reducer.lua
@@ -9,7 +9,9 @@ local parameters = {
{key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = nil}
}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
parameters[2].value = math.random(45, 65)
parameters[3].value = parameters[2].value
@@ -18,3 +20,10 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:name("deepling spellsinger skill reducer")
+spell:words("###39")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/demon_outcast_skill_reducer.lua b/data/scripts/spells/monster/demon_outcast_skill_reducer.lua
new file mode 100644
index 0000000000..7eaa9f2b8b
--- /dev/null
+++ b/data/scripts/spells/monster/demon_outcast_skill_reducer.lua
@@ -0,0 +1,21 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLASHARROW)
+combat:setArea(createCombatArea(AREA_BEAM1))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 6 * 1000}, {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 25}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("demon outcast skill reducer")
+spell:words("###36")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/diabolic_imp_skill_reducer.lua b/data/scripts/spells/monster/diabolic_imp_skill_reducer.lua
new file mode 100644
index 0000000000..ec58ff556b
--- /dev/null
+++ b/data/scripts/spells/monster/diabolic_imp_skill_reducer.lua
@@ -0,0 +1,23 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
+combat:setArea(createCombatArea(AREA_BEAM1))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 6 * 1000}, {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = nil}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ parameters[2].value = math.random(70, 80)
+
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("diabolic imp skill reducer")
+spell:words("###33")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/dipthrah_skill_reducer.lua b/data/scripts/spells/monster/dipthrah_skill_reducer.lua
similarity index 71%
rename from data/spells/scripts/monster/dipthrah_skill_reducer.lua
rename to data/scripts/spells/monster/dipthrah_skill_reducer.lua
index 9a79c36823..9561bd8164 100644
--- a/data/spells/scripts/monster/dipthrah_skill_reducer.lua
+++ b/data/scripts/spells/monster/dipthrah_skill_reducer.lua
@@ -9,9 +9,17 @@ local parameters = {
{key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 50}
}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
target:addAttributeCondition(parameters)
end
return true
end
+
+spell:name("dipthrah skill reducer")
+spell:words("###51")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/djinn_cancel_invisibility.lua b/data/scripts/spells/monster/djinn_cancel_invisibility.lua
new file mode 100644
index 0000000000..88a84e4a1c
--- /dev/null
+++ b/data/scripts/spells/monster/djinn_cancel_invisibility.lua
@@ -0,0 +1,15 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_INVISIBLE)
+combat:setArea(createCombatArea(AREA_CIRCLE3X3))
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:name("djinn cancel invisibility")
+spell:words("###47")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/djinn_electrify.lua b/data/scripts/spells/monster/djinn_electrify.lua
similarity index 64%
rename from data/spells/scripts/monster/djinn_electrify.lua
rename to data/scripts/spells/monster/djinn_electrify.lua
index 8fa49f4fc2..28a400607f 100644
--- a/data/spells/scripts/monster/djinn_electrify.lua
+++ b/data/scripts/spells/monster/djinn_electrify.lua
@@ -3,9 +3,18 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_ENERGY, DAMAGELIST_VARYING_PERIOD, 25, {10, 12}, 3)
end
return true
end
+
+spell:name("djinn electrify")
+spell:words("###2")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/draken_abomination_curse.lua b/data/scripts/spells/monster/draken_abomination_curse.lua
similarity index 65%
rename from data/spells/scripts/monster/draken_abomination_curse.lua
rename to data/scripts/spells/monster/draken_abomination_curse.lua
index ad3333fc3b..b52221b29f 100644
--- a/data/spells/scripts/monster/draken_abomination_curse.lua
+++ b/data/scripts/spells/monster/draken_abomination_curse.lua
@@ -3,10 +3,19 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local damage = math.random(62, 128)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage)
end
return true
end
+
+spell:name("draken abomination curse")
+spell:words("###11")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/ember_beast_area.lua b/data/scripts/spells/monster/ember_beast_area.lua
similarity index 72%
rename from data/spells/scripts/monster/ember_beast_area.lua
rename to data/scripts/spells/monster/ember_beast_area.lua
index 14698fa298..47718e3d5c 100644
--- a/data/spells/scripts/monster/ember_beast_area.lua
+++ b/data/scripts/spells/monster/ember_beast_area.lua
@@ -2,11 +2,7 @@ local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONHIT)
-combat:setArea(createCombatArea({
- {1, 1, 1},
- {1, 3, 1},
- {1, 1, 1}
-}))
+combat:setArea(createCombatArea({{1, 1, 1}, {1, 3, 1}, {1, 1, 1}}))
function spellCallback(param)
local tile = Tile(Position(param.pos))
@@ -29,6 +25,14 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("ember beast area")
+spell:words("###76")
+spell:isSelfTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/ember_beast_beam.lua b/data/scripts/spells/monster/ember_beast_beam.lua
similarity index 70%
rename from data/spells/scripts/monster/ember_beast_beam.lua
rename to data/scripts/spells/monster/ember_beast_beam.lua
index 1ad5440f8a..8d34ebdd7c 100644
--- a/data/spells/scripts/monster/ember_beast_beam.lua
+++ b/data/scripts/spells/monster/ember_beast_beam.lua
@@ -2,14 +2,7 @@ local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONHIT)
-combat:setArea(createCombatArea({
- {1},
- {1},
- {1},
- {1},
- {1},
- {3},
-}))
+combat:setArea(createCombatArea({{1}, {1}, {1}, {1}, {1}, {3}}))
function spellCallback(param)
local tile = Tile(Position(param.pos))
@@ -32,6 +25,15 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("ember beast beam")
+spell:words("###77")
+spell:needDirection(true)
+spell:isSelfTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/energy_elemental_electrify.lua b/data/scripts/spells/monster/energy_elemental_electrify.lua
similarity index 64%
rename from data/spells/scripts/monster/energy_elemental_electrify.lua
rename to data/scripts/spells/monster/energy_elemental_electrify.lua
index 6eef60d823..c6b7884998 100644
--- a/data/spells/scripts/monster/energy_elemental_electrify.lua
+++ b/data/scripts/spells/monster/energy_elemental_electrify.lua
@@ -3,9 +3,17 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_BLOCKHIT)
combat:setArea(createCombatArea(AREA_CIRCLE3X3))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_ENERGY, DAMAGELIST_VARYING_PERIOD, 25, {10, 12}, 7)
end
return true
end
+
+spell:name("energy elemental electrify")
+spell:words("###3")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/energy_pulse_explosion.lua b/data/scripts/spells/monster/energy_pulse_explosion.lua
similarity index 79%
rename from data/spells/scripts/monster/energy_pulse_explosion.lua
rename to data/scripts/spells/monster/energy_pulse_explosion.lua
index 9025c61981..2c950c5ba5 100644
--- a/data/spells/scripts/monster/energy_pulse_explosion.lua
+++ b/data/scripts/spells/monster/energy_pulse_explosion.lua
@@ -19,6 +19,14 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
combat:setArea(createCombatArea(area))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant), creature:remove()
end
+
+spell:name("energy pulse explosion")
+spell:words("###64")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/enslaved_dwarf_skill_reducer_1.lua b/data/scripts/spells/monster/enslaved_dwarf_skill_reducer_1.lua
new file mode 100644
index 0000000000..bc88429581
--- /dev/null
+++ b/data/scripts/spells/monster/enslaved_dwarf_skill_reducer_1.lua
@@ -0,0 +1,22 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
+combat:setArea(createCombatArea(AREA_CIRCLE2X2))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 6 * 1000}, {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = nil}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ parameters[2].value = math.random(13, 50)
+
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("enslaved dwarf skill reducer 1")
+spell:words("###45")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/enslaved_dwarf_skill_reducer_2.lua b/data/scripts/spells/monster/enslaved_dwarf_skill_reducer_2.lua
new file mode 100644
index 0000000000..69d70fc804
--- /dev/null
+++ b/data/scripts/spells/monster/enslaved_dwarf_skill_reducer_2.lua
@@ -0,0 +1,20 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
+combat:setArea(createCombatArea(AREA_CROSS1X1))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 6 * 1000}, {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 45}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("enslaved dwarf skill reducer 2")
+spell:words("###46")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/explosion_wave.lua b/data/scripts/spells/monster/explosion_wave.lua
new file mode 100644
index 0000000000..4ef514becf
--- /dev/null
+++ b/data/scripts/spells/monster/explosion_wave.lua
@@ -0,0 +1,19 @@
+local area = {{1, 1, 1}, {1, 1, 1}, {0, 1, 0}, {0, 3, 0}}
+
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONHIT)
+combat:setArea(createCombatArea(area))
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:name("explosion wave")
+spell:words("###54")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/ferumbras_electrify.lua b/data/scripts/spells/monster/ferumbras_electrify.lua
similarity index 82%
rename from data/spells/scripts/monster/ferumbras_electrify.lua
rename to data/scripts/spells/monster/ferumbras_electrify.lua
index 2ef230a9d9..90afceb15b 100644
--- a/data/spells/scripts/monster/ferumbras_electrify.lua
+++ b/data/scripts/spells/monster/ferumbras_electrify.lua
@@ -23,6 +23,14 @@ local condition = Condition(CONDITION_ENERGY)
condition:setParameter(CONDITION_PARAM_DELAYED, 1)
condition:addDamage(20, 10000, -25)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("ferumbras electrify")
+spell:words("###65")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/ferumbras_soulfire.lua b/data/scripts/spells/monster/ferumbras_soulfire.lua
similarity index 82%
rename from data/spells/scripts/monster/ferumbras_soulfire.lua
rename to data/scripts/spells/monster/ferumbras_soulfire.lua
index 4b4882e316..27b48fd9b7 100644
--- a/data/spells/scripts/monster/ferumbras_soulfire.lua
+++ b/data/scripts/spells/monster/ferumbras_soulfire.lua
@@ -25,6 +25,15 @@ combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
combat:setArea(createCombatArea(area))
combat:addCondition(condition)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("ferumbras soulfire")
+spell:words("###66")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/feversleep_skill_reducer.lua b/data/scripts/spells/monster/feversleep_skill_reducer.lua
new file mode 100644
index 0000000000..f3b8811fca
--- /dev/null
+++ b/data/scripts/spells/monster/feversleep_skill_reducer.lua
@@ -0,0 +1,20 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_STUN)
+combat:setArea(createCombatArea(AREA_CIRCLE6X6))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 4 * 1000}, {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 50}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("feversleep skill reducer")
+spell:words("###42")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/forest_fury_skill_reducer.lua b/data/scripts/spells/monster/forest_fury_skill_reducer.lua
similarity index 69%
rename from data/spells/scripts/monster/forest_fury_skill_reducer.lua
rename to data/scripts/spells/monster/forest_fury_skill_reducer.lua
index edb104dae7..a21e938d34 100644
--- a/data/spells/scripts/monster/forest_fury_skill_reducer.lua
+++ b/data/scripts/spells/monster/forest_fury_skill_reducer.lua
@@ -9,9 +9,18 @@ local parameters = {
{key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 50}
}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
target:addAttributeCondition(parameters)
end
return true
end
+
+spell:name("forest fury skill reducer")
+spell:words("###35")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/freed_soul_spell.lua b/data/scripts/spells/monster/freed_soul_spell.lua
similarity index 80%
rename from data/spells/scripts/monster/freed_soul_spell.lua
rename to data/scripts/spells/monster/freed_soul_spell.lua
index 6bdd4884ca..98d6938d1a 100644
--- a/data/spells/scripts/monster/freed_soul_spell.lua
+++ b/data/scripts/spells/monster/freed_soul_spell.lua
@@ -33,6 +33,15 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("freed soul spell")
+spell:words("###69")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/frozen_minion_beam.lua b/data/scripts/spells/monster/frozen_minion_beam.lua
similarity index 74%
rename from data/spells/scripts/monster/frozen_minion_beam.lua
rename to data/scripts/spells/monster/frozen_minion_beam.lua
index 5d776b0e04..21609d4e4f 100644
--- a/data/spells/scripts/monster/frozen_minion_beam.lua
+++ b/data/scripts/spells/monster/frozen_minion_beam.lua
@@ -18,6 +18,15 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("frozen minion beam")
+spell:words("###58")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:needDirection(true)
+spell:register()
diff --git a/data/spells/scripts/monster/frozen_minion_heal.lua b/data/scripts/spells/monster/frozen_minion_heal.lua
similarity index 72%
rename from data/spells/scripts/monster/frozen_minion_heal.lua
rename to data/scripts/spells/monster/frozen_minion_heal.lua
index e70674f387..ec9049a7ac 100644
--- a/data/spells/scripts/monster/frozen_minion_heal.lua
+++ b/data/scripts/spells/monster/frozen_minion_heal.lua
@@ -17,6 +17,15 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("frozen minion heal")
+spell:words("###57")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:isSelfTarget(true)
+spell:register()
diff --git a/data/spells/scripts/monster/frozen_minion_wave.lua b/data/scripts/spells/monster/frozen_minion_wave.lua
similarity index 78%
rename from data/spells/scripts/monster/frozen_minion_wave.lua
rename to data/scripts/spells/monster/frozen_minion_wave.lua
index 5fd4740400..ea01f80045 100644
--- a/data/spells/scripts/monster/frozen_minion_wave.lua
+++ b/data/scripts/spells/monster/frozen_minion_wave.lua
@@ -26,6 +26,15 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("frozen minion wave")
+spell:words("###56")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:needDirection(true)
+spell:register()
diff --git a/data/spells/scripts/monster/fury_skill_reducer.lua b/data/scripts/spells/monster/fury_skill_reducer.lua
similarity index 69%
rename from data/spells/scripts/monster/fury_skill_reducer.lua
rename to data/scripts/spells/monster/fury_skill_reducer.lua
index 4849297ad9..086c339b06 100644
--- a/data/spells/scripts/monster/fury_skill_reducer.lua
+++ b/data/scripts/spells/monster/fury_skill_reducer.lua
@@ -8,9 +8,17 @@ local parameters = {
{key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 70}
}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
target:addAttributeCondition(parameters)
end
return true
end
+
+spell:name("fury skill reducer")
+spell:words("###37")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/ghastly_dragon_curse.lua b/data/scripts/spells/monster/ghastly_dragon_curse.lua
similarity index 66%
rename from data/spells/scripts/monster/ghastly_dragon_curse.lua
rename to data/scripts/spells/monster/ghastly_dragon_curse.lua
index a063645bf6..0ba4469061 100644
--- a/data/spells/scripts/monster/ghastly_dragon_curse.lua
+++ b/data/scripts/spells/monster/ghastly_dragon_curse.lua
@@ -3,10 +3,19 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local damage = math.random(128, 954)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage)
end
return true
end
+
+spell:name("ghastly dragon curse")
+spell:words("###1")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/glooth_fairy_skill_reducer.lua b/data/scripts/spells/monster/glooth_fairy_skill_reducer.lua
similarity index 76%
rename from data/spells/scripts/monster/glooth_fairy_skill_reducer.lua
rename to data/scripts/spells/monster/glooth_fairy_skill_reducer.lua
index f130d99c93..64336522e2 100644
--- a/data/spells/scripts/monster/glooth_fairy_skill_reducer.lua
+++ b/data/scripts/spells/monster/glooth_fairy_skill_reducer.lua
@@ -22,6 +22,15 @@ for i = 40, 60 do
combat[i]:addCondition(condition)
end
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat[math.random(40, 60)]:execute(creature, variant)
end
+
+spell:name("glooth fairy skill reducer")
+spell:words("###67")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/heal_monsters.lua b/data/scripts/spells/monster/heal_monsters.lua
similarity index 73%
rename from data/spells/scripts/monster/heal_monsters.lua
rename to data/scripts/spells/monster/heal_monsters.lua
index d907111a3a..fc022eecb2 100644
--- a/data/spells/scripts/monster/heal_monsters.lua
+++ b/data/scripts/spells/monster/heal_monsters.lua
@@ -23,6 +23,16 @@ combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
combat:setArea(createCombatArea(AREA_CIRCLE3X3))
combat:setCallback(CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("heal monster")
+spell:words("###71")
+spell:needDirection(true)
+spell:isAggressive(false)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/heal_monsters_9x9.lua b/data/scripts/spells/monster/heal_monsters_9x9.lua
similarity index 73%
rename from data/spells/scripts/monster/heal_monsters_9x9.lua
rename to data/scripts/spells/monster/heal_monsters_9x9.lua
index fe1b310711..514fe31c4a 100644
--- a/data/spells/scripts/monster/heal_monsters_9x9.lua
+++ b/data/scripts/spells/monster/heal_monsters_9x9.lua
@@ -23,6 +23,16 @@ combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
combat:setArea(createCombatArea(AREA_CIRCLE6X6))
combat:setCallback(CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("heal monster 9x9")
+spell:words("###70")
+spell:needDirection(true)
+spell:isAggressive(false)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/hellfire_fighter_soulfire.lua b/data/scripts/spells/monster/hellfire_fighter_soulfire.lua
similarity index 64%
rename from data/spells/scripts/monster/hellfire_fighter_soulfire.lua
rename to data/scripts/spells/monster/hellfire_fighter_soulfire.lua
index 84474ba742..bd5d9868aa 100644
--- a/data/spells/scripts/monster/hellfire_fighter_soulfire.lua
+++ b/data/scripts/spells/monster/hellfire_fighter_soulfire.lua
@@ -3,9 +3,17 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
combat:setArea(createCombatArea(AREA_CIRCLE6X6))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 20)
end
return true
end
+
+spell:name("hellfire fighter soulfire")
+spell:words("###6")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/hellspawn_soulfire.lua b/data/scripts/spells/monster/hellspawn_soulfire.lua
similarity index 62%
rename from data/spells/scripts/monster/hellspawn_soulfire.lua
rename to data/scripts/spells/monster/hellspawn_soulfire.lua
index b85ee6b652..ce71052167 100644
--- a/data/spells/scripts/monster/hellspawn_soulfire.lua
+++ b/data/scripts/spells/monster/hellspawn_soulfire.lua
@@ -3,9 +3,19 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 26)
end
return true
end
+
+spell:name("hellspawn soulfire")
+spell:words("###7")
+spell:blockWalls(true)
+spell:range(7)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/hirintror_freeze.lua b/data/scripts/spells/monster/hirintror_freeze.lua
similarity index 81%
rename from data/spells/scripts/monster/hirintror_freeze.lua
rename to data/scripts/spells/monster/hirintror_freeze.lua
index e29e75c404..f06b3a6910 100644
--- a/data/spells/scripts/monster/hirintror_freeze.lua
+++ b/data/scripts/spells/monster/hirintror_freeze.lua
@@ -23,6 +23,14 @@ combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
combat:addCondition(condition)
combat:setArea(createCombatArea(area))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("hirintror freeze")
+spell:words("###62")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/hirintror_skill_reducer.lua b/data/scripts/spells/monster/hirintror_skill_reducer.lua
similarity index 76%
rename from data/spells/scripts/monster/hirintror_skill_reducer.lua
rename to data/scripts/spells/monster/hirintror_skill_reducer.lua
index a71c20bbe9..c56e2ac30a 100644
--- a/data/spells/scripts/monster/hirintror_skill_reducer.lua
+++ b/data/scripts/spells/monster/hirintror_skill_reducer.lua
@@ -16,6 +16,14 @@ for i = 20, 40 do
combat[i]:addCondition(condition)
end
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat[math.random(20, 40)]:execute(creature, variant)
end
+
+spell:name("hirintror skill reducer")
+spell:words("###63")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/ice_golem_skill_reducer.lua b/data/scripts/spells/monster/ice_golem_skill_reducer.lua
similarity index 68%
rename from data/spells/scripts/monster/ice_golem_skill_reducer.lua
rename to data/scripts/spells/monster/ice_golem_skill_reducer.lua
index 2fa92b77ad..cd245995c3 100644
--- a/data/spells/scripts/monster/ice_golem_skill_reducer.lua
+++ b/data/scripts/spells/monster/ice_golem_skill_reducer.lua
@@ -8,9 +8,17 @@ local parameters = {
{key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 85}
}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
target:addAttributeCondition(parameters)
end
return true
end
+
+spell:name("ice golem skill reducer")
+spell:words("###41")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/icicle_heal.lua b/data/scripts/spells/monster/icicle_heal.lua
similarity index 73%
rename from data/spells/scripts/monster/icicle_heal.lua
rename to data/scripts/spells/monster/icicle_heal.lua
index 0be63c9cd2..61cfe979a7 100644
--- a/data/spells/scripts/monster/icicle_heal.lua
+++ b/data/scripts/spells/monster/icicle_heal.lua
@@ -17,6 +17,15 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("icicle heal")
+spell:words("###59")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:isSelfTarget(true)
+spell:register()
diff --git a/data/spells/scripts/monster/lancer_beetle_curse.lua b/data/scripts/spells/monster/lancer_beetle_curse.lua
similarity index 65%
rename from data/spells/scripts/monster/lancer_beetle_curse.lua
rename to data/scripts/spells/monster/lancer_beetle_curse.lua
index d34d7985cd..5de14b6cec 100644
--- a/data/spells/scripts/monster/lancer_beetle_curse.lua
+++ b/data/scripts/spells/monster/lancer_beetle_curse.lua
@@ -3,10 +3,19 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local damage = math.random(17, 43)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage)
end
return true
end
+
+spell:name("lancer beetle curse")
+spell:words("###12")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/lava_golem_soulfire.lua b/data/scripts/spells/monster/lava_golem_soulfire.lua
similarity index 65%
rename from data/spells/scripts/monster/lava_golem_soulfire.lua
rename to data/scripts/spells/monster/lava_golem_soulfire.lua
index b3329c8306..f35e7a40dc 100644
--- a/data/spells/scripts/monster/lava_golem_soulfire.lua
+++ b/data/scripts/spells/monster/lava_golem_soulfire.lua
@@ -3,9 +3,17 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONHIT)
combat:setArea(createCombatArea(AREA_CIRCLE2X2))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 40)
end
return true
end
+
+spell:name("lava golem soulfire")
+spell:words("###26")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/lizard_magistratus_curse.lua b/data/scripts/spells/monster/lizard_magistratus_curse.lua
similarity index 65%
rename from data/spells/scripts/monster/lizard_magistratus_curse.lua
rename to data/scripts/spells/monster/lizard_magistratus_curse.lua
index b716c87e2e..a49afe5a77 100644
--- a/data/spells/scripts/monster/lizard_magistratus_curse.lua
+++ b/data/scripts/spells/monster/lizard_magistratus_curse.lua
@@ -3,10 +3,19 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local damage = math.random(74, 107)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage)
end
return true
end
+
+spell:name("lizard magistratus curse")
+spell:words("###13")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/lloyd_wave_1.lua b/data/scripts/spells/monster/lloyd_wave_1.lua
similarity index 71%
rename from data/spells/scripts/monster/lloyd_wave_1.lua
rename to data/scripts/spells/monster/lloyd_wave_1.lua
index 367693b5c1..f7c67c0c1a 100644
--- a/data/spells/scripts/monster/lloyd_wave_1.lua
+++ b/data/scripts/spells/monster/lloyd_wave_1.lua
@@ -13,6 +13,15 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_PURPLECHAIN)
combat:setArea(createCombatArea(area))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("lloyd wave 1")
+spell:words("###60")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:needDirection(true)
+spell:register()
diff --git a/data/spells/scripts/monster/lloyd_wave_2.lua b/data/scripts/spells/monster/lloyd_wave_2.lua
similarity index 71%
rename from data/spells/scripts/monster/lloyd_wave_2.lua
rename to data/scripts/spells/monster/lloyd_wave_2.lua
index dda669add4..51ac925b2d 100644
--- a/data/spells/scripts/monster/lloyd_wave_2.lua
+++ b/data/scripts/spells/monster/lloyd_wave_2.lua
@@ -13,6 +13,15 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_PURPLECHAIN)
combat:setArea(createCombatArea(area))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("lloyd wave 2")
+spell:words("###61")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:needDirection(true)
+spell:register()
diff --git a/data/spells/scripts/monster/magma_crawler_soulfire.lua b/data/scripts/spells/monster/magma_crawler_soulfire.lua
similarity index 65%
rename from data/spells/scripts/monster/magma_crawler_soulfire.lua
rename to data/scripts/spells/monster/magma_crawler_soulfire.lua
index 99248fa99f..e0dd7f07d2 100644
--- a/data/spells/scripts/monster/magma_crawler_soulfire.lua
+++ b/data/scripts/spells/monster/magma_crawler_soulfire.lua
@@ -3,9 +3,17 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONHIT)
combat:setArea(createCombatArea(AREA_CIRCLE2X2))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 20)
end
return true
end
+
+spell:name("magma crawler soulfire")
+spell:words("###27")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/massive_energy_elemental_electrify.lua b/data/scripts/spells/monster/massive_energy_elemental_electrify.lua
similarity index 64%
rename from data/spells/scripts/monster/massive_energy_elemental_electrify.lua
rename to data/scripts/spells/monster/massive_energy_elemental_electrify.lua
index 1605e1c744..e26e2917e7 100644
--- a/data/spells/scripts/monster/massive_energy_elemental_electrify.lua
+++ b/data/scripts/spells/monster/massive_energy_elemental_electrify.lua
@@ -3,9 +3,17 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_BLOCKHIT)
combat:setArea(createCombatArea(AREA_CIRCLE3X3))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_ENERGY, DAMAGELIST_VARYING_PERIOD, 25, {10, 12}, 10)
end
return true
end
+
+spell:name("massive energy elemental electrify")
+spell:words("###4")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/massive_fire_elemental_soulfire.lua b/data/scripts/spells/monster/massive_fire_elemental_soulfire.lua
similarity index 64%
rename from data/spells/scripts/monster/massive_fire_elemental_soulfire.lua
rename to data/scripts/spells/monster/massive_fire_elemental_soulfire.lua
index 27b9bed756..725960c7e0 100644
--- a/data/spells/scripts/monster/massive_fire_elemental_soulfire.lua
+++ b/data/scripts/spells/monster/massive_fire_elemental_soulfire.lua
@@ -3,9 +3,17 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
combat:setArea(createCombatArea(AREA_CIRCLE6X6))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 20)
end
return true
end
+
+spell:name("massive fire elemental soulfire")
+spell:words("###5")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/monster_soulfire.lua b/data/scripts/spells/monster/monster_soulfire.lua
similarity index 62%
rename from data/spells/scripts/monster/monster_soulfire.lua
rename to data/scripts/spells/monster/monster_soulfire.lua
index d9299d8de9..816411fe3b 100644
--- a/data/spells/scripts/monster/monster_soulfire.lua
+++ b/data/scripts/spells/monster/monster_soulfire.lua
@@ -3,9 +3,19 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 20)
end
return true
end
+
+spell:name("monster soulfire")
+spell:words("###50")
+spell:blockWalls(true)
+spell:range(7)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/mutated_bat_curse.lua b/data/scripts/spells/monster/mutated_bat_curse.lua
similarity index 68%
rename from data/spells/scripts/monster/mutated_bat_curse.lua
rename to data/scripts/spells/monster/mutated_bat_curse.lua
index 07e0b2aac3..1005f77130 100644
--- a/data/spells/scripts/monster/mutated_bat_curse.lua
+++ b/data/scripts/spells/monster/mutated_bat_curse.lua
@@ -4,10 +4,19 @@ combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
combat:setArea(createCombatArea(AREA_SQUAREWAVE7))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local damage = math.random(10, 21)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage)
end
return true
end
+
+spell:name("mutated bat curse")
+spell:words("###24")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/phantasm_drown.lua b/data/scripts/spells/monster/phantasm_drown.lua
similarity index 63%
rename from data/spells/scripts/monster/phantasm_drown.lua
rename to data/scripts/spells/monster/phantasm_drown.lua
index 8febf4b235..18e5bec282 100644
--- a/data/spells/scripts/monster/phantasm_drown.lua
+++ b/data/scripts/spells/monster/phantasm_drown.lua
@@ -3,9 +3,18 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
combat:setArea(createCombatArea(AREA_SQUAREWAVE7))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_DROWN, DAMAGELIST_CONSTANT_PERIOD, 20, 5, 20)
end
return true
end
+
+spell:name("phantasm drown")
+spell:words("###9")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/physical_explosion.lua b/data/scripts/spells/monster/physical_explosion.lua
similarity index 63%
rename from data/spells/scripts/monster/physical_explosion.lua
rename to data/scripts/spells/monster/physical_explosion.lua
index 2408b74be9..dee2e5ad5b 100644
--- a/data/spells/scripts/monster/physical_explosion.lua
+++ b/data/scripts/spells/monster/physical_explosion.lua
@@ -8,6 +8,15 @@ combat:setParameter(COMBAT_PARAM_EFFECT, 6)
combat:setArea(createCombatArea(AREA_SQUARE1X1))
combat:addCondition(condition)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("physical explosion")
+spell:words("###68")
+spell:isAggressive(false)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/pirate_corsair_skill_reducer.lua b/data/scripts/spells/monster/pirate_corsair_skill_reducer.lua
new file mode 100644
index 0000000000..cf76a6d0b8
--- /dev/null
+++ b/data/scripts/spells/monster/pirate_corsair_skill_reducer.lua
@@ -0,0 +1,21 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SOUND_PURPLE)
+combat:setArea(createCombatArea(AREA_BEAM1))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 4 * 1000}, {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 25}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("pirate corsair skill reducer")
+spell:words("###49")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/pixie_skill_reducer.lua b/data/scripts/spells/monster/pixie_skill_reducer.lua
similarity index 72%
rename from data/spells/scripts/monster/pixie_skill_reducer.lua
rename to data/scripts/spells/monster/pixie_skill_reducer.lua
index 49002663e8..92903174bc 100644
--- a/data/spells/scripts/monster/pixie_skill_reducer.lua
+++ b/data/scripts/spells/monster/pixie_skill_reducer.lua
@@ -12,6 +12,14 @@ local area = createCombatArea(AREA_CIRCLE2X2)
combat:setArea(area)
combat:addCondition(condition)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("pixie skill reducer")
+spell:words("###72")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/quara_constrictor_electrify.lua b/data/scripts/spells/monster/quara_constrictor_electrify.lua
similarity index 63%
rename from data/spells/scripts/monster/quara_constrictor_electrify.lua
rename to data/scripts/spells/monster/quara_constrictor_electrify.lua
index 8fa49f4fc2..fef825b30e 100644
--- a/data/spells/scripts/monster/quara_constrictor_electrify.lua
+++ b/data/scripts/spells/monster/quara_constrictor_electrify.lua
@@ -3,9 +3,18 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_ENERGY, DAMAGELIST_VARYING_PERIOD, 25, {10, 12}, 3)
end
return true
end
+
+spell:name("quara constrictor electrify")
+spell:words("###20")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/quara_constrictor_freeze.lua b/data/scripts/spells/monster/quara_constrictor_freeze.lua
similarity index 65%
rename from data/spells/scripts/monster/quara_constrictor_freeze.lua
rename to data/scripts/spells/monster/quara_constrictor_freeze.lua
index 702fcd6689..b27da5885a 100644
--- a/data/spells/scripts/monster/quara_constrictor_freeze.lua
+++ b/data/scripts/spells/monster/quara_constrictor_freeze.lua
@@ -3,9 +3,17 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_GREEN_RINGS)
combat:setArea(createCombatArea(AREA_SQUARE1X1))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_FREEZING, DAMAGELIST_VARYING_PERIOD, 8, {8, 10}, 10)
end
return true
end
+
+spell:name("quara constrictor freeze")
+spell:words("###19")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/remorseless_wave.lua b/data/scripts/spells/monster/remorseless_wave.lua
similarity index 83%
rename from data/spells/scripts/monster/remorseless_wave.lua
rename to data/scripts/spells/monster/remorseless_wave.lua
index 55397ed88e..ffd5de7ab7 100644
--- a/data/spells/scripts/monster/remorseless_wave.lua
+++ b/data/scripts/spells/monster/remorseless_wave.lua
@@ -39,6 +39,16 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("remorseless wave")
+spell:words("###73")
+spell:needDirection(true)
+spell:isAggressive(false)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/root_branchy.lua b/data/scripts/spells/monster/root_branchy.lua
similarity index 60%
rename from data/spells/scripts/monster/root_branchy.lua
rename to data/scripts/spells/monster/root_branchy.lua
index 63f8a5ec86..5f49ce30ee 100644
--- a/data/spells/scripts/monster/root_branchy.lua
+++ b/data/scripts/spells/monster/root_branchy.lua
@@ -6,6 +6,15 @@ local condition = Condition(CONDITION_ROOT)
condition:setParameter(CONDITION_PARAM_TICKS, 3000)
combat:addCondition(condition)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("root branchy")
+spell:words("###53")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/sea_serpent_drown.lua b/data/scripts/spells/monster/sea_serpent_drown.lua
similarity index 63%
rename from data/spells/scripts/monster/sea_serpent_drown.lua
rename to data/scripts/spells/monster/sea_serpent_drown.lua
index b98396e72a..be35442c64 100644
--- a/data/spells/scripts/monster/sea_serpent_drown.lua
+++ b/data/scripts/spells/monster/sea_serpent_drown.lua
@@ -3,9 +3,18 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_WATERSPLASH)
combat:setArea(createCombatArea(AREA_SQUARE1X1))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_DROWN, DAMAGELIST_CONSTANT_PERIOD, 20, 5, 12)
end
return true
end
+
+spell:name("sea serpent drown")
+spell:words("###17")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/shock_head_skill_reducer_1.lua b/data/scripts/spells/monster/shock_head_skill_reducer_1.lua
new file mode 100644
index 0000000000..2be1af57c2
--- /dev/null
+++ b/data/scripts/spells/monster/shock_head_skill_reducer_1.lua
@@ -0,0 +1,22 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_GROUNDSHAKER)
+combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EXPLOSION)
+combat:setArea(createCombatArea(AREA_CIRCLE2X2))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 6 * 1000}, {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = 65}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("shock head skill reducer 1")
+spell:words("###43")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/shock_head_skill_reducer_2.lua b/data/scripts/spells/monster/shock_head_skill_reducer_2.lua
new file mode 100644
index 0000000000..c8b5e11880
--- /dev/null
+++ b/data/scripts/spells/monster/shock_head_skill_reducer_2.lua
@@ -0,0 +1,20 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_STUN)
+combat:setArea(createCombatArea(AREA_CIRCLE6X6))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 4 * 1000}, {key = CONDITION_PARAM_STAT_MAGICPOINTSPERCENT, value = 70}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("shock head skill reducer 2")
+spell:words("###44")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/silencer_skill_reducer.lua b/data/scripts/spells/monster/silencer_skill_reducer.lua
similarity index 51%
rename from data/spells/scripts/monster/silencer_skill_reducer.lua
rename to data/scripts/spells/monster/silencer_skill_reducer.lua
index 7173abcd92..df34f57523 100644
--- a/data/spells/scripts/monster/silencer_skill_reducer.lua
+++ b/data/scripts/spells/monster/silencer_skill_reducer.lua
@@ -3,12 +3,11 @@ combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
combat:setArea(createCombatArea(AREA_CIRCLE2X2))
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 6 * 1000},
- {key = CONDITION_PARAM_STAT_MAGICPOINTSPERCENT, value = nil}
-}
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 6 * 1000}, {key = CONDITION_PARAM_STAT_MAGICPOINTSPERCENT, value = nil}}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
parameters[2].value = math.random(20, 70)
for _, target in ipairs(combat:getTargets(creature, variant)) do
@@ -16,3 +15,10 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:name("silencer skill reducer")
+spell:words("###29")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/souleater_drown.lua b/data/scripts/spells/monster/souleater_drown.lua
similarity index 63%
rename from data/spells/scripts/monster/souleater_drown.lua
rename to data/scripts/spells/monster/souleater_drown.lua
index 0f64d97eaf..ef9b46512e 100644
--- a/data/spells/scripts/monster/souleater_drown.lua
+++ b/data/scripts/spells/monster/souleater_drown.lua
@@ -3,9 +3,18 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat:setArea(createCombatArea(AREA_CIRCLE2X2))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_DROWN, DAMAGELIST_CONSTANT_PERIOD, 20, 5, 10)
end
return true
end
+
+spell:name("souleater drown")
+spell:words("###23")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/source_of_corruption_wave.lua b/data/scripts/spells/monster/source_of_corruption_wave.lua
similarity index 70%
rename from data/spells/scripts/monster/source_of_corruption_wave.lua
rename to data/scripts/spells/monster/source_of_corruption_wave.lua
index ea16d86de2..25d311edd9 100644
--- a/data/spells/scripts/monster/source_of_corruption_wave.lua
+++ b/data/scripts/spells/monster/source_of_corruption_wave.lua
@@ -2,11 +2,7 @@ local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_PURPLEENERGY)
-combat:setArea(createCombatArea({
- {0, 0, 0, 0, 0},
- {0, 1, 3, 1, 0},
- {0, 0, 0, 0, 0}
-}))
+combat:setArea(createCombatArea({{0, 0, 0, 0, 0}, {0, 1, 3, 1, 0}, {0, 0, 0, 0, 0}}))
function spellCallback(param)
local tile = Tile(Position(param.pos))
@@ -31,6 +27,16 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("source of corruption wave")
+spell:words("###74")
+spell:needDirection(true)
+spell:isAggressive(false)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/spectre_drown.lua b/data/scripts/spells/monster/spectre_drown.lua
similarity index 66%
rename from data/spells/scripts/monster/spectre_drown.lua
rename to data/scripts/spells/monster/spectre_drown.lua
index c305b9328e..8fdbdc1c81 100644
--- a/data/spells/scripts/monster/spectre_drown.lua
+++ b/data/scripts/spells/monster/spectre_drown.lua
@@ -3,9 +3,17 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
combat:setArea(createCombatArea(AREA_CIRCLE3X3))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_DROWN, DAMAGELIST_CONSTANT_PERIOD, 20, 5, 20)
end
return true
end
+
+spell:name("spectre drown")
+spell:words("###8")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/stampor_skill_reducer.lua b/data/scripts/spells/monster/stampor_skill_reducer.lua
similarity index 73%
rename from data/spells/scripts/monster/stampor_skill_reducer.lua
rename to data/scripts/spells/monster/stampor_skill_reducer.lua
index ac80b1efd7..0e66ecbffe 100644
--- a/data/spells/scripts/monster/stampor_skill_reducer.lua
+++ b/data/scripts/spells/monster/stampor_skill_reducer.lua
@@ -9,7 +9,9 @@ local parameters = {
{key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = nil}
}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
parameters[2].value = math.random(60, 85)
parameters[3].value = parameters[2].value
@@ -18,3 +20,10 @@ function onCastSpell(creature, variant)
end
return true
end
+
+spell:name("stampor skill reducer")
+spell:words("###32")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/summon_challenge.lua b/data/scripts/spells/monster/summon_challenge.lua
similarity index 63%
rename from data/spells/scripts/monster/summon_challenge.lua
rename to data/scripts/spells/monster/summon_challenge.lua
index cbd3643b3e..ed9b0a2ba8 100644
--- a/data/spells/scripts/monster/summon_challenge.lua
+++ b/data/scripts/spells/monster/summon_challenge.lua
@@ -8,6 +8,14 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:name("summon challenge")
+spell:words("###52")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/undead_dragon_curse.lua b/data/scripts/spells/monster/undead_dragon_curse.lua
similarity index 68%
rename from data/spells/scripts/monster/undead_dragon_curse.lua
rename to data/scripts/spells/monster/undead_dragon_curse.lua
index 970ff42894..194f218236 100644
--- a/data/spells/scripts/monster/undead_dragon_curse.lua
+++ b/data/scripts/spells/monster/undead_dragon_curse.lua
@@ -4,10 +4,19 @@ combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
combat:setArea(createCombatArea(AREA_SQUAREWAVE7))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local damage = math.random(154, 266)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage)
end
return true
end
+
+spell:name("undead dragon curse")
+spell:words("###10")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/vulcongra_soulfire.lua b/data/scripts/spells/monster/vulcongra_soulfire.lua
similarity index 65%
rename from data/spells/scripts/monster/vulcongra_soulfire.lua
rename to data/scripts/spells/monster/vulcongra_soulfire.lua
index b01ff32c46..28c5ab0115 100644
--- a/data/spells/scripts/monster/vulcongra_soulfire.lua
+++ b/data/scripts/spells/monster/vulcongra_soulfire.lua
@@ -3,9 +3,17 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
combat:setArea(createCombatArea(AREA_SQUARE1X1))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 20)
end
return true
end
+
+spell:name("vulcongra soulfire")
+spell:words("###25")
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/war_golem_electrify.lua b/data/scripts/spells/monster/war_golem_electrify.lua
similarity index 59%
rename from data/spells/scripts/monster/war_golem_electrify.lua
rename to data/scripts/spells/monster/war_golem_electrify.lua
index 8f895bf4f4..d7b826f5b4 100644
--- a/data/spells/scripts/monster/war_golem_electrify.lua
+++ b/data/scripts/spells/monster/war_golem_electrify.lua
@@ -2,9 +2,18 @@ local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_ENERGY, DAMAGELIST_VARYING_PERIOD, 25, {10, 12}, 8)
end
return true
end
+
+spell:name("war golem electrify")
+spell:words("###22")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/war_golem_skill_reducer.lua b/data/scripts/spells/monster/war_golem_skill_reducer.lua
new file mode 100644
index 0000000000..de295df22e
--- /dev/null
+++ b/data/scripts/spells/monster/war_golem_skill_reducer.lua
@@ -0,0 +1,21 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_STUN)
+combat:setArea(createCombatArea(AREA_BEAM8))
+
+local parameters = {{key = CONDITION_PARAM_TICKS, value = 3 * 1000}, {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = 70}}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ for _, target in ipairs(combat:getTargets(creature, variant)) do
+ target:addAttributeCondition(parameters)
+ end
+ return true
+end
+
+spell:name("war golem skill reducer")
+spell:words("###28")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/warlock_skill_reducer.lua b/data/scripts/spells/monster/warlock_skill_reducer.lua
similarity index 69%
rename from data/spells/scripts/monster/warlock_skill_reducer.lua
rename to data/scripts/spells/monster/warlock_skill_reducer.lua
index 874a278825..e7685c6e9b 100644
--- a/data/spells/scripts/monster/warlock_skill_reducer.lua
+++ b/data/scripts/spells/monster/warlock_skill_reducer.lua
@@ -9,9 +9,18 @@ local parameters = {
{key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 50}
}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
target:addAttributeCondition(parameters)
end
return true
end
+
+spell:name("warlock skill reducer")
+spell:words("###30")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/scripts/spells/monster/wave_t.lua b/data/scripts/spells/monster/wave_t.lua
new file mode 100644
index 0000000000..2481c2f78e
--- /dev/null
+++ b/data/scripts/spells/monster/wave_t.lua
@@ -0,0 +1,19 @@
+local area = {{1, 1, 1}, {0, 1, 0}, {0, 3, 0}}
+
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_GREEN_RINGS)
+combat:setArea(createCombatArea(area))
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:name("wave t")
+spell:words("###55")
+spell:needDirection(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/werewolf_skill_reducer.lua b/data/scripts/spells/monster/werewolf_skill_reducer.lua
similarity index 66%
rename from data/spells/scripts/monster/werewolf_skill_reducer.lua
rename to data/scripts/spells/monster/werewolf_skill_reducer.lua
index c8609d20e4..a9d56c3008 100644
--- a/data/spells/scripts/monster/werewolf_skill_reducer.lua
+++ b/data/scripts/spells/monster/werewolf_skill_reducer.lua
@@ -8,9 +8,18 @@ local parameters = {
{key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 65}
}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
target:addAttributeCondition(parameters)
end
return true
end
+
+spell:name("werewolf skill reducer")
+spell:words("###40")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/monster/young_sea_serpent_drown.lua b/data/scripts/spells/monster/young_sea_serpent_drown.lua
similarity index 62%
rename from data/spells/scripts/monster/young_sea_serpent_drown.lua
rename to data/scripts/spells/monster/young_sea_serpent_drown.lua
index 855d1f479d..0ae158c857 100644
--- a/data/spells/scripts/monster/young_sea_serpent_drown.lua
+++ b/data/scripts/spells/monster/young_sea_serpent_drown.lua
@@ -3,9 +3,18 @@ combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_WATERSPLASH)
combat:setArea(createCombatArea(AREA_SQUARE1X1))
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
for _, target in ipairs(combat:getTargets(creature, variant)) do
creature:addDamageCondition(target, CONDITION_DROWN, DAMAGELIST_CONSTANT_PERIOD, 20, 5, 6)
end
return true
end
+
+spell:name("young sea serpent drown")
+spell:words("###18")
+spell:blockWalls(true)
+spell:needTarget(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data/spells/scripts/party/enchant_party.lua b/data/scripts/spells/party/enchant_party.lua
similarity index 53%
rename from data/spells/scripts/party/enchant_party.lua
rename to data/scripts/spells/party/enchant_party.lua
index eeb060c51c..f2a5bc96f2 100644
--- a/data/spells/scripts/party/enchant_party.lua
+++ b/data/scripts/spells/party/enchant_party.lua
@@ -7,6 +7,21 @@ condition:setParameter(CONDITION_PARAM_TICKS, 2 * 60 * 1000)
condition:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 1)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return creature:addPartyCondition(combat, variant, condition, 120)
end
+
+spell:group("support")
+spell:id(129)
+spell:name("Enchant Party")
+spell:words("utori mas sio")
+spell:level(32)
+spell:mana(0)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "master sorcerer;true")
+spell:register()
diff --git a/data/spells/scripts/party/heal_party.lua b/data/scripts/spells/party/heal_party.lua
similarity index 56%
rename from data/spells/scripts/party/heal_party.lua
rename to data/scripts/spells/party/heal_party.lua
index b5634a450a..651370979a 100644
--- a/data/spells/scripts/party/heal_party.lua
+++ b/data/scripts/spells/party/heal_party.lua
@@ -8,6 +8,21 @@ condition:setParameter(CONDITION_PARAM_HEALTHGAIN, 20)
condition:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return creature:addPartyCondition(combat, variant, condition, 120)
end
+
+spell:group("support")
+spell:id(128)
+spell:name("Heal Party")
+spell:words("utura mas sio")
+spell:level(32)
+spell:mana(0)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/party/protect_party.lua b/data/scripts/spells/party/protect_party.lua
similarity index 52%
rename from data/spells/scripts/party/protect_party.lua
rename to data/scripts/spells/party/protect_party.lua
index a347e012a6..7e69c433ec 100644
--- a/data/spells/scripts/party/protect_party.lua
+++ b/data/scripts/spells/party/protect_party.lua
@@ -7,6 +7,21 @@ condition:setParameter(CONDITION_PARAM_TICKS, 2 * 60 * 1000)
condition:setParameter(CONDITION_PARAM_SKILL_SHIELD, 3)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return creature:addPartyCondition(combat, variant, condition, 90)
end
+
+spell:group("support")
+spell:id(127)
+spell:name("Protect Party")
+spell:words("utamo mas sio")
+spell:level(32)
+spell:mana(0)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/party/train_party.lua b/data/scripts/spells/party/train_party.lua
similarity index 58%
rename from data/spells/scripts/party/train_party.lua
rename to data/scripts/spells/party/train_party.lua
index 5acb0cc30b..f6421e69b4 100644
--- a/data/spells/scripts/party/train_party.lua
+++ b/data/scripts/spells/party/train_party.lua
@@ -9,6 +9,21 @@ condition:setParameter(CONDITION_PARAM_SKILL_MELEE, 3)
condition:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 3)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return creature:addPartyCondition(combat, variant, condition, 60)
end
+
+spell:group("support")
+spell:id(126)
+spell:name("Train Party")
+spell:words("utito mas sio")
+spell:level(32)
+spell:mana(0)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/support/blood_rage.lua b/data/scripts/spells/support/blood_rage.lua
similarity index 57%
rename from data/spells/scripts/support/blood_rage.lua
rename to data/scripts/spells/support/blood_rage.lua
index 139a0cfcab..f519d94005 100644
--- a/data/spells/scripts/support/blood_rage.lua
+++ b/data/scripts/spells/support/blood_rage.lua
@@ -9,6 +9,21 @@ condition:setParameter(CONDITION_PARAM_DISABLE_DEFENSE, true)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
combat:addCondition(condition)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("support")
+spell:id(133)
+spell:name("Blood Rage")
+spell:words("utito tempo")
+spell:level(60)
+spell:mana(290)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/scripts/spells/support/cancel_invisibility.lua b/data/scripts/spells/support/cancel_invisibility.lua
new file mode 100644
index 0000000000..2934b028bb
--- /dev/null
+++ b/data/scripts/spells/support/cancel_invisibility.lua
@@ -0,0 +1,23 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
+combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_INVISIBLE)
+combat:setArea(createCombatArea(AREA_CIRCLE3X3))
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("support")
+spell:id(90)
+spell:name("Cancel Invisibility")
+spell:words("exana ina")
+spell:level(26)
+spell:mana(200)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/cancel_magic_shield.lua b/data/scripts/spells/support/cancel_magic_shield.lua
similarity index 100%
rename from data/scripts/spells/cancel_magic_shield.lua
rename to data/scripts/spells/support/cancel_magic_shield.lua
diff --git a/data/spells/scripts/support/challenge.lua b/data/scripts/spells/support/challenge.lua
similarity index 51%
rename from data/spells/scripts/support/challenge.lua
rename to data/scripts/spells/support/challenge.lua
index 348a3a7add..eed611c81e 100644
--- a/data/spells/scripts/support/challenge.lua
+++ b/data/scripts/spells/support/challenge.lua
@@ -8,6 +8,20 @@ end
combat:setCallback(CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("support")
+spell:id(93)
+spell:name("Challenge")
+spell:words("exeta res")
+spell:level(20)
+spell:mana(40)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("elite knight;true")
+spell:register()
diff --git a/data/scripts/spells/support/charge.lua b/data/scripts/spells/support/charge.lua
new file mode 100644
index 0000000000..71fe5bf2a6
--- /dev/null
+++ b/data/scripts/spells/support/charge.lua
@@ -0,0 +1,27 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local condition = Condition(CONDITION_HASTE)
+condition:setParameter(CONDITION_PARAM_TICKS, 5000)
+condition:setFormula(0.9, -72, 0.9, -72)
+combat:addCondition(condition)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("support")
+spell:id(131)
+spell:name("Charge")
+spell:words("utani tempo hur")
+spell:level(25)
+spell:mana(100)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/support/creature_illusion.lua b/data/scripts/spells/support/creature_illusion.lua
similarity index 63%
rename from data/spells/scripts/support/creature_illusion.lua
rename to data/scripts/spells/support/creature_illusion.lua
index 848cfc751f..93cdff5288 100644
--- a/data/spells/scripts/support/creature_illusion.lua
+++ b/data/scripts/spells/support/creature_illusion.lua
@@ -1,7 +1,9 @@
local condition = Condition(CONDITION_OUTFIT)
condition:setTicks(180000)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local returnValue = RETURNVALUE_NOERROR
local monsterType = MonsterType(variant:getString())
if not monsterType then
@@ -21,3 +23,16 @@ function onCastSpell(creature, variant)
creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
return true
end
+
+spell:group("support")
+spell:id(38)
+spell:name("Creature Illusion")
+spell:words("utevo res ina")
+spell:level(23)
+spell:mana(100)
+spell:isAggressive(false)
+spell:hasParams(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/support/find_person.lua b/data/scripts/spells/support/find_person.lua
similarity index 71%
rename from data/spells/scripts/support/find_person.lua
rename to data/scripts/spells/support/find_person.lua
index b9fe2d1b0e..0892d3bcca 100644
--- a/data/spells/scripts/support/find_person.lua
+++ b/data/scripts/spells/support/find_person.lua
@@ -19,21 +19,15 @@ local directions = {
}
local descriptions = {
- [DISTANCE_BESIDE] = {
- [LEVEL_LOWER] = "is below you",
- [LEVEL_SAME] = "is standing next to you",
- [LEVEL_HIGHER] = "is above you"
- },
- [DISTANCE_CLOSE] = {
- [LEVEL_LOWER] = "is on a lower level to the",
- [LEVEL_SAME] = "is to the",
- [LEVEL_HIGHER] = "is on a higher level to the"
- },
+ [DISTANCE_BESIDE] = {[LEVEL_LOWER] = "is below you", [LEVEL_SAME] = "is standing next to you", [LEVEL_HIGHER] = "is above you"},
+ [DISTANCE_CLOSE] = {[LEVEL_LOWER] = "is on a lower level to the", [LEVEL_SAME] = "is to the", [LEVEL_HIGHER] = "is on a higher level to the"},
[DISTANCE_FAR] = "is far to the",
[DISTANCE_VERYFAR] = "is very far to the"
}
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local target = Player(variant:getString())
if not target or target:getGroup():getAccess() and not creature:getGroup():getAccess() then
creature:sendCancelMessage(RETURNVALUE_PLAYERWITHTHISNAMEISNOTONLINE)
@@ -43,11 +37,7 @@ function onCastSpell(creature, variant)
local targetPosition = target:getPosition()
local creaturePosition = creature:getPosition()
- local positionDifference = {
- x = creaturePosition.x - targetPosition.x,
- y = creaturePosition.y - targetPosition.y,
- z = creaturePosition.z - targetPosition.z
- }
+ local positionDifference = {x = creaturePosition.x - targetPosition.x, y = creaturePosition.y - targetPosition.y, z = creaturePosition.z - targetPosition.z}
local maxPositionDifference, direction = math.max(math.abs(positionDifference.x), math.abs(positionDifference.y))
if maxPositionDifference >= 5 then
@@ -72,3 +62,17 @@ function onCastSpell(creature, variant)
creaturePosition:sendMagicEffect(CONST_ME_MAGIC_BLUE)
return true
end
+
+spell:group("support")
+spell:id(20)
+spell:name("Find Person")
+spell:words("exiva")
+spell:level(8)
+spell:mana(20)
+spell:isAggressive(false)
+spell:hasPlayerNameParam(true)
+spell:hasParams(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "knight;true", "master sorcerer;true", "elder druid;true", "royal paladin;true", "elite knight;true")
+spell:register()
diff --git a/data/scripts/spells/support/food.lua b/data/scripts/spells/support/food.lua
new file mode 100644
index 0000000000..b8dcfeac13
--- /dev/null
+++ b/data/scripts/spells/support/food.lua
@@ -0,0 +1,34 @@
+local foods = {
+ 2666, -- meat
+ 2671, -- ham
+ 2681, -- grape
+ 2674, -- apple
+ 2689, -- bread
+ 2690, -- roll
+ 2696 -- cheese
+}
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ if math.random(0, 1) == 1 then
+ creature:addItem(foods[math.random(#foods)])
+ end
+
+ creature:addItem(foods[math.random(#foods)])
+ creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
+ return true
+end
+
+spell:group("support")
+spell:id(42)
+spell:name("Food")
+spell:words("exevo pan")
+spell:level(14)
+spell:mana(120)
+spell:soul(1)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:isAggressive(false)
+spell:vocation("druid;true", "elder druid;true")
+spell:register()
diff --git a/data/scripts/spells/support/great_light.lua b/data/scripts/spells/support/great_light.lua
new file mode 100644
index 0000000000..ed4211b188
--- /dev/null
+++ b/data/scripts/spells/support/great_light.lua
@@ -0,0 +1,28 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local condition = Condition(CONDITION_LIGHT)
+condition:setParameter(CONDITION_PARAM_LIGHT_LEVEL, 8)
+condition:setParameter(CONDITION_PARAM_LIGHT_COLOR, 215)
+condition:setParameter(CONDITION_PARAM_TICKS, (11 * 60 + 35) * 1000)
+combat:addCondition(condition)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("support")
+spell:id(11)
+spell:name("Great Light")
+spell:words("utevo gran lux")
+spell:level(13)
+spell:mana(60)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "knight;true", "master sorcerer;true", "elder druid;true", "royal paladin;true", "elite knight;true")
+spell:register()
diff --git a/data/scripts/spells/support/haste.lua b/data/scripts/spells/support/haste.lua
new file mode 100644
index 0000000000..d1e92bbfe5
--- /dev/null
+++ b/data/scripts/spells/support/haste.lua
@@ -0,0 +1,27 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local condition = Condition(CONDITION_HASTE)
+condition:setParameter(CONDITION_PARAM_TICKS, 33000)
+condition:setFormula(0.3, -24, 0.3, -24)
+combat:addCondition(condition)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("support")
+spell:id(6)
+spell:name("Haste")
+spell:words("utani hur")
+spell:level(14)
+spell:mana(60)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "knight;true", "master sorcerer;true", "elder druid;true", "royal paladin;true", "elite knight;true")
+spell:register()
diff --git a/data/scripts/spells/support/invisible.lua b/data/scripts/spells/support/invisible.lua
new file mode 100644
index 0000000000..78d1099a05
--- /dev/null
+++ b/data/scripts/spells/support/invisible.lua
@@ -0,0 +1,26 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local condition = Condition(CONDITION_INVISIBLE)
+condition:setParameter(CONDITION_PARAM_TICKS, 200000)
+combat:addCondition(condition)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("support")
+spell:id(45)
+spell:name("Invisibility")
+spell:words("utana vid")
+spell:level(35)
+spell:mana(440)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/support/levitate.lua b/data/scripts/spells/support/levitate.lua
similarity index 72%
rename from data/spells/scripts/support/levitate.lua
rename to data/scripts/spells/support/levitate.lua
index 6e24cd4f51..bcc301023f 100644
--- a/data/spells/scripts/support/levitate.lua
+++ b/data/scripts/spells/support/levitate.lua
@@ -25,7 +25,9 @@ local function levitate(creature, parameter)
return RETURNVALUE_NOTPOSSIBLE
end
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local returnValue = levitate(creature, variant:getString())
if returnValue ~= RETURNVALUE_NOERROR then
creature:sendCancelMessage(returnValue)
@@ -35,3 +37,16 @@ function onCastSpell(creature, variant)
return true
end
+
+spell:group("support")
+spell:id(81)
+spell:name("Levitate")
+spell:words("exani hur")
+spell:level(12)
+spell:mana(50)
+spell:isAggressive(false)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:hasParams(true)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "knight;true", "master sorcerer;true", "elder druid;true", "royal paladin;true", "elite knight;true")
+spell:register()
diff --git a/data/scripts/spells/support/light.lua b/data/scripts/spells/support/light.lua
new file mode 100644
index 0000000000..3a931eba0f
--- /dev/null
+++ b/data/scripts/spells/support/light.lua
@@ -0,0 +1,28 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local condition = Condition(CONDITION_LIGHT)
+condition:setParameter(CONDITION_PARAM_LIGHT_LEVEL, 6)
+condition:setParameter(CONDITION_PARAM_LIGHT_COLOR, 215)
+condition:setParameter(CONDITION_PARAM_TICKS, (6 * 60 + 10) * 1000)
+combat:addCondition(condition)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("support")
+spell:id(10)
+spell:name("Light")
+spell:words("utevo lux")
+spell:level(8)
+spell:mana(20)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "knight;true", "master sorcerer;true", "elder druid;true", "royal paladin;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/support/magic_rope.lua b/data/scripts/spells/support/magic_rope.lua
similarity index 51%
rename from data/spells/scripts/support/magic_rope.lua
rename to data/scripts/spells/support/magic_rope.lua
index 92f0acbfa1..c0f239099d 100644
--- a/data/spells/scripts/support/magic_rope.lua
+++ b/data/scripts/spells/support/magic_rope.lua
@@ -1,4 +1,6 @@
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
local position = creature:getPosition()
position:sendMagicEffect(CONST_ME_POFF)
@@ -18,3 +20,16 @@ function onCastSpell(creature, variant)
position:sendMagicEffect(CONST_ME_TELEPORT)
return true
end
+
+spell:group("support")
+spell:id(76)
+spell:name("Magic Rope")
+spell:words("exani tera")
+spell:level(9)
+spell:mana(20)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "paladin;true", "knight;true", "master sorcerer;true", "elder druid;true", "royal paladin;true", "elite knight;true")
+spell:register()
diff --git a/data/scripts/spells/magic_shield.lua b/data/scripts/spells/support/magic_shield.lua
similarity index 100%
rename from data/scripts/spells/magic_shield.lua
rename to data/scripts/spells/support/magic_shield.lua
diff --git a/data/spells/scripts/support/protector.lua b/data/scripts/spells/support/protector.lua
similarity index 68%
rename from data/spells/scripts/support/protector.lua
rename to data/scripts/spells/support/protector.lua
index 09eea9ead4..a9c1df65b9 100644
--- a/data/spells/scripts/support/protector.lua
+++ b/data/scripts/spells/support/protector.lua
@@ -17,6 +17,21 @@ local pacified = Condition(CONDITION_PACIFIED)
pacified:setParameter(CONDITION_PARAM_TICKS, 10000)
combat:addCondition(pacified)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("support")
+spell:id(132)
+spell:name("Protector")
+spell:words("utamo tempo")
+spell:level(55)
+spell:mana(200)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("knight;true", "elite knight;true")
+spell:register()
diff --git a/data/spells/scripts/support/sharpshooter.lua b/data/scripts/spells/support/sharpshooter.lua
similarity index 61%
rename from data/spells/scripts/support/sharpshooter.lua
rename to data/scripts/spells/support/sharpshooter.lua
index 28fede2019..27a23f6809 100644
--- a/data/spells/scripts/support/sharpshooter.lua
+++ b/data/scripts/spells/support/sharpshooter.lua
@@ -14,6 +14,21 @@ speed:setParameter(CONDITION_PARAM_TICKS, 10000)
speed:setFormula(-0.7, 56, -0.7, 56)
combat:addCondition(speed)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("support", "healing")
+spell:id(135)
+spell:name("Sharpshooter")
+spell:words("utito tempo san")
+spell:level(60)
+spell:mana(450)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(10000, 10000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/scripts/spells/support/strong_haste.lua b/data/scripts/spells/support/strong_haste.lua
new file mode 100644
index 0000000000..e995919e34
--- /dev/null
+++ b/data/scripts/spells/support/strong_haste.lua
@@ -0,0 +1,27 @@
+local combat = Combat()
+combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
+combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
+
+local condition = Condition(CONDITION_HASTE)
+condition:setParameter(CONDITION_PARAM_TICKS, 22000)
+condition:setFormula(0.7, -56, 0.7, -56)
+combat:addCondition(condition)
+
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
+ return combat:execute(creature, variant)
+end
+
+spell:group("support")
+spell:id(39)
+spell:name("Strong Haste")
+spell:words("utani gran hur")
+spell:level(20)
+spell:mana(100)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/support/summon_creature.lua b/data/scripts/spells/support/summon_creature.lua
similarity index 80%
rename from data/spells/scripts/support/summon_creature.lua
rename to data/scripts/spells/support/summon_creature.lua
index 85ffd506da..51babdbc77 100644
--- a/data/spells/scripts/support/summon_creature.lua
+++ b/data/scripts/spells/support/summon_creature.lua
@@ -1,4 +1,6 @@
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
if creature:getSkull() == SKULL_BLACK then
creature:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
return false
@@ -49,3 +51,14 @@ function onCastSpell(creature, variant)
summon:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
return true
end
+
+spell:group("support")
+spell:id(9)
+spell:name("Summon Creature")
+spell:words("utevo res")
+spell:level(25)
+spell:hasParams(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/scripts/support/swift_foot.lua b/data/scripts/spells/support/swift_foot.lua
similarity index 65%
rename from data/spells/scripts/support/swift_foot.lua
rename to data/scripts/spells/support/swift_foot.lua
index 85640f8a96..13077fbfd2 100644
--- a/data/spells/scripts/support/swift_foot.lua
+++ b/data/scripts/spells/support/swift_foot.lua
@@ -16,6 +16,21 @@ local pacified = Condition(CONDITION_PACIFIED)
pacified:setParameter(CONDITION_PARAM_TICKS, 10000)
combat:addCondition(pacified)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("support")
+spell:id(134)
+spell:name("Swift Foot")
+spell:words("utamo tempo san")
+spell:level(55)
+spell:mana(400)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("paladin;true", "royal paladin;true")
+spell:register()
diff --git a/data/spells/scripts/support/ultimate_light.lua b/data/scripts/spells/support/ultimate_light.lua
similarity index 51%
rename from data/spells/scripts/support/ultimate_light.lua
rename to data/scripts/spells/support/ultimate_light.lua
index e014536215..4fb5214eab 100644
--- a/data/spells/scripts/support/ultimate_light.lua
+++ b/data/scripts/spells/support/ultimate_light.lua
@@ -8,6 +8,21 @@ condition:setParameter(CONDITION_PARAM_LIGHT_COLOR, 215)
condition:setParameter(CONDITION_PARAM_TICKS, (60 * 33 + 10) * 1000)
combat:addCondition(condition)
-function onCastSpell(creature, variant)
+local spell = Spell(SPELL_INSTANT)
+
+function spell.onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
+
+spell:group("support")
+spell:id(75)
+spell:name("Ultimate Light")
+spell:words("utevo vis lux")
+spell:level(26)
+spell:mana(140)
+spell:isAggressive(false)
+spell:isSelfTarget(true)
+spell:cooldown(2000)
+spell:groupCooldown(2000)
+spell:vocation("sorcerer;true", "druid;true", "master sorcerer;true", "elder druid;true")
+spell:register()
diff --git a/data/spells/lib/spells.lua b/data/spells/lib/spells.lua
index 577020b2df..97137ddbe1 100644
--- a/data/spells/lib/spells.lua
+++ b/data/spells/lib/spells.lua
@@ -1,325 +1 @@
---Pre-made areas
-
---Waves
-AREA_WAVE3 = {
- {1, 1, 1},
- {1, 1, 1},
- {0, 3, 0}
-}
-
-AREA_WAVE4 = {
- {1, 1, 1, 1, 1},
- {0, 1, 1, 1, 0},
- {0, 1, 1, 1, 0},
- {0, 0, 3, 0, 0}
-}
-
-AREA_WAVE6 = {
- {0, 0, 0, 0, 0},
- {0, 1, 3, 1, 0},
- {0, 0, 0, 0, 0}
-}
-
-AREA_WAVE7 = {
- {1, 1, 1, 1, 1},
- {1, 1, 1, 1, 1},
- {0, 1, 1, 1, 0},
- {0, 1, 1, 1, 0},
- {0, 0, 3, 0, 0}
-}
-
-AREA_SQUAREWAVE5 = {
- {1, 1, 1},
- {1, 1, 1},
- {1, 1, 1},
- {0, 1, 0},
- {0, 3, 0}
-}
-
-AREA_SQUAREWAVE6 = {
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
- {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
- {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
- {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
- {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
- {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
- {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}
-}
-
-AREA_SQUAREWAVE7 = {
- {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
- {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
- {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
- {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
- {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
- {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
- {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
- {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
- {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}
-}
-
---Diagonal waves
-AREADIAGONAL_WAVE4 = {
- {0, 0, 0, 0, 1, 0},
- {0, 0, 0, 1, 1, 0},
- {0, 0, 1, 1, 1, 0},
- {0, 1, 1, 1, 1, 0},
- {1, 1, 1, 1, 1, 0},
- {0, 0, 0, 0, 0, 3}
-}
-
-AREADIAGONAL_SQUAREWAVE5 = {
- {1, 1, 1, 0, 0},
- {1, 1, 1, 0, 0},
- {1, 1, 1, 0, 0},
- {0, 0, 0, 1, 0},
- {0, 0, 0, 0, 3}
-}
-
-AREADIAGONAL_WAVE6 = {
- {0, 0, 1},
- {0, 3, 0},
- {1, 0, 0}
-}
-
-AREADIAGONAL_WAVE7 = {
- {0, 0, 0, 0, 0, 1, 0},
- {0, 0, 0, 0, 1, 1, 0},
- {0, 0, 0, 1, 1, 1, 0},
- {0, 0, 1, 1, 1, 1, 0},
- {0, 1, 1, 1, 1, 1, 0},
- {1, 1, 1, 1, 1, 1, 0},
- {0, 0, 0, 0, 0, 0, 3}
-}
-
---Beams
-AREA_BEAM1 = {
- {3}
-}
-
-AREA_BEAM5 = {
- {1},
- {1},
- {1},
- {1},
- {3}
-}
-
-AREA_BEAM7 = {
- {1},
- {1},
- {1},
- {1},
- {1},
- {1},
- {3}
-}
-
-AREA_BEAM8 = {
- {1},
- {1},
- {1},
- {1},
- {1},
- {1},
- {1},
- {3}
-}
-
---Diagonal Beams
-AREADIAGONAL_BEAM5 = {
- {1, 0, 0, 0, 0},
- {0, 1, 0, 0, 0},
- {0, 0, 1, 0, 0},
- {0, 0, 0, 1, 0},
- {0, 0, 0, 0, 3}
-}
-
-AREADIAGONAL_BEAM7 = {
- {1, 0, 0, 0, 0, 0, 0},
- {0, 1, 0, 0, 0, 0, 0},
- {0, 0, 1, 0, 0, 0, 0},
- {0, 0, 0, 1, 0, 0, 0},
- {0, 0, 0, 0, 1, 0, 0},
- {0, 0, 0, 0, 0, 1, 0},
- {0, 0, 0, 0, 0, 0, 3}
-}
-
---Circles
-AREA_CIRCLE2X2 = {
- {0, 1, 1, 1, 0},
- {1, 1, 1, 1, 1},
- {1, 1, 3, 1, 1},
- {1, 1, 1, 1, 1},
- {0, 1, 1, 1, 0}
-}
-
-AREA_CIRCLE3X3 = {
- {0, 0, 1, 1, 1, 0, 0},
- {0, 1, 1, 1, 1, 1, 0},
- {1, 1, 1, 1, 1, 1, 1},
- {1, 1, 1, 3, 1, 1, 1},
- {1, 1, 1, 1, 1, 1, 1},
- {0, 1, 1, 1, 1, 1, 0},
- {0, 0, 1, 1, 1, 0, 0}
-}
-
--- Crosses
-AREA_CROSS1X1 = {
- {0, 1, 0},
- {1, 3, 1},
- {0, 1, 0}
-}
-
-AREA_CIRCLE5X5 = {
- {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
- {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
- {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
- {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
- {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}
-}
-
-AREA_CIRCLE6X6 = {
- {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0},
- {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0},
- {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
- {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0},
- {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0},
- {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}
-}
-
---Squares
-AREA_SQUARE1X1 = {
- {1, 1, 1},
- {1, 3, 1},
- {1, 1, 1}
-}
-
--- Walls
-AREA_WALLFIELD = {
- {1, 1, 3, 1, 1}
-}
-
-AREADIAGONAL_WALLFIELD = {
- {0, 0, 0, 0, 1},
- {0, 0, 0, 1, 1},
- {0, 1, 3, 1, 0},
- {1, 1, 0, 0, 0},
- {1, 0, 0, 0, 0},
-}
-
--- This array contains all destroyable field items
-FIELDS = {1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1500, 1501, 1502, 1503, 1504}
-
-function Player:addPartyCondition(combat, variant, condition, baseMana)
- local party = self:getParty()
- if not party then
- self:sendCancelMessage(RETURNVALUE_NOPARTYMEMBERSINRANGE)
- self:getPosition():sendMagicEffect(CONST_ME_POFF)
- return false
- end
-
- local positions = combat:getPositions(self, variant)
- local members = party:getMembers()
- members[#members + 1] = party:getLeader()
-
- local affectedMembers = {}
- for _, member in ipairs(members) do
- local memberPosition = member:getPosition()
- for _, position in ipairs(positions) do
- if memberPosition == position then
- affectedMembers[#affectedMembers + 1] = member
- end
- end
- end
-
- if #affectedMembers <= 1 then
- self:sendCancelMessage(RETURNVALUE_NOPARTYMEMBERSINRANGE)
- self:getPosition():sendMagicEffect(CONST_ME_POFF)
- return false
- end
-
- local mana = math.ceil(#affectedMembers * math.pow(0.9, #affectedMembers - 1) * baseMana)
- if self:getMana() < mana then
- self:sendCancelMessage(RETURNVALUE_NOTENOUGHMANA)
- self:getPosition():sendMagicEffect(CONST_ME_POFF)
- return false
- end
-
- self:addMana(-mana)
- self:addManaSpent(mana)
-
- for _, member in ipairs(affectedMembers) do
- member:addCondition(condition)
- end
-
- for _, position in ipairs(positions) do
- position:sendMagicEffect(CONST_ME_MAGIC_BLUE)
- end
- return true
-end
-
-function Player:conjureItem(reagentId, conjureId, conjureCount, effect)
- if not conjureCount and conjureId ~= 0 then
- local itemType = ItemType(conjureId)
- if itemType:getId() == 0 then
- return false
- end
-
- local charges = itemType:getCharges()
- if charges ~= 0 then
- conjureCount = charges
- end
- end
-
- if reagentId ~= 0 and not self:removeItem(reagentId, 1, -1) then
- self:sendCancelMessage(RETURNVALUE_YOUNEEDAMAGICITEMTOCASTSPELL)
- self:getPosition():sendMagicEffect(CONST_ME_POFF)
- return false
- end
-
- local item = self:addItem(conjureId, conjureCount)
- if not item then
- self:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
- self:getPosition():sendMagicEffect(CONST_ME_POFF)
- return false
- end
-
- if item:hasAttribute(ITEM_ATTRIBUTE_DURATION) then
- item:decay()
- end
-
- self:getPosition():sendMagicEffect(item:getType():isRune() and CONST_ME_MAGIC_RED or effect)
- return true
-end
-
-function Creature:addAttributeCondition(parameters)
- local condition = Condition(CONDITION_ATTRIBUTES)
- for _, parameter in ipairs(parameters) do
- if parameter.key and parameter.value then
- condition:setParameter(parameter.key, parameter.value)
- end
- end
-
- self:addCondition(condition)
-end
+-- See data/scripts/lib/spells.lua
diff --git a/data/spells/scripts/attack/apprentice's_strike.lua b/data/spells/scripts/attack/apprentice's_strike.lua
deleted file mode 100644
index fedb80ea74..0000000000
--- a/data/spells/scripts/attack/apprentice's_strike.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
-combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
-
-function onGetFormulaValues(player, level, magicLevel)
- return -10, -20
-end
-
-combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/attack/magic_wall_rune.lua b/data/spells/scripts/attack/magic_wall_rune.lua
deleted file mode 100644
index 79c26ee0c5..0000000000
--- a/data/spells/scripts/attack/magic_wall_rune.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
-combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_MAGICWALL)
-
-function onCastSpell(creature, variant, isHotkey)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/attack/wild_growth_rune.lua b/data/spells/scripts/attack/wild_growth_rune.lua
deleted file mode 100644
index 1ab7d60044..0000000000
--- a/data/spells/scripts/attack/wild_growth_rune.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
-combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_WILDGROWTH)
-
-function onCastSpell(creature, variant, isHotkey)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/conjuring/animate_dead_rune.lua b/data/spells/scripts/conjuring/animate_dead_rune.lua
deleted file mode 100644
index d377f8a819..0000000000
--- a/data/spells/scripts/conjuring/animate_dead_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2316, 1)
-end
diff --git a/data/spells/scripts/conjuring/arrow_call.lua b/data/spells/scripts/conjuring/arrow_call.lua
deleted file mode 100644
index 061a908b8d..0000000000
--- a/data/spells/scripts/conjuring/arrow_call.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(0, 23839, 3, CONST_ME_MAGIC_BLUE)
-end
diff --git a/data/spells/scripts/conjuring/avalanche_rune.lua b/data/spells/scripts/conjuring/avalanche_rune.lua
deleted file mode 100644
index 551e669848..0000000000
--- a/data/spells/scripts/conjuring/avalanche_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2274, 4)
-end
diff --git a/data/spells/scripts/conjuring/blank_rune.lua b/data/spells/scripts/conjuring/blank_rune.lua
deleted file mode 100644
index 6edf7f2c40..0000000000
--- a/data/spells/scripts/conjuring/blank_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(0, 2260, 1)
-end
diff --git a/data/spells/scripts/conjuring/chameleon_rune.lua b/data/spells/scripts/conjuring/chameleon_rune.lua
deleted file mode 100644
index eeaef4300d..0000000000
--- a/data/spells/scripts/conjuring/chameleon_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2291, 1)
-end
diff --git a/data/spells/scripts/conjuring/conjure_arrow.lua b/data/spells/scripts/conjuring/conjure_arrow.lua
deleted file mode 100644
index c930588e37..0000000000
--- a/data/spells/scripts/conjuring/conjure_arrow.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(0, 2544, 10, CONST_ME_MAGIC_BLUE)
-end
diff --git a/data/spells/scripts/conjuring/conjure_bolt.lua b/data/spells/scripts/conjuring/conjure_bolt.lua
deleted file mode 100644
index 13acd1092e..0000000000
--- a/data/spells/scripts/conjuring/conjure_bolt.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(0, 2543, 5, CONST_ME_MAGIC_BLUE)
-end
diff --git a/data/spells/scripts/conjuring/conjure_explosive_arrow.lua b/data/spells/scripts/conjuring/conjure_explosive_arrow.lua
deleted file mode 100644
index fda0294a59..0000000000
--- a/data/spells/scripts/conjuring/conjure_explosive_arrow.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(0, 2546, 8, CONST_ME_MAGIC_BLUE)
-end
diff --git a/data/spells/scripts/conjuring/conjure_piercing_bolt.lua b/data/spells/scripts/conjuring/conjure_piercing_bolt.lua
deleted file mode 100644
index b9c11801af..0000000000
--- a/data/spells/scripts/conjuring/conjure_piercing_bolt.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(0, 7363, 5, CONST_ME_MAGIC_BLUE)
-end
diff --git a/data/spells/scripts/conjuring/conjure_poisoned_arrow.lua b/data/spells/scripts/conjuring/conjure_poisoned_arrow.lua
deleted file mode 100644
index cf3ab9ea96..0000000000
--- a/data/spells/scripts/conjuring/conjure_poisoned_arrow.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(0, 2545, 7, CONST_ME_MAGIC_BLUE)
-end
diff --git a/data/spells/scripts/conjuring/conjure_power_bolt.lua b/data/spells/scripts/conjuring/conjure_power_bolt.lua
deleted file mode 100644
index bd2448564e..0000000000
--- a/data/spells/scripts/conjuring/conjure_power_bolt.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(0, 2547, 10, CONST_ME_MAGIC_BLUE)
-end
diff --git a/data/spells/scripts/conjuring/conjure_sniper_arrow.lua b/data/spells/scripts/conjuring/conjure_sniper_arrow.lua
deleted file mode 100644
index a286d5245d..0000000000
--- a/data/spells/scripts/conjuring/conjure_sniper_arrow.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(0, 7364, 5, CONST_ME_MAGIC_BLUE)
-end
diff --git a/data/spells/scripts/conjuring/convince_creature_rune.lua b/data/spells/scripts/conjuring/convince_creature_rune.lua
deleted file mode 100644
index b250a7dd01..0000000000
--- a/data/spells/scripts/conjuring/convince_creature_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2290, 1)
-end
diff --git a/data/spells/scripts/conjuring/cure_poison_rune.lua b/data/spells/scripts/conjuring/cure_poison_rune.lua
deleted file mode 100644
index 2456b88433..0000000000
--- a/data/spells/scripts/conjuring/cure_poison_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2266, 1)
-end
diff --git a/data/spells/scripts/conjuring/destroy_field_rune.lua b/data/spells/scripts/conjuring/destroy_field_rune.lua
deleted file mode 100644
index 4ce3fd34f1..0000000000
--- a/data/spells/scripts/conjuring/destroy_field_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2261, 3)
-end
diff --git a/data/spells/scripts/conjuring/disintegrate_rune.lua b/data/spells/scripts/conjuring/disintegrate_rune.lua
deleted file mode 100644
index ec5ec6790a..0000000000
--- a/data/spells/scripts/conjuring/disintegrate_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2310, 3)
-end
diff --git a/data/spells/scripts/conjuring/enchant_spear.lua b/data/spells/scripts/conjuring/enchant_spear.lua
deleted file mode 100644
index b534cef266..0000000000
--- a/data/spells/scripts/conjuring/enchant_spear.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2389, 7367, 1, CONST_ME_MAGIC_GREEN)
-end
diff --git a/data/spells/scripts/conjuring/energy_bomb_rune.lua b/data/spells/scripts/conjuring/energy_bomb_rune.lua
deleted file mode 100644
index 470977f243..0000000000
--- a/data/spells/scripts/conjuring/energy_bomb_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2262, 2)
-end
diff --git a/data/spells/scripts/conjuring/energy_field_rune.lua b/data/spells/scripts/conjuring/energy_field_rune.lua
deleted file mode 100644
index 77a9b02482..0000000000
--- a/data/spells/scripts/conjuring/energy_field_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2277, 3)
-end
diff --git a/data/spells/scripts/conjuring/energy_wall_rune.lua b/data/spells/scripts/conjuring/energy_wall_rune.lua
deleted file mode 100644
index fa6d968fc1..0000000000
--- a/data/spells/scripts/conjuring/energy_wall_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2279, 4)
-end
diff --git a/data/spells/scripts/conjuring/explosion_rune.lua b/data/spells/scripts/conjuring/explosion_rune.lua
deleted file mode 100644
index 483f619a0a..0000000000
--- a/data/spells/scripts/conjuring/explosion_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2313, 6)
-end
diff --git a/data/spells/scripts/conjuring/fire_bomb_rune.lua b/data/spells/scripts/conjuring/fire_bomb_rune.lua
deleted file mode 100644
index 4beda35840..0000000000
--- a/data/spells/scripts/conjuring/fire_bomb_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2305, 2)
-end
diff --git a/data/spells/scripts/conjuring/fire_field_rune.lua b/data/spells/scripts/conjuring/fire_field_rune.lua
deleted file mode 100644
index 96c1fe3d05..0000000000
--- a/data/spells/scripts/conjuring/fire_field_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2301, 3)
-end
diff --git a/data/spells/scripts/conjuring/fire_wall_rune.lua b/data/spells/scripts/conjuring/fire_wall_rune.lua
deleted file mode 100644
index 2186343aae..0000000000
--- a/data/spells/scripts/conjuring/fire_wall_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2303, 4)
-end
diff --git a/data/spells/scripts/conjuring/fireball_rune.lua b/data/spells/scripts/conjuring/fireball_rune.lua
deleted file mode 100644
index bdcb120e27..0000000000
--- a/data/spells/scripts/conjuring/fireball_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2302, 5)
-end
diff --git a/data/spells/scripts/conjuring/great_fireball_rune.lua b/data/spells/scripts/conjuring/great_fireball_rune.lua
deleted file mode 100644
index 1842809f2a..0000000000
--- a/data/spells/scripts/conjuring/great_fireball_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2304, 4)
-end
diff --git a/data/spells/scripts/conjuring/heavy_magic_missile_rune.lua b/data/spells/scripts/conjuring/heavy_magic_missile_rune.lua
deleted file mode 100644
index 786c3b1e6d..0000000000
--- a/data/spells/scripts/conjuring/heavy_magic_missile_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2311, 10)
-end
diff --git a/data/spells/scripts/conjuring/holy_missile_rune.lua b/data/spells/scripts/conjuring/holy_missile_rune.lua
deleted file mode 100644
index b4931f09d0..0000000000
--- a/data/spells/scripts/conjuring/holy_missile_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2295, 5)
-end
diff --git a/data/spells/scripts/conjuring/icicle_rune.lua b/data/spells/scripts/conjuring/icicle_rune.lua
deleted file mode 100644
index 3ff841c260..0000000000
--- a/data/spells/scripts/conjuring/icicle_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2271, 5)
-end
diff --git a/data/spells/scripts/conjuring/intense_healing_rune.lua b/data/spells/scripts/conjuring/intense_healing_rune.lua
deleted file mode 100644
index 9080b9a384..0000000000
--- a/data/spells/scripts/conjuring/intense_healing_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2265, 1)
-end
diff --git a/data/spells/scripts/conjuring/light_magic_missile_rune.lua b/data/spells/scripts/conjuring/light_magic_missile_rune.lua
deleted file mode 100644
index 6018747fb2..0000000000
--- a/data/spells/scripts/conjuring/light_magic_missile_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2287, 10)
-end
diff --git a/data/spells/scripts/conjuring/light_stone_shower_rune.lua b/data/spells/scripts/conjuring/light_stone_shower_rune.lua
deleted file mode 100644
index 5f275853c9..0000000000
--- a/data/spells/scripts/conjuring/light_stone_shower_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 23722, 4)
-end
diff --git a/data/spells/scripts/conjuring/lightest_missile_rune.lua b/data/spells/scripts/conjuring/lightest_missile_rune.lua
deleted file mode 100644
index 3da065341f..0000000000
--- a/data/spells/scripts/conjuring/lightest_missile_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 23723, 10)
-end
diff --git a/data/spells/scripts/conjuring/magic_wall_rune.lua b/data/spells/scripts/conjuring/magic_wall_rune.lua
deleted file mode 100644
index d0964d6954..0000000000
--- a/data/spells/scripts/conjuring/magic_wall_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2293, 3)
-end
diff --git a/data/spells/scripts/conjuring/paralyze_rune.lua b/data/spells/scripts/conjuring/paralyze_rune.lua
deleted file mode 100644
index 88c1b9f49f..0000000000
--- a/data/spells/scripts/conjuring/paralyze_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2278, 1)
-end
diff --git a/data/spells/scripts/conjuring/poison_bomb_rune.lua b/data/spells/scripts/conjuring/poison_bomb_rune.lua
deleted file mode 100644
index 2bfd335958..0000000000
--- a/data/spells/scripts/conjuring/poison_bomb_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2286, 2)
-end
diff --git a/data/spells/scripts/conjuring/poison_field_rune.lua b/data/spells/scripts/conjuring/poison_field_rune.lua
deleted file mode 100644
index 3c82f9188f..0000000000
--- a/data/spells/scripts/conjuring/poison_field_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2285, 3)
-end
diff --git a/data/spells/scripts/conjuring/poison_wall_rune.lua b/data/spells/scripts/conjuring/poison_wall_rune.lua
deleted file mode 100644
index 841903b623..0000000000
--- a/data/spells/scripts/conjuring/poison_wall_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2289, 4)
-end
diff --git a/data/spells/scripts/conjuring/practise_magic_missile_rune.lua b/data/spells/scripts/conjuring/practise_magic_missile_rune.lua
deleted file mode 100644
index 91b708323e..0000000000
--- a/data/spells/scripts/conjuring/practise_magic_missile_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 19392, 10)
-end
diff --git a/data/spells/scripts/conjuring/soulfire_rune.lua b/data/spells/scripts/conjuring/soulfire_rune.lua
deleted file mode 100644
index 95b19785c4..0000000000
--- a/data/spells/scripts/conjuring/soulfire_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2308, 3)
-end
diff --git a/data/spells/scripts/conjuring/stalagmite_rune.lua b/data/spells/scripts/conjuring/stalagmite_rune.lua
deleted file mode 100644
index 4b8ee41da7..0000000000
--- a/data/spells/scripts/conjuring/stalagmite_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2292, 10)
-end
diff --git a/data/spells/scripts/conjuring/stone_shower_rune.lua b/data/spells/scripts/conjuring/stone_shower_rune.lua
deleted file mode 100644
index 094f74afbd..0000000000
--- a/data/spells/scripts/conjuring/stone_shower_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2288, 4)
-end
diff --git a/data/spells/scripts/conjuring/sudden_death_rune.lua b/data/spells/scripts/conjuring/sudden_death_rune.lua
deleted file mode 100644
index 6e23bb319e..0000000000
--- a/data/spells/scripts/conjuring/sudden_death_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2268, 3)
-end
diff --git a/data/spells/scripts/conjuring/thunderstorm_rune.lua b/data/spells/scripts/conjuring/thunderstorm_rune.lua
deleted file mode 100644
index 4a2e6e92f1..0000000000
--- a/data/spells/scripts/conjuring/thunderstorm_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2315, 4)
-end
diff --git a/data/spells/scripts/conjuring/ultimate_healing_rune.lua b/data/spells/scripts/conjuring/ultimate_healing_rune.lua
deleted file mode 100644
index 7481442f10..0000000000
--- a/data/spells/scripts/conjuring/ultimate_healing_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2273, 1)
-end
diff --git a/data/spells/scripts/conjuring/wand_of_darkness.lua b/data/spells/scripts/conjuring/wand_of_darkness.lua
deleted file mode 100644
index ea23c08957..0000000000
--- a/data/spells/scripts/conjuring/wand_of_darkness.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(0, 28416, 1, CONST_ME_MAGIC_GREEN)
-end
diff --git a/data/spells/scripts/conjuring/wild_growth_rune.lua b/data/spells/scripts/conjuring/wild_growth_rune.lua
deleted file mode 100644
index af73e35dd9..0000000000
--- a/data/spells/scripts/conjuring/wild_growth_rune.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-function onCastSpell(creature, variant)
- return creature:conjureItem(2260, 2269, 2)
-end
diff --git a/data/spells/scripts/custom/apocalypse.lua b/data/spells/scripts/custom/apocalypse.lua
deleted file mode 100644
index b0248b3b42..0000000000
--- a/data/spells/scripts/custom/apocalypse.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-function spellCallback(cid, position, count)
- if Creature(cid) then
- if count > 0 or math.random(0, 1) == 1 then
- position:sendMagicEffect(CONST_ME_HITBYFIRE)
- doAreaCombat(cid, COMBAT_FIREDAMAGE, position, 0, -100, -100, CONST_ME_EXPLOSIONHIT)
- end
-
- if count < 5 then
- count = count + 1
- addEvent(spellCallback, math.random(1000, 4000), cid, position, count)
- end
- end
-end
-
-function onTargetTile(creature, position)
- spellCallback(creature:getId(), position, 0)
-end
-
-local combat = Combat()
-combat:setArea(createCombatArea(AREA_CIRCLE5X5))
-combat:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile")
-
-function onCastSpell(creature, variant, isHotkey)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/custom/combustion.lua b/data/spells/scripts/custom/combustion.lua
deleted file mode 100644
index f86ca589b6..0000000000
--- a/data/spells/scripts/custom/combustion.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local condition = Condition(CONDITION_FIRE)
-condition:setParameter(CONDITION_PARAM_DELAYED, true)
-condition:addDamage(5, 3000, -25)
-condition:addDamage(1, 5000, -666)
-
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
-combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
-combat:setFormula(COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.7, 0)
-combat:addCondition(condition)
-
-function onCastSpell(creature, variant, isHotkey)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/custom/drunk.lua b/data/spells/scripts/custom/drunk.lua
deleted file mode 100644
index fcbae56a00..0000000000
--- a/data/spells/scripts/custom/drunk.lua
+++ /dev/null
@@ -1,11 +0,0 @@
-local condition = Condition(CONDITION_DRUNK)
-condition:setParameter(CONDITION_PARAM_TICKS, 20000)
-
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
-combat:addCondition(condition)
-combat:setArea(createCombatArea(AREA_SQUARE1X1))
-
-function onCastSpell(creature, variant, isHotkey)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/custom/magic_prison.lua b/data/spells/scripts/custom/magic_prison.lua
deleted file mode 100644
index ee5bfba68c..0000000000
--- a/data/spells/scripts/custom/magic_prison.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
-combat:setParameter(COMBAT_PARAM_CREATEITEM, ITEM_MAGICWALL)
-combat:setArea(createCombatArea(AREA_CROSS1X1))
-
-function onCastSpell(creature, variant, isHotkey)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/custom/polymorph.lua b/data/spells/scripts/custom/polymorph.lua
deleted file mode 100644
index e8075546f8..0000000000
--- a/data/spells/scripts/custom/polymorph.lua
+++ /dev/null
@@ -1,29 +0,0 @@
-local condition = Condition(CONDITION_OUTFIT)
-condition:setParameter(CONDITION_PARAM_TICKS, 20000)
-condition:setOutfit(0, 230, 0, 0, 0, 0)
-condition:setOutfit(0, 231, 0, 0, 0, 0)
-condition:setOutfit(0, 232, 0, 0, 0, 0)
-condition:setOutfit(0, 233, 0, 0, 0, 0)
-condition:setOutfit(0, 234, 0, 0, 0, 0)
-condition:setOutfit(0, 235, 0, 0, 0, 0)
-condition:setOutfit(0, 236, 0, 0, 0, 0)
-condition:setOutfit(0, 237, 0, 0, 0, 0)
-condition:setOutfit(0, 238, 0, 0, 0, 0)
-condition:setOutfit(0, 239, 0, 0, 0, 0)
-condition:setOutfit(0, 240, 0, 0, 0, 0)
-condition:setOutfit(0, 241, 0, 0, 0, 0)
-condition:setOutfit(0, 242, 0, 0, 0, 0)
-condition:setOutfit(0, 243, 0, 0, 0, 0)
-condition:setOutfit(0, 244, 0, 0, 0, 0)
-condition:setOutfit(0, 245, 0, 0, 0, 0)
-condition:setOutfit(0, 246, 0, 0, 0, 0)
-condition:setOutfit(0, 247, 0, 0, 0, 0)
-
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
-combat:setArea(createCombatArea(AREA_SQUARE1X1))
-combat:addCondition(condition)
-
-function onCastSpell(creature, variant, isHotkey)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/healing/cure_bleeding.lua b/data/spells/scripts/healing/cure_bleeding.lua
deleted file mode 100644
index b41638597e..0000000000
--- a/data/spells/scripts/healing/cure_bleeding.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
-combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_BLEEDING)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/healing/cure_burning.lua b/data/spells/scripts/healing/cure_burning.lua
deleted file mode 100644
index 7813858fab..0000000000
--- a/data/spells/scripts/healing/cure_burning.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
-combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_FIRE)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/healing/cure_curse.lua b/data/spells/scripts/healing/cure_curse.lua
deleted file mode 100644
index 1d74c77f1a..0000000000
--- a/data/spells/scripts/healing/cure_curse.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
-combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_CURSED)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/healing/cure_electrification.lua b/data/spells/scripts/healing/cure_electrification.lua
deleted file mode 100644
index 14f88626e0..0000000000
--- a/data/spells/scripts/healing/cure_electrification.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
-combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_ENERGY)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/healing/cure_poison.lua b/data/spells/scripts/healing/cure_poison.lua
deleted file mode 100644
index b50548e729..0000000000
--- a/data/spells/scripts/healing/cure_poison.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
-combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/monster/betrayed_wraith_skill_reducer.lua b/data/spells/scripts/monster/betrayed_wraith_skill_reducer.lua
deleted file mode 100644
index cd0ddbd107..0000000000
--- a/data/spells/scripts/monster/betrayed_wraith_skill_reducer.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_YELLOW_RINGS)
-combat:setArea(createCombatArea(AREA_SQUAREWAVE5))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 5 * 1000},
- {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 80}
-}
-
-function onCastSpell(creature, variant)
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/cliff_strider_skill_reducer.lua b/data/spells/scripts/monster/cliff_strider_skill_reducer.lua
deleted file mode 100644
index d13f0cc10a..0000000000
--- a/data/spells/scripts/monster/cliff_strider_skill_reducer.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
-combat:setArea(createCombatArea(AREA_CIRCLE2X2))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 6 * 1000},
- {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 50}
-}
-
-function onCastSpell(creature, variant)
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/dark_torturer_skill_reducer.lua b/data/spells/scripts/monster/dark_torturer_skill_reducer.lua
deleted file mode 100644
index 9fc95a820b..0000000000
--- a/data/spells/scripts/monster/dark_torturer_skill_reducer.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SOUND_PURPLE)
-combat:setArea(createCombatArea(AREA_SQUAREWAVE6))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 8 * 1000},
- {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = 85}
-}
-
-function onCastSpell(creature, variant)
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/demon_outcast_skill_reducer.lua b/data/spells/scripts/monster/demon_outcast_skill_reducer.lua
deleted file mode 100644
index 6f459cebfe..0000000000
--- a/data/spells/scripts/monster/demon_outcast_skill_reducer.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLASHARROW)
-combat:setArea(createCombatArea(AREA_BEAM1))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 6 * 1000},
- {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 25}
-}
-
-function onCastSpell(creature, variant)
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/diabolic_imp_skill_reducer.lua b/data/spells/scripts/monster/diabolic_imp_skill_reducer.lua
deleted file mode 100644
index bdc5951366..0000000000
--- a/data/spells/scripts/monster/diabolic_imp_skill_reducer.lua
+++ /dev/null
@@ -1,17 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
-combat:setArea(createCombatArea(AREA_BEAM1))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 6 * 1000},
- {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = nil}
-}
-
-function onCastSpell(creature, variant)
- parameters[2].value = math.random(70, 80)
-
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/djinn_cancel_invisibility.lua b/data/spells/scripts/monster/djinn_cancel_invisibility.lua
deleted file mode 100644
index 61128bc974..0000000000
--- a/data/spells/scripts/monster/djinn_cancel_invisibility.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_INVISIBLE)
-combat:setArea(createCombatArea(AREA_CIRCLE3X3))
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/monster/enslaved_dwarf_skill_reducer_1.lua b/data/spells/scripts/monster/enslaved_dwarf_skill_reducer_1.lua
deleted file mode 100644
index 3132fbeca7..0000000000
--- a/data/spells/scripts/monster/enslaved_dwarf_skill_reducer_1.lua
+++ /dev/null
@@ -1,17 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
-combat:setArea(createCombatArea(AREA_CIRCLE2X2))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 6 * 1000},
- {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = nil}
-}
-
-function onCastSpell(creature, variant)
- parameters[2].value = math.random(13, 50)
-
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/enslaved_dwarf_skill_reducer_2.lua b/data/spells/scripts/monster/enslaved_dwarf_skill_reducer_2.lua
deleted file mode 100644
index d477f321f9..0000000000
--- a/data/spells/scripts/monster/enslaved_dwarf_skill_reducer_2.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
-combat:setArea(createCombatArea(AREA_CROSS1X1))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 6 * 1000},
- {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 45}
-}
-
-function onCastSpell(creature, variant)
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/explosion_wave.lua b/data/spells/scripts/monster/explosion_wave.lua
deleted file mode 100644
index fe4719c442..0000000000
--- a/data/spells/scripts/monster/explosion_wave.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local area = {
- {1, 1, 1},
- {1, 1, 1},
- {0, 1, 0},
- {0, 3, 0}
-}
-
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONHIT)
-combat:setArea(createCombatArea(area))
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/monster/feversleep_skill_reducer.lua b/data/spells/scripts/monster/feversleep_skill_reducer.lua
deleted file mode 100644
index 003f0e2ee2..0000000000
--- a/data/spells/scripts/monster/feversleep_skill_reducer.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_STUN)
-combat:setArea(createCombatArea(AREA_CIRCLE6X6))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 4 * 1000},
- {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 50}
-}
-
-function onCastSpell(creature, variant)
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/pirate_corsair_skill_reducer.lua b/data/spells/scripts/monster/pirate_corsair_skill_reducer.lua
deleted file mode 100644
index a174cc95ad..0000000000
--- a/data/spells/scripts/monster/pirate_corsair_skill_reducer.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SOUND_PURPLE)
-combat:setArea(createCombatArea(AREA_BEAM1))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 4 * 1000},
- {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 25}
-}
-
-function onCastSpell(creature, variant)
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/shock_head_skill_reducer_1.lua b/data/spells/scripts/monster/shock_head_skill_reducer_1.lua
deleted file mode 100644
index 4f5adcfea9..0000000000
--- a/data/spells/scripts/monster/shock_head_skill_reducer_1.lua
+++ /dev/null
@@ -1,16 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_GROUNDSHAKER)
-combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EXPLOSION)
-combat:setArea(createCombatArea(AREA_CIRCLE2X2))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 6 * 1000},
- {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = 65}
-}
-
-function onCastSpell(creature, variant)
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/shock_head_skill_reducer_2.lua b/data/spells/scripts/monster/shock_head_skill_reducer_2.lua
deleted file mode 100644
index 88a457a9b4..0000000000
--- a/data/spells/scripts/monster/shock_head_skill_reducer_2.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_STUN)
-combat:setArea(createCombatArea(AREA_CIRCLE6X6))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 4 * 1000},
- {key = CONDITION_PARAM_STAT_MAGICPOINTSPERCENT, value = 70}
-}
-
-function onCastSpell(creature, variant)
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/war_golem_skill_reducer.lua b/data/spells/scripts/monster/war_golem_skill_reducer.lua
deleted file mode 100644
index c7a0997a56..0000000000
--- a/data/spells/scripts/monster/war_golem_skill_reducer.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_STUN)
-combat:setArea(createCombatArea(AREA_BEAM8))
-
-local parameters = {
- {key = CONDITION_PARAM_TICKS, value = 3 * 1000},
- {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = 70}
-}
-
-function onCastSpell(creature, variant)
- for _, target in ipairs(combat:getTargets(creature, variant)) do
- target:addAttributeCondition(parameters)
- end
- return true
-end
diff --git a/data/spells/scripts/monster/wave_t.lua b/data/spells/scripts/monster/wave_t.lua
deleted file mode 100644
index 6499727271..0000000000
--- a/data/spells/scripts/monster/wave_t.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-local area = {
- {1, 1, 1},
- {0, 1, 0},
- {0, 3, 0}
-}
-
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_GREEN_RINGS)
-combat:setArea(createCombatArea(area))
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/support/cancel_invisibility.lua b/data/spells/scripts/support/cancel_invisibility.lua
deleted file mode 100644
index 1137dce45d..0000000000
--- a/data/spells/scripts/support/cancel_invisibility.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
-combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_INVISIBLE)
-combat:setArea(createCombatArea(AREA_CIRCLE3X3))
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/support/charge.lua b/data/spells/scripts/support/charge.lua
deleted file mode 100644
index 32e9abaf8e..0000000000
--- a/data/spells/scripts/support/charge.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-local condition = Condition(CONDITION_HASTE)
-condition:setParameter(CONDITION_PARAM_TICKS, 5000)
-condition:setFormula(0.9, -72, 0.9, -72)
-combat:addCondition(condition)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/support/food.lua b/data/spells/scripts/support/food.lua
deleted file mode 100644
index 149d9ebd62..0000000000
--- a/data/spells/scripts/support/food.lua
+++ /dev/null
@@ -1,19 +0,0 @@
-local foods = {
- 2666, -- meat
- 2671, -- ham
- 2681, -- grape
- 2674, -- apple
- 2689, -- bread
- 2690, -- roll
- 2696 -- cheese
-}
-
-function onCastSpell(creature, variant)
- if math.random(0, 1) == 1 then
- creature:addItem(foods[math.random(#foods)])
- end
-
- creature:addItem(foods[math.random(#foods)])
- creature:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
- return true
-end
diff --git a/data/spells/scripts/support/great_light.lua b/data/spells/scripts/support/great_light.lua
deleted file mode 100644
index 766ba6b98e..0000000000
--- a/data/spells/scripts/support/great_light.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-local condition = Condition(CONDITION_LIGHT)
-condition:setParameter(CONDITION_PARAM_LIGHT_LEVEL, 8)
-condition:setParameter(CONDITION_PARAM_LIGHT_COLOR, 215)
-condition:setParameter(CONDITION_PARAM_TICKS, (11 * 60 + 35) * 1000)
-combat:addCondition(condition)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/support/haste.lua b/data/spells/scripts/support/haste.lua
deleted file mode 100644
index 645795aa6f..0000000000
--- a/data/spells/scripts/support/haste.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-local condition = Condition(CONDITION_HASTE)
-condition:setParameter(CONDITION_PARAM_TICKS, 33000)
-condition:setFormula(0.3, -24, 0.3, -24)
-combat:addCondition(condition)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/support/invisible.lua b/data/spells/scripts/support/invisible.lua
deleted file mode 100644
index e6a9557c2d..0000000000
--- a/data/spells/scripts/support/invisible.lua
+++ /dev/null
@@ -1,11 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-local condition = Condition(CONDITION_INVISIBLE)
-condition:setParameter(CONDITION_PARAM_TICKS, 200000)
-combat:addCondition(condition)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/support/light.lua b/data/spells/scripts/support/light.lua
deleted file mode 100644
index c69728dcf6..0000000000
--- a/data/spells/scripts/support/light.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-local condition = Condition(CONDITION_LIGHT)
-condition:setParameter(CONDITION_PARAM_LIGHT_LEVEL, 6)
-condition:setParameter(CONDITION_PARAM_LIGHT_COLOR, 215)
-condition:setParameter(CONDITION_PARAM_TICKS, (6 * 60 + 10) * 1000)
-combat:addCondition(condition)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/scripts/support/strong_haste.lua b/data/spells/scripts/support/strong_haste.lua
deleted file mode 100644
index 48e0dbbf82..0000000000
--- a/data/spells/scripts/support/strong_haste.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local combat = Combat()
-combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
-combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
-
-local condition = Condition(CONDITION_HASTE)
-condition:setParameter(CONDITION_PARAM_TICKS, 22000)
-condition:setFormula(0.7, -56, 0.7, -56)
-combat:addCondition(condition)
-
-function onCastSpell(creature, variant)
- return combat:execute(creature, variant)
-end
diff --git a/data/spells/spells.xml b/data/spells/spells.xml
index d93b8166d1..82da3c7c88 100644
--- a/data/spells/spells.xml
+++ b/data/spells/spells.xml
@@ -1,842 +1,3 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+