Merge pull request #4479 from nemaara/DiD_AMLAs

[DiD]: add AMLAs to Mal Keshar and special units
This commit is contained in:
nemaara 2019-10-31 23:00:24 -04:00 committed by GitHub
commit 7ea11c5a01
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 3934 additions and 33 deletions

View file

@ -60,6 +60,7 @@
[/campaign]
#ifdef CAMPAIGN_DESCENT
{campaigns/Descent_Into_Darkness/utils}
[units]
{campaigns/Descent_Into_Darkness/units}
[/units]
@ -71,7 +72,6 @@
wesnoth.dofile('campaigns/Descent_Into_Darkness/lua/' .. 'skip_animations.lua')
>>
[/lua]
{campaigns/Descent_Into_Darkness/utils}
{campaigns/Descent_Into_Darkness/scenarios}
#endif

View file

@ -963,6 +963,13 @@
time=400
[/delay]
[unit]
x,y=$x1,$y1
type=Spectral Servant
variation=SS1
overwrite=yes
[/unit]
[message]
speaker=Malin Keshar
message= _ "I think Ive got it under control again. That was a close call. Let me try the other one now."
@ -996,7 +1003,12 @@
[message]
speaker=Darken Volk
message= _ "No mishaps this time, but you will need to practice more."
message= _ "No mishaps this time. Good. Now pay heed. A necromancers first ghost is often special — use it carefully, and it will serve you well. Let it escape your control again, and it will be lost to you forever."
[/message]
[message]
speaker=Malin Keshar
message= _ "I see."
[/message]
{CLEAR_VARIABLE loc1}

View file

@ -881,7 +881,7 @@
{REMOVE_IMAGE $loc.x $loc.y}
[unit]
type=Ghoul
type=Ghoul DiD
id=DroganGhoul
name= _ "Drogan"
x,y=$loc.x,$loc.y

View file

@ -3048,26 +3048,8 @@ And the tongue of fire begets ashen repose.</i>"
message= _ "Fire magic. Annoying, but you are not the only one who can summon minions to your aid."
[/message]
[if]
[have_unit]
side=1
type=Spectre,Nightgaunt,Wraith,Shadow,Ghost
search_recall_list=yes
[/have_unit]
[then]
[recall]
type=Spectre,Nightgaunt,Wraith,Shadow,Ghost
[/recall]
[/then]
[else]
[unit]
type=Ghost
side=1
animate=yes
placement=leader
[/unit]
[/else]
[/if]
{CREATE_ADVISOR}
[if]
[have_unit]
side=1
@ -3552,6 +3534,16 @@ And the tongue of fire begets ashen repose.</i>"
type=Skeletal Dragon
side=1
x,y=$x1,$y1
#ifdef EASY
max_experience=80
#endif
#ifdef NORMAL
max_experience=90
#endif
#ifdef HARD
max_experience=100
#endif
max_hitpoints=73
unrenamable=yes
[modifications]
{TRAIT_LOYAL}
@ -3589,6 +3581,17 @@ And the tongue of fire begets ashen repose.</i>"
name=claws
defense_weight=0.2
[/effect]
[effect]
apply_to=new_advancement
replace=no
{AMLA_OPTION_DRAGON_MELEE}
{AMLA_OPTION_DRAGON_CARAPACE}
{AMLA_OPTION_DRAGON_FLIGHT}
{AMLA_OPTION_DRAGON_SOUL_EATER1}
{AMLA_OPTION_DRAGON_SOUL_EATER2}
{AMLA_OPTION_DRAGON_SOUL_EATER3}
[/effect]
[/object]
[delay]

View file

@ -149,6 +149,11 @@
[/side]
{STARTING_VILLAGES 1 15}
# ability macros
{DID_SOUL_EATER1}
{DID_SOUL_EATER2}
{DID_SOUL_EATER3}
[event]
name=prestart

View file

@ -99,6 +99,32 @@
image="units/apprentice-necromancer.png:50"
[/frame]
[/attack_anim]
[attack_anim]
[filter_attack]
name=corpse launch
[/filter_attack]
{MISSILE_FRAME_SHADOW_WAVE}
start_time=-675
[frame]
image="units/apprentice-necromancer-magic-[1~2].png:75"
[/frame]
[frame]
image="units/apprentice-necromancer-magic-3.png"
halo=halo/undead/black-magic-[1~5].png:[75*4,50]
[/frame]
[frame]
image="units/apprentice-necromancer-magic-3.png:200"
[/frame]
{SOUND:HIT_AND_MISS magic-dark.ogg magic-dark-miss.ogg -120}
[frame]
image="units/apprentice-necromancer-magic-[2~1].png:50"
[/frame]
[frame]
image="units/apprentice-necromancer.png:50"
[/frame]
[/attack_anim]
[attack_anim]
[filter_attack]
name=short sword

View file

@ -28,9 +28,6 @@
range=melee
damage=5
number=3
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
[/attack]
[attack]
name=chill wave
@ -103,6 +100,32 @@
image="units/dark-mage.png:50"
[/frame]
[/attack_anim]
[attack_anim]
[filter_attack]
name=corpse launch
[/filter_attack]
{MISSILE_FRAME_SHADOW_WAVE}
start_time=-675
[frame]
image="units/dark-mage-magic-[1~2].png:75"
[/frame]
[frame]
image="units/dark-mage-magic-3.png"
halo=halo/undead/black-magic-[1~5].png:[75*4,50]
[/frame]
[frame]
image="units/dark-mage-magic-3.png:250"
[/frame]
{SOUND:HIT_AND_MISS magic-dark.ogg magic-dark-miss.ogg -50}
[frame]
image="units/dark-mage-magic-[2~1].png:50"
[/frame]
[frame]
image="units/dark-mage.png:50"
[/frame]
[/attack_anim]
[attack_anim]
[filter_attack]
name=short sword

View file

@ -0,0 +1,21 @@
#textdomain wesnoth-did
[unit_type]
id=Ghast DiD
[base_unit]
id=Ghast
[/base_unit]
advances_to=null
experience=90
hide_help=yes
do_not_list=yes
{AMLA_OPTION_GHOUL_MELEE}
{AMLA_OPTION_GHOUL_RESIST}
{AMLA_OPTION_CANNIBALIZE1}
{AMLA_OPTION_CANNIBALIZE2}
{AMLA_OPTION_DEATH_CLOUD}
{AMLA_DEFAULT}
{DID_DEATH_CLOUD}
[/unit_type]

View file

@ -0,0 +1,11 @@
#textdomain wesnoth-did
# Same as normal, except advances to Necrophage DiD
[unit_type]
id=Ghoul DiD
[base_unit]
id=Ghoul
[/base_unit]
advances_to=Necrophage DiD
hide_help=yes
do_not_list=yes
[/unit_type]

View file

@ -0,0 +1,517 @@
#textdomain wesnoth-did
#define MAL_KESHAR_ADVANCEMENT HP_INCREMENT XP_INCREMENT_E XP_INCREMENT_N XP_INCREMENT_H EFFECT_WML VARIATION_NAME
[advancement]
max_times=-1
always_display=yes
[effect]
apply_to=hitpoints
increase_total={HP_INCREMENT}
increase={HP_INCREMENT}
heal_full=no
[/effect]
#ifdef EASY
[effect]
apply_to=max_experience
increase={XP_INCREMENT_E}
[/effect]
#endif
#ifdef NORMAL
[effect]
apply_to=max_experience
increase={XP_INCREMENT_N}
[/effect]
#endif
#ifdef HARD
[effect]
apply_to=max_experience
increase={XP_INCREMENT_H}
[/effect]
#endif
[effect]
apply_to=variation
name={VARIATION_NAME}
[/effect]
{EFFECT_WML}
[/advancement]
#enddef
############## LICH ADVANCEMENTS ##############
#define LICH_MELEE VARIANT_NAME
{MAL_KESHAR_ADVANCEMENT 4 14 17 20 (
id=lich_melee
description= _ "+1 melee damage"
image=attacks/touch-undead.png
[effect]
apply_to=attack
name=touch
increase_damage=1
[/effect]
) {VARIANT_NAME}}
#enddef
#define LICH_RANGED VARIANT_NAME
{MAL_KESHAR_ADVANCEMENT 2 22 26 30 (
id=lich_ranged
description= _ "+1 ranged damage"
image=attacks/dark-missile.png
[effect]
apply_to=attack
range=ranged
increase_damage=1
[/effect]
) {VARIANT_NAME}}
#enddef
#define LICH_MOVEMENT VARIANT_NAME
{MAL_KESHAR_ADVANCEMENT 3 17 21 25 (
id=lich_movement_melee
description= _ "+1 movement"
image=icons/sandals.png
[effect]
apply_to=movement
increase=1
[/effect]
) {VARIANT_NAME}}
#enddef
############## ANCIENT LICH ABILITIES ##############
#define ANCIENT_LICH_MALICE VARIANT_NAME
{MAL_KESHAR_ADVANCEMENT 0 50 55 60 (
id=ancient_lich_malice
description= _ "Nearby undead units gain 20% damage"
image=attacks/wail.png
[effect]
apply_to=new_ability
[abilities]
{ABILITY_MALICE1}
[/abilities]
[/effect]
) {VARIANT_NAME}}
#enddef
#define ANCIENT_LICH_RESIST VARIANT_NAME
{MAL_KESHAR_ADVANCEMENT 0 70 75 80 (
id=ancient_lich_resist
description= _ "Gains +10% resistance to blade, impact, and pierce"
image=icons/potion_red_medium.png
[effect]
apply_to=resistance
[resistance]
blade=-10
impact=-10
pierce=-10
[/resistance]
[/effect]
) {VARIANT_NAME}}
#enddef
#define ANCIENT_LICH_NOVA VARIANT_NAME
{MAL_KESHAR_ADVANCEMENT 2 0 0 0 (
id=ancient_lich_nova
description= _ "Chill tempest gains area of effect damage"
image=attacks/iceball.png
[effect]
apply_to=attack
name=chill tempest
[set_specials]
{WEAPON_SPECIAL_MAGICAL}
{WEAPON_SPECIAL_FROST_NOVA}
[/set_specials]
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) {VARIANT_NAME}}
#enddef
#define ANCIENT_LICH_SPELLBIND VARIANT_NAME
{MAL_KESHAR_ADVANCEMENT 4 0 0 0 (
id=ancient_lich_spellbind
description= _ "Shadow wave reduces incoming magic damage"
image=attacks/dark-missile.png
[effect]
apply_to=attack
name=shadow wave
[set_specials]
{WEAPON_SPECIAL_MAGICAL}
{WEAPON_SPECIAL_SPELLBIND}
[/set_specials]
[/effect]
[effect]
apply_to=attack
name=shadow wave
increase_damage=1
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) {VARIANT_NAME}}
#enddef
#define ANCIENT_LICH_REND VARIANT_NAME
{MAL_KESHAR_ADVANCEMENT 5 0 0 0 (
id=ancient_lich_blood
description= _ "Drain HP from nearby enemies, but lose HP every turn"
image=attacks/curse.png
[effect]
apply_to=new_ability
[abilities]
{ABILITY_SOUL_REND}
[/abilities]
[/effect]
[effect]
apply_to=attack
name=touch
[set_specials]
{WEAPON_SPECIAL_REAP}
[/set_specials]
[/effect]
[effect]
apply_to=attack
name=touch
increase_damage=1
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) {VARIANT_NAME}}
#enddef
#define MAL_KESHAR_LICH_BASE
hitpoints=55
movement=5
#ifdef EASY
experience=37
#endif
#ifdef NORMAL
experience=41
#endif
#ifdef HARD
experience=45
#endif
advances_to=null
[attack]
name=touch
description=_"touch"
icon=attacks/touch-undead.png
type=arcane
range=melee
damage=7
number=3
[specials]
{WEAPON_SPECIAL_DRAIN}
[/specials]
[/attack]
[attack]
name=chill tempest
description=_"chill tempest"
type=cold
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
range=ranged
damage=11
number=3
icon=attacks/iceball.png
[/attack]
[attack]
name=shadow wave
description=_"shadow wave"
type=arcane
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
range=ranged
damage=9
number=3
icon=attacks/dark-missile.png
[/attack]
{DID_FROST_NOVA}
{DID_SOUL_REND}
{DID_SHADOW_VEIL_HANDLER}
#enddef
#define MAL_KESHAR_ANCIENT_LICH_BASE
name= _ "Ancient Lich"
image="units/undead-necromancers/ancient-lich.png"
hitpoints=70
movement=5
#ifdef EASY
experience=90
#endif
#ifdef NORMAL
experience=95
#endif
#ifdef HARD
experience=100
#endif
level=4
cost=100
usage=mixed fighter
description= _ "A lich that accrues enough power over its newfound immortal lifespan becomes one who can stain souls with despair and sow ruin across the world. Invariably in command of a nigh-limitless horde of risen warriors and undead monsters, a lich of this order has a mastery of dark sorcery that can bring dread to the most storied magi of human and elven kind. Such a figure usually marks a dark and bloody chapter in history, and in those times of need, it is only through the tireless efforts of the most valiant heroes that the rise of an Ancient Lich has not led to the shadows ruling the world for the rest of time."
{DEFENSE_ANIM "units/undead-necromancers/ancient-lich-defend.png" "units/undead-necromancers/ancient-lich.png" {SOUND_LIST:LICH_HIT} }
[attack]
name=touch
description=_"touch"
icon=attacks/touch-undead.png
type=arcane
range=melee
damage=7
number=4
[specials]
{WEAPON_SPECIAL_DRAIN}
[/specials]
[/attack]
[attack]
name=chill tempest
description=_"chill tempest"
type=cold
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
range=ranged
damage=11
number=5
icon=attacks/iceball.png
[/attack]
[attack]
name=shadow wave
description=_"shadow wave"
type=arcane
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
range=ranged
damage=8
number=5
icon=attacks/dark-missile.png
[/attack]
[idle_anim]
{STANDARD_IDLE_FILTER}
start_time=0
[frame]
duration=2310
image="units/undead-necromancers/ancient-lich.png"
halo=halo/undead/idle-flash-[1~21].png
halo_x=6~0,0
halo_y=-6~0,0
[/frame]
[/idle_anim]
[recruiting_anim]
[filter_second]
race=undead
[/filter_second]
start_time=-300
[frame]
image="units/undead-necromancers/ancient-lich-magic-[1,2].png:75"
[/frame]
[frame]
image="units/undead-necromancers/ancient-lich-magic-3.png"
halo=halo/undead/black-magic-[1~5].png:[75*4,50]
[/frame]
sound_start_time=-75
[sound_frame]
sound=magic-dark-big.ogg
[/sound_frame]
[frame]
image="units/undead-necromancers/ancient-lich-magic-[2,1].png:50"
[/frame]
[frame]
image="units/undead-necromancers/ancient-lich.png:1"
[/frame]
[/recruiting_anim]
[attack_anim]
[filter_attack]
name=chill tempest
[/filter_attack]
offset=0
{MISSILE_FRAME_CHILL_TEMPEST 0 -15}
start_time=-355
[frame]
image="units/undead-necromancers/ancient-lich-magic-[1,2].png:75"
[/frame]
[frame]
image="units/undead-necromancers/ancient-lich-magic-3.png"
halo=halo/undead/black-magic-[1~5].png:[75*4,50]
[/frame]
{SOUND:HIT_AND_MISS magic-dark-big.ogg magic-dark-big-miss.ogg -150}
[frame]
image="units/undead-necromancers/ancient-lich-magic-[2,1].png:50"
[/frame]
[/attack_anim]
[attack_anim]
[filter_attack]
name=shadow wave
[/filter_attack]
{MISSILE_FRAME_SHADOW_WAVE}
start_time=-675
[frame]
image="units/undead-necromancers/ancient-lich-magic-[1,2].png:75"
[/frame]
[frame]
image="units/undead-necromancers/ancient-lich-magic-3.png"
halo=halo/undead/black-magic-[1~5].png:[75*4,50]
[/frame]
[frame]
image="units/undead-necromancers/ancient-lich-magic-3.png:200"
[/frame]
{SOUND:HIT_AND_MISS magic-dark-big.ogg magic-dark-big-miss.ogg -50}
[frame]
image="units/undead-necromancers/ancient-lich-magic-[2,1].png:50"
[/frame]
[frame]
image="units/undead-necromancers/ancient-lich.png:50"
[/frame]
[/attack_anim]
[attack_anim]
[filter_attack]
name=touch
[/filter_attack]
start_time=-250
[frame]
image="units/undead-necromancers/ancient-lich.png:50"
[/frame]
[frame]
image="units/undead-necromancers/ancient-lich-melee-[1~2].png:[100,200]"
[/frame]
{SOUND:HIT_AND_MISS wail-sml.wav {SOUND_LIST:MISS} -100}
[frame]
image="units/undead-necromancers/ancient-lich-magic-1.png:75"
[/frame]
[frame]
image="units/undead-necromancers/ancient-lich.png:75"
[/frame]
[/attack_anim]
#enddef
[unit_type]
id=Mal Keshar
[base_unit]
id=Lich
[/base_unit]
{MAL_KESHAR_LICH_BASE}
########## LEVEL 3 ##########
[variation]
{MAL_KESHAR_LICH_BASE}
hide_help=yes
variation_id=MKL1
inherit=yes
{LICH_MELEE MKL2}
{LICH_RANGED MKL2}
[/variation]
[variation]
{MAL_KESHAR_LICH_BASE}
hide_help=yes
variation_id=MKL2
inherit=yes
{LICH_MELEE MKL3MELEE}
{LICH_RANGED MKL3RANGED}
[/variation]
[variation]
{MAL_KESHAR_LICH_BASE}
hide_help=yes
variation_id=MKL3MELEE
inherit=yes
{LICH_RANGED MKL4}
{LICH_MOVEMENT MKL4}
[/variation]
[variation]
{MAL_KESHAR_LICH_BASE}
hide_help=yes
variation_id=MKL3RANGED
inherit=yes
{LICH_MELEE MKL4}
{LICH_MOVEMENT MKL4}
[/variation]
########## LEVEL 4 ##########
[variation]
{MAL_KESHAR_ANCIENT_LICH_BASE}
hide_help=yes
variation_id=MKL4
inherit=yes
{ANCIENT_LICH_MALICE MKL4MAL}
{LICH_MELEE MKL4DMG}
{LICH_RANGED MKL4DMG}
{LICH_MOVEMENT MKL4MVT}
[/variation]
[variation]
{MAL_KESHAR_ANCIENT_LICH_BASE}
hide_help=yes
variation_id=MKL4MAL
inherit=yes
{LICH_MELEE MKL5}
{LICH_RANGED MKL5}
{LICH_MOVEMENT MKL5}
{ANCIENT_LICH_RESIST MKL5}
[/variation]
[variation]
{MAL_KESHAR_ANCIENT_LICH_BASE}
hide_help=yes
variation_id=MKL4DMG
inherit=yes
{ANCIENT_LICH_MALICE MKL5}
{LICH_MELEE MKL5}
{LICH_RANGED MKL5}
{LICH_MOVEMENT MKL5}
{ANCIENT_LICH_RESIST MKL5}
[/variation]
[variation]
{MAL_KESHAR_ANCIENT_LICH_BASE}
hide_help=yes
variation_id=MKL4MVT
inherit=yes
{ANCIENT_LICH_MALICE MKL5}
{LICH_MELEE MKL5}
{LICH_RANGED MKL5}
{ANCIENT_LICH_RESIST MKL5}
[/variation]
[variation]
{MAL_KESHAR_ANCIENT_LICH_BASE}
hide_help=yes
variation_id=MKL5
inherit=yes
{ANCIENT_LICH_NOVA MKL6}
{ANCIENT_LICH_SPELLBIND MKL6}
{ANCIENT_LICH_REND MKL6}
[/variation]
[variation]
{MAL_KESHAR_ANCIENT_LICH_BASE}
hide_help=yes
variation_id=MKL6
inherit=yes
{AMLA_MAL_KESHAR}
[/variation]
[/unit_type]
#undef MAL_KESHAR_ADVANCEMENT
#undef LICH_MELEE
#undef LICH_RANGED
#undef LICH_MOVEMENT
#undef ANCIENT_LICH_MALICE
#undef ANCIENT_LICH_RESIST
#undef ANCIENT_LICH_NOVA
#undef ANCIENT_LICH_SPELLBIND
#undef ANCIENT_LICH_REND
#undef MAL_KESHAR_LICH_BASE
#undef MAL_KESHAR_ANCIENT_LICH_BASE

View file

@ -0,0 +1,748 @@
#textdomain wesnoth-did
#define MALIN_ADVANCEMENT HP_INCREMENT XP_INCREMENT_E XP_INCREMENT_N XP_INCREMENT_H EFFECT_WML VARIATION_NAME
[advancement]
max_times=-1
always_display=yes
[effect]
apply_to=hitpoints
increase_total={HP_INCREMENT}
increase={HP_INCREMENT}
heal_full=no
[/effect]
#ifdef EASY
[effect]
apply_to=max_experience
increase={XP_INCREMENT_E}
[/effect]
#endif
#ifdef NORMAL
[effect]
apply_to=max_experience
increase={XP_INCREMENT_N}
[/effect]
#endif
#ifdef HARD
[effect]
apply_to=max_experience
increase={XP_INCREMENT_H}
[/effect]
#endif
[effect]
apply_to=variation
name={VARIATION_NAME}
[/effect]
{EFFECT_WML}
[/advancement]
#enddef
#define MALIN_ADVANCE HP_INCREMENT XP_INCREMENT_E XP_INCREMENT_N XP_INCREMENT_H EFFECT_WML TYPE_NAME
[advancement]
max_times=-1
always_display=yes
[effect]
apply_to=hitpoints
increase_total={HP_INCREMENT}
increase={HP_INCREMENT}
heal_full=no
[/effect]
#ifdef EASY
[effect]
apply_to=max_experience
increase={XP_INCREMENT_E}
[/effect]
#endif
#ifdef NORMAL
[effect]
apply_to=max_experience
increase={XP_INCREMENT_N}
[/effect]
#endif
#ifdef HARD
[effect]
apply_to=max_experience
increase={XP_INCREMENT_H}
[/effect]
#endif
[effect]
apply_to=type
name={TYPE_NAME}
[/effect]
{EFFECT_WML}
[/advancement]
#enddef
#define AUTO_ADVANCE HP_INCREMENT EXP_E EXP_N EXP_H VARIATION_NAME
[advancement]
max_times=-1
always_display=1
description= _ "Increased hitpoints"
image=icons/potion_red_medium.png
[effect]
apply_to=hitpoints
increase_total={HP_INCREMENT}
increase={HP_INCREMENT}
heal_full=no
[/effect]
[effect]
apply_to=variation
name={VARIATION_NAME}
[/effect]
#ifdef EASY
[effect]
apply_to=max_experience
increase={EXP_E}
[/effect]
#endif
#ifdef NORMAL
[effect]
apply_to=max_experience
increase={EXP_N}
[/effect]
#endif
#ifdef HARD
[effect]
apply_to=max_experience
increase={EXP_H}
[/effect]
#endif
[/advancement]
#enddef
############## LEVEL 1 ADVANCEMENTS ##############
#define AM_MELEE VARIANT_NAME
{MALIN_ADVANCEMENT 2 11 13 15 (
id=am_melee
description= _ "+1 melee damage"
image=attacks/sword-human-short.png
[effect]
apply_to=attack
range=melee
increase_damage=1
[/effect]
) {VARIANT_NAME}}
#enddef
#define AM_RANGED VARIANT_NAME
{MALIN_ADVANCEMENT 2 8 10 12 (
id=am_ranged
description= _ "+1 ranged damage"
image=attacks/mud-glob.png
[effect]
apply_to=attack
range=ranged
increase_damage=1
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_MELEE_MAGICAL VARIANT_NAME
{MALIN_ADVANCEMENT 0 16 19 22 (
id=malin_melee_magical
description= _ "Malins sword gains the magical special"
exclude_amla=malin_melee_magical
image=attacks/magic-missile.png
[effect]
apply_to=attack
range=melee
[set_specials]
{WEAPON_SPECIAL_MAGICAL}
mode=append
[/set_specials]
[/effect]
) {VARIANT_NAME}}
#enddef
#define AM_MELEE_ADVANCE
{MALIN_ADVANCE 2 10 12 14 (
id=am_melee_advance
description= _ "+1 melee damage"
image=attacks/sword-human-short.png
[effect]
apply_to=attack
range=melee
increase_damage=1
[/effect]
[effect]
apply_to=max_experience
set=15
[/effect]
) MalinNecromancer}
#enddef
#define AM_RANGED_ADVANCE
{MALIN_ADVANCE 2 8 10 12 (
id=am_ranged_advance
description= _ "+1 ranged damage"
image=attacks/mud-glob.png
[effect]
apply_to=attack
range=ranged
increase_damage=1
[/effect]
[effect]
apply_to=max_experience
increase=-100%
[/effect]
[effect]
apply_to=max_experience
set=15
[/effect]
) MalinNecromancer}
#enddef
############## LEVEL 2 ADVANCEMENTS ##############
#define MALIN_MELEE_PLAGUE VARIANT_NAME
{MALIN_ADVANCEMENT 4 32 35 38 (
id=malin_melee_plague
description= _ "Malins sword gains the plague special"
exclude_amla=malin_melee_plague
image=attacks/staff-necromantic.png
[effect]
apply_to=attack
range=melee
[set_specials]
{WEAPON_SPECIAL_PLAGUE}
mode=append
[/set_specials]
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_RANGED VARIANT_NAME
{MALIN_ADVANCEMENT -3 45 50 55 (
id=malin_ranged
description= _ "+2 ranged damage, but -10% arcane resistance"
image=attacks/iceball.png
[effect]
apply_to=attack
range=ranged
increase_damage=2
[/effect]
[effect]
apply_to=resistance
[resistance]
arcane=10
[/resistance]
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_MELEE_VITALIZE VARIANT_NAME
{MALIN_ADVANCEMENT 2 39 43 47 (
id=malin_melee_vitalize
description= _ "Malins melee attack heals him every hit"
exclude_amla=malin_melee_vitalize
image=attacks/baneblade.png
[effect]
apply_to=attack
range=melee
[set_specials]
{WEAPON_SPECIAL_VITALIZE1}
mode=append
[/set_specials]
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_RANGED_IMPETUITY VARIANT_NAME
{MALIN_ADVANCEMENT 2 36 40 44 (
id=malin_ranged_impetuity
description= _ "Chill tempest gains the impetuity special"
exclude_amla=malin_ranged_impetuity
image=attacks/lightning.png
[effect]
apply_to=attack
name=chill wave
[set_specials]
{WEAPON_SPECIAL_IMPETUITY}
mode=append
[/set_specials]
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_CORPSE_LAUNCHER VARIANT_NAME
{MALIN_ADVANCEMENT 0 36 40 44 (
id=malin_corpse_launcher
description= _ "Malin gains a special corpse launching attack"
require_amla=malin_melee_plague
exclude_amla=malin_corpse_launcher
image=attacks/dragonstaff.png
[effect]
apply_to=new_attack
name=corpse launch
description= _"corpse launch"
type=impact
range=ranged
damage=0
number=1
[specials]
{WEAPON_SPECIAL_CORPSE_LAUNCHER}
{WEAPON_SPECIAL_MAGICAL}
[/specials]
icon=attacks/dragonstaff.png
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_MELEE_ADVANCE
{MALIN_ADVANCE 3 28 32 36 (
id=malin_melee_advance
description= _ "+2 melee damage"
image=attacks/sword-human-short.png
[effect]
apply_to=attack
range=melee
increase_damage=2
[/effect]
[effect]
apply_to=max_experience
increase=-100%
[/effect]
[effect]
apply_to=max_experience
increase=19
[/effect]
) MalinDarkMage}
#enddef
#define MALIN_RANGED_ADVANCE
{MALIN_ADVANCE -2 30 33 36 (
id=malin_ranged_advance
description= _ "+2 ranged damage, but -10% arcane resistance"
image=attacks/iceball.png
[effect]
apply_to=attack
range=ranged
increase_damage=2
[/effect]
[effect]
apply_to=resistance
[resistance]
arcane=10
[/resistance]
[/effect]
[effect]
apply_to=max_experience
set=20
[/effect]
) MalinDarkMage}
#enddef
#define MALIN_RESIST_ADVANCE
{MALIN_ADVANCE 5 40 44 48 (
id=malin_resist_advance
description= _ "Malin gains +10% resistance to blade and pierce, but loses -10% resistance to arcane"
image=icons/rusty_targ.png
[effect]
apply_to=resistance
[resistance]
blade=-10
pierce=-10
arcane=10
[/resistance]
[/effect]
[effect]
apply_to=max_experience
set=20
[/effect]
) MalinDarkMage}
#enddef
############## LEVEL 3 ADVANCEMENTS ##############
#define MALIN_RESIST VARIANT_NAME
{MALIN_ADVANCE 3 40 44 48 (
id=malin_resist
description= _ "Malin gains +10% resistance to blade and pierce, but loses -10% resistance to arcane"
image=icons/rusty_targ.png
[effect]
apply_to=resistance
[resistance]
blade=-10
pierce=-10
arcane=10
[/resistance]
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_MELEE_VITALIZE2 VARIANT_NAME
{MALIN_ADVANCEMENT 2 46 50 54 (
id=malin_melee_vitalize2
description= _ "Improves the vitalize special"
exclude_amla=malin_melee_vitalize2
require_amla=malin_melee_vitalize
image=attacks/baneblade.png
[effect]
apply_to=attack
range=melee
remove_specials=did_vitalize1
[/effect]
[effect]
apply_to=attack
range=melee
[set_specials]
{WEAPON_SPECIAL_VITALIZE2}
mode=append
[/set_specials]
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_CORPSE_MASTER VARIANT_NAME
{MALIN_ADVANCEMENT 4 38 42 46 (
id=malin_corpse_master
description= _ "Gains the corpse master ability"
image=attacks/touch-zombie.png
require_amla=malin_melee_plague
exclude_amla=malin_corpse_master
[effect]
apply_to=new_ability
[abilities]
{ABILITY_CORPSE_MASTER}
[/abilities]
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_RANGED_STRIKES VARIANT_NAME
{MALIN_ADVANCEMENT -12 0 0 0 (
id=malin_ranged_strikes
description= _ "+1 ranged strikes, but -20% arcane resistance and -12 hp"
image=attacks/wail.png
[effect]
apply_to=attack
range=ranged
increase_attacks=1
[/effect]
[effect]
apply_to=resistance
[resistance]
arcane=20
[/resistance]
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_RANGED_FERVOR VARIANT_NAME
{MALIN_ADVANCEMENT 4 0 0 0 (
id=malin_ranged_fervor
description= _ "Shadow wave gains the fervor special and -10% arcane resistance"
image=attacks/dark-missile.png
[effect]
apply_to=attack
name=shadow wave
[set_specials]
{WEAPON_SPECIAL_FERVOR}
mode=append
[/set_specials]
[/effect]
[effect]
apply_to=resistance
[resistance]
arcane=10
[/resistance]
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) {VARIANT_NAME}}
#enddef
#define MALIN_CONSUMPTION VARIANT_NAME
{MALIN_ADVANCEMENT 3 0 0 0 (
id=malin_consumption
description= _ "Gains the consumption ability"
image=attacks/curse.png
[effect]
apply_to=new_ability
[abilities]
{ABILITY_CONSUMPTION}
[/abilities]
[/effect]
[effect]
apply_to=resistance
[resistance]
arcane=10
[/resistance]
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) {VARIANT_NAME}}
#enddef
##################################################
#define APPRENTICE_MAGE_BASE
#ifdef EASY
experience=17
#endif
#ifdef NORMAL
experience=20
#endif
#ifdef HARD
experience=23
#endif
hitpoints=35
advances_to=null
[attack]
name=short sword
#textdomain wesnoth-units
description=_ "short sword"
#textdomain wesnoth-did
icon=attacks/sword-human-short.png
type=blade
range=melee
damage=4
number=3
[/attack]
[attack]
name=magic blast
description=_ "magic blast"
icon="attacks/mud-glob.png" # dark missile is next level up
type=impact
range=ranged
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
damage=5
number=2
[/attack]
#enddef
#define APPRENTICE_NECROMANCER_BASE
hitpoints=40
advances_to=null
[attack]
name=short sword
#textdomain wesnoth-units
description=_ "short sword"
icon=attacks/sword-human-short.png
type=blade
range=melee
damage=5
number=3
[/attack]
[attack]
name=chill wave
description=_"chill wave"
type=cold
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
range=ranged
damage=11
number=2
icon=attacks/iceball.png
[/attack]
[attack]
name=shadow wave
description=_"shadow wave"
#textdomain wesnoth-did
type=arcane
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
range=ranged
damage=8
number=2
icon=attacks/dark-missile.png
[/attack]
{DID_CORPSE_LAUNCH}
#enddef
#define DARK_MAGE_BASE
hitpoints=45
advances_to=null
[attack]
name=short sword
#textdomain wesnoth-units
description=_ "short sword"
icon=attacks/sword-human-short.png
type=blade
range=melee
damage=4
number=3
[/attack]
[attack]
name=chill wave
description=_"chill wave"
type=cold
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
range=ranged
damage=13
number=2
icon=attacks/iceball.png
[/attack]
[attack]
name=shadow wave
description=_"shadow wave"
#textdomain wesnoth-did
type=arcane
[specials]
{WEAPON_SPECIAL_MAGICAL}
[/specials]
range=ranged
damage=10
number=2
icon=attacks/dark-missile.png
[/attack]
{DID_CONSUMPTION}
{DID_CORPSE_LAUNCH}
#enddef
[unit_type]
id=Malin Keshar
{APPRENTICE_MAGE_BASE}
[base_unit]
id=Apprentice Mage
[/base_unit]
[variation]
{APPRENTICE_MAGE_BASE}
hide_help=yes
variation_id=AM1
inherit=yes
{AM_MELEE AM2}
{AM_RANGED AM2}
[/variation]
[variation]
{APPRENTICE_MAGE_BASE}
hide_help=yes
variation_id=AM2
inherit=yes
{AM_MELEE AM3}
{AM_RANGED AM3}
{MALIN_MELEE_MAGICAL AM3}
[/variation]
[variation]
{APPRENTICE_MAGE_BASE}
hide_help=yes
variation_id=AM3
inherit=yes
{AM_MELEE_ADVANCE}
{AM_RANGED_ADVANCE}
[/variation]
[/unit_type]
[unit_type]
id=MalinNecromancer
{APPRENTICE_NECROMANCER_BASE}
[base_unit]
id=Apprentice Necromancer
[/base_unit]
experience=0
{AUTO_ADVANCE 2 26 29 32 AN1}
[variation]
{APPRENTICE_NECROMANCER_BASE}
hide_help=yes
variation_id=AN1
inherit=yes
{AM_MELEE AN2}
{MALIN_RANGED AN2}
{MALIN_RANGED_IMPETUITY AN2}
{MALIN_MELEE_MAGICAL AN2}
{MALIN_MELEE_PLAGUE AN2}
[/variation]
[variation]
{APPRENTICE_NECROMANCER_BASE}
hide_help=yes
variation_id=AN2
inherit=yes
{MALIN_RANGED_IMPETUITY AN3}
{MALIN_CORPSE_LAUNCHER AN3}
{MALIN_MELEE_MAGICAL AN3}
{MALIN_MELEE_PLAGUE AN3}
{MALIN_MELEE_VITALIZE AN3}
[/variation]
[variation]
{APPRENTICE_NECROMANCER_BASE}
hide_help=yes
variation_id=AN3
inherit=yes
{MALIN_MELEE_ADVANCE}
{MALIN_RANGED_ADVANCE}
{MALIN_RESIST_ADVANCE}
[/variation]
[/unit_type]
[unit_type]
id=MalinDarkMage
{DARK_MAGE_BASE}
[base_unit]
id=Dark Mage
[/base_unit]
experience=0
{AUTO_ADVANCE 3 41 45 49 DM1}
[variation]
{DARK_MAGE_BASE}
hide_help=yes
variation_id=DM1
inherit=yes
{MALIN_RANGED DM2}
{MALIN_RESIST DM2}
{MALIN_RANGED_IMPETUITY DM2}
{MALIN_CORPSE_LAUNCHER DM2}
{MALIN_CORPSE_MASTER DM2}
{MALIN_MELEE_VITALIZE DM2}
{MALIN_MELEE_VITALIZE2 DM2}
[/variation]
[variation]
{DARK_MAGE_BASE}
hide_help=yes
variation_id=DM2
inherit=yes
{MALIN_RANGED_STRIKES DM3}
{MALIN_RANGED_FERVOR DM3}
{MALIN_CONSUMPTION DM3}
[/variation]
[variation]
{DARK_MAGE_BASE}
hide_help=yes
variation_id=DM3
inherit=yes
{AMLA_MALIN_KESHAR}
[/variation]
[/unit_type]
#undef MALIN_ADVANCEMENT
#undef MALIN_ADVANCE
#undef AUTO_ADVANCE
#undef AM_MELEE
#undef AM_RANGED
#undef MALIN_MELEE_MAGICAL
#undef AM_MELEE_ADVANCE
#undef AM_RANGED_ADVANCE
#undef MALIN_RANGED
#undef MALIN_MELEE_VITALIZE
#undef MALIN_MELEE_PLAGUE
#undef MALIN_RANGED_FERVOR
#undef MALIN_RANGED_IMPETUITY
#undef MALIN_MELEE_ADVANCE
#undef MALIN_RANGED_ADVANCE
#undef MALIN_RESIST_ADVANCE
#undef MALIN_RESIST
#undef MALIN_MELEE_VITALIZE2
#undef MALIN_CORPSE_MASTER
#undef MALIN_CORPSE_LAUNCHER
#undef MALIN_RANGED_STRIKES
#undef MALIN_CONSUMPTION
#undef APPRENTICE_MAGE_BASE
#undef APPRENTICE_NECROMANCER_BASE
#undef DARK_MAGE_BASE

View file

@ -0,0 +1,11 @@
#textdomain wesnoth-did
# Same as normal, except advances to Ghast DiD
[unit_type]
id=Necrophage DiD
[base_unit]
id=Necrophage
[/base_unit]
advances_to=Ghast DiD
hide_help=yes
do_not_list=yes
[/unit_type]

View file

@ -0,0 +1,546 @@
#textdomain wesnoth-did
#define GHOST_ADVANCEMENT HP_INCREMENT XP_INCREMENT_E XP_INCREMENT_N XP_INCREMENT_H EFFECT_WML VARIATION_NAME
[advancement]
max_times=-1
always_display=yes
[effect]
apply_to=hitpoints
increase_total={HP_INCREMENT}
increase={HP_INCREMENT}
heal_full=no
[/effect]
#ifdef EASY
[effect]
apply_to=max_experience
increase={XP_INCREMENT_E}
[/effect]
#endif
#ifdef NORMAL
[effect]
apply_to=max_experience
increase={XP_INCREMENT_N}
[/effect]
#endif
#ifdef HARD
[effect]
apply_to=max_experience
increase={XP_INCREMENT_H}
[/effect]
#endif
[effect]
apply_to=variation
name={VARIATION_NAME}
[/effect]
{EFFECT_WML}
[/advancement]
#enddef
#define GHOST_ADVANCE HP_INCREMENT XP_INCREMENT_E XP_INCREMENT_N XP_INCREMENT_H EFFECT_WML TYPE_NAME
[advancement]
max_times=-1
always_display=yes
[effect]
apply_to=hitpoints
increase_total={HP_INCREMENT}
increase={HP_INCREMENT}
heal_full=no
[/effect]
#ifdef EASY
[effect]
apply_to=max_experience
increase={XP_INCREMENT_E}
[/effect]
#endif
#ifdef NORMAL
[effect]
apply_to=max_experience
increase={XP_INCREMENT_N}
[/effect]
#endif
#ifdef HARD
[effect]
apply_to=max_experience
increase={XP_INCREMENT_H}
[/effect]
#endif
[effect]
apply_to=type
name={TYPE_NAME}
[/effect]
{EFFECT_WML}
[/advancement]
#enddef
#define AUTO_ADVANCE VARIATION_NAME
[advancement]
max_times=-1
always_display=1
description= _ "+2 HP"
image=icons/potion_green_small.png
[effect]
apply_to=variation
name={VARIATION_NAME}
[/effect]
[effect]
apply_to=hitpoints
increase_total=2
increase=2
heal_full=no
[/effect]
#ifdef EASY
[effect]
apply_to=max_experience
increase=44
[/effect]
#endif
#ifdef NORMAL
[effect]
apply_to=max_experience
increase=49
[/effect]
#endif
#ifdef HARD
[effect]
apply_to=max_experience
increase=54
[/effect]
#endif
[/advancement]
#enddef
############## GHOST ADVANCEMENTS ##############
#define GHOST_MELEE VARIANT_NAME
{GHOST_ADVANCEMENT 2 10 12 14 (
id=ghost_melee
description= _ "+1 melee damage"
image=attacks/touch-undead.png
[effect]
apply_to=attack
name=touch
increase_damage=1
[/effect]
) {VARIANT_NAME}}
#enddef
#define GHOST_RANGED VARIANT_NAME
{GHOST_ADVANCEMENT 2 10 12 14 (
id=ghost_ranged
description= _ "+1 ranged damage"
image=attacks/wail.png
[effect]
apply_to=attack
range=ranged
increase_damage=1
[/effect]
) {VARIANT_NAME}}
#enddef
#define GHOST_MOVEMENT VARIANT_NAME
{GHOST_ADVANCEMENT 0 12 14 16 (
id=ghost_movement
description= _ "+1 movement"
image=icons/sandals.png
[effect]
apply_to=movement
increase=1
[/effect]
) {VARIANT_NAME}}
#enddef
#define GHOST_MELEE_ADVANCE
{GHOST_ADVANCE 1 10 12 14 (
id=ghost_melee_advance
description= _ "+1 melee damage"
image=attacks/touch-undead.png
[effect]
apply_to=attack
name=touch
increase_damage=1
[/effect]
[effect]
apply_to=max_experience
set=15
[/effect]
) Wight}
#enddef
#define GHOST_RANGED_ADVANCE
{GHOST_ADVANCE 1 10 12 14 (
id=ghost_ranged_advance
description= _ "+1 ranged damage"
image=attacks/wail.png
[effect]
apply_to=attack
range=ranged
increase_damage=1
[/effect]
[effect]
apply_to=max_experience
set=15
[/effect]
) Wight}
#enddef
#define GHOST_MOVE_ADVANCE
{GHOST_ADVANCE 0 12 14 16 (
id=ghost_move_advance
description= _ "+1 movement"
image=icons/sandals.png
[effect]
apply_to=movement
increase=1
[/effect]
[effect]
apply_to=max_experience
set=15
[/effect]
) Wight}
#enddef
############## WRAITH ADVANCEMENTS ##############
#define WRAITH_MELEE VARIANT_NAME
{GHOST_ADVANCEMENT 2 10 12 14 (
id=wraith_melee
description= _ "+1 melee damage"
image=attacks/baneblade.png
[effect]
apply_to=attack
name=baneblade
increase_damage=1
[/effect]
) {VARIANT_NAME}}
#enddef
#define WRAITH_MALEVOLENCE VARIANT_NAME
{GHOST_ADVANCEMENT 1 40 45 50 (
id=wraith_malevolence
description= _ "Wail gains the malevolence special"
image=attacks/wail.png
[effect]
apply_to=attack
name=wail
[set_specials]
{WEAPON_SPECIAL_MALEVOLENCE}
[/set_specials]
[/effect]
) {VARIANT_NAME}}
#enddef
#define WRAITH_HYSTERIA VARIANT_NAME
{GHOST_ADVANCEMENT 4 50 55 60 (
id=wraith_hysteria
description= _ "Wail gains the hysteria special"
image=attacks/wail.png
[effect]
apply_to=attack
name=wail
[set_specials]
{WEAPON_SPECIAL_HYSTERIA}
[/set_specials]
[/effect]
) {VARIANT_NAME}}
#enddef
#define WRAITH_MELEE_ADVANCE
{GHOST_ADVANCE 2 10 12 14 (
id=wraith_melee_advance
description= _ "+1 melee damage"
image=attacks/baneblade.png
[effect]
apply_to=attack
name=baneblade
increase_damage=1
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) Eidolon}
#enddef
#define WRAITH_RANGED_ADVANCE
{GHOST_ADVANCE 2 10 12 14 (
id=wraith_ranged_advance
description= _ "+1 ranged damage"
image=attacks/wail.png
[effect]
apply_to=attack
range=ranged
increase_damage=1
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) Eidolon}
#enddef
#define WRAITH_MALEVOLENCE_ADVANCE
{GHOST_ADVANCE 1 40 45 50 (
id=wraith_malevolence_advance
description= _ "Wail gains the malevolence special"
image=attacks/wail.png
[effect]
apply_to=attack
name=wail
[set_specials]
{WEAPON_SPECIAL_MALEVOLENCE}
[/set_specials]
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) Eidolon}
#enddef
#define WRAITH_HYSTERIA_ADVANCE
{GHOST_ADVANCE 4 50 55 60 (
id=wraith_hysteria_advance
description= _ "Wail gains the hysteria special"
image=attacks/wail.png
[effect]
apply_to=attack
name=wail
[set_specials]
{WEAPON_SPECIAL_HYSTERIA}
[/set_specials]
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) Eidolon}
#enddef
#define WRAITH_RESIST_ADVANCE
{GHOST_ADVANCE 6 40 45 50 (
id=wraith_resist_advance
description= _ "Gains +20% resistance to fire"
image=attacks/fire-blast.png
[effect]
apply_to=resistance
[resistance]
fire=-20
[/resistance]
[/effect]
[effect]
apply_to=max_experience
set=90
[/effect]
) Eidolon}
#enddef
#define GHOST_BASE
name= _ "Spectral Servant"
hitpoints=17
movement=6
#ifdef EASY
experience=14
#endif
#ifdef NORMAL
experience=16
#endif
#ifdef HARD
experience=18
#endif
advances_to=null
[attack]
name=touch
description=_"touch"
icon=attacks/touch-undead.png
type=arcane
range=melee
damage=5
number=3
[specials]
{WEAPON_SPECIAL_DRAIN}
[/specials]
[/attack]
[attack]
name=wail
description=_"wail"
type=cold
range=ranged
damage=4
number=3
[/attack]
#enddef
#define WRAITH_BASE
name= _ "Wight"
hitpoints=22
movement=6
advances_to=null
[attack]
name=baneblade
description=_"baneblade" # wmllint: no spellcheck (until name->id)
type=arcane
range=melee
damage=6
number=4
[specials]
{WEAPON_SPECIAL_DRAIN}
[/specials]
[/attack]
[attack]
name=wail
description=_"wail"
type=cold
range=ranged
damage=4
number=4
[/attack]
#enddef
#define SPECTRE_BASE
name= _ "Eidolon"
hitpoints=27
movement=6
experience=90
advances_to=null
[attack]
name=baneblade
description=_"baneblade" # wmllint: no spellcheck (until name->id)
type=arcane
range=melee
damage=8
number=4
[specials]
{WEAPON_SPECIAL_DRAIN}
[/specials]
[/attack]
[attack]
name=wail
description=_"wail"
type=cold
range=ranged
damage=6
number=4
[/attack]
#enddef
[unit_type]
id=Spectral Servant
{GHOST_BASE}
[base_unit]
id=Ghost
[/base_unit]
[variation]
{GHOST_BASE}
hide_help=yes
variation_id=SS1
inherit=yes
{GHOST_MELEE SS2MELEE}
{GHOST_RANGED SS2RANGED}
[/variation]
[variation]
{GHOST_BASE}
hide_help=yes
variation_id=SS2MELEE
inherit=yes
{GHOST_RANGED_ADVANCE}
{GHOST_MOVE_ADVANCE}
[/variation]
[variation]
{GHOST_BASE}
hide_help=yes
variation_id=SS2RANGED
inherit=yes
{GHOST_MELEE_ADVANCE}
{GHOST_MOVE_ADVANCE}
[/variation]
[/unit_type]
[unit_type]
id=Wight
{WRAITH_BASE}
[base_unit]
id=Wraith
[/base_unit]
experience=0
{AUTO_ADVANCE W0}
[variation]
{WRAITH_BASE}
hide_help=yes
variation_id=W0
inherit=yes
{WRAITH_MALEVOLENCE W1}
{WRAITH_HYSTERIA W1}
{WRAITH_MELEE W1NOABILITY}
{GHOST_RANGED W1NOABILITY}
[/variation]
[variation]
{WRAITH_BASE}
hide_help=yes
variation_id=W1
inherit=yes
{WRAITH_MELEE W2}
{GHOST_RANGED W2}
{GHOST_MOVEMENT W2}
[/variation]
[variation]
{WRAITH_BASE}
hide_help=yes
variation_id=W1NOABILITY
inherit=yes
{WRAITH_MALEVOLENCE W2}
{WRAITH_HYSTERIA W2}
{WRAITH_MELEE W2NOABILITY}
{GHOST_RANGED W2NOABILITY}
{GHOST_MOVEMENT W2NOABILITY}
[/variation]
[variation]
{WRAITH_BASE}
hide_help=yes
variation_id=W2
inherit=yes
{WRAITH_MELEE_ADVANCE}
{WRAITH_RANGED_ADVANCE}
{WRAITH_RESIST_ADVANCE}
[/variation]
[variation]
{WRAITH_BASE}
hide_help=yes
variation_id=W2NOABILITY
inherit=yes
{WRAITH_MELEE_ADVANCE}
{WRAITH_RANGED_ADVANCE}
{WRAITH_MALEVOLENCE_ADVANCE}
{WRAITH_HYSTERIA_ADVANCE}
[/variation]
[/unit_type]
[unit_type]
id=Eidolon
{SPECTRE_BASE}
[base_unit]
id=Spectre
[/base_unit]
{AMLA_EIDOLON}
[/unit_type]
#undef GHOST_ADVANCEMENT
#undef GHOST_ADVANCE
#undef AUTO_ADVANCE
#undef GHOST_MELEE
#undef GHOST_RANGED
#undef GHOST_MOVEMENT
#undef GHOST_MELEE_ADVANCE
#undef GHOST_RANGED_ADVANCE
#undef GHOST_MOVE_ADVANCE
#undef WRAITH_MELEE
#undef WRAITH_MALEVOLENCE
#undef WRAITH_HYSTERIA
#undef WRAITH_MELEE_ADVANCE
#undef WRAITH_RANGED_ADVANCE
#undef WRAITH_MALEVOLENCE_ADVANCE
#undef WRAITH_HYSTERIA_ADVANCE
#undef WRAITH_RESIST_ADVANCE
#undef GHOST_BASE
#undef WRAITH_BASE
#undef SPECTRE_BASE

View file

@ -0,0 +1,973 @@
#textdomain wesnoth-did
############## DRAGON ABILITIES ##############
#define ABILITY_SOUL_EATER1
[dummy]
id=did_soul_eater1
name= _ "soul eater"
name_inactive= _ "soul eater"
description= _ "This unit heals 4 HP whenever it kills an enemy unit."
description_inactive= _ "This unit heals 4 HP whenever it kills an enemy unit."
[/dummy]
#enddef
#define DID_SOUL_EATER1
[event]
id=did_soul_eater_die1
name=die
first_time_only=no
[filter_second]
ability=did_soul_eater1
[/filter_second]
[heal_unit]
[filter]
x,y=$x2,$y2
[/filter]
amount=4
animate=yes
[/heal_unit]
[/event]
#enddef
#define ABILITY_SOUL_EATER2
[dummy]
id=did_soul_eater2
name= _ "soul eater"
name_inactive= _ "soul eater"
description= _ "This unit heals 8 HP whenever it kills an enemy unit."
description_inactive= _ "This unit heals 8 HP whenever it kills an enemy unit."
[/dummy]
#enddef
#define DID_SOUL_EATER2
[event]
id=did_soul_eater_die2
name=die
first_time_only=no
[filter_second]
ability=did_soul_eater2
[/filter_second]
[heal_unit]
[filter]
x,y=$x2,$y2
[/filter]
amount=8
animate=yes
[/heal_unit]
[/event]
#enddef
#define ABILITY_SOUL_EATER3
[damage]
id=did_soul_eater3
name= _ "soul eater"
name_inactive= _ "soul eater"
description= _ "This unit gains 15% damage on offense and heals 12 HP whenever it kills an enemy unit."
description_inactive= _ "This unit gains 15% damage on offense and heals 12 HP whenever it kills an enemy unit."
multiply=1.15
active_on=offense
[/damage]
#enddef
#define DID_SOUL_EATER3
[event]
id=did_soul_eater_die3
name=die
first_time_only=no
[filter_second]
ability=did_soul_eater3
[/filter_second]
[heal_unit]
[filter]
x,y=$x2,$y2
[/filter]
amount=12
animate=yes
[/heal_unit]
[/event]
#enddef
############## LICH ABILITIES ##############
#define ABILITY_MALICE1
[leadership]
id=did_malice1
value=20
cumulative=no
affect_self=no
name= _ "malice"
description= _ "This unit increases the damage of nearby undead units by 20%."
[affect_adjacent]
adjacent=n,ne,se,s,sw,nw
[filter]
race=undead
[/filter]
[/affect_adjacent]
[/leadership]
#enddef
#define ABILITY_MALICE2
[leadership]
id=did_malice2
value=40
cumulative=no
affect_self=no
name= _ "malice"
description= _ "This unit increases the damage of nearby undead units by 40%."
[affect_adjacent]
adjacent=n,ne,se,s,sw,nw
[filter]
race=undead
[/filter]
[/affect_adjacent]
[/leadership]
#enddef
#define ABILITY_SHADOW_VEIL
[dummy]
id=did_shadow_veil
name= _ "shadow veil"
name_inactive= _ "shadow veil"
description= _ "Allied undead units within a 5 hex radius are hidden."
description_inactive= _ "Allied undead units within a 5 hex radius are hidden."
[/dummy]
#enddef
#define ABILITY_SHADOW_VEIL_HELPER
[hides]
id=did_shadow_veil_helper
affect_self=yes
name= _ "veiled"
description= _ "This unit is hidden."
[/hides]
#enddef
#define DID_SHADOW_VEIL_HANDLER
[event]
name=moveto
first_time_only=no
[filter]
side=1
race=undead
[/filter]
[if]
[have_unit]
x,y=$x1,$y1
[filter_location]
radius=5
[and]
[filter]
ability=did_shadow_veil
side=1
[/filter]
[/and]
[/filter_location]
[/have_unit]
[then]
[object]
take_only_once=no
silent=yes
duration=forever
[filter]
x,y=$x1,$y1
[/filter]
[effect]
apply_to=new_ability
[abilities]
{ABILITY_SHADOW_VEIL_HELPER}
[/abilities]
[/effect]
[/object]
[/then]
[else]
[object]
take_only_once=no
silent=yes
duration=forever
[filter]
x,y=$x1,$y1
[/filter]
[effect]
apply_to=remove_ability
[abilities]
{ABILITY_SHADOW_VEIL_HELPER}
[/abilities]
[/effect]
[/object]
[/else]
[/if]
[/event]
#enddef
#define WEAPON_SPECIAL_FROST_NOVA
[dummy]
id=did_frost_nova
name= _ "frost nova"
name_inactive= _ "frost nova"
description= _ "On offense, this attack will additionally deal 70% of its damage in cold damage to all enemies adjacent to the target."
description_inactive= _ "On offense, this attack will additionally deal 70% of its damage in cold damage to all enemies adjacent to the target."
[/dummy]
#enddef
#define DID_FROST_NOVA
[event]
name=attacker_hits
first_time_only=no
[filter_attack]
special_id=did_frost_nova
[/filter_attack]
[store_unit]
[filter]
[filter_adjacent]
x,y=$x2,$y2
is_enemy=no
[/filter_adjacent]
[not]
x,y=$x2,$y2
[/not]
[/filter]
variable=opp
[/store_unit]
{VARIABLE frost_damage $damage_inflicted}
{VARIABLE_OP frost_damage multiply 0.7}
[foreach]
array=opp
[do]
[sound]
name="magic-dark.ogg"
[/sound]
[harm_unit]
[filter]
x,y=$opp[$i].x,$opp[$i].y
[/filter]
fire_event=yes
animate=yes
amount=$frost_damage
damage_type=cold
delay=25
[/harm_unit]
[if]
[have_unit]
x,y=$opp[$i].x,$opp[$i].y
[/have_unit]
[else]
{VARIABLE exp $opp[$i].level}
{VARIABLE_OP exp multiply 8}
{VARIABLE_OP unit.experience add "$(max(4, $exp))"}
{CLEAR_VARIABLE exp}
[unstore_unit]
variable=unit
find_vacant=no
[/unstore_unit]
[/else]
[/if]
[/do]
[/foreach]
{CLEAR_VARIABLE opp}
{CLEAR_VARIABLE frost_damage}
[/event]
#enddef
#define WEAPON_SPECIAL_SPELLBIND
[damage]
id=did_spellbind
name= _ "spell bind"
name_inactive= _ "spell bind"
description= _ "When this attack is used, the damage taken from fire, cold, and arcane attacks will be reduced by 60%."
description_inactive= _ "When this attack is used, the damage taken from fire, cold, and arcane attacks will be reduced by 60%."
[filter_opponent]
[filter_weapon]
type=fire,cold,arcane
[/filter_weapon]
[/filter_opponent]
apply_to=opponent
multiply=0.4
[/damage]
#enddef
#define WEAPON_SPECIAL_REAP
[drains]
id=did_reap
value=70
name= _ "reap"
description= _ "This unit heals for 70% of the damage this attack deals."
[/drains]
#enddef
#define ABILITY_SOUL_REND
[dummy]
id=did_soul_rend
name= _ "soul rend"
name_inactive= _ "soul rend"
description= _ "Every turn, this unit loses 5 hitpoints, but drains 3 hitpoints from each adjacent enemy."
description_inactive= _ "Every turn, this unit loses 5 hitpoints, but drains 3 hitpoints from each adjacent enemy."
[/dummy]
#enddef
#define DID_SOUL_REND
[event]
name=new turn
first_time_only=no
[store_unit]
[filter]
[filter_adjacent]
ability=did_soul_rend
is_enemy=yes
[/filter_adjacent]
[/filter]
variable=opp
[/store_unit]
[store_unit]
[filter]
ability=did_soul_rend
[/filter]
variable=unit
[/store_unit]
[harm_unit]
[filter]
ability=did_soul_rend
[/filter]
amount=5
animate=no
kill=no
[/harm_unit]
[floating_text]
x,y=$unit.x,$unit.y
text="<span color='#ff0000'>" + "5" + "</span>"
[/floating_text]
{VARIABLE counter 0}
[foreach]
array=opp
[do]
{VARIABLE_OP counter add 1}
[sound]
name="poison.ogg"
[/sound]
[harm_unit]
[filter]
x,y=$opp[$i].x,$opp[$i].y
[/filter]
fire_event=yes
animate=yes
amount=3
delay=25
[/harm_unit]
[if]
[have_unit]
x,y=$opp[$i].x,$opp[$i].y
[/have_unit]
[else]
{VARIABLE exp $opp[$i].level}
{VARIABLE_OP exp multiply 8}
{VARIABLE_OP unit.experience add $exp}
{CLEAR_VARIABLE exp}
[unstore_unit]
variable=unit
find_vacant=no
[/unstore_unit]
[/else]
[/if]
[/do]
[/foreach]
{VARIABLE_OP counter multiply 3}
[heal_unit]
[filter]
ability=did_soul_rend
[/filter]
amount=$counter
animate=yes
[/heal_unit]
{CLEAR_VARIABLE opp}
{CLEAR_VARIABLE unit}
{CLEAR_VARIABLE counter}
[/event]
#enddef
############## SPECTRAL SERVANT ABILITIES ##############
#define WEAPON_SPECIAL_MALEVOLENCE
[damage]
id=did_malevolence
name= _ "malevolence"
name_inactive= _ "malevolence"
description= _ "This attack gains 50% damage on offense, but causes this unit to lose 1 hp per hit."
description_inactive= _ "This attack gains 50% damage on offense, but causes this unit to lose 1 hp per hit."
multiply=1.5
active_on=offense
[/damage]
[heal_on_hit]
id=did_malevolence_anti_heal
value=-1
active_on=offense
[/heal_on_hit]
#enddef
#define WEAPON_SPECIAL_HYSTERIA
[swarm]
id=did_hysteria
name= _ "hysteria"
description= _ "This attack gains up to 10 strikes when this unit is wounded."
swarm_attacks_min=10
[/swarm]
#enddef
#define ABILITY_SORROW1
[leadership]
id=sorrow
value=-20
cumulative=no
name= _ "sorrow"
description= _ "Adjacent enemy units do 20% less damage."
affect_self=no
affect_allies=no
affect_enemies=yes
[affect_adjacent]
adjacent=n,ne,se,s,sw,nw
[/affect_adjacent]
[/leadership]
#enddef
#define ABILITY_SORROW2
[leadership]
id=sorrow
value=-40
cumulative=no
name= _ "sorrow"
description= _ "Adjacent enemy units do 40% less damage."
affect_self=no
affect_allies=no
affect_enemies=yes
[affect_adjacent]
adjacent=n,ne,se,s,sw,nw
[/affect_adjacent]
[/leadership]
#enddef
############## MALIN KESHAR ABILITIES ##############
#define WEAPON_SPECIAL_VITALIZE1
[heal_on_hit]
id=did_vitalize1
value=2
name= _ "vitalize"
description= _ "This unit heals 2 HP every time this attack hits."
[/heal_on_hit]
#enddef
#define WEAPON_SPECIAL_VITALIZE2
[heal_on_hit]
id=did_vitalize2
value=4
name= _ "vitalize"
description= _ "This unit heals 4 HP every time this attack hits."
[/heal_on_hit]
#enddef
#define WEAPON_SPECIAL_FERVOR
[attacks]
id=did_fervor
name= _ "fervor"
name_inactive= _ "fervor"
description= _ "This attack gains 2 attacks on offense, but causes this unit to lose 4 hp per hit."
description_inactive= _ "This attack gains 2 attacks on offense, but causes this unit to lose 4 hp per hit."
add=2
active_on=offense
[/attacks]
[heal_on_hit]
id=did_fervor_anti_heal
value=-4
active_on=offense
[/heal_on_hit]
#enddef
#define WEAPON_SPECIAL_IMPETUITY
[attacks]
id=did_impetuity
name= _ "impetuity"
name_inactive= _ "impetuity"
description= _ "This attack loses one strike on offense, but gains 250% damage."
description_inactive= _ "This attack loses one strike on offense, but gains 250% damage."
sub=1
active_on=offense
[/attacks]
[damage]
id=did_impetuity_damage
multiply=3
active_on=offense
[/damage]
#enddef
#define WEAPON_SPECIAL_CORPSE_LAUNCHER
[attacks]
id=did_corpse_launcher
name= _ "corpse launcher"
description= _ "On offense, enemies cannot retaliate against this attack. This attack consumes 3 HP from each nearby allied corpse to deal 11 impact damage (per corpse) to the target on top of this attacks base damage."
value=0
cumulative=no
apply_to=opponent
active_on=offense
[/attacks]
[damage]
id=did_corpse_damage
add=11
active_on=offense
[filter_self]
[filter_adjacent]
count=1
type=Walking Corpse,Soulless
is_enemy=no
[/filter_adjacent]
[/filter_self]
[/damage]
[damage]
id=did_corpse_damage
add=22
active_on=offense
[filter_self]
[filter_adjacent]
count=2
type=Walking Corpse,Soulless
is_enemy=no
[/filter_adjacent]
[/filter_self]
[/damage]
[damage]
id=did_corpse_damage
add=33
active_on=offense
[filter_self]
[filter_adjacent]
count=3
type=Walking Corpse,Soulless
is_enemy=no
[/filter_adjacent]
[/filter_self]
[/damage]
[damage]
id=did_corpse_damage
add=44
active_on=offense
[filter_self]
[filter_adjacent]
count=4
type=Walking Corpse,Soulless
is_enemy=no
[/filter_adjacent]
[/filter_self]
[/damage]
[damage]
id=did_corpse_damage
add=55
active_on=offense
[filter_self]
[filter_adjacent]
count=5
type=Walking Corpse,Soulless
is_enemy=no
[/filter_adjacent]
[/filter_self]
[/damage]
[damage]
id=did_corpse_damage
add=66
active_on=offense
[filter_self]
[filter_adjacent]
count=6
type=Walking Corpse,Soulless
is_enemy=no
[/filter_adjacent]
[/filter_self]
[/damage]
#enddef
#define DID_CORPSE_LAUNCH
[event]
id=did_corpse_launch_handler
name=attacker_hits
first_time_only=no
[filter_attack]
special_id=did_corpse_launcher
[/filter_attack]
[store_unit]
[filter]
type=Walking Corpse,Soulless
[filter_adjacent]
x,y=$x1,$y1
is_enemy=no
[/filter_adjacent]
[not]
x,y=$x1,$y1
[/not]
[/filter]
variable=zombie
[/store_unit]
[foreach]
array=zombie
[do]
[harm_unit]
[filter]
x,y=$zombie[$i].x,$zombie[$i].y
[/filter]
fire_event=yes
animate=no
kill=no
amount=3
delay=25
[/harm_unit]
[/do]
[/foreach]
{CLEAR_VARIABLE zombie}
[/event]
#enddef
#define ABILITY_CONSUMPTION
[leadership]
id=did_consumption
value=25
cumulative=no
affect_self=yes
name= _ "consumption"
description= _ "At night, this unit and adjacent allied undead gain 25% damage. However, this unit loses 2 HP per turn."
[affect_adjacent]
adjacent=n,ne,se,s,sw,nw
[filter]
race=undead
[/filter]
[/affect_adjacent]
[filter_self]
[filter_location]
time_of_day=chaotic
[/filter_location]
[/filter_self]
[/leadership]
#enddef
#define DID_CONSUMPTION
[event]
id=did_consumption_handler
name=new turn
first_time_only=no
[store_unit]
[filter]
ability=did_consumption
[/filter]
variable=unit
[/store_unit]
[if]
[have_location]
x,y=$unit.x,$unit.y
time_of_day=chaotic
[/have_location]
[then]
[harm_unit]
[filter]
ability=did_consumption
[/filter]
amount=2
animate=no
kill=no
[/harm_unit]
[floating_text]
x,y=$unit.x,$unit.y
text="<span color='#ff0000'>" + "2" + "</span>"
[/floating_text]
[/then]
[/if]
{CLEAR_VARIABLE unit}
[/event]
#enddef
#define ABILITY_CORPSE_MASTER
[heals]
id=did_corpse_master
value=6
affect_allies=yes
affect_self=no
affect_enemies=no
name= _ "corpse master"
description= _ "Adjacent allied corpses heal 6 HP per turn and gain 20% resistance to blade, impact, and pierce."
[affect_adjacent]
adjacent=n,ne,se,s,sw,nw
[filter]
type=Walking Corpse,Soulless
[/filter]
[/affect_adjacent]
[/heals]
[resistance]
id=did_corpse_master_resist
add=20
max_value=90
cumulative=no
affect_self=no
affect_allies=yes
affect_enemies=no
apply_to=blade,pierce,impact
[affect_adjacent]
adjacent=n,ne,se,s,sw,nw
[filter]
type=Walking Corpse,Soulless
[/filter]
[/affect_adjacent]
[/resistance]
#enddef
#define ABILITY_ZOMBIE_FRENZY
[leadership]
id=did_zombie_frenzy
value=30
cumulative=no
affect_self=no
affect_allies=yes
affect_enemies=no
name= _ "zombie frenzy"
description= _ "Adjacent allied corpses gain 30% damage and are berserk."
[affect_adjacent]
adjacent=n,ne,se,s,sw,nw
[filter]
type=Walking Corpse,Soulless
[/filter]
[/affect_adjacent]
[/leadership]
[berserk]
id=did_zombie_frenzy_berserk
value=30
affect_self=no
affect_allies=yes
affect_enemies=no
[affect_adjacent]
adjacent=n,ne,se,s,sw,nw
[filter]
type=Walking Corpse,Soulless
[/filter]
[/affect_adjacent]
[/berserk]
#enddef
############## DROGAN GHOUL ABILITIES ##############
#define ABILITY_CANNIBALIZE1
[regenerate]
id=did_cannibalize1
value=2
affect_self=yes
name= _ "cannibalize"
description= _ "On each turn, this unit regenerates 2 HP per adjacent allied ghoul-type unit, but consumes 1 HP from each ally in the process."
[filter]
[filter_adjacent]
count=1
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[regenerate]
id=did_cannibalize1
value=4
affect_self=yes
[filter]
[filter_adjacent]
count=2
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[regenerate]
id=did_cannibalize1
value=6
affect_self=yes
[filter]
[filter_adjacent]
count=3
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[regenerate]
id=did_cannibalize1
value=8
affect_self=yes
[filter]
[filter_adjacent]
count=4
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[regenerate]
id=did_cannibalize1
value=10
affect_self=yes
[filter]
[filter_adjacent]
count=5
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[regenerate]
id=did_cannibalize1
value=12
affect_self=yes
[filter]
[filter_adjacent]
count=6
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[heals]
value=-1
id=did_cannibalize_antiheal
affect_allies=yes
affect_self=no
[affect_adjacent]
[/affect_adjacent]
[/heals]
#enddef
#define ABILITY_CANNIBALIZE2
[regenerate]
id=did_cannibalize2
value=4
affect_self=yes
name= _ "cannibalize"
description= _ "On each turn, this unit regenerates 4 HP per adjacent allied ghoul-type unit, but consumes 2 HP from each ally in the process."
[filter]
[filter_adjacent]
count=1
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[regenerate]
id=did_cannibalize2
value=8
affect_self=yes
[filter]
[filter_adjacent]
count=2
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[regenerate]
id=did_cannibalize2
value=12
affect_self=yes
[filter]
[filter_adjacent]
count=3
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[regenerate]
id=did_cannibalize2
value=16
affect_self=yes
[filter]
[filter_adjacent]
count=4
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[regenerate]
id=did_cannibalize2
value=20
affect_self=yes
[filter]
[filter_adjacent]
count=5
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[regenerate]
id=did_cannibalize2
value=24
affect_self=yes
[filter]
[filter_adjacent]
count=6
type=Ghoul,Necrophage,Ghast
is_enemy=no
[/filter_adjacent]
[/filter]
[/regenerate]
[heals]
value=-2
id=did_cannibalize_antiheal
affect_allies=yes
affect_self=no
[affect_adjacent]
[/affect_adjacent]
[/heals]
#enddef
#define ABILITY_DEATH_CLOUD
[dummy]
id=did_death_cloud
name= _ "death cloud"
description= _ "This unit poisons all nearby enemy units on the start of every new turn."
[/dummy]
#enddef
#define DID_DEATH_CLOUD
[event]
name=new turn
first_time_only=no
[store_unit]
[filter]
[filter_adjacent]
ability=did_death_cloud
is_enemy=yes
[/filter_adjacent]
[/filter]
variable=opp
[/store_unit]
[foreach]
array=opp
[do]
[harm_unit]
[filter]
x,y=$opp[$i].x,$opp[$i].y
[/filter]
fire_event=yes
animate=yes
amount=0
poisoned=yes
delay=25
[/harm_unit]
[/do]
[/foreach]
{CLEAR_VARIABLE opp}
[/event]
#enddef

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,8 @@
#textdomain wesnoth-did
#define CHARACTER_STATS_MALIN_KESHAR
type=Apprentice Mage
type=Malin Keshar
variation=AM1
id=Malin Keshar
name= _ "Malin Keshar"
profile=portraits/malin_young.png
@ -10,16 +11,13 @@
#enddef
#define CHARACTER_STATS_MAL_KESHAR
type=Lich
type=Mal Keshar
variation=MKL1
id=Mal Keshar
name= _ "Mal Keshar"
profile=portraits/malin_lich.png
canrecruit=yes
unrenamable=yes
# Enable his advancement to Ancient Lich
advances_to=Ancient Lich
max_experience=250
#enddef
#define CHARACTER_STATS_DELA_KESHAR

View file

@ -52,7 +52,7 @@
[role]
role=advisor
side=1
type=Spectre,Nightgaunt,Wraith,Shadow,Ghost
type=Eidolon,Wight,Spectral Servant,Spectre,Nightgaunt,Wraith,Shadow,Ghost
search_recall_list=yes
[auto_recall][/auto_recall]
[else]