diff --git a/data/campaigns/Delfadors_Memoirs/scenarios/10_The_Gate_Between_Worlds.cfg b/data/campaigns/Delfadors_Memoirs/scenarios/10_The_Gate_Between_Worlds.cfg
index 53f6815971127..bdaaa55373917 100644
--- a/data/campaigns/Delfadors_Memoirs/scenarios/10_The_Gate_Between_Worlds.cfg
+++ b/data/campaigns/Delfadors_Memoirs/scenarios/10_The_Gate_Between_Worlds.cfg
@@ -25,12 +25,9 @@
{STARTING_VILLAGES 1 5}
[side]
- type=Necromancer
- id=Iliah-Malal
- name= _ "Iliah-Malal"
+ {ILIAH_MALAL (Necromancer)}
facing=se
side=2
- canrecruit=yes
controller=ai
recruit=Vampire Bat,Dark Adept,Thug
team_name=enemies
diff --git a/data/campaigns/Delfadors_Memoirs/scenarios/18_The_Portal_of_Doom.cfg b/data/campaigns/Delfadors_Memoirs/scenarios/18_The_Portal_of_Doom.cfg
index 522696fdbb1c4..51963c41a1e4a 100644
--- a/data/campaigns/Delfadors_Memoirs/scenarios/18_The_Portal_of_Doom.cfg
+++ b/data/campaigns/Delfadors_Memoirs/scenarios/18_The_Portal_of_Doom.cfg
@@ -109,9 +109,9 @@
{FLAG_VARIANT undead}
[/side]
[side]
- type=Dark Adept
- id=Unuvim
- name=_ "Unuvim"
+ type=Necromancer
+ id=Unuvim-Malal
+ name=_ "Unuvim-Malal"
facing=nw
side=3
canrecruit=yes
@@ -151,21 +151,6 @@
{MEMOIRS_DEATHS}
-#define MATERIALIZE_ILIAH_MALAL
- # Materialize the bad guy on his keep
- [unit]
- id=Iliah-Malal
- name=_ "Iliah-Malal"
- type=Lich
- facing=sw
- side=3
- x=17
- y=1
- overlays="misc/leader-expendable.png"
- ellipse="misc/ellipse-hero"
- [/unit]
-#enddef
-
[event]
name=prestart
@@ -253,21 +238,6 @@
name=close_portal
[/fire_event]
- # If Iliah-Malal got killed before this point,
- # rematerialize him on his keep so we can have
- # final dialog - the "join me" is referred to later.
- [if]
- [not]
- [have_unit]
- side=3
- id=Iliah-Malal
- [/have_unit]
- [/not]
- [then]
- {MATERIALIZE_ILIAH_MALAL}
- [/then]
- [/if]
-
{MODIFY_UNIT (id=Iliah-Malal) facing se}
[message]
speaker=Iliah-Malal
@@ -301,7 +271,7 @@
[/message]
[message]
speaker=Delfador
- message=_"(To the dwarves). Quickly, back in the tunnel! I will stay last to seal the entrance."
+ message=_"(To the dwarves). Now that the portal is closed, his power will start to weaken, but that doesn't help us now. Quickly, back in the tunnel! I will stay last to seal the entrance."
[/message]
#Delf collapses the cave entrance
@@ -439,7 +409,14 @@
[event]
name=iliah-malal
- {MATERIALIZE_ILIAH_MALAL}
+ # Materialize the bad guy on his keep
+ [unit]
+ {ILIAH_MALAL (Ancient Lich)}
+ facing=sw
+ side=3
+ x=17
+ y=1
+ [/unit]
{NAMED_UNIT 3 (Draug) 17 2 Samun _"Samun" (facing=sw)}
{NAMED_UNIT 3 (Banebow) 15 1 Skoogal _"Skoogal" (facing=sw)}
@@ -471,13 +448,24 @@
[event]
name=last breath
+ first_time_only=no
[filter]
id=Iliah-Malal
[/filter]
[message]
speaker="Iliah-Malal"
- message=_ "Fool! You could not kill me in the land of the dead, nor can you in the land of the living! I transcend both death and life, and I will return to destroy you!"
+ message=_ "Fool! You could not kill me in the land of the dead, nor can you in the land of the living! I transcend both death and life, and I will destroy you!"
[/message]
+ [message]
+ id=Delfador
+ message= _ "We cannot defeat him now. We must carry out our mission first, so we will be able to defeat him later."
+ [/message]
+ # He gets a full heal, not an advance, otherwise we'd have to make sure we ported him to the next scenario properly
+ [heal_unit]
+ [filter]
+ id=Iliah-Malal
+ [/filter]
+ [/heal_unit]
[/event]
# Isolate special effects from story logic for testing.
@@ -533,5 +521,3 @@
[/terrain]
[/event]
[/scenario]
-
-#undef MATERIALIZE_ILIAH_MALAL
diff --git a/data/campaigns/Delfadors_Memoirs/scenarios/19_Showdown_in_the_Northern_Swamp.cfg b/data/campaigns/Delfadors_Memoirs/scenarios/19_Showdown_in_the_Northern_Swamp.cfg
index 27428c452137a..d27c3f7db3bdb 100644
--- a/data/campaigns/Delfadors_Memoirs/scenarios/19_Showdown_in_the_Northern_Swamp.cfg
+++ b/data/campaigns/Delfadors_Memoirs/scenarios/19_Showdown_in_the_Northern_Swamp.cfg
@@ -59,12 +59,9 @@
# The strategic challenge should be getting these to cooperate well
[side]
- type=Lich
- id=Iliah-Malal
- name= _"Iliah-Malal"
+ {ILIAH_MALAL (Ancient Lich)}
facing=se
side=3
- canrecruit=yes
controller=ai
team_name=enemies
user_team_name= _ "Undead"
diff --git a/data/campaigns/Delfadors_Memoirs/utils/characters.cfg b/data/campaigns/Delfadors_Memoirs/utils/characters.cfg
index e829cb9ea4c3e..638d3405af98b 100644
--- a/data/campaigns/Delfadors_Memoirs/utils/characters.cfg
+++ b/data/campaigns/Delfadors_Memoirs/utils/characters.cfg
@@ -100,3 +100,11 @@
{TRAIT_AGED}
[/modifications]
#enddef
+
+#define ILIAH_MALAL TYPE
+ id=Iliah-Malal
+ name=_ "Iliah-Malal"
+ # TODO maybe get custom portraits? Default ones may be fine.
+ type={TYPE}
+ canrecruit=yes
+#enddef