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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +